commit 0baac018a213574630162d181af1d844a21a3070 Author: Kevin Adametz Date: Fri Jan 8 17:48:20 2021 +0100 first commit diff --git a/.env b/.env new file mode 100644 index 0000000..796215a --- /dev/null +++ b/.env @@ -0,0 +1,64 @@ +APP_NAME=partner.gruene-seele.bio +APP_ENV=local +APP_KEY=base64:w0K6RjfleoAOpuICea14JnaZ28PNc6EMzIFMQZ3MVtU= +APP_DEBUG=true +APP_URL=https://partner.gruene-seele.test + +APP_CHECKOUT_MAIL=kevin.adametz@me.com +APP_CHECKOUT_TEST_MAIL=kevin.adametz@me.com +APP_INFO_MAIL=kevin.adametz@me.com +APP_INFO_TEST_MAIL=kevin.adametz@me.com + +APP_MAIN_TAX = 1.19 + +LOG_CHANNEL=stack +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=192.168.1.8 +DB_PORT=3306 +DB_DATABASE=grueneseele +DB_USERNAME=kadmin +DB_PASSWORD=KT32vQ7ix + + +#DB_CONNECTION=mysql +#DB_HOST=localhost +#DB_PORT=3306 +#DB_DATABASE=web28_db4 +#DB_USERNAME=web28_4 +#DB_PASSWORD=MbDQuPZYOjxGpfNSr=9/5 + +BROADCAST_DRIVER=log +CACHE_DRIVER=file +QUEUE_CONNECTION=sync +SESSION_DRIVER=file +SESSION_LIFETIME=120 + +MEMCACHED_HOST=127.0.0.1 + +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=s182.goserver.host +MAIL_PORT=587 +MAIL_USERNAME=web28p3 +MAIL_PASSWORD=WeE2bmI9GjB7pDgi +#MAIL_ENCRYPTION=SSL +MAIL_FROM_ADDRESS=partner@gruene-seele.bio +MAIL_FROM_NAME="Partner Grüne Seele bio" + +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET= + +PUSHER_APP_ID= +PUSHER_APP_KEY= +PUSHER_APP_SECRET= +PUSHER_APP_CLUSTER=mt1 + +MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" +MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..63313ef --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +/vendor +/node_modules +/storage/language +/storage/framework +/storage/logs +/public/vendor +/storage/app \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000..8c8f089 --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..97626ba --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/laravel-plugin.xml b/.idea/laravel-plugin.xml new file mode 100644 index 0000000..5aae25d --- /dev/null +++ b/.idea/laravel-plugin.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..1b07430 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..e93f8dc --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/partner.gruene-seele.bio.iml b/.idea/partner.gruene-seele.bio.iml new file mode 100644 index 0000000..de47afa --- /dev/null +++ b/.idea/partner.gruene-seele.bio.iml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000..505fda0 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,163 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/phpunit.xml b/.idea/phpunit.xml new file mode 100644 index 0000000..4f8104c --- /dev/null +++ b/.idea/phpunit.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/symfony2.xml b/.idea/symfony2.xml new file mode 100644 index 0000000..0d318ad --- /dev/null +++ b/.idea/symfony2.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/.idea/vagrant.xml b/.idea/vagrant.xml new file mode 100644 index 0000000..a5aa786 --- /dev/null +++ b/.idea/vagrant.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.phpstorm.meta.php b/.phpstorm.meta.php new file mode 100644 index 0000000..388e300 --- /dev/null +++ b/.phpstorm.meta.php @@ -0,0 +1,2135 @@ + + * @see https://github.com/barryvdh/laravel-ide-helper + */ + override(new \Illuminate\Contracts\Container\Container, map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Illuminate\Container\Container::makeWith(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Illuminate\Contracts\Container\Container::get(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Illuminate\Contracts\Container\Container::make(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Illuminate\Contracts\Container\Container::makeWith(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\App::get(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\App::make(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\App::makeWith(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\app(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\resolve(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + override(\Psr\Container\ContainerInterface::get(0), map([ + '' => '@', + 'Asm89\Stack\CorsService' => \Asm89\Stack\CorsService::class, + 'Barryvdh\Debugbar\LaravelDebugbar' => \Barryvdh\Debugbar\LaravelDebugbar::class, + 'Cviebrock\EloquentSluggable\SluggableObserver' => \Cviebrock\EloquentSluggable\SluggableObserver::class, + 'Facade\FlareClient\Flare' => \Facade\FlareClient\Flare::class, + 'Facade\IgnitionContracts\SolutionProviderRepository' => \Facade\Ignition\SolutionProviders\SolutionProviderRepository::class, + 'Facade\Ignition\DumpRecorder\DumpRecorder' => \Facade\Ignition\DumpRecorder\DumpRecorder::class, + 'Facade\Ignition\DumpRecorder\MultiDumpHandler' => \Facade\Ignition\DumpRecorder\MultiDumpHandler::class, + 'Facade\Ignition\ErrorPage\Renderer' => \Facade\Ignition\ErrorPage\Renderer::class, + 'Facade\Ignition\IgnitionConfig' => \Facade\Ignition\IgnitionConfig::class, + 'Facade\Ignition\LogRecorder\LogRecorder' => \Facade\Ignition\LogRecorder\LogRecorder::class, + 'Facade\Ignition\QueryRecorder\QueryRecorder' => \Facade\Ignition\QueryRecorder\QueryRecorder::class, + 'Illuminate\Auth\Middleware\RequirePassword' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'Illuminate\Broadcasting\BroadcastManager' => \Illuminate\Broadcasting\BroadcastManager::class, + 'Illuminate\Bus\BatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\DatabaseBatchRepository' => \Illuminate\Bus\DatabaseBatchRepository::class, + 'Illuminate\Bus\Dispatcher' => \Illuminate\Bus\Dispatcher::class, + 'Illuminate\Cache\RateLimiter' => \Illuminate\Cache\RateLimiter::class, + 'Illuminate\Console\Scheduling\Schedule' => \Illuminate\Console\Scheduling\Schedule::class, + 'Illuminate\Console\Scheduling\ScheduleFinishCommand' => \Illuminate\Console\Scheduling\ScheduleFinishCommand::class, + 'Illuminate\Console\Scheduling\ScheduleListCommand' => \Illuminate\Console\Scheduling\ScheduleListCommand::class, + 'Illuminate\Console\Scheduling\ScheduleRunCommand' => \Illuminate\Console\Scheduling\ScheduleRunCommand::class, + 'Illuminate\Console\Scheduling\ScheduleTestCommand' => \Illuminate\Console\Scheduling\ScheduleTestCommand::class, + 'Illuminate\Console\Scheduling\ScheduleWorkCommand' => \Illuminate\Console\Scheduling\ScheduleWorkCommand::class, + 'Illuminate\Contracts\Auth\Access\Gate' => \Illuminate\Auth\Access\Gate::class, + 'Illuminate\Contracts\Broadcasting\Broadcaster' => \Illuminate\Broadcasting\Broadcasters\LogBroadcaster::class, + 'Illuminate\Contracts\Console\Kernel' => \App\Console\Kernel::class, + 'Illuminate\Contracts\Debug\ExceptionHandler' => \NunoMaduro\Collision\Adapters\Laravel\ExceptionHandler::class, + 'Illuminate\Contracts\Http\Kernel' => \App\Http\Kernel::class, + 'Illuminate\Contracts\Pipeline\Hub' => \Illuminate\Pipeline\Hub::class, + 'Illuminate\Contracts\Queue\EntityResolver' => \Illuminate\Database\Eloquent\QueueEntityResolver::class, + 'Illuminate\Contracts\Routing\ResponseFactory' => \Illuminate\Routing\ResponseFactory::class, + 'Illuminate\Database\Console\DbCommand' => \Illuminate\Database\Console\DbCommand::class, + 'Illuminate\Foundation\Mix' => \Illuminate\Foundation\Mix::class, + 'Illuminate\Foundation\PackageManifest' => \Illuminate\Foundation\PackageManifest::class, + 'Illuminate\Mail\Markdown' => \Illuminate\Mail\Markdown::class, + 'Illuminate\Notifications\ChannelManager' => \Illuminate\Notifications\ChannelManager::class, + 'Illuminate\Routing\Contracts\ControllerDispatcher' => \Illuminate\Routing\ControllerDispatcher::class, + 'Illuminate\Session\Middleware\StartSession' => \Illuminate\Session\Middleware\StartSession::class, + 'Laracasts\Flash\SessionStore' => \Laracasts\Flash\LaravelSessionStore::class, + 'Laravel\Passport\ClientRepository' => \Laravel\Passport\ClientRepository::class, + 'Lcobucci\JWT\Parser' => \Lcobucci\JWT\Parser::class, + 'NunoMaduro\Collision\Contracts\Provider' => \NunoMaduro\Collision\Provider::class, + 'Psr\Http\Message\ResponseInterface' => \Nyholm\Psr7\Response::class, + 'Psr\Http\Message\ServerRequestInterface' => \Nyholm\Psr7\ServerRequest::class, + 'Reliese\Coders\Model\Factory' => \Reliese\Coders\Model\Factory::class, + 'Whoops\Handler\HandlerInterface' => \Facade\Ignition\ErrorPage\IgnitionWhoopsHandler::class, + 'auth' => \Illuminate\Auth\AuthManager::class, + 'auth.driver' => \Illuminate\Auth\SessionGuard::class, + 'auth.password' => \Illuminate\Auth\Passwords\PasswordBrokerManager::class, + 'auth.password.broker' => \Illuminate\Auth\Passwords\PasswordBroker::class, + 'blade.compiler' => \Illuminate\View\Compilers\BladeCompiler::class, + 'cache' => \Illuminate\Cache\CacheManager::class, + 'cache.store' => \Illuminate\Cache\Repository::class, + 'cart' => \Gloudemans\Shoppingcart\Cart::class, + 'command.auth.resets.clear' => \Illuminate\Auth\Console\ClearResetsCommand::class, + 'command.cache.clear' => \Illuminate\Cache\Console\ClearCommand::class, + 'command.cache.forget' => \Illuminate\Cache\Console\ForgetCommand::class, + 'command.cache.table' => \Illuminate\Cache\Console\CacheTableCommand::class, + 'command.cast.make' => \Illuminate\Foundation\Console\CastMakeCommand::class, + 'command.channel.make' => \Illuminate\Foundation\Console\ChannelMakeCommand::class, + 'command.clear-compiled' => \Illuminate\Foundation\Console\ClearCompiledCommand::class, + 'command.component.make' => \Illuminate\Foundation\Console\ComponentMakeCommand::class, + 'command.config.cache' => \Illuminate\Foundation\Console\ConfigCacheCommand::class, + 'command.config.clear' => \Illuminate\Foundation\Console\ConfigClearCommand::class, + 'command.console.make' => \Illuminate\Foundation\Console\ConsoleMakeCommand::class, + 'command.controller.make' => \Illuminate\Routing\Console\ControllerMakeCommand::class, + 'command.db.wipe' => \Illuminate\Database\Console\WipeCommand::class, + 'command.debugbar.clear' => \Barryvdh\Debugbar\Console\ClearCommand::class, + 'command.down' => \Illuminate\Foundation\Console\DownCommand::class, + 'command.environment' => \Illuminate\Foundation\Console\EnvironmentCommand::class, + 'command.event.cache' => \Illuminate\Foundation\Console\EventCacheCommand::class, + 'command.event.clear' => \Illuminate\Foundation\Console\EventClearCommand::class, + 'command.event.generate' => \Illuminate\Foundation\Console\EventGenerateCommand::class, + 'command.event.list' => \Illuminate\Foundation\Console\EventListCommand::class, + 'command.event.make' => \Illuminate\Foundation\Console\EventMakeCommand::class, + 'command.exception.make' => \Illuminate\Foundation\Console\ExceptionMakeCommand::class, + 'command.factory.make' => \Illuminate\Database\Console\Factories\FactoryMakeCommand::class, + 'command.flare:test' => \Facade\Ignition\Commands\TestCommand::class, + 'command.ide-helper.eloquent' => \Barryvdh\LaravelIdeHelper\Console\EloquentCommand::class, + 'command.ide-helper.generate' => \Barryvdh\LaravelIdeHelper\Console\GeneratorCommand::class, + 'command.ide-helper.meta' => \Barryvdh\LaravelIdeHelper\Console\MetaCommand::class, + 'command.ide-helper.models' => \Barryvdh\LaravelIdeHelper\Console\ModelsCommand::class, + 'command.job.make' => \Illuminate\Foundation\Console\JobMakeCommand::class, + 'command.key.generate' => \Illuminate\Foundation\Console\KeyGenerateCommand::class, + 'command.listener.make' => \Illuminate\Foundation\Console\ListenerMakeCommand::class, + 'command.mail.make' => \Illuminate\Foundation\Console\MailMakeCommand::class, + 'command.make:solution' => \Facade\Ignition\Commands\SolutionMakeCommand::class, + 'command.make:solution-provider' => \Facade\Ignition\Commands\SolutionProviderMakeCommand::class, + 'command.middleware.make' => \Illuminate\Routing\Console\MiddlewareMakeCommand::class, + 'command.migrate' => \Illuminate\Database\Console\Migrations\MigrateCommand::class, + 'command.migrate.fresh' => \Illuminate\Database\Console\Migrations\FreshCommand::class, + 'command.migrate.install' => \Illuminate\Database\Console\Migrations\InstallCommand::class, + 'command.migrate.make' => \Illuminate\Database\Console\Migrations\MigrateMakeCommand::class, + 'command.migrate.refresh' => \Illuminate\Database\Console\Migrations\RefreshCommand::class, + 'command.migrate.reset' => \Illuminate\Database\Console\Migrations\ResetCommand::class, + 'command.migrate.rollback' => \Illuminate\Database\Console\Migrations\RollbackCommand::class, + 'command.migrate.status' => \Illuminate\Database\Console\Migrations\StatusCommand::class, + 'command.model.make' => \Illuminate\Foundation\Console\ModelMakeCommand::class, + 'command.notification.make' => \Illuminate\Foundation\Console\NotificationMakeCommand::class, + 'command.notification.table' => \Illuminate\Notifications\Console\NotificationTableCommand::class, + 'command.observer.make' => \Illuminate\Foundation\Console\ObserverMakeCommand::class, + 'command.optimize' => \Illuminate\Foundation\Console\OptimizeCommand::class, + 'command.optimize.clear' => \Illuminate\Foundation\Console\OptimizeClearCommand::class, + 'command.package.discover' => \Illuminate\Foundation\Console\PackageDiscoverCommand::class, + 'command.policy.make' => \Illuminate\Foundation\Console\PolicyMakeCommand::class, + 'command.provider.make' => \Illuminate\Foundation\Console\ProviderMakeCommand::class, + 'command.queue.batches-table' => \Illuminate\Queue\Console\BatchesTableCommand::class, + 'command.queue.clear' => \Illuminate\Queue\Console\ClearCommand::class, + 'command.queue.failed' => \Illuminate\Queue\Console\ListFailedCommand::class, + 'command.queue.failed-table' => \Illuminate\Queue\Console\FailedTableCommand::class, + 'command.queue.flush' => \Illuminate\Queue\Console\FlushFailedCommand::class, + 'command.queue.forget' => \Illuminate\Queue\Console\ForgetFailedCommand::class, + 'command.queue.listen' => \Illuminate\Queue\Console\ListenCommand::class, + 'command.queue.prune-batches' => \Illuminate\Queue\Console\PruneBatchesCommand::class, + 'command.queue.restart' => \Illuminate\Queue\Console\RestartCommand::class, + 'command.queue.retry' => \Illuminate\Queue\Console\RetryCommand::class, + 'command.queue.retry-batch' => \Illuminate\Queue\Console\RetryBatchCommand::class, + 'command.queue.table' => \Illuminate\Queue\Console\TableCommand::class, + 'command.queue.work' => \Illuminate\Queue\Console\WorkCommand::class, + 'command.request.make' => \Illuminate\Foundation\Console\RequestMakeCommand::class, + 'command.resource.make' => \Illuminate\Foundation\Console\ResourceMakeCommand::class, + 'command.route.cache' => \Illuminate\Foundation\Console\RouteCacheCommand::class, + 'command.route.clear' => \Illuminate\Foundation\Console\RouteClearCommand::class, + 'command.route.list' => \Illuminate\Foundation\Console\RouteListCommand::class, + 'command.rule.make' => \Illuminate\Foundation\Console\RuleMakeCommand::class, + 'command.schema.dump' => \Illuminate\Database\Console\DumpCommand::class, + 'command.seed' => \Illuminate\Database\Console\Seeds\SeedCommand::class, + 'command.seeder.make' => \Illuminate\Database\Console\Seeds\SeederMakeCommand::class, + 'command.serve' => \Illuminate\Foundation\Console\ServeCommand::class, + 'command.session.table' => \Illuminate\Session\Console\SessionTableCommand::class, + 'command.storage.link' => \Illuminate\Foundation\Console\StorageLinkCommand::class, + 'command.stub.publish' => \Illuminate\Foundation\Console\StubPublishCommand::class, + 'command.test.make' => \Illuminate\Foundation\Console\TestMakeCommand::class, + 'command.tinker' => \Laravel\Tinker\Console\TinkerCommand::class, + 'command.up' => \Illuminate\Foundation\Console\UpCommand::class, + 'command.vendor.publish' => \Illuminate\Foundation\Console\VendorPublishCommand::class, + 'command.view.cache' => \Illuminate\Foundation\Console\ViewCacheCommand::class, + 'command.view.clear' => \Illuminate\Foundation\Console\ViewClearCommand::class, + 'composer' => \Illuminate\Support\Composer::class, + 'cookie' => \Illuminate\Cookie\CookieJar::class, + 'datatables' => \Yajra\DataTables\DataTables::class, + 'datatables.config' => \Yajra\DataTables\Utilities\Config::class, + 'datatables.request' => \Yajra\DataTables\Utilities\Request::class, + 'db' => \Illuminate\Database\DatabaseManager::class, + 'db.connection' => \Illuminate\Database\MySqlConnection::class, + 'db.factory' => \Illuminate\Database\Connectors\ConnectionFactory::class, + 'db.transactions' => \Illuminate\Database\DatabaseTransactionsManager::class, + 'dompdf' => \Dompdf\Dompdf::class, + 'dompdf.wrapper' => \Barryvdh\DomPDF\PDF::class, + 'encrypter' => \Illuminate\Encryption\Encrypter::class, + 'events' => \Illuminate\Events\Dispatcher::class, + 'files' => \Illuminate\Filesystem\Filesystem::class, + 'filesystem' => \Illuminate\Filesystem\FilesystemManager::class, + 'filesystem.disk' => \Illuminate\Filesystem\FilesystemAdapter::class, + 'flare.http' => \Facade\FlareClient\Http\Client::class, + 'flare.logger' => \Monolog\Logger::class, + 'flash' => \Laracasts\Flash\FlashNotifier::class, + 'form' => \Collective\Html\FormBuilder::class, + 'hash' => \Illuminate\Hashing\HashManager::class, + 'hash.driver' => \Illuminate\Hashing\BcryptHasher::class, + 'html' => \Collective\Html\HtmlBuilder::class, + 'image' => \Intervention\Image\ImageManager::class, + 'log' => \Illuminate\Log\LogManager::class, + 'mail.manager' => \Illuminate\Mail\MailManager::class, + 'mailer' => \Illuminate\Mail\Mailer::class, + 'memcached.connector' => \Illuminate\Cache\MemcachedConnector::class, + 'migration.creator' => \Illuminate\Database\Migrations\MigrationCreator::class, + 'migration.repository' => \Illuminate\Database\Migrations\DatabaseMigrationRepository::class, + 'migrator' => \Illuminate\Database\Migrations\Migrator::class, + 'profanityFilter' => \Askedio\Laravel5ProfanityFilter\ProfanityFilter::class, + 'queue' => \Illuminate\Queue\QueueManager::class, + 'queue.connection' => \Illuminate\Queue\SyncQueue::class, + 'queue.failer' => \Illuminate\Queue\Failed\DatabaseFailedJobProvider::class, + 'queue.listener' => \Illuminate\Queue\Listener::class, + 'queue.worker' => \Illuminate\Queue\Worker::class, + 'redirect' => \Illuminate\Routing\Redirector::class, + 'redis' => \Illuminate\Redis\RedisManager::class, + 'router' => \Illuminate\Routing\Router::class, + 'session' => \Illuminate\Session\SessionManager::class, + 'session.store' => \Illuminate\Session\Store::class, + 'translation.loader' => \Illuminate\Translation\FileLoader::class, + 'translator' => \Illuminate\Translation\Translator::class, + 'url' => \Illuminate\Routing\UrlGenerator::class, + 'validation.presence' => \Illuminate\Validation\DatabasePresenceVerifier::class, + 'view' => \Illuminate\View\Factory::class, + 'view.engine.resolver' => \Illuminate\View\Engines\EngineResolver::class, + 'view.finder' => \Illuminate\View\FileViewFinder::class, + ])); + + + override(\Illuminate\Support\Arr::add(0), type(0)); + override(\Illuminate\Support\Arr::except(0), type(0)); + override(\Illuminate\Support\Arr::first(0), elementType(0)); + override(\Illuminate\Support\Arr::last(0), elementType(0)); + override(\Illuminate\Support\Arr::get(0), elementType(0)); + override(\Illuminate\Support\Arr::only(0), type(0)); + override(\Illuminate\Support\Arr::prepend(0), type(0)); + override(\Illuminate\Support\Arr::pull(0), elementType(0)); + override(\Illuminate\Support\Arr::set(0), type(0)); + override(\Illuminate\Support\Arr::shuffle(0), type(0)); + override(\Illuminate\Support\Arr::sort(0), type(0)); + override(\Illuminate\Support\Arr::sortRecursive(0), type(0)); + override(\Illuminate\Support\Arr::where(0), type(0)); + override(\array_add(0), type(0)); + override(\array_except(0), type(0)); + override(\array_first(0), elementType(0)); + override(\array_last(0), elementType(0)); + override(\array_get(0), elementType(0)); + override(\array_only(0), type(0)); + override(\array_prepend(0), type(0)); + override(\array_pull(0), elementType(0)); + override(\array_set(0), type(0)); + override(\array_sort(0), type(0)); + override(\array_sort_recursive(0), type(0)); + override(\array_where(0), type(0)); + override(\head(0), elementType(0)); + override(\last(0), elementType(0)); + override(\with(0), type(0)); + override(\tap(0), type(0)); + override(\optional(0), type(0)); + +} diff --git a/_ide_helper.php b/_ide_helper.php new file mode 100644 index 0000000..cab2d96 --- /dev/null +++ b/_ide_helper.php @@ -0,0 +1,22134 @@ + + * @see https://github.com/barryvdh/laravel-ide-helper + */ + + namespace Illuminate\Support\Facades { + /** + * + * + * @see \Illuminate\Contracts\Foundation\Application + */ + class App { + /** + * Get the version number of the application. + * + * @return string + * @static + */ + public static function version() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->version(); + } + /** + * Run the given array of bootstrap classes. + * + * @param string[] $bootstrappers + * @return void + * @static + */ + public static function bootstrapWith($bootstrappers) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->bootstrapWith($bootstrappers); + } + /** + * Register a callback to run after loading the environment. + * + * @param \Closure $callback + * @return void + * @static + */ + public static function afterLoadingEnvironment($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->afterLoadingEnvironment($callback); + } + /** + * Register a callback to run before a bootstrapper. + * + * @param string $bootstrapper + * @param \Closure $callback + * @return void + * @static + */ + public static function beforeBootstrapping($bootstrapper, $callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->beforeBootstrapping($bootstrapper, $callback); + } + /** + * Register a callback to run after a bootstrapper. + * + * @param string $bootstrapper + * @param \Closure $callback + * @return void + * @static + */ + public static function afterBootstrapping($bootstrapper, $callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->afterBootstrapping($bootstrapper, $callback); + } + /** + * Determine if the application has been bootstrapped before. + * + * @return bool + * @static + */ + public static function hasBeenBootstrapped() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->hasBeenBootstrapped(); + } + /** + * Set the base path for the application. + * + * @param string $basePath + * @return \Illuminate\Foundation\Application + * @static + */ + public static function setBasePath($basePath) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->setBasePath($basePath); + } + /** + * Get the path to the application "app" directory. + * + * @param string $path + * @return string + * @static + */ + public static function path($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->path($path); + } + /** + * Set the application directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useAppPath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useAppPath($path); + } + /** + * Get the base path of the Laravel installation. + * + * @param string $path Optionally, a path to append to the base path + * @return string + * @static + */ + public static function basePath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->basePath($path); + } + /** + * Get the path to the bootstrap directory. + * + * @param string $path Optionally, a path to append to the bootstrap path + * @return string + * @static + */ + public static function bootstrapPath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->bootstrapPath($path); + } + /** + * Get the path to the application configuration files. + * + * @param string $path Optionally, a path to append to the config path + * @return string + * @static + */ + public static function configPath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->configPath($path); + } + /** + * Get the path to the database directory. + * + * @param string $path Optionally, a path to append to the database path + * @return string + * @static + */ + public static function databasePath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->databasePath($path); + } + /** + * Set the database directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useDatabasePath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useDatabasePath($path); + } + /** + * Get the path to the language files. + * + * @return string + * @static + */ + public static function langPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->langPath(); + } + /** + * Get the path to the public / web directory. + * + * @return string + * @static + */ + public static function publicPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->publicPath(); + } + /** + * Get the path to the storage directory. + * + * @return string + * @static + */ + public static function storagePath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->storagePath(); + } + /** + * Set the storage directory. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useStoragePath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useStoragePath($path); + } + /** + * Get the path to the resources directory. + * + * @param string $path + * @return string + * @static + */ + public static function resourcePath($path = '') + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->resourcePath($path); + } + /** + * Get the path to the environment file directory. + * + * @return string + * @static + */ + public static function environmentPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->environmentPath(); + } + /** + * Set the directory for the environment file. + * + * @param string $path + * @return \Illuminate\Foundation\Application + * @static + */ + public static function useEnvironmentPath($path) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->useEnvironmentPath($path); + } + /** + * Set the environment file to be loaded during bootstrapping. + * + * @param string $file + * @return \Illuminate\Foundation\Application + * @static + */ + public static function loadEnvironmentFrom($file) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->loadEnvironmentFrom($file); + } + /** + * Get the environment file the application is using. + * + * @return string + * @static + */ + public static function environmentFile() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->environmentFile(); + } + /** + * Get the fully qualified path to the environment file. + * + * @return string + * @static + */ + public static function environmentFilePath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->environmentFilePath(); + } + /** + * Get or check the current application environment. + * + * @param string|array $environments + * @return string|bool + * @static + */ + public static function environment(...$environments) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->environment(...$environments); + } + /** + * Determine if application is in local environment. + * + * @return bool + * @static + */ + public static function isLocal() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isLocal(); + } + /** + * Determine if application is in production environment. + * + * @return bool + * @static + */ + public static function isProduction() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isProduction(); + } + /** + * Detect the application's current environment. + * + * @param \Closure $callback + * @return string + * @static + */ + public static function detectEnvironment($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->detectEnvironment($callback); + } + /** + * Determine if the application is running in the console. + * + * @return bool + * @static + */ + public static function runningInConsole() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->runningInConsole(); + } + /** + * Determine if the application is running unit tests. + * + * @return bool + * @static + */ + public static function runningUnitTests() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->runningUnitTests(); + } + /** + * Register all of the configured providers. + * + * @return void + * @static + */ + public static function registerConfiguredProviders() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->registerConfiguredProviders(); + } + /** + * Register a service provider with the application. + * + * @param \Illuminate\Support\ServiceProvider|string $provider + * @param bool $force + * @return \Illuminate\Support\ServiceProvider + * @static + */ + public static function register($provider, $force = false) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->register($provider, $force); + } + /** + * Get the registered service provider instance if it exists. + * + * @param \Illuminate\Support\ServiceProvider|string $provider + * @return \Illuminate\Support\ServiceProvider|null + * @static + */ + public static function getProvider($provider) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getProvider($provider); + } + /** + * Get the registered service provider instances if any exist. + * + * @param \Illuminate\Support\ServiceProvider|string $provider + * @return array + * @static + */ + public static function getProviders($provider) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getProviders($provider); + } + /** + * Resolve a service provider instance from the class name. + * + * @param string $provider + * @return \Illuminate\Support\ServiceProvider + * @static + */ + public static function resolveProvider($provider) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->resolveProvider($provider); + } + /** + * Load and boot all of the remaining deferred providers. + * + * @return void + * @static + */ + public static function loadDeferredProviders() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->loadDeferredProviders(); + } + /** + * Load the provider for a deferred service. + * + * @param string $service + * @return void + * @static + */ + public static function loadDeferredProvider($service) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->loadDeferredProvider($service); + } + /** + * Register a deferred provider and service. + * + * @param string $provider + * @param string|null $service + * @return void + * @static + */ + public static function registerDeferredProvider($provider, $service = null) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->registerDeferredProvider($provider, $service); + } + /** + * Resolve the given type from the container. + * + * @param string $abstract + * @param array $parameters + * @return mixed + * @static + */ + public static function make($abstract, $parameters = []) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->make($abstract, $parameters); + } + /** + * Determine if the given abstract type has been bound. + * + * @param string $abstract + * @return bool + * @static + */ + public static function bound($abstract) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->bound($abstract); + } + /** + * Determine if the application has booted. + * + * @return bool + * @static + */ + public static function isBooted() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isBooted(); + } + /** + * Boot the application's service providers. + * + * @return void + * @static + */ + public static function boot() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->boot(); + } + /** + * Register a new boot listener. + * + * @param callable $callback + * @return void + * @static + */ + public static function booting($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->booting($callback); + } + /** + * Register a new "booted" listener. + * + * @param callable $callback + * @return void + * @static + */ + public static function booted($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->booted($callback); + } + /** + * {@inheritdoc} + * + * @static + */ + public static function handle($request, $type = 1, $catch = true) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->handle($request, $type, $catch); + } + /** + * Determine if middleware has been disabled for the application. + * + * @return bool + * @static + */ + public static function shouldSkipMiddleware() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->shouldSkipMiddleware(); + } + /** + * Get the path to the cached services.php file. + * + * @return string + * @static + */ + public static function getCachedServicesPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedServicesPath(); + } + /** + * Get the path to the cached packages.php file. + * + * @return string + * @static + */ + public static function getCachedPackagesPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedPackagesPath(); + } + /** + * Determine if the application configuration is cached. + * + * @return bool + * @static + */ + public static function configurationIsCached() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->configurationIsCached(); + } + /** + * Get the path to the configuration cache file. + * + * @return string + * @static + */ + public static function getCachedConfigPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedConfigPath(); + } + /** + * Determine if the application routes are cached. + * + * @return bool + * @static + */ + public static function routesAreCached() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->routesAreCached(); + } + /** + * Get the path to the routes cache file. + * + * @return string + * @static + */ + public static function getCachedRoutesPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedRoutesPath(); + } + /** + * Determine if the application events are cached. + * + * @return bool + * @static + */ + public static function eventsAreCached() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->eventsAreCached(); + } + /** + * Get the path to the events cache file. + * + * @return string + * @static + */ + public static function getCachedEventsPath() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getCachedEventsPath(); + } + /** + * Add new prefix to list of absolute path prefixes. + * + * @param string $prefix + * @return \Illuminate\Foundation\Application + * @static + */ + public static function addAbsoluteCachePathPrefix($prefix) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->addAbsoluteCachePathPrefix($prefix); + } + /** + * Determine if the application is currently down for maintenance. + * + * @return bool + * @static + */ + public static function isDownForMaintenance() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isDownForMaintenance(); + } + /** + * Throw an HttpException with the given data. + * + * @param int $code + * @param string $message + * @param array $headers + * @return void + * @throws \Symfony\Component\HttpKernel\Exception\HttpException + * @throws \Symfony\Component\HttpKernel\Exception\NotFoundHttpException + * @static + */ + public static function abort($code, $message = '', $headers = []) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->abort($code, $message, $headers); + } + /** + * Register a terminating callback with the application. + * + * @param callable|string $callback + * @return \Illuminate\Foundation\Application + * @static + */ + public static function terminating($callback) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->terminating($callback); + } + /** + * Terminate the application. + * + * @return void + * @static + */ + public static function terminate() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->terminate(); + } + /** + * Get the service providers that have been loaded. + * + * @return array + * @static + */ + public static function getLoadedProviders() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getLoadedProviders(); + } + /** + * Determine if the given service provider is loaded. + * + * @param string $provider + * @return bool + * @static + */ + public static function providerIsLoaded($provider) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->providerIsLoaded($provider); + } + /** + * Get the application's deferred services. + * + * @return array + * @static + */ + public static function getDeferredServices() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getDeferredServices(); + } + /** + * Set the application's deferred services. + * + * @param array $services + * @return void + * @static + */ + public static function setDeferredServices($services) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->setDeferredServices($services); + } + /** + * Add an array of services to the application's deferred services. + * + * @param array $services + * @return void + * @static + */ + public static function addDeferredServices($services) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->addDeferredServices($services); + } + /** + * Determine if the given service is a deferred service. + * + * @param string $service + * @return bool + * @static + */ + public static function isDeferredService($service) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isDeferredService($service); + } + /** + * Configure the real-time facade namespace. + * + * @param string $namespace + * @return void + * @static + */ + public static function provideFacades($namespace) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->provideFacades($namespace); + } + /** + * Get the current application locale. + * + * @return string + * @static + */ + public static function getLocale() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getLocale(); + } + /** + * Get the current application locale. + * + * @return string + * @static + */ + public static function currentLocale() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->currentLocale(); + } + /** + * Get the current application fallback locale. + * + * @return string + * @static + */ + public static function getFallbackLocale() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getFallbackLocale(); + } + /** + * Set the current application locale. + * + * @param string $locale + * @return void + * @static + */ + public static function setLocale($locale) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->setLocale($locale); + } + /** + * Set the current application fallback locale. + * + * @param string $fallbackLocale + * @return void + * @static + */ + public static function setFallbackLocale($fallbackLocale) + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->setFallbackLocale($fallbackLocale); + } + /** + * Determine if application locale is the given locale. + * + * @param string $locale + * @return bool + * @static + */ + public static function isLocale($locale) + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isLocale($locale); + } + /** + * Register the core class aliases in the container. + * + * @return void + * @static + */ + public static function registerCoreContainerAliases() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->registerCoreContainerAliases(); + } + /** + * Flush the container of all bindings and resolved instances. + * + * @return void + * @static + */ + public static function flush() + { + /** @var \Illuminate\Foundation\Application $instance */ + $instance->flush(); + } + /** + * Get the application namespace. + * + * @return string + * @throws \RuntimeException + * @static + */ + public static function getNamespace() + { + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getNamespace(); + } + /** + * Define a contextual binding. + * + * @param array|string $concrete + * @return \Illuminate\Contracts\Container\ContextualBindingBuilder + * @static + */ + public static function when($concrete) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->when($concrete); + } + /** + * Returns true if the container can return an entry for the given identifier. + * + * Returns false otherwise. + * + * `has($id)` returning true does not mean that `get($id)` will not throw an exception. + * It does however mean that `get($id)` will not throw a `NotFoundExceptionInterface`. + * + * @param string $id Identifier of the entry to look for. + * @return bool + * @static + */ + public static function has($id) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->has($id); + } + /** + * Determine if the given abstract type has been resolved. + * + * @param string $abstract + * @return bool + * @static + */ + public static function resolved($abstract) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->resolved($abstract); + } + /** + * Determine if a given type is shared. + * + * @param string $abstract + * @return bool + * @static + */ + public static function isShared($abstract) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isShared($abstract); + } + /** + * Determine if a given string is an alias. + * + * @param string $name + * @return bool + * @static + */ + public static function isAlias($name) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->isAlias($name); + } + /** + * Register a binding with the container. + * + * @param string $abstract + * @param \Closure|string|null $concrete + * @param bool $shared + * @return void + * @static + */ + public static function bind($abstract, $concrete = null, $shared = false) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->bind($abstract, $concrete, $shared); + } + /** + * Determine if the container has a method binding. + * + * @param string $method + * @return bool + * @static + */ + public static function hasMethodBinding($method) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->hasMethodBinding($method); + } + /** + * Bind a callback to resolve with Container::call. + * + * @param array|string $method + * @param \Closure $callback + * @return void + * @static + */ + public static function bindMethod($method, $callback) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->bindMethod($method, $callback); + } + /** + * Get the method binding for the given method. + * + * @param string $method + * @param mixed $instance + * @return mixed + * @static + */ + public static function callMethodBinding($method, $instance) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->callMethodBinding($method, $instance); + } + /** + * Add a contextual binding to the container. + * + * @param string $concrete + * @param string $abstract + * @param \Closure|string $implementation + * @return void + * @static + */ + public static function addContextualBinding($concrete, $abstract, $implementation) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->addContextualBinding($concrete, $abstract, $implementation); + } + /** + * Register a binding if it hasn't already been registered. + * + * @param string $abstract + * @param \Closure|string|null $concrete + * @param bool $shared + * @return void + * @static + */ + public static function bindIf($abstract, $concrete = null, $shared = false) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->bindIf($abstract, $concrete, $shared); + } + /** + * Register a shared binding in the container. + * + * @param string $abstract + * @param \Closure|string|null $concrete + * @return void + * @static + */ + public static function singleton($abstract, $concrete = null) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->singleton($abstract, $concrete); + } + /** + * Register a shared binding if it hasn't already been registered. + * + * @param string $abstract + * @param \Closure|string|null $concrete + * @return void + * @static + */ + public static function singletonIf($abstract, $concrete = null) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->singletonIf($abstract, $concrete); + } + /** + * "Extend" an abstract type in the container. + * + * @param string $abstract + * @param \Closure $closure + * @return void + * @throws \InvalidArgumentException + * @static + */ + public static function extend($abstract, $closure) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->extend($abstract, $closure); + } + /** + * Register an existing instance as shared in the container. + * + * @param string $abstract + * @param mixed $instance + * @return mixed + * @static + */ + public static function instance($abstract, $instance) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->instance($abstract, $instance); + } + /** + * Assign a set of tags to a given binding. + * + * @param array|string $abstracts + * @param array|mixed $tags + * @return void + * @static + */ + public static function tag($abstracts, $tags) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->tag($abstracts, $tags); + } + /** + * Resolve all of the bindings for a given tag. + * + * @param string $tag + * @return \Illuminate\Container\iterable + * @static + */ + public static function tagged($tag) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->tagged($tag); + } + /** + * Alias a type to a different name. + * + * @param string $abstract + * @param string $alias + * @return void + * @throws \LogicException + * @static + */ + public static function alias($abstract, $alias) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->alias($abstract, $alias); + } + /** + * Bind a new callback to an abstract's rebind event. + * + * @param string $abstract + * @param \Closure $callback + * @return mixed + * @static + */ + public static function rebinding($abstract, $callback) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->rebinding($abstract, $callback); + } + /** + * Refresh an instance on the given target and method. + * + * @param string $abstract + * @param mixed $target + * @param string $method + * @return mixed + * @static + */ + public static function refresh($abstract, $target, $method) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->refresh($abstract, $target, $method); + } + /** + * Wrap the given closure such that its dependencies will be injected when executed. + * + * @param \Closure $callback + * @param array $parameters + * @return \Closure + * @static + */ + public static function wrap($callback, $parameters = []) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->wrap($callback, $parameters); + } + /** + * Call the given Closure / class@method and inject its dependencies. + * + * @param callable|string $callback + * @param \Illuminate\Container\array $parameters + * @param string|null $defaultMethod + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function call($callback, $parameters = [], $defaultMethod = null) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->call($callback, $parameters, $defaultMethod); + } + /** + * Get a closure to resolve the given type from the container. + * + * @param string $abstract + * @return \Closure + * @static + */ + public static function factory($abstract) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->factory($abstract); + } + /** + * An alias function name for make(). + * + * @param string|callable $abstract + * @param array $parameters + * @return mixed + * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @static + */ + public static function makeWith($abstract, $parameters = []) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->makeWith($abstract, $parameters); + } + /** + * Finds an entry of the container by its identifier and returns it. + * + * @param string $id Identifier of the entry to look for. + * @throws NotFoundExceptionInterface No entry was found for **this** identifier. + * @throws ContainerExceptionInterface Error while retrieving the entry. + * @return mixed Entry. + * @static + */ + public static function get($id) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->get($id); + } + /** + * Instantiate a concrete instance of the given type. + * + * @param \Closure|string $concrete + * @return mixed + * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @static + */ + public static function build($concrete) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->build($concrete); + } + /** + * Register a new before resolving callback for all types. + * + * @param \Closure|string $abstract + * @param \Closure|null $callback + * @return void + * @static + */ + public static function beforeResolving($abstract, $callback = null) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->beforeResolving($abstract, $callback); + } + /** + * Register a new resolving callback. + * + * @param \Closure|string $abstract + * @param \Closure|null $callback + * @return void + * @static + */ + public static function resolving($abstract, $callback = null) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->resolving($abstract, $callback); + } + /** + * Register a new after resolving callback for all types. + * + * @param \Closure|string $abstract + * @param \Closure|null $callback + * @return void + * @static + */ + public static function afterResolving($abstract, $callback = null) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->afterResolving($abstract, $callback); + } + /** + * Get the container's bindings. + * + * @return array + * @static + */ + public static function getBindings() + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getBindings(); + } + /** + * Get the alias for an abstract if available. + * + * @param string $abstract + * @return string + * @static + */ + public static function getAlias($abstract) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->getAlias($abstract); + } + /** + * Remove all of the extender callbacks for a given type. + * + * @param string $abstract + * @return void + * @static + */ + public static function forgetExtenders($abstract) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->forgetExtenders($abstract); + } + /** + * Remove a resolved instance from the instance cache. + * + * @param string $abstract + * @return void + * @static + */ + public static function forgetInstance($abstract) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->forgetInstance($abstract); + } + /** + * Clear all of the instances from the container. + * + * @return void + * @static + */ + public static function forgetInstances() + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->forgetInstances(); + } + /** + * Get the globally available instance of the container. + * + * @return static + * @static + */ + public static function getInstance() + { //Method inherited from \Illuminate\Container\Container + return \Illuminate\Foundation\Application::getInstance(); + } + /** + * Set the shared instance of the container. + * + * @param \Illuminate\Contracts\Container\Container|null $container + * @return \Illuminate\Contracts\Container\Container|static + * @static + */ + public static function setInstance($container = null) + { //Method inherited from \Illuminate\Container\Container + return \Illuminate\Foundation\Application::setInstance($container); + } + /** + * Determine if a given offset exists. + * + * @param string $key + * @return bool + * @static + */ + public static function offsetExists($key) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->offsetExists($key); + } + /** + * Get the value at a given offset. + * + * @param string $key + * @return mixed + * @static + */ + public static function offsetGet($key) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + return $instance->offsetGet($key); + } + /** + * Set the value at a given offset. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function offsetSet($key, $value) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->offsetSet($key, $value); + } + /** + * Unset the value at a given offset. + * + * @param string $key + * @return void + * @static + */ + public static function offsetUnset($key) + { //Method inherited from \Illuminate\Container\Container + /** @var \Illuminate\Foundation\Application $instance */ + $instance->offsetUnset($key); + } + + } + /** + * + * + * @see \Illuminate\Contracts\Console\Kernel + */ + class Artisan { + /** + * Run the console application. + * + * @param \Symfony\Component\Console\Input\InputInterface $input + * @param \Symfony\Component\Console\Output\OutputInterface|null $output + * @return int + * @static + */ + public static function handle($input, $output = null) + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + return $instance->handle($input, $output); + } + /** + * Terminate the application. + * + * @param \Symfony\Component\Console\Input\InputInterface $input + * @param int $status + * @return void + * @static + */ + public static function terminate($input, $status) + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + $instance->terminate($input, $status); + } + /** + * Register a Closure based command with the application. + * + * @param string $signature + * @param \Closure $callback + * @return \Illuminate\Foundation\Console\ClosureCommand + * @static + */ + public static function command($signature, $callback) + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + return $instance->command($signature, $callback); + } + /** + * Register the given command with the console application. + * + * @param \Symfony\Component\Console\Command\Command $command + * @return void + * @static + */ + public static function registerCommand($command) + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + $instance->registerCommand($command); + } + /** + * Run an Artisan console command by name. + * + * @param string $command + * @param array $parameters + * @param \Symfony\Component\Console\Output\OutputInterface|null $outputBuffer + * @return int + * @throws \Symfony\Component\Console\Exception\CommandNotFoundException + * @static + */ + public static function call($command, $parameters = [], $outputBuffer = null) + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + return $instance->call($command, $parameters, $outputBuffer); + } + /** + * Queue the given console command. + * + * @param string $command + * @param array $parameters + * @return \Illuminate\Foundation\Bus\PendingDispatch + * @static + */ + public static function queue($command, $parameters = []) + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + return $instance->queue($command, $parameters); + } + /** + * Get all of the commands registered with the console. + * + * @return array + * @static + */ + public static function all() + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + return $instance->all(); + } + /** + * Get the output for the last run command. + * + * @return string + * @static + */ + public static function output() + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + return $instance->output(); + } + /** + * Bootstrap the application for artisan commands. + * + * @return void + * @static + */ + public static function bootstrap() + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + $instance->bootstrap(); + } + /** + * Set the Artisan application instance. + * + * @param \Illuminate\Console\Application $artisan + * @return void + * @static + */ + public static function setArtisan($artisan) + { //Method inherited from \Illuminate\Foundation\Console\Kernel + /** @var \App\Console\Kernel $instance */ + $instance->setArtisan($artisan); + } + + } + /** + * + * + * @see \Illuminate\Auth\AuthManager + * @see \Illuminate\Contracts\Auth\Factory + * @see \Illuminate\Contracts\Auth\Guard + * @see \Illuminate\Contracts\Auth\StatefulGuard + */ + class Auth { + /** + * Attempt to get the guard from the local cache. + * + * @param string|null $name + * @return \Illuminate\Contracts\Auth\Guard|\Illuminate\Contracts\Auth\StatefulGuard + * @static + */ + public static function guard($name = null) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->guard($name); + } + /** + * Create a session based authentication guard. + * + * @param string $name + * @param array $config + * @return \Illuminate\Auth\SessionGuard + * @static + */ + public static function createSessionDriver($name, $config) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->createSessionDriver($name, $config); + } + /** + * Create a token based authentication guard. + * + * @param string $name + * @param array $config + * @return \Illuminate\Auth\TokenGuard + * @static + */ + public static function createTokenDriver($name, $config) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->createTokenDriver($name, $config); + } + /** + * Get the default authentication driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Set the default guard driver the factory should serve. + * + * @param string $name + * @return void + * @static + */ + public static function shouldUse($name) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + $instance->shouldUse($name); + } + /** + * Set the default authentication driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + $instance->setDefaultDriver($name); + } + /** + * Register a new callback based request guard. + * + * @param string $driver + * @param callable $callback + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function viaRequest($driver, $callback) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->viaRequest($driver, $callback); + } + /** + * Get the user resolver callback. + * + * @return \Closure + * @static + */ + public static function userResolver() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->userResolver(); + } + /** + * Set the callback to be used to resolve users. + * + * @param \Closure $userResolver + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function resolveUsersUsing($userResolver) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->resolveUsersUsing($userResolver); + } + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->extend($driver, $callback); + } + /** + * Register a custom provider creator Closure. + * + * @param string $name + * @param \Closure $callback + * @return \Illuminate\Auth\AuthManager + * @static + */ + public static function provider($name, $callback) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->provider($name, $callback); + } + /** + * Determines if any guards have already been resolved. + * + * @return bool + * @static + */ + public static function hasResolvedGuards() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->hasResolvedGuards(); + } + /** + * Create the user provider implementation for the driver. + * + * @param string|null $provider + * @return \Illuminate\Contracts\Auth\UserProvider|null + * @throws \InvalidArgumentException + * @static + */ + public static function createUserProvider($provider = null) + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->createUserProvider($provider); + } + /** + * Get the default user provider name. + * + * @return string + * @static + */ + public static function getDefaultUserProvider() + { + /** @var \Illuminate\Auth\AuthManager $instance */ + return $instance->getDefaultUserProvider(); + } + /** + * Get the currently authenticated user. + * + * @return \App\User|null + * @static + */ + public static function user() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->user(); + } + /** + * Get the ID for the currently authenticated user. + * + * @return int|string|null + * @static + */ + public static function id() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->id(); + } + /** + * Log a user into the application without sessions or cookies. + * + * @param array $credentials + * @return bool + * @static + */ + public static function once($credentials = []) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->once($credentials); + } + /** + * Log the given user ID into the application without sessions or cookies. + * + * @param mixed $id + * @return \App\User|false + * @static + */ + public static function onceUsingId($id) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->onceUsingId($id); + } + /** + * Validate a user's credentials. + * + * @param array $credentials + * @return bool + * @static + */ + public static function validate($credentials = []) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->validate($credentials); + } + /** + * Attempt to authenticate using HTTP Basic Auth. + * + * @param string $field + * @param array $extraConditions + * @return \Symfony\Component\HttpFoundation\Response|null + * @static + */ + public static function basic($field = 'email', $extraConditions = []) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->basic($field, $extraConditions); + } + /** + * Perform a stateless HTTP Basic login attempt. + * + * @param string $field + * @param array $extraConditions + * @return \Symfony\Component\HttpFoundation\Response|null + * @static + */ + public static function onceBasic($field = 'email', $extraConditions = []) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->onceBasic($field, $extraConditions); + } + /** + * Attempt to authenticate a user using the given credentials. + * + * @param array $credentials + * @param bool $remember + * @return bool + * @static + */ + public static function attempt($credentials = [], $remember = false) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->attempt($credentials, $remember); + } + /** + * Log the given user ID into the application. + * + * @param mixed $id + * @param bool $remember + * @return \App\User|false + * @static + */ + public static function loginUsingId($id, $remember = false) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->loginUsingId($id, $remember); + } + /** + * Log a user into the application. + * + * @param \Illuminate\Contracts\Auth\Authenticatable $user + * @param bool $remember + * @return void + * @static + */ + public static function login($user, $remember = false) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->login($user, $remember); + } + /** + * Log the user out of the application. + * + * @return void + * @static + */ + public static function logout() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->logout(); + } + /** + * Log the user out of the application on their current device only. + * + * This method does not cycle the "remember" token. + * + * @return void + * @static + */ + public static function logoutCurrentDevice() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->logoutCurrentDevice(); + } + /** + * Invalidate other sessions for the current user. + * + * The application must be using the AuthenticateSession middleware. + * + * @param string $password + * @param string $attribute + * @return bool|null + * @static + */ + public static function logoutOtherDevices($password, $attribute = 'password') + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->logoutOtherDevices($password, $attribute); + } + /** + * Register an authentication attempt event listener. + * + * @param mixed $callback + * @return void + * @static + */ + public static function attempting($callback) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->attempting($callback); + } + /** + * Get the last user we attempted to authenticate. + * + * @return \App\User + * @static + */ + public static function getLastAttempted() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getLastAttempted(); + } + /** + * Get a unique identifier for the auth session value. + * + * @return string + * @static + */ + public static function getName() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getName(); + } + /** + * Get the name of the cookie used to store the "recaller". + * + * @return string + * @static + */ + public static function getRecallerName() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getRecallerName(); + } + /** + * Determine if the user was authenticated via "remember me" cookie. + * + * @return bool + * @static + */ + public static function viaRemember() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->viaRemember(); + } + /** + * Get the cookie creator instance used by the guard. + * + * @return \Illuminate\Contracts\Cookie\QueueingFactory + * @throws \RuntimeException + * @static + */ + public static function getCookieJar() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getCookieJar(); + } + /** + * Set the cookie creator instance used by the guard. + * + * @param \Illuminate\Contracts\Cookie\QueueingFactory $cookie + * @return void + * @static + */ + public static function setCookieJar($cookie) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->setCookieJar($cookie); + } + /** + * Get the event dispatcher instance. + * + * @return \Illuminate\Contracts\Events\Dispatcher + * @static + */ + public static function getDispatcher() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getDispatcher(); + } + /** + * Set the event dispatcher instance. + * + * @param \Illuminate\Contracts\Events\Dispatcher $events + * @return void + * @static + */ + public static function setDispatcher($events) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->setDispatcher($events); + } + /** + * Get the session store used by the guard. + * + * @return \Illuminate\Contracts\Session\Session + * @static + */ + public static function getSession() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getSession(); + } + /** + * Return the currently cached user. + * + * @return \App\User|null + * @static + */ + public static function getUser() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getUser(); + } + /** + * Set the current user. + * + * @param \Illuminate\Contracts\Auth\Authenticatable $user + * @return \Illuminate\Auth\SessionGuard + * @static + */ + public static function setUser($user) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->setUser($user); + } + /** + * Get the current request instance. + * + * @return \Symfony\Component\HttpFoundation\Request + * @static + */ + public static function getRequest() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getRequest(); + } + /** + * Set the current request instance. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @return \Illuminate\Auth\SessionGuard + * @static + */ + public static function setRequest($request) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->setRequest($request); + } + /** + * Determine if current user is authenticated. If not, throw an exception. + * + * @return \App\User + * @throws \Illuminate\Auth\AuthenticationException + * @static + */ + public static function authenticate() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->authenticate(); + } + /** + * Determine if the guard has a user instance. + * + * @return bool + * @static + */ + public static function hasUser() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->hasUser(); + } + /** + * Determine if the current user is authenticated. + * + * @return bool + * @static + */ + public static function check() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->check(); + } + /** + * Determine if the current user is a guest. + * + * @return bool + * @static + */ + public static function guest() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->guest(); + } + /** + * Get the user provider used by the guard. + * + * @return \Illuminate\Contracts\Auth\UserProvider + * @static + */ + public static function getProvider() + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + return $instance->getProvider(); + } + /** + * Set the user provider used by the guard. + * + * @param \Illuminate\Contracts\Auth\UserProvider $provider + * @return void + * @static + */ + public static function setProvider($provider) + { + /** @var \Illuminate\Auth\SessionGuard $instance */ + $instance->setProvider($provider); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Auth\SessionGuard::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Auth\SessionGuard::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Auth\SessionGuard::hasMacro($name); + } + + } + /** + * + * + * @see \Illuminate\View\Compilers\BladeCompiler + */ + class Blade { + /** + * Compile the view at the given path. + * + * @param string|null $path + * @return void + * @static + */ + public static function compile($path = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->compile($path); + } + /** + * Get the path currently being compiled. + * + * @return string + * @static + */ + public static function getPath() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getPath(); + } + /** + * Set the path currently being compiled. + * + * @param string $path + * @return void + * @static + */ + public static function setPath($path) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->setPath($path); + } + /** + * Compile the given Blade template contents. + * + * @param string $value + * @return string + * @static + */ + public static function compileString($value) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->compileString($value); + } + /** + * Strip the parentheses from the given expression. + * + * @param string $expression + * @return string + * @static + */ + public static function stripParentheses($expression) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->stripParentheses($expression); + } + /** + * Register a custom Blade compiler. + * + * @param callable $compiler + * @return void + * @static + */ + public static function extend($compiler) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->extend($compiler); + } + /** + * Get the extensions used by the compiler. + * + * @return array + * @static + */ + public static function getExtensions() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getExtensions(); + } + /** + * Register an "if" statement directive. + * + * @param string $name + * @param callable $callback + * @return void + * @static + */ + public static function if($name, $callback) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->if($name, $callback); + } + /** + * Check the result of a condition. + * + * @param string $name + * @param array $parameters + * @return bool + * @static + */ + public static function check($name, ...$parameters) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->check($name, ...$parameters); + } + /** + * Register a class-based component alias directive. + * + * @param string $class + * @param string|null $alias + * @param string $prefix + * @return void + * @static + */ + public static function component($class, $alias = null, $prefix = '') + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->component($class, $alias, $prefix); + } + /** + * Register an array of class-based components. + * + * @param array $components + * @param string $prefix + * @return void + * @static + */ + public static function components($components, $prefix = '') + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->components($components, $prefix); + } + /** + * Get the registered class component aliases. + * + * @return array + * @static + */ + public static function getClassComponentAliases() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getClassComponentAliases(); + } + /** + * Register a class-based component namespace. + * + * @param string $namespace + * @param string $prefix + * @return void + * @static + */ + public static function componentNamespace($namespace, $prefix) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->componentNamespace($namespace, $prefix); + } + /** + * Get the registered class component namespaces. + * + * @return array + * @static + */ + public static function getClassComponentNamespaces() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getClassComponentNamespaces(); + } + /** + * Register a component alias directive. + * + * @param string $path + * @param string|null $alias + * @return void + * @static + */ + public static function aliasComponent($path, $alias = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->aliasComponent($path, $alias); + } + /** + * Register an include alias directive. + * + * @param string $path + * @param string|null $alias + * @return void + * @static + */ + public static function include($path, $alias = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->include($path, $alias); + } + /** + * Register an include alias directive. + * + * @param string $path + * @param string|null $alias + * @return void + * @static + */ + public static function aliasInclude($path, $alias = null) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->aliasInclude($path, $alias); + } + /** + * Register a handler for custom directives. + * + * @param string $name + * @param callable $handler + * @return void + * @throws \InvalidArgumentException + * @static + */ + public static function directive($name, $handler) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->directive($name, $handler); + } + /** + * Get the list of custom directives. + * + * @return array + * @static + */ + public static function getCustomDirectives() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getCustomDirectives(); + } + /** + * Register a new precompiler. + * + * @param callable $precompiler + * @return void + * @static + */ + public static function precompiler($precompiler) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->precompiler($precompiler); + } + /** + * Set the echo format to be used by the compiler. + * + * @param string $format + * @return void + * @static + */ + public static function setEchoFormat($format) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->setEchoFormat($format); + } + /** + * Set the "echo" format to double encode entities. + * + * @return void + * @static + */ + public static function withDoubleEncoding() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->withDoubleEncoding(); + } + /** + * Set the "echo" format to not double encode entities. + * + * @return void + * @static + */ + public static function withoutDoubleEncoding() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->withoutDoubleEncoding(); + } + /** + * Indicate that component tags should not be compiled. + * + * @return void + * @static + */ + public static function withoutComponentTags() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + $instance->withoutComponentTags(); + } + /** + * Get the path to the compiled version of a view. + * + * @param string $path + * @return string + * @static + */ + public static function getCompiledPath($path) + { //Method inherited from \Illuminate\View\Compilers\Compiler + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->getCompiledPath($path); + } + /** + * Determine if the view at the given path is expired. + * + * @param string $path + * @return bool + * @static + */ + public static function isExpired($path) + { //Method inherited from \Illuminate\View\Compilers\Compiler + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->isExpired($path); + } + /** + * Get a new component hash for a component name. + * + * @param string $component + * @return string + * @static + */ + public static function newComponentHash($component) + { + return \Illuminate\View\Compilers\BladeCompiler::newComponentHash($component); + } + /** + * Compile a class component opening. + * + * @param string $component + * @param string $alias + * @param string $data + * @param string $hash + * @return string + * @static + */ + public static function compileClassComponentOpening($component, $alias, $data, $hash) + { + return \Illuminate\View\Compilers\BladeCompiler::compileClassComponentOpening($component, $alias, $data, $hash); + } + /** + * Compile the end-component statements into valid PHP. + * + * @return string + * @static + */ + public static function compileEndComponentClass() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->compileEndComponentClass(); + } + /** + * Sanitize the given component attribute value. + * + * @param mixed $value + * @return mixed + * @static + */ + public static function sanitizeComponentAttribute($value) + { + return \Illuminate\View\Compilers\BladeCompiler::sanitizeComponentAttribute($value); + } + /** + * Compile an end-once block into valid PHP. + * + * @return string + * @static + */ + public static function compileEndOnce() + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->compileEndOnce(); + } + /** + * Compile Blade echos into valid PHP. + * + * @param string $value + * @return string + * @static + */ + public static function compileEchos($value) + { + /** @var \Illuminate\View\Compilers\BladeCompiler $instance */ + return $instance->compileEchos($value); + } + + } + /** + * + * + * @method static \Illuminate\Broadcasting\Broadcasters\Broadcaster channel(string $channel, callable|string $callback, array $options = []) + * @method static mixed auth(\Illuminate\Http\Request $request) + * @see \Illuminate\Contracts\Broadcasting\Factory + */ + class Broadcast { + /** + * Register the routes for handling broadcast authentication and sockets. + * + * @param array|null $attributes + * @return void + * @static + */ + public static function routes($attributes = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->routes($attributes); + } + /** + * Get the socket ID for the given request. + * + * @param \Illuminate\Http\Request|null $request + * @return string|null + * @static + */ + public static function socket($request = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->socket($request); + } + /** + * Begin broadcasting an event. + * + * @param mixed|null $event + * @return \Illuminate\Broadcasting\PendingBroadcast + * @static + */ + public static function event($event = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->event($event); + } + /** + * Queue the given event for broadcast. + * + * @param mixed $event + * @return void + * @static + */ + public static function queue($event) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->queue($event); + } + /** + * Get a driver instance. + * + * @param string|null $driver + * @return mixed + * @static + */ + public static function connection($driver = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->connection($driver); + } + /** + * Get a driver instance. + * + * @param string|null $name + * @return mixed + * @static + */ + public static function driver($name = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->driver($name); + } + /** + * Get the default driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Set the default driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->setDefaultDriver($name); + } + /** + * Disconnect the given disk and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + $instance->purge($name); + } + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Broadcasting\BroadcastManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Broadcasting\BroadcastManager $instance */ + return $instance->extend($driver, $callback); + } + + } + /** + * + * + * @see \Illuminate\Contracts\Bus\Dispatcher + */ + class Bus { + /** + * Dispatch a command to its appropriate handler. + * + * @param mixed $command + * @return mixed + * @static + */ + public static function dispatch($command) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->dispatch($command); + } + /** + * Dispatch a command to its appropriate handler in the current process. + * + * Queuable jobs will be dispatched to the "sync" queue. + * + * @param mixed $command + * @param mixed $handler + * @return mixed + * @static + */ + public static function dispatchSync($command, $handler = null) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->dispatchSync($command, $handler); + } + /** + * Dispatch a command to its appropriate handler in the current process without using the synchronous queue. + * + * @param mixed $command + * @param mixed $handler + * @return mixed + * @static + */ + public static function dispatchNow($command, $handler = null) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->dispatchNow($command, $handler); + } + /** + * Attempt to find the batch with the given ID. + * + * @param string $batchId + * @return \Illuminate\Bus\Batch|null + * @static + */ + public static function findBatch($batchId) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->findBatch($batchId); + } + /** + * Create a new batch of queueable jobs. + * + * @param \Illuminate\Support\Collection|array|mixed $jobs + * @return \Illuminate\Bus\PendingBatch + * @static + */ + public static function batch($jobs) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->batch($jobs); + } + /** + * Create a new chain of queueable jobs. + * + * @param \Illuminate\Support\Collection|array $jobs + * @return \Illuminate\Foundation\Bus\PendingChain + * @static + */ + public static function chain($jobs) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->chain($jobs); + } + /** + * Determine if the given command has a handler. + * + * @param mixed $command + * @return bool + * @static + */ + public static function hasCommandHandler($command) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->hasCommandHandler($command); + } + /** + * Retrieve the handler for a command. + * + * @param mixed $command + * @return bool|mixed + * @static + */ + public static function getCommandHandler($command) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->getCommandHandler($command); + } + /** + * Dispatch a command to its appropriate handler behind a queue. + * + * @param mixed $command + * @return mixed + * @static + */ + public static function dispatchToQueue($command) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->dispatchToQueue($command); + } + /** + * Dispatch a command to its appropriate handler after the current process. + * + * @param mixed $command + * @param mixed $handler + * @return void + * @static + */ + public static function dispatchAfterResponse($command, $handler = null) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + $instance->dispatchAfterResponse($command, $handler); + } + /** + * Set the pipes through which commands should be piped before dispatching. + * + * @param array $pipes + * @return \Illuminate\Bus\Dispatcher + * @static + */ + public static function pipeThrough($pipes) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->pipeThrough($pipes); + } + /** + * Map a command to a handler. + * + * @param array $map + * @return \Illuminate\Bus\Dispatcher + * @static + */ + public static function map($map) + { + /** @var \Illuminate\Bus\Dispatcher $instance */ + return $instance->map($map); + } + /** + * Assert if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertDispatched($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatched($command, $callback); + } + /** + * Assert if a job was pushed a number of times. + * + * @param string $command + * @param int $times + * @return void + * @static + */ + public static function assertDispatchedTimes($command, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedTimes($command, $times); + } + /** + * Determine if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotDispatched($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNotDispatched($command, $callback); + } + /** + * Assert if a job was dispatched after the response was sent based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertDispatchedAfterResponse($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedAfterResponse($command, $callback); + } + /** + * Assert if a job was pushed after the response was sent a number of times. + * + * @param string $command + * @param int $times + * @return void + * @static + */ + public static function assertDispatchedAfterResponseTimes($command, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedAfterResponseTimes($command, $times); + } + /** + * Determine if a job was dispatched based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotDispatchedAfterResponse($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertNotDispatchedAfterResponse($command, $callback); + } + /** + * Assert if a chain of jobs was dispatched. + * + * @param array $expectedChain + * @return void + * @static + */ + public static function assertChained($expectedChain) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertChained($expectedChain); + } + /** + * Assert if a job was dispatched with an empty chain based on a truth-test callback. + * + * @param string|\Closure $command + * @param callable|null $callback + * @return void + * @static + */ + public static function assertDispatchedWithoutChain($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertDispatchedWithoutChain($command, $callback); + } + /** + * Assert if a batch was dispatched based on a truth-test callback. + * + * @param callable $callback + * @return void + * @static + */ + public static function assertBatched($callback) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + $instance->assertBatched($callback); + } + /** + * Get all of the jobs matching a truth-test callback. + * + * @param string $command + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function dispatched($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->dispatched($command, $callback); + } + /** + * Get all of the jobs dispatched after the response was sent matching a truth-test callback. + * + * @param string $command + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function dispatchedAfterResponse($command, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->dispatchedAfterResponse($command, $callback); + } + /** + * Get all of the pending batches matching a truth-test callback. + * + * @param callable $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function batched($callback) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->batched($callback); + } + /** + * Determine if there are any stored commands for a given class. + * + * @param string $command + * @return bool + * @static + */ + public static function hasDispatched($command) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->hasDispatched($command); + } + /** + * Determine if there are any stored commands for a given class. + * + * @param string $command + * @return bool + * @static + */ + public static function hasDispatchedAfterResponse($command) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->hasDispatchedAfterResponse($command); + } + /** + * Record the fake pending batch dispatch. + * + * @param \Illuminate\Bus\PendingBatch $pendingBatch + * @return \Illuminate\Bus\Batch + * @static + */ + public static function recordPendingBatch($pendingBatch) + { + /** @var \Illuminate\Support\Testing\Fakes\BusFake $instance */ + return $instance->recordPendingBatch($pendingBatch); + } + + } + /** + * + * + * @see \Illuminate\Cache\CacheManager + * @see \Illuminate\Cache\Repository + */ + class Cache { + /** + * Get a cache store instance by name, wrapped in a repository. + * + * @param string|null $name + * @return \Illuminate\Contracts\Cache\Repository + * @static + */ + public static function store($name = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->store($name); + } + /** + * Get a cache driver instance. + * + * @param string|null $driver + * @return \Illuminate\Contracts\Cache\Repository + * @static + */ + public static function driver($driver = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->driver($driver); + } + /** + * Create a new cache repository with the given implementation. + * + * @param \Illuminate\Contracts\Cache\Store $store + * @return \Illuminate\Cache\Repository + * @static + */ + public static function repository($store) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->repository($store); + } + /** + * Re-set the event dispatcher on all resolved cache repositories. + * + * @return void + * @static + */ + public static function refreshEventDispatcher() + { + /** @var \Illuminate\Cache\CacheManager $instance */ + $instance->refreshEventDispatcher(); + } + /** + * Get the default cache driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Set the default cache driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + $instance->setDefaultDriver($name); + } + /** + * Unset the given driver instances. + * + * @param array|string|null $name + * @return \Illuminate\Cache\CacheManager + * @static + */ + public static function forgetDriver($name = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->forgetDriver($name); + } + /** + * Disconnect the given driver and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + $instance->purge($name); + } + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Cache\CacheManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Cache\CacheManager $instance */ + return $instance->extend($driver, $callback); + } + /** + * Determine if an item exists in the cache. + * + * @param string $key + * @return bool + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->has($key); + } + /** + * Determine if an item doesn't exist in the cache. + * + * @param string $key + * @return bool + * @static + */ + public static function missing($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->missing($key); + } + /** + * Retrieve an item from the cache by key. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->get($key, $default); + } + /** + * Retrieve multiple items from the cache by key. + * + * Items not found in the cache will have a null value. + * + * @param array $keys + * @return array + * @static + */ + public static function many($keys) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->many($keys); + } + /** + * Obtains multiple cache items by their unique keys. + * + * @param \Psr\SimpleCache\iterable $keys A list of keys that can obtained in a single operation. + * @param mixed $default Default value to return for keys that do not exist. + * @return \Psr\SimpleCache\iterable A list of key => value pairs. Cache keys that do not exist or are stale will have $default as value. + * @throws \Psr\SimpleCache\InvalidArgumentException + * MUST be thrown if $keys is neither an array nor a Traversable, + * or if any of the $keys are not a legal value. + * @static + */ + public static function getMultiple($keys, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getMultiple($keys, $default); + } + /** + * Retrieve an item from the cache and delete it. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function pull($key, $default = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->pull($key, $default); + } + /** + * Store an item in the cache. + * + * @param string $key + * @param mixed $value + * @param \DateTimeInterface|\DateInterval|int|null $ttl + * @return bool + * @static + */ + public static function put($key, $value, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->put($key, $value, $ttl); + } + /** + * Persists data in the cache, uniquely referenced by a key with an optional expiration TTL time. + * + * @param string $key The key of the item to store. + * @param mixed $value The value of the item to store, must be serializable. + * @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and + * the driver supports TTL then the library may set a default value + * for it or let the driver take care of that. + * @return bool True on success and false on failure. + * @throws \Psr\SimpleCache\InvalidArgumentException + * MUST be thrown if the $key string is not a legal value. + * @static + */ + public static function set($key, $value, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->set($key, $value, $ttl); + } + /** + * Store multiple items in the cache for a given number of seconds. + * + * @param array $values + * @param \DateTimeInterface|\DateInterval|int|null $ttl + * @return bool + * @static + */ + public static function putMany($values, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->putMany($values, $ttl); + } + /** + * Persists a set of key => value pairs in the cache, with an optional TTL. + * + * @param \Psr\SimpleCache\iterable $values A list of key => value pairs for a multiple-set operation. + * @param null|int|\DateInterval $ttl Optional. The TTL value of this item. If no value is sent and + * the driver supports TTL then the library may set a default value + * for it or let the driver take care of that. + * @return bool True on success and false on failure. + * @throws \Psr\SimpleCache\InvalidArgumentException + * MUST be thrown if $values is neither an array nor a Traversable, + * or if any of the $values are not a legal value. + * @static + */ + public static function setMultiple($values, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->setMultiple($values, $ttl); + } + /** + * Store an item in the cache if the key does not exist. + * + * @param string $key + * @param mixed $value + * @param \DateTimeInterface|\DateInterval|int|null $ttl + * @return bool + * @static + */ + public static function add($key, $value, $ttl = null) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->add($key, $value, $ttl); + } + /** + * Increment the value of an item in the cache. + * + * @param string $key + * @param mixed $value + * @return int|bool + * @static + */ + public static function increment($key, $value = 1) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->increment($key, $value); + } + /** + * Decrement the value of an item in the cache. + * + * @param string $key + * @param mixed $value + * @return int|bool + * @static + */ + public static function decrement($key, $value = 1) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->decrement($key, $value); + } + /** + * Store an item in the cache indefinitely. + * + * @param string $key + * @param mixed $value + * @return bool + * @static + */ + public static function forever($key, $value) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->forever($key, $value); + } + /** + * Get an item from the cache, or execute the given Closure and store the result. + * + * @param string $key + * @param \DateTimeInterface|\DateInterval|int|null $ttl + * @param \Closure $callback + * @return mixed + * @static + */ + public static function remember($key, $ttl, $callback) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->remember($key, $ttl, $callback); + } + /** + * Get an item from the cache, or execute the given Closure and store the result forever. + * + * @param string $key + * @param \Closure $callback + * @return mixed + * @static + */ + public static function sear($key, $callback) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->sear($key, $callback); + } + /** + * Get an item from the cache, or execute the given Closure and store the result forever. + * + * @param string $key + * @param \Closure $callback + * @return mixed + * @static + */ + public static function rememberForever($key, $callback) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->rememberForever($key, $callback); + } + /** + * Remove an item from the cache. + * + * @param string $key + * @return bool + * @static + */ + public static function forget($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->forget($key); + } + /** + * Delete an item from the cache by its unique key. + * + * @param string $key The unique cache key of the item to delete. + * @return bool True if the item was successfully removed. False if there was an error. + * @throws \Psr\SimpleCache\InvalidArgumentException + * MUST be thrown if the $key string is not a legal value. + * @static + */ + public static function delete($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->delete($key); + } + /** + * Deletes multiple cache items in a single operation. + * + * @param \Psr\SimpleCache\iterable $keys A list of string-based keys to be deleted. + * @return bool True if the items were successfully removed. False if there was an error. + * @throws \Psr\SimpleCache\InvalidArgumentException + * MUST be thrown if $keys is neither an array nor a Traversable, + * or if any of the $keys are not a legal value. + * @static + */ + public static function deleteMultiple($keys) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->deleteMultiple($keys); + } + /** + * Wipes clean the entire cache's keys. + * + * @return bool True on success and false on failure. + * @static + */ + public static function clear() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->clear(); + } + /** + * Begin executing a new tags operation if the store supports it. + * + * @param array|mixed $names + * @return \Illuminate\Cache\TaggedCache + * @throws \BadMethodCallException + * @static + */ + public static function tags($names) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->tags($names); + } + /** + * Determine if the current store supports tags. + * + * @return bool + * @static + */ + public static function supportsTags() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->supportsTags(); + } + /** + * Get the default cache time. + * + * @return int|null + * @static + */ + public static function getDefaultCacheTime() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getDefaultCacheTime(); + } + /** + * Set the default cache time in seconds. + * + * @param int|null $seconds + * @return \Illuminate\Cache\Repository + * @static + */ + public static function setDefaultCacheTime($seconds) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->setDefaultCacheTime($seconds); + } + /** + * Get the cache store implementation. + * + * @return \Illuminate\Contracts\Cache\Store + * @static + */ + public static function getStore() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getStore(); + } + /** + * Get the event dispatcher instance. + * + * @return \Illuminate\Contracts\Events\Dispatcher + * @static + */ + public static function getEventDispatcher() + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->getEventDispatcher(); + } + /** + * Set the event dispatcher instance. + * + * @param \Illuminate\Contracts\Events\Dispatcher $events + * @return void + * @static + */ + public static function setEventDispatcher($events) + { + /** @var \Illuminate\Cache\Repository $instance */ + $instance->setEventDispatcher($events); + } + /** + * Determine if a cached value exists. + * + * @param string $key + * @return bool + * @static + */ + public static function offsetExists($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->offsetExists($key); + } + /** + * Retrieve an item from the cache by key. + * + * @param string $key + * @return mixed + * @static + */ + public static function offsetGet($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->offsetGet($key); + } + /** + * Store an item in the cache for the default time. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function offsetSet($key, $value) + { + /** @var \Illuminate\Cache\Repository $instance */ + $instance->offsetSet($key, $value); + } + /** + * Remove an item from the cache. + * + * @param string $key + * @return void + * @static + */ + public static function offsetUnset($key) + { + /** @var \Illuminate\Cache\Repository $instance */ + $instance->offsetUnset($key); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Cache\Repository::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Cache\Repository::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Cache\Repository::hasMacro($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Cache\Repository $instance */ + return $instance->macroCall($method, $parameters); + } + /** + * Remove all items from the cache. + * + * @return bool + * @static + */ + public static function flush() + { + /** @var \Illuminate\Cache\FileStore $instance */ + return $instance->flush(); + } + /** + * Get the Filesystem instance. + * + * @return \Illuminate\Filesystem\Filesystem + * @static + */ + public static function getFilesystem() + { + /** @var \Illuminate\Cache\FileStore $instance */ + return $instance->getFilesystem(); + } + /** + * Get the working directory of the cache. + * + * @return string + * @static + */ + public static function getDirectory() + { + /** @var \Illuminate\Cache\FileStore $instance */ + return $instance->getDirectory(); + } + /** + * Get the cache key prefix. + * + * @return string + * @static + */ + public static function getPrefix() + { + /** @var \Illuminate\Cache\FileStore $instance */ + return $instance->getPrefix(); + } + /** + * Get a lock instance. + * + * @param string $name + * @param int $seconds + * @param string|null $owner + * @return \Illuminate\Contracts\Cache\Lock + * @static + */ + public static function lock($name, $seconds = 0, $owner = null) + { + /** @var \Illuminate\Cache\FileStore $instance */ + return $instance->lock($name, $seconds, $owner); + } + /** + * Restore a lock instance using the owner identifier. + * + * @param string $name + * @param string $owner + * @return \Illuminate\Contracts\Cache\Lock + * @static + */ + public static function restoreLock($name, $owner) + { + /** @var \Illuminate\Cache\FileStore $instance */ + return $instance->restoreLock($name, $owner); + } + + } + /** + * + * + * @see \Illuminate\Config\Repository + */ + class Config { + /** + * Determine if the given configuration value exists. + * + * @param string $key + * @return bool + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->has($key); + } + /** + * Get the specified configuration value. + * + * @param array|string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->get($key, $default); + } + /** + * Get many configuration values. + * + * @param array $keys + * @return array + * @static + */ + public static function getMany($keys) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->getMany($keys); + } + /** + * Set a given configuration value. + * + * @param array|string $key + * @param mixed $value + * @return void + * @static + */ + public static function set($key, $value = null) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->set($key, $value); + } + /** + * Prepend a value onto an array configuration value. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function prepend($key, $value) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->prepend($key, $value); + } + /** + * Push a value onto an array configuration value. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function push($key, $value) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->push($key, $value); + } + /** + * Get all of the configuration items for the application. + * + * @return array + * @static + */ + public static function all() + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->all(); + } + /** + * Determine if the given configuration option exists. + * + * @param string $key + * @return bool + * @static + */ + public static function offsetExists($key) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->offsetExists($key); + } + /** + * Get a configuration option. + * + * @param string $key + * @return mixed + * @static + */ + public static function offsetGet($key) + { + /** @var \Illuminate\Config\Repository $instance */ + return $instance->offsetGet($key); + } + /** + * Set a configuration option. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function offsetSet($key, $value) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->offsetSet($key, $value); + } + /** + * Unset a configuration option. + * + * @param string $key + * @return void + * @static + */ + public static function offsetUnset($key) + { + /** @var \Illuminate\Config\Repository $instance */ + $instance->offsetUnset($key); + } + + } + /** + * + * + * @see \Illuminate\Cookie\CookieJar + */ + class Cookie { + /** + * Create a new cookie instance. + * + * @param string $name + * @param string $value + * @param int $minutes + * @param string|null $path + * @param string|null $domain + * @param bool|null $secure + * @param bool $httpOnly + * @param bool $raw + * @param string|null $sameSite + * @return \Symfony\Component\HttpFoundation\Cookie + * @static + */ + public static function make($name, $value, $minutes = 0, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->make($name, $value, $minutes, $path, $domain, $secure, $httpOnly, $raw, $sameSite); + } + /** + * Create a cookie that lasts "forever" (five years). + * + * @param string $name + * @param string $value + * @param string|null $path + * @param string|null $domain + * @param bool|null $secure + * @param bool $httpOnly + * @param bool $raw + * @param string|null $sameSite + * @return \Symfony\Component\HttpFoundation\Cookie + * @static + */ + public static function forever($name, $value, $path = null, $domain = null, $secure = null, $httpOnly = true, $raw = false, $sameSite = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->forever($name, $value, $path, $domain, $secure, $httpOnly, $raw, $sameSite); + } + /** + * Expire the given cookie. + * + * @param string $name + * @param string|null $path + * @param string|null $domain + * @return \Symfony\Component\HttpFoundation\Cookie + * @static + */ + public static function forget($name, $path = null, $domain = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->forget($name, $path, $domain); + } + /** + * Determine if a cookie has been queued. + * + * @param string $key + * @param string|null $path + * @return bool + * @static + */ + public static function hasQueued($key, $path = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->hasQueued($key, $path); + } + /** + * Get a queued cookie instance. + * + * @param string $key + * @param mixed $default + * @param string|null $path + * @return \Symfony\Component\HttpFoundation\Cookie|null + * @static + */ + public static function queued($key, $default = null, $path = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->queued($key, $default, $path); + } + /** + * Queue a cookie to send with the next response. + * + * @param array $parameters + * @return void + * @static + */ + public static function queue(...$parameters) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + $instance->queue(...$parameters); + } + /** + * Remove a cookie from the queue. + * + * @param string $name + * @param string|null $path + * @return void + * @static + */ + public static function unqueue($name, $path = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + $instance->unqueue($name, $path); + } + /** + * Set the default path and domain for the jar. + * + * @param string $path + * @param string $domain + * @param bool $secure + * @param string|null $sameSite + * @return \Illuminate\Cookie\CookieJar + * @static + */ + public static function setDefaultPathAndDomain($path, $domain, $secure = false, $sameSite = null) + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->setDefaultPathAndDomain($path, $domain, $secure, $sameSite); + } + /** + * Get the cookies which have been queued for the next request. + * + * @return \Symfony\Component\HttpFoundation\Cookie[] + * @static + */ + public static function getQueuedCookies() + { + /** @var \Illuminate\Cookie\CookieJar $instance */ + return $instance->getQueuedCookies(); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Cookie\CookieJar::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Cookie\CookieJar::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Cookie\CookieJar::hasMacro($name); + } + + } + /** + * + * + * @see \Illuminate\Encryption\Encrypter + */ + class Crypt { + /** + * Determine if the given key and cipher combination is valid. + * + * @param string $key + * @param string $cipher + * @return bool + * @static + */ + public static function supported($key, $cipher) + { + return \Illuminate\Encryption\Encrypter::supported($key, $cipher); + } + /** + * Create a new encryption key for the given cipher. + * + * @param string $cipher + * @return string + * @static + */ + public static function generateKey($cipher) + { + return \Illuminate\Encryption\Encrypter::generateKey($cipher); + } + /** + * Encrypt the given value. + * + * @param mixed $value + * @param bool $serialize + * @return string + * @throws \Illuminate\Contracts\Encryption\EncryptException + * @static + */ + public static function encrypt($value, $serialize = true) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->encrypt($value, $serialize); + } + /** + * Encrypt a string without serialization. + * + * @param string $value + * @return string + * @throws \Illuminate\Contracts\Encryption\EncryptException + * @static + */ + public static function encryptString($value) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->encryptString($value); + } + /** + * Decrypt the given value. + * + * @param string $payload + * @param bool $unserialize + * @return mixed + * @throws \Illuminate\Contracts\Encryption\DecryptException + * @static + */ + public static function decrypt($payload, $unserialize = true) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->decrypt($payload, $unserialize); + } + /** + * Decrypt the given string without unserialization. + * + * @param string $payload + * @return string + * @throws \Illuminate\Contracts\Encryption\DecryptException + * @static + */ + public static function decryptString($payload) + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->decryptString($payload); + } + /** + * Get the encryption key. + * + * @return string + * @static + */ + public static function getKey() + { + /** @var \Illuminate\Encryption\Encrypter $instance */ + return $instance->getKey(); + } + + } + /** + * + * + * @see \Illuminate\Database\DatabaseManager + * @see \Illuminate\Database\Connection + */ + class DB { + /** + * Get a database connection instance. + * + * @param string|null $name + * @return \Illuminate\Database\Connection + * @static + */ + public static function connection($name = null) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->connection($name); + } + /** + * Disconnect from the given database and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->purge($name); + } + /** + * Disconnect from the given database. + * + * @param string|null $name + * @return void + * @static + */ + public static function disconnect($name = null) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->disconnect($name); + } + /** + * Reconnect to the given database. + * + * @param string|null $name + * @return \Illuminate\Database\Connection + * @static + */ + public static function reconnect($name = null) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->reconnect($name); + } + /** + * Set the default database connection for the callback execution. + * + * @param string $name + * @param callable $callback + * @return mixed + * @static + */ + public static function usingConnection($name, $callback) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->usingConnection($name, $callback); + } + /** + * Get the default connection name. + * + * @return string + * @static + */ + public static function getDefaultConnection() + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->getDefaultConnection(); + } + /** + * Set the default connection name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultConnection($name) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->setDefaultConnection($name); + } + /** + * Get all of the support drivers. + * + * @return array + * @static + */ + public static function supportedDrivers() + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->supportedDrivers(); + } + /** + * Get all of the drivers that are actually available. + * + * @return array + * @static + */ + public static function availableDrivers() + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->availableDrivers(); + } + /** + * Register an extension connection resolver. + * + * @param string $name + * @param callable $resolver + * @return void + * @static + */ + public static function extend($name, $resolver) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->extend($name, $resolver); + } + /** + * Return all of the created connections. + * + * @return array + * @static + */ + public static function getConnections() + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + return $instance->getConnections(); + } + /** + * Set the database reconnector callback. + * + * @param callable $reconnector + * @return void + * @static + */ + public static function setReconnector($reconnector) + { + /** @var \Illuminate\Database\DatabaseManager $instance */ + $instance->setReconnector($reconnector); + } + /** + * Determine if the connected database is a MariaDB database. + * + * @return bool + * @static + */ + public static function isMaria() + { + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->isMaria(); + } + /** + * Get a schema builder instance for the connection. + * + * @return \Illuminate\Database\Schema\MySqlBuilder + * @static + */ + public static function getSchemaBuilder() + { + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getSchemaBuilder(); + } + /** + * Get the schema state for the connection. + * + * @param \Illuminate\Filesystem\Filesystem|null $files + * @param callable|null $processFactory + * @return \Illuminate\Database\Schema\MySqlSchemaState + * @static + */ + public static function getSchemaState($files = null, $processFactory = null) + { + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getSchemaState($files, $processFactory); + } + /** + * Set the query grammar to the default implementation. + * + * @return void + * @static + */ + public static function useDefaultQueryGrammar() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->useDefaultQueryGrammar(); + } + /** + * Set the schema grammar to the default implementation. + * + * @return void + * @static + */ + public static function useDefaultSchemaGrammar() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->useDefaultSchemaGrammar(); + } + /** + * Set the query post processor to the default implementation. + * + * @return void + * @static + */ + public static function useDefaultPostProcessor() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->useDefaultPostProcessor(); + } + /** + * Begin a fluent query against a database table. + * + * @param \Closure|\Illuminate\Database\Query\Builder|string $table + * @param string|null $as + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function table($table, $as = null) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->table($table, $as); + } + /** + * Get a new query builder instance. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function query() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->query(); + } + /** + * Run a select statement and return a single result. + * + * @param string $query + * @param array $bindings + * @param bool $useReadPdo + * @return mixed + * @static + */ + public static function selectOne($query, $bindings = [], $useReadPdo = true) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->selectOne($query, $bindings, $useReadPdo); + } + /** + * Run a select statement against the database. + * + * @param string $query + * @param array $bindings + * @return array + * @static + */ + public static function selectFromWriteConnection($query, $bindings = []) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->selectFromWriteConnection($query, $bindings); + } + /** + * Run a select statement against the database. + * + * @param string $query + * @param array $bindings + * @param bool $useReadPdo + * @return array + * @static + */ + public static function select($query, $bindings = [], $useReadPdo = true) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->select($query, $bindings, $useReadPdo); + } + /** + * Run a select statement against the database and returns a generator. + * + * @param string $query + * @param array $bindings + * @param bool $useReadPdo + * @return \Generator + * @static + */ + public static function cursor($query, $bindings = [], $useReadPdo = true) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->cursor($query, $bindings, $useReadPdo); + } + /** + * Run an insert statement against the database. + * + * @param string $query + * @param array $bindings + * @return bool + * @static + */ + public static function insert($query, $bindings = []) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->insert($query, $bindings); + } + /** + * Run an update statement against the database. + * + * @param string $query + * @param array $bindings + * @return int + * @static + */ + public static function update($query, $bindings = []) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->update($query, $bindings); + } + /** + * Run a delete statement against the database. + * + * @param string $query + * @param array $bindings + * @return int + * @static + */ + public static function delete($query, $bindings = []) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->delete($query, $bindings); + } + /** + * Execute an SQL statement and return the boolean result. + * + * @param string $query + * @param array $bindings + * @return bool + * @static + */ + public static function statement($query, $bindings = []) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->statement($query, $bindings); + } + /** + * Run an SQL statement and get the number of rows affected. + * + * @param string $query + * @param array $bindings + * @return int + * @static + */ + public static function affectingStatement($query, $bindings = []) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->affectingStatement($query, $bindings); + } + /** + * Run a raw, unprepared query against the PDO connection. + * + * @param string $query + * @return bool + * @static + */ + public static function unprepared($query) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->unprepared($query); + } + /** + * Execute the given callback in "dry run" mode. + * + * @param \Closure $callback + * @return array + * @static + */ + public static function pretend($callback) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->pretend($callback); + } + /** + * Bind values to their parameters in the given statement. + * + * @param \PDOStatement $statement + * @param array $bindings + * @return void + * @static + */ + public static function bindValues($statement, $bindings) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->bindValues($statement, $bindings); + } + /** + * Prepare the query bindings for execution. + * + * @param array $bindings + * @return array + * @static + */ + public static function prepareBindings($bindings) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->prepareBindings($bindings); + } + /** + * Log a query in the connection's query log. + * + * @param string $query + * @param array $bindings + * @param float|null $time + * @return void + * @static + */ + public static function logQuery($query, $bindings, $time = null) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->logQuery($query, $bindings, $time); + } + /** + * Register a database query listener with the connection. + * + * @param \Closure $callback + * @return void + * @static + */ + public static function listen($callback) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->listen($callback); + } + /** + * Get a new raw query expression. + * + * @param mixed $value + * @return \Illuminate\Database\Query\Expression + * @static + */ + public static function raw($value) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->raw($value); + } + /** + * Indicate if any records have been modified. + * + * @param bool $value + * @return void + * @static + */ + public static function recordsHaveBeenModified($value = true) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->recordsHaveBeenModified($value); + } + /** + * Is Doctrine available? + * + * @return bool + * @static + */ + public static function isDoctrineAvailable() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->isDoctrineAvailable(); + } + /** + * Get a Doctrine Schema Column instance. + * + * @param string $table + * @param string $column + * @return \Doctrine\DBAL\Schema\Column + * @static + */ + public static function getDoctrineColumn($table, $column) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getDoctrineColumn($table, $column); + } + /** + * Get the Doctrine DBAL schema manager for the connection. + * + * @return \Doctrine\DBAL\Schema\AbstractSchemaManager + * @static + */ + public static function getDoctrineSchemaManager() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getDoctrineSchemaManager(); + } + /** + * Get the Doctrine DBAL database connection instance. + * + * @return \Doctrine\DBAL\Connection + * @static + */ + public static function getDoctrineConnection() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getDoctrineConnection(); + } + /** + * Get the current PDO connection. + * + * @return \PDO + * @static + */ + public static function getPdo() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getPdo(); + } + /** + * Get the current PDO connection parameter without executing any reconnect logic. + * + * @return \PDO|\Closure|null + * @static + */ + public static function getRawPdo() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getRawPdo(); + } + /** + * Get the current PDO connection used for reading. + * + * @return \PDO + * @static + */ + public static function getReadPdo() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getReadPdo(); + } + /** + * Get the current read PDO connection parameter without executing any reconnect logic. + * + * @return \PDO|\Closure|null + * @static + */ + public static function getRawReadPdo() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getRawReadPdo(); + } + /** + * Set the PDO connection. + * + * @param \PDO|\Closure|null $pdo + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setPdo($pdo) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setPdo($pdo); + } + /** + * Set the PDO connection used for reading. + * + * @param \PDO|\Closure|null $pdo + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setReadPdo($pdo) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setReadPdo($pdo); + } + /** + * Get the database connection name. + * + * @return string|null + * @static + */ + public static function getName() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getName(); + } + /** + * Get an option from the configuration options. + * + * @param string|null $option + * @return mixed + * @static + */ + public static function getConfig($option = null) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getConfig($option); + } + /** + * Get the PDO driver name. + * + * @return string + * @static + */ + public static function getDriverName() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getDriverName(); + } + /** + * Get the query grammar used by the connection. + * + * @return \Illuminate\Database\Query\Grammars\Grammar + * @static + */ + public static function getQueryGrammar() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getQueryGrammar(); + } + /** + * Set the query grammar used by the connection. + * + * @param \Illuminate\Database\Query\Grammars\Grammar $grammar + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setQueryGrammar($grammar) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setQueryGrammar($grammar); + } + /** + * Get the schema grammar used by the connection. + * + * @return \Illuminate\Database\Schema\Grammars\Grammar + * @static + */ + public static function getSchemaGrammar() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getSchemaGrammar(); + } + /** + * Set the schema grammar used by the connection. + * + * @param \Illuminate\Database\Schema\Grammars\Grammar $grammar + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setSchemaGrammar($grammar) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setSchemaGrammar($grammar); + } + /** + * Get the query post processor used by the connection. + * + * @return \Illuminate\Database\Query\Processors\Processor + * @static + */ + public static function getPostProcessor() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getPostProcessor(); + } + /** + * Set the query post processor used by the connection. + * + * @param \Illuminate\Database\Query\Processors\Processor $processor + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setPostProcessor($processor) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setPostProcessor($processor); + } + /** + * Get the event dispatcher used by the connection. + * + * @return \Illuminate\Contracts\Events\Dispatcher + * @static + */ + public static function getEventDispatcher() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getEventDispatcher(); + } + /** + * Set the event dispatcher instance on the connection. + * + * @param \Illuminate\Contracts\Events\Dispatcher $events + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setEventDispatcher($events) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setEventDispatcher($events); + } + /** + * Unset the event dispatcher for this connection. + * + * @return void + * @static + */ + public static function unsetEventDispatcher() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->unsetEventDispatcher(); + } + /** + * Set the transaction manager instance on the connection. + * + * @param \Illuminate\Database\DatabaseTransactionsManager $manager + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setTransactionManager($manager) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setTransactionManager($manager); + } + /** + * Unset the transaction manager for this connection. + * + * @return void + * @static + */ + public static function unsetTransactionManager() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->unsetTransactionManager(); + } + /** + * Determine if the connection is in a "dry run". + * + * @return bool + * @static + */ + public static function pretending() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->pretending(); + } + /** + * Get the connection query log. + * + * @return array + * @static + */ + public static function getQueryLog() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getQueryLog(); + } + /** + * Clear the query log. + * + * @return void + * @static + */ + public static function flushQueryLog() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->flushQueryLog(); + } + /** + * Enable the query log on the connection. + * + * @return void + * @static + */ + public static function enableQueryLog() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->enableQueryLog(); + } + /** + * Disable the query log on the connection. + * + * @return void + * @static + */ + public static function disableQueryLog() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->disableQueryLog(); + } + /** + * Determine whether we're logging queries. + * + * @return bool + * @static + */ + public static function logging() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->logging(); + } + /** + * Get the name of the connected database. + * + * @return string + * @static + */ + public static function getDatabaseName() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getDatabaseName(); + } + /** + * Set the name of the connected database. + * + * @param string $database + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setDatabaseName($database) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setDatabaseName($database); + } + /** + * Get the table prefix for the connection. + * + * @return string + * @static + */ + public static function getTablePrefix() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->getTablePrefix(); + } + /** + * Set the table prefix in use by the connection. + * + * @param string $prefix + * @return \Illuminate\Database\MySqlConnection + * @static + */ + public static function setTablePrefix($prefix) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->setTablePrefix($prefix); + } + /** + * Set the table prefix and return the grammar. + * + * @param \Illuminate\Database\Grammar $grammar + * @return \Illuminate\Database\Grammar + * @static + */ + public static function withTablePrefix($grammar) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->withTablePrefix($grammar); + } + /** + * Register a connection resolver. + * + * @param string $driver + * @param \Closure $callback + * @return void + * @static + */ + public static function resolverFor($driver, $callback) + { //Method inherited from \Illuminate\Database\Connection + \Illuminate\Database\MySqlConnection::resolverFor($driver, $callback); + } + /** + * Get the connection resolver for the given driver. + * + * @param string $driver + * @return mixed + * @static + */ + public static function getResolver($driver) + { //Method inherited from \Illuminate\Database\Connection + return \Illuminate\Database\MySqlConnection::getResolver($driver); + } + /** + * Execute a Closure within a transaction. + * + * @param \Closure $callback + * @param int $attempts + * @return mixed + * @throws \Throwable + * @static + */ + public static function transaction($callback, $attempts = 1) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->transaction($callback, $attempts); + } + /** + * Start a new database transaction. + * + * @return void + * @throws \Throwable + * @static + */ + public static function beginTransaction() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->beginTransaction(); + } + /** + * Commit the active database transaction. + * + * @return void + * @throws \Throwable + * @static + */ + public static function commit() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->commit(); + } + /** + * Rollback the active database transaction. + * + * @param int|null $toLevel + * @return void + * @throws \Throwable + * @static + */ + public static function rollBack($toLevel = null) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->rollBack($toLevel); + } + /** + * Get the number of active transactions. + * + * @return int + * @static + */ + public static function transactionLevel() + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + return $instance->transactionLevel(); + } + /** + * Execute the callback after a transaction commits. + * + * @param callable $callback + * @return void + * @static + */ + public static function afterCommit($callback) + { //Method inherited from \Illuminate\Database\Connection + /** @var \Illuminate\Database\MySqlConnection $instance */ + $instance->afterCommit($callback); + } + + } + /** + * + * + * @see \Illuminate\Events\Dispatcher + */ + class Event { + /** + * Register an event listener with the dispatcher. + * + * @param \Closure|string|array $events + * @param \Closure|string|null $listener + * @return void + * @static + */ + public static function listen($events, $listener = null) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->listen($events, $listener); + } + /** + * Determine if a given event has listeners. + * + * @param string $eventName + * @return bool + * @static + */ + public static function hasListeners($eventName) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->hasListeners($eventName); + } + /** + * Determine if the given event has any wildcard listeners. + * + * @param string $eventName + * @return bool + * @static + */ + public static function hasWildcardListeners($eventName) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->hasWildcardListeners($eventName); + } + /** + * Register an event and payload to be fired later. + * + * @param string $event + * @param array $payload + * @return void + * @static + */ + public static function push($event, $payload = []) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->push($event, $payload); + } + /** + * Flush a set of pushed events. + * + * @param string $event + * @return void + * @static + */ + public static function flush($event) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->flush($event); + } + /** + * Register an event subscriber with the dispatcher. + * + * @param object|string $subscriber + * @return void + * @static + */ + public static function subscribe($subscriber) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->subscribe($subscriber); + } + /** + * Fire an event until the first non-null response is returned. + * + * @param string|object $event + * @param mixed $payload + * @return array|null + * @static + */ + public static function until($event, $payload = []) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->until($event, $payload); + } + /** + * Fire an event and call the listeners. + * + * @param string|object $event + * @param mixed $payload + * @param bool $halt + * @return array|null + * @static + */ + public static function dispatch($event, $payload = [], $halt = false) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->dispatch($event, $payload, $halt); + } + /** + * Get all of the listeners for a given event name. + * + * @param string $eventName + * @return array + * @static + */ + public static function getListeners($eventName) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->getListeners($eventName); + } + /** + * Register an event listener with the dispatcher. + * + * @param \Closure|string $listener + * @param bool $wildcard + * @return \Closure + * @static + */ + public static function makeListener($listener, $wildcard = false) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->makeListener($listener, $wildcard); + } + /** + * Create a class based listener using the IoC container. + * + * @param string $listener + * @param bool $wildcard + * @return \Closure + * @static + */ + public static function createClassListener($listener, $wildcard = false) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->createClassListener($listener, $wildcard); + } + /** + * Remove a set of listeners from the dispatcher. + * + * @param string $event + * @return void + * @static + */ + public static function forget($event) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->forget($event); + } + /** + * Forget all of the pushed listeners. + * + * @return void + * @static + */ + public static function forgetPushed() + { + /** @var \Illuminate\Events\Dispatcher $instance */ + $instance->forgetPushed(); + } + /** + * Set the queue resolver implementation. + * + * @param callable $resolver + * @return \Illuminate\Events\Dispatcher + * @static + */ + public static function setQueueResolver($resolver) + { + /** @var \Illuminate\Events\Dispatcher $instance */ + return $instance->setQueueResolver($resolver); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Events\Dispatcher::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Events\Dispatcher::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Events\Dispatcher::hasMacro($name); + } + /** + * Assert if an event was dispatched based on a truth-test callback. + * + * @param string|\Closure $event + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertDispatched($event, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertDispatched($event, $callback); + } + /** + * Assert if an event was dispatched a number of times. + * + * @param string $event + * @param int $times + * @return void + * @static + */ + public static function assertDispatchedTimes($event, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertDispatchedTimes($event, $times); + } + /** + * Determine if an event was dispatched based on a truth-test callback. + * + * @param string|\Closure $event + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotDispatched($event, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + $instance->assertNotDispatched($event, $callback); + } + /** + * Get all of the events matching a truth-test callback. + * + * @param string $event + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function dispatched($event, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + return $instance->dispatched($event, $callback); + } + /** + * Determine if the given event has been dispatched. + * + * @param string $event + * @return bool + * @static + */ + public static function hasDispatched($event) + { + /** @var \Illuminate\Support\Testing\Fakes\EventFake $instance */ + return $instance->hasDispatched($event); + } + + } + /** + * + * + * @see \Illuminate\Filesystem\Filesystem + */ + class File { + /** + * Determine if a file or directory exists. + * + * @param string $path + * @return bool + * @static + */ + public static function exists($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->exists($path); + } + /** + * Determine if a file or directory is missing. + * + * @param string $path + * @return bool + * @static + */ + public static function missing($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->missing($path); + } + /** + * Get the contents of a file. + * + * @param string $path + * @param bool $lock + * @return string + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function get($path, $lock = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->get($path, $lock); + } + /** + * Get contents of a file with shared access. + * + * @param string $path + * @return string + * @static + */ + public static function sharedGet($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->sharedGet($path); + } + /** + * Get the returned value of a file. + * + * @param string $path + * @param array $data + * @return mixed + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function getRequire($path, $data = []) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->getRequire($path, $data); + } + /** + * Require the given file once. + * + * @param string $path + * @param array $data + * @return mixed + * @static + */ + public static function requireOnce($path, $data = []) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->requireOnce($path, $data); + } + /** + * Get the contents of a file one line at a time. + * + * @param string $path + * @return \Illuminate\Support\LazyCollection + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function lines($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->lines($path); + } + /** + * Get the MD5 hash of the file at the given path. + * + * @param string $path + * @return string + * @static + */ + public static function hash($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->hash($path); + } + /** + * Write the contents of a file. + * + * @param string $path + * @param string $contents + * @param bool $lock + * @return int|bool + * @static + */ + public static function put($path, $contents, $lock = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->put($path, $contents, $lock); + } + /** + * Write the contents of a file, replacing it atomically if it already exists. + * + * @param string $path + * @param string $content + * @return void + * @static + */ + public static function replace($path, $content) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + $instance->replace($path, $content); + } + /** + * Prepend to a file. + * + * @param string $path + * @param string $data + * @return int + * @static + */ + public static function prepend($path, $data) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->prepend($path, $data); + } + /** + * Append to a file. + * + * @param string $path + * @param string $data + * @return int + * @static + */ + public static function append($path, $data) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->append($path, $data); + } + /** + * Get or set UNIX mode of a file or directory. + * + * @param string $path + * @param int|null $mode + * @return mixed + * @static + */ + public static function chmod($path, $mode = null) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->chmod($path, $mode); + } + /** + * Delete the file at a given path. + * + * @param string|array $paths + * @return bool + * @static + */ + public static function delete($paths) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->delete($paths); + } + /** + * Move a file to a new location. + * + * @param string $path + * @param string $target + * @return bool + * @static + */ + public static function move($path, $target) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->move($path, $target); + } + /** + * Copy a file to a new location. + * + * @param string $path + * @param string $target + * @return bool + * @static + */ + public static function copy($path, $target) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->copy($path, $target); + } + /** + * Create a symlink to the target file or directory. On Windows, a hard link is created if the target is a file. + * + * @param string $target + * @param string $link + * @return void + * @static + */ + public static function link($target, $link) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + $instance->link($target, $link); + } + /** + * Create a relative symlink to the target file or directory. + * + * @param string $target + * @param string $link + * @return void + * @static + */ + public static function relativeLink($target, $link) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + $instance->relativeLink($target, $link); + } + /** + * Extract the file name from a file path. + * + * @param string $path + * @return string + * @static + */ + public static function name($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->name($path); + } + /** + * Extract the trailing name component from a file path. + * + * @param string $path + * @return string + * @static + */ + public static function basename($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->basename($path); + } + /** + * Extract the parent directory from a file path. + * + * @param string $path + * @return string + * @static + */ + public static function dirname($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->dirname($path); + } + /** + * Extract the file extension from a file path. + * + * @param string $path + * @return string + * @static + */ + public static function extension($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->extension($path); + } + /** + * Guess the file extension from the mime-type of a given file. + * + * @param string $path + * @return string|null + * @static + */ + public static function guessExtension($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->guessExtension($path); + } + /** + * Get the file type of a given file. + * + * @param string $path + * @return string + * @static + */ + public static function type($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->type($path); + } + /** + * Get the mime-type of a given file. + * + * @param string $path + * @return string|false + * @static + */ + public static function mimeType($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->mimeType($path); + } + /** + * Get the file size of a given file. + * + * @param string $path + * @return int + * @static + */ + public static function size($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->size($path); + } + /** + * Get the file's last modification time. + * + * @param string $path + * @return int + * @static + */ + public static function lastModified($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->lastModified($path); + } + /** + * Determine if the given path is a directory. + * + * @param string $directory + * @return bool + * @static + */ + public static function isDirectory($directory) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isDirectory($directory); + } + /** + * Determine if the given path is readable. + * + * @param string $path + * @return bool + * @static + */ + public static function isReadable($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isReadable($path); + } + /** + * Determine if the given path is writable. + * + * @param string $path + * @return bool + * @static + */ + public static function isWritable($path) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isWritable($path); + } + /** + * Determine if the given path is a file. + * + * @param string $file + * @return bool + * @static + */ + public static function isFile($file) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->isFile($file); + } + /** + * Find path names matching a given pattern. + * + * @param string $pattern + * @param int $flags + * @return array + * @static + */ + public static function glob($pattern, $flags = 0) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->glob($pattern, $flags); + } + /** + * Get an array of all files in a directory. + * + * @param string $directory + * @param bool $hidden + * @return \Symfony\Component\Finder\SplFileInfo[] + * @static + */ + public static function files($directory, $hidden = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->files($directory, $hidden); + } + /** + * Get all of the files from the given directory (recursive). + * + * @param string $directory + * @param bool $hidden + * @return \Symfony\Component\Finder\SplFileInfo[] + * @static + */ + public static function allFiles($directory, $hidden = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->allFiles($directory, $hidden); + } + /** + * Get all of the directories within a given directory. + * + * @param string $directory + * @return array + * @static + */ + public static function directories($directory) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->directories($directory); + } + /** + * Ensure a directory exists. + * + * @param string $path + * @param int $mode + * @param bool $recursive + * @return void + * @static + */ + public static function ensureDirectoryExists($path, $mode = 493, $recursive = true) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + $instance->ensureDirectoryExists($path, $mode, $recursive); + } + /** + * Create a directory. + * + * @param string $path + * @param int $mode + * @param bool $recursive + * @param bool $force + * @return bool + * @static + */ + public static function makeDirectory($path, $mode = 493, $recursive = false, $force = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->makeDirectory($path, $mode, $recursive, $force); + } + /** + * Move a directory. + * + * @param string $from + * @param string $to + * @param bool $overwrite + * @return bool + * @static + */ + public static function moveDirectory($from, $to, $overwrite = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->moveDirectory($from, $to, $overwrite); + } + /** + * Copy a directory from one location to another. + * + * @param string $directory + * @param string $destination + * @param int|null $options + * @return bool + * @static + */ + public static function copyDirectory($directory, $destination, $options = null) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->copyDirectory($directory, $destination, $options); + } + /** + * Recursively delete a directory. + * + * The directory itself may be optionally preserved. + * + * @param string $directory + * @param bool $preserve + * @return bool + * @static + */ + public static function deleteDirectory($directory, $preserve = false) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->deleteDirectory($directory, $preserve); + } + /** + * Remove all of the directories within a given directory. + * + * @param string $directory + * @return bool + * @static + */ + public static function deleteDirectories($directory) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->deleteDirectories($directory); + } + /** + * Empty the specified directory of all files and folders. + * + * @param string $directory + * @return bool + * @static + */ + public static function cleanDirectory($directory) + { + /** @var \Illuminate\Filesystem\Filesystem $instance */ + return $instance->cleanDirectory($directory); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Filesystem\Filesystem::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Filesystem\Filesystem::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Filesystem\Filesystem::hasMacro($name); + } + + } + /** + * + * + * @see \Illuminate\Contracts\Auth\Access\Gate + */ + class Gate { + /** + * Determine if a given ability has been defined. + * + * @param string|array $ability + * @return bool + * @static + */ + public static function has($ability) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->has($ability); + } + /** + * Define a new ability. + * + * @param string $ability + * @param callable|string $callback + * @return \Illuminate\Auth\Access\Gate + * @throws \InvalidArgumentException + * @static + */ + public static function define($ability, $callback) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->define($ability, $callback); + } + /** + * Define abilities for a resource. + * + * @param string $name + * @param string $class + * @param array|null $abilities + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function resource($name, $class, $abilities = null) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->resource($name, $class, $abilities); + } + /** + * Define a policy class for a given class type. + * + * @param string $class + * @param string $policy + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function policy($class, $policy) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->policy($class, $policy); + } + /** + * Register a callback to run before all Gate checks. + * + * @param callable $callback + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function before($callback) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->before($callback); + } + /** + * Register a callback to run after all Gate checks. + * + * @param callable $callback + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function after($callback) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->after($callback); + } + /** + * Determine if the given ability should be granted for the current user. + * + * @param string $ability + * @param array|mixed $arguments + * @return bool + * @static + */ + public static function allows($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->allows($ability, $arguments); + } + /** + * Determine if the given ability should be denied for the current user. + * + * @param string $ability + * @param array|mixed $arguments + * @return bool + * @static + */ + public static function denies($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->denies($ability, $arguments); + } + /** + * Determine if all of the given abilities should be granted for the current user. + * + * @param \Illuminate\Auth\Access\iterable|string $abilities + * @param array|mixed $arguments + * @return bool + * @static + */ + public static function check($abilities, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->check($abilities, $arguments); + } + /** + * Determine if any one of the given abilities should be granted for the current user. + * + * @param \Illuminate\Auth\Access\iterable|string $abilities + * @param array|mixed $arguments + * @return bool + * @static + */ + public static function any($abilities, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->any($abilities, $arguments); + } + /** + * Determine if all of the given abilities should be denied for the current user. + * + * @param \Illuminate\Auth\Access\iterable|string $abilities + * @param array|mixed $arguments + * @return bool + * @static + */ + public static function none($abilities, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->none($abilities, $arguments); + } + /** + * Determine if the given ability should be granted for the current user. + * + * @param string $ability + * @param array|mixed $arguments + * @return \Illuminate\Auth\Access\Response + * @throws \Illuminate\Auth\Access\AuthorizationException + * @static + */ + public static function authorize($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->authorize($ability, $arguments); + } + /** + * Inspect the user for the given ability. + * + * @param string $ability + * @param array|mixed $arguments + * @return \Illuminate\Auth\Access\Response + * @static + */ + public static function inspect($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->inspect($ability, $arguments); + } + /** + * Get the raw result from the authorization callback. + * + * @param string $ability + * @param array|mixed $arguments + * @return mixed + * @throws \Illuminate\Auth\Access\AuthorizationException + * @static + */ + public static function raw($ability, $arguments = []) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->raw($ability, $arguments); + } + /** + * Get a policy instance for a given class. + * + * @param object|string $class + * @return mixed + * @static + */ + public static function getPolicyFor($class) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->getPolicyFor($class); + } + /** + * Specify a callback to be used to guess policy names. + * + * @param callable $callback + * @return \Illuminate\Auth\Access\Gate + * @static + */ + public static function guessPolicyNamesUsing($callback) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->guessPolicyNamesUsing($callback); + } + /** + * Build a policy class instance of the given type. + * + * @param object|string $class + * @return mixed + * @throws \Illuminate\Contracts\Container\BindingResolutionException + * @static + */ + public static function resolvePolicy($class) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->resolvePolicy($class); + } + /** + * Get a gate instance for the given user. + * + * @param \Illuminate\Contracts\Auth\Authenticatable|mixed $user + * @return static + * @static + */ + public static function forUser($user) + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->forUser($user); + } + /** + * Get all of the defined abilities. + * + * @return array + * @static + */ + public static function abilities() + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->abilities(); + } + /** + * Get all of the defined policies. + * + * @return array + * @static + */ + public static function policies() + { + /** @var \Illuminate\Auth\Access\Gate $instance */ + return $instance->policies(); + } + + } + /** + * + * + * @see \Illuminate\Hashing\HashManager + */ + class Hash { + /** + * Create an instance of the Bcrypt hash Driver. + * + * @return \Illuminate\Hashing\BcryptHasher + * @static + */ + public static function createBcryptDriver() + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->createBcryptDriver(); + } + /** + * Create an instance of the Argon2i hash Driver. + * + * @return \Illuminate\Hashing\ArgonHasher + * @static + */ + public static function createArgonDriver() + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->createArgonDriver(); + } + /** + * Create an instance of the Argon2id hash Driver. + * + * @return \Illuminate\Hashing\Argon2IdHasher + * @static + */ + public static function createArgon2idDriver() + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->createArgon2idDriver(); + } + /** + * Get information about the given hashed value. + * + * @param string $hashedValue + * @return array + * @static + */ + public static function info($hashedValue) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->info($hashedValue); + } + /** + * Hash the given value. + * + * @param string $value + * @param array $options + * @return string + * @static + */ + public static function make($value, $options = []) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->make($value, $options); + } + /** + * Check the given plain value against a hash. + * + * @param string $value + * @param string $hashedValue + * @param array $options + * @return bool + * @static + */ + public static function check($value, $hashedValue, $options = []) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->check($value, $hashedValue, $options); + } + /** + * Check if the given hash has been hashed using the given options. + * + * @param string $hashedValue + * @param array $options + * @return bool + * @static + */ + public static function needsRehash($hashedValue, $options = []) + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->needsRehash($hashedValue, $options); + } + /** + * Get the default driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Get a driver instance. + * + * @param string|null $driver + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function driver($driver = null) + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->driver($driver); + } + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Hashing\HashManager + * @static + */ + public static function extend($driver, $callback) + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->extend($driver, $callback); + } + /** + * Get all of the created "drivers". + * + * @return array + * @static + */ + public static function getDrivers() + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Hashing\HashManager $instance */ + return $instance->getDrivers(); + } + + } + /** + * + * + * @method static \Illuminate\Http\Client\PendingRequest accept(string $contentType) + * @method static \Illuminate\Http\Client\PendingRequest acceptJson() + * @method static \Illuminate\Http\Client\PendingRequest asForm() + * @method static \Illuminate\Http\Client\PendingRequest asJson() + * @method static \Illuminate\Http\Client\PendingRequest asMultipart() + * @method static \Illuminate\Http\Client\PendingRequest attach(string $name, string $contents, string|null $filename = null, array $headers = []) + * @method static \Illuminate\Http\Client\PendingRequest baseUrl(string $url) + * @method static \Illuminate\Http\Client\PendingRequest beforeSending(callable $callback) + * @method static \Illuminate\Http\Client\PendingRequest bodyFormat(string $format) + * @method static \Illuminate\Http\Client\PendingRequest contentType(string $contentType) + * @method static \Illuminate\Http\Client\PendingRequest retry(int $times, int $sleep = 0) + * @method static \Illuminate\Http\Client\PendingRequest stub(callable $callback) + * @method static \Illuminate\Http\Client\PendingRequest timeout(int $seconds) + * @method static \Illuminate\Http\Client\PendingRequest withBasicAuth(string $username, string $password) + * @method static \Illuminate\Http\Client\PendingRequest withBody(resource|string $content, string $contentType) + * @method static \Illuminate\Http\Client\PendingRequest withCookies(array $cookies, string $domain) + * @method static \Illuminate\Http\Client\PendingRequest withDigestAuth(string $username, string $password) + * @method static \Illuminate\Http\Client\PendingRequest withHeaders(array $headers) + * @method static \Illuminate\Http\Client\PendingRequest withOptions(array $options) + * @method static \Illuminate\Http\Client\PendingRequest withToken(string $token, string $type = 'Bearer') + * @method static \Illuminate\Http\Client\PendingRequest withoutRedirecting() + * @method static \Illuminate\Http\Client\PendingRequest withoutVerifying() + * @method static \Illuminate\Http\Client\Response delete(string $url, array $data = []) + * @method static \Illuminate\Http\Client\Response get(string $url, array $query = []) + * @method static \Illuminate\Http\Client\Response head(string $url, array $query = []) + * @method static \Illuminate\Http\Client\Response patch(string $url, array $data = []) + * @method static \Illuminate\Http\Client\Response post(string $url, array $data = []) + * @method static \Illuminate\Http\Client\Response put(string $url, array $data = []) + * @method static \Illuminate\Http\Client\Response send(string $method, string $url, array $options = []) + * @see \Illuminate\Http\Client\Factory + */ + class Http { + /** + * Create a new response instance for use during stubbing. + * + * @param array|string $body + * @param int $status + * @param array $headers + * @return \GuzzleHttp\Promise\PromiseInterface + * @static + */ + public static function response($body = null, $status = 200, $headers = []) + { + return \Illuminate\Http\Client\Factory::response($body, $status, $headers); + } + /** + * Get an invokable object that returns a sequence of responses in order for use during stubbing. + * + * @param array $responses + * @return \Illuminate\Http\Client\ResponseSequence + * @static + */ + public static function sequence($responses = []) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->sequence($responses); + } + /** + * Register a stub callable that will intercept requests and be able to return stub responses. + * + * @param callable|array $callback + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function fake($callback = null) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->fake($callback); + } + /** + * Register a response sequence for the given URL pattern. + * + * @param string $url + * @return \Illuminate\Http\Client\ResponseSequence + * @static + */ + public static function fakeSequence($url = '*') + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->fakeSequence($url); + } + /** + * Stub the given URL using the given callback. + * + * @param string $url + * @param \Illuminate\Http\Client\Response|\GuzzleHttp\Promise\PromiseInterface|callable $callback + * @return \Illuminate\Http\Client\Factory + * @static + */ + public static function stubUrl($url, $callback) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->stubUrl($url, $callback); + } + /** + * Record a request response pair. + * + * @param \Illuminate\Http\Client\Request $request + * @param \Illuminate\Http\Client\Response $response + * @return void + * @static + */ + public static function recordRequestResponsePair($request, $response) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->recordRequestResponsePair($request, $response); + } + /** + * Assert that a request / response pair was recorded matching a given truth test. + * + * @param callable $callback + * @return void + * @static + */ + public static function assertSent($callback) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertSent($callback); + } + /** + * Assert that the given request were sent in the given order. + * + * @param array $callbacks + * @return void + * @static + */ + public static function assertSentInOrder($callbacks) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertSentInOrder($callbacks); + } + /** + * Assert that a request / response pair was not recorded matching a given truth test. + * + * @param callable $callback + * @return void + * @static + */ + public static function assertNotSent($callback) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertNotSent($callback); + } + /** + * Assert that no request / response pair was recorded. + * + * @return void + * @static + */ + public static function assertNothingSent() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertNothingSent(); + } + /** + * Assert how many requests have been recorded. + * + * @param int $count + * @return void + * @static + */ + public static function assertSentCount($count) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertSentCount($count); + } + /** + * Assert that every created response sequence is empty. + * + * @return void + * @static + */ + public static function assertSequencesAreEmpty() + { + /** @var \Illuminate\Http\Client\Factory $instance */ + $instance->assertSequencesAreEmpty(); + } + /** + * Get a collection of the request / response pairs matching the given truth test. + * + * @param callable $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function recorded($callback = null) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->recorded($callback); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Http\Client\Factory::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Http\Client\Factory::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Http\Client\Factory::hasMacro($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Http\Client\Factory $instance */ + return $instance->macroCall($method, $parameters); + } + + } + /** + * + * + * @see \Illuminate\Translation\Translator + */ + class Lang { + /** + * Determine if a translation exists for a given locale. + * + * @param string $key + * @param string|null $locale + * @return bool + * @static + */ + public static function hasForLocale($key, $locale = null) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->hasForLocale($key, $locale); + } + /** + * Determine if a translation exists. + * + * @param string $key + * @param string|null $locale + * @param bool $fallback + * @return bool + * @static + */ + public static function has($key, $locale = null, $fallback = true) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->has($key, $locale, $fallback); + } + /** + * Get the translation for the given key. + * + * @param string $key + * @param array $replace + * @param string|null $locale + * @param bool $fallback + * @return string|array + * @static + */ + public static function get($key, $replace = [], $locale = null, $fallback = true) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->get($key, $replace, $locale, $fallback); + } + /** + * Get a translation according to an integer value. + * + * @param string $key + * @param \Countable|int|array $number + * @param array $replace + * @param string|null $locale + * @return string + * @static + */ + public static function choice($key, $number, $replace = [], $locale = null) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->choice($key, $number, $replace, $locale); + } + /** + * Add translation lines to the given locale. + * + * @param array $lines + * @param string $locale + * @param string $namespace + * @return void + * @static + */ + public static function addLines($lines, $locale, $namespace = '*') + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->addLines($lines, $locale, $namespace); + } + /** + * Load the specified language group. + * + * @param string $namespace + * @param string $group + * @param string $locale + * @return void + * @static + */ + public static function load($namespace, $group, $locale) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->load($namespace, $group, $locale); + } + /** + * Add a new namespace to the loader. + * + * @param string $namespace + * @param string $hint + * @return void + * @static + */ + public static function addNamespace($namespace, $hint) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->addNamespace($namespace, $hint); + } + /** + * Add a new JSON path to the loader. + * + * @param string $path + * @return void + * @static + */ + public static function addJsonPath($path) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->addJsonPath($path); + } + /** + * Parse a key into namespace, group, and item. + * + * @param string $key + * @return array + * @static + */ + public static function parseKey($key) + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->parseKey($key); + } + /** + * Get the message selector instance. + * + * @return \Illuminate\Translation\MessageSelector + * @static + */ + public static function getSelector() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->getSelector(); + } + /** + * Set the message selector instance. + * + * @param \Illuminate\Translation\MessageSelector $selector + * @return void + * @static + */ + public static function setSelector($selector) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setSelector($selector); + } + /** + * Get the language line loader implementation. + * + * @return \Illuminate\Contracts\Translation\Loader + * @static + */ + public static function getLoader() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->getLoader(); + } + /** + * Get the default locale being used. + * + * @return string + * @static + */ + public static function locale() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->locale(); + } + /** + * Get the default locale being used. + * + * @return string + * @static + */ + public static function getLocale() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->getLocale(); + } + /** + * Set the default locale. + * + * @param string $locale + * @return void + * @static + */ + public static function setLocale($locale) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setLocale($locale); + } + /** + * Get the fallback locale being used. + * + * @return string + * @static + */ + public static function getFallback() + { + /** @var \Illuminate\Translation\Translator $instance */ + return $instance->getFallback(); + } + /** + * Set the fallback locale being used. + * + * @param string $fallback + * @return void + * @static + */ + public static function setFallback($fallback) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setFallback($fallback); + } + /** + * Set the loaded translation groups. + * + * @param array $loaded + * @return void + * @static + */ + public static function setLoaded($loaded) + { + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setLoaded($loaded); + } + /** + * Set the parsed value of a key. + * + * @param string $key + * @param array $parsed + * @return void + * @static + */ + public static function setParsedKey($key, $parsed) + { //Method inherited from \Illuminate\Support\NamespacedItemResolver + /** @var \Illuminate\Translation\Translator $instance */ + $instance->setParsedKey($key, $parsed); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Translation\Translator::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Translation\Translator::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Translation\Translator::hasMacro($name); + } + + } + /** + * + * + * @method static void write(string $level, string $message, array $context = []) + * @method static void listen(\Closure $callback) + * @see \Illuminate\Log\Logger + */ + class Log { + /** + * Create a new, on-demand aggregate logger instance. + * + * @param array $channels + * @param string|null $channel + * @return \Psr\Log\LoggerInterface + * @static + */ + public static function stack($channels, $channel = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->stack($channels, $channel); + } + /** + * Get a log channel instance. + * + * @param string|null $channel + * @return \Psr\Log\LoggerInterface + * @static + */ + public static function channel($channel = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->channel($channel); + } + /** + * Get a log driver instance. + * + * @param string|null $driver + * @return \Psr\Log\LoggerInterface + * @static + */ + public static function driver($driver = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->driver($driver); + } + /** + * + * + * @return array + * @static + */ + public static function getChannels() + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->getChannels(); + } + /** + * Get the default log driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Set the default log driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->setDefaultDriver($name); + } + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Log\LogManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->extend($driver, $callback); + } + /** + * Unset the given channel instance. + * + * @param string|null $driver + * @return \Illuminate\Log\LogManager + * @static + */ + public static function forgetChannel($driver = null) + { + /** @var \Illuminate\Log\LogManager $instance */ + return $instance->forgetChannel($driver); + } + /** + * System is unusable. + * + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function emergency($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->emergency($message, $context); + } + /** + * Action must be taken immediately. + * + * Example: Entire website down, database unavailable, etc. This should + * trigger the SMS alerts and wake you up. + * + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function alert($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->alert($message, $context); + } + /** + * Critical conditions. + * + * Example: Application component unavailable, unexpected exception. + * + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function critical($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->critical($message, $context); + } + /** + * Runtime errors that do not require immediate action but should typically + * be logged and monitored. + * + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function error($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->error($message, $context); + } + /** + * Exceptional occurrences that are not errors. + * + * Example: Use of deprecated APIs, poor use of an API, undesirable things + * that are not necessarily wrong. + * + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function warning($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->warning($message, $context); + } + /** + * Normal but significant events. + * + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function notice($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->notice($message, $context); + } + /** + * Interesting events. + * + * Example: User logs in, SQL logs. + * + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function info($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->info($message, $context); + } + /** + * Detailed debug information. + * + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function debug($message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->debug($message, $context); + } + /** + * Logs with an arbitrary level. + * + * @param mixed $level + * @param string $message + * @param array $context + * @return void + * @static + */ + public static function log($level, $message, $context = []) + { + /** @var \Illuminate\Log\LogManager $instance */ + $instance->log($level, $message, $context); + } + + } + /** + * + * + * @method static mixed laterOn(string $queue, \DateTimeInterface|\DateInterval|int $delay, \Illuminate\Contracts\Mail\Mailable|string|array $view) + * @method static mixed queueOn(string $queue, \Illuminate\Contracts\Mail\Mailable|string|array $view) + * @method static void plain(string $view, array $data, $callback) + * @method static void html(string $html, $callback) + * @see \Illuminate\Mail\Mailer + * @see \Illuminate\Support\Testing\Fakes\MailFake + */ + class Mail { + /** + * Get a mailer instance by name. + * + * @param string|null $name + * @return \Illuminate\Mail\Mailer + * @static + */ + public static function mailer($name = null) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->mailer($name); + } + /** + * Get a mailer driver instance. + * + * @param string|null $driver + * @return \Illuminate\Mail\Mailer + * @static + */ + public static function driver($driver = null) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->driver($driver); + } + /** + * Create a new transport instance. + * + * @param array $config + * @return \Swift_Transport + * @static + */ + public static function createTransport($config) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->createTransport($config); + } + /** + * Get the default mail driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Set the default mail driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Mail\MailManager $instance */ + $instance->setDefaultDriver($name); + } + /** + * Disconnect the given mailer and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Mail\MailManager $instance */ + $instance->purge($name); + } + /** + * Register a custom transport creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Mail\MailManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Mail\MailManager $instance */ + return $instance->extend($driver, $callback); + } + /** + * Assert if a mailable was sent based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertSent($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertSent($mailable, $callback); + } + /** + * Determine if a mailable was not sent based on a truth-test callback. + * + * @param string $mailable + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotSent($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNotSent($mailable, $callback); + } + /** + * Assert that no mailables were sent. + * + * @return void + * @static + */ + public static function assertNothingSent() + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNothingSent(); + } + /** + * Assert if a mailable was queued based on a truth-test callback. + * + * @param string|\Closure $mailable + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertQueued($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertQueued($mailable, $callback); + } + /** + * Determine if a mailable was not queued based on a truth-test callback. + * + * @param string $mailable + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotQueued($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNotQueued($mailable, $callback); + } + /** + * Assert that no mailables were queued. + * + * @return void + * @static + */ + public static function assertNothingQueued() + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->assertNothingQueued(); + } + /** + * Get all of the mailables matching a truth-test callback. + * + * @param string $mailable + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function sent($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->sent($mailable, $callback); + } + /** + * Determine if the given mailable has been sent. + * + * @param string $mailable + * @return bool + * @static + */ + public static function hasSent($mailable) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->hasSent($mailable); + } + /** + * Get all of the queued mailables matching a truth-test callback. + * + * @param string $mailable + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function queued($mailable, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->queued($mailable, $callback); + } + /** + * Determine if the given mailable has been queued. + * + * @param string $mailable + * @return bool + * @static + */ + public static function hasQueued($mailable) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->hasQueued($mailable); + } + /** + * Begin the process of mailing a mailable class instance. + * + * @param mixed $users + * @return \Illuminate\Mail\PendingMail + * @static + */ + public static function to($users) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->to($users); + } + /** + * Begin the process of mailing a mailable class instance. + * + * @param mixed $users + * @return \Illuminate\Mail\PendingMail + * @static + */ + public static function bcc($users) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->bcc($users); + } + /** + * Send a new message with only a raw text part. + * + * @param string $text + * @param \Closure|string $callback + * @return void + * @static + */ + public static function raw($text, $callback) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->raw($text, $callback); + } + /** + * Send a new message using a view. + * + * @param string|array $view + * @param array $data + * @param \Closure|string|null $callback + * @return void + * @static + */ + public static function send($view, $data = [], $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + $instance->send($view, $data, $callback); + } + /** + * Queue a new e-mail message for sending. + * + * @param \Illuminate\Contracts\Mail\Mailable|string|array $view + * @param string|null $queue + * @return mixed + * @static + */ + public static function queue($view, $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->queue($view, $queue); + } + /** + * Queue a new e-mail message for sending after (n) seconds. + * + * @param \DateTimeInterface|\DateInterval|int $delay + * @param \Illuminate\Contracts\Mail\Mailable|string|array $view + * @param string|null $queue + * @return mixed + * @static + */ + public static function later($delay, $view, $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->later($delay, $view, $queue); + } + /** + * Get the array of failed recipients. + * + * @return array + * @static + */ + public static function failures() + { + /** @var \Illuminate\Support\Testing\Fakes\MailFake $instance */ + return $instance->failures(); + } + + } + /** + * + * + * @see \Illuminate\Notifications\ChannelManager + */ + class Notification { + /** + * Send the given notification to the given notifiable entities. + * + * @param \Illuminate\Support\Collection|array|mixed $notifiables + * @param mixed $notification + * @return void + * @static + */ + public static function send($notifiables, $notification) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + $instance->send($notifiables, $notification); + } + /** + * Send the given notification immediately. + * + * @param \Illuminate\Support\Collection|array|mixed $notifiables + * @param mixed $notification + * @param array|null $channels + * @return void + * @static + */ + public static function sendNow($notifiables, $notification, $channels = null) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + $instance->sendNow($notifiables, $notification, $channels); + } + /** + * Get a channel instance. + * + * @param string|null $name + * @return mixed + * @static + */ + public static function channel($name = null) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->channel($name); + } + /** + * Get the default channel driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Get the default channel driver name. + * + * @return string + * @static + */ + public static function deliversVia() + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->deliversVia(); + } + /** + * Set the default channel driver name. + * + * @param string $channel + * @return void + * @static + */ + public static function deliverVia($channel) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + $instance->deliverVia($channel); + } + /** + * Set the locale of notifications. + * + * @param string $locale + * @return \Illuminate\Notifications\ChannelManager + * @static + */ + public static function locale($locale) + { + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->locale($locale); + } + /** + * Get a driver instance. + * + * @param string|null $driver + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function driver($driver = null) + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->driver($driver); + } + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Notifications\ChannelManager + * @static + */ + public static function extend($driver, $callback) + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->extend($driver, $callback); + } + /** + * Get all of the created "drivers". + * + * @return array + * @static + */ + public static function getDrivers() + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Notifications\ChannelManager $instance */ + return $instance->getDrivers(); + } + /** + * Assert if a notification was sent based on a truth-test callback. + * + * @param mixed $notifiable + * @param string|\Closure $notification + * @param callable|null $callback + * @return void + * @throws \Exception + * @static + */ + public static function assertSentTo($notifiable, $notification, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertSentTo($notifiable, $notification, $callback); + } + /** + * Assert if a notification was sent a number of times. + * + * @param mixed $notifiable + * @param string $notification + * @param int $times + * @return void + * @static + */ + public static function assertSentToTimes($notifiable, $notification, $times = 1) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertSentToTimes($notifiable, $notification, $times); + } + /** + * Determine if a notification was sent based on a truth-test callback. + * + * @param mixed $notifiable + * @param string|\Closure $notification + * @param callable|null $callback + * @return void + * @throws \Exception + * @static + */ + public static function assertNotSentTo($notifiable, $notification, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertNotSentTo($notifiable, $notification, $callback); + } + /** + * Assert that no notifications were sent. + * + * @return void + * @static + */ + public static function assertNothingSent() + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertNothingSent(); + } + /** + * Assert the total amount of times a notification was sent. + * + * @param int $expectedCount + * @param string $notification + * @return void + * @static + */ + public static function assertTimesSent($expectedCount, $notification) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + $instance->assertTimesSent($expectedCount, $notification); + } + /** + * Get all of the notifications matching a truth-test callback. + * + * @param mixed $notifiable + * @param string $notification + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function sent($notifiable, $notification, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + return $instance->sent($notifiable, $notification, $callback); + } + /** + * Determine if there are more notifications left to inspect. + * + * @param mixed $notifiable + * @param string $notification + * @return bool + * @static + */ + public static function hasSent($notifiable, $notification) + { + /** @var \Illuminate\Support\Testing\Fakes\NotificationFake $instance */ + return $instance->hasSent($notifiable, $notification); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Support\Testing\Fakes\NotificationFake::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Support\Testing\Fakes\NotificationFake::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Support\Testing\Fakes\NotificationFake::hasMacro($name); + } + + } + /** + * + * + * @method static mixed reset(array $credentials, \Closure $callback) + * @method static string sendResetLink(array $credentials) + * @method static \Illuminate\Contracts\Auth\CanResetPassword getUser(array $credentials) + * @method static string createToken(\Illuminate\Contracts\Auth\CanResetPassword $user) + * @method static void deleteToken(\Illuminate\Contracts\Auth\CanResetPassword $user) + * @method static bool tokenExists(\Illuminate\Contracts\Auth\CanResetPassword $user, string $token) + * @method static \Illuminate\Auth\Passwords\TokenRepositoryInterface getRepository() + * @see \Illuminate\Auth\Passwords\PasswordBroker + */ + class Password { + /** + * Attempt to get the broker from the local cache. + * + * @param string|null $name + * @return \Illuminate\Contracts\Auth\PasswordBroker + * @static + */ + public static function broker($name = null) + { + /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */ + return $instance->broker($name); + } + /** + * Get the default password broker name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Set the default password broker name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Auth\Passwords\PasswordBrokerManager $instance */ + $instance->setDefaultDriver($name); + } + + } + /** + * + * + * @method static void popUsing(string $workerName, callable $callback) + * @see \Illuminate\Queue\QueueManager + * @see \Illuminate\Queue\Queue + */ + class Queue { + /** + * Register an event listener for the before job event. + * + * @param mixed $callback + * @return void + * @static + */ + public static function before($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->before($callback); + } + /** + * Register an event listener for the after job event. + * + * @param mixed $callback + * @return void + * @static + */ + public static function after($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->after($callback); + } + /** + * Register an event listener for the exception occurred job event. + * + * @param mixed $callback + * @return void + * @static + */ + public static function exceptionOccurred($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->exceptionOccurred($callback); + } + /** + * Register an event listener for the daemon queue loop. + * + * @param mixed $callback + * @return void + * @static + */ + public static function looping($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->looping($callback); + } + /** + * Register an event listener for the failed job event. + * + * @param mixed $callback + * @return void + * @static + */ + public static function failing($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->failing($callback); + } + /** + * Register an event listener for the daemon queue stopping. + * + * @param mixed $callback + * @return void + * @static + */ + public static function stopping($callback) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->stopping($callback); + } + /** + * Determine if the driver is connected. + * + * @param string|null $name + * @return bool + * @static + */ + public static function connected($name = null) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->connected($name); + } + /** + * Resolve a queue connection instance. + * + * @param string|null $name + * @return \Illuminate\Contracts\Queue\Queue + * @static + */ + public static function connection($name = null) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->connection($name); + } + /** + * Add a queue connection resolver. + * + * @param string $driver + * @param \Closure $resolver + * @return void + * @static + */ + public static function extend($driver, $resolver) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->extend($driver, $resolver); + } + /** + * Add a queue connection resolver. + * + * @param string $driver + * @param \Closure $resolver + * @return void + * @static + */ + public static function addConnector($driver, $resolver) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->addConnector($driver, $resolver); + } + /** + * Get the name of the default queue connection. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Set the name of the default queue connection. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + $instance->setDefaultDriver($name); + } + /** + * Get the full name for the given connection. + * + * @param string|null $connection + * @return string + * @static + */ + public static function getName($connection = null) + { + /** @var \Illuminate\Queue\QueueManager $instance */ + return $instance->getName($connection); + } + /** + * Assert if a job was pushed based on a truth-test callback. + * + * @param string|\Closure $job + * @param callable|int|null $callback + * @return void + * @static + */ + public static function assertPushed($job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushed($job, $callback); + } + /** + * Assert if a job was pushed based on a truth-test callback. + * + * @param string $queue + * @param string|\Closure $job + * @param callable|null $callback + * @return void + * @static + */ + public static function assertPushedOn($queue, $job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushedOn($queue, $job, $callback); + } + /** + * Assert if a job was pushed with chained jobs based on a truth-test callback. + * + * @param string $job + * @param array $expectedChain + * @param callable|null $callback + * @return void + * @static + */ + public static function assertPushedWithChain($job, $expectedChain = [], $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushedWithChain($job, $expectedChain, $callback); + } + /** + * Assert if a job was pushed with an empty chain based on a truth-test callback. + * + * @param string $job + * @param callable|null $callback + * @return void + * @static + */ + public static function assertPushedWithoutChain($job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertPushedWithoutChain($job, $callback); + } + /** + * Determine if a job was pushed based on a truth-test callback. + * + * @param string|\Closure $job + * @param callable|null $callback + * @return void + * @static + */ + public static function assertNotPushed($job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertNotPushed($job, $callback); + } + /** + * Assert that no jobs were pushed. + * + * @return void + * @static + */ + public static function assertNothingPushed() + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + $instance->assertNothingPushed(); + } + /** + * Get all of the jobs matching a truth-test callback. + * + * @param string $job + * @param callable|null $callback + * @return \Illuminate\Support\Collection + * @static + */ + public static function pushed($job, $callback = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushed($job, $callback); + } + /** + * Determine if there are any stored jobs for a given class. + * + * @param string $job + * @return bool + * @static + */ + public static function hasPushed($job) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->hasPushed($job); + } + /** + * Get the size of the queue. + * + * @param string|null $queue + * @return int + * @static + */ + public static function size($queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->size($queue); + } + /** + * Push a new job onto the queue. + * + * @param string $job + * @param mixed $data + * @param string|null $queue + * @return mixed + * @static + */ + public static function push($job, $data = '', $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->push($job, $data, $queue); + } + /** + * Push a raw payload onto the queue. + * + * @param string $payload + * @param string|null $queue + * @param array $options + * @return mixed + * @static + */ + public static function pushRaw($payload, $queue = null, $options = []) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushRaw($payload, $queue, $options); + } + /** + * Push a new job onto the queue after a delay. + * + * @param \DateTimeInterface|\DateInterval|int $delay + * @param string $job + * @param mixed $data + * @param string|null $queue + * @return mixed + * @static + */ + public static function later($delay, $job, $data = '', $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->later($delay, $job, $data, $queue); + } + /** + * Push a new job onto the queue. + * + * @param string $queue + * @param string $job + * @param mixed $data + * @return mixed + * @static + */ + public static function pushOn($queue, $job, $data = '') + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushOn($queue, $job, $data); + } + /** + * Push a new job onto the queue after a delay. + * + * @param string $queue + * @param \DateTimeInterface|\DateInterval|int $delay + * @param string $job + * @param mixed $data + * @return mixed + * @static + */ + public static function laterOn($queue, $delay, $job, $data = '') + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->laterOn($queue, $delay, $job, $data); + } + /** + * Pop the next job off of the queue. + * + * @param string|null $queue + * @return \Illuminate\Contracts\Queue\Job|null + * @static + */ + public static function pop($queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pop($queue); + } + /** + * Push an array of jobs onto the queue. + * + * @param array $jobs + * @param mixed $data + * @param string|null $queue + * @return mixed + * @static + */ + public static function bulk($jobs, $data = '', $queue = null) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->bulk($jobs, $data, $queue); + } + /** + * Get the jobs that have been pushed. + * + * @return array + * @static + */ + public static function pushedJobs() + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->pushedJobs(); + } + /** + * Get the connection name for the queue. + * + * @return string + * @static + */ + public static function getConnectionName() + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->getConnectionName(); + } + /** + * Set the connection name for the queue. + * + * @param string $name + * @return \Illuminate\Support\Testing\Fakes\QueueFake + * @static + */ + public static function setConnectionName($name) + { + /** @var \Illuminate\Support\Testing\Fakes\QueueFake $instance */ + return $instance->setConnectionName($name); + } + /** + * Get the backoff for an object-based queue handler. + * + * @param mixed $job + * @return mixed + * @static + */ + public static function getJobBackoff($job) + { //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\SyncQueue $instance */ + return $instance->getJobBackoff($job); + } + /** + * Get the expiration timestamp for an object-based queue handler. + * + * @param mixed $job + * @return mixed + * @static + */ + public static function getJobExpiration($job) + { //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\SyncQueue $instance */ + return $instance->getJobExpiration($job); + } + /** + * Register a callback to be executed when creating job payloads. + * + * @param callable $callback + * @return void + * @static + */ + public static function createPayloadUsing($callback) + { //Method inherited from \Illuminate\Queue\Queue + \Illuminate\Queue\SyncQueue::createPayloadUsing($callback); + } + /** + * Set the IoC container instance. + * + * @param \Illuminate\Container\Container $container + * @return void + * @static + */ + public static function setContainer($container) + { //Method inherited from \Illuminate\Queue\Queue + /** @var \Illuminate\Queue\SyncQueue $instance */ + $instance->setContainer($container); + } + + } + /** + * + * + * @see \Illuminate\Routing\Redirector + */ + class Redirect { + /** + * Create a new redirect response to the "home" route. + * + * @param int $status + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function home($status = 302) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->home($status); + } + /** + * Create a new redirect response to the previous location. + * + * @param int $status + * @param array $headers + * @param mixed $fallback + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function back($status = 302, $headers = [], $fallback = false) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->back($status, $headers, $fallback); + } + /** + * Create a new redirect response to the current URI. + * + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function refresh($status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->refresh($status, $headers); + } + /** + * Create a new redirect response, while putting the current URL in the session. + * + * @param string $path + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function guest($path, $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->guest($path, $status, $headers, $secure); + } + /** + * Create a new redirect response to the previously intended location. + * + * @param string $default + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function intended($default = '/', $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->intended($default, $status, $headers, $secure); + } + /** + * Set the intended url. + * + * @param string $url + * @return void + * @static + */ + public static function setIntendedUrl($url) + { + /** @var \Illuminate\Routing\Redirector $instance */ + $instance->setIntendedUrl($url); + } + /** + * Create a new redirect response to the given path. + * + * @param string $path + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function to($path, $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->to($path, $status, $headers, $secure); + } + /** + * Create a new redirect response to an external URL (no validation). + * + * @param string $path + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function away($path, $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->away($path, $status, $headers); + } + /** + * Create a new redirect response to the given HTTPS path. + * + * @param string $path + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function secure($path, $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->secure($path, $status, $headers); + } + /** + * Create a new redirect response to a named route. + * + * @param string $route + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function route($route, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->route($route, $parameters, $status, $headers); + } + /** + * Create a new redirect response to a signed named route. + * + * @param string $route + * @param mixed $parameters + * @param \DateTimeInterface|\DateInterval|int|null $expiration + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function signedRoute($route, $parameters = [], $expiration = null, $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->signedRoute($route, $parameters, $expiration, $status, $headers); + } + /** + * Create a new redirect response to a signed named route. + * + * @param string $route + * @param \DateTimeInterface|\DateInterval|int|null $expiration + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function temporarySignedRoute($route, $expiration, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->temporarySignedRoute($route, $expiration, $parameters, $status, $headers); + } + /** + * Create a new redirect response to a controller action. + * + * @param string|array $action + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function action($action, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->action($action, $parameters, $status, $headers); + } + /** + * Get the URL generator instance. + * + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function getUrlGenerator() + { + /** @var \Illuminate\Routing\Redirector $instance */ + return $instance->getUrlGenerator(); + } + /** + * Set the active session store. + * + * @param \Illuminate\Session\Store $session + * @return void + * @static + */ + public static function setSession($session) + { + /** @var \Illuminate\Routing\Redirector $instance */ + $instance->setSession($session); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Routing\Redirector::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Routing\Redirector::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Routing\Redirector::hasMacro($name); + } + + } + /** + * + * + * @method static mixed filterFiles(mixed $files) + * @see \Illuminate\Http\Request + */ + class Request { + /** + * Create a new Illuminate HTTP request from server variables. + * + * @return static + * @static + */ + public static function capture() + { + return \Illuminate\Http\Request::capture(); + } + /** + * Return the Request instance. + * + * @return \Illuminate\Http\Request + * @static + */ + public static function instance() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->instance(); + } + /** + * Get the request method. + * + * @return string + * @static + */ + public static function method() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->method(); + } + /** + * Get the root URL for the application. + * + * @return string + * @static + */ + public static function root() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->root(); + } + /** + * Get the URL (no query string) for the request. + * + * @return string + * @static + */ + public static function url() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->url(); + } + /** + * Get the full URL for the request. + * + * @return string + * @static + */ + public static function fullUrl() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fullUrl(); + } + /** + * Get the full URL for the request with the added query string parameters. + * + * @param array $query + * @return string + * @static + */ + public static function fullUrlWithQuery($query) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fullUrlWithQuery($query); + } + /** + * Get the current path info for the request. + * + * @return string + * @static + */ + public static function path() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->path(); + } + /** + * Get the current decoded path info for the request. + * + * @return string + * @static + */ + public static function decodedPath() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->decodedPath(); + } + /** + * Get a segment from the URI (1 based index). + * + * @param int $index + * @param string|null $default + * @return string|null + * @static + */ + public static function segment($index, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->segment($index, $default); + } + /** + * Get all of the segments for the request path. + * + * @return array + * @static + */ + public static function segments() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->segments(); + } + /** + * Determine if the current request URI matches a pattern. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function is(...$patterns) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->is(...$patterns); + } + /** + * Determine if the route name matches a given pattern. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function routeIs(...$patterns) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->routeIs(...$patterns); + } + /** + * Determine if the current request URL and query string matches a pattern. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function fullUrlIs(...$patterns) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fullUrlIs(...$patterns); + } + /** + * Determine if the request is the result of an AJAX call. + * + * @return bool + * @static + */ + public static function ajax() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->ajax(); + } + /** + * Determine if the request is the result of an PJAX call. + * + * @return bool + * @static + */ + public static function pjax() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->pjax(); + } + /** + * Determine if the request is the result of an prefetch call. + * + * @return bool + * @static + */ + public static function prefetch() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->prefetch(); + } + /** + * Determine if the request is over HTTPS. + * + * @return bool + * @static + */ + public static function secure() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->secure(); + } + /** + * Get the client IP address. + * + * @return string|null + * @static + */ + public static function ip() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->ip(); + } + /** + * Get the client IP addresses. + * + * @return array + * @static + */ + public static function ips() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->ips(); + } + /** + * Get the client user agent. + * + * @return string|null + * @static + */ + public static function userAgent() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->userAgent(); + } + /** + * Merge new input into the current request's input array. + * + * @param array $input + * @return \Illuminate\Http\Request + * @static + */ + public static function merge($input) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->merge($input); + } + /** + * Replace the input for the current request. + * + * @param array $input + * @return \Illuminate\Http\Request + * @static + */ + public static function replace($input) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->replace($input); + } + /** + * This method belongs to Symfony HttpFoundation and is not usually needed when using Laravel. + * + * Instead, you may use the "input" method. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->get($key, $default); + } + /** + * Get the JSON payload for the request. + * + * @param string|null $key + * @param mixed $default + * @return \Symfony\Component\HttpFoundation\ParameterBag|mixed + * @static + */ + public static function json($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->json($key, $default); + } + /** + * Create a new request instance from the given Laravel request. + * + * @param \Illuminate\Http\Request $from + * @param \Illuminate\Http\Request|null $to + * @return static + * @static + */ + public static function createFrom($from, $to = null) + { + return \Illuminate\Http\Request::createFrom($from, $to); + } + /** + * Create an Illuminate request from a Symfony instance. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @return static + * @static + */ + public static function createFromBase($request) + { + return \Illuminate\Http\Request::createFromBase($request); + } + /** + * Clones a request and overrides some of its parameters. + * + * @param array $query The GET parameters + * @param array $request The POST parameters + * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) + * @param array $cookies The COOKIE parameters + * @param array $files The FILES parameters + * @param array $server The SERVER parameters + * @return static + * @static + */ + public static function duplicate($query = null, $request = null, $attributes = null, $cookies = null, $files = null, $server = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->duplicate($query, $request, $attributes, $cookies, $files, $server); + } + /** + * Get the session associated with the request. + * + * @return \Illuminate\Session\Store + * @throws \RuntimeException + * @static + */ + public static function session() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->session(); + } + /** + * Get the session associated with the request. + * + * @return \Illuminate\Session\Store|null + * @static + */ + public static function getSession() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->getSession(); + } + /** + * Set the session instance on the request. + * + * @param \Illuminate\Contracts\Session\Session $session + * @return void + * @static + */ + public static function setLaravelSession($session) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->setLaravelSession($session); + } + /** + * Get the user making the request. + * + * @param string|null $guard + * @return mixed + * @static + */ + public static function user($guard = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->user($guard); + } + /** + * Get the route handling the request. + * + * @param string|null $param + * @param mixed $default + * @return \Illuminate\Routing\Route|object|string|null + * @static + */ + public static function route($param = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->route($param, $default); + } + /** + * Get a unique fingerprint for the request / route / IP address. + * + * @return string + * @throws \RuntimeException + * @static + */ + public static function fingerprint() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->fingerprint(); + } + /** + * Set the JSON payload for the request. + * + * @param \Symfony\Component\HttpFoundation\ParameterBag $json + * @return \Illuminate\Http\Request + * @static + */ + public static function setJson($json) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->setJson($json); + } + /** + * Get the user resolver callback. + * + * @return \Closure + * @static + */ + public static function getUserResolver() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUserResolver(); + } + /** + * Set the user resolver callback. + * + * @param \Closure $callback + * @return \Illuminate\Http\Request + * @static + */ + public static function setUserResolver($callback) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->setUserResolver($callback); + } + /** + * Get the route resolver callback. + * + * @return \Closure + * @static + */ + public static function getRouteResolver() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRouteResolver(); + } + /** + * Set the route resolver callback. + * + * @param \Closure $callback + * @return \Illuminate\Http\Request + * @static + */ + public static function setRouteResolver($callback) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->setRouteResolver($callback); + } + /** + * Get all of the input and files for the request. + * + * @return array + * @static + */ + public static function toArray() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->toArray(); + } + /** + * Determine if the given offset exists. + * + * @param string $offset + * @return bool + * @static + */ + public static function offsetExists($offset) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->offsetExists($offset); + } + /** + * Get the value at the given offset. + * + * @param string $offset + * @return mixed + * @static + */ + public static function offsetGet($offset) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->offsetGet($offset); + } + /** + * Set the value at the given offset. + * + * @param string $offset + * @param mixed $value + * @return void + * @static + */ + public static function offsetSet($offset, $value) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->offsetSet($offset, $value); + } + /** + * Remove the value at the given offset. + * + * @param string $offset + * @return void + * @static + */ + public static function offsetUnset($offset) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->offsetUnset($offset); + } + /** + * Sets the parameters for this request. + * + * This method also re-initializes all properties. + * + * @param array $query The GET parameters + * @param array $request The POST parameters + * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) + * @param array $cookies The COOKIE parameters + * @param array $files The FILES parameters + * @param array $server The SERVER parameters + * @param string|resource|null $content The raw body data + * @static + */ + public static function initialize($query = [], $request = [], $attributes = [], $cookies = [], $files = [], $server = [], $content = null) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->initialize($query, $request, $attributes, $cookies, $files, $server, $content); + } + /** + * Creates a new request with values from PHP's super globals. + * + * @return static + * @static + */ + public static function createFromGlobals() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::createFromGlobals(); + } + /** + * Creates a Request based on a given URI and configuration. + * + * The information contained in the URI always take precedence + * over the other information (server and parameters). + * + * @param string $uri The URI + * @param string $method The HTTP method + * @param array $parameters The query (GET) or request (POST) parameters + * @param array $cookies The request cookies ($_COOKIE) + * @param array $files The request files ($_FILES) + * @param array $server The server parameters ($_SERVER) + * @param string|resource|null $content The raw body data + * @return static + * @static + */ + public static function create($uri, $method = 'GET', $parameters = [], $cookies = [], $files = [], $server = [], $content = null) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::create($uri, $method, $parameters, $cookies, $files, $server, $content); + } + /** + * Sets a callable able to create a Request instance. + * + * This is mainly useful when you need to override the Request class + * to keep BC with an existing system. It should not be used for any + * other purpose. + * + * @static + */ + public static function setFactory($callable) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::setFactory($callable); + } + /** + * Overrides the PHP global variables according to this request instance. + * + * It overrides $_GET, $_POST, $_REQUEST, $_SERVER, $_COOKIE. + * $_FILES is never overridden, see rfc1867 + * + * @static + */ + public static function overrideGlobals() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->overrideGlobals(); + } + /** + * Sets a list of trusted proxies. + * + * You should only list the reverse proxies that you manage directly. + * + * @param array $proxies A list of trusted proxies, the string 'REMOTE_ADDR' will be replaced with $_SERVER['REMOTE_ADDR'] + * @param int $trustedHeaderSet A bit field of Request::HEADER_*, to set which headers to trust from your proxies + * @static + */ + public static function setTrustedProxies($proxies, $trustedHeaderSet) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::setTrustedProxies($proxies, $trustedHeaderSet); + } + /** + * Gets the list of trusted proxies. + * + * @return array An array of trusted proxies + * @static + */ + public static function getTrustedProxies() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getTrustedProxies(); + } + /** + * Gets the set of trusted headers from trusted proxies. + * + * @return int A bit field of Request::HEADER_* that defines which headers are trusted from your proxies + * @static + */ + public static function getTrustedHeaderSet() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getTrustedHeaderSet(); + } + /** + * Sets a list of trusted host patterns. + * + * You should only list the hosts you manage using regexs. + * + * @param array $hostPatterns A list of trusted host patterns + * @static + */ + public static function setTrustedHosts($hostPatterns) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::setTrustedHosts($hostPatterns); + } + /** + * Gets the list of trusted host patterns. + * + * @return array An array of trusted host patterns + * @static + */ + public static function getTrustedHosts() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getTrustedHosts(); + } + /** + * Normalizes a query string. + * + * It builds a normalized query string, where keys/value pairs are alphabetized, + * have consistent escaping and unneeded delimiters are removed. + * + * @return string A normalized query string for the Request + * @static + */ + public static function normalizeQueryString($qs) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::normalizeQueryString($qs); + } + /** + * Enables support for the _method request parameter to determine the intended HTTP method. + * + * Be warned that enabling this feature might lead to CSRF issues in your code. + * Check that you are using CSRF tokens when required. + * If the HTTP method parameter override is enabled, an html-form with method "POST" can be altered + * and used to send a "PUT" or "DELETE" request via the _method request parameter. + * If these methods are not protected against CSRF, this presents a possible vulnerability. + * + * The HTTP method can only be overridden when the real HTTP method is POST. + * + * @static + */ + public static function enableHttpMethodParameterOverride() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::enableHttpMethodParameterOverride(); + } + /** + * Checks whether support for the _method request parameter is enabled. + * + * @return bool True when the _method request parameter is enabled, false otherwise + * @static + */ + public static function getHttpMethodParameterOverride() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getHttpMethodParameterOverride(); + } + /** + * Whether the request contains a Session which was started in one of the + * previous requests. + * + * @return bool + * @static + */ + public static function hasPreviousSession() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasPreviousSession(); + } + /** + * Whether the request contains a Session object. + * + * This method does not give any information about the state of the session object, + * like whether the session is started or not. It is just a way to check if this Request + * is associated with a Session instance. + * + * @return bool true when the Request contains a Session object, false otherwise + * @static + */ + public static function hasSession() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasSession(); + } + /** + * + * + * @static + */ + public static function setSession($session) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setSession($session); + } + /** + * + * + * @internal + * @static + */ + public static function setSessionFactory($factory) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setSessionFactory($factory); + } + /** + * Returns the client IP addresses. + * + * In the returned array the most trusted IP address is first, and the + * least trusted one last. The "real" client IP address is the last one, + * but this is also the least trusted one. Trusted proxies are stripped. + * + * Use this method carefully; you should use getClientIp() instead. + * + * @return array The client IP addresses + * @see getClientIp() + * @static + */ + public static function getClientIps() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getClientIps(); + } + /** + * Returns the client IP address. + * + * This method can read the client IP address from the "X-Forwarded-For" header + * when trusted proxies were set via "setTrustedProxies()". The "X-Forwarded-For" + * header value is a comma+space separated list of IP addresses, the left-most + * being the original client, and each successive proxy that passed the request + * adding the IP address where it received the request from. + * + * If your reverse proxy uses a different header name than "X-Forwarded-For", + * ("Client-Ip" for instance), configure it via the $trustedHeaderSet + * argument of the Request::setTrustedProxies() method instead. + * + * @return string|null The client IP address + * @see getClientIps() + * @see https://wikipedia.org/wiki/X-Forwarded-For + * @static + */ + public static function getClientIp() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getClientIp(); + } + /** + * Returns current script name. + * + * @return string + * @static + */ + public static function getScriptName() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getScriptName(); + } + /** + * Returns the path being requested relative to the executed script. + * + * The path info always starts with a /. + * + * Suppose this request is instantiated from /mysite on localhost: + * + * * http://localhost/mysite returns an empty string + * * http://localhost/mysite/about returns '/about' + * * http://localhost/mysite/enco%20ded returns '/enco%20ded' + * * http://localhost/mysite/about?var=1 returns '/about' + * + * @return string The raw path (i.e. not urldecoded) + * @static + */ + public static function getPathInfo() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPathInfo(); + } + /** + * Returns the root path from which this request is executed. + * + * Suppose that an index.php file instantiates this request object: + * + * * http://localhost/index.php returns an empty string + * * http://localhost/index.php/page returns an empty string + * * http://localhost/web/index.php returns '/web' + * * http://localhost/we%20b/index.php returns '/we%20b' + * + * @return string The raw path (i.e. not urldecoded) + * @static + */ + public static function getBasePath() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getBasePath(); + } + /** + * Returns the root URL from which this request is executed. + * + * The base URL never ends with a /. + * + * This is similar to getBasePath(), except that it also includes the + * script filename (e.g. index.php) if one exists. + * + * @return string The raw URL (i.e. not urldecoded) + * @static + */ + public static function getBaseUrl() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getBaseUrl(); + } + /** + * Gets the request's scheme. + * + * @return string + * @static + */ + public static function getScheme() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getScheme(); + } + /** + * Returns the port on which the request is made. + * + * This method can read the client port from the "X-Forwarded-Port" header + * when trusted proxies were set via "setTrustedProxies()". + * + * The "X-Forwarded-Port" header must contain the client port. + * + * @return int|string can be a string if fetched from the server bag + * @static + */ + public static function getPort() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPort(); + } + /** + * Returns the user. + * + * @return string|null + * @static + */ + public static function getUser() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUser(); + } + /** + * Returns the password. + * + * @return string|null + * @static + */ + public static function getPassword() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPassword(); + } + /** + * Gets the user info. + * + * @return string A user name and, optionally, scheme-specific information about how to gain authorization to access the server + * @static + */ + public static function getUserInfo() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUserInfo(); + } + /** + * Returns the HTTP host being requested. + * + * The port name will be appended to the host if it's non-standard. + * + * @return string + * @static + */ + public static function getHttpHost() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getHttpHost(); + } + /** + * Returns the requested URI (path and query string). + * + * @return string The raw URI (i.e. not URI decoded) + * @static + */ + public static function getRequestUri() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRequestUri(); + } + /** + * Gets the scheme and HTTP host. + * + * If the URL was called with basic authentication, the user + * and the password are not added to the generated string. + * + * @return string The scheme and HTTP host + * @static + */ + public static function getSchemeAndHttpHost() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getSchemeAndHttpHost(); + } + /** + * Generates a normalized URI (URL) for the Request. + * + * @return string A normalized URI (URL) for the Request + * @see getQueryString() + * @static + */ + public static function getUri() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUri(); + } + /** + * Generates a normalized URI for the given path. + * + * @param string $path A path to use instead of the current one + * @return string The normalized URI for the path + * @static + */ + public static function getUriForPath($path) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getUriForPath($path); + } + /** + * Returns the path as relative reference from the current Request path. + * + * Only the URIs path component (no schema, host etc.) is relevant and must be given. + * Both paths must be absolute and not contain relative parts. + * Relative URLs from one resource to another are useful when generating self-contained downloadable document archives. + * Furthermore, they can be used to reduce the link size in documents. + * + * Example target paths, given a base path of "/a/b/c/d": + * - "/a/b/c/d" -> "" + * - "/a/b/c/" -> "./" + * - "/a/b/" -> "../" + * - "/a/b/c/other" -> "other" + * - "/a/x/y" -> "../../x/y" + * + * @return string The relative target path + * @static + */ + public static function getRelativeUriForPath($path) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRelativeUriForPath($path); + } + /** + * Generates the normalized query string for the Request. + * + * It builds a normalized query string, where keys/value pairs are alphabetized + * and have consistent escaping. + * + * @return string|null A normalized query string for the Request + * @static + */ + public static function getQueryString() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getQueryString(); + } + /** + * Checks whether the request is secure or not. + * + * This method can read the client protocol from the "X-Forwarded-Proto" header + * when trusted proxies were set via "setTrustedProxies()". + * + * The "X-Forwarded-Proto" header must contain the protocol: "https" or "http". + * + * @return bool + * @static + */ + public static function isSecure() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isSecure(); + } + /** + * Returns the host name. + * + * This method can read the client host name from the "X-Forwarded-Host" header + * when trusted proxies were set via "setTrustedProxies()". + * + * The "X-Forwarded-Host" header must contain the client host name. + * + * @return string + * @throws SuspiciousOperationException when the host name is invalid or not trusted + * @static + */ + public static function getHost() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getHost(); + } + /** + * Sets the request method. + * + * @static + */ + public static function setMethod($method) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setMethod($method); + } + /** + * Gets the request "intended" method. + * + * If the X-HTTP-Method-Override header is set, and if the method is a POST, + * then it is used to determine the "real" intended HTTP method. + * + * The _method request parameter can also be used to determine the HTTP method, + * but only if enableHttpMethodParameterOverride() has been called. + * + * The method is always an uppercased string. + * + * @return string The request method + * @see getRealMethod() + * @static + */ + public static function getMethod() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getMethod(); + } + /** + * Gets the "real" request method. + * + * @return string The request method + * @see getMethod() + * @static + */ + public static function getRealMethod() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRealMethod(); + } + /** + * Gets the mime type associated with the format. + * + * @return string|null The associated mime type (null if not found) + * @static + */ + public static function getMimeType($format) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getMimeType($format); + } + /** + * Gets the mime types associated with the format. + * + * @return array The associated mime types + * @static + */ + public static function getMimeTypes($format) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + return \Illuminate\Http\Request::getMimeTypes($format); + } + /** + * Gets the format associated with the mime type. + * + * @return string|null The format (null if not found) + * @static + */ + public static function getFormat($mimeType) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getFormat($mimeType); + } + /** + * Associates a format with mime types. + * + * @param string|array $mimeTypes The associated mime types (the preferred one must be the first as it will be used as the content type) + * @static + */ + public static function setFormat($format, $mimeTypes) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setFormat($format, $mimeTypes); + } + /** + * Gets the request format. + * + * Here is the process to determine the format: + * + * * format defined by the user (with setRequestFormat()) + * * _format request attribute + * * $default + * + * @see getPreferredFormat + * @return string|null The request format + * @static + */ + public static function getRequestFormat($default = 'html') + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getRequestFormat($default); + } + /** + * Sets the request format. + * + * @static + */ + public static function setRequestFormat($format) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setRequestFormat($format); + } + /** + * Gets the format associated with the request. + * + * @return string|null The format (null if no content type is present) + * @static + */ + public static function getContentType() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getContentType(); + } + /** + * Sets the default locale. + * + * @static + */ + public static function setDefaultLocale($locale) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setDefaultLocale($locale); + } + /** + * Get the default locale. + * + * @return string + * @static + */ + public static function getDefaultLocale() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getDefaultLocale(); + } + /** + * Sets the locale. + * + * @static + */ + public static function setLocale($locale) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->setLocale($locale); + } + /** + * Get the locale. + * + * @return string + * @static + */ + public static function getLocale() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getLocale(); + } + /** + * Checks if the request method is of specified type. + * + * @param string $method Uppercase request method (GET, POST etc) + * @return bool + * @static + */ + public static function isMethod($method) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isMethod($method); + } + /** + * Checks whether or not the method is safe. + * + * @see https://tools.ietf.org/html/rfc7231#section-4.2.1 + * @return bool + * @static + */ + public static function isMethodSafe() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isMethodSafe(); + } + /** + * Checks whether or not the method is idempotent. + * + * @return bool + * @static + */ + public static function isMethodIdempotent() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isMethodIdempotent(); + } + /** + * Checks whether the method is cacheable or not. + * + * @see https://tools.ietf.org/html/rfc7231#section-4.2.3 + * @return bool True for GET and HEAD, false otherwise + * @static + */ + public static function isMethodCacheable() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isMethodCacheable(); + } + /** + * Returns the protocol version. + * + * If the application is behind a proxy, the protocol version used in the + * requests between the client and the proxy and between the proxy and the + * server might be different. This returns the former (from the "Via" header) + * if the proxy is trusted (see "setTrustedProxies()"), otherwise it returns + * the latter (from the "SERVER_PROTOCOL" server parameter). + * + * @return string + * @static + */ + public static function getProtocolVersion() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getProtocolVersion(); + } + /** + * Returns the request body content. + * + * @param bool $asResource If true, a resource will be returned + * @return string|resource The request body content or a resource to read the body stream + * @static + */ + public static function getContent($asResource = false) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getContent($asResource); + } + /** + * Gets the Etags. + * + * @return array The entity tags + * @static + */ + public static function getETags() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getETags(); + } + /** + * + * + * @return bool + * @static + */ + public static function isNoCache() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isNoCache(); + } + /** + * Gets the preferred format for the response by inspecting, in the following order: + * * the request format set using setRequestFormat; + * * the values of the Accept HTTP header. + * + * Note that if you use this method, you should send the "Vary: Accept" header + * in the response to prevent any issues with intermediary HTTP caches. + * + * @static + */ + public static function getPreferredFormat($default = 'html') + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPreferredFormat($default); + } + /** + * Returns the preferred language. + * + * @param string[] $locales An array of ordered available locales + * @return string|null The preferred locale + * @static + */ + public static function getPreferredLanguage($locales = null) + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getPreferredLanguage($locales); + } + /** + * Gets a list of languages acceptable by the client browser. + * + * @return array Languages ordered in the user browser preferences + * @static + */ + public static function getLanguages() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getLanguages(); + } + /** + * Gets a list of charsets acceptable by the client browser. + * + * @return array List of charsets in preferable order + * @static + */ + public static function getCharsets() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getCharsets(); + } + /** + * Gets a list of encodings acceptable by the client browser. + * + * @return array List of encodings in preferable order + * @static + */ + public static function getEncodings() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getEncodings(); + } + /** + * Gets a list of content types acceptable by the client browser. + * + * @return array List of content types in preferable order + * @static + */ + public static function getAcceptableContentTypes() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->getAcceptableContentTypes(); + } + /** + * Returns true if the request is a XMLHttpRequest. + * + * It works if your JavaScript library sets an X-Requested-With HTTP header. + * It is known to work with common JavaScript frameworks: + * + * @see https://wikipedia.org/wiki/List_of_Ajax_frameworks#JavaScript + * @return bool true if the request is an XMLHttpRequest, false otherwise + * @static + */ + public static function isXmlHttpRequest() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isXmlHttpRequest(); + } + /** + * Checks whether the client browser prefers safe content or not according to RFC8674. + * + * @see https://tools.ietf.org/html/rfc8674 + * @static + */ + public static function preferSafeContent() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->preferSafeContent(); + } + /** + * Indicates whether this request originated from a trusted proxy. + * + * This can be useful to determine whether or not to trust the + * contents of a proxy-specific header. + * + * @return bool true if the request came from a trusted proxy, false otherwise + * @static + */ + public static function isFromTrustedProxy() + { //Method inherited from \Symfony\Component\HttpFoundation\Request + /** @var \Illuminate\Http\Request $instance */ + return $instance->isFromTrustedProxy(); + } + /** + * Determine if the request is sending JSON. + * + * @return bool + * @static + */ + public static function isJson() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->isJson(); + } + /** + * Determine if the current request probably expects a JSON response. + * + * @return bool + * @static + */ + public static function expectsJson() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->expectsJson(); + } + /** + * Determine if the current request is asking for JSON. + * + * @return bool + * @static + */ + public static function wantsJson() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->wantsJson(); + } + /** + * Determines whether the current requests accepts a given content type. + * + * @param string|array $contentTypes + * @return bool + * @static + */ + public static function accepts($contentTypes) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->accepts($contentTypes); + } + /** + * Return the most suitable content type from the given array based on content negotiation. + * + * @param string|array $contentTypes + * @return string|null + * @static + */ + public static function prefers($contentTypes) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->prefers($contentTypes); + } + /** + * Determine if the current request accepts any content type. + * + * @return bool + * @static + */ + public static function acceptsAnyContentType() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->acceptsAnyContentType(); + } + /** + * Determines whether a request accepts JSON. + * + * @return bool + * @static + */ + public static function acceptsJson() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->acceptsJson(); + } + /** + * Determines whether a request accepts HTML. + * + * @return bool + * @static + */ + public static function acceptsHtml() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->acceptsHtml(); + } + /** + * Determine if the given content types match. + * + * @param string $actual + * @param string $type + * @return bool + * @static + */ + public static function matchesType($actual, $type) + { + return \Illuminate\Http\Request::matchesType($actual, $type); + } + /** + * Get the data format expected in the response. + * + * @param string $default + * @return string + * @static + */ + public static function format($default = 'html') + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->format($default); + } + /** + * Retrieve an old input item. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array + * @static + */ + public static function old($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->old($key, $default); + } + /** + * Flash the input for the current request to the session. + * + * @return void + * @static + */ + public static function flash() + { + /** @var \Illuminate\Http\Request $instance */ + $instance->flash(); + } + /** + * Flash only some of the input to the session. + * + * @param array|mixed $keys + * @return void + * @static + */ + public static function flashOnly($keys) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->flashOnly($keys); + } + /** + * Flash only some of the input to the session. + * + * @param array|mixed $keys + * @return void + * @static + */ + public static function flashExcept($keys) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->flashExcept($keys); + } + /** + * Flush all of the old input from the session. + * + * @return void + * @static + */ + public static function flush() + { + /** @var \Illuminate\Http\Request $instance */ + $instance->flush(); + } + /** + * Retrieve a server variable from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function server($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->server($key, $default); + } + /** + * Determine if a header is set on the request. + * + * @param string $key + * @return bool + * @static + */ + public static function hasHeader($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasHeader($key); + } + /** + * Retrieve a header from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function header($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->header($key, $default); + } + /** + * Get the bearer token from the request headers. + * + * @return string|null + * @static + */ + public static function bearerToken() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->bearerToken(); + } + /** + * Determine if the request contains a given input item key. + * + * @param string|array $key + * @return bool + * @static + */ + public static function exists($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->exists($key); + } + /** + * Determine if the request contains a given input item key. + * + * @param string|array $key + * @return bool + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->has($key); + } + /** + * Determine if the request contains any of the given inputs. + * + * @param string|array $keys + * @return bool + * @static + */ + public static function hasAny($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasAny($keys); + } + /** + * Apply the callback if the request contains the given input item key. + * + * @param string $key + * @param callable $callback + * @return $this|mixed + * @static + */ + public static function whenHas($key, $callback) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->whenHas($key, $callback); + } + /** + * Determine if the request contains a non-empty value for an input item. + * + * @param string|array $key + * @return bool + * @static + */ + public static function filled($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->filled($key); + } + /** + * Determine if the request contains an empty value for an input item. + * + * @param string|array $key + * @return bool + * @static + */ + public static function isNotFilled($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->isNotFilled($key); + } + /** + * Determine if the request contains a non-empty value for any of the given inputs. + * + * @param string|array $keys + * @return bool + * @static + */ + public static function anyFilled($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->anyFilled($keys); + } + /** + * Apply the callback if the request contains a non-empty value for the given input item key. + * + * @param string $key + * @param callable $callback + * @return $this|mixed + * @static + */ + public static function whenFilled($key, $callback) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->whenFilled($key, $callback); + } + /** + * Determine if the request is missing a given input item key. + * + * @param string|array $key + * @return bool + * @static + */ + public static function missing($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->missing($key); + } + /** + * Get the keys for all of the input and files. + * + * @return array + * @static + */ + public static function keys() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->keys(); + } + /** + * Get all of the input and files for the request. + * + * @param array|mixed|null $keys + * @return array + * @static + */ + public static function all($keys = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->all($keys); + } + /** + * Retrieve an input item from the request. + * + * @param string|null $key + * @param mixed $default + * @return mixed + * @static + */ + public static function input($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->input($key, $default); + } + /** + * Retrieve input as a boolean value. + * + * Returns true when value is "1", "true", "on", and "yes". Otherwise, returns false. + * + * @param string|null $key + * @param bool $default + * @return bool + * @static + */ + public static function boolean($key = null, $default = false) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->boolean($key, $default); + } + /** + * Get a subset containing the provided keys with values from the input data. + * + * @param array|mixed $keys + * @return array + * @static + */ + public static function only($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->only($keys); + } + /** + * Get all of the input except for a specified array of items. + * + * @param array|mixed $keys + * @return array + * @static + */ + public static function except($keys) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->except($keys); + } + /** + * Retrieve a query string item from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function query($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->query($key, $default); + } + /** + * Retrieve a request payload item from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function post($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->post($key, $default); + } + /** + * Determine if a cookie is set on the request. + * + * @param string $key + * @return bool + * @static + */ + public static function hasCookie($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasCookie($key); + } + /** + * Retrieve a cookie from the request. + * + * @param string|null $key + * @param string|array|null $default + * @return string|array|null + * @static + */ + public static function cookie($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->cookie($key, $default); + } + /** + * Get an array of all of the files on the request. + * + * @return array + * @static + */ + public static function allFiles() + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->allFiles(); + } + /** + * Determine if the uploaded data contains a file. + * + * @param string $key + * @return bool + * @static + */ + public static function hasFile($key) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->hasFile($key); + } + /** + * Retrieve a file from the request. + * + * @param string|null $key + * @param mixed $default + * @return \Illuminate\Http\UploadedFile|\Illuminate\Http\UploadedFile[]|array|null + * @static + */ + public static function file($key = null, $default = null) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->file($key, $default); + } + /** + * Dump the request items and end the script. + * + * @param array|mixed $keys + * @return void + * @static + */ + public static function dd(...$keys) + { + /** @var \Illuminate\Http\Request $instance */ + $instance->dd(...$keys); + } + /** + * Dump the items. + * + * @param array $keys + * @return \Illuminate\Http\Request + * @static + */ + public static function dump($keys = []) + { + /** @var \Illuminate\Http\Request $instance */ + return $instance->dump($keys); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Http\Request::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Http\Request::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Http\Request::hasMacro($name); + } + /** + * + * + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param array $rules + * @param mixed $params + * @static + */ + public static function validate($rules, ...$params) + { + return \Illuminate\Http\Request::validate($rules, ...$params); + } + /** + * + * + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param string $errorBag + * @param array $rules + * @param mixed $params + * @static + */ + public static function validateWithBag($errorBag, $rules, ...$params) + { + return \Illuminate\Http\Request::validateWithBag($errorBag, $rules, ...$params); + } + /** + * + * + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $absolute + * @static + */ + public static function hasValidSignature($absolute = true) + { + return \Illuminate\Http\Request::hasValidSignature($absolute); + } + /** + * + * + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @static + */ + public static function hasValidRelativeSignature() + { + return \Illuminate\Http\Request::hasValidRelativeSignature(); + } + + } + /** + * + * + * @see \Illuminate\Contracts\Routing\ResponseFactory + */ + class Response { + /** + * Create a new response instance. + * + * @param string $content + * @param int $status + * @param array $headers + * @return \Illuminate\Http\Response + * @static + */ + public static function make($content = '', $status = 200, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->make($content, $status, $headers); + } + /** + * Create a new "no content" response. + * + * @param int $status + * @param array $headers + * @return \Illuminate\Http\Response + * @static + */ + public static function noContent($status = 204, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->noContent($status, $headers); + } + /** + * Create a new response for a given view. + * + * @param string|array $view + * @param array $data + * @param int $status + * @param array $headers + * @return \Illuminate\Http\Response + * @static + */ + public static function view($view, $data = [], $status = 200, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->view($view, $data, $status, $headers); + } + /** + * Create a new JSON response instance. + * + * @param mixed $data + * @param int $status + * @param array $headers + * @param int $options + * @return \Illuminate\Http\JsonResponse + * @static + */ + public static function json($data = [], $status = 200, $headers = [], $options = 0) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->json($data, $status, $headers, $options); + } + /** + * Create a new JSONP response instance. + * + * @param string $callback + * @param mixed $data + * @param int $status + * @param array $headers + * @param int $options + * @return \Illuminate\Http\JsonResponse + * @static + */ + public static function jsonp($callback, $data = [], $status = 200, $headers = [], $options = 0) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->jsonp($callback, $data, $status, $headers, $options); + } + /** + * Create a new streamed response instance. + * + * @param \Closure $callback + * @param int $status + * @param array $headers + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function stream($callback, $status = 200, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->stream($callback, $status, $headers); + } + /** + * Create a new streamed response instance as a file download. + * + * @param \Closure $callback + * @param string|null $name + * @param array $headers + * @param string|null $disposition + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function streamDownload($callback, $name = null, $headers = [], $disposition = 'attachment') + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->streamDownload($callback, $name, $headers, $disposition); + } + /** + * Create a new file download response. + * + * @param \SplFileInfo|string $file + * @param string|null $name + * @param array $headers + * @param string|null $disposition + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + * @static + */ + public static function download($file, $name = null, $headers = [], $disposition = 'attachment') + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->download($file, $name, $headers, $disposition); + } + /** + * Return the raw contents of a binary file. + * + * @param \SplFileInfo|string $file + * @param array $headers + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + * @static + */ + public static function file($file, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->file($file, $headers); + } + /** + * Create a new redirect response to the given path. + * + * @param string $path + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectTo($path, $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectTo($path, $status, $headers, $secure); + } + /** + * Create a new redirect response to a named route. + * + * @param string $route + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectToRoute($route, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectToRoute($route, $parameters, $status, $headers); + } + /** + * Create a new redirect response to a controller action. + * + * @param string $action + * @param mixed $parameters + * @param int $status + * @param array $headers + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectToAction($action, $parameters = [], $status = 302, $headers = []) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectToAction($action, $parameters, $status, $headers); + } + /** + * Create a new redirect response, while putting the current URL in the session. + * + * @param string $path + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectGuest($path, $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectGuest($path, $status, $headers, $secure); + } + /** + * Create a new redirect response to the previously intended location. + * + * @param string $default + * @param int $status + * @param array $headers + * @param bool|null $secure + * @return \Illuminate\Http\RedirectResponse + * @static + */ + public static function redirectToIntended($default = '/', $status = 302, $headers = [], $secure = null) + { + /** @var \Illuminate\Routing\ResponseFactory $instance */ + return $instance->redirectToIntended($default, $status, $headers, $secure); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Routing\ResponseFactory::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Routing\ResponseFactory::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Routing\ResponseFactory::hasMacro($name); + } + + } + /** + * + * + * @method static \Illuminate\Routing\RouteRegistrar as(string $value) + * @method static \Illuminate\Routing\RouteRegistrar domain(string $value) + * @method static \Illuminate\Routing\RouteRegistrar middleware(array|string|null $middleware) + * @method static \Illuminate\Routing\RouteRegistrar name(string $value) + * @method static \Illuminate\Routing\RouteRegistrar namespace(string|null $value) + * @method static \Illuminate\Routing\RouteRegistrar prefix(string $prefix) + * @method static \Illuminate\Routing\RouteRegistrar where(array $where) + * @see \Illuminate\Routing\Router + */ + class Route { + /** + * Register a new GET route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function get($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->get($uri, $action); + } + /** + * Register a new POST route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function post($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->post($uri, $action); + } + /** + * Register a new PUT route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function put($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->put($uri, $action); + } + /** + * Register a new PATCH route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function patch($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->patch($uri, $action); + } + /** + * Register a new DELETE route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function delete($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->delete($uri, $action); + } + /** + * Register a new OPTIONS route with the router. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function options($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->options($uri, $action); + } + /** + * Register a new route responding to all verbs. + * + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function any($uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->any($uri, $action); + } + /** + * Register a new Fallback route with the router. + * + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function fallback($action) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->fallback($action); + } + /** + * Create a redirect from one URI to another. + * + * @param string $uri + * @param string $destination + * @param int $status + * @return \Illuminate\Routing\Route + * @static + */ + public static function redirect($uri, $destination, $status = 302) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->redirect($uri, $destination, $status); + } + /** + * Create a permanent redirect from one URI to another. + * + * @param string $uri + * @param string $destination + * @return \Illuminate\Routing\Route + * @static + */ + public static function permanentRedirect($uri, $destination) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->permanentRedirect($uri, $destination); + } + /** + * Register a new route that returns a view. + * + * @param string $uri + * @param string $view + * @param array $data + * @param int|array $status + * @param array $headers + * @return \Illuminate\Routing\Route + * @static + */ + public static function view($uri, $view, $data = [], $status = 200, $headers = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->view($uri, $view, $data, $status, $headers); + } + /** + * Register a new route with the given verbs. + * + * @param array|string $methods + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function match($methods, $uri, $action = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->match($methods, $uri, $action); + } + /** + * Register an array of resource controllers. + * + * @param array $resources + * @param array $options + * @return void + * @static + */ + public static function resources($resources, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->resources($resources, $options); + } + /** + * Route a resource to a controller. + * + * @param string $name + * @param string $controller + * @param array $options + * @return \Illuminate\Routing\PendingResourceRegistration + * @static + */ + public static function resource($name, $controller, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->resource($name, $controller, $options); + } + /** + * Register an array of API resource controllers. + * + * @param array $resources + * @param array $options + * @return void + * @static + */ + public static function apiResources($resources, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->apiResources($resources, $options); + } + /** + * Route an API resource to a controller. + * + * @param string $name + * @param string $controller + * @param array $options + * @return \Illuminate\Routing\PendingResourceRegistration + * @static + */ + public static function apiResource($name, $controller, $options = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->apiResource($name, $controller, $options); + } + /** + * Create a route group with shared attributes. + * + * @param array $attributes + * @param \Closure|string $routes + * @return void + * @static + */ + public static function group($attributes, $routes) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->group($attributes, $routes); + } + /** + * Merge the given array with the last group stack. + * + * @param array $new + * @param bool $prependExistingPrefix + * @return array + * @static + */ + public static function mergeWithLastGroup($new, $prependExistingPrefix = true) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->mergeWithLastGroup($new, $prependExistingPrefix); + } + /** + * Get the prefix from the last group on the stack. + * + * @return string + * @static + */ + public static function getLastGroupPrefix() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getLastGroupPrefix(); + } + /** + * Add a route to the underlying route collection. + * + * @param array|string $methods + * @param string $uri + * @param array|string|callable|null $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function addRoute($methods, $uri, $action) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->addRoute($methods, $uri, $action); + } + /** + * Create a new Route object. + * + * @param array|string $methods + * @param string $uri + * @param mixed $action + * @return \Illuminate\Routing\Route + * @static + */ + public static function newRoute($methods, $uri, $action) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->newRoute($methods, $uri, $action); + } + /** + * Return the response returned by the given route. + * + * @param string $name + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function respondWithRoute($name) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->respondWithRoute($name); + } + /** + * Dispatch the request to the application. + * + * @param \Illuminate\Http\Request $request + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function dispatch($request) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->dispatch($request); + } + /** + * Dispatch the request to a route and return the response. + * + * @param \Illuminate\Http\Request $request + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function dispatchToRoute($request) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->dispatchToRoute($request); + } + /** + * Gather the middleware for the given route with resolved class names. + * + * @param \Illuminate\Routing\Route $route + * @return array + * @static + */ + public static function gatherRouteMiddleware($route) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->gatherRouteMiddleware($route); + } + /** + * Create a response instance from the given value. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @param mixed $response + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function prepareResponse($request, $response) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->prepareResponse($request, $response); + } + /** + * Static version of prepareResponse. + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @param mixed $response + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function toResponse($request, $response) + { + return \Illuminate\Routing\Router::toResponse($request, $response); + } + /** + * Substitute the route bindings onto the route. + * + * @param \Illuminate\Routing\Route $route + * @return \Illuminate\Routing\Route + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @static + */ + public static function substituteBindings($route) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->substituteBindings($route); + } + /** + * Substitute the implicit Eloquent model bindings for the route. + * + * @param \Illuminate\Routing\Route $route + * @return void + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @static + */ + public static function substituteImplicitBindings($route) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->substituteImplicitBindings($route); + } + /** + * Register a route matched event listener. + * + * @param string|callable $callback + * @return void + * @static + */ + public static function matched($callback) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->matched($callback); + } + /** + * Get all of the defined middleware short-hand names. + * + * @return array + * @static + */ + public static function getMiddleware() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getMiddleware(); + } + /** + * Register a short-hand name for a middleware. + * + * @param string $name + * @param string $class + * @return \Illuminate\Routing\Router + * @static + */ + public static function aliasMiddleware($name, $class) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->aliasMiddleware($name, $class); + } + /** + * Check if a middlewareGroup with the given name exists. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMiddlewareGroup($name) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->hasMiddlewareGroup($name); + } + /** + * Get all of the defined middleware groups. + * + * @return array + * @static + */ + public static function getMiddlewareGroups() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getMiddlewareGroups(); + } + /** + * Register a group of middleware. + * + * @param string $name + * @param array $middleware + * @return \Illuminate\Routing\Router + * @static + */ + public static function middlewareGroup($name, $middleware) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->middlewareGroup($name, $middleware); + } + /** + * Add a middleware to the beginning of a middleware group. + * + * If the middleware is already in the group, it will not be added again. + * + * @param string $group + * @param string $middleware + * @return \Illuminate\Routing\Router + * @static + */ + public static function prependMiddlewareToGroup($group, $middleware) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->prependMiddlewareToGroup($group, $middleware); + } + /** + * Add a middleware to the end of a middleware group. + * + * If the middleware is already in the group, it will not be added again. + * + * @param string $group + * @param string $middleware + * @return \Illuminate\Routing\Router + * @static + */ + public static function pushMiddlewareToGroup($group, $middleware) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->pushMiddlewareToGroup($group, $middleware); + } + /** + * Add a new route parameter binder. + * + * @param string $key + * @param string|callable $binder + * @return void + * @static + */ + public static function bind($key, $binder) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->bind($key, $binder); + } + /** + * Register a model binder for a wildcard. + * + * @param string $key + * @param string $class + * @param \Closure|null $callback + * @return void + * @static + */ + public static function model($key, $class, $callback = null) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->model($key, $class, $callback); + } + /** + * Get the binding callback for a given binding. + * + * @param string $key + * @return \Closure|null + * @static + */ + public static function getBindingCallback($key) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getBindingCallback($key); + } + /** + * Get the global "where" patterns. + * + * @return array + * @static + */ + public static function getPatterns() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getPatterns(); + } + /** + * Set a global where pattern on all routes. + * + * @param string $key + * @param string $pattern + * @return void + * @static + */ + public static function pattern($key, $pattern) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->pattern($key, $pattern); + } + /** + * Set a group of global where patterns on all routes. + * + * @param array $patterns + * @return void + * @static + */ + public static function patterns($patterns) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->patterns($patterns); + } + /** + * Determine if the router currently has a group stack. + * + * @return bool + * @static + */ + public static function hasGroupStack() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->hasGroupStack(); + } + /** + * Get the current group stack for the router. + * + * @return array + * @static + */ + public static function getGroupStack() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getGroupStack(); + } + /** + * Get a route parameter for the current route. + * + * @param string $key + * @param string|null $default + * @return mixed + * @static + */ + public static function input($key, $default = null) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->input($key, $default); + } + /** + * Get the request currently being dispatched. + * + * @return \Illuminate\Http\Request + * @static + */ + public static function getCurrentRequest() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getCurrentRequest(); + } + /** + * Get the currently dispatched route instance. + * + * @return \Illuminate\Routing\Route|null + * @static + */ + public static function getCurrentRoute() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getCurrentRoute(); + } + /** + * Get the currently dispatched route instance. + * + * @return \Illuminate\Routing\Route|null + * @static + */ + public static function current() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->current(); + } + /** + * Check if a route with the given name exists. + * + * @param string $name + * @return bool + * @static + */ + public static function has($name) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->has($name); + } + /** + * Get the current route name. + * + * @return string|null + * @static + */ + public static function currentRouteName() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->currentRouteName(); + } + /** + * Alias for the "currentRouteNamed" method. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function is(...$patterns) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->is(...$patterns); + } + /** + * Determine if the current route matches a pattern. + * + * @param mixed $patterns + * @return bool + * @static + */ + public static function currentRouteNamed(...$patterns) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->currentRouteNamed(...$patterns); + } + /** + * Get the current route action. + * + * @return string|null + * @static + */ + public static function currentRouteAction() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->currentRouteAction(); + } + /** + * Alias for the "currentRouteUses" method. + * + * @param array $patterns + * @return bool + * @static + */ + public static function uses(...$patterns) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->uses(...$patterns); + } + /** + * Determine if the current route action matches a given action. + * + * @param string $action + * @return bool + * @static + */ + public static function currentRouteUses($action) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->currentRouteUses($action); + } + /** + * Set the unmapped global resource parameters to singular. + * + * @param bool $singular + * @return void + * @static + */ + public static function singularResourceParameters($singular = true) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->singularResourceParameters($singular); + } + /** + * Set the global resource parameter mapping. + * + * @param array $parameters + * @return void + * @static + */ + public static function resourceParameters($parameters = []) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->resourceParameters($parameters); + } + /** + * Get or set the verbs used in the resource URIs. + * + * @param array $verbs + * @return array|null + * @static + */ + public static function resourceVerbs($verbs = []) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->resourceVerbs($verbs); + } + /** + * Get the underlying route collection. + * + * @return \Illuminate\Routing\RouteCollectionInterface + * @static + */ + public static function getRoutes() + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->getRoutes(); + } + /** + * Set the route collection instance. + * + * @param \Illuminate\Routing\RouteCollection $routes + * @return void + * @static + */ + public static function setRoutes($routes) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->setRoutes($routes); + } + /** + * Set the compiled route collection instance. + * + * @param array $routes + * @return void + * @static + */ + public static function setCompiledRoutes($routes) + { + /** @var \Illuminate\Routing\Router $instance */ + $instance->setCompiledRoutes($routes); + } + /** + * Remove any duplicate middleware from the given array. + * + * @param array $middleware + * @return array + * @static + */ + public static function uniqueMiddleware($middleware) + { + return \Illuminate\Routing\Router::uniqueMiddleware($middleware); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Routing\Router::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Routing\Router::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Routing\Router::hasMacro($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Routing\Router $instance */ + return $instance->macroCall($method, $parameters); + } + /** + * + * + * @see \Laravel\Ui\AuthRouteMethods::auth() + * @param mixed $options + * @static + */ + public static function auth($options = []) + { + return \Illuminate\Routing\Router::auth($options); + } + /** + * + * + * @see \Laravel\Ui\AuthRouteMethods::resetPassword() + * @static + */ + public static function resetPassword() + { + return \Illuminate\Routing\Router::resetPassword(); + } + /** + * + * + * @see \Laravel\Ui\AuthRouteMethods::confirmPassword() + * @static + */ + public static function confirmPassword() + { + return \Illuminate\Routing\Router::confirmPassword(); + } + /** + * + * + * @see \Laravel\Ui\AuthRouteMethods::emailVerification() + * @static + */ + public static function emailVerification() + { + return \Illuminate\Routing\Router::emailVerification(); + } + + } + /** + * + * + * @see \Illuminate\Database\Schema\Builder + */ + class Schema { + /** + * Determine if the given table exists. + * + * @param string $table + * @return bool + * @static + */ + public static function hasTable($table) + { + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->hasTable($table); + } + /** + * Get the column listing for a given table. + * + * @param string $table + * @return array + * @static + */ + public static function getColumnListing($table) + { + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->getColumnListing($table); + } + /** + * Drop all tables from the database. + * + * @return void + * @static + */ + public static function dropAllTables() + { + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->dropAllTables(); + } + /** + * Drop all views from the database. + * + * @return void + * @static + */ + public static function dropAllViews() + { + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->dropAllViews(); + } + /** + * Get all of the table names for the database. + * + * @return array + * @static + */ + public static function getAllTables() + { + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->getAllTables(); + } + /** + * Get all of the view names for the database. + * + * @return array + * @static + */ + public static function getAllViews() + { + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->getAllViews(); + } + /** + * Set the default string length for migrations. + * + * @param int $length + * @return void + * @static + */ + public static function defaultStringLength($length) + { //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MySqlBuilder::defaultStringLength($length); + } + /** + * Set the default morph key type for migrations. + * + * @param string $type + * @return void + * @static + */ + public static function defaultMorphKeyType($type) + { //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MySqlBuilder::defaultMorphKeyType($type); + } + /** + * Set the default morph key type for migrations to UUIDs. + * + * @return void + * @static + */ + public static function morphUsingUuids() + { //Method inherited from \Illuminate\Database\Schema\Builder + \Illuminate\Database\Schema\MySqlBuilder::morphUsingUuids(); + } + /** + * Determine if the given table has a given column. + * + * @param string $table + * @param string $column + * @return bool + * @static + */ + public static function hasColumn($table, $column) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->hasColumn($table, $column); + } + /** + * Determine if the given table has given columns. + * + * @param string $table + * @param array $columns + * @return bool + * @static + */ + public static function hasColumns($table, $columns) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->hasColumns($table, $columns); + } + /** + * Get the data type for the given column name. + * + * @param string $table + * @param string $column + * @return string + * @static + */ + public static function getColumnType($table, $column) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->getColumnType($table, $column); + } + /** + * Modify a table on the schema. + * + * @param string $table + * @param \Closure $callback + * @return void + * @static + */ + public static function table($table, $callback) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->table($table, $callback); + } + /** + * Create a new table on the schema. + * + * @param string $table + * @param \Closure $callback + * @return void + * @static + */ + public static function create($table, $callback) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->create($table, $callback); + } + /** + * Drop a table from the schema. + * + * @param string $table + * @return void + * @static + */ + public static function drop($table) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->drop($table); + } + /** + * Drop a table from the schema if it exists. + * + * @param string $table + * @return void + * @static + */ + public static function dropIfExists($table) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->dropIfExists($table); + } + /** + * Drop columns from a table schema. + * + * @param string $table + * @param string|array $columns + * @return void + * @static + */ + public static function dropColumns($table, $columns) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->dropColumns($table, $columns); + } + /** + * Drop all types from the database. + * + * @return void + * @throws \LogicException + * @static + */ + public static function dropAllTypes() + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->dropAllTypes(); + } + /** + * Rename a table on the schema. + * + * @param string $from + * @param string $to + * @return void + * @static + */ + public static function rename($from, $to) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->rename($from, $to); + } + /** + * Enable foreign key constraints. + * + * @return bool + * @static + */ + public static function enableForeignKeyConstraints() + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->enableForeignKeyConstraints(); + } + /** + * Disable foreign key constraints. + * + * @return bool + * @static + */ + public static function disableForeignKeyConstraints() + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->disableForeignKeyConstraints(); + } + /** + * Register a custom Doctrine mapping type. + * + * @param string $class + * @param string $name + * @param string $type + * @return void + * @throws \Doctrine\DBAL\DBALException + * @throws \RuntimeException + * @static + */ + public static function registerCustomDoctrineType($class, $name, $type) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->registerCustomDoctrineType($class, $name, $type); + } + /** + * Get the database connection instance. + * + * @return \Illuminate\Database\Connection + * @static + */ + public static function getConnection() + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->getConnection(); + } + /** + * Set the database connection instance. + * + * @param \Illuminate\Database\Connection $connection + * @return \Illuminate\Database\Schema\MySqlBuilder + * @static + */ + public static function setConnection($connection) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + return $instance->setConnection($connection); + } + /** + * Set the Schema Blueprint resolver callback. + * + * @param \Closure $resolver + * @return void + * @static + */ + public static function blueprintResolver($resolver) + { //Method inherited from \Illuminate\Database\Schema\Builder + /** @var \Illuminate\Database\Schema\MySqlBuilder $instance */ + $instance->blueprintResolver($resolver); + } + + } + /** + * + * + * @see \Illuminate\Session\SessionManager + * @see \Illuminate\Session\Store + */ + class Session { + /** + * Determine if requests for the same session should wait for each to finish before executing. + * + * @return bool + * @static + */ + public static function shouldBlock() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->shouldBlock(); + } + /** + * Get the name of the cache store / driver that should be used to acquire session locks. + * + * @return string|null + * @static + */ + public static function blockDriver() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->blockDriver(); + } + /** + * Get the session configuration. + * + * @return array + * @static + */ + public static function getSessionConfig() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->getSessionConfig(); + } + /** + * Get the default session driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Set the default session driver name. + * + * @param string $name + * @return void + * @static + */ + public static function setDefaultDriver($name) + { + /** @var \Illuminate\Session\SessionManager $instance */ + $instance->setDefaultDriver($name); + } + /** + * Get a driver instance. + * + * @param string|null $driver + * @return mixed + * @throws \InvalidArgumentException + * @static + */ + public static function driver($driver = null) + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->driver($driver); + } + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Session\SessionManager + * @static + */ + public static function extend($driver, $callback) + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->extend($driver, $callback); + } + /** + * Get all of the created "drivers". + * + * @return array + * @static + */ + public static function getDrivers() + { //Method inherited from \Illuminate\Support\Manager + /** @var \Illuminate\Session\SessionManager $instance */ + return $instance->getDrivers(); + } + /** + * Start the session, reading the data from a handler. + * + * @return bool + * @static + */ + public static function start() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->start(); + } + /** + * Save the session data to storage. + * + * @return void + * @static + */ + public static function save() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->save(); + } + /** + * Age the flash data for the session. + * + * @return void + * @static + */ + public static function ageFlashData() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->ageFlashData(); + } + /** + * Get all of the session data. + * + * @return array + * @static + */ + public static function all() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->all(); + } + /** + * Get a subset of the session data. + * + * @param array $keys + * @return array + * @static + */ + public static function only($keys) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->only($keys); + } + /** + * Checks if a key exists. + * + * @param string|array $key + * @return bool + * @static + */ + public static function exists($key) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->exists($key); + } + /** + * Checks if a key is present and not null. + * + * @param string|array $key + * @return bool + * @static + */ + public static function has($key) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->has($key); + } + /** + * Get an item from the session. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function get($key, $default = null) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->get($key, $default); + } + /** + * Get the value of a given key and then forget it. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function pull($key, $default = null) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->pull($key, $default); + } + /** + * Determine if the session contains old input. + * + * @param string|null $key + * @return bool + * @static + */ + public static function hasOldInput($key = null) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->hasOldInput($key); + } + /** + * Get the requested item from the flashed input array. + * + * @param string|null $key + * @param mixed $default + * @return mixed + * @static + */ + public static function getOldInput($key = null, $default = null) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->getOldInput($key, $default); + } + /** + * Replace the given session attributes entirely. + * + * @param array $attributes + * @return void + * @static + */ + public static function replace($attributes) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->replace($attributes); + } + /** + * Put a key / value pair or array of key / value pairs in the session. + * + * @param string|array $key + * @param mixed $value + * @return void + * @static + */ + public static function put($key, $value = null) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->put($key, $value); + } + /** + * Get an item from the session, or store the default value. + * + * @param string $key + * @param \Closure $callback + * @return mixed + * @static + */ + public static function remember($key, $callback) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->remember($key, $callback); + } + /** + * Push a value onto a session array. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function push($key, $value) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->push($key, $value); + } + /** + * Increment the value of an item in the session. + * + * @param string $key + * @param int $amount + * @return mixed + * @static + */ + public static function increment($key, $amount = 1) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->increment($key, $amount); + } + /** + * Decrement the value of an item in the session. + * + * @param string $key + * @param int $amount + * @return int + * @static + */ + public static function decrement($key, $amount = 1) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->decrement($key, $amount); + } + /** + * Flash a key / value pair to the session. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function flash($key, $value = true) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->flash($key, $value); + } + /** + * Flash a key / value pair to the session for immediate use. + * + * @param string $key + * @param mixed $value + * @return void + * @static + */ + public static function now($key, $value) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->now($key, $value); + } + /** + * Reflash all of the session flash data. + * + * @return void + * @static + */ + public static function reflash() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->reflash(); + } + /** + * Reflash a subset of the current flash data. + * + * @param array|mixed $keys + * @return void + * @static + */ + public static function keep($keys = null) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->keep($keys); + } + /** + * Flash an input array to the session. + * + * @param array $value + * @return void + * @static + */ + public static function flashInput($value) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->flashInput($value); + } + /** + * Remove an item from the session, returning its value. + * + * @param string $key + * @return mixed + * @static + */ + public static function remove($key) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->remove($key); + } + /** + * Remove one or many items from the session. + * + * @param string|array $keys + * @return void + * @static + */ + public static function forget($keys) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->forget($keys); + } + /** + * Remove all of the items from the session. + * + * @return void + * @static + */ + public static function flush() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->flush(); + } + /** + * Flush the session data and regenerate the ID. + * + * @return bool + * @static + */ + public static function invalidate() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->invalidate(); + } + /** + * Generate a new session identifier. + * + * @param bool $destroy + * @return bool + * @static + */ + public static function regenerate($destroy = false) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->regenerate($destroy); + } + /** + * Generate a new session ID for the session. + * + * @param bool $destroy + * @return bool + * @static + */ + public static function migrate($destroy = false) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->migrate($destroy); + } + /** + * Determine if the session has been started. + * + * @return bool + * @static + */ + public static function isStarted() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->isStarted(); + } + /** + * Get the name of the session. + * + * @return string + * @static + */ + public static function getName() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->getName(); + } + /** + * Set the name of the session. + * + * @param string $name + * @return void + * @static + */ + public static function setName($name) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setName($name); + } + /** + * Get the current session ID. + * + * @return string + * @static + */ + public static function getId() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->getId(); + } + /** + * Set the session ID. + * + * @param string $id + * @return void + * @static + */ + public static function setId($id) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setId($id); + } + /** + * Determine if this is a valid session ID. + * + * @param string $id + * @return bool + * @static + */ + public static function isValidId($id) + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->isValidId($id); + } + /** + * Set the existence of the session on the handler if applicable. + * + * @param bool $value + * @return void + * @static + */ + public static function setExists($value) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setExists($value); + } + /** + * Get the CSRF token value. + * + * @return string + * @static + */ + public static function token() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->token(); + } + /** + * Regenerate the CSRF token value. + * + * @return void + * @static + */ + public static function regenerateToken() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->regenerateToken(); + } + /** + * Get the previous URL from the session. + * + * @return string|null + * @static + */ + public static function previousUrl() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->previousUrl(); + } + /** + * Set the "previous" URL in the session. + * + * @param string $url + * @return void + * @static + */ + public static function setPreviousUrl($url) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setPreviousUrl($url); + } + /** + * Specify that the user has confirmed their password. + * + * @return void + * @static + */ + public static function passwordConfirmed() + { + /** @var \Illuminate\Session\Store $instance */ + $instance->passwordConfirmed(); + } + /** + * Get the underlying session handler implementation. + * + * @return \SessionHandlerInterface + * @static + */ + public static function getHandler() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->getHandler(); + } + /** + * Determine if the session handler needs a request. + * + * @return bool + * @static + */ + public static function handlerNeedsRequest() + { + /** @var \Illuminate\Session\Store $instance */ + return $instance->handlerNeedsRequest(); + } + /** + * Set the request on the handler instance. + * + * @param \Illuminate\Http\Request $request + * @return void + * @static + */ + public static function setRequestOnHandler($request) + { + /** @var \Illuminate\Session\Store $instance */ + $instance->setRequestOnHandler($request); + } + + } + /** + * + * + * @see \Illuminate\Filesystem\FilesystemManager + */ + class Storage { + /** + * Get a filesystem instance. + * + * @param string|null $name + * @return \Illuminate\Filesystem\FilesystemAdapter + * @static + */ + public static function drive($name = null) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->drive($name); + } + /** + * Get a filesystem instance. + * + * @param string|null $name + * @return \Illuminate\Filesystem\FilesystemAdapter + * @static + */ + public static function disk($name = null) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->disk($name); + } + /** + * Get a default cloud filesystem instance. + * + * @return \Illuminate\Filesystem\FilesystemAdapter + * @static + */ + public static function cloud() + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->cloud(); + } + /** + * Create an instance of the local driver. + * + * @param array $config + * @return \Illuminate\Filesystem\FilesystemAdapter + * @static + */ + public static function createLocalDriver($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createLocalDriver($config); + } + /** + * Create an instance of the ftp driver. + * + * @param array $config + * @return \Illuminate\Filesystem\FilesystemAdapter + * @static + */ + public static function createFtpDriver($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createFtpDriver($config); + } + /** + * Create an instance of the sftp driver. + * + * @param array $config + * @return \Illuminate\Filesystem\FilesystemAdapter + * @static + */ + public static function createSftpDriver($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createSftpDriver($config); + } + /** + * Create an instance of the Amazon S3 driver. + * + * @param array $config + * @return \Illuminate\Contracts\Filesystem\Cloud + * @static + */ + public static function createS3Driver($config) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->createS3Driver($config); + } + /** + * Set the given disk instance. + * + * @param string $name + * @param mixed $disk + * @return \Illuminate\Filesystem\FilesystemManager + * @static + */ + public static function set($name, $disk) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->set($name, $disk); + } + /** + * Get the default driver name. + * + * @return string + * @static + */ + public static function getDefaultDriver() + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->getDefaultDriver(); + } + /** + * Get the default cloud driver name. + * + * @return string + * @static + */ + public static function getDefaultCloudDriver() + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->getDefaultCloudDriver(); + } + /** + * Unset the given disk instances. + * + * @param array|string $disk + * @return \Illuminate\Filesystem\FilesystemManager + * @static + */ + public static function forgetDisk($disk) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->forgetDisk($disk); + } + /** + * Disconnect the given disk and remove from local cache. + * + * @param string|null $name + * @return void + * @static + */ + public static function purge($name = null) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + $instance->purge($name); + } + /** + * Register a custom driver creator Closure. + * + * @param string $driver + * @param \Closure $callback + * @return \Illuminate\Filesystem\FilesystemManager + * @static + */ + public static function extend($driver, $callback) + { + /** @var \Illuminate\Filesystem\FilesystemManager $instance */ + return $instance->extend($driver, $callback); + } + /** + * Assert that the given file exists. + * + * @param string|array $path + * @param string|null $content + * @return \Illuminate\Filesystem\FilesystemAdapter + * @static + */ + public static function assertExists($path, $content = null) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->assertExists($path, $content); + } + /** + * Assert that the given file does not exist. + * + * @param string|array $path + * @return \Illuminate\Filesystem\FilesystemAdapter + * @static + */ + public static function assertMissing($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->assertMissing($path); + } + /** + * Determine if a file exists. + * + * @param string $path + * @return bool + * @static + */ + public static function exists($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->exists($path); + } + /** + * Determine if a file or directory is missing. + * + * @param string $path + * @return bool + * @static + */ + public static function missing($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->missing($path); + } + /** + * Get the full path for the file at the given "short" path. + * + * @param string $path + * @return string + * @static + */ + public static function path($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->path($path); + } + /** + * Get the contents of a file. + * + * @param string $path + * @return string + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function get($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->get($path); + } + /** + * Create a streamed response for a given file. + * + * @param string $path + * @param string|null $name + * @param array|null $headers + * @param string|null $disposition + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function response($path, $name = null, $headers = [], $disposition = 'inline') + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->response($path, $name, $headers, $disposition); + } + /** + * Create a streamed download response for a given file. + * + * @param string $path + * @param string|null $name + * @param array|null $headers + * @return \Symfony\Component\HttpFoundation\StreamedResponse + * @static + */ + public static function download($path, $name = null, $headers = []) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->download($path, $name, $headers); + } + /** + * Write the contents of a file. + * + * @param string $path + * @param string|resource $contents + * @param mixed $options + * @return bool + * @static + */ + public static function put($path, $contents, $options = []) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->put($path, $contents, $options); + } + /** + * Store the uploaded file on the disk. + * + * @param string $path + * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string $file + * @param mixed $options + * @return string|false + * @static + */ + public static function putFile($path, $file, $options = []) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->putFile($path, $file, $options); + } + /** + * Store the uploaded file on the disk with a given name. + * + * @param string $path + * @param \Illuminate\Http\File|\Illuminate\Http\UploadedFile|string $file + * @param string $name + * @param mixed $options + * @return string|false + * @static + */ + public static function putFileAs($path, $file, $name, $options = []) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->putFileAs($path, $file, $name, $options); + } + /** + * Get the visibility for the given path. + * + * @param string $path + * @return string + * @static + */ + public static function getVisibility($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->getVisibility($path); + } + /** + * Set the visibility for the given path. + * + * @param string $path + * @param string $visibility + * @return bool + * @static + */ + public static function setVisibility($path, $visibility) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->setVisibility($path, $visibility); + } + /** + * Prepend to a file. + * + * @param string $path + * @param string $data + * @param string $separator + * @return bool + * @static + */ + public static function prepend($path, $data, $separator = ' +') + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->prepend($path, $data, $separator); + } + /** + * Append to a file. + * + * @param string $path + * @param string $data + * @param string $separator + * @return bool + * @static + */ + public static function append($path, $data, $separator = ' +') + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->append($path, $data, $separator); + } + /** + * Delete the file at a given path. + * + * @param string|array $paths + * @return bool + * @static + */ + public static function delete($paths) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->delete($paths); + } + /** + * Copy a file to a new location. + * + * @param string $from + * @param string $to + * @return bool + * @static + */ + public static function copy($from, $to) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->copy($from, $to); + } + /** + * Move a file to a new location. + * + * @param string $from + * @param string $to + * @return bool + * @static + */ + public static function move($from, $to) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->move($from, $to); + } + /** + * Get the file size of a given file. + * + * @param string $path + * @return int + * @static + */ + public static function size($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->size($path); + } + /** + * Get the mime-type of a given file. + * + * @param string $path + * @return string|false + * @static + */ + public static function mimeType($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->mimeType($path); + } + /** + * Get the file's last modification time. + * + * @param string $path + * @return int + * @static + */ + public static function lastModified($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->lastModified($path); + } + /** + * Get the URL for the file at the given path. + * + * @param string $path + * @return string + * @throws \RuntimeException + * @static + */ + public static function url($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->url($path); + } + /** + * Get a resource to read the file. + * + * @param string $path + * @return resource|null The path resource or null on failure. + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + * @static + */ + public static function readStream($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->readStream($path); + } + /** + * Write a new file using a stream. + * + * @param string $path + * @param resource $resource + * @param array $options + * @return bool + * @throws \InvalidArgumentException If $resource is not a file handle. + * @throws \Illuminate\Contracts\Filesystem\FileExistsException + * @static + */ + public static function writeStream($path, $resource, $options = []) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->writeStream($path, $resource, $options); + } + /** + * Get a temporary URL for the file at the given path. + * + * @param string $path + * @param \DateTimeInterface $expiration + * @param array $options + * @return string + * @throws \RuntimeException + * @static + */ + public static function temporaryUrl($path, $expiration, $options = []) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->temporaryUrl($path, $expiration, $options); + } + /** + * Get a temporary URL for the file at the given path. + * + * @param \League\Flysystem\AwsS3v3\AwsS3Adapter $adapter + * @param string $path + * @param \DateTimeInterface $expiration + * @param array $options + * @return string + * @static + */ + public static function getAwsTemporaryUrl($adapter, $path, $expiration, $options) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->getAwsTemporaryUrl($adapter, $path, $expiration, $options); + } + /** + * Get an array of all files in a directory. + * + * @param string|null $directory + * @param bool $recursive + * @return array + * @static + */ + public static function files($directory = null, $recursive = false) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->files($directory, $recursive); + } + /** + * Get all of the files from the given directory (recursive). + * + * @param string|null $directory + * @return array + * @static + */ + public static function allFiles($directory = null) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->allFiles($directory); + } + /** + * Get all of the directories within a given directory. + * + * @param string|null $directory + * @param bool $recursive + * @return array + * @static + */ + public static function directories($directory = null, $recursive = false) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->directories($directory, $recursive); + } + /** + * Get all (recursive) of the directories within a given directory. + * + * @param string|null $directory + * @return array + * @static + */ + public static function allDirectories($directory = null) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->allDirectories($directory); + } + /** + * Create a directory. + * + * @param string $path + * @return bool + * @static + */ + public static function makeDirectory($path) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->makeDirectory($path); + } + /** + * Recursively delete a directory. + * + * @param string $directory + * @return bool + * @static + */ + public static function deleteDirectory($directory) + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->deleteDirectory($directory); + } + /** + * Flush the Flysystem cache. + * + * @return void + * @static + */ + public static function flushCache() + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + $instance->flushCache(); + } + /** + * Get the Flysystem driver. + * + * @return \League\Flysystem\FilesystemInterface + * @static + */ + public static function getDriver() + { + /** @var \Illuminate\Filesystem\FilesystemAdapter $instance */ + return $instance->getDriver(); + } + + } + /** + * + * + * @see \Illuminate\Routing\UrlGenerator + */ + class URL { + /** + * Get the full URL for the current request. + * + * @return string + * @static + */ + public static function full() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->full(); + } + /** + * Get the current URL for the request. + * + * @return string + * @static + */ + public static function current() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->current(); + } + /** + * Get the URL for the previous request. + * + * @param mixed $fallback + * @return string + * @static + */ + public static function previous($fallback = false) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->previous($fallback); + } + /** + * Generate an absolute URL to the given path. + * + * @param string $path + * @param mixed $extra + * @param bool|null $secure + * @return string + * @static + */ + public static function to($path, $extra = [], $secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->to($path, $extra, $secure); + } + /** + * Generate a secure, absolute URL to the given path. + * + * @param string $path + * @param array $parameters + * @return string + * @static + */ + public static function secure($path, $parameters = []) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->secure($path, $parameters); + } + /** + * Generate the URL to an application asset. + * + * @param string $path + * @param bool|null $secure + * @return string + * @static + */ + public static function asset($path, $secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->asset($path, $secure); + } + /** + * Generate the URL to a secure asset. + * + * @param string $path + * @return string + * @static + */ + public static function secureAsset($path) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->secureAsset($path); + } + /** + * Generate the URL to an asset from a custom root domain such as CDN, etc. + * + * @param string $root + * @param string $path + * @param bool|null $secure + * @return string + * @static + */ + public static function assetFrom($root, $path, $secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->assetFrom($root, $path, $secure); + } + /** + * Get the default scheme for a raw URL. + * + * @param bool|null $secure + * @return string + * @static + */ + public static function formatScheme($secure = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatScheme($secure); + } + /** + * Create a signed route URL for a named route. + * + * @param string $name + * @param mixed $parameters + * @param \DateTimeInterface|\DateInterval|int|null $expiration + * @param bool $absolute + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function signedRoute($name, $parameters = [], $expiration = null, $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->signedRoute($name, $parameters, $expiration, $absolute); + } + /** + * Create a temporary signed route URL for a named route. + * + * @param string $name + * @param \DateTimeInterface|\DateInterval|int $expiration + * @param array $parameters + * @param bool $absolute + * @return string + * @static + */ + public static function temporarySignedRoute($name, $expiration, $parameters = [], $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->temporarySignedRoute($name, $expiration, $parameters, $absolute); + } + /** + * Determine if the given request has a valid signature. + * + * @param \Illuminate\Http\Request $request + * @param bool $absolute + * @return bool + * @static + */ + public static function hasValidSignature($request, $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->hasValidSignature($request, $absolute); + } + /** + * Determine if the given request has a valid signature for a relative URL. + * + * @param \Illuminate\Http\Request $request + * @return bool + * @static + */ + public static function hasValidRelativeSignature($request) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->hasValidRelativeSignature($request); + } + /** + * Determine if the signature from the given request matches the URL. + * + * @param \Illuminate\Http\Request $request + * @param bool $absolute + * @return bool + * @static + */ + public static function hasCorrectSignature($request, $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->hasCorrectSignature($request, $absolute); + } + /** + * Determine if the expires timestamp from the given request is not from the past. + * + * @param \Illuminate\Http\Request $request + * @return bool + * @static + */ + public static function signatureHasNotExpired($request) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->signatureHasNotExpired($request); + } + /** + * Get the URL to a named route. + * + * @param string $name + * @param mixed $parameters + * @param bool $absolute + * @return string + * @throws \Symfony\Component\Routing\Exception\RouteNotFoundException + * @static + */ + public static function route($name, $parameters = [], $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->route($name, $parameters, $absolute); + } + /** + * Get the URL for a given route instance. + * + * @param \Illuminate\Routing\Route $route + * @param mixed $parameters + * @param bool $absolute + * @return string + * @throws \Illuminate\Routing\Exceptions\UrlGenerationException + * @static + */ + public static function toRoute($route, $parameters, $absolute) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->toRoute($route, $parameters, $absolute); + } + /** + * Get the URL to a controller action. + * + * @param string|array $action + * @param mixed $parameters + * @param bool $absolute + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function action($action, $parameters = [], $absolute = true) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->action($action, $parameters, $absolute); + } + /** + * Format the array of URL parameters. + * + * @param mixed|array $parameters + * @return array + * @static + */ + public static function formatParameters($parameters) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatParameters($parameters); + } + /** + * Get the base URL for the request. + * + * @param string $scheme + * @param string|null $root + * @return string + * @static + */ + public static function formatRoot($scheme, $root = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatRoot($scheme, $root); + } + /** + * Format the given URL segments into a single URL. + * + * @param string $root + * @param string $path + * @param \Illuminate\Routing\Route|null $route + * @return string + * @static + */ + public static function format($root, $path, $route = null) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->format($root, $path, $route); + } + /** + * Determine if the given path is a valid URL. + * + * @param string $path + * @return bool + * @static + */ + public static function isValidUrl($path) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->isValidUrl($path); + } + /** + * Set the default named parameters used by the URL generator. + * + * @param array $defaults + * @return void + * @static + */ + public static function defaults($defaults) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->defaults($defaults); + } + /** + * Get the default named parameters used by the URL generator. + * + * @return array + * @static + */ + public static function getDefaultParameters() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->getDefaultParameters(); + } + /** + * Force the scheme for URLs. + * + * @param string|null $scheme + * @return void + * @static + */ + public static function forceScheme($scheme) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->forceScheme($scheme); + } + /** + * Set the forced root URL. + * + * @param string|null $root + * @return void + * @static + */ + public static function forceRootUrl($root) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->forceRootUrl($root); + } + /** + * Set a callback to be used to format the host of generated URLs. + * + * @param \Closure $callback + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function formatHostUsing($callback) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatHostUsing($callback); + } + /** + * Set a callback to be used to format the path of generated URLs. + * + * @param \Closure $callback + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function formatPathUsing($callback) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->formatPathUsing($callback); + } + /** + * Get the path formatter being used by the URL generator. + * + * @return \Closure + * @static + */ + public static function pathFormatter() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->pathFormatter(); + } + /** + * Get the request instance. + * + * @return \Illuminate\Http\Request + * @static + */ + public static function getRequest() + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->getRequest(); + } + /** + * Set the current request instance. + * + * @param \Illuminate\Http\Request $request + * @return void + * @static + */ + public static function setRequest($request) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + $instance->setRequest($request); + } + /** + * Set the route collection. + * + * @param \Illuminate\Routing\RouteCollectionInterface $routes + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function setRoutes($routes) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->setRoutes($routes); + } + /** + * Set the session resolver for the generator. + * + * @param callable $sessionResolver + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function setSessionResolver($sessionResolver) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->setSessionResolver($sessionResolver); + } + /** + * Set the encryption key resolver. + * + * @param callable $keyResolver + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function setKeyResolver($keyResolver) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->setKeyResolver($keyResolver); + } + /** + * Set the root controller namespace. + * + * @param string $rootNamespace + * @return \Illuminate\Routing\UrlGenerator + * @static + */ + public static function setRootControllerNamespace($rootNamespace) + { + /** @var \Illuminate\Routing\UrlGenerator $instance */ + return $instance->setRootControllerNamespace($rootNamespace); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Routing\UrlGenerator::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Routing\UrlGenerator::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\Routing\UrlGenerator::hasMacro($name); + } + + } + /** + * + * + * @see \Illuminate\Validation\Factory + */ + class Validator { + /** + * Create a new Validator instance. + * + * @param array $data + * @param array $rules + * @param array $messages + * @param array $customAttributes + * @return \Illuminate\Validation\Validator + * @static + */ + public static function make($data, $rules, $messages = [], $customAttributes = []) + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->make($data, $rules, $messages, $customAttributes); + } + /** + * Validate the given data against the provided rules. + * + * @param array $data + * @param array $rules + * @param array $messages + * @param array $customAttributes + * @return array + * @throws \Illuminate\Validation\ValidationException + * @static + */ + public static function validate($data, $rules, $messages = [], $customAttributes = []) + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->validate($data, $rules, $messages, $customAttributes); + } + /** + * Register a custom validator extension. + * + * @param string $rule + * @param \Closure|string $extension + * @param string|null $message + * @return void + * @static + */ + public static function extend($rule, $extension, $message = null) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->extend($rule, $extension, $message); + } + /** + * Register a custom implicit validator extension. + * + * @param string $rule + * @param \Closure|string $extension + * @param string|null $message + * @return void + * @static + */ + public static function extendImplicit($rule, $extension, $message = null) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->extendImplicit($rule, $extension, $message); + } + /** + * Register a custom dependent validator extension. + * + * @param string $rule + * @param \Closure|string $extension + * @param string|null $message + * @return void + * @static + */ + public static function extendDependent($rule, $extension, $message = null) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->extendDependent($rule, $extension, $message); + } + /** + * Register a custom validator message replacer. + * + * @param string $rule + * @param \Closure|string $replacer + * @return void + * @static + */ + public static function replacer($rule, $replacer) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->replacer($rule, $replacer); + } + /** + * Set the Validator instance resolver. + * + * @param \Closure $resolver + * @return void + * @static + */ + public static function resolver($resolver) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->resolver($resolver); + } + /** + * Get the Translator implementation. + * + * @return \Illuminate\Contracts\Translation\Translator + * @static + */ + public static function getTranslator() + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->getTranslator(); + } + /** + * Get the Presence Verifier implementation. + * + * @return \Illuminate\Validation\PresenceVerifierInterface + * @static + */ + public static function getPresenceVerifier() + { + /** @var \Illuminate\Validation\Factory $instance */ + return $instance->getPresenceVerifier(); + } + /** + * Set the Presence Verifier implementation. + * + * @param \Illuminate\Validation\PresenceVerifierInterface $presenceVerifier + * @return void + * @static + */ + public static function setPresenceVerifier($presenceVerifier) + { + /** @var \Illuminate\Validation\Factory $instance */ + $instance->setPresenceVerifier($presenceVerifier); + } + + } + /** + * + * + * @see \Illuminate\View\Factory + */ + class View { + /** + * Get the evaluated view contents for the given view. + * + * @param string $path + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return \Illuminate\Contracts\View\View + * @static + */ + public static function file($path, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->file($path, $data, $mergeData); + } + /** + * Get the evaluated view contents for the given view. + * + * @param string $view + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return \Illuminate\Contracts\View\View + * @static + */ + public static function make($view, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->make($view, $data, $mergeData); + } + /** + * Get the first view that actually exists from the given list. + * + * @param array $views + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return \Illuminate\Contracts\View\View + * @throws \InvalidArgumentException + * @static + */ + public static function first($views, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->first($views, $data, $mergeData); + } + /** + * Get the rendered content of the view based on a given condition. + * + * @param bool $condition + * @param string $view + * @param \Illuminate\Contracts\Support\Arrayable|array $data + * @param array $mergeData + * @return string + * @static + */ + public static function renderWhen($condition, $view, $data = [], $mergeData = []) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderWhen($condition, $view, $data, $mergeData); + } + /** + * Get the rendered contents of a partial from a loop. + * + * @param string $view + * @param array $data + * @param string $iterator + * @param string $empty + * @return string + * @static + */ + public static function renderEach($view, $data, $iterator, $empty = 'raw|') + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderEach($view, $data, $iterator, $empty); + } + /** + * Determine if a given view exists. + * + * @param string $view + * @return bool + * @static + */ + public static function exists($view) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->exists($view); + } + /** + * Get the appropriate view engine for the given path. + * + * @param string $path + * @return \Illuminate\Contracts\View\Engine + * @throws \InvalidArgumentException + * @static + */ + public static function getEngineFromPath($path) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getEngineFromPath($path); + } + /** + * Add a piece of shared data to the environment. + * + * @param array|string $key + * @param mixed|null $value + * @return mixed + * @static + */ + public static function share($key, $value = null) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->share($key, $value); + } + /** + * Increment the rendering counter. + * + * @return void + * @static + */ + public static function incrementRender() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->incrementRender(); + } + /** + * Decrement the rendering counter. + * + * @return void + * @static + */ + public static function decrementRender() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->decrementRender(); + } + /** + * Check if there are no active render operations. + * + * @return bool + * @static + */ + public static function doneRendering() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->doneRendering(); + } + /** + * Determine if the given once token has been rendered. + * + * @param string $id + * @return bool + * @static + */ + public static function hasRenderedOnce($id) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->hasRenderedOnce($id); + } + /** + * Mark the given once token as having been rendered. + * + * @param string $id + * @return void + * @static + */ + public static function markAsRenderedOnce($id) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->markAsRenderedOnce($id); + } + /** + * Add a location to the array of view locations. + * + * @param string $location + * @return void + * @static + */ + public static function addLocation($location) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->addLocation($location); + } + /** + * Add a new namespace to the loader. + * + * @param string $namespace + * @param string|array $hints + * @return \Illuminate\View\Factory + * @static + */ + public static function addNamespace($namespace, $hints) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->addNamespace($namespace, $hints); + } + /** + * Prepend a new namespace to the loader. + * + * @param string $namespace + * @param string|array $hints + * @return \Illuminate\View\Factory + * @static + */ + public static function prependNamespace($namespace, $hints) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->prependNamespace($namespace, $hints); + } + /** + * Replace the namespace hints for the given namespace. + * + * @param string $namespace + * @param string|array $hints + * @return \Illuminate\View\Factory + * @static + */ + public static function replaceNamespace($namespace, $hints) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->replaceNamespace($namespace, $hints); + } + /** + * Register a valid view extension and its engine. + * + * @param string $extension + * @param string $engine + * @param \Closure|null $resolver + * @return void + * @static + */ + public static function addExtension($extension, $engine, $resolver = null) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->addExtension($extension, $engine, $resolver); + } + /** + * Flush all of the factory state like sections and stacks. + * + * @return void + * @static + */ + public static function flushState() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushState(); + } + /** + * Flush all of the section contents if done rendering. + * + * @return void + * @static + */ + public static function flushStateIfDoneRendering() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushStateIfDoneRendering(); + } + /** + * Get the extension to engine bindings. + * + * @return array + * @static + */ + public static function getExtensions() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getExtensions(); + } + /** + * Get the engine resolver instance. + * + * @return \Illuminate\View\Engines\EngineResolver + * @static + */ + public static function getEngineResolver() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getEngineResolver(); + } + /** + * Get the view finder instance. + * + * @return \Illuminate\View\ViewFinderInterface + * @static + */ + public static function getFinder() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getFinder(); + } + /** + * Set the view finder instance. + * + * @param \Illuminate\View\ViewFinderInterface $finder + * @return void + * @static + */ + public static function setFinder($finder) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->setFinder($finder); + } + /** + * Flush the cache of views located by the finder. + * + * @return void + * @static + */ + public static function flushFinderCache() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushFinderCache(); + } + /** + * Get the event dispatcher instance. + * + * @return \Illuminate\Contracts\Events\Dispatcher + * @static + */ + public static function getDispatcher() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getDispatcher(); + } + /** + * Set the event dispatcher instance. + * + * @param \Illuminate\Contracts\Events\Dispatcher $events + * @return void + * @static + */ + public static function setDispatcher($events) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->setDispatcher($events); + } + /** + * Get the IoC container instance. + * + * @return \Illuminate\Contracts\Container\Container + * @static + */ + public static function getContainer() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getContainer(); + } + /** + * Set the IoC container instance. + * + * @param \Illuminate\Contracts\Container\Container $container + * @return void + * @static + */ + public static function setContainer($container) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->setContainer($container); + } + /** + * Get an item from the shared data. + * + * @param string $key + * @param mixed $default + * @return mixed + * @static + */ + public static function shared($key, $default = null) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->shared($key, $default); + } + /** + * Get all of the shared data for the environment. + * + * @return array + * @static + */ + public static function getShared() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getShared(); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\View\Factory::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\View\Factory::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Illuminate\View\Factory::hasMacro($name); + } + /** + * Start a component rendering process. + * + * @param \Illuminate\Contracts\View\View|\Illuminate\Contracts\Support\Htmlable|\Closure|string $view + * @param array $data + * @return void + * @static + */ + public static function startComponent($view, $data = []) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startComponent($view, $data); + } + /** + * Get the first view that actually exists from the given list, and start a component. + * + * @param array $names + * @param array $data + * @return void + * @static + */ + public static function startComponentFirst($names, $data = []) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startComponentFirst($names, $data); + } + /** + * Render the current component. + * + * @return string + * @static + */ + public static function renderComponent() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderComponent(); + } + /** + * Start the slot rendering process. + * + * @param string $name + * @param string|null $content + * @return void + * @static + */ + public static function slot($name, $content = null) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->slot($name, $content); + } + /** + * Save the slot content for rendering. + * + * @return void + * @static + */ + public static function endSlot() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->endSlot(); + } + /** + * Register a view creator event. + * + * @param array|string $views + * @param \Closure|string $callback + * @return array + * @static + */ + public static function creator($views, $callback) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->creator($views, $callback); + } + /** + * Register multiple view composers via an array. + * + * @param array $composers + * @return array + * @static + */ + public static function composers($composers) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->composers($composers); + } + /** + * Register a view composer event. + * + * @param array|string $views + * @param \Closure|string $callback + * @return array + * @static + */ + public static function composer($views, $callback) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->composer($views, $callback); + } + /** + * Call the composer for a given view. + * + * @param \Illuminate\Contracts\View\View $view + * @return void + * @static + */ + public static function callComposer($view) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->callComposer($view); + } + /** + * Call the creator for a given view. + * + * @param \Illuminate\Contracts\View\View $view + * @return void + * @static + */ + public static function callCreator($view) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->callCreator($view); + } + /** + * Start injecting content into a section. + * + * @param string $section + * @param string|null $content + * @return void + * @static + */ + public static function startSection($section, $content = null) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startSection($section, $content); + } + /** + * Inject inline content into a section. + * + * @param string $section + * @param string $content + * @return void + * @static + */ + public static function inject($section, $content) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->inject($section, $content); + } + /** + * Stop injecting content into a section and return its contents. + * + * @return string + * @static + */ + public static function yieldSection() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->yieldSection(); + } + /** + * Stop injecting content into a section. + * + * @param bool $overwrite + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function stopSection($overwrite = false) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->stopSection($overwrite); + } + /** + * Stop injecting content into a section and append it. + * + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function appendSection() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->appendSection(); + } + /** + * Get the string contents of a section. + * + * @param string $section + * @param string $default + * @return string + * @static + */ + public static function yieldContent($section, $default = '') + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->yieldContent($section, $default); + } + /** + * Get the parent placeholder for the current request. + * + * @param string $section + * @return string + * @static + */ + public static function parentPlaceholder($section = '') + { + return \Illuminate\View\Factory::parentPlaceholder($section); + } + /** + * Check if section exists. + * + * @param string $name + * @return bool + * @static + */ + public static function hasSection($name) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->hasSection($name); + } + /** + * Check if section does not exist. + * + * @param string $name + * @return bool + * @static + */ + public static function sectionMissing($name) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->sectionMissing($name); + } + /** + * Get the contents of a section. + * + * @param string $name + * @param string|null $default + * @return mixed + * @static + */ + public static function getSection($name, $default = null) + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getSection($name, $default); + } + /** + * Get the entire array of sections. + * + * @return array + * @static + */ + public static function getSections() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getSections(); + } + /** + * Flush all of the sections. + * + * @return void + * @static + */ + public static function flushSections() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushSections(); + } + /** + * Add new loop to the stack. + * + * @param \Countable|array $data + * @return void + * @static + */ + public static function addLoop($data) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->addLoop($data); + } + /** + * Increment the top loop's indices. + * + * @return void + * @static + */ + public static function incrementLoopIndices() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->incrementLoopIndices(); + } + /** + * Pop a loop from the top of the loop stack. + * + * @return void + * @static + */ + public static function popLoop() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->popLoop(); + } + /** + * Get an instance of the last loop in the stack. + * + * @return \stdClass|null + * @static + */ + public static function getLastLoop() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getLastLoop(); + } + /** + * Get the entire loop stack. + * + * @return array + * @static + */ + public static function getLoopStack() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->getLoopStack(); + } + /** + * Start injecting content into a push section. + * + * @param string $section + * @param string $content + * @return void + * @static + */ + public static function startPush($section, $content = '') + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startPush($section, $content); + } + /** + * Stop injecting content into a push section. + * + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function stopPush() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->stopPush(); + } + /** + * Start prepending content into a push section. + * + * @param string $section + * @param string $content + * @return void + * @static + */ + public static function startPrepend($section, $content = '') + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startPrepend($section, $content); + } + /** + * Stop prepending content into a push section. + * + * @return string + * @throws \InvalidArgumentException + * @static + */ + public static function stopPrepend() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->stopPrepend(); + } + /** + * Get the string contents of a push section. + * + * @param string $section + * @param string $default + * @return string + * @static + */ + public static function yieldPushContent($section, $default = '') + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->yieldPushContent($section, $default); + } + /** + * Flush all of the stacks. + * + * @return void + * @static + */ + public static function flushStacks() + { + /** @var \Illuminate\View\Factory $instance */ + $instance->flushStacks(); + } + /** + * Start a translation block. + * + * @param array $replacements + * @return void + * @static + */ + public static function startTranslation($replacements = []) + { + /** @var \Illuminate\View\Factory $instance */ + $instance->startTranslation($replacements); + } + /** + * Render the current translation. + * + * @return string + * @static + */ + public static function renderTranslation() + { + /** @var \Illuminate\View\Factory $instance */ + return $instance->renderTranslation(); + } + + } + +} + + namespace Illuminate\Support { + /** + * + * + */ + class Arr { + + } + /** + * + * + */ + class Str { + + } + +} + + namespace Collective\Html { + /** + * + * + * @see \Collective\Html\FormBuilder + */ + class FormFacade { + /** + * Open up a new HTML form. + * + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function open($options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->open($options); + } + /** + * Create a new model based form builder. + * + * @param mixed $model + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function model($model, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->model($model, $options); + } + /** + * Set the model instance on the form builder. + * + * @param mixed $model + * @return void + * @static + */ + public static function setModel($model) + { + /** @var \Collective\Html\FormBuilder $instance */ + $instance->setModel($model); + } + /** + * Get the current model instance on the form builder. + * + * @return mixed $model + * @static + */ + public static function getModel() + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->getModel(); + } + /** + * Close the current form. + * + * @return string + * @static + */ + public static function close() + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->close(); + } + /** + * Generate a hidden field with the current CSRF token. + * + * @return string + * @static + */ + public static function token() + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->token(); + } + /** + * Create a form label element. + * + * @param string $name + * @param string $value + * @param array $options + * @param bool $escape_html + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function label($name, $value = null, $options = [], $escape_html = true) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->label($name, $value, $options, $escape_html); + } + /** + * Create a form input field. + * + * @param string $type + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function input($type, $name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->input($type, $name, $value, $options); + } + /** + * Create a text input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function text($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->text($name, $value, $options); + } + /** + * Create a password input field. + * + * @param string $name + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function password($name, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->password($name, $options); + } + /** + * Create a range input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function range($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->range($name, $value, $options); + } + /** + * Create a hidden input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function hidden($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->hidden($name, $value, $options); + } + /** + * Create a search input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function search($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->search($name, $value, $options); + } + /** + * Create an e-mail input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function email($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->email($name, $value, $options); + } + /** + * Create a tel input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function tel($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->tel($name, $value, $options); + } + /** + * Create a number input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function number($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->number($name, $value, $options); + } + /** + * Create a date input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function date($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->date($name, $value, $options); + } + /** + * Create a datetime input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function datetime($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->datetime($name, $value, $options); + } + /** + * Create a datetime-local input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function datetimeLocal($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->datetimeLocal($name, $value, $options); + } + /** + * Create a time input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function time($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->time($name, $value, $options); + } + /** + * Create a url input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function url($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->url($name, $value, $options); + } + /** + * Create a week input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function week($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->week($name, $value, $options); + } + /** + * Create a file input field. + * + * @param string $name + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function file($name, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->file($name, $options); + } + /** + * Create a textarea input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function textarea($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->textarea($name, $value, $options); + } + /** + * Create a select box field. + * + * @param string $name + * @param array $list + * @param string|bool $selected + * @param array $selectAttributes + * @param array $optionsAttributes + * @param array $optgroupsAttributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function select($name, $list = [], $selected = null, $selectAttributes = [], $optionsAttributes = [], $optgroupsAttributes = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->select($name, $list, $selected, $selectAttributes, $optionsAttributes, $optgroupsAttributes); + } + /** + * Create a select range field. + * + * @param string $name + * @param string $begin + * @param string $end + * @param string $selected + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function selectRange($name, $begin, $end, $selected = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->selectRange($name, $begin, $end, $selected, $options); + } + /** + * Create a select year field. + * + * @param string $name + * @param string $begin + * @param string $end + * @param string $selected + * @param array $options + * @return mixed + * @static + */ + public static function selectYear() + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->selectYear(); + } + /** + * Create a select month field. + * + * @param string $name + * @param string $selected + * @param array $options + * @param string $format + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function selectMonth($name, $selected = null, $options = [], $format = '%B') + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->selectMonth($name, $selected, $options, $format); + } + /** + * Get the select option for the given value. + * + * @param string $display + * @param string $value + * @param string $selected + * @param array $attributes + * @param array $optgroupAttributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function getSelectOption($display, $value, $selected, $attributes = [], $optgroupAttributes = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->getSelectOption($display, $value, $selected, $attributes, $optgroupAttributes); + } + /** + * Create a checkbox input field. + * + * @param string $name + * @param mixed $value + * @param bool $checked + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function checkbox($name, $value = 1, $checked = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->checkbox($name, $value, $checked, $options); + } + /** + * Create a radio button input field. + * + * @param string $name + * @param mixed $value + * @param bool $checked + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function radio($name, $value = null, $checked = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->radio($name, $value, $checked, $options); + } + /** + * Create a HTML reset input element. + * + * @param string $value + * @param array $attributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function reset($value, $attributes = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->reset($value, $attributes); + } + /** + * Create a HTML image input element. + * + * @param string $url + * @param string $name + * @param array $attributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function image($url, $name = null, $attributes = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->image($url, $name, $attributes); + } + /** + * Create a month input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function month($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->month($name, $value, $options); + } + /** + * Create a color input field. + * + * @param string $name + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function color($name, $value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->color($name, $value, $options); + } + /** + * Create a submit button element. + * + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function submit($value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->submit($value, $options); + } + /** + * Create a button element. + * + * @param string $value + * @param array $options + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function button($value = null, $options = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->button($value, $options); + } + /** + * Create a datalist box field. + * + * @param string $id + * @param array $list + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function datalist($id, $list = []) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->datalist($id, $list); + } + /** + * Get the ID attribute for a field name. + * + * @param string $name + * @param array $attributes + * @return string + * @static + */ + public static function getIdAttribute($name, $attributes) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->getIdAttribute($name, $attributes); + } + /** + * Get the value that should be assigned to the field. + * + * @param string $name + * @param string $value + * @return mixed + * @static + */ + public static function getValueAttribute($name, $value = null) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->getValueAttribute($name, $value); + } + /** + * Take Request in fill process + * + * @param bool $consider + * @static + */ + public static function considerRequest($consider = true) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->considerRequest($consider); + } + /** + * Get a value from the session's old input. + * + * @param string $name + * @return mixed + * @static + */ + public static function old($name) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->old($name); + } + /** + * Determine if the old input is empty. + * + * @return bool + * @static + */ + public static function oldInputIsEmpty() + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->oldInputIsEmpty(); + } + /** + * Get the session store implementation. + * + * @return \Illuminate\Contracts\Session\Session $session + * @static + */ + public static function getSessionStore() + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->getSessionStore(); + } + /** + * Set the session store implementation. + * + * @param \Illuminate\Contracts\Session\Session $session + * @return \Collective\Html\FormBuilder + * @static + */ + public static function setSessionStore($session) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->setSessionStore($session); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Collective\Html\FormBuilder::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Collective\Html\FormBuilder::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Collective\Html\FormBuilder::hasMacro($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->macroCall($method, $parameters); + } + /** + * Register a custom component. + * + * @param $name + * @param $view + * @param array $signature + * @return void + * @static + */ + public static function component($name, $view, $signature) + { + \Collective\Html\FormBuilder::component($name, $view, $signature); + } + /** + * Check if a component is registered. + * + * @param $name + * @return bool + * @static + */ + public static function hasComponent($name) + { + return \Collective\Html\FormBuilder::hasComponent($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return \Illuminate\Contracts\View\View|mixed + * @throws \BadMethodCallException + * @static + */ + public static function componentCall($method, $parameters) + { + /** @var \Collective\Html\FormBuilder $instance */ + return $instance->componentCall($method, $parameters); + } + + } + /** + * + * + * @see \Collective\Html\HtmlBuilder + */ + class HtmlFacade { + /** + * Convert an HTML string to entities. + * + * @param string $value + * @return string + * @static + */ + public static function entities($value) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->entities($value); + } + /** + * Convert entities to HTML characters. + * + * @param string $value + * @return string + * @static + */ + public static function decode($value) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->decode($value); + } + /** + * Generate a link to a JavaScript file. + * + * @param string $url + * @param array $attributes + * @param bool $secure + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function script($url, $attributes = [], $secure = null) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->script($url, $attributes, $secure); + } + /** + * Generate a link to a CSS file. + * + * @param string $url + * @param array $attributes + * @param bool $secure + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function style($url, $attributes = [], $secure = null) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->style($url, $attributes, $secure); + } + /** + * Generate an HTML image element. + * + * @param string $url + * @param string $alt + * @param array $attributes + * @param bool $secure + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function image($url, $alt = null, $attributes = [], $secure = null) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->image($url, $alt, $attributes, $secure); + } + /** + * Generate a link to a Favicon file. + * + * @param string $url + * @param array $attributes + * @param bool $secure + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function favicon($url, $attributes = [], $secure = null) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->favicon($url, $attributes, $secure); + } + /** + * Generate a HTML link. + * + * @param string $url + * @param string $title + * @param array $attributes + * @param bool $secure + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function link($url, $title = null, $attributes = [], $secure = null, $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->link($url, $title, $attributes, $secure, $escape); + } + /** + * Generate a HTTPS HTML link. + * + * @param string $url + * @param string $title + * @param array $attributes + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function secureLink($url, $title = null, $attributes = [], $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->secureLink($url, $title, $attributes, $escape); + } + /** + * Generate a HTML link to an asset. + * + * @param string $url + * @param string $title + * @param array $attributes + * @param bool $secure + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function linkAsset($url, $title = null, $attributes = [], $secure = null, $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->linkAsset($url, $title, $attributes, $secure, $escape); + } + /** + * Generate a HTTPS HTML link to an asset. + * + * @param string $url + * @param string $title + * @param array $attributes + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function linkSecureAsset($url, $title = null, $attributes = [], $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->linkSecureAsset($url, $title, $attributes, $escape); + } + /** + * Generate a HTML link to a named route. + * + * @param string $name + * @param string $title + * @param array $parameters + * @param array $attributes + * @param bool $secure + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function linkRoute($name, $title = null, $parameters = [], $attributes = [], $secure = null, $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->linkRoute($name, $title, $parameters, $attributes, $secure, $escape); + } + /** + * Generate a HTML link to a controller action. + * + * @param string $action + * @param string $title + * @param array $parameters + * @param array $attributes + * @param bool $secure + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function linkAction($action, $title = null, $parameters = [], $attributes = [], $secure = null, $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->linkAction($action, $title, $parameters, $attributes, $secure, $escape); + } + /** + * Generate a HTML link to an email address. + * + * @param string $email + * @param string $title + * @param array $attributes + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function mailto($email, $title = null, $attributes = [], $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->mailto($email, $title, $attributes, $escape); + } + /** + * Obfuscate an e-mail address to prevent spam-bots from sniffing it. + * + * @param string $email + * @return string + * @static + */ + public static function email($email) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->email($email); + } + /** + * Generates non-breaking space entities based on number supplied. + * + * @param int $num + * @return string + * @static + */ + public static function nbsp($num = 1) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->nbsp($num); + } + /** + * Generate an ordered list of items. + * + * @param array $list + * @param array $attributes + * @return \Illuminate\Support\HtmlString|string + * @static + */ + public static function ol($list, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->ol($list, $attributes); + } + /** + * Generate an un-ordered list of items. + * + * @param array $list + * @param array $attributes + * @return \Illuminate\Support\HtmlString|string + * @static + */ + public static function ul($list, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->ul($list, $attributes); + } + /** + * Generate a description list of items. + * + * @param array $list + * @param array $attributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function dl($list, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->dl($list, $attributes); + } + /** + * Build an HTML attribute string from an array. + * + * @param array $attributes + * @return string + * @static + */ + public static function attributes($attributes) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->attributes($attributes); + } + /** + * Obfuscate a string to prevent spam-bots from sniffing it. + * + * @param string $value + * @return string + * @static + */ + public static function obfuscate($value) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->obfuscate($value); + } + /** + * Generate a meta tag. + * + * @param string $name + * @param string $content + * @param array $attributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function meta($name, $content, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->meta($name, $content, $attributes); + } + /** + * Generate an html tag. + * + * @param string $tag + * @param mixed $content + * @param array $attributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function tag($tag, $content, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->tag($tag, $content, $attributes); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Collective\Html\HtmlBuilder::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Collective\Html\HtmlBuilder::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Collective\Html\HtmlBuilder::hasMacro($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->macroCall($method, $parameters); + } + /** + * Register a custom component. + * + * @param $name + * @param $view + * @param array $signature + * @return void + * @static + */ + public static function component($name, $view, $signature) + { + \Collective\Html\HtmlBuilder::component($name, $view, $signature); + } + /** + * Check if a component is registered. + * + * @param $name + * @return bool + * @static + */ + public static function hasComponent($name) + { + return \Collective\Html\HtmlBuilder::hasComponent($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return \Illuminate\Contracts\View\View|mixed + * @throws \BadMethodCallException + * @static + */ + public static function componentCall($method, $parameters) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->componentCall($method, $parameters); + } + + } + /** + * + * + * @see \Collective\Html\HtmlBuilder + */ + class HtmlFacade { + /** + * Convert an HTML string to entities. + * + * @param string $value + * @return string + * @static + */ + public static function entities($value) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->entities($value); + } + /** + * Convert entities to HTML characters. + * + * @param string $value + * @return string + * @static + */ + public static function decode($value) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->decode($value); + } + /** + * Generate a link to a JavaScript file. + * + * @param string $url + * @param array $attributes + * @param bool $secure + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function script($url, $attributes = [], $secure = null) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->script($url, $attributes, $secure); + } + /** + * Generate a link to a CSS file. + * + * @param string $url + * @param array $attributes + * @param bool $secure + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function style($url, $attributes = [], $secure = null) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->style($url, $attributes, $secure); + } + /** + * Generate an HTML image element. + * + * @param string $url + * @param string $alt + * @param array $attributes + * @param bool $secure + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function image($url, $alt = null, $attributes = [], $secure = null) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->image($url, $alt, $attributes, $secure); + } + /** + * Generate a link to a Favicon file. + * + * @param string $url + * @param array $attributes + * @param bool $secure + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function favicon($url, $attributes = [], $secure = null) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->favicon($url, $attributes, $secure); + } + /** + * Generate a HTML link. + * + * @param string $url + * @param string $title + * @param array $attributes + * @param bool $secure + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function link($url, $title = null, $attributes = [], $secure = null, $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->link($url, $title, $attributes, $secure, $escape); + } + /** + * Generate a HTTPS HTML link. + * + * @param string $url + * @param string $title + * @param array $attributes + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function secureLink($url, $title = null, $attributes = [], $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->secureLink($url, $title, $attributes, $escape); + } + /** + * Generate a HTML link to an asset. + * + * @param string $url + * @param string $title + * @param array $attributes + * @param bool $secure + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function linkAsset($url, $title = null, $attributes = [], $secure = null, $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->linkAsset($url, $title, $attributes, $secure, $escape); + } + /** + * Generate a HTTPS HTML link to an asset. + * + * @param string $url + * @param string $title + * @param array $attributes + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function linkSecureAsset($url, $title = null, $attributes = [], $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->linkSecureAsset($url, $title, $attributes, $escape); + } + /** + * Generate a HTML link to a named route. + * + * @param string $name + * @param string $title + * @param array $parameters + * @param array $attributes + * @param bool $secure + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function linkRoute($name, $title = null, $parameters = [], $attributes = [], $secure = null, $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->linkRoute($name, $title, $parameters, $attributes, $secure, $escape); + } + /** + * Generate a HTML link to a controller action. + * + * @param string $action + * @param string $title + * @param array $parameters + * @param array $attributes + * @param bool $secure + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function linkAction($action, $title = null, $parameters = [], $attributes = [], $secure = null, $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->linkAction($action, $title, $parameters, $attributes, $secure, $escape); + } + /** + * Generate a HTML link to an email address. + * + * @param string $email + * @param string $title + * @param array $attributes + * @param bool $escape + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function mailto($email, $title = null, $attributes = [], $escape = true) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->mailto($email, $title, $attributes, $escape); + } + /** + * Obfuscate an e-mail address to prevent spam-bots from sniffing it. + * + * @param string $email + * @return string + * @static + */ + public static function email($email) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->email($email); + } + /** + * Generates non-breaking space entities based on number supplied. + * + * @param int $num + * @return string + * @static + */ + public static function nbsp($num = 1) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->nbsp($num); + } + /** + * Generate an ordered list of items. + * + * @param array $list + * @param array $attributes + * @return \Illuminate\Support\HtmlString|string + * @static + */ + public static function ol($list, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->ol($list, $attributes); + } + /** + * Generate an un-ordered list of items. + * + * @param array $list + * @param array $attributes + * @return \Illuminate\Support\HtmlString|string + * @static + */ + public static function ul($list, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->ul($list, $attributes); + } + /** + * Generate a description list of items. + * + * @param array $list + * @param array $attributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function dl($list, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->dl($list, $attributes); + } + /** + * Build an HTML attribute string from an array. + * + * @param array $attributes + * @return string + * @static + */ + public static function attributes($attributes) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->attributes($attributes); + } + /** + * Obfuscate a string to prevent spam-bots from sniffing it. + * + * @param string $value + * @return string + * @static + */ + public static function obfuscate($value) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->obfuscate($value); + } + /** + * Generate a meta tag. + * + * @param string $name + * @param string $content + * @param array $attributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function meta($name, $content, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->meta($name, $content, $attributes); + } + /** + * Generate an html tag. + * + * @param string $tag + * @param mixed $content + * @param array $attributes + * @return \Illuminate\Support\HtmlString + * @static + */ + public static function tag($tag, $content, $attributes = []) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->tag($tag, $content, $attributes); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Collective\Html\HtmlBuilder::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Collective\Html\HtmlBuilder::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Collective\Html\HtmlBuilder::hasMacro($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->macroCall($method, $parameters); + } + /** + * Register a custom component. + * + * @param $name + * @param $view + * @param array $signature + * @return void + * @static + */ + public static function component($name, $view, $signature) + { + \Collective\Html\HtmlBuilder::component($name, $view, $signature); + } + /** + * Check if a component is registered. + * + * @param $name + * @return bool + * @static + */ + public static function hasComponent($name) + { + return \Collective\Html\HtmlBuilder::hasComponent($name); + } + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return \Illuminate\Contracts\View\View|mixed + * @throws \BadMethodCallException + * @static + */ + public static function componentCall($method, $parameters) + { + /** @var \Collective\Html\HtmlBuilder $instance */ + return $instance->componentCall($method, $parameters); + } + + } + +} + + namespace Intervention\Image\Facades { + /** + * + * + */ + class Image { + /** + * Overrides configuration settings + * + * @param array $config + * @return self + * @static + */ + public static function configure($config = []) + { + /** @var \Intervention\Image\ImageManager $instance */ + return $instance->configure($config); + } + /** + * Initiates an Image instance from different input types + * + * @param mixed $data + * @return \Intervention\Image\Image + * @static + */ + public static function make($data) + { + /** @var \Intervention\Image\ImageManager $instance */ + return $instance->make($data); + } + /** + * Creates an empty image canvas + * + * @param int $width + * @param int $height + * @param mixed $background + * @return \Intervention\Image\Image + * @static + */ + public static function canvas($width, $height, $background = null) + { + /** @var \Intervention\Image\ImageManager $instance */ + return $instance->canvas($width, $height, $background); + } + /** + * Create new cached image and run callback + * (requires additional package intervention/imagecache) + * + * @param \Closure $callback + * @param int $lifetime + * @param boolean $returnObj + * @return \Image + * @static + */ + public static function cache($callback, $lifetime = null, $returnObj = false) + { + /** @var \Intervention\Image\ImageManager $instance */ + return $instance->cache($callback, $lifetime, $returnObj); + } + + } + +} + + namespace Carbon { + /** + * A simple API extension for DateTime. + * + * + * + * @property int $year + * @property int $yearIso + * @property int $month + * @property int $day + * @property int $hour + * @property int $minute + * @property int $second + * @property int $micro + * @property int $microsecond + * @property int|float|string $timestamp seconds since the Unix Epoch + * @property string $englishDayOfWeek the day of week in English + * @property string $shortEnglishDayOfWeek the abbreviated day of week in English + * @property string $englishMonth the month in English + * @property string $shortEnglishMonth the abbreviated month in English + * @property string $localeDayOfWeek the day of week in current locale LC_TIME + * @property string $shortLocaleDayOfWeek the abbreviated day of week in current locale LC_TIME + * @property string $localeMonth the month in current locale LC_TIME + * @property string $shortLocaleMonth the abbreviated month in current locale LC_TIME + * @property int $milliseconds + * @property int $millisecond + * @property int $milli + * @property int $week 1 through 53 + * @property int $isoWeek 1 through 53 + * @property int $weekYear year according to week format + * @property int $isoWeekYear year according to ISO week format + * @property int $dayOfYear 1 through 366 + * @property int $age does a diffInYears() with default parameters + * @property int $offset the timezone offset in seconds from UTC + * @property int $offsetMinutes the timezone offset in minutes from UTC + * @property int $offsetHours the timezone offset in hours from UTC + * @property CarbonTimeZone $timezone the current timezone + * @property CarbonTimeZone $tz alias of $timezone + * @property-read int $dayOfWeek 0 (for Sunday) through 6 (for Saturday) + * @property-read int $dayOfWeekIso 1 (for Monday) through 7 (for Sunday) + * @property-read int $weekOfYear ISO-8601 week number of year, weeks starting on Monday + * @property-read int $daysInMonth number of days in the given month + * @property-read string $latinMeridiem "am"/"pm" (Ante meridiem or Post meridiem latin lowercase mark) + * @property-read string $latinUpperMeridiem "AM"/"PM" (Ante meridiem or Post meridiem latin uppercase mark) + * @property-read string $timezoneAbbreviatedName the current timezone abbreviated name + * @property-read string $tzAbbrName alias of $timezoneAbbreviatedName + * @property-read string $dayName long name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortDayName short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $minDayName very short name of weekday translated according to Carbon locale, in english if no translation available for current language + * @property-read string $monthName long name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $shortMonthName short name of month translated according to Carbon locale, in english if no translation available for current language + * @property-read string $meridiem lowercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read string $upperMeridiem uppercase meridiem mark translated according to Carbon locale, in latin if no translation available for current language + * @property-read int $noZeroHour current hour from 1 to 24 + * @property-read int $weeksInYear 51 through 53 + * @property-read int $isoWeeksInYear 51 through 53 + * @property-read int $weekOfMonth 1 through 5 + * @property-read int $weekNumberInMonth 1 through 5 + * @property-read int $firstWeekDay 0 through 6 + * @property-read int $lastWeekDay 0 through 6 + * @property-read int $daysInYear 365 or 366 + * @property-read int $quarter the quarter of this instance, 1 - 4 + * @property-read int $decade the decade of this instance + * @property-read int $century the century of this instance + * @property-read int $millennium the millennium of this instance + * @property-read bool $dst daylight savings time indicator, true if DST, false otherwise + * @property-read bool $local checks if the timezone is local, true if local, false otherwise + * @property-read bool $utc checks if the timezone is UTC, true if UTC, false otherwise + * @property-read string $timezoneName the current timezone name + * @property-read string $tzName alias of $timezoneName + * @property-read string $locale locale of the current instance + * @method bool isUtc() Check if the current instance has UTC timezone. (Both isUtc and isUTC cases are valid.) + * @method bool isLocal() Check if the current instance has non-UTC timezone. + * @method bool isValid() Check if the current instance is a valid date. + * @method bool isDST() Check if the current instance is in a daylight saving time. + * @method bool isSunday() Checks if the instance day is sunday. + * @method bool isMonday() Checks if the instance day is monday. + * @method bool isTuesday() Checks if the instance day is tuesday. + * @method bool isWednesday() Checks if the instance day is wednesday. + * @method bool isThursday() Checks if the instance day is thursday. + * @method bool isFriday() Checks if the instance day is friday. + * @method bool isSaturday() Checks if the instance day is saturday. + * @method bool isSameYear(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same year as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentYear() Checks if the instance is in the same year as the current moment. + * @method bool isNextYear() Checks if the instance is in the same year as the current moment next year. + * @method bool isLastYear() Checks if the instance is in the same year as the current moment last year. + * @method bool isSameWeek(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same week as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentWeek() Checks if the instance is in the same week as the current moment. + * @method bool isNextWeek() Checks if the instance is in the same week as the current moment next week. + * @method bool isLastWeek() Checks if the instance is in the same week as the current moment last week. + * @method bool isSameDay(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same day as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDay() Checks if the instance is in the same day as the current moment. + * @method bool isNextDay() Checks if the instance is in the same day as the current moment next day. + * @method bool isLastDay() Checks if the instance is in the same day as the current moment last day. + * @method bool isSameHour(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same hour as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentHour() Checks if the instance is in the same hour as the current moment. + * @method bool isNextHour() Checks if the instance is in the same hour as the current moment next hour. + * @method bool isLastHour() Checks if the instance is in the same hour as the current moment last hour. + * @method bool isSameMinute(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same minute as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMinute() Checks if the instance is in the same minute as the current moment. + * @method bool isNextMinute() Checks if the instance is in the same minute as the current moment next minute. + * @method bool isLastMinute() Checks if the instance is in the same minute as the current moment last minute. + * @method bool isSameSecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same second as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentSecond() Checks if the instance is in the same second as the current moment. + * @method bool isNextSecond() Checks if the instance is in the same second as the current moment next second. + * @method bool isLastSecond() Checks if the instance is in the same second as the current moment last second. + * @method bool isSameMicro(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicro() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicro() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicro() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isSameMicrosecond(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same microsecond as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMicrosecond() Checks if the instance is in the same microsecond as the current moment. + * @method bool isNextMicrosecond() Checks if the instance is in the same microsecond as the current moment next microsecond. + * @method bool isLastMicrosecond() Checks if the instance is in the same microsecond as the current moment last microsecond. + * @method bool isCurrentMonth() Checks if the instance is in the same month as the current moment. + * @method bool isNextMonth() Checks if the instance is in the same month as the current moment next month. + * @method bool isLastMonth() Checks if the instance is in the same month as the current moment last month. + * @method bool isCurrentQuarter() Checks if the instance is in the same quarter as the current moment. + * @method bool isNextQuarter() Checks if the instance is in the same quarter as the current moment next quarter. + * @method bool isLastQuarter() Checks if the instance is in the same quarter as the current moment last quarter. + * @method bool isSameDecade(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same decade as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentDecade() Checks if the instance is in the same decade as the current moment. + * @method bool isNextDecade() Checks if the instance is in the same decade as the current moment next decade. + * @method bool isLastDecade() Checks if the instance is in the same decade as the current moment last decade. + * @method bool isSameCentury(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same century as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentCentury() Checks if the instance is in the same century as the current moment. + * @method bool isNextCentury() Checks if the instance is in the same century as the current moment next century. + * @method bool isLastCentury() Checks if the instance is in the same century as the current moment last century. + * @method bool isSameMillennium(Carbon|DateTimeInterface|string|null $date = null) Checks if the given date is in the same millennium as the instance. If null passed, compare to now (with the same timezone). + * @method bool isCurrentMillennium() Checks if the instance is in the same millennium as the current moment. + * @method bool isNextMillennium() Checks if the instance is in the same millennium as the current moment next millennium. + * @method bool isLastMillennium() Checks if the instance is in the same millennium as the current moment last millennium. + * @method $this years(int $value) Set current instance year to the given value. + * @method $this year(int $value) Set current instance year to the given value. + * @method $this setYears(int $value) Set current instance year to the given value. + * @method $this setYear(int $value) Set current instance year to the given value. + * @method $this months(int $value) Set current instance month to the given value. + * @method $this month(int $value) Set current instance month to the given value. + * @method $this setMonths(int $value) Set current instance month to the given value. + * @method $this setMonth(int $value) Set current instance month to the given value. + * @method $this days(int $value) Set current instance day to the given value. + * @method $this day(int $value) Set current instance day to the given value. + * @method $this setDays(int $value) Set current instance day to the given value. + * @method $this setDay(int $value) Set current instance day to the given value. + * @method $this hours(int $value) Set current instance hour to the given value. + * @method $this hour(int $value) Set current instance hour to the given value. + * @method $this setHours(int $value) Set current instance hour to the given value. + * @method $this setHour(int $value) Set current instance hour to the given value. + * @method $this minutes(int $value) Set current instance minute to the given value. + * @method $this minute(int $value) Set current instance minute to the given value. + * @method $this setMinutes(int $value) Set current instance minute to the given value. + * @method $this setMinute(int $value) Set current instance minute to the given value. + * @method $this seconds(int $value) Set current instance second to the given value. + * @method $this second(int $value) Set current instance second to the given value. + * @method $this setSeconds(int $value) Set current instance second to the given value. + * @method $this setSecond(int $value) Set current instance second to the given value. + * @method $this millis(int $value) Set current instance millisecond to the given value. + * @method $this milli(int $value) Set current instance millisecond to the given value. + * @method $this setMillis(int $value) Set current instance millisecond to the given value. + * @method $this setMilli(int $value) Set current instance millisecond to the given value. + * @method $this milliseconds(int $value) Set current instance millisecond to the given value. + * @method $this millisecond(int $value) Set current instance millisecond to the given value. + * @method $this setMilliseconds(int $value) Set current instance millisecond to the given value. + * @method $this setMillisecond(int $value) Set current instance millisecond to the given value. + * @method $this micros(int $value) Set current instance microsecond to the given value. + * @method $this micro(int $value) Set current instance microsecond to the given value. + * @method $this setMicros(int $value) Set current instance microsecond to the given value. + * @method $this setMicro(int $value) Set current instance microsecond to the given value. + * @method $this microseconds(int $value) Set current instance microsecond to the given value. + * @method $this microsecond(int $value) Set current instance microsecond to the given value. + * @method $this setMicroseconds(int $value) Set current instance microsecond to the given value. + * @method $this setMicrosecond(int $value) Set current instance microsecond to the given value. + * @method $this addYears(int $value = 1) Add years (the $value count passed in) to the instance (using date interval). + * @method $this addYear() Add one year to the instance (using date interval). + * @method $this subYears(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval). + * @method $this subYear() Sub one year to the instance (using date interval). + * @method $this addYearsWithOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addYearWithOverflow() Add one year to the instance (using date interval) with overflow explicitly allowed. + * @method $this subYearsWithOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subYearWithOverflow() Sub one year to the instance (using date interval) with overflow explicitly allowed. + * @method $this addYearsWithoutOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearWithoutOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsWithoutOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearWithoutOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearsWithNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearWithNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsWithNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearWithNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearsNoOverflow(int $value = 1) Add years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addYearNoOverflow() Add one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearsNoOverflow(int $value = 1) Sub years (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subYearNoOverflow() Sub one year to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonths(int $value = 1) Add months (the $value count passed in) to the instance (using date interval). + * @method $this addMonth() Add one month to the instance (using date interval). + * @method $this subMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval). + * @method $this subMonth() Sub one month to the instance (using date interval). + * @method $this addMonthsWithOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMonthWithOverflow() Add one month to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMonthsWithOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMonthWithOverflow() Sub one month to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMonthsWithoutOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthWithoutOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsWithoutOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthWithoutOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthsWithNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthWithNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsWithNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthWithNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthsNoOverflow(int $value = 1) Add months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMonthNoOverflow() Add one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthsNoOverflow(int $value = 1) Sub months (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMonthNoOverflow() Sub one month to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDays(int $value = 1) Add days (the $value count passed in) to the instance (using date interval). + * @method $this addDay() Add one day to the instance (using date interval). + * @method $this subDays(int $value = 1) Sub days (the $value count passed in) to the instance (using date interval). + * @method $this subDay() Sub one day to the instance (using date interval). + * @method $this addHours(int $value = 1) Add hours (the $value count passed in) to the instance (using date interval). + * @method $this addHour() Add one hour to the instance (using date interval). + * @method $this subHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using date interval). + * @method $this subHour() Sub one hour to the instance (using date interval). + * @method $this addMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using date interval). + * @method $this addMinute() Add one minute to the instance (using date interval). + * @method $this subMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using date interval). + * @method $this subMinute() Sub one minute to the instance (using date interval). + * @method $this addSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using date interval). + * @method $this addSecond() Add one second to the instance (using date interval). + * @method $this subSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using date interval). + * @method $this subSecond() Sub one second to the instance (using date interval). + * @method $this addMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMilli() Add one millisecond to the instance (using date interval). + * @method $this subMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMilli() Sub one millisecond to the instance (using date interval). + * @method $this addMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMillisecond() Add one millisecond to the instance (using date interval). + * @method $this subMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMillisecond() Sub one millisecond to the instance (using date interval). + * @method $this addMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMicro() Add one microsecond to the instance (using date interval). + * @method $this subMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMicro() Sub one microsecond to the instance (using date interval). + * @method $this addMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using date interval). + * @method $this addMicrosecond() Add one microsecond to the instance (using date interval). + * @method $this subMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using date interval). + * @method $this subMicrosecond() Sub one microsecond to the instance (using date interval). + * @method $this addMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval). + * @method $this addMillennium() Add one millennium to the instance (using date interval). + * @method $this subMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval). + * @method $this subMillennium() Sub one millennium to the instance (using date interval). + * @method $this addMillenniaWithOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMillenniumWithOverflow() Add one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMillenniaWithOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subMillenniumWithOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly allowed. + * @method $this addMillenniaWithoutOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumWithoutOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaWithoutOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumWithoutOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniaWithNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumWithNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaWithNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumWithNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniaNoOverflow(int $value = 1) Add millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addMillenniumNoOverflow() Add one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniaNoOverflow(int $value = 1) Sub millennia (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subMillenniumNoOverflow() Sub one millennium to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval). + * @method $this addCentury() Add one century to the instance (using date interval). + * @method $this subCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval). + * @method $this subCentury() Sub one century to the instance (using date interval). + * @method $this addCenturiesWithOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addCenturyWithOverflow() Add one century to the instance (using date interval) with overflow explicitly allowed. + * @method $this subCenturiesWithOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subCenturyWithOverflow() Sub one century to the instance (using date interval) with overflow explicitly allowed. + * @method $this addCenturiesWithoutOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyWithoutOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesWithoutOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyWithoutOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturiesWithNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyWithNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesWithNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyWithNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturiesNoOverflow(int $value = 1) Add centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addCenturyNoOverflow() Add one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturiesNoOverflow(int $value = 1) Sub centuries (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subCenturyNoOverflow() Sub one century to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval). + * @method $this addDecade() Add one decade to the instance (using date interval). + * @method $this subDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval). + * @method $this subDecade() Sub one decade to the instance (using date interval). + * @method $this addDecadesWithOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addDecadeWithOverflow() Add one decade to the instance (using date interval) with overflow explicitly allowed. + * @method $this subDecadesWithOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subDecadeWithOverflow() Sub one decade to the instance (using date interval) with overflow explicitly allowed. + * @method $this addDecadesWithoutOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeWithoutOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesWithoutOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeWithoutOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadesWithNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeWithNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesWithNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeWithNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadesNoOverflow(int $value = 1) Add decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addDecadeNoOverflow() Add one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadesNoOverflow(int $value = 1) Sub decades (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subDecadeNoOverflow() Sub one decade to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval). + * @method $this addQuarter() Add one quarter to the instance (using date interval). + * @method $this subQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval). + * @method $this subQuarter() Sub one quarter to the instance (using date interval). + * @method $this addQuartersWithOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this addQuarterWithOverflow() Add one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method $this subQuartersWithOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly allowed. + * @method $this subQuarterWithOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly allowed. + * @method $this addQuartersWithoutOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterWithoutOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersWithoutOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterWithoutOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuartersWithNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterWithNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersWithNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterWithNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuartersNoOverflow(int $value = 1) Add quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addQuarterNoOverflow() Add one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuartersNoOverflow(int $value = 1) Sub quarters (the $value count passed in) to the instance (using date interval) with overflow explicitly forbidden. + * @method $this subQuarterNoOverflow() Sub one quarter to the instance (using date interval) with overflow explicitly forbidden. + * @method $this addWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using date interval). + * @method $this addWeek() Add one week to the instance (using date interval). + * @method $this subWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using date interval). + * @method $this subWeek() Sub one week to the instance (using date interval). + * @method $this addWeekdays(int $value = 1) Add weekdays (the $value count passed in) to the instance (using date interval). + * @method $this addWeekday() Add one weekday to the instance (using date interval). + * @method $this subWeekdays(int $value = 1) Sub weekdays (the $value count passed in) to the instance (using date interval). + * @method $this subWeekday() Sub one weekday to the instance (using date interval). + * @method $this addRealMicros(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMicro() Add one microsecond to the instance (using timestamp). + * @method $this subRealMicros(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMicro() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method $this addRealMicroseconds(int $value = 1) Add microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMicrosecond() Add one microsecond to the instance (using timestamp). + * @method $this subRealMicroseconds(int $value = 1) Sub microseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMicrosecond() Sub one microsecond to the instance (using timestamp). + * @method CarbonPeriod microsecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each microsecond or every X microseconds if a factor is given. + * @method $this addRealMillis(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMilli() Add one millisecond to the instance (using timestamp). + * @method $this subRealMillis(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMilli() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method $this addRealMilliseconds(int $value = 1) Add milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMillisecond() Add one millisecond to the instance (using timestamp). + * @method $this subRealMilliseconds(int $value = 1) Sub milliseconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMillisecond() Sub one millisecond to the instance (using timestamp). + * @method CarbonPeriod millisecondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millisecond or every X milliseconds if a factor is given. + * @method $this addRealSeconds(int $value = 1) Add seconds (the $value count passed in) to the instance (using timestamp). + * @method $this addRealSecond() Add one second to the instance (using timestamp). + * @method $this subRealSeconds(int $value = 1) Sub seconds (the $value count passed in) to the instance (using timestamp). + * @method $this subRealSecond() Sub one second to the instance (using timestamp). + * @method CarbonPeriod secondsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each second or every X seconds if a factor is given. + * @method $this addRealMinutes(int $value = 1) Add minutes (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMinute() Add one minute to the instance (using timestamp). + * @method $this subRealMinutes(int $value = 1) Sub minutes (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMinute() Sub one minute to the instance (using timestamp). + * @method CarbonPeriod minutesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each minute or every X minutes if a factor is given. + * @method $this addRealHours(int $value = 1) Add hours (the $value count passed in) to the instance (using timestamp). + * @method $this addRealHour() Add one hour to the instance (using timestamp). + * @method $this subRealHours(int $value = 1) Sub hours (the $value count passed in) to the instance (using timestamp). + * @method $this subRealHour() Sub one hour to the instance (using timestamp). + * @method CarbonPeriod hoursUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each hour or every X hours if a factor is given. + * @method $this addRealDays(int $value = 1) Add days (the $value count passed in) to the instance (using timestamp). + * @method $this addRealDay() Add one day to the instance (using timestamp). + * @method $this subRealDays(int $value = 1) Sub days (the $value count passed in) to the instance (using timestamp). + * @method $this subRealDay() Sub one day to the instance (using timestamp). + * @method CarbonPeriod daysUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each day or every X days if a factor is given. + * @method $this addRealWeeks(int $value = 1) Add weeks (the $value count passed in) to the instance (using timestamp). + * @method $this addRealWeek() Add one week to the instance (using timestamp). + * @method $this subRealWeeks(int $value = 1) Sub weeks (the $value count passed in) to the instance (using timestamp). + * @method $this subRealWeek() Sub one week to the instance (using timestamp). + * @method CarbonPeriod weeksUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each week or every X weeks if a factor is given. + * @method $this addRealMonths(int $value = 1) Add months (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMonth() Add one month to the instance (using timestamp). + * @method $this subRealMonths(int $value = 1) Sub months (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMonth() Sub one month to the instance (using timestamp). + * @method CarbonPeriod monthsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each month or every X months if a factor is given. + * @method $this addRealQuarters(int $value = 1) Add quarters (the $value count passed in) to the instance (using timestamp). + * @method $this addRealQuarter() Add one quarter to the instance (using timestamp). + * @method $this subRealQuarters(int $value = 1) Sub quarters (the $value count passed in) to the instance (using timestamp). + * @method $this subRealQuarter() Sub one quarter to the instance (using timestamp). + * @method CarbonPeriod quartersUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each quarter or every X quarters if a factor is given. + * @method $this addRealYears(int $value = 1) Add years (the $value count passed in) to the instance (using timestamp). + * @method $this addRealYear() Add one year to the instance (using timestamp). + * @method $this subRealYears(int $value = 1) Sub years (the $value count passed in) to the instance (using timestamp). + * @method $this subRealYear() Sub one year to the instance (using timestamp). + * @method CarbonPeriod yearsUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each year or every X years if a factor is given. + * @method $this addRealDecades(int $value = 1) Add decades (the $value count passed in) to the instance (using timestamp). + * @method $this addRealDecade() Add one decade to the instance (using timestamp). + * @method $this subRealDecades(int $value = 1) Sub decades (the $value count passed in) to the instance (using timestamp). + * @method $this subRealDecade() Sub one decade to the instance (using timestamp). + * @method CarbonPeriod decadesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each decade or every X decades if a factor is given. + * @method $this addRealCenturies(int $value = 1) Add centuries (the $value count passed in) to the instance (using timestamp). + * @method $this addRealCentury() Add one century to the instance (using timestamp). + * @method $this subRealCenturies(int $value = 1) Sub centuries (the $value count passed in) to the instance (using timestamp). + * @method $this subRealCentury() Sub one century to the instance (using timestamp). + * @method CarbonPeriod centuriesUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each century or every X centuries if a factor is given. + * @method $this addRealMillennia(int $value = 1) Add millennia (the $value count passed in) to the instance (using timestamp). + * @method $this addRealMillennium() Add one millennium to the instance (using timestamp). + * @method $this subRealMillennia(int $value = 1) Sub millennia (the $value count passed in) to the instance (using timestamp). + * @method $this subRealMillennium() Sub one millennium to the instance (using timestamp). + * @method CarbonPeriod millenniaUntil($endDate = null, int $factor = 1) Return an iterable period from current date to given end (string, DateTime or Carbon instance) for each millennium or every X millennia if a factor is given. + * @method $this roundYear(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this roundYears(float $precision = 1, string $function = "round") Round the current instance year with given precision using the given function. + * @method $this floorYear(float $precision = 1) Truncate the current instance year with given precision. + * @method $this floorYears(float $precision = 1) Truncate the current instance year with given precision. + * @method $this ceilYear(float $precision = 1) Ceil the current instance year with given precision. + * @method $this ceilYears(float $precision = 1) Ceil the current instance year with given precision. + * @method $this roundMonth(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this roundMonths(float $precision = 1, string $function = "round") Round the current instance month with given precision using the given function. + * @method $this floorMonth(float $precision = 1) Truncate the current instance month with given precision. + * @method $this floorMonths(float $precision = 1) Truncate the current instance month with given precision. + * @method $this ceilMonth(float $precision = 1) Ceil the current instance month with given precision. + * @method $this ceilMonths(float $precision = 1) Ceil the current instance month with given precision. + * @method $this roundDay(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this roundDays(float $precision = 1, string $function = "round") Round the current instance day with given precision using the given function. + * @method $this floorDay(float $precision = 1) Truncate the current instance day with given precision. + * @method $this floorDays(float $precision = 1) Truncate the current instance day with given precision. + * @method $this ceilDay(float $precision = 1) Ceil the current instance day with given precision. + * @method $this ceilDays(float $precision = 1) Ceil the current instance day with given precision. + * @method $this roundHour(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this roundHours(float $precision = 1, string $function = "round") Round the current instance hour with given precision using the given function. + * @method $this floorHour(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this floorHours(float $precision = 1) Truncate the current instance hour with given precision. + * @method $this ceilHour(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this ceilHours(float $precision = 1) Ceil the current instance hour with given precision. + * @method $this roundMinute(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this roundMinutes(float $precision = 1, string $function = "round") Round the current instance minute with given precision using the given function. + * @method $this floorMinute(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this floorMinutes(float $precision = 1) Truncate the current instance minute with given precision. + * @method $this ceilMinute(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this ceilMinutes(float $precision = 1) Ceil the current instance minute with given precision. + * @method $this roundSecond(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this roundSeconds(float $precision = 1, string $function = "round") Round the current instance second with given precision using the given function. + * @method $this floorSecond(float $precision = 1) Truncate the current instance second with given precision. + * @method $this floorSeconds(float $precision = 1) Truncate the current instance second with given precision. + * @method $this ceilSecond(float $precision = 1) Ceil the current instance second with given precision. + * @method $this ceilSeconds(float $precision = 1) Ceil the current instance second with given precision. + * @method $this roundMillennium(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this roundMillennia(float $precision = 1, string $function = "round") Round the current instance millennium with given precision using the given function. + * @method $this floorMillennium(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this floorMillennia(float $precision = 1) Truncate the current instance millennium with given precision. + * @method $this ceilMillennium(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this ceilMillennia(float $precision = 1) Ceil the current instance millennium with given precision. + * @method $this roundCentury(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this roundCenturies(float $precision = 1, string $function = "round") Round the current instance century with given precision using the given function. + * @method $this floorCentury(float $precision = 1) Truncate the current instance century with given precision. + * @method $this floorCenturies(float $precision = 1) Truncate the current instance century with given precision. + * @method $this ceilCentury(float $precision = 1) Ceil the current instance century with given precision. + * @method $this ceilCenturies(float $precision = 1) Ceil the current instance century with given precision. + * @method $this roundDecade(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this roundDecades(float $precision = 1, string $function = "round") Round the current instance decade with given precision using the given function. + * @method $this floorDecade(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this floorDecades(float $precision = 1) Truncate the current instance decade with given precision. + * @method $this ceilDecade(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this ceilDecades(float $precision = 1) Ceil the current instance decade with given precision. + * @method $this roundQuarter(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this roundQuarters(float $precision = 1, string $function = "round") Round the current instance quarter with given precision using the given function. + * @method $this floorQuarter(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this floorQuarters(float $precision = 1) Truncate the current instance quarter with given precision. + * @method $this ceilQuarter(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this ceilQuarters(float $precision = 1) Ceil the current instance quarter with given precision. + * @method $this roundMillisecond(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this roundMilliseconds(float $precision = 1, string $function = "round") Round the current instance millisecond with given precision using the given function. + * @method $this floorMillisecond(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this floorMilliseconds(float $precision = 1) Truncate the current instance millisecond with given precision. + * @method $this ceilMillisecond(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this ceilMilliseconds(float $precision = 1) Ceil the current instance millisecond with given precision. + * @method $this roundMicrosecond(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this roundMicroseconds(float $precision = 1, string $function = "round") Round the current instance microsecond with given precision using the given function. + * @method $this floorMicrosecond(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this floorMicroseconds(float $precision = 1) Truncate the current instance microsecond with given precision. + * @method $this ceilMicrosecond(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method $this ceilMicroseconds(float $precision = 1) Ceil the current instance microsecond with given precision. + * @method string shortAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longAbsoluteDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Absolute' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'Relative' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToNowDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToNow' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string shortRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (short format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method string longRelativeToOtherDiffForHumans(DateTimeInterface $other = null, int $parts = 1) Get the difference (long format, 'RelativeToOther' mode) in a human readable format in the current locale. ($other and $parts parameters can be swapped.) + * @method static Carbon|false createFromFormat(string $format, string $time, string|DateTimeZone $timezone = null) Parse a string into a new Carbon object according to the specified format. + * @method static Carbon __set_state(array $array) https://php.net/manual/en/datetime.set-state.php + * + * + */ + class Carbon { + + } + +} + + namespace Jenssegers\Date { + /** + * + * + */ + class Date { + + } + +} + + namespace App\Services { + /** + * + * + */ + class HTMLHelper { + + } + /** + * + * + */ + class Util { + + } + +} + + namespace Yajra\DataTables\Facades { + /** + * + * + * @mixin \Yajra\DataTables\DataTables + * @see \Yajra\DataTables\DataTables + */ + class DataTables { + /** + * Make a DataTable instance from source. + * + * Alias of make for backward compatibility. + * + * @param mixed $source + * @return mixed + * @throws \Exception + * @static + */ + public static function of($source) + { + return \Yajra\DataTables\DataTables::of($source); + } + /** + * Make a DataTable instance from source. + * + * @param mixed $source + * @return mixed + * @throws \Exception + * @static + */ + public static function make($source) + { + return \Yajra\DataTables\DataTables::make($source); + } + /** + * Get request object. + * + * @return \Yajra\DataTables\Utilities\Request + * @static + */ + public static function getRequest() + { + /** @var \Yajra\DataTables\DataTables $instance */ + return $instance->getRequest(); + } + /** + * Get config instance. + * + * @return \Yajra\DataTables\Utilities\Config + * @static + */ + public static function getConfig() + { + /** @var \Yajra\DataTables\DataTables $instance */ + return $instance->getConfig(); + } + /** + * + * + * @deprecated Please use query() instead, this method will be removed in a next version. + * @param $builder + * @return \Yajra\DataTables\QueryDataTable + * @static + */ + public static function queryBuilder($builder) + { + /** @var \Yajra\DataTables\DataTables $instance */ + return $instance->queryBuilder($builder); + } + /** + * DataTables using Query. + * + * @param \Illuminate\Database\Query\Builder|mixed $builder + * @return \Yajra\DataTables\DataTableAbstract|\Yajra\DataTables\QueryDataTable + * @static + */ + public static function query($builder) + { + /** @var \Yajra\DataTables\DataTables $instance */ + return $instance->query($builder); + } + /** + * DataTables using Eloquent Builder. + * + * @param \Illuminate\Database\Eloquent\Builder|mixed $builder + * @return \Yajra\DataTables\DataTableAbstract|\Yajra\DataTables\EloquentDataTable + * @static + */ + public static function eloquent($builder) + { + /** @var \Yajra\DataTables\DataTables $instance */ + return $instance->eloquent($builder); + } + /** + * DataTables using Collection. + * + * @param \Illuminate\Support\Collection|array $collection + * @return \Yajra\DataTables\DataTableAbstract|\Yajra\DataTables\CollectionDataTable + * @static + */ + public static function collection($collection) + { + /** @var \Yajra\DataTables\DataTables $instance */ + return $instance->collection($collection); + } + /** + * DataTables using Collection. + * + * @param \Illuminate\Http\Resources\Json\AnonymousResourceCollection|array $collection + * @return \Yajra\DataTables\DataTableAbstract|\Yajra\DataTables\ApiResourceDataTable + * @static + */ + public static function resource($resource) + { + /** @var \Yajra\DataTables\DataTables $instance */ + return $instance->resource($resource); + } + /** + * Get html builder instance. + * + * @return \Yajra\DataTables\Html\Builder + * @throws \Exception + * @static + */ + public static function getHtmlBuilder() + { + /** @var \Yajra\DataTables\DataTables $instance */ + return $instance->getHtmlBuilder(); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Yajra\DataTables\DataTables::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Yajra\DataTables\DataTables::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Yajra\DataTables\DataTables::hasMacro($name); + } + + } + +} + + namespace App\Services\Facade { + /** + * + * + */ + class Yard { + /** + * + * + * @static + */ + public static function getTaxRate() + { + return \App\Services\Yard::getTaxRate(); + } + /** + * + * + * @static + */ + public static function putYardExtra($key, $value) + { + /** @var \App\Services\Yard $instance */ + return $instance->putYardExtra($key, $value); + } + /** + * + * + * @static + */ + public static function getYardExtra($key) + { + /** @var \App\Services\Yard $instance */ + return $instance->getYardExtra($key); + } + /** + * + * + * @static + */ + public static function getShippingCountryName() + { + /** @var \App\Services\Yard $instance */ + return $instance->getShippingCountryName(); + } + /** + * + * + * @static + */ + public static function getShippingCountryCountryId() + { + /** @var \App\Services\Yard $instance */ + return $instance->getShippingCountryCountryId(); + } + /** + * + * + * @static + */ + public static function getShippingCountryId() + { + /** @var \App\Services\Yard $instance */ + return $instance->getShippingCountryId(); + } + /** + * + * + * @static + */ + public static function getYContent() + { + /** @var \App\Services\Yard $instance */ + return $instance->getYContent(); + } + /** + * + * + * @static + */ + public static function reCalculateShippingPrice() + { + /** @var \App\Services\Yard $instance */ + return $instance->reCalculateShippingPrice(); + } + /** + * + * + * @static + */ + public static function setShippingCountryWithPrice($shipping_country_id, $shipping_is_for = 'ot') + { + /** @var \App\Services\Yard $instance */ + return $instance->setShippingCountryWithPrice($shipping_country_id, $shipping_is_for); + } + /** + * + * + * @param null $decimals + * @param null $decimalPoint + * @param null $thousandSeperator + * @return string + * @static + */ + public static function shipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->shipping($decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function shippingNet($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->shippingNet($decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function subtotalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->subtotalWithShipping($decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function taxWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->taxWithShipping($decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function totalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->totalWithShipping($decimals, $decimalPoint, $thousandSeperator); + } + /** + * Get the total price of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return string + * @static + */ + public static function weight($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->weight($decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function points() + { + /** @var \App\Services\Yard $instance */ + return $instance->points(); + } + /** + * + * + * @static + */ + public static function compCount() + { + /** @var \App\Services\Yard $instance */ + return $instance->compCount(); + } + /** + * Get the total price of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return string + * @static + */ + public static function total($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withFees = false) + { + /** @var \App\Services\Yard $instance */ + return $instance->total($decimals, $decimalPoint, $thousandSeperator, $withFees); + } + /** + * Get the total tax of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + * @static + */ + public static function tax($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withFees = false) + { + /** @var \App\Services\Yard $instance */ + return $instance->tax($decimals, $decimalPoint, $thousandSeperator, $withFees); + } + /** + * Get the subtotal (total - tax) of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + * @static + */ + public static function subtotal($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->subtotal($decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function getCartItemByProduct($product_id, $set_price = 'with') + { + /** @var \App\Services\Yard $instance */ + return $instance->getCartItemByProduct($product_id, $set_price); + } + /** + * + * + * @static + */ + public static function getCartItem($id, $name = null, $qty = null, $price = null, $options = []) + { + /** @var \App\Services\Yard $instance */ + return $instance->getCartItem($id, $name, $qty, $price, $options); + } + /** + * + * + * @static + */ + public static function destroy() + { + /** @var \App\Services\Yard $instance */ + return $instance->destroy(); + } + /** + * + * + * @static + */ + public static function rowPriceNet($row, $decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->rowPriceNet($row, $decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function rowSubtotalNet($row, $decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \App\Services\Yard $instance */ + return $instance->rowSubtotalNet($row, $decimals, $decimalPoint, $thousandSeperator); + } + /** + * + * + * @static + */ + public static function getNumComp() + { + /** @var \App\Services\Yard $instance */ + return $instance->getNumComp(); + } + /** + * + * + * @static + */ + public static function getCompProductBy($comp, $product_id = false) + { + /** @var \App\Services\Yard $instance */ + return $instance->getCompProductBy($comp, $product_id); + } + /** + * + * + * @static + */ + public static function getContentByOrder() + { + /** @var \App\Services\Yard $instance */ + return $instance->getContentByOrder(); + } + /** + * Set the current cart instance. + * + * @param string|null $instance + * @return \Gloudemans\Shoppingcart\Cart + * @static + */ + public static function instance($instance = null) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->instance($instance); + } + /** + * Get the current cart instance. + * + * @return string + * @static + */ + public static function currentInstance() + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->currentInstance(); + } + /** + * Add an item to the cart. + * + * @param mixed $id + * @param mixed $name + * @param int|float $qty + * @param float $price + * @param array $options + * @return \Gloudemans\Shoppingcart\CartItem + * @static + */ + public static function add($id, $name = null, $qty = null, $price = null, $taxRate = null, $options = []) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->add($id, $name, $qty, $price, $taxRate, $options); + } + /** + * Update the cart item with the given rowId. + * + * @param string $rowId + * @param mixed $qty + * @return \Gloudemans\Shoppingcart\CartItem + * @static + */ + public static function update($rowId, $qty) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->update($rowId, $qty); + } + /** + * Remove the cart item with the given rowId from the cart. + * + * @param string $rowId + * @return void + * @static + */ + public static function remove($rowId) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + $instance->remove($rowId); + } + /** + * Get a cart item from the cart by its rowId. + * + * @param string $rowId + * @return \Gloudemans\Shoppingcart\CartItem + * @static + */ + public static function get($rowId) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->get($rowId); + } + /** + * Get the content of the cart. + * + * @return \Illuminate\Support\Collection + * @static + */ + public static function content() + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->content(); + } + /** + * Get the number of items in the cart. + * + * @return int|float + * @static + */ + public static function count() + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->count(); + } + /** + * Get the total tax of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + * @static + */ + public static function feeTax($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->feeTax($decimals, $decimalPoint, $thousandSeperator); + } + /** + * Get the subtotal (total - tax) of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + * @static + */ + public static function subtotalTax($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->subtotalTax($decimals, $decimalPoint, $thousandSeperator); + } + /** + * Search the cart content for a cart item matching the given search closure. + * + * @param \Closure $search + * @return \Illuminate\Support\Collection + * @static + */ + public static function search($search) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->search($search); + } + /** + * Associate the cart item with the given rowId with the given model. + * + * @param string $rowId + * @param mixed $model + * @return void + * @static + */ + public static function associate($rowId, $model) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + $instance->associate($rowId, $model); + } + /** + * Set the tax rate for the cart item with the given rowId. + * + * @param string $rowId + * @param int|float $taxRate + * @return void + * @static + */ + public static function setTax($rowId, $taxRate) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + $instance->setTax($rowId, $taxRate); + } + /** + * Store an the current instance of the cart. + * + * @param mixed $identifier + * @return void + * @static + */ + public static function store($identifier) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + $instance->store($identifier); + } + /** + * Restore the cart with the given identifier. + * + * @param mixed $identifier + * @return void + * @static + */ + public static function restore($identifier) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + $instance->restore($identifier); + } + /** + * Gets a specific fee from the fees array. + * + * @param $name + * @return mixed + * @static + */ + public static function getFee($name) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->getFee($name); + } + /** + * Allows to charge for additional fees that may or may not be taxable + * ex - service fee , delivery fee, tips. + * + * Because it uses ->put, the name must be unique otherwise will be overwritten. + * + * @param $name + * @param $amount + * @param $taxRate + * @param array $options + * @static + */ + public static function addFee($name, $amount, $taxRate = null, $options = []) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->addFee($name, $amount, $taxRate, $options); + } + /** + * Removes a fee from the fee array. + * + * @todo test to see if i need to restore this + * @param $name + * @static + */ + public static function removeFee($name) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->removeFee($name); + } + /** + * Removes all the fees set in the cart. + * + * @static + */ + public static function removeFees() + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->removeFees(); + } + /** + * Gets all the fee totals. + * + * @param bool $format + * @param bool $withTax + * @return string + * @static + */ + public static function feeTotal($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withTax = true) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->feeTotal($decimals, $decimalPoint, $thousandSeperator, $withTax); + } + /** + * Gets all the fees on the cart object. + * + * @return mixed + * @static + */ + public static function getFees() + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->getFees(); + } + /** + * + * + * @return array + * @static + */ + public static function toArray() + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->toArray(); + } + /** + * + * + * @param $array + * @return \App\Services\Yard + * @static + */ + public static function fromArray($array) + { //Method inherited from \Gloudemans\Shoppingcart\Cart + /** @var \App\Services\Yard $instance */ + return $instance->fromArray($array); + } + + } + +} + + namespace Barryvdh\Debugbar { + /** + * + * + * @method static void alert(mixed $message) + * @method static void critical(mixed $message) + * @method static void debug(mixed $message) + * @method static void emergency(mixed $message) + * @method static void error(mixed $message) + * @method static void info(mixed $message) + * @method static void log(mixed $message) + * @method static void notice(mixed $message) + * @method static void warning(mixed $message) + * @see \Barryvdh\Debugbar\LaravelDebugbar + */ + class Facade { + /** + * Enable the Debugbar and boot, if not already booted. + * + * @static + */ + public static function enable() + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->enable(); + } + /** + * Boot the debugbar (add collectors, renderer and listener) + * + * @static + */ + public static function boot() + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->boot(); + } + /** + * + * + * @static + */ + public static function shouldCollect($name, $default = false) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->shouldCollect($name, $default); + } + /** + * Adds a data collector + * + * @param \Barryvdh\Debugbar\DataCollectorInterface $collector + * @throws DebugBarException + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static + */ + public static function addCollector($collector) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->addCollector($collector); + } + /** + * Handle silenced errors + * + * @param $level + * @param $message + * @param string $file + * @param int $line + * @param array $context + * @throws \ErrorException + * @static + */ + public static function handleError($level, $message, $file = '', $line = 0, $context = []) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->handleError($level, $message, $file, $line, $context); + } + /** + * Starts a measure + * + * @param string $name Internal name, used to stop the measure + * @param string $label Public name + * @static + */ + public static function startMeasure($name, $label = null) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->startMeasure($name, $label); + } + /** + * Stops a measure + * + * @param string $name + * @static + */ + public static function stopMeasure($name) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->stopMeasure($name); + } + /** + * Adds an exception to be profiled in the debug bar + * + * @param \Exception $e + * @deprecated in favor of addThrowable + * @static + */ + public static function addException($e) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->addException($e); + } + /** + * Adds an exception to be profiled in the debug bar + * + * @param \Exception $e + * @static + */ + public static function addThrowable($e) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->addThrowable($e); + } + /** + * Returns a JavascriptRenderer for this instance + * + * @param string $baseUrl + * @param string $basePathng + * @return \Barryvdh\Debugbar\JavascriptRenderer + * @static + */ + public static function getJavascriptRenderer($baseUrl = null, $basePath = null) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getJavascriptRenderer($baseUrl, $basePath); + } + /** + * Modify the response and inject the debugbar (or data in headers) + * + * @param \Symfony\Component\HttpFoundation\Request $request + * @param \Symfony\Component\HttpFoundation\Response $response + * @return \Symfony\Component\HttpFoundation\Response + * @static + */ + public static function modifyResponse($request, $response) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->modifyResponse($request, $response); + } + /** + * Check if the Debugbar is enabled + * + * @return boolean + * @static + */ + public static function isEnabled() + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->isEnabled(); + } + /** + * Collects the data from the collectors + * + * @return array + * @static + */ + public static function collect() + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->collect(); + } + /** + * Injects the web debug toolbar into the given Response. + * + * @param \Symfony\Component\HttpFoundation\Response $response A Response instance + * Based on https://github.com/symfony/WebProfilerBundle/blob/master/EventListener/WebDebugToolbarListener.php + * @static + */ + public static function injectDebugbar($response) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->injectDebugbar($response); + } + /** + * Disable the Debugbar + * + * @static + */ + public static function disable() + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->disable(); + } + /** + * Adds a measure + * + * @param string $label + * @param float $start + * @param float $end + * @static + */ + public static function addMeasure($label, $start, $end) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->addMeasure($label, $start, $end); + } + /** + * Utility function to measure the execution of a Closure + * + * @param string $label + * @param \Closure $closure + * @return mixed + * @static + */ + public static function measure($label, $closure) + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->measure($label, $closure); + } + /** + * Collect data in a CLI request + * + * @return array + * @static + */ + public static function collectConsole() + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->collectConsole(); + } + /** + * Adds a message to the MessagesCollector + * + * A message can be anything from an object to a string + * + * @param mixed $message + * @param string $label + * @static + */ + public static function addMessage($message, $label = 'info') + { + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->addMessage($message, $label); + } + /** + * Checks if a data collector has been added + * + * @param string $name + * @return boolean + * @static + */ + public static function hasCollector($name) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->hasCollector($name); + } + /** + * Returns a data collector + * + * @param string $name + * @return \DebugBar\DataCollectorInterface + * @throws DebugBarException + * @static + */ + public static function getCollector($name) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getCollector($name); + } + /** + * Returns an array of all data collectors + * + * @return \DebugBar\array[DataCollectorInterface] + * @static + */ + public static function getCollectors() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getCollectors(); + } + /** + * Sets the request id generator + * + * @param \DebugBar\RequestIdGeneratorInterface $generator + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static + */ + public static function setRequestIdGenerator($generator) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->setRequestIdGenerator($generator); + } + /** + * + * + * @return \DebugBar\RequestIdGeneratorInterface + * @static + */ + public static function getRequestIdGenerator() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getRequestIdGenerator(); + } + /** + * Returns the id of the current request + * + * @return string + * @static + */ + public static function getCurrentRequestId() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getCurrentRequestId(); + } + /** + * Sets the storage backend to use to store the collected data + * + * @param \DebugBar\StorageInterface $storage + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static + */ + public static function setStorage($storage = null) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->setStorage($storage); + } + /** + * + * + * @return \DebugBar\StorageInterface + * @static + */ + public static function getStorage() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getStorage(); + } + /** + * Checks if the data will be persisted + * + * @return boolean + * @static + */ + public static function isDataPersisted() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->isDataPersisted(); + } + /** + * Sets the HTTP driver + * + * @param \DebugBar\HttpDriverInterface $driver + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static + */ + public static function setHttpDriver($driver) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->setHttpDriver($driver); + } + /** + * Returns the HTTP driver + * + * If no http driver where defined, a PhpHttpDriver is automatically created + * + * @return \DebugBar\HttpDriverInterface + * @static + */ + public static function getHttpDriver() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getHttpDriver(); + } + /** + * Returns collected data + * + * Will collect the data if none have been collected yet + * + * @return array + * @static + */ + public static function getData() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getData(); + } + /** + * Returns an array of HTTP headers containing the data + * + * @param string $headerName + * @param integer $maxHeaderLength + * @return array + * @static + */ + public static function getDataAsHeaders($headerName = 'phpdebugbar', $maxHeaderLength = 4096, $maxTotalHeaderLength = 250000) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getDataAsHeaders($headerName, $maxHeaderLength, $maxTotalHeaderLength); + } + /** + * Sends the data through the HTTP headers + * + * @param bool $useOpenHandler + * @param string $headerName + * @param integer $maxHeaderLength + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static + */ + public static function sendDataInHeaders($useOpenHandler = null, $headerName = 'phpdebugbar', $maxHeaderLength = 4096) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->sendDataInHeaders($useOpenHandler, $headerName, $maxHeaderLength); + } + /** + * Stacks the data in the session for later rendering + * + * @static + */ + public static function stackData() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->stackData(); + } + /** + * Checks if there is stacked data in the session + * + * @return boolean + * @static + */ + public static function hasStackedData() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->hasStackedData(); + } + /** + * Returns the data stacked in the session + * + * @param boolean $delete Whether to delete the data in the session + * @return array + * @static + */ + public static function getStackedData($delete = true) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getStackedData($delete); + } + /** + * Sets the key to use in the $_SESSION array + * + * @param string $ns + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static + */ + public static function setStackDataSessionNamespace($ns) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->setStackDataSessionNamespace($ns); + } + /** + * Returns the key used in the $_SESSION array + * + * @return string + * @static + */ + public static function getStackDataSessionNamespace() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->getStackDataSessionNamespace(); + } + /** + * Sets whether to only use the session to store stacked data even + * if a storage is enabled + * + * @param boolean $enabled + * @return \Barryvdh\Debugbar\LaravelDebugbar + * @static + */ + public static function setStackAlwaysUseSessionStorage($enabled = true) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->setStackAlwaysUseSessionStorage($enabled); + } + /** + * Checks if the session is always used to store stacked data + * even if a storage is enabled + * + * @return boolean + * @static + */ + public static function isStackAlwaysUseSessionStorage() + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->isStackAlwaysUseSessionStorage(); + } + /** + * + * + * @static + */ + public static function offsetSet($key, $value) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->offsetSet($key, $value); + } + /** + * + * + * @static + */ + public static function offsetGet($key) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->offsetGet($key); + } + /** + * + * + * @static + */ + public static function offsetExists($key) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->offsetExists($key); + } + /** + * + * + * @static + */ + public static function offsetUnset($key) + { //Method inherited from \DebugBar\DebugBar + /** @var \Barryvdh\Debugbar\LaravelDebugbar $instance */ + return $instance->offsetUnset($key); + } + + } + +} + + namespace Barryvdh\DomPDF { + /** + * + * + */ + class Facade { + /** + * Get the DomPDF instance + * + * @return \Barryvdh\DomPDF\Dompdf + * @static + */ + public static function getDomPDF() + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->getDomPDF(); + } + /** + * Set the paper size (default A4) + * + * @param string $paper + * @param string $orientation + * @return \Barryvdh\DomPDF\PDF + * @static + */ + public static function setPaper($paper, $orientation = 'portrait') + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->setPaper($paper, $orientation); + } + /** + * Show or hide warnings + * + * @param bool $warnings + * @return \Barryvdh\DomPDF\PDF + * @static + */ + public static function setWarnings($warnings) + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->setWarnings($warnings); + } + /** + * Load a HTML string + * + * @param string $string + * @param string $encoding Not used yet + * @return static + * @static + */ + public static function loadHTML($string, $encoding = null) + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->loadHTML($string, $encoding); + } + /** + * Load a HTML file + * + * @param string $file + * @return static + * @static + */ + public static function loadFile($file) + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->loadFile($file); + } + /** + * Add metadata info + * + * @param array $info + * @return static + * @static + */ + public static function addInfo($info) + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->addInfo($info); + } + /** + * Load a View and convert to HTML + * + * @param string $view + * @param array $data + * @param array $mergeData + * @param string $encoding Not used yet + * @return static + * @static + */ + public static function loadView($view, $data = [], $mergeData = [], $encoding = null) + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->loadView($view, $data, $mergeData, $encoding); + } + /** + * Set/Change an option in DomPdf + * + * @param array $options + * @return static + * @static + */ + public static function setOptions($options) + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->setOptions($options); + } + /** + * Output the PDF as a string. + * + * @return string The rendered PDF as string + * @static + */ + public static function output() + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->output(); + } + /** + * Save the PDF to a file + * + * @param $filename + * @return static + * @static + */ + public static function save($filename) + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->save($filename); + } + /** + * Make the PDF downloadable by the user + * + * @param string $filename + * @return \Illuminate\Http\Response + * @static + */ + public static function download($filename = 'document.pdf') + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->download($filename); + } + /** + * Return a response with the PDF to show in the browser + * + * @param string $filename + * @return \Illuminate\Http\Response + * @static + */ + public static function stream($filename = 'document.pdf') + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->stream($filename); + } + /** + * + * + * @static + */ + public static function setEncryption($password) + { + /** @var \Barryvdh\DomPDF\PDF $instance */ + return $instance->setEncryption($password); + } + + } + +} + + namespace Gloudemans\Shoppingcart\Facades { + /** + * + * + */ + class Cart { + /** + * Set the current cart instance. + * + * @param string|null $instance + * @return \Gloudemans\Shoppingcart\Cart + * @static + */ + public static function instance($instance = null) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->instance($instance); + } + /** + * Get the current cart instance. + * + * @return string + * @static + */ + public static function currentInstance() + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->currentInstance(); + } + /** + * Add an item to the cart. + * + * @param mixed $id + * @param mixed $name + * @param int|float $qty + * @param float $price + * @param array $options + * @return \Gloudemans\Shoppingcart\CartItem + * @static + */ + public static function add($id, $name = null, $qty = null, $price = null, $taxRate = null, $options = []) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->add($id, $name, $qty, $price, $taxRate, $options); + } + /** + * Update the cart item with the given rowId. + * + * @param string $rowId + * @param mixed $qty + * @return \Gloudemans\Shoppingcart\CartItem + * @static + */ + public static function update($rowId, $qty) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->update($rowId, $qty); + } + /** + * Remove the cart item with the given rowId from the cart. + * + * @param string $rowId + * @return void + * @static + */ + public static function remove($rowId) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + $instance->remove($rowId); + } + /** + * Get a cart item from the cart by its rowId. + * + * @param string $rowId + * @return \Gloudemans\Shoppingcart\CartItem + * @static + */ + public static function get($rowId) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->get($rowId); + } + /** + * Destroy the current cart instance. + * + * @return void + * @static + */ + public static function destroy() + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + $instance->destroy(); + } + /** + * Get the content of the cart. + * + * @return \Illuminate\Support\Collection + * @static + */ + public static function content() + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->content(); + } + /** + * Get the number of items in the cart. + * + * @return int|float + * @static + */ + public static function count() + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->count(); + } + /** + * Get the total price of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return string + * @static + */ + public static function total($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withFees = true) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->total($decimals, $decimalPoint, $thousandSeperator, $withFees); + } + /** + * Get the total tax of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + * @static + */ + public static function tax($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withFees = true) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->tax($decimals, $decimalPoint, $thousandSeperator, $withFees); + } + /** + * Get the total tax of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + * @static + */ + public static function feeTax($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->feeTax($decimals, $decimalPoint, $thousandSeperator); + } + /** + * Get the subtotal (total - tax) of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + * @static + */ + public static function subtotal($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->subtotal($decimals, $decimalPoint, $thousandSeperator); + } + /** + * Get the subtotal (total - tax) of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + * @static + */ + public static function subtotalTax($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->subtotalTax($decimals, $decimalPoint, $thousandSeperator); + } + /** + * Search the cart content for a cart item matching the given search closure. + * + * @param \Closure $search + * @return \Illuminate\Support\Collection + * @static + */ + public static function search($search) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->search($search); + } + /** + * Associate the cart item with the given rowId with the given model. + * + * @param string $rowId + * @param mixed $model + * @return void + * @static + */ + public static function associate($rowId, $model) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + $instance->associate($rowId, $model); + } + /** + * Set the tax rate for the cart item with the given rowId. + * + * @param string $rowId + * @param int|float $taxRate + * @return void + * @static + */ + public static function setTax($rowId, $taxRate) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + $instance->setTax($rowId, $taxRate); + } + /** + * Store an the current instance of the cart. + * + * @param mixed $identifier + * @return void + * @static + */ + public static function store($identifier) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + $instance->store($identifier); + } + /** + * Restore the cart with the given identifier. + * + * @param mixed $identifier + * @return void + * @static + */ + public static function restore($identifier) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + $instance->restore($identifier); + } + /** + * Gets a specific fee from the fees array. + * + * @param $name + * @return mixed + * @static + */ + public static function getFee($name) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->getFee($name); + } + /** + * Allows to charge for additional fees that may or may not be taxable + * ex - service fee , delivery fee, tips. + * + * Because it uses ->put, the name must be unique otherwise will be overwritten. + * + * @param $name + * @param $amount + * @param $taxRate + * @param array $options + * @static + */ + public static function addFee($name, $amount, $taxRate = null, $options = []) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->addFee($name, $amount, $taxRate, $options); + } + /** + * Removes a fee from the fee array. + * + * @todo test to see if i need to restore this + * @param $name + * @static + */ + public static function removeFee($name) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->removeFee($name); + } + /** + * Removes all the fees set in the cart. + * + * @static + */ + public static function removeFees() + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->removeFees(); + } + /** + * Gets all the fee totals. + * + * @param bool $format + * @param bool $withTax + * @return string + * @static + */ + public static function feeTotal($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withTax = true) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->feeTotal($decimals, $decimalPoint, $thousandSeperator, $withTax); + } + /** + * Gets all the fees on the cart object. + * + * @return mixed + * @static + */ + public static function getFees() + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->getFees(); + } + /** + * + * + * @return array + * @static + */ + public static function toArray() + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->toArray(); + } + /** + * + * + * @param $array + * @return \Gloudemans\Shoppingcart\Cart + * @static + */ + public static function fromArray($array) + { + /** @var \Gloudemans\Shoppingcart\Cart $instance */ + return $instance->fromArray($array); + } + + } + +} + + namespace Facade\Ignition\Facades { + /** + * Class Flare. + * + * @see \Facade\FlareClient\Flare + */ + class Flare { + /** + * + * + * @static + */ + public static function register($apiKey, $apiSecret = null, $contextDetector = null, $container = null) + { + return \Facade\FlareClient\Flare::register($apiKey, $apiSecret, $contextDetector, $container); + } + /** + * + * + * @static + */ + public static function getMiddleware() + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->getMiddleware(); + } + /** + * + * + * @static + */ + public static function registerFlareHandlers() + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->registerFlareHandlers(); + } + /** + * + * + * @static + */ + public static function registerExceptionHandler() + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->registerExceptionHandler(); + } + /** + * + * + * @static + */ + public static function registerErrorHandler() + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->registerErrorHandler(); + } + /** + * + * + * @static + */ + public static function registerMiddleware($callable) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->registerMiddleware($callable); + } + /** + * + * + * @static + */ + public static function getMiddlewares() + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->getMiddlewares(); + } + /** + * + * + * @static + */ + public static function glow($name, $messageLevel = 'info', $metaData = []) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->glow($name, $messageLevel, $metaData); + } + /** + * + * + * @static + */ + public static function handleException($throwable) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->handleException($throwable); + } + /** + * + * + * @static + */ + public static function handleError($code, $message, $file = '', $line = 0) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->handleError($code, $message, $file, $line); + } + /** + * + * + * @static + */ + public static function applicationPath($applicationPath) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->applicationPath($applicationPath); + } + /** + * + * + * @static + */ + public static function report($throwable, $callback = null) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->report($throwable, $callback); + } + /** + * + * + * @static + */ + public static function reportMessage($message, $logLevel, $callback = null) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->reportMessage($message, $logLevel, $callback); + } + /** + * + * + * @static + */ + public static function sendTestReport($throwable) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->sendTestReport($throwable); + } + /** + * + * + * @static + */ + public static function reset() + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->reset(); + } + /** + * + * + * @static + */ + public static function anonymizeIp() + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->anonymizeIp(); + } + /** + * + * + * @static + */ + public static function createReport($throwable) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->createReport($throwable); + } + /** + * + * + * @static + */ + public static function createReportFromMessage($message, $logLevel) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->createReportFromMessage($message, $logLevel); + } + /** + * + * + * @static + */ + public static function stage($stage) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->stage($stage); + } + /** + * + * + * @static + */ + public static function messageLevel($messageLevel) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->messageLevel($messageLevel); + } + /** + * + * + * @static + */ + public static function getGroup($groupName = 'context', $default = []) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->getGroup($groupName, $default); + } + /** + * + * + * @static + */ + public static function context($key, $value) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->context($key, $value); + } + /** + * + * + * @static + */ + public static function group($groupName, $properties) + { + /** @var \Facade\FlareClient\Flare $instance */ + return $instance->group($groupName, $properties); + } + + } + +} + + namespace Laracasts\Flash { + /** + * + * + */ + class Flash { + /** + * Flash an information message. + * + * @param string|null $message + * @return \Laracasts\Flash\FlashNotifier + * @static + */ + public static function info($message = null) + { + /** @var \Laracasts\Flash\FlashNotifier $instance */ + return $instance->info($message); + } + /** + * Flash a success message. + * + * @param string|null $message + * @return \Laracasts\Flash\FlashNotifier + * @static + */ + public static function success($message = null) + { + /** @var \Laracasts\Flash\FlashNotifier $instance */ + return $instance->success($message); + } + /** + * Flash an error message. + * + * @param string|null $message + * @return \Laracasts\Flash\FlashNotifier + * @static + */ + public static function error($message = null) + { + /** @var \Laracasts\Flash\FlashNotifier $instance */ + return $instance->error($message); + } + /** + * Flash a warning message. + * + * @param string|null $message + * @return \Laracasts\Flash\FlashNotifier + * @static + */ + public static function warning($message = null) + { + /** @var \Laracasts\Flash\FlashNotifier $instance */ + return $instance->warning($message); + } + /** + * Flash a general message. + * + * @param string|null $message + * @param string|null $level + * @return \Laracasts\Flash\FlashNotifier + * @static + */ + public static function message($message = null, $level = null) + { + /** @var \Laracasts\Flash\FlashNotifier $instance */ + return $instance->message($message, $level); + } + /** + * Flash an overlay modal. + * + * @param string|null $message + * @param string $title + * @return \Laracasts\Flash\FlashNotifier + * @static + */ + public static function overlay($message = null, $title = 'Notice') + { + /** @var \Laracasts\Flash\FlashNotifier $instance */ + return $instance->overlay($message, $title); + } + /** + * Add an "important" flash to the session. + * + * @return \Laracasts\Flash\FlashNotifier + * @static + */ + public static function important() + { + /** @var \Laracasts\Flash\FlashNotifier $instance */ + return $instance->important(); + } + /** + * Clear all registered messages. + * + * @return \Laracasts\Flash\FlashNotifier + * @static + */ + public static function clear() + { + /** @var \Laracasts\Flash\FlashNotifier $instance */ + return $instance->clear(); + } + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Laracasts\Flash\FlashNotifier::macro($name, $macro); + } + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Laracasts\Flash\FlashNotifier::mixin($mixin, $replace); + } + /** + * Checks if macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + return \Laracasts\Flash\FlashNotifier::hasMacro($name); + } + + } + +} + + namespace Illuminate\Http { + /** + * + * + */ + class Request { + /** + * + * + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param array $rules + * @param mixed $params + * @static + */ + public static function validate($rules, ...$params) + { + return \Illuminate\Http\Request::validate($rules, ...$params); + } + /** + * + * + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestValidation() + * @param string $errorBag + * @param array $rules + * @param mixed $params + * @static + */ + public static function validateWithBag($errorBag, $rules, ...$params) + { + return \Illuminate\Http\Request::validateWithBag($errorBag, $rules, ...$params); + } + /** + * + * + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @param mixed $absolute + * @static + */ + public static function hasValidSignature($absolute = true) + { + return \Illuminate\Http\Request::hasValidSignature($absolute); + } + /** + * + * + * @see \Illuminate\Foundation\Providers\FoundationServiceProvider::registerRequestSignatureValidation() + * @static + */ + public static function hasValidRelativeSignature() + { + return \Illuminate\Http\Request::hasValidRelativeSignature(); + } + + } + +} + + namespace Illuminate\Routing { + /** + * + * + * @mixin \Illuminate\Routing\RouteRegistrar + */ + class Router { + /** + * + * + * @see \Laravel\Ui\AuthRouteMethods::auth() + * @param mixed $options + * @static + */ + public static function auth($options = []) + { + return \Illuminate\Routing\Router::auth($options); + } + /** + * + * + * @see \Laravel\Ui\AuthRouteMethods::resetPassword() + * @static + */ + public static function resetPassword() + { + return \Illuminate\Routing\Router::resetPassword(); + } + /** + * + * + * @see \Laravel\Ui\AuthRouteMethods::confirmPassword() + * @static + */ + public static function confirmPassword() + { + return \Illuminate\Routing\Router::confirmPassword(); + } + /** + * + * + * @see \Laravel\Ui\AuthRouteMethods::emailVerification() + * @static + */ + public static function emailVerification() + { + return \Illuminate\Routing\Router::emailVerification(); + } + + } + +} + + +namespace { + class App extends \Illuminate\Support\Facades\App {} + class Arr extends \Illuminate\Support\Arr {} + class Artisan extends \Illuminate\Support\Facades\Artisan {} + class Auth extends \Illuminate\Support\Facades\Auth {} + class Blade extends \Illuminate\Support\Facades\Blade {} + class Broadcast extends \Illuminate\Support\Facades\Broadcast {} + class Bus extends \Illuminate\Support\Facades\Bus {} + class Cache extends \Illuminate\Support\Facades\Cache {} + class Config extends \Illuminate\Support\Facades\Config {} + class Cookie extends \Illuminate\Support\Facades\Cookie {} + class Crypt extends \Illuminate\Support\Facades\Crypt {} + class DB extends \Illuminate\Support\Facades\DB {} + class Eloquent extends \Illuminate\Database\Eloquent\Model { + /** + * Create and return an un-saved model instance. + * + * @param array $attributes + * @return \Illuminate\Database\Eloquent\Model|static + * @static + */ + public static function make($attributes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->make($attributes); + } + + /** + * Register a new global scope. + * + * @param string $identifier + * @param \Illuminate\Database\Eloquent\Scope|\Closure $scope + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withGlobalScope($identifier, $scope) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withGlobalScope($identifier, $scope); + } + + /** + * Remove a registered global scope. + * + * @param \Illuminate\Database\Eloquent\Scope|string $scope + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withoutGlobalScope($scope) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withoutGlobalScope($scope); + } + + /** + * Remove all or passed registered global scopes. + * + * @param array|null $scopes + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withoutGlobalScopes($scopes = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withoutGlobalScopes($scopes); + } + + /** + * Get an array of global scopes that were removed from the query. + * + * @return array + * @static + */ + public static function removedScopes() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->removedScopes(); + } + + /** + * Add a where clause on the primary key to the query. + * + * @param mixed $id + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function whereKey($id) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereKey($id); + } + + /** + * Add a where clause on the primary key to the query. + * + * @param mixed $id + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function whereKeyNot($id) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereKeyNot($id); + } + + /** + * Add a basic where clause to the query. + * + * @param \Closure|string|array|\Illuminate\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function where($column, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->where($column, $operator, $value, $boolean); + } + + /** + * Add a basic where clause to the query, and return the first result. + * + * @param \Closure|string|array|\Illuminate\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Eloquent\Model|static + * @static + */ + public static function firstWhere($column, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstWhere($column, $operator, $value, $boolean); + } + + /** + * Add an "or where" clause to the query. + * + * @param \Closure|array|string|\Illuminate\Database\Query\Expression $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orWhere($column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhere($column, $operator, $value); + } + + /** + * Add an "order by" clause for a timestamp to the query. + * + * @param string|\Illuminate\Database\Query\Expression $column + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function latest($column = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->latest($column); + } + + /** + * Add an "order by" clause for a timestamp to the query. + * + * @param string|\Illuminate\Database\Query\Expression $column + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function oldest($column = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->oldest($column); + } + + /** + * Create a collection of models from plain arrays. + * + * @param array $items + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function hydrate($items) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->hydrate($items); + } + + /** + * Create a collection of models from a raw query. + * + * @param string $query + * @param array $bindings + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function fromQuery($query, $bindings = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->fromQuery($query, $bindings); + } + + /** + * Find a model by its primary key. + * + * @param mixed $id + * @param array $columns + * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null + * @static + */ + public static function find($id, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->find($id, $columns); + } + + /** + * Find multiple models by their primary keys. + * + * @param \Illuminate\Contracts\Support\Arrayable|array $ids + * @param array $columns + * @return \Illuminate\Database\Eloquent\Collection + * @static + */ + public static function findMany($ids, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->findMany($ids, $columns); + } + + /** + * Find a model by its primary key or throw an exception. + * + * @param mixed $id + * @param array $columns + * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static|static[] + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @static + */ + public static function findOrFail($id, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->findOrFail($id, $columns); + } + + /** + * Find a model by its primary key or return fresh model instance. + * + * @param mixed $id + * @param array $columns + * @return \Illuminate\Database\Eloquent\Model|static + * @static + */ + public static function findOrNew($id, $columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->findOrNew($id, $columns); + } + + /** + * Get the first record matching the attributes or instantiate it. + * + * @param array $attributes + * @param array $values + * @return \Illuminate\Database\Eloquent\Model|static + * @static + */ + public static function firstOrNew($attributes = [], $values = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstOrNew($attributes, $values); + } + + /** + * Get the first record matching the attributes or create it. + * + * @param array $attributes + * @param array $values + * @return \Illuminate\Database\Eloquent\Model|static + * @static + */ + public static function firstOrCreate($attributes = [], $values = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstOrCreate($attributes, $values); + } + + /** + * Create or update a record matching the attributes, and fill it with values. + * + * @param array $attributes + * @param array $values + * @return \Illuminate\Database\Eloquent\Model|static + * @static + */ + public static function updateOrCreate($attributes, $values = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->updateOrCreate($attributes, $values); + } + + /** + * Execute the query and get the first result or throw an exception. + * + * @param array $columns + * @return \Illuminate\Database\Eloquent\Model|static + * @throws \Illuminate\Database\Eloquent\ModelNotFoundException + * @static + */ + public static function firstOrFail($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstOrFail($columns); + } + + /** + * Execute the query and get the first result or call a callback. + * + * @param \Closure|array $columns + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Model|static|mixed + * @static + */ + public static function firstOr($columns = [], $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->firstOr($columns, $callback); + } + + /** + * Get a single column's value from the first result of a query. + * + * @param string|\Illuminate\Database\Query\Expression $column + * @return mixed + * @static + */ + public static function value($column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->value($column); + } + + /** + * Execute the query as a "select" statement. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Collection|static[] + * @static + */ + public static function get($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->get($columns); + } + + /** + * Get the hydrated models without eager loading. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Model[]|static[] + * @static + */ + public static function getModels($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getModels($columns); + } + + /** + * Eager load the relationships for the models. + * + * @param array $models + * @return array + * @static + */ + public static function eagerLoadRelations($models) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->eagerLoadRelations($models); + } + + /** + * Get a lazy collection for the given query. + * + * @return \Illuminate\Support\LazyCollection + * @static + */ + public static function cursor() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->cursor(); + } + + /** + * Get an array with the values of a given column. + * + * @param string|\Illuminate\Database\Query\Expression $column + * @param string|null $key + * @return \Illuminate\Support\Collection + * @static + */ + public static function pluck($column, $key = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->pluck($column, $key); + } + + /** + * Paginate the given query. + * + * @param int|null $perPage + * @param array $columns + * @param string $pageName + * @param int|null $page + * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator + * @throws \InvalidArgumentException + * @static + */ + public static function paginate($perPage = null, $columns = [], $pageName = 'page', $page = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->paginate($perPage, $columns, $pageName, $page); + } + + /** + * Paginate the given query into a simple paginator. + * + * @param int|null $perPage + * @param array $columns + * @param string $pageName + * @param int|null $page + * @return \Illuminate\Contracts\Pagination\Paginator + * @static + */ + public static function simplePaginate($perPage = null, $columns = [], $pageName = 'page', $page = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->simplePaginate($perPage, $columns, $pageName, $page); + } + + /** + * Save a new model and return the instance. + * + * @param array $attributes + * @return \Illuminate\Database\Eloquent\Model|$this + * @static + */ + public static function create($attributes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->create($attributes); + } + + /** + * Save a new model and return the instance. Allow mass-assignment. + * + * @param array $attributes + * @return \Illuminate\Database\Eloquent\Model|$this + * @static + */ + public static function forceCreate($attributes) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->forceCreate($attributes); + } + + /** + * Insert new records or update the existing ones. + * + * @param array $values + * @param array|string $uniqueBy + * @param array|null $update + * @return int + * @static + */ + public static function upsert($values, $uniqueBy, $update = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->upsert($values, $uniqueBy, $update); + } + + /** + * Register a replacement for the default delete function. + * + * @param \Closure $callback + * @return void + * @static + */ + public static function onDelete($callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + $instance->onDelete($callback); + } + + /** + * Call the given local model scopes. + * + * @param array|string $scopes + * @return static|mixed + * @static + */ + public static function scopes($scopes) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->scopes($scopes); + } + + /** + * Apply the scopes to the Eloquent builder instance and return it. + * + * @return static + * @static + */ + public static function applyScopes() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->applyScopes(); + } + + /** + * Prevent the specified relations from being eager loaded. + * + * @param mixed $relations + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function without($relations) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->without($relations); + } + + /** + * Create a new instance of the model being queried. + * + * @param array $attributes + * @return \Illuminate\Database\Eloquent\Model|static + * @static + */ + public static function newModelInstance($attributes = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->newModelInstance($attributes); + } + + /** + * Apply query-time casts to the model instance. + * + * @param array $casts + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withCasts($casts) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withCasts($casts); + } + + /** + * Get the underlying query builder instance. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function getQuery() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getQuery(); + } + + /** + * Set the underlying query builder instance. + * + * @param \Illuminate\Database\Query\Builder $query + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function setQuery($query) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->setQuery($query); + } + + /** + * Get a base query builder instance. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function toBase() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->toBase(); + } + + /** + * Get the relationships being eagerly loaded. + * + * @return array + * @static + */ + public static function getEagerLoads() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getEagerLoads(); + } + + /** + * Set the relationships being eagerly loaded. + * + * @param array $eagerLoad + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function setEagerLoads($eagerLoad) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->setEagerLoads($eagerLoad); + } + + /** + * Get the model instance being queried. + * + * @return \Illuminate\Database\Eloquent\Model|static + * @static + */ + public static function getModel() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getModel(); + } + + /** + * Set a model instance for the model being queried. + * + * @param \Illuminate\Database\Eloquent\Model $model + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function setModel($model) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->setModel($model); + } + + /** + * Get the given macro by name. + * + * @param string $name + * @return \Closure + * @static + */ + public static function getMacro($name) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->getMacro($name); + } + + /** + * Checks if a macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasMacro($name) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->hasMacro($name); + } + + /** + * Get the given global macro by name. + * + * @param string $name + * @return \Closure + * @static + */ + public static function getGlobalMacro($name) + { + return \Illuminate\Database\Eloquent\Builder::getGlobalMacro($name); + } + + /** + * Checks if a global macro is registered. + * + * @param string $name + * @return bool + * @static + */ + public static function hasGlobalMacro($name) + { + return \Illuminate\Database\Eloquent\Builder::hasGlobalMacro($name); + } + + /** + * Chunk the results of the query. + * + * @param int $count + * @param callable $callback + * @return bool + * @static + */ + public static function chunk($count, $callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->chunk($count, $callback); + } + + /** + * Execute a callback over each item while chunking. + * + * @param callable $callback + * @param int $count + * @return bool + * @static + */ + public static function each($callback, $count = 1000) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->each($callback, $count); + } + + /** + * Chunk the results of a query by comparing IDs. + * + * @param int $count + * @param callable $callback + * @param string|null $column + * @param string|null $alias + * @return bool + * @static + */ + public static function chunkById($count, $callback, $column = null, $alias = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->chunkById($count, $callback, $column, $alias); + } + + /** + * Execute a callback over each item while chunking by ID. + * + * @param callable $callback + * @param int $count + * @param string|null $column + * @param string|null $alias + * @return bool + * @static + */ + public static function eachById($callback, $count = 1000, $column = null, $alias = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->eachById($callback, $count, $column, $alias); + } + + /** + * Execute the query and get the first result. + * + * @param array|string $columns + * @return \Illuminate\Database\Eloquent\Model|object|static|null + * @static + */ + public static function first($columns = []) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->first($columns); + } + + /** + * Apply the callback's query changes if the given "value" is true. + * + * @param mixed $value + * @param callable $callback + * @param callable|null $default + * @return mixed|$this + * @static + */ + public static function when($value, $callback, $default = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->when($value, $callback, $default); + } + + /** + * Pass the query to a given callback. + * + * @param callable $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function tap($callback) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->tap($callback); + } + + /** + * Apply the callback's query changes if the given "value" is false. + * + * @param mixed $value + * @param callable $callback + * @param callable|null $default + * @return mixed|$this + * @static + */ + public static function unless($value, $callback, $default = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->unless($value, $callback, $default); + } + + /** + * Add a relationship count / exists condition to the query. + * + * @param \Illuminate\Database\Eloquent\Relations\Relation|string $relation + * @param string $operator + * @param int $count + * @param string $boolean + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @throws \RuntimeException + * @static + */ + public static function has($relation, $operator = '>=', $count = 1, $boolean = 'and', $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->has($relation, $operator, $count, $boolean, $callback); + } + + /** + * Add a relationship count / exists condition to the query with an "or". + * + * @param string $relation + * @param string $operator + * @param int $count + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orHas($relation, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orHas($relation, $operator, $count); + } + + /** + * Add a relationship count / exists condition to the query. + * + * @param string $relation + * @param string $boolean + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function doesntHave($relation, $boolean = 'and', $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->doesntHave($relation, $boolean, $callback); + } + + /** + * Add a relationship count / exists condition to the query with an "or". + * + * @param string $relation + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orDoesntHave($relation) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orDoesntHave($relation); + } + + /** + * Add a relationship count / exists condition to the query with where clauses. + * + * @param string $relation + * @param \Closure|null $callback + * @param string $operator + * @param int $count + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function whereHas($relation, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereHas($relation, $callback, $operator, $count); + } + + /** + * Add a relationship count / exists condition to the query with where clauses and an "or". + * + * @param string $relation + * @param \Closure|null $callback + * @param string $operator + * @param int $count + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orWhereHas($relation, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereHas($relation, $callback, $operator, $count); + } + + /** + * Add a relationship count / exists condition to the query with where clauses. + * + * @param string $relation + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function whereDoesntHave($relation, $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereDoesntHave($relation, $callback); + } + + /** + * Add a relationship count / exists condition to the query with where clauses and an "or". + * + * @param string $relation + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orWhereDoesntHave($relation, $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereDoesntHave($relation, $callback); + } + + /** + * Add a polymorphic relationship count / exists condition to the query. + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param string $operator + * @param int $count + * @param string $boolean + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function hasMorph($relation, $types, $operator = '>=', $count = 1, $boolean = 'and', $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->hasMorph($relation, $types, $operator, $count, $boolean, $callback); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with an "or". + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param string $operator + * @param int $count + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orHasMorph($relation, $types, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orHasMorph($relation, $types, $operator, $count); + } + + /** + * Add a polymorphic relationship count / exists condition to the query. + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param string $boolean + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function doesntHaveMorph($relation, $types, $boolean = 'and', $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->doesntHaveMorph($relation, $types, $boolean, $callback); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with an "or". + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orDoesntHaveMorph($relation, $types) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orDoesntHaveMorph($relation, $types); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with where clauses. + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param \Closure|null $callback + * @param string $operator + * @param int $count + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function whereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereHasMorph($relation, $types, $callback, $operator, $count); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with where clauses and an "or". + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param \Closure|null $callback + * @param string $operator + * @param int $count + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orWhereHasMorph($relation, $types, $callback = null, $operator = '>=', $count = 1) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereHasMorph($relation, $types, $callback, $operator, $count); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with where clauses. + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function whereDoesntHaveMorph($relation, $types, $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->whereDoesntHaveMorph($relation, $types, $callback); + } + + /** + * Add a polymorphic relationship count / exists condition to the query with where clauses and an "or". + * + * @param \Illuminate\Database\Eloquent\Relations\MorphTo|string $relation + * @param string|array $types + * @param \Closure|null $callback + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function orWhereDoesntHaveMorph($relation, $types, $callback = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->orWhereDoesntHaveMorph($relation, $types, $callback); + } + + /** + * Add subselect queries to include an aggregate value for a relationship. + * + * @param mixed $relations + * @param string $column + * @param string $function + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withAggregate($relations, $column, $function = null) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withAggregate($relations, $column, $function); + } + + /** + * Add subselect queries to count the relations. + * + * @param mixed $relations + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withCount($relations) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withCount($relations); + } + + /** + * Add subselect queries to include the max of the relation's column. + * + * @param string|array $relation + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withMax($relation, $column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withMax($relation, $column); + } + + /** + * Add subselect queries to include the min of the relation's column. + * + * @param string|array $relation + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withMin($relation, $column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withMin($relation, $column); + } + + /** + * Add subselect queries to include the sum of the relation's column. + * + * @param string|array $relation + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withSum($relation, $column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withSum($relation, $column); + } + + /** + * Add subselect queries to include the average of the relation's column. + * + * @param string|array $relation + * @param string $column + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function withAvg($relation, $column) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->withAvg($relation, $column); + } + + /** + * Merge the where constraints from another query to the current query. + * + * @param \Illuminate\Database\Eloquent\Builder $from + * @return \Illuminate\Database\Eloquent\Builder|static + * @static + */ + public static function mergeConstraintsFrom($from) + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->mergeConstraintsFrom($from); + } + + /** + * Explains the query. + * + * @return \Illuminate\Support\Collection + * @static + */ + public static function explain() + { + /** @var \Illuminate\Database\Eloquent\Builder $instance */ + return $instance->explain(); + } + + /** + * Set the columns to be selected. + * + * @param array|mixed $columns + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function select($columns = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->select($columns); + } + + /** + * Add a subselect expression to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|string $query + * @param string $as + * @return \Illuminate\Database\Query\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function selectSub($query, $as) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->selectSub($query, $as); + } + + /** + * Add a new "raw" select expression to the query. + * + * @param string $expression + * @param array $bindings + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function selectRaw($expression, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->selectRaw($expression, $bindings); + } + + /** + * Makes "from" fetch from a subquery. + * + * @param \Closure|\Illuminate\Database\Query\Builder|string $query + * @param string $as + * @return \Illuminate\Database\Query\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function fromSub($query, $as) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->fromSub($query, $as); + } + + /** + * Add a raw from clause to the query. + * + * @param string $expression + * @param mixed $bindings + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function fromRaw($expression, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->fromRaw($expression, $bindings); + } + + /** + * Add a new select column to the query. + * + * @param array|mixed $column + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function addSelect($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addSelect($column); + } + + /** + * Force the query to only return distinct results. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function distinct() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->distinct(); + } + + /** + * Set the table which the query is targeting. + * + * @param \Closure|\Illuminate\Database\Query\Builder|string $table + * @param string|null $as + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function from($table, $as = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->from($table, $as); + } + + /** + * Add a join clause to the query. + * + * @param string $table + * @param \Closure|string $first + * @param string|null $operator + * @param string|null $second + * @param string $type + * @param bool $where + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->join($table, $first, $operator, $second, $type, $where); + } + + /** + * Add a "join where" clause to the query. + * + * @param string $table + * @param \Closure|string $first + * @param string $operator + * @param string $second + * @param string $type + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function joinWhere($table, $first, $operator, $second, $type = 'inner') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->joinWhere($table, $first, $operator, $second, $type); + } + + /** + * Add a subquery join clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|string $query + * @param string $as + * @param \Closure|string $first + * @param string|null $operator + * @param string|null $second + * @param string $type + * @param bool $where + * @return \Illuminate\Database\Query\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function joinSub($query, $as, $first, $operator = null, $second = null, $type = 'inner', $where = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->joinSub($query, $as, $first, $operator, $second, $type, $where); + } + + /** + * Add a left join to the query. + * + * @param string $table + * @param \Closure|string $first + * @param string|null $operator + * @param string|null $second + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function leftJoin($table, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->leftJoin($table, $first, $operator, $second); + } + + /** + * Add a "join where" clause to the query. + * + * @param string $table + * @param \Closure|string $first + * @param string $operator + * @param string $second + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function leftJoinWhere($table, $first, $operator, $second) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->leftJoinWhere($table, $first, $operator, $second); + } + + /** + * Add a subquery left join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|string $query + * @param string $as + * @param \Closure|string $first + * @param string|null $operator + * @param string|null $second + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function leftJoinSub($query, $as, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->leftJoinSub($query, $as, $first, $operator, $second); + } + + /** + * Add a right join to the query. + * + * @param string $table + * @param \Closure|string $first + * @param string|null $operator + * @param string|null $second + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function rightJoin($table, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->rightJoin($table, $first, $operator, $second); + } + + /** + * Add a "right join where" clause to the query. + * + * @param string $table + * @param \Closure|string $first + * @param string $operator + * @param string $second + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function rightJoinWhere($table, $first, $operator, $second) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->rightJoinWhere($table, $first, $operator, $second); + } + + /** + * Add a subquery right join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|string $query + * @param string $as + * @param \Closure|string $first + * @param string|null $operator + * @param string|null $second + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function rightJoinSub($query, $as, $first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->rightJoinSub($query, $as, $first, $operator, $second); + } + + /** + * Add a "cross join" clause to the query. + * + * @param string $table + * @param \Closure|string|null $first + * @param string|null $operator + * @param string|null $second + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function crossJoin($table, $first = null, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->crossJoin($table, $first, $operator, $second); + } + + /** + * Add a subquery cross join to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|string $query + * @param string $as + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function crossJoinSub($query, $as) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->crossJoinSub($query, $as); + } + + /** + * Merge an array of where clauses and bindings. + * + * @param array $wheres + * @param array $bindings + * @return void + * @static + */ + public static function mergeWheres($wheres, $bindings) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + $instance->mergeWheres($wheres, $bindings); + } + + /** + * Prepare the value and operator for a where clause. + * + * @param string $value + * @param string $operator + * @param bool $useDefault + * @return array + * @throws \InvalidArgumentException + * @static + */ + public static function prepareValueAndOperator($value, $operator, $useDefault = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->prepareValueAndOperator($value, $operator, $useDefault); + } + + /** + * Add a "where" clause comparing two columns to the query. + * + * @param string|array $first + * @param string|null $operator + * @param string|null $second + * @param string|null $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereColumn($first, $operator = null, $second = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereColumn($first, $operator, $second, $boolean); + } + + /** + * Add an "or where" clause comparing two columns to the query. + * + * @param string|array $first + * @param string|null $operator + * @param string|null $second + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereColumn($first, $operator = null, $second = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereColumn($first, $operator, $second); + } + + /** + * Add a raw where clause to the query. + * + * @param string $sql + * @param mixed $bindings + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereRaw($sql, $bindings = [], $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereRaw($sql, $bindings, $boolean); + } + + /** + * Add a raw or where clause to the query. + * + * @param string $sql + * @param mixed $bindings + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereRaw($sql, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereRaw($sql, $bindings); + } + + /** + * Add a "where in" clause to the query. + * + * @param string $column + * @param mixed $values + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereIn($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereIn($column, $values, $boolean, $not); + } + + /** + * Add an "or where in" clause to the query. + * + * @param string $column + * @param mixed $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereIn($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereIn($column, $values); + } + + /** + * Add a "where not in" clause to the query. + * + * @param string $column + * @param mixed $values + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereNotIn($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotIn($column, $values, $boolean); + } + + /** + * Add an "or where not in" clause to the query. + * + * @param string $column + * @param mixed $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereNotIn($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotIn($column, $values); + } + + /** + * Add a "where in raw" clause for integer values to the query. + * + * @param string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereIntegerInRaw($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereIntegerInRaw($column, $values, $boolean, $not); + } + + /** + * Add an "or where in raw" clause for integer values to the query. + * + * @param string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereIntegerInRaw($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereIntegerInRaw($column, $values); + } + + /** + * Add a "where not in raw" clause for integer values to the query. + * + * @param string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereIntegerNotInRaw($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereIntegerNotInRaw($column, $values, $boolean); + } + + /** + * Add an "or where not in raw" clause for integer values to the query. + * + * @param string $column + * @param \Illuminate\Contracts\Support\Arrayable|array $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereIntegerNotInRaw($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereIntegerNotInRaw($column, $values); + } + + /** + * Add a "where null" clause to the query. + * + * @param string|array $columns + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereNull($columns, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNull($columns, $boolean, $not); + } + + /** + * Add an "or where null" clause to the query. + * + * @param string $column + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereNull($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNull($column); + } + + /** + * Add a "where not null" clause to the query. + * + * @param string|array $columns + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereNotNull($columns, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotNull($columns, $boolean); + } + + /** + * Add a where between statement to the query. + * + * @param string|\Illuminate\Database\Query\Expression $column + * @param array $values + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereBetween($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereBetween($column, $values, $boolean, $not); + } + + /** + * Add a where between statement using columns to the query. + * + * @param string $column + * @param array $values + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereBetweenColumns($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereBetweenColumns($column, $values, $boolean, $not); + } + + /** + * Add an or where between statement to the query. + * + * @param string $column + * @param array $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereBetween($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereBetween($column, $values); + } + + /** + * Add an or where between statement using columns to the query. + * + * @param string $column + * @param array $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereBetweenColumns($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereBetweenColumns($column, $values); + } + + /** + * Add a where not between statement to the query. + * + * @param string $column + * @param array $values + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereNotBetween($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotBetween($column, $values, $boolean); + } + + /** + * Add a where not between statement using columns to the query. + * + * @param string $column + * @param array $values + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereNotBetweenColumns($column, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotBetweenColumns($column, $values, $boolean); + } + + /** + * Add an or where not between statement to the query. + * + * @param string $column + * @param array $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereNotBetween($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotBetween($column, $values); + } + + /** + * Add an or where not between statement using columns to the query. + * + * @param string $column + * @param array $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereNotBetweenColumns($column, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotBetweenColumns($column, $values); + } + + /** + * Add an "or where not null" clause to the query. + * + * @param string $column + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereNotNull($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotNull($column); + } + + /** + * Add a "where date" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|null $value + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereDate($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereDate($column, $operator, $value, $boolean); + } + + /** + * Add an "or where date" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|null $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereDate($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereDate($column, $operator, $value); + } + + /** + * Add a "where time" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|null $value + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereTime($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereTime($column, $operator, $value, $boolean); + } + + /** + * Add an "or where time" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|null $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereTime($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereTime($column, $operator, $value); + } + + /** + * Add a "where day" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|null $value + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereDay($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereDay($column, $operator, $value, $boolean); + } + + /** + * Add an "or where day" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|null $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereDay($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereDay($column, $operator, $value); + } + + /** + * Add a "where month" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|null $value + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereMonth($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereMonth($column, $operator, $value, $boolean); + } + + /** + * Add an "or where month" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|null $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereMonth($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereMonth($column, $operator, $value); + } + + /** + * Add a "where year" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|int|null $value + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereYear($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereYear($column, $operator, $value, $boolean); + } + + /** + * Add an "or where year" statement to the query. + * + * @param string $column + * @param string $operator + * @param \DateTimeInterface|string|int|null $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereYear($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereYear($column, $operator, $value); + } + + /** + * Add a nested where statement to the query. + * + * @param \Closure $callback + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereNested($callback, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNested($callback, $boolean); + } + + /** + * Create a new query instance for nested where condition. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function forNestedWhere() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forNestedWhere(); + } + + /** + * Add another query builder as a nested where to the query builder. + * + * @param \Illuminate\Database\Query\Builder $query + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function addNestedWhereQuery($query, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addNestedWhereQuery($query, $boolean); + } + + /** + * Add an exists clause to the query. + * + * @param \Closure $callback + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereExists($callback, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereExists($callback, $boolean, $not); + } + + /** + * Add an or exists clause to the query. + * + * @param \Closure $callback + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereExists($callback, $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereExists($callback, $not); + } + + /** + * Add a where not exists clause to the query. + * + * @param \Closure $callback + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereNotExists($callback, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereNotExists($callback, $boolean); + } + + /** + * Add a where not exists clause to the query. + * + * @param \Closure $callback + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereNotExists($callback) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereNotExists($callback); + } + + /** + * Add an exists clause to the query. + * + * @param \Illuminate\Database\Query\Builder $query + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function addWhereExistsQuery($query, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addWhereExistsQuery($query, $boolean, $not); + } + + /** + * Adds a where condition using row values. + * + * @param array $columns + * @param string $operator + * @param array $values + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function whereRowValues($columns, $operator, $values, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereRowValues($columns, $operator, $values, $boolean); + } + + /** + * Adds an or where condition using row values. + * + * @param array $columns + * @param string $operator + * @param array $values + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereRowValues($columns, $operator, $values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereRowValues($columns, $operator, $values); + } + + /** + * Add a "where JSON contains" clause to the query. + * + * @param string $column + * @param mixed $value + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereJsonContains($column, $value, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonContains($column, $value, $boolean, $not); + } + + /** + * Add an "or where JSON contains" clause to the query. + * + * @param string $column + * @param mixed $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereJsonContains($column, $value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonContains($column, $value); + } + + /** + * Add a "where JSON not contains" clause to the query. + * + * @param string $column + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereJsonDoesntContain($column, $value, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonDoesntContain($column, $value, $boolean); + } + + /** + * Add an "or where JSON not contains" clause to the query. + * + * @param string $column + * @param mixed $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereJsonDoesntContain($column, $value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonDoesntContain($column, $value); + } + + /** + * Add a "where JSON length" clause to the query. + * + * @param string $column + * @param mixed $operator + * @param mixed $value + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function whereJsonLength($column, $operator, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->whereJsonLength($column, $operator, $value, $boolean); + } + + /** + * Add an "or where JSON length" clause to the query. + * + * @param string $column + * @param mixed $operator + * @param mixed $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orWhereJsonLength($column, $operator, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orWhereJsonLength($column, $operator, $value); + } + + /** + * Handles dynamic "where" clauses to the query. + * + * @param string $method + * @param array $parameters + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function dynamicWhere($method, $parameters) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->dynamicWhere($method, $parameters); + } + + /** + * Add a "group by" clause to the query. + * + * @param array|string $groups + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function groupBy(...$groups) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->groupBy(...$groups); + } + + /** + * Add a raw groupBy clause to the query. + * + * @param string $sql + * @param array $bindings + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function groupByRaw($sql, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->groupByRaw($sql, $bindings); + } + + /** + * Add a "having" clause to the query. + * + * @param string $column + * @param string|null $operator + * @param string|null $value + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function having($column, $operator = null, $value = null, $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->having($column, $operator, $value, $boolean); + } + + /** + * Add an "or having" clause to the query. + * + * @param string $column + * @param string|null $operator + * @param string|null $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orHaving($column, $operator = null, $value = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orHaving($column, $operator, $value); + } + + /** + * Add a "having between " clause to the query. + * + * @param string $column + * @param array $values + * @param string $boolean + * @param bool $not + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function havingBetween($column, $values, $boolean = 'and', $not = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->havingBetween($column, $values, $boolean, $not); + } + + /** + * Add a raw having clause to the query. + * + * @param string $sql + * @param array $bindings + * @param string $boolean + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function havingRaw($sql, $bindings = [], $boolean = 'and') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->havingRaw($sql, $bindings, $boolean); + } + + /** + * Add a raw or having clause to the query. + * + * @param string $sql + * @param array $bindings + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orHavingRaw($sql, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orHavingRaw($sql, $bindings); + } + + /** + * Add an "order by" clause to the query. + * + * @param \Closure|\Illuminate\Database\Query\Builder|\Illuminate\Database\Query\Expression|string $column + * @param string $direction + * @return \Illuminate\Database\Query\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function orderBy($column, $direction = 'asc') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orderBy($column, $direction); + } + + /** + * Add a descending "order by" clause to the query. + * + * @param string $column + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orderByDesc($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orderByDesc($column); + } + + /** + * Put the query's results in random order. + * + * @param string $seed + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function inRandomOrder($seed = '') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->inRandomOrder($seed); + } + + /** + * Add a raw "order by" clause to the query. + * + * @param string $sql + * @param array $bindings + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function orderByRaw($sql, $bindings = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->orderByRaw($sql, $bindings); + } + + /** + * Alias to set the "offset" value of the query. + * + * @param int $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function skip($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->skip($value); + } + + /** + * Set the "offset" value of the query. + * + * @param int $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function offset($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->offset($value); + } + + /** + * Alias to set the "limit" value of the query. + * + * @param int $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function take($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->take($value); + } + + /** + * Set the "limit" value of the query. + * + * @param int $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function limit($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->limit($value); + } + + /** + * Set the limit and offset for a given page. + * + * @param int $page + * @param int $perPage + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function forPage($page, $perPage = 15) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forPage($page, $perPage); + } + + /** + * Constrain the query to the previous "page" of results before a given ID. + * + * @param int $perPage + * @param int|null $lastId + * @param string $column + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function forPageBeforeId($perPage = 15, $lastId = 0, $column = 'id') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forPageBeforeId($perPage, $lastId, $column); + } + + /** + * Constrain the query to the next "page" of results after a given ID. + * + * @param int $perPage + * @param int|null $lastId + * @param string $column + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function forPageAfterId($perPage = 15, $lastId = 0, $column = 'id') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->forPageAfterId($perPage, $lastId, $column); + } + + /** + * Remove all existing orders and optionally add a new order. + * + * @param string|null $column + * @param string $direction + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function reorder($column = null, $direction = 'asc') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->reorder($column, $direction); + } + + /** + * Add a union statement to the query. + * + * @param \Illuminate\Database\Query\Builder|\Closure $query + * @param bool $all + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function union($query, $all = false) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->union($query, $all); + } + + /** + * Add a union all statement to the query. + * + * @param \Illuminate\Database\Query\Builder|\Closure $query + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function unionAll($query) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->unionAll($query); + } + + /** + * Lock the selected rows in the table. + * + * @param string|bool $value + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function lock($value = true) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->lock($value); + } + + /** + * Lock the selected rows in the table for updating. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function lockForUpdate() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->lockForUpdate(); + } + + /** + * Share lock the selected rows in the table. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function sharedLock() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->sharedLock(); + } + + /** + * Get the SQL representation of the query. + * + * @return string + * @static + */ + public static function toSql() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->toSql(); + } + + /** + * Get the count of the total records for the paginator. + * + * @param array $columns + * @return int + * @static + */ + public static function getCountForPagination($columns = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getCountForPagination($columns); + } + + /** + * Concatenate values of a given column as a string. + * + * @param string $column + * @param string $glue + * @return string + * @static + */ + public static function implode($column, $glue = '') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->implode($column, $glue); + } + + /** + * Determine if any rows exist for the current query. + * + * @return bool + * @static + */ + public static function exists() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->exists(); + } + + /** + * Determine if no rows exist for the current query. + * + * @return bool + * @static + */ + public static function doesntExist() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->doesntExist(); + } + + /** + * Execute the given callback if no rows exist for the current query. + * + * @param \Closure $callback + * @return mixed + * @static + */ + public static function existsOr($callback) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->existsOr($callback); + } + + /** + * Execute the given callback if rows exist for the current query. + * + * @param \Closure $callback + * @return mixed + * @static + */ + public static function doesntExistOr($callback) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->doesntExistOr($callback); + } + + /** + * Retrieve the "count" result of the query. + * + * @param string $columns + * @return int + * @static + */ + public static function count($columns = '*') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->count($columns); + } + + /** + * Retrieve the minimum value of a given column. + * + * @param string $column + * @return mixed + * @static + */ + public static function min($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->min($column); + } + + /** + * Retrieve the maximum value of a given column. + * + * @param string $column + * @return mixed + * @static + */ + public static function max($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->max($column); + } + + /** + * Retrieve the sum of the values of a given column. + * + * @param string $column + * @return mixed + * @static + */ + public static function sum($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->sum($column); + } + + /** + * Retrieve the average of the values of a given column. + * + * @param string $column + * @return mixed + * @static + */ + public static function avg($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->avg($column); + } + + /** + * Alias for the "avg" method. + * + * @param string $column + * @return mixed + * @static + */ + public static function average($column) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->average($column); + } + + /** + * Execute an aggregate function on the database. + * + * @param string $function + * @param array $columns + * @return mixed + * @static + */ + public static function aggregate($function, $columns = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->aggregate($function, $columns); + } + + /** + * Execute a numeric aggregate function on the database. + * + * @param string $function + * @param array $columns + * @return float|int + * @static + */ + public static function numericAggregate($function, $columns = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->numericAggregate($function, $columns); + } + + /** + * Insert new records into the database. + * + * @param array $values + * @return bool + * @static + */ + public static function insert($values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insert($values); + } + + /** + * Insert new records into the database while ignoring errors. + * + * @param array $values + * @return int + * @static + */ + public static function insertOrIgnore($values) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insertOrIgnore($values); + } + + /** + * Insert a new record and get the value of the primary key. + * + * @param array $values + * @param string|null $sequence + * @return int + * @static + */ + public static function insertGetId($values, $sequence = null) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insertGetId($values, $sequence); + } + + /** + * Insert new records into the table using a subquery. + * + * @param array $columns + * @param \Closure|\Illuminate\Database\Query\Builder|string $query + * @return int + * @static + */ + public static function insertUsing($columns, $query) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->insertUsing($columns, $query); + } + + /** + * Insert or update a record matching the attributes, and fill it with values. + * + * @param array $attributes + * @param array $values + * @return bool + * @static + */ + public static function updateOrInsert($attributes, $values = []) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->updateOrInsert($attributes, $values); + } + + /** + * Run a truncate statement on the table. + * + * @return void + * @static + */ + public static function truncate() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + $instance->truncate(); + } + + /** + * Create a raw database expression. + * + * @param mixed $value + * @return \Illuminate\Database\Query\Expression + * @static + */ + public static function raw($value) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->raw($value); + } + + /** + * Get the current query value bindings in a flattened array. + * + * @return array + * @static + */ + public static function getBindings() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getBindings(); + } + + /** + * Get the raw array of bindings. + * + * @return array + * @static + */ + public static function getRawBindings() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getRawBindings(); + } + + /** + * Set the bindings on the query builder. + * + * @param array $bindings + * @param string $type + * @return \Illuminate\Database\Query\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function setBindings($bindings, $type = 'where') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->setBindings($bindings, $type); + } + + /** + * Add a binding to the query. + * + * @param mixed $value + * @param string $type + * @return \Illuminate\Database\Query\Builder + * @throws \InvalidArgumentException + * @static + */ + public static function addBinding($value, $type = 'where') + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->addBinding($value, $type); + } + + /** + * Merge an array of bindings into our bindings. + * + * @param \Illuminate\Database\Query\Builder $query + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function mergeBindings($query) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->mergeBindings($query); + } + + /** + * Remove all of the expressions from a list of bindings. + * + * @param array $bindings + * @return array + * @static + */ + public static function cleanBindings($bindings) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->cleanBindings($bindings); + } + + /** + * Get the database query processor instance. + * + * @return \Illuminate\Database\Query\Processors\Processor + * @static + */ + public static function getProcessor() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getProcessor(); + } + + /** + * Get the query grammar instance. + * + * @return \Illuminate\Database\Query\Grammars\Grammar + * @static + */ + public static function getGrammar() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->getGrammar(); + } + + /** + * Use the write pdo for query. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function useWritePdo() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->useWritePdo(); + } + + /** + * Clone the query. + * + * @return static + * @static + */ + public static function clone() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->clone(); + } + + /** + * Clone the query without the given properties. + * + * @param array $properties + * @return static + * @static + */ + public static function cloneWithout($properties) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->cloneWithout($properties); + } + + /** + * Clone the query without the given bindings. + * + * @param array $except + * @return static + * @static + */ + public static function cloneWithoutBindings($except) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->cloneWithoutBindings($except); + } + + /** + * Dump the current SQL and bindings. + * + * @return \Illuminate\Database\Query\Builder + * @static + */ + public static function dump() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->dump(); + } + + /** + * Die and dump the current SQL and bindings. + * + * @return void + * @static + */ + public static function dd() + { + /** @var \Illuminate\Database\Query\Builder $instance */ + $instance->dd(); + } + + /** + * Register a custom macro. + * + * @param string $name + * @param object|callable $macro + * @return void + * @static + */ + public static function macro($name, $macro) + { + \Illuminate\Database\Query\Builder::macro($name, $macro); + } + + /** + * Mix another object into the class. + * + * @param object $mixin + * @param bool $replace + * @return void + * @throws \ReflectionException + * @static + */ + public static function mixin($mixin, $replace = true) + { + \Illuminate\Database\Query\Builder::mixin($mixin, $replace); + } + + /** + * Dynamically handle calls to the class. + * + * @param string $method + * @param array $parameters + * @return mixed + * @throws \BadMethodCallException + * @static + */ + public static function macroCall($method, $parameters) + { + /** @var \Illuminate\Database\Query\Builder $instance */ + return $instance->macroCall($method, $parameters); + } + } + class Event extends \Illuminate\Support\Facades\Event {} + class File extends \Illuminate\Support\Facades\File {} + class Gate extends \Illuminate\Support\Facades\Gate {} + class Hash extends \Illuminate\Support\Facades\Hash {} + class Http extends \Illuminate\Support\Facades\Http {} + class Lang extends \Illuminate\Support\Facades\Lang {} + class Log extends \Illuminate\Support\Facades\Log {} + class Mail extends \Illuminate\Support\Facades\Mail {} + class Notification extends \Illuminate\Support\Facades\Notification {} + class Password extends \Illuminate\Support\Facades\Password {} + class Queue extends \Illuminate\Support\Facades\Queue {} + class Redirect extends \Illuminate\Support\Facades\Redirect {} + class Request extends \Illuminate\Support\Facades\Request {} + class Response extends \Illuminate\Support\Facades\Response {} + class Route extends \Illuminate\Support\Facades\Route {} + class Schema extends \Illuminate\Support\Facades\Schema {} + class Session extends \Illuminate\Support\Facades\Session {} + class Storage extends \Illuminate\Support\Facades\Storage {} + class Str extends \Illuminate\Support\Str {} + class URL extends \Illuminate\Support\Facades\URL {} + class Validator extends \Illuminate\Support\Facades\Validator {} + class View extends \Illuminate\Support\Facades\View {} + class Form extends \Collective\Html\FormFacade {} + class HTML extends \Collective\Html\HtmlFacade {} + class Image extends \Intervention\Image\Facades\Image {} + class Carbon extends \Carbon\Carbon {} + class Date extends \Jenssegers\Date\Date {} + class HTMLHelper extends \App\Services\HTMLHelper {} + class Util extends \App\Services\Util {} + class DataTables extends \Yajra\DataTables\Facades\DataTables {} + class Yard extends \App\Services\Facade\Yard {} + class Debugbar extends \Barryvdh\Debugbar\Facade {} + class PDF extends \Barryvdh\DomPDF\Facade {} + class Cart extends \Gloudemans\Shoppingcart\Facades\Cart {} + class Flare extends \Facade\Ignition\Facades\Flare {} + class Flash extends \Laracasts\Flash\Flash {} + class Html extends \Collective\Html\HtmlFacade {} + +} + + + + diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php new file mode 100644 index 0000000..a8c5158 --- /dev/null +++ b/app/Console/Kernel.php @@ -0,0 +1,42 @@ +command('inspire') + // ->hourly(); + } + + /** + * Register the commands for the application. + * + * @return void + */ + protected function commands() + { + $this->load(__DIR__.'/Commands'); + + require base_path('routes/console.php'); + } +} diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php new file mode 100644 index 0000000..59c585d --- /dev/null +++ b/app/Exceptions/Handler.php @@ -0,0 +1,55 @@ +middleware('superadmin'); + $this->userRepo = $userRepo; + + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function index() + { + $data = [ + //'values' => User::where('admin', 0)->get(), + 'values' => User::where('confirmation_code_remider', '!=', 2)->get(), + ]; + return view('admin.user.index', $data); + } + + public function edit($user_id) + { + $user = User::findOrFail($user_id); + if(!$user->account){ + $user->account = new UserAccount(); + } + + $data = [ + 'user' => $user, + ]; + return view('admin.user.edit', $data); + + + } + + /** + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function store(Request $request) + { + $data = Request::all(); + $user = User::findOrFail($data['id']); + + if(isset($data['save-admin'])){ + $user->admin = $data['admin']; + SysLog::action('save-admin', 'admin_user', 3) + ->setUserId(Auth::user()->id) + ->setModel($user->id, User::class) + ->setMessage('Set user admin value: '.HTMLHelper::getRoleLabel($user->admin)) + ->save(); + } + + if(isset($data['save-confirmed'])){ + $data['confirmed'] = isset($data['confirmed']) ? true : false; + $user->confirmed = $data['confirmed']; + if($data['confirmed']){ + if(!isset($data['confirmation_date']) || $data['confirmation_date'] == ""){ + $user->confirmation_date = now(); + }else{ + $user->confirmation_date = \Carbon::parse(str_replace("- ", "", $data['confirmation_date'])); + } + }else{ + $user->confirmation_date = null; + } + SysLog::action('save-confirmed', 'admin_user', 3) + ->setUserId(Auth::user()->id) + ->setModel($user->id, User::class) + ->setMessage('Set user confirmed value: '.$user->confirmed." to date: ".$data['confirmation_date']) + ->save(); + } + + if(isset($data['save-active'])){ + $data['active'] = isset($data['active']) ? true : false; + $user->active = $data['active']; + if($data['active']){ + if(!isset($data['active_date']) || $data['active_date'] == ""){ + $user->active_date = now(); + }else{ + $user->active_date = \Carbon::parse(str_replace("- ", "", $data['active_date'])); + } + }else{ + $user->active_date = null; + } + SysLog::action('save-active', 'admin_user', 3) + ->setUserId(Auth::user()->id) + ->setModel($user->id, User::class) + ->setMessage('Set user active value: '.$user->active." to date: ".$data['active_date']) + ->save(); + } + + if(isset($data['save-account'])){ + $old = $user->getPaymentAccountDateFormat(true); + if(!isset($data['payment_account']) || $data['payment_account'] == ""){ + $user->payment_account = null; + }else{ + $user->wizard = 100; + $user->payment_account = \Carbon::parse(str_replace("- ", "", $data['payment_account'])); + } + SysLog::action('save-account', 'admin_user', 3) + ->setUserId(Auth::user()->id) + ->setModel($user->id, User::class) + ->setMessage('Set user payment_account from date: '.$old." to date: ".$data['payment_account']) + ->save(); + } + + if(isset($data['save-shop'])){ + $old = $user->getPaymentShopDateFormat(true); + if(!isset($data['payment_shop']) || $data['payment_shop'] == ""){ + $user->payment_shop = null; + }else{ + $user->wizard = 100; + $user->payment_shop = \Carbon::parse(str_replace("- ", "", $data['payment_shop'])); + } + SysLog::action('save-shop', 'admin_user', 3) + ->setUserId(Auth::user()->id) + ->setModel($user->id, User::class) + ->setMessage('Set user payment_shop from date: '.$old." to date: ".$data['payment_shop']) + ->save(); + } + + if(isset($data['save-test_mode'])){ + $user->test_mode = isset($data['test_mode']) ? true : false; + SysLog::action('save-test_mode', 'admin_user', 3) + ->setUserId(Auth::user()->id) + ->setModel($user->id, User::class) + ->setMessage('Set user test_mode value: '.$user->test_mode) + ->save(); + } + + if(isset($data['save-payment_methods'])){ + $user->payment_methods = isset($data['payment_methods']) ? array_map('intval', $data['payment_methods']) : null; + SysLog::action('save-payment_methods', 'admin_user', 3) + ->setUserId(Auth::user()->id) + ->setModel($user->id, User::class) + ->setMessage('Set user payment_methods value: '.$user->getPaymentMethodsShort()) + ->save(); + } + + $user->save(); + + \Session()->flash('alert-save', true); + return redirect('/admin/users'); + } + + public function deleteUser($user_id) + { + $user = User::findOrFail($user_id); + $this->userRepo->deleteUser($user); + + \Session()->flash('alert-success', "Kontakt gelöscht"); + return redirect('/admin/users'); + + } + + + public function userLoginAs($userId){ + if(Auth::user()->isSuperAdmin()){ + $user = User::find($userId); + Auth::login($user); + return redirect('/home'); + } + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Api/AuthController.php b/app/Http/Controllers/Api/AuthController.php new file mode 100755 index 0000000..3a27d5f --- /dev/null +++ b/app/Http/Controllers/Api/AuthController.php @@ -0,0 +1,103 @@ +validate([ + 'email' => 'required|string|email', + 'password' => 'required|string', + 'remember_me' => 'boolean' + ]); + $credentials = request(['email', 'password']); + + if (!Auth::attempt($credentials)) + return response()->json([ + 'message' => 'Unauthorized' + ], 401); + $user = $request->user(); + + $tokenResult = $user->createToken('Personal Access Token'); + $token = $tokenResult->token; + + if ($request->remember_me){ + $token->expires_at = Carbon::now()->addWeeks(1); + }else{ + $token->expires_at = Carbon::now()->addDays(1); + } + + $token->save(); + return response()->json([ + 'access_token' => $tokenResult->accessToken, + 'token_type' => 'Bearer', + 'expires_at' => Carbon::parse( + $tokenResult->token->expires_at + )->toDateTimeString() + ]); + } + + + public function checked(Request $request) + { + return response()->json([ + 'message' => 'login' + ]); + } + + public function logout(Request $request) + { + $request->user()->token()->revoke(); + return response()->json([ + 'message' => 'Successfully logged out' + ]); + } + + /** + * Get the authenticated User + * + * @return [json] user object + */ + /* public function user(Request $request) + { + return response()->json($request->user()); + } + */ + + /*public function signup(Request $request) + { + $request->validate([ + 'name' => 'required|string', + 'email' => 'required|string|email|unique:users', + 'password' => 'required|string|confirmed' + ]); + $user = new User([ + 'name' => $request->name, + 'email' => $request->email, + 'password' => Hash::make($request->password), + ]); + $user->save(); + return response()->json([ + 'message' => 'Successfully created user!' + ], 201); + }*/ + +} \ No newline at end of file diff --git a/app/Http/Controllers/Api/ShoppingUserController.php b/app/Http/Controllers/Api/ShoppingUserController.php new file mode 100755 index 0000000..709471f --- /dev/null +++ b/app/Http/Controllers/Api/ShoppingUserController.php @@ -0,0 +1,700 @@ +validate([ + 'wp_order_numbers' => 'required', + ]); + + if(!is_array($request->wp_order_numbers)){ + $wp_order_numbers = json_decode($request->wp_order_numbers); + + }else{ + $wp_order_numbers = $request->wp_order_numbers; + } + + + if(!$wp_order_numbers || !is_array($wp_order_numbers)){ + return response()->json([ + 'success' => false, + 'message' => 'wp_order_numbers need as json [1234, 1234] ', + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + + $status = []; + foreach ($wp_order_numbers as $wp_order_number){ + $shopping_user = ShoppingUser::where('wp_order_number', '=', $wp_order_number)->first(); + $status[] = [ + 'wp_order_number' => $wp_order_number, + 'user' => $shopping_user ? true : false, + 'order' => ($shopping_user && $shopping_user->shopping_order) ? true : false, + 'status' => $shopping_user ? $shopping_user->getAPIShippedType() : false, + ]; + } + + return response()->json([ + 'success' => true, + 'data' => $status, + 'time' => Carbon::now()->toDateTimeString() + ], 200); + + } + + /** + * @param Request $request + * wp_order_number [1234] + * @return \Illuminate\Http\JsonResponse + */ + public function cancel(Request $request) + { + $request->validate([ + 'wp_order_number' => 'required|int', + ]); + $shopping_user = ShoppingUser::where('wp_order_number', '=', $request->wp_order_number)->first(); + if (!$shopping_user) { + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' not found', + 'order' => false, + 'status' => false, + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + if(!$shopping_user->shopping_order){ + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' has no order', + 'order' => false, + 'status' => $shopping_user->getAPIShippedType(), + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + if($shopping_user->shopping_order->shipped > 0){ + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' can not cancel', + 'order' => true, + 'status' => $shopping_user->getAPIShippedType(), + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + + $shopping_user->shopping_order->shipped = 10; + $shopping_user->shopping_order->save(); + + return response()->json([ + 'success' => true, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' is cancel', + 'order' => true, + 'status' => $shopping_user->getAPIShippedType(), + 'time' => Carbon::now()->toDateTimeString() + ], 200); + + } + + + /** + * @param Request $request + * wp_order_number [1234] + * @return \Illuminate\Http\JsonResponse + */ + public function open(Request $request) + { + $request->validate([ + 'wp_order_number' => 'required|int', + ]); + $shopping_user = ShoppingUser::where('wp_order_number', '=', $request->wp_order_number)->first(); + if (!$shopping_user) { + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' not found', + 'order' => false, + 'status' => false, + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + if(!$shopping_user->shopping_order){ + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' has no order', + 'order' => false, + 'status' => $shopping_user->getAPIShippedType(), + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + if($shopping_user->shopping_order->shipped !== 10){ + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' can not open', + 'order' => true, + 'status' => $shopping_user->getAPIShippedType(), + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + + $shopping_user->shopping_order->shipped = 0; + $shopping_user->shopping_order->save(); + + return response()->json([ + 'success' => true, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' is open', + 'order' => true, + 'status' => $shopping_user->getAPIShippedType(), + 'time' => Carbon::now()->toDateTimeString() + ], 200); + + } + + + /** + * @param Request $request + * wp_order_numbers [1234, 1234] + * @return \Illuminate\Http\JsonResponse + */ + public function show(Request $request) + { + //$this->member_id = auth()->user()->m_sponsor; + $request->validate([ + 'wp_order_numbers' => 'required', + ]); + + if(!is_array($request->wp_order_numbers)){ + $wp_order_numbers = json_decode($request->wp_order_numbers); + + }else{ + $wp_order_numbers = $request->wp_order_numbers; + } + + if(!$wp_order_numbers || !is_array($wp_order_numbers)){ + return response()->json([ + 'success' => false, + 'message' => 'wp_order_numbers need as json [1234, 1234] ', + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + $data = []; + + foreach ($wp_order_numbers as $wp_order_number){ + $shopping_user = ShoppingUser::where('wp_order_number', '=', $wp_order_number)->first(); + $user = false; + $order = false; + if ($shopping_user) { + $user = $this->prepareForShow($shopping_user); + $order = $this->prepareForShowOrder($shopping_user->shopping_order); + } + $data[] = [ + 'wp_order_number' => $wp_order_number, + 'user' => $user, + 'order' => $order, + 'customer_number' => $shopping_user ? $shopping_user->number : false, + 'member_email' => ($shopping_user && $shopping_user->member) ? $shopping_user->member->email : false, + 'status' => $shopping_user ? $shopping_user->getAPIShippedType() : false, ]; + } + return response()->json([ + 'success' => true, + 'data' => $data, + 'time' => Carbon::now()->toDateTimeString() + ], 200); + + } + + /** + * @param Request $request + * @return \Illuminate\Http\JsonResponse + */ + public function store(Request $request) + { + $request->validate([ + 'billing_email' => 'required|string|email', + 'billing_firstname' => 'required|string', + 'billing_lastname' => 'required|string', + 'billing_address' => 'required|string', + 'billing_zipcode' => 'required|string', + 'billing_city' => 'required|string', + 'billing_country_code' => 'required|string', + 'wp_order_number' => 'required|int|unique:shopping_users,wp_order_number', + 'wp_order_date' => 'required|date', + ]); + + $this->member_id = auth()->user()->m_sponsor; + + $data = $this->prepareForStore($request->all()); + $data['member_id'] = $this->member_id ; + $data['number'] = ShoppingUser::max('number') + 1; + $data['mode'] = $request->mode ? $request->mode : 'live'; + $data['is_from'] = 'extern'; + $data['is_for'] = 'ot'; + + $shopping_user = ShoppingUser::create($data); + + //Kundenhoheit prüfen + $priority = CustomerPriority::checkOne($shopping_user, true, false); + \App\Services\Shop::newUserOrder($shopping_user->number); + //exists //like //update + $user = $this->prepareForShow($shopping_user); + return response()->json([ + 'success' => true, + 'data' => [ + 'wp_order_number' => $shopping_user->wp_order_number, + 'user' => $user, + 'customer_priority' => $priority, + 'customer_number' => $shopping_user->number, + 'member_email' => $shopping_user->member->email + ], + 'time' => Carbon::now()->toDateTimeString() + ], 200); + + } + + /** + * @param Request $request + * @return \Illuminate\Http\JsonResponse + */ + public function update(Request $request) + { + $request->validate([ + 'wp_order_number' => 'required|int', + ]); + $shopping_user = ShoppingUser::where('wp_order_number', '=', $request->wp_order_number)->first(); + if (!$shopping_user) { + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' not found', + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + + $data = $this->prepareForUpdate($request->all()); + //Kundenhoheit prüfen + $priority = CustomerPriority::checkChangeOne($shopping_user, $data, true); + $updated = $shopping_user->fill($data)->save(); + \App\Services\Shop::newUserOrder($shopping_user->number); + + if ($updated){ + $user = $this->prepareForShow($shopping_user); + $order = $this->prepareForShowOrder($shopping_user->shopping_order); + return response()->json([ + 'success' => true, + 'data' => [ + 'wp_order_number' => $shopping_user->wp_order_number, + 'user' => $user, + 'order' => $order, + 'customer_priority' => $priority, + 'customer_number' => $shopping_user ? $shopping_user->number : false, + 'member_email' => ($shopping_user && $shopping_user->member) ? $shopping_user->member->email : false, + 'status' => $shopping_user ? $shopping_user->getAPIShippedType() : false, + ], + 'time' => Carbon::now()->toDateTimeString() + ], 200); + } + return response()->json([ + 'success' => false, + 'message' => 'Entry could not be updated' + ], 500); + } + + public function order(Request $request) + { + $request->validate([ + 'wp_order_number' => 'required|int', + 'wp_order' => 'required', + ]); + + + $shopping_user = ShoppingUser::where('wp_order_number', '=', $request->wp_order_number)->first(); + if (!$shopping_user) { + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' not found', + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + + if($shopping_user->shopping_order){ + return response()->json([ + 'success' => false, + 'message' => 'Order with wp_order_number ' . $request->wp_order_number . ' exists', + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + if(!is_array($request->wp_order)){ + $wp_order = json_decode($request->wp_order); + + }else{ + $wp_order = $request->wp_order; + } + + $wp_invoice_path = isset($request->wp_invoice_path) ? $request->wp_invoice_path : null; + $wp_advertising = isset($request->wp_advertising) ? $request->wp_advertising : ''; + $wp_incentives = isset($request->wp_incentives) ? $request->wp_incentives : ''; + + $wp_notice = [ + 'wp_advertising' => $wp_advertising, + 'wp_incentives' => $wp_incentives, + ]; + + $wp_order = $this->prepareOrder($wp_order, $shopping_user, $wp_invoice_path, $wp_notice); + + if ($wp_order){ + $user = $this->prepareForShow($shopping_user); + $order = $this->prepareForShowOrder($shopping_user->shopping_order); + return response()->json([ + 'success' => true, + 'data' => [ + 'wp_order_number' => $shopping_user->wp_order_number, + 'wp_invoice_path' => $wp_invoice_path, + 'wp_advertising' => $wp_advertising, + 'wp_incentives' => $wp_incentives, + 'wp_order' => $wp_order, + 'user' => $user, + 'order' => $order, + 'customer_number' => $shopping_user->number, + 'member_email' => $shopping_user->member->email, + 'status' => $shopping_user->getAPIShippedType(), + ], + 'time' => Carbon::now()->toDateTimeString() + ], 200); + } + return response()->json([ + 'success' => false, + 'message' => 'Order could not be stored' + ], 500); + } + + public function delete(Request $request) + { + $request->validate([ + 'wp_order_number' => 'required|int', + ]); + $shopping_user = ShoppingUser::where('wp_order_number', '=', $request->wp_order_number)->where('mode', '=', 'dev')->first(); + if (!$shopping_user) { + return response()->json([ + 'success' => false, + 'message' => 'Entry with wp_order_number ' . $request->wp_order_number . ' not found or mode != dev', + 'time' => Carbon::now()->toDateTimeString() + ], 400); + } + $shopping_order = $shopping_user->shopping_order; + if($shopping_order){ + foreach ($shopping_order->shopping_order_items as $shopping_order_item){ + $shopping_order_item->delete(); + } + $shopping_order->delete(); + } + $shopping_user->wp_order_number = time(); + $shopping_user->save(); + if ($shopping_user->delete()) { + return response()->json([ + 'success' => true + ]); + } + return response()->json([ + 'success' => false, + 'message' => 'Entry could not be deleted' + ], 500); + } + + private function prepareForShow($shopping_user){ + + if(!$shopping_user){ + return false; + } + + $shopping_user_data = $shopping_user->toArray(); + $needs = ['wp_order_number', 'wp_order_date', 'billing_company', 'billing_firstname', 'billing_lastname', 'billing_address', 'billing_address_2', 'billing_zipcode', 'billing_city', 'billing_phone', 'billing_email', + 'same_as_billing', 'shipping_company', 'shipping_firstname', 'shipping_lastname', 'shipping_address', 'shipping_address_2', 'shipping_zipcode', 'shipping_city', 'shipping_phone', + 'created_at', 'updated_at', 'user_deleted_at']; //'has_buyed', 'subscribed', + + //$salutation = array('mr' => 1, 'ms' => 2); + $ret = []; + foreach ($shopping_user_data as $key=>$value){ + + if($key === 'billing_country_id'){ + $ret['billing_country_code'] = $shopping_user->billing_country_id ? $shopping_user->billing_country->code : null; + } + if($key === 'shipping_country_id'){ + $ret['shipping_country_code'] = $shopping_user->shipping_country_id ? $shopping_user->shipping_country->code : null; + } + if($key === 'billing_salutation'){ + $ret['billing_salutation'] = $shopping_user->billing_salutation === 'ms' ? 2 : 1; + } + if($key === 'shipping_salutation'){ + $ret['shipping_salutation'] = $shopping_user->shipping_salutation === 'ms' ? 2 : 1; + } + + if(in_array($key, $needs)){ + $ret[$key] = $value; + } + } + return $ret; + } + + private function prepareForShowOrder($shopping_order){ + + if(!$shopping_order){ + return false; + } + $ret = [ + 'country' => isset($shopping_order->shipping_country->country->code) ? $shopping_order->shipping_country->country->code : '', + 'wp_invoice_path' => $shopping_order->wp_invoice_path, + 'total' => ($shopping_order->total*100), + 'shipping' => ($shopping_order->shipping*100), + 'total_net' => ($shopping_order->subtotal*100), + 'tax_rate' => ($shopping_order->tax_rate*100), + 'tax' => ($shopping_order->tax*100), + 'total_with_shipping' => ($shopping_order->total_shipping*100), + 'weight' => $shopping_order->weight, + ]; + $ret['items'] = []; + foreach ($shopping_order->shopping_order_items as $item){ + $ret['items'][] = [ + 'article' => $item->product->wp_number, + 'name' => $item->product->name, + 'qty' => $item->qty, + 'price' => ($item->price * 100), + ]; + } + return $ret; + } + + private function prepareForUpdate($data){ + + //$salutation = array(1 => 'mr', 2 => 'ms', 3=>null); + + if(isset($data['billing_salutation'])){ + $data['billing_salutation'] = (int) $data['billing_salutation']; + $data['billing_salutation'] = $data['billing_salutation'] == 2 ? 'ms' : 'mr'; + } + if(isset($data['shipping_salutation'])){ + $data['shipping_salutation'] = (int) $data['shipping_salutation']; + $data['shipping_salutation'] = $data['shipping_salutation'] == 2 ? 'ms' : 'mr'; + } + + $ret = []; + $needs = [ 'billing_salutation', 'billing_company', 'billing_firstname', 'billing_lastname', 'billing_address', 'billing_address_2', 'billing_zipcode', 'billing_city', 'billing_phone', 'billing_email', 'same_as_billing', + 'shipping_salutation', 'shipping_company', 'shipping_firstname', 'shipping_lastname', 'shipping_address', 'shipping_address_2', 'shipping_zipcode', 'shipping_city', 'shipping_phone']; + + foreach ($data as $key=>$value){ + if($key === 'billing_country_code' && isset($data['billing_country_code'])) { + $ret['billing_country_id'] = Country::getCountryIdByCodeOrOne($data['billing_country_code']); + } + if($key === 'shipping_country_code' && isset($data['shipping_country_code']) ) { + $ret['shipping_country_id'] = Country::getCountryIdByCodeOrOne($data['shipping_country_code']); + } + if($key === 'billing_phone') { + $ret['billing_phone'] = strlen($data['billing_phone']) <= 3 ? '' : $data['billing_phone']; + } + if($key === 'shipping_phone') { + $ret['shipping_phone'] = strlen($data['shipping_phone']) <= 3 ? '' : $data['shipping_phone']; + } + if(in_array($key, $needs)){ + $ret[$key] = $value; + } + } + return $ret; + } + + private function prepareForStore($data){ + + //$salutation = array(1 => 'mr', 2 => 'ms', 3=>null); + if(isset($data['billing_salutation'])){ + $data['billing_salutation'] = (int) $data['billing_salutation']; + $data['billing_salutation'] = $data['billing_salutation'] == 2 ? 'ms' : 'mr'; + } + if(isset($data['shipping_salutation'])){ + $data['shipping_salutation'] = (int) $data['shipping_salutation']; + $data['shipping_salutation'] = $data['shipping_salutation'] == 2 ? 'ms' : 'mr'; + } + $ret = []; + $needs = [ 'billing_salutation', 'billing_company', 'billing_firstname', 'billing_lastname', 'billing_address', 'billing_address_2', 'billing_zipcode', 'billing_city', 'billing_country_id', 'billing_phone', 'billing_email', + 'shipping_salutation', 'shipping_company', 'shipping_firstname', 'shipping_lastname', 'shipping_address', 'shipping_address_2', 'shipping_zipcode', 'shipping_city', 'shipping_country_id', 'shipping_phone', + 'same_as_billing', //'has_buyed', 'subscribed', + 'wp_order_number', 'wp_order_date']; + + foreach ($needs as $need){ + + $ret[$need] = isset($data[$need]) ? $data[$need] : null; + if ($need === 'billing_country_id') { + $ret['billing_country_id'] = isset($data['billing_country_code']) ? Country::getCountryIdByCodeOrOne($data['billing_country_code']) : 1; + } + if ($need === 'shipping_country_id') { + $ret['shipping_country_id'] = isset($data['shipping_country_code']) ? Country::getCountryIdByCodeOrOne($data['shipping_country_code']) : $ret['billing_country_id']; + } + if ($need === 'billing_phone' && $ret[$need] !== null) { + $ret['billing_phone'] = strlen($data['billing_phone']) <= 3 ? '' : $data['billing_phone']; + } + if ($need === 'shipping_phone' && $ret[$need] !== null) { + $ret['shipping_phone'] = strlen($data['shipping_phone']) <= 3 ? '' : $data['shipping_phone']; + } + if ($need === 'wp_order_date') { + $ret['wp_order_date'] = Carbon::parse($ret['wp_order_date'])->toDateTimeString(); + } + if ($need === 'same_as_billing') { + $ret['same_as_billing'] = isset($data['same_as_billing']) ? $data['same_as_billing'] : true; + } + } + $ret['has_buyed'] = true; + $ret['subscribed'] = false; + return $ret; + } + + private function prepareOrder($wp_shopping_order, $shopping_user, $wp_invoice_path, $wp_notice){ + Yard::instance('shopping')->destroy(); + $ret = []; + + if(is_array($wp_shopping_order)){ + foreach ($wp_shopping_order as $order) { + //$object = json_decode(json_encode($order), FALSE); + $order = (object) $order; + $error = []; + if (!isset($order->article) || !isset($order->qty) || !isset($order->price)) { + $error[] = "article parameter is missing"; + } else { + + $product = Product::whereWpNumber($order->article)->first(); + if (!$product) { + $error[] = "article not found"; + } else { + if ($order->price != ($product->price * 100)) { + $error[] = "different price: " . ($product->price * 100); + } + Yard::instance('shopping')->add($product->id, $product->name, (int) $order->qty, $product->price, ['image' => [], 'slug' => $product->slug, 'weight' => $product->weight]); + } + } + $order->message = $error; + $ret[] = $order; + } + + $ShippingCountry = ShippingCountry::whereCountryId($shopping_user->shipping_country_id)->first(); + if($ShippingCountry){ + Yard::instance('shopping')->setShippingCountryWithPrice($ShippingCountry->id); + } + $shopping_order = $this->makeShoppingOrder($shopping_user, $wp_invoice_path, $wp_notice); + $this->orderStatusSendMail($shopping_order); + + $shopping_user->shopping_order = $shopping_order; + Yard::instance('shopping')->destroy(); + } + return $ret; + } + + private function makeShoppingOrder($shopping_user, $wp_invoice_path, $wp_notice){ + + $data = [ + 'shopping_user_id' => $shopping_user->id, + 'auth_user_id' => $shopping_user->auth_user_id, + 'country_id' => Yard::instance('shopping')->getShippingCountryId(), + 'user_shop_id' => auth()->user()->user_sponsor->shop->id, + 'member_id' => $shopping_user->member_id, + 'total' => Yard::instance('shopping')->total(2, '.', ''), + 'subtotal' => Yard::instance('shopping')->subtotal(2, '.', ''), + 'shipping' => Yard::instance('shopping')->shipping(2, '.', ','), + 'shipping_net' => Yard::instance('shopping')->shippingNet(2, '.', ''), + 'subtotal_ws' => Yard::instance('shopping')->subtotalWithShipping(2, '.', ''), + 'tax' => Yard::instance('shopping')->taxWithShipping(2, '.', ''), + 'total_shipping' => Yard::instance('shopping')->totalWithShipping(2, '.', ''), + 'points' => Yard::instance('shopping')->points(), + 'weight' => Yard::instance('shopping')->weight(), + 'paid' => true, + 'txaction' => 'extern', + 'wp_invoice_path' => $wp_invoice_path, + 'wp_notice' => $wp_notice, + 'mode' => $shopping_user->mode, + ]; + $shopping_order = $shopping_user->shopping_order; + if($shopping_order){ + $shopping_order->fill($data); + $shopping_order->save(); + }else{ + $shopping_order= ShoppingOrder::create($data); + } + $items = Yard::instance('shopping')->content(); + + $shopping_order->shopping_order_items()->each(function($model) use ($items, $shopping_order) { + foreach ($items as $item) { + if ($model->row_id === $item->rowId) { + $model->fill([ + 'shopping_order_id' => $shopping_order->id, + 'row_id' => $item->rowId, + 'product_id' => $item->id, + 'qty' => $item->qty, + 'price' => $item->price, + 'price_net' => Yard::instance('shopping')->rowPriceNet($item, 3, '.', ''), + 'tax_rate' => $item->taxRate, + 'slug' => $item->options->slug, + ])->save(); + return false; + } + } + return $model->delete(); + }); + + + foreach ($items as $item) { + if (!ShoppingOrderItem::where('shopping_order_id', $shopping_order->id)->where('row_id', $item->rowId)->count()) + ShoppingOrderItem::create([ + 'shopping_order_id' => $shopping_order->id, + 'row_id' => $item->rowId, + 'product_id' => $item->id, + 'qty' => $item->qty, + 'price' => $item->price, + 'price_net' => Yard::instance('shopping')->rowPriceNet($item, 3, '.', ''), + 'tax_rate' => $item->taxRate, + 'slug' => $item->options->slug + ]); + } + + return $shopping_order; + } + + + public function orderStatusSendMail(ShoppingOrder $shopping_order){ + + $bcc = []; + $user_mail = $shopping_order->shopping_user->member->email; + if($shopping_order->mode === 'dev'){ + $bcc[] = config('app.checkout_test_mail'); + }else{ + $bcc[] = config('app.checkout_mail'); + } + + Mail::to($user_mail)->bcc($bcc)->send(new MailCheckout($shopping_order->txaction, $shopping_order, null, false, $shopping_order->mode)); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/AttributeController.php b/app/Http/Controllers/AttributeController.php new file mode 100755 index 0000000..64797b4 --- /dev/null +++ b/app/Http/Controllers/AttributeController.php @@ -0,0 +1,86 @@ +middleware('admin'); + } + + public function index() + { + + $data = [ + 'values' => Attribute::all(), + 'trans' => array_keys(config('localization.supportedLocales')), + ]; + return view('admin.attribute.index', $data); + } + + public function store() + { + + $data = Request::all(); + if($data['id'] == "new"){ + $model = Attribute::create([ + 'parent_id' => null, + 'name' => $data['name'], + 'pos' => $data['pos'], + 'active' => isset($data['active']) ? true : false, + ]); + }else{ + $model = Attribute::find($data['id']); + $model->parent_id = null; + $model->name = $data['name']; + $model->pos = $data['pos']; + $model->active = isset($data['active']) ? true : false; + $model->save(); + } + + if(!empty($data['trans'])){ + $trans = []; + foreach ($data['trans'] as $lang => $value){ + if($value && $value != null){ + $trans[$lang] = $value; + } + } + if(count($trans)){ + $model->trans_name = $trans; + $model->save(); + } + } + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_product_attributes')); + + + } + + + public function delete($id){ + + if(ProductAttribute::where('attribute_id', $id)->count()){ + \Session()->flash('alert-error', 'Eintrag wird als Produktattribute verwendet'); + return redirect(route('admin_product_attributes')); + } + /* if(Attribute::where('parent_id', $id)->count()){ + \Session()->flash('alert-error', 'Eintrag wird als Main Attribute verwendet'); + return redirect(route('admin_industry_sectors')); + } + */ + $model = Attribute::findOrFail($id); + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_attributes')); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Auth/ConfirmPasswordController.php b/app/Http/Controllers/Auth/ConfirmPasswordController.php new file mode 100644 index 0000000..138c1f0 --- /dev/null +++ b/app/Http/Controllers/Auth/ConfirmPasswordController.php @@ -0,0 +1,40 @@ +middleware('auth'); + } +} diff --git a/app/Http/Controllers/Auth/ForgotPasswordController.php b/app/Http/Controllers/Auth/ForgotPasswordController.php new file mode 100644 index 0000000..465c39c --- /dev/null +++ b/app/Http/Controllers/Auth/ForgotPasswordController.php @@ -0,0 +1,22 @@ +middleware('guest')->except('logout'); + } + + + protected function authenticated(Request $request, $user) + { + $user->last_login = date('Y-m-d H:i:s'); + $user->save(); + } +} diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php new file mode 100644 index 0000000..ed1a5e0 --- /dev/null +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -0,0 +1,73 @@ +middleware('guest'); + } + + /** + * Get a validator for an incoming registration request. + * + * @param array $data + * @return \Illuminate\Contracts\Validation\Validator + */ + protected function validator(array $data) + { + return Validator::make($data, [ + 'name' => ['required', 'string', 'max:255'], + 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], + 'password' => ['required', 'string', 'min:8', 'confirmed'], + ]); + } + + /** + * Create a new user instance after a valid registration. + * + * @param array $data + * @return \App\Models\User + */ + protected function create(array $data) + { + return User::create([ + 'name' => $data['name'], + 'email' => $data['email'], + 'password' => Hash::make($data['password']), + ]); + } +} diff --git a/app/Http/Controllers/Auth/ResetPasswordController.php b/app/Http/Controllers/Auth/ResetPasswordController.php new file mode 100644 index 0000000..b1726a3 --- /dev/null +++ b/app/Http/Controllers/Auth/ResetPasswordController.php @@ -0,0 +1,30 @@ +middleware('auth'); + $this->middleware('signed')->only('verify'); + $this->middleware('throttle:6,1')->only('verify', 'resend'); + } +} diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php new file mode 100755 index 0000000..81cacd9 --- /dev/null +++ b/app/Http/Controllers/CategoryController.php @@ -0,0 +1,200 @@ +middleware('admin'); + } + + public function index() + { + + $data = [ + 'values' => Category::all(), + ]; + return view('admin.category.index', $data); + } + + public function edit($id) + { + if($id == "new"){ + $model = new Category(); + $model->active = true; + }else{ + $model = Category::findOrFail($id); + } + $data = [ + 'category' => $model, + 'trans' => array_keys(config('localization.supportedLocales')), + + ]; + return view('admin.category.edit', $data); + } + + public function store() + { + + $data = Request::all(); + $data['active'] = isset($data['active']) ? true : false; + $data['parent_id'] = isset($data['parent_id']) ? $data['parent_id'] : null; + if($data['id'] == "new"){ + $model = Category::create($data); + }else{ + $model = Category::find($data['id']); + $model->fill($data)->save(); + } + + $trans = []; + if(!empty($data['trans_name'])){ + + foreach ($data['trans_name'] as $lang => $value){ + if($value && $value != null){ + $trans[$lang] = $value; + } + } + } + $model->trans_name = $trans; + $model->save(); + + $trans = []; + if(!empty($data['trans_headline'])){ + foreach ($data['trans_headline'] as $lang => $value){ + if($value && $value != null){ + $trans[$lang] = $value; + } + } + } + $model->trans_headline = $trans; + $model->save(); + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_product_categories')); + + + } + + + public function delete($id){ + + if(ProductCategory::where('category_id', $id)->count()){ + \Session()->flash('alert-error', 'Eintrag wird als Produkt-Kategorie verwendet'); + return redirect(route('admin_product_categories')); + } + if(Category::where('parent_id', $id)->count()){ + \Session()->flash('alert-error', 'Eintrag wird als Haup-Kategorie verwendet'); + return redirect(route('admin_product_categories')); + } + $model = Category::findOrFail($id); + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_categories')); + } + + // Upload FILE ----------------------------------------------------------------------------------------------------------------------- + + public function imageUpload(){ + + $category_id = Request::get('category_id'); + $category = Category::findOrFail($category_id); + + try { + $image = \App\Services\Slim::getImages('images')[0]; + + if ( isset($image['output']['data']) ) + { + + // Base64 of the image + $data = $image['output']['data']; + $file_ex = array( 'image/jpeg' => 'jpg', 'image/png' => 'png'); + + if (!isset($file_ex[$image['output']['type']])) { + \Session()->flash('alert-danger', 'File is not jpg or png!'); + return redirect(route('admin_product_edit', [$category->id])); + } + + $ext = $file_ex[$image['output']['type']]; + // Original file name + $name = $image['output']['name']; + $name = \App\Services\Slim::sanitizeFileName($name); + $path = 'images/iq_images/'; + + $image_name = ""; + do { + $image_name = uniqid('', false) . '_' . $name; + } while (\Storage::disk('public')->exists($path.$image_name)); + + $data = \Storage::disk('public')->put( + $path.$image_name, + $data + ); + + $iq_image = IqImage::create([ + 'filename' => $image_name, + 'original_name' => $image['output']['name'], + 'ext' => $ext, + 'mine' => $image['output']['type'], + 'size' => $image['input']['size'] + ]); + + $category->headline_image_id = $iq_image->id; + $category->save(); + + \Session()->flash('alert-success', "Datei hochgeladen"); + return redirect(route('admin_product_category_edit', [$category->id])); + } + \Session()->flash('alert-danger', "Datei leer"); + return redirect(route('admin_product_category_edit', [$category->id])); + + } + catch (Exception $e) { + \Session()->flash('alert-danger', "Fehler".$e); + return redirect(route('admin_product_category_edit', [$category->id])); + } + } + + public function imageDelete($image_id, $category_id){ + + $category = Category::findOrFail($category_id); + $iq_image = IqImage::findOrFail($image_id); + + if($iq_image->id == $category->iq_image->id){ + $file = 'images/iq_images/'.$iq_image->filename; + \Storage::disk('public')->delete($file); + $category->headline_image_id = NULL; + $category->save(); + $iq_image->delete(); + + + \Session()->flash('alert-success', "Datei gelöscht"); + return redirect(route('admin_product_category_edit', [$category->id])); + + } + \Session()->flash('alert-danger', "Datei nicht gefunden"); + return redirect(route('admin_product_category_edit', [$category->id])); + + } + + public function imageAttribute($image_id, $attr, $val = false){ + + $iq_image = IqImage::findOrFail($image_id); + + $iq_image->{$attr} = $val; + $iq_image->save(); + + \Session()->flash('alert-success', "Wert gespeichert"); + return redirect()->back(); + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php new file mode 100644 index 0000000..03e02a2 --- /dev/null +++ b/app/Http/Controllers/Controller.php @@ -0,0 +1,13 @@ +middleware('admin'); + + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function index() + { + $data = [ + 'values' => Country::all(), + ]; + return view('admin.country.index', $data); + } + + + public function edit($id) + { + if($id === "new"){ + $model = new Country(); + $model->active = true; + }else{ + $model = Country::findOrFail($id); + } + $data = [ + 'country' => $model, + 'trans' => array_keys(config('localization.supportedLocales')), + + ]; + return view('admin.country.edit', $data); + } + + public function store() + { + + $data = Request::all(); + + $data['active'] = isset($data['active']) ? true : false; + $data['switch'] = isset($data['switch']) ? true : false; + $data['own_eur'] = isset($data['own_eur']) ? true : false; + $data['currency'] = isset($data['currency']) ? true : false; + $data['currency_faktor'] = $data['currency_faktor'] == "" ? null : reFormatNumber($data['currency_faktor']); + + if(!isset($data['attr'])){ + $data['attr'] = []; + } + if($data['id'] === "new"){ + $model = Country::create([ + /* 'parent_id' => null, + 'name' => $data['name'], + 'pos' => $data['pos'], + 'active' => isset($data['active']) ? true : false, + */ + ]); + }else{ + $model = Country::find($data['id']); + $model->fill($data); + $model->save(); + } + + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_country_edit', $model->id)); + + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/CronController.php b/app/Http/Controllers/CronController.php new file mode 100644 index 0000000..d2f2d2b --- /dev/null +++ b/app/Http/Controllers/CronController.php @@ -0,0 +1,240 @@ +userRepo = $userRepo; + + // $this->middleware('auth'); + } + + public function index() + { + //$this->checkConfirmation(); + //TODO + //SEPA Booking + //Mail reminder + } + + public function action($action = false, $key = false){ + + if($key !== 'key'){ + abort(404); + } + if($action === 'check_payments_account'){ + $this->checkPaymentsAccounts(); + } + } + /** + * Show the application dashboard. + * + * @return \Illuminate\Http\Response + */ + public function checkConfirmation() + { + $now = date('Y-m-d H:i:s'); + $next = date('Y-m-d H:i:s', strtotime('+3 week')); + + $users = User::where('confirmed', '=', 0)->where('confirmation_code_to', '<', $now)->get(); + + foreach ($users as $user) { + + //delete user + if ($user->confirmation_code_remider == 1) { + $this->userRepo->deleteUser($user); + + } + //send new remider + if ($user->confirmation_code_remider == 0) { + Mail::to($user->email)->send(new MailVerifyAccount($user->confirmation_code, $user)); + $user->confirmation_code_to = $next; + $user->confirmation_code_remider = 1; + $user->save(); + } + } + return "TOSK"; + } + + public function checkPaymentsAccounts(){ + + /*RULES + reminders + > 21 remind_first_days = 31 reminder_first + > 21 remind_first_days + sepa = 32 reminder_first_sepa + > 14 remind_sec_days = 33 reminder_sec + > 2 remind_last_days = 34 reminder_last + > 0 deaktiv = 35 reminder_deaktiv + > 0 deaktiv + sepa = 36 reminder_deaktiv_sepa + == 7 abo_booking_days + sepa + cron = 37 reminder_collect_sepa + */ + //max Date for reminder + $renewalDate = Carbon::now()->modify('+'.(config('mivita.remind_first_days')+1).' days'); + //dump($renewalDate); + $users = User::where('payment_account', '!=', NULL) + ->where('active', '=', 1) + ->where('blocked', '!=', 1) + ->where('payment_account', '<', $renewalDate) + ->get(); + + /* $user = User::find(2); + $this->checkReminderPayments($user); + dump($user->daysActiveAccount()); + dump($user->email." | ".$user->getPaymentAccountDateFormat()); + die();*/ + foreach ($users as $user){ + $this->checkReminderPayments($user); + /*dump($user->daysActiveAccount()); + dump($user->email." | ".$user->getPaymentAccountDateFormat()); + dump('-------------------');*/ + } + return "TOSK"; + } + + + private function checkReminderPayments(User $user){ + + /* $isSend = $this->checkIsReminderSend($user, 31); + $isSend = $this->checkIsReminderSend($user, 32); + $isSend = $this->checkIsReminderSend($user, 33); + $isSend = $this->checkIsReminderSend($user, 34); + $isSend = $this->checkIsReminderSend($user, 35); + $isSend = $this->checkIsReminderSend($user, 36); + return ;*/ + + //35 reminder_deaktiv, 36 reminder_deaktiv_sepa + if(!$user->isActiveAccount()){ + if($user->isAboOption()){ + $isSend = $this->checkIsReminderSend($user, 35); + return $isSend; + } + $isSend = $this->checkIsReminderSend($user, 36); + return $isSend; + } + + //34 reminder_last + if($user->daysActiveAccount() <= config('mivita.remind_last_days')){ + $isSend = $this->checkIsReminderSend($user, 34); + return $isSend; + } + + //33 reminder_sec + if($user->daysActiveAccount() <= config('mivita.remind_sec_days')){ + if(!$user->isAboOption()){ + $isSend = $this->checkIsReminderSend($user, 33); + return $isSend; + } + } + + //31 reminder_first, 32 reminder_first_sepa + if($user->daysActiveAccount() > config('mivita.remind_sec_days')){ + if($user->isAboOption()){ + $isSend = $this->checkIsReminderSend($user, 32); + return $isSend; + } + $isSend = $this->checkIsReminderSend($user, 31); + return $isSend; + } + } + + + private function checkIsReminderSend(User $user, $status){ + + $isSend = UserHistory::whereUserId($user->id) + ->whereAction('reminder_payments') + ->whereIdentifier($user->payment_account) + ->whereStatus($status) + ->get()->last(); + + if($isSend){ + return true; + } + $referenz = $this->sendReminderMail($user, $status); + //is not sent create + UserHistory::create(['user_id' => $user->id, 'action'=>'reminder_payments', 'referenz'=>$referenz, 'identifier'=>$user->payment_account, 'status'=>$status]); + return false; + + } + + private function sendReminderMail(User $user, $status){ + + $days = $user->daysActiveAccount(); + if($days < 0){ + $days = $days*-1; + } + + //dump($days); + //dump($status); + $pay_date = Carbon::parse($user->payment_account)->modify('- '.config('mivita.abo_booking_days').' days')->format('d.m.Y'); + $datetime = $user->getPaymentAccountDateFormat(); + $price = ""; + if($user->payment_order_id && isset($user->payment_order_product->price)){ + $price = 'von '.$user->payment_order_product->getFormattedPrice().' EUR'; + } + + $message = __('reminder.copy_first_'.$status, ['days'=>$days, 'datetime'=>$datetime, 'price' =>$price, 'pay_date'=>$pay_date]); + $message_last = __('reminder.copy_last_'.$status, ['days'=>$days, 'datetime'=>$datetime, 'price' =>$price, 'pay_date'=>$pay_date]); + $button = __('reminder.button_'.$status); + + $message = preg_replace("/[\n\r]/","",$message); + $message_last = preg_replace("/[\n\r]/","",$message_last); + + $data = [ + 'subject' => __('reminder.subject')." | ID: ".$status, + 'message' => $message, + 'message_last' => $message_last, + 'url' => route('user_membership'), + 'button' => $button, + ]; + //dump($data); + $sender = User::find(1); + $customer_mail = UserMessage::create([ + 'user_id' => $user->id, + 'send_user_id' => $sender->id, + 'email' => $user->email, + 'subject' => $data['subject'], + 'message' => $data['message']." ".$data['message_last'], + ]); + try{ + if($status >= 34){ + Mail::to($user->email)->bcc(config('app.default_mail'))->send(new MailCustomMessage($user, $data, $sender, false)); + }else{ + Mail::to($user->email)->send(new MailCustomMessage($user, $data, $sender, false)); + } + } + catch(\Exception $e){ + \Log::channel('cron')->error('Mail Error: '.$e->getMessage()); + // Never reached + $customer_mail->fail = true; + $customer_mail->error = $e->getMessage(); + $customer_mail->save(); + return 0; + } + $customer_mail->send = true; + $customer_mail->sent_at = now(); + $customer_mail->save(); + return 1; + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php new file mode 100755 index 0000000..e453c1a --- /dev/null +++ b/app/Http/Controllers/CustomerController.php @@ -0,0 +1,205 @@ +middleware('admin'); + $this->customerRepository = $customerRepository; + + } + + public function index() + { + if(Request::get('reset') === 'filter'){ + set_user_attr('filter_member_id', null); + set_user_attr('filter_customer_member', null); + return redirect(route('admin_customers')); + } + $filter_members = ShoppingUser::join('users', 'member_id', '=', 'users.id')->groupBy('member_id')->join('user_accounts', 'account_id', '=', 'user_accounts.id')->select('users.id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')->get(); //->pluck('email', 'id')->unique()->toArray(); + $data = [ + 'filter_members' => $filter_members, + ]; + return view('admin.customer.index', $data); + } + + + public function detail($id) + { + $shopping_user = ShoppingUser::findOrFail($id); + $data = [ + 'shopping_user' => $shopping_user, + 'isAdmin' => true, + 'isView' => 'customer', + ]; + return view('admin.customer.detail', $data); + } + + public function edit($id) + { + if($id === "new"){ + $shopping_user = new ShoppingUser(); + $shopping_user->id = "new"; + }else{ + $shopping_user = ShoppingUser::findOrFail($id); + } + $data = [ + 'shopping_user' => $shopping_user, + 'isAdmin' => true, + 'isView' => 'customer', + + ]; + return view('admin.customer.edit', $data); + } + + public function store($id) + { + $data = Request::all(); + + if ($data['action'] === 'shopping-user-change-member') { + if (!isset($data['change_member_key']) || $data['change_member_key'] !== config('main.edit_data_pass')) { + $data = [ + 'change_member_error' => "Das Passwort ist falsch.", + 'shopping_user' => ShoppingUser::find($id), + 'isAdmin' => true, + 'isView' => 'customer', + ]; + return view('admin.customer.detail', $data); + } + //change + $shopping_user = ShoppingUser::findOrFail($data['id']); + CustomerPriority::newMemberForCustomer($shopping_user, $data['change_member_id'], $data['customer_set_member_for']); + \Session()->flash('alert-save', true); + return redirect(route('admin_customer_detail', [$shopping_user->id])); + } + if ($data['action'] === 'shopping-user-store') { + $rules = array( + 'billing_salutation' => 'required', + 'billing_firstname'=>'required', + 'billing_lastname'=>'required', + 'billing_email'=>'required|email', + 'billing_address'=>'required', + 'billing_zipcode'=>'required', + 'billing_city' => 'required', + 'billing_country_id' => 'required' + ); + + if(!Request::get('same_as_billing')){ + $rules = array_merge($rules, [ + 'shipping_firstname'=>'required', + 'shipping_lastname'=>'required', + 'shipping_address'=>'required', + 'shipping_zipcode'=>'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required', + 'shipping_country_id' => 'required' + ]); + } + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + + $shopping_user = ShoppingUser::findOrFail($id); + $data['has_buyed'] = true; + $data['subscribed'] = true; + if($shopping_user->auth_user_id > 0){ + $data['has_buyed'] = true; + $data['subscribed'] = false; + } + $data['same_as_billing'] = isset($data['same_as_billing']) ? true : false; + $data['shipping_country_id'] = isset($data['shipping_country_id']) ? $data['shipping_country_id'] : $data['billing_country_id']; + CustomerPriority::checkChangeOne($shopping_user, $data, true); + $shopping_user->fill($data); + $shopping_user->save(); + \App\Services\Shop::newUserOrder($shopping_user->number); + + \Session()->flash('alert-save', true); + } + return redirect(route('admin_customer_detail', [$shopping_user->id])); + + } + + public function getCustomers() + { + $query = ShoppingUser::select('shopping_users.*')->where('auth_user_id', '=', NULL); + + set_user_attr('filter_member_id', Request::get('filter_member_id')); + if(Request::get('filter_member_id') != ""){ + $query->where('member_id', '=', Request::get('filter_member_id')); + } + /* set_user_attr('filter_customer_member', Request::get('filter_customer_member')); + if(Request::get('filter_customer_member') != ""){ + if(Request::get('filter_customer_member') === 'customers'){ + $query->where('auth_user_id', '=', NULL); + } + if(Request::get('filter_customer_member') === 'members'){ + $query->where('auth_user_id', '!=', NULL); + } + }*/ + return \DataTables::eloquent($query) + ->addColumn('id', function (ShoppingUser $ShoppingUser) { + return ''; + }) + ->addColumn('billing_email', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->faker_mail ? "-" : $ShoppingUser->billing_email; + }) + ->addColumn('billing_salutation', function (ShoppingUser $ShoppingUser) { + return HTMLHelper::getSalutationLang($ShoppingUser->billing_salutation); + }) + ->addColumn('billing_country_id', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->billing_country ? $ShoppingUser->billing_country->getLocated() : ''; + }) + ->addColumn('isMember', function (ShoppingUser $ShoppingUser) { + return get_active_badge($ShoppingUser->auth_user_id).($ShoppingUser->mode==='dev' ? ' dev' : ''); + }) + ->addColumn('member_id', function (ShoppingUser $ShoppingUser) { + if($ShoppingUser->is_like){ + return ''; + } + if($ShoppingUser->member_id){ + return ''.$ShoppingUser->member->getFullName().''; + } + + return ''; + }) + ->addColumn('created_at', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->created_at->format('d.m.Y'); + }) + ->addColumn('subscribed', function (ShoppingUser $ShoppingUser) { + return get_active_badge($ShoppingUser->subscribed); + }) + ->filterColumn('billing_email', function($query, $keyword) { + if($keyword != ""){ + $query->where('billing_email', 'LIKE', '%'.$keyword.'%'); + } + }) + ->orderColumn('id', 'id $1') + ->orderColumn('billing_country_id', 'billing_country_id $1') + ->orderColumn('billing_salutation', 'billing_salutation $1') + ->orderColumn('billing_email', 'billing_email $1') + ->orderColumn('created_at', 'created_at $1') + ->orderColumn('isMember', 'auth_user_id $1') + ->orderColumn('member_id', 'member_id $1') + ->orderColumn('subscribed', 'subscribed $1') + ->rawColumns(['id', 'subscribed', 'isMember', 'member_id']) + ->make(true); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/DataTableController.php b/app/Http/Controllers/DataTableController.php new file mode 100644 index 0000000..d1e1f71 --- /dev/null +++ b/app/Http/Controllers/DataTableController.php @@ -0,0 +1,100 @@ +select('users.*')->where('users.deleted_at', '=', null)->where('users.admin', "<", 4); + + return \DataTables::eloquent($query) + ->addColumn('first_name', function (User $user) { + return $user->account ? $user->account->first_name : ''; + }) + ->addColumn('last_name', function (User $user) { + return $user->account ? $user->account->last_name : ''; + }) + ->addColumn('id', function (User $user) { + return ''; + }) + ->addColumn('admin', function (User $user) { + return ''.HTMLHelper::getRoleLabel($user->admin).''; + }) + ->addColumn('confirmed', function (User $user) { + $date = $user->getConfirmationDateFormat(); + $link = ''; + return $user->confirmed ? $link.' '.$date.'' : $link.''; + }) + ->addColumn('active', function (User $user) { + $date = $user->getActiveDateFormat(); + $link = ''; + return $user->active ? $link.' '.$date.'' : $link.''; + }) + ->addColumn('account', function (User $user) { + $date = $user->getPaymentAccountDateFormat(); + $link = ''; + if($user->payment_account){ + if($user->isActiveAccount()){ + return $link.' '.$date.''; + } + return $link.' '.$date.''; + } + return $link.''; + }) + /* ->addColumn('shop', function (User $user) { + $date = $user->getPaymentShopDateFormat(); + $link = ''; + if($user->payment_shop){ + if($user->isActiveShop()){ + return $link.' '.$date.''; + } + return $link.' '.$date.''; + } + return $link.''; + }) + ->addColumn('since', function (User $user) { + if($user->shop){ + if($user->shop->active){ + return $user->shop->getActiveDateFormatSmall(); + } + return $user->shop->getActiveDateFormatSmall(); + } + return "-"; + })*/ + ->addColumn('my_payment_methods', function (User $user) { + $payment_methods = json_encode($user->payment_methods); + $link = ''; + if(!$user->payment_methods){ + return $link.''; + } + return $link.' '.$user->getPaymentMethodsShort().''; + + }) + ->addColumn('action_delete', function (User $user) { + return ' + '; + }) + ->addColumn('test_mode', function (User $user) { + $link = ''; + return $user->test_mode ? $link.'' : $link.''; + + }) + ->orderColumn('id', 'id $1') + ->orderColumn('confirmed', 'confirmed $1') + ->orderColumn('active', 'active $1') + ->orderColumn('shop', 'shop $1') + ->orderColumn('admin', 'active $1') + ->rawColumns(['id', 'admin', 'confirmed', 'active', 'account', 'shop', 'my_payment_methods', 'test_mode', 'action_delete']) + ->make(true); + } +} diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php new file mode 100644 index 0000000..18b4e66 --- /dev/null +++ b/app/Http/Controllers/HomeController.php @@ -0,0 +1,158 @@ +middleware('guest'); + } + + /** + * Show the application dashboard. + * + * @return \Illuminate\Contracts\Support\Renderable + */ + public function index() + { + if(!Auth::check()){ + return redirect('login'); + } + return redirect('home'); + + } + + //login / Dashboard + public function show() + { + if(!Auth::check()){ + return redirect('login'); + } + $data = [ + 'user' => Auth::user(), + 'now' => Carbon::now(), + ]; + return view('home', $data); + } + + public function loadingModal(){ + + $data = Request::get('data'); + $target = Request::get('target'); + + $response = ""; + if($data === "data_protection"){ + $data = [ + 'modal' => true, + 'user_shop' => Util::getUserShop(), + ]; + $response = view('legal.data_protect_de', $data)->render(); + } + if($data === "imprint"){ + $data = [ + 'modal' => true, + 'user_shop' => Util::getUserShop(), + ]; + $response = view('legal.imprint_de', $data)->render(); + } + if($data === "shop_term_of_use"){ + $data = [ + 'modal' => true, + 'user_shop' => Util::getUserShop(), + ]; + $response = view('legal.shop_term_of_use_de', $data)->render(); + } + if($data === "agb"){ + $data = [ + 'modal' => true, + 'user_shop' => Util::getUserShop(), + ]; + $response = view('legal.agb_de', $data)->render(); + } + if(Request::ajax()) { + return response()->json(['response' => $response, 'target'=>$target]); + } + abort(404); + } + + + public function verify($confirmation_code){ + if( ! $confirmation_code) + { + return redirect('/status/error'); + } + + $user = User::whereConfirmationCode($confirmation_code)->first(); + + if ( ! $user) + { + return redirect('/status/not/found'); + } + if($user->confirmed === 0){ + $user->confirmed = 1; + //kill after wizzard! + // $user->confirmation_code = null; + // $user->confirmation_code_to = null; + // $user->confirmation_code_remider = 0; + $user->confirmation_date = now(); + } + + $user->save(); + + //Login! + Auth::login($user); + + return redirect('/home'); + } + + public function statusRegister(){ + return view('status.status_register'); + } + public function statusVerify(){ + return view('status.status_verify'); + } + public function statusError(){ + return view('status.status_error'); + } + public function notFound(){ + return view('status.not_found'); + } + + public function blocked() + { + return view('status.user_blocked'); + } + + /** + * @return string + */ + public function checkMail(){ + + $data = Request::all(); + if($data['user_id'] === "new"){ + if(User::where('email', $data['email'])->count()){ + return json_encode(false); + } + }else{ + if(User::where('email', $data['email'])->where('id', '!=', $data['user_id'])->count()){ + return json_encode(false); + } + } + return json_encode(true); + } + +} diff --git a/app/Http/Controllers/ImportProductController.php b/app/Http/Controllers/ImportProductController.php new file mode 100755 index 0000000..0c6f75f --- /dev/null +++ b/app/Http/Controllers/ImportProductController.php @@ -0,0 +1,106 @@ +middleware('admin'); + $this->productRepo = $productRepo; + + } + + public function import(){ + + $path = app_path().'/../_static/products/'; + + include($path.'_all_products.php'); + + $slugs = array(); + + foreach ($get_products as $c_id => $values){ + + foreach ($values as $val){ + if(in_array($val['slug'], $slugs)){ + continue; + } + $slugs[] = $val['slug']; + + include($path.$val['slug'].'.php'); + + $data = [ + 'id' => 'new', + 'name' => $val['name'], + 'title' => '', + 'copy' => $copy, + 'price' => $price, + 'price_ek' => 0, + 'tax' => 19, + 'price_old' => null, + 'contents' => $content, + 'number' => $item_no, + 'icons' => $icons, + 'description' => $description, + 'usage' => $usage, + 'ingredients' => $ingredients, + 'pos' => null, + 'amount' => 0, + 'active' => 1, + 'categories' => array($c_id), + ]; + + + $product = $this->productRepo->update($data); + //images + foreach($images as $image){ + $i_path = storage_path().'/'.'app'.'/products/' .$val['slug'].'/'.$image['image']; + $mine = \File::mimeType($i_path); + $ext = \File::extension($i_path); + $size = \File::size($i_path); + $original_name = $image['image']; + + $name = \App\Services\Slim::sanitizeFileName($image['image']); + $name = uniqid() . '_' . $name; + + $img = \Image::make($i_path); + $img->resize(600, 800, function ($c) { + // $c->aspectRatio(); + $c->upsize(); + }); + // + \Storage::put('/public/images/product/'.$product->id.'/'.$name, (string) $img->encode()); + + + ProductImage::create([ + 'product_id' => $product->id, + 'filename' => $name, + 'original_name' => $original_name, + 'ext' => $ext, + 'mine' => $mine, + 'size' => $size + ]); + } + } + + } + + + die("okay"); + //array('slug' => 'aloe-vera-gel99', 'name' => 'Aloe Vera Gel 99%', 'first' => 'aloe-vera-gel99-1.jpg', 'hover' => 'aloe-vera-gel99-2.jpg'), + + } + + + +} \ No newline at end of file diff --git a/app/Http/Controllers/IngredientController.php b/app/Http/Controllers/IngredientController.php new file mode 100755 index 0000000..9dd2703 --- /dev/null +++ b/app/Http/Controllers/IngredientController.php @@ -0,0 +1,78 @@ +middleware('admin'); + } + + public function index() + { + + $data = [ + 'values' => Ingredient::all(), + ]; + return view('admin.ingredient.index', $data); + } + + public function edit($id) + { + if($id === "new"){ + $model = new Ingredient(); + $model->active = true; + }else{ + $model = Ingredient::findOrFail($id); + } + $data = [ + 'model' => $model, + //'trans' => array_keys(config('localization.supportedLocales')), + + ]; + return view('admin.ingredient.edit', $data); + } + + public function store() + { + + $data = Request::all(); + $data['active'] = isset($data['active']) ? true : false; + if($data['id'] === "new"){ + $model = Ingredient::create($data); + }else{ + $model = Ingredient::find($data['id']); + $model->fill($data)->save(); + } + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_product_ingredients')); + + + } + + public function delete($id){ + + if(ProductIngredient::where('ingredient_id', $id)->count()) { + \Session()->flash('alert-error', 'Eintrag wird als Produkt-Inhaltsstoff verwendet'); + return redirect(route('admin_product_ingredients')); + } + $model = Ingredient::findOrFail($id); + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_ingredients')); + } + + +} \ No newline at end of file diff --git a/app/Http/Controllers/LeadController.php b/app/Http/Controllers/LeadController.php new file mode 100755 index 0000000..22f6ffe --- /dev/null +++ b/app/Http/Controllers/LeadController.php @@ -0,0 +1,396 @@ +middleware('admin'); + $this->userRepo = $userRepo; + + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function index() + { + $data = [ + 'values' => User::where('admin', '=', 0)->where('confirmation_code_remider', '!=', 2)->get(), + ]; + return view('admin.lead.index', $data); + } + + + /** + * @param $id + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function edit($id) + { + if($id === "new"){ + $user = new User(); + $user->account = new UserAccount(); + $user->account->same_as_billing = 1; + $user->account->country_id = 1; + $user->account->shipping_country_id = 1; + $user->id = "new"; + }else{ + $user = User::findOrFail($id); + if(!$user->account){ + $user->account = new UserAccount(); + } + } + $data = [ + 'show' => Request::get('show'), + 'user' => $user, + 'can_change_mail' => true, + 'm_data_load' => false, + 'm_data_error' => false, + ]; + return view('admin.lead.edit', $data); + } + + /** + * @param $id + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function editPost($id) + { + $m_data_load = false; + $m_data_error = false; + $data = Request::all(); + if(!isset($data['edit_m_data_key']) || $data['edit_m_data_key'] !== config('main.edit_data_pass')){ + $m_data_error = "Das Passwort ist falsch."; + }else{ + $m_data_load = true; + } + + if($id === "new"){ + $user = new User(); + $user->account = new UserAccount(); + $user->account->same_as_billing = 1; + $user->account->country_id = 1; + $user->account->shipping_country_id = 1; + $user->id = "new"; + }else{ + $user = User::findOrFail($id); + if(!$user->account){ + $user->account = new UserAccount(); + } + } + $next_account_id = UserAccount::max('m_account') +1; + if($user->account->m_account === null){ + $user->account->m_account = $next_account_id; + } + + $data = [ + 'show' => 'check_lead', + 'user' => $user, + 'm_data_load' => $m_data_load, + 'm_data_error' => $m_data_error, + 'can_change_mail' => true, + 'next_account_id' => $next_account_id + ]; + return view('admin.lead.edit', $data); + } + + /** + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function store(Request $request) + { + + $data = Request::all(); + $show = Request::get('show'); + + if ($data['user_id'] === "new" || $data['user_id'] == 0) { + $rules = array( + 'salutation' => 'required', + 'first_name'=>'required', + 'last_name'=>'required', + 'email' => 'required|string|email|max:255|unique:users', + 'email-confirm' => 'required|same:email', + ); + }else{ + $rules = array( + 'salutation' => 'required', + 'first_name'=>'required', + 'last_name'=>'required', + 'address'=>'required', + 'zipcode'=>'required', + 'city' => 'required', + 'email' => 'required|string|email|max:255|exists:users,email', + 'email-confirm' => 'required|same:email', + ); + if(!Request::get('same_as_billing')){ + $rules = array_merge($rules, [ + 'shipping_firstname'=>'required', + 'shipping_lastname'=>'required', + 'shipping_address'=>'required', + 'shipping_zipcode'=>'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required' + + ]); + } + } + + if(isset($data['m_account']) && $data['m_account']){ + $user = User::findOrFail($data['user_id']); + $rules['m_account'] = 'unique:user_accounts,m_account,'.$user->account->id.',id'; + + + } + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + + if ($data['user_id'] === "new" || $data['user_id'] == 0) { + $user_id = "new"; + }else{ + $user = User::findOrFail($data['user_id']); + $user_id = $user->id; + } + return redirect(route('admin_lead_edit', [$user_id])."?show=".$show)->withErrors($validator)->withRequest(Request::all()); + } + + if ($data['user_id'] === "new" || $data['user_id'] == 0) { + $user = new User(); + $user->id = "new"; + $user->account = new UserAccount(); + + }else { + $user = User::findOrFail($data['user_id']); + if(!$user->account){ + $user->account = new UserAccount(); + } + } + + $this->userRepo->update($data); + + if(isset($data['m_data_edit']) && $data['m_data_edit'] === "TSOK"){ + $user = $this->userRepo->getModel(); + $user->m_level = isset($data['m_level']) ? $data['m_level'] : NULL; + $user->m_sponsor = isset($data['m_sponsor']) ? $data['m_sponsor'] : NULL; + $user->save(); + } + + if(isset($data['contact_verify'])){ + + $user = $this->userRepo->getModel(); + + $confirmation_code = UserService::createConfirmationCode(); + + $user->lang = $user->getLandByCountry(); + $user->confirmation_code = $confirmation_code; + //10 == start wizard form create Lead + $user->wizard = 10; + $user->save(); + Mail::to($user->email)->send(new MailVerifyContact($confirmation_code, $user)); + + \Session()->flash('alert-save', true); + return redirect(route('admin_leads')); + } + + \Session()->flash('alert-save', true); + return redirect(route('admin_lead_edit', [$user->id])."?show=".$show); + + + + + } + //user released when register is complete + public function released($action, $id){ + + $user = User::findOrFail($id); + + if($action === 'completed'){ + $validator = Validator::make(Request::all(), []); + if(!$user->m_sponsor){ + $validator->errors()->add('m_sponsor', __('Berater hat keinen Sponsor.')); + } + if(!$user->account->m_first_name){ + $validator->errors()->add('m_first_name', __('Berater hat keinen Vornamen.')); + } + if(!$user->account->m_first_name){ + $validator->errors()->add('m_last_name', __('Berater hat keinen Nachnamen.')); + } + if(!$user->account->m_account){ + $validator->errors()->add('m_account', __('Berater hat keine Account ID')); + } + if ($validator->errors()->count()) { + return back()->withErrors($validator)->withRequest(Request::all()); + } + + //create PDF + $pdf = new ContractPDFRepository($user); + $pdf->_set('disk', 'user'); + $pdf->_set('dir', '/'.$user->id.'/documents/'); + $pdf->_set('user_id', $user->id); + $pdf->_set('identifier', 'contract'); + $pdf->createContractPDF(); + + //set wizard tp payments + $user->wizard = 20; + $user->active = 1; + $user->active_date = now(); + $user->confirmation_code = null; + $user->confirmation_code_to = null; + $user->confirmation_code_remider = 0; + $user->save(); + + //mail with code to user? + Mail::to($user->email)->send(new MailAccountActive($user)); + UserHistory::create(['user_id' => $user->id, 'action'=>'released_completed', 'status'=>0]); + \Session()->flash('alert-success', "Berater freigeschaltet!"); + } + + if($action === 'incomplete'){ + + + //reset release + $confirmation_code = UserService::createConfirmationCode(); + $user->confirmation_code = $confirmation_code; + $user->confirmation_code_to = date('Y-m-d H:i:s', strtotime('+1 week')); + $user->confirmation_code_remider = 0; + $user->wizard = 1; + $user->release_account = null; + $user->save(); + + $input = Request::all(); + $data = [ + 'subject' => $input['account_incomplete_subject'], + 'message' => $input['account_incomplete_message'], + 'confirmation_code' => $confirmation_code, + ]; + try { + Mail::to($user->email)->send(new MailCustomMessage($user, $data, \Auth::user(), true)); + } + catch(\Exception $e){ + dump($e->getMessage()); + dd("error"); + } + UserHistory::create(['user_id' => $user->id, 'action'=>'released_incomplete', 'status'=>0]); + \Session()->flash('alert-success', "E-Mail an Berater gesendet."); + + } + return redirect(route('admin_lead_edit', [$user->id])); + } + + + //send new verfified mail to user + public function newMailVerified($id){ + + $user = User::findOrFail($id); + + $confirmation_code = UserService::createConfirmationCode(); + $user->confirmation_code = $confirmation_code; + $user->confirmation_code_to = date('Y-m-d H:i:s', strtotime('+1 week')); + $user->confirmation_code_remider = 0; + $user->save(); + + try { + Mail::to($user->email)->send(new MailVerifyAccount($confirmation_code, $user)); + } + catch(\Exception $e){ + dump($e->getMessage()); + dd("error"); + } + UserHistory::create(['user_id' => $user->id, 'action'=>'new_mail_verified', 'status'=>0]); + + \Session()->flash('alert-success', "E-Mail erneut gesendet"); + return redirect(route('admin_lead_edit', [$user->id])); + + } + + + public function deleteFile($user_id, $file_id, $relation){ + + if($relation === 'upload'){ + $user = User::findOrFail($user_id); + $file = $user->files()->findOrFail($file_id); + //remove file + \Storage::disk('user')->delete($file->dir.$file->filename); + $file->delete(); + \Session()->flash('alert-success', "Datei gelöscht"); + } + return back(); + } + + + public function getLeads() + { + + $query = User::with('account')->select('users.*')->where('users.deleted_at', '=', null)->where('users.admin', "<", 4); + + return \DataTables::eloquent($query) + ->addColumn('first_name', function (User $user) { + return $user->account ? $user->account->first_name : ''; + }) + ->addColumn('last_name', function (User $user) { + return $user->account ? $user->account->last_name : ''; + }) + ->addColumn('user_level', function (User $user) { + return $user->user_level ? $user->user_level->name : ''; + }) + ->addColumn('id', function (User $user) { + return ''; + }) + ->addColumn('confirmed', function (User $user) { + return $user->confirmed ? '' : ''; + }) + ->addColumn('active', function (User $user) { + return $user->active ? ' ' : ''; + }) + ->addColumn('agreement', function (User $user) { + return $user->agreement ? ' ' : ''; + }) + ->addColumn('payment_account', function (User $user) { + return $user->payment_account ? ' ' : ''; + }) + ->addColumn('payment_account_date', function (User $user) { + return $user->payment_account ? $user->getPaymentAccountDateFormat(false) : "-"; + }) + ->addColumn('payment_shop', function (User $user) { + return $user->payment_shop ? ' ' : ''; + }) + ->addColumn('payment_shop_date', function (User $user) { + return $user->payment_shop ? $user->getPaymentShopDateFormat(false) : "-"; + }) + ->addColumn('turnover', function (User $user) { + return "-"; + }) + ->addColumn('sales_total', function (User $user) { + return "-"; + }) + + + + ->orderColumn('id', 'id $1') + ->orderColumn('confirmed', 'confirmed $1') + ->orderColumn('active', 'active $1') + ->orderColumn('agreement', 'agreement $1') + ->orderColumn('payment_account', 'payment_account $1') + ->orderColumn('payment_shop', 'payment_shop $1') + ->rawColumns(['id', 'confirmed', 'active', 'agreement', 'payment_account', 'payment_shop']) + ->make(true); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/MembershipController.php b/app/Http/Controllers/MembershipController.php new file mode 100755 index 0000000..65ca030 --- /dev/null +++ b/app/Http/Controllers/MembershipController.php @@ -0,0 +1,170 @@ +middleware('auth'); + } + + + public function index() + { + $user = User::find(Auth::user()->id); + $diff_months = 0; + + if($user->payment_account){ + $diff_months = Carbon::now()->diffInMonths(Carbon::parse($user->payment_account)) +1; + } + + $userHistoryPaymentOrder = UserHistory::whereUserId($user->id)->whereAction('payment_order')->get()->last(); + $userHistoryUpgradeOrder = UserHistory::whereUserId($user->id)->whereAction('upgrade_order')->get()->last(); + $userHistoryDeleteMembership = UserHistory::whereUserId($user->id)->whereAction('delete_membership')->whereStatus(50)->get()->last(); + + + $data = [ + 'user' => $user, + 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), + 'upgrade' => Product::where('active', true)->where('show_at', '=', 4)->where('identifier', 'upgrade')->get(), + 'diff_months' => $diff_months, + 'userHistoryPaymentOrder' => $userHistoryPaymentOrder, + 'userHistoryUpgradeOrder' => $userHistoryUpgradeOrder, + 'userHistoryDeleteMembership' => $userHistoryDeleteMembership, + ]; + return view('user.membership.index', $data); + + } + + + public function storePayment($action){ + + + $data = Request::all(); + + //#### remove_abo + if($action === "remove_abo"){ + if(Request::get('abo_options_remove')){ + $user = User::find(Auth::user()->id); + $user->abo_options = false; + $user->save(); + $user->account->payment_data = null; + $user->account->save(); + UserHistory::create(['user_id' => $user->id, 'action'=>'abo_options_remove', 'status'=>10]); + \Session()->flash('alert-success', "Abo-Option deaktiviert"); + return back(); + } + \Session()->flash('alert-error', "Fehler, Checkbox nicht bestätigt."); + return back(); + } + //#### payment order + //#### shop upgrade + if($action === "upgrade_order" || $action === "payment_order"){ + if(Request::get('switchers-package-wizard')){ + $user = User::find(Auth::user()->id); + Yard::instance('shopping')->destroy(); + $product = Product::find(Request::get('switchers-package-wizard')); + $showAboOptions = false; + if(Request::get('abo_options')){ + $showAboOptions = true; + $user->abo_options = true; + $user->save(); + } + if($product && $product->active && $product->show_at >= 3){ + $image = ""; + if($product->images->count()){ + $image = $product->images->first()->slug; + } + $qty = Request::get('qty') ? Request::get('qty') : 1; + Yard::instance('shopping')->add($product->id, $product->getLang('name'), $qty, $product->price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]); + + do { + $identifier = Util::getToken(); + } while( ShoppingInstance::where('identifier', $identifier)->count() ); + + $data = []; + $data['is_from'] = 'membership'; + $data['is_for'] = 'me'; + + ShoppingInstance::create([ + 'identifier' => $identifier, + 'user_shop_id' => 1, //is first faker shop for nuy intern + 'auth_user_id' => Auth::user()->id, + 'payment' => 3, //Berater Membership + 'subdomain' => url('/'), + 'country_id' => Yard::instance('shopping')->getShippingCountryId(), + 'shopping_data' => $data, + 'back' => url()->previous(), + + ]); + Yard::instance('shopping')->store($identifier); + //add to DB + $path = route('checkout.checkout_card', ['identifier'=>$identifier]); + UserHistory::create(['user_id' => $user->id, 'action'=>$action, 'status'=>1, 'product_id'=>$product->id, 'identifier'=>$identifier, 'abo_options'=>$showAboOptions]); + //$path = str_replace('http', 'https', $path); + return redirect()->secure($path); + } + } + } + + if($action === "change_order"){ + if(Request::get('switchers-package-wizard')){ + $user = User::find(Auth::user()->id); + $product = Product::find(Request::get('switchers-package-wizard')); + if($user->payment_order_id == $product->id){ + \Session()->flash('alert-success', "keine Änderung vorgenommen."); + return back(); + } + if($product && $product->active && $product->show_at >= 3){ + $user->payment_order_id = $product->id; + $user->save(); + UserHistory::create(['user_id' => $user->id, 'action'=>$action, 'status'=>10, 'product_id'=>$product->id]); + \Session()->flash('alert-success', "gebuchtes Paket wurde geändert."); + return back(); + + } + } + } + if($action === "delete_membership"){ + if(Request::get('delete_membership_mivita')){ + //TODO + $user = User::find(Auth::user()->id); + if($user->isTestMode()){ + $mail = config('app.info_test_mail'); + }else{ + $mail = config('app.info_mail'); + } + Mail::to($mail)->send(new MailInfo($user, 'delete_membership')); + UserHistory::create(['user_id' => $user->id, 'action'=>$action, 'status'=>50]); + \Session()->flash('alert-success', "Mitgliedschaft beenden ist beantragt"); + return back(); + } + \Session()->flash('alert-error', "Fehler, Checkbox nicht bestätigt."); + return back(); + + } + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/ModalController.php b/app/Http/Controllers/ModalController.php new file mode 100644 index 0000000..db94f38 --- /dev/null +++ b/app/Http/Controllers/ModalController.php @@ -0,0 +1,93 @@ +middleware('auth'); + } + + public function load(){ + $data = Request::all(); + $ret = ""; + $status = false; + if(Request::ajax()){ + if($data['action'] === 'shopping-order-change-member'){ + $value = ShoppingOrder::find($data['id']); + $route = route('admin_sales_customers_detail', [$value->id]); + $ret = view("admin.modal.member", compact('value', 'data', 'route'))->render(); + } + if($data['action'] === 'shopping-user-change-member'){ + $value = ShoppingUser::find($data['id']); + $route = route('admin_customer_edit', [$value->id]); + $ret = view("admin.modal.member", compact('value', 'data', 'route'))->render(); + } + if($data['action'] === 'shopping-user-is-like-member'){ + $current = ShoppingUser::find($data['id']); //current user form order + $possibles = []; + if($current->is_like){ + $likes = $current->getNotice('like'); + foreach ($likes as $like_id=>$number){ + $possibles[] = ShoppingUser::find($like_id); + } + } + $ret = view("admin.modal.is_like_member", compact('current', 'possibles', 'data'))->render(); + } + if($data['action'] === 'user-order-show-product'){ + $product = Product::find($data['id']); //current user form order + $ret = view("admin.modal.show_product", compact('product', 'data'))->render(); + } + + if($data['action'] === 'user-order-my-delivery-show'){ + $user = \Auth::user(); + $ret = view("admin.modal.show_user_customers", compact('user', 'data'))->render(); + } + + if($data['action'] === 'user-order-my-delivery-add'){ + $user = \Auth::user(); + + /* $product = Product::find($data['id']); //current user form order + $ret = view("admin.modal.show_product", compact('product', 'data'))->render(); */ + } + + + if($data['action'] === 'homeparty-add-product') { + $homeparty = Homeparty::find($data['id']); + $homeparty_user = HomepartyUser::find($data['user_id']); + $data['homeparty'] = $homeparty; + $ret = view("user.homeparty.modal_show_products", compact( 'data', 'homeparty', 'homeparty_user'))->render(); + + + } + + + + } + return response()->json(['response' => $data, 'html'=>$ret, 'status'=>$status]); + } + + +} + + + +/* */ \ No newline at end of file diff --git a/app/Http/Controllers/Pay/PayController.php b/app/Http/Controllers/Pay/PayController.php new file mode 100644 index 0000000..553cd00 --- /dev/null +++ b/app/Http/Controllers/Pay/PayController.php @@ -0,0 +1,168 @@ + 'PayPal', + 'cc' => 'CreditCard', + 'sb#GPY' => 'giropay', + 'sb#PNT' => 'Sofort', + 'wlt#PDT' => 'paydirekt', + 'fnc' => 'Rechnungskauf', + 'pref' => 'Vorauskasse', + ];*/ + + +namespace App\Http\Controllers\Pay; + +use App\Http\Controllers\Controller; +use App\Models\PaymentTransaction; +use App\Models\ShoppingPayment; +use App\Services\Payone; +use Illuminate\Http\Request; +use Util; +use Yard; + + +class PayController extends Controller +{ + + + + private $default = []; + + private $personalData = []; + + private $method = []; + private $prepayment = []; + + /* private $onlineTransfer = []; + private $creditCard = []; */ + private $deliveryData = []; + + + // private $payment_method; + private $urls = []; + + private $shopping_user; + private $shopping_order; + private $shopping_payment; + + private $reference; + + public function __construct() { + + } + + public function init($shopping_user, $shopping_order){ + $this->shopping_user = $shopping_user; + $this->shopping_order = $shopping_order; + $this->default['mode'] = $this->shopping_order->mode; + } + + public function getShoppingPayment(){ + return $this->shopping_payment; + } + + //make Payone payment + public function setPrePayment($payment_method, $amount, $currency, $ret = []){ + + $this->reference = substr(uniqid('m', false), 0, 16); + $this->setMethod($payment_method, $ret); + + $this->prepayment = [ + "reference" => $this->reference, // a unique reference, e.g. order number + "amount" => $amount, // amount in smallest currency unit, i.e. cents + "currency" => $currency, + "param" => $this->shopping_order->id, + + ]; + + $this->shopping_payment = ShoppingPayment::create([ + 'shopping_order_id' => $this->shopping_order->id, + 'clearingtype' => $this->method["clearingtype"], + 'wallettype' => $this->method["wallettype"], + 'onlinebanktransfertype' => $this->method["onlinebanktransfertype"], + 'reference' => $this->reference, + 'amount' => $amount, + 'currency' => $currency, + 'mode' => $this->shopping_order->mode, + ]); + + $this->default['mode'] = $this->shopping_order->mode; + return $this->reference; + } + + public function setPersonalData(){ + $this->personalData = [ + "firstname" => $this->shopping_user->billing_firstname, + "lastname" => $this->shopping_user->billing_lastname, // mandatory + "street" => $this->shopping_user->billing_address, + "zip" => $this->shopping_user->billing_zipcode, + "city" => $this->shopping_user->billing_city, + "country" => ($this->shopping_user->billing_country) ? $this->shopping_user->billing_country->code : "DE", // mandatory + "email" => $this->shopping_user->billing_email, + // "language" => ($this->shopping_user->billing_country) ? strtoupper($this->shopping_user->billing_country->code) : "DE", // mandatory + "language" => "DE", + ]; + } + + private function setMethod($payment_method, $ret = []){ + + //vorkasse + if($payment_method === 'vor'){ + $this->method = [ + "clearingtype" => "vor", + "wallettype" => "", + 'onlinebanktransfertype' => "", + "request" => "authorization", + ]; + } + + //Rechnungskauf + if($payment_method[0] === 'fnc'){ + $this->method = [ + "clearingtype" => "fnc", + "wallettype" => "", + 'onlinebanktransfertype' => "", + "request" => "authorization", + ]; + } + + } + + public function ResponseData($identifier){ + + $request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls); + //RECHNUNG MIV + + $payt = PaymentTransaction::create([ + 'shopping_payment_id' => $this->shopping_payment->id, + 'request' => $this->method['request'], + 'txid' => 0, + 'userid' => 0, + 'status' => $this->shopping_payment->clearingtype, + 'transmitted_data' => $request, + 'txaction' => 'open', + 'mode' => $this->shopping_payment->mode, + ]); + + + Util::setUserHistoryValue(['status'=>5]); + return redirect(route('user_checkout_final', [$payt->id, $this->reference, $identifier])); + + } +} + + + + diff --git a/app/Http/Controllers/PaymentMethodController.php b/app/Http/Controllers/PaymentMethodController.php new file mode 100755 index 0000000..c85c494 --- /dev/null +++ b/app/Http/Controllers/PaymentMethodController.php @@ -0,0 +1,87 @@ +middleware('admin'); + } + + public function index() + { + + $data = [ + 'values' => PaymentMethod::all(), + 'trans' => array_keys(config('localization.supportedLocales')), + ]; + return view('admin.payment_method.index', $data); + } + + public function store() + { + + $data = Request::all(); + if($data['id'] === "new"){ + $model = PaymentMethod::create([ + 'name' => $data['name'], + 'short' => $data['short'], + 'pos' => $data['pos'], + 'show_at' => $data['show_at'], + 'default' => isset($data['default']) ? true : false, + 'active' => isset($data['active']) ? true : false, + ]); + }else{ + $model = PaymentMethod::find($data['id']); + $model->name = $data['name']; + $model->short = $data['short']; + $model->pos = $data['pos']; + $model->show_at = $data['show_at']; + $model->default = isset($data['default']) ? true : false; + $model->active = isset($data['active']) ? true : false; + $model->save(); + } + + /* if(!empty($data['trans'])){ + $trans = []; + foreach ($data['trans'] as $lang => $value){ + if($value && $value != null){ + $trans[$lang] = $value; + } + } + if(count($trans)){ + $model->trans_name = $trans; + $model->save(); + } + }*/ + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_payment_methods')); + + + } + + + /*public function delete($id){ + + if(ProductAttribute::where('attribute_id', $id)->count()){ + \Session()->flash('alert-error', 'Eintrag wird als Produktattribute verwendet'); + return redirect(route('admin_product_attributes')); + } + + $model = Attribute::findOrFail($id); + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_attributes')); + } + */ + +} \ No newline at end of file diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php new file mode 100755 index 0000000..143d7ec --- /dev/null +++ b/app/Http/Controllers/ProductController.php @@ -0,0 +1,233 @@ +middleware('admin'); + $this->productRepo = $productRepo; + + } + + public function index() + { + if(Request::get('show_active_products')){ + set_user_attr('show_active_products', Request::get('show_active_products')); + } + if(get_user_attr('show_active_products') === "true"){ + $values = Product::where('active', true)->orderBy('pos', 'DESC')->orderBy('id', 'DESC')->get(); + }else{ + $values = Product::orderBy('pos', 'DESC')->orderBy('id', 'DESC')->get(); + + } + $data = [ + 'values' => $values + ]; + return view('admin.product.index', $data); + } + + public function edit($id) + { + if($id === "new"){ + $model = new Product(); + $model->active = true; + }else{ + $model = Product::findOrFail($id); + } + + $country_for_prices = Country::where('own_eur', '=', true)->orWhere('currency', '=', true)->get(); + $data = [ + 'product' => $model, + 'country_for_prices' => $country_for_prices, + ]; + return view('admin.product.edit', $data); + } + + public function store() + { + + $data = Request::all(); + + $rules = array( + 'name' => 'required', + ); + if($data['wp_number']){ + if($data['id'] !== "new"){ + $model = Product::findOrFail($data['id']); + $rules['wp_number'] = 'unique:products,wp_number,'.$model->id; + }else{ + $rules['wp_number'] = 'unique:products,wp_number'; + + } + } + $validator = Validator::make(Request::all(), $rules); + + if($data['id'] === "new"){ + $model = new Product(); + }else{ + $model = Product::findOrFail($data['id']); + } + $country_for_prices = Country::where('own_eur', '=', true)->orWhere('currency', '=', true)->get(); + + $data = [ + 'product' => $model, + 'country_for_prices' => $country_for_prices, + + ]; + + if ($validator->fails()) { + + return view('admin.product.edit', $data)->withErrors($validator); + + } else { + $product = $this->productRepo->update(Request::all()); + \Session()->flash('alert-save', true); + return redirect(route('admin_product_edit', [$product->id])); + } + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_product_show')); + + + } + + public function copy($id){ + $model = Product::findOrFail($id); + + $product = $this->productRepo->copy($model); + + + + \Session()->flash('alert-success', 'Eintrag kopiert'); + return redirect(route('admin_product_show')); + } + + public function delete($id, $do = 'product', $did = null){ + if($do === 'product'){ + $model = Product::findOrFail($id); + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_show')); + } + + if($do === 'ingredient'){ + $model = Product::findOrFail($id); + $ProductIngredient = ProductIngredient::where('ingredient_id', $did)->where('product_id', $model->id)->first(); + if($ProductIngredient){ + $ProductIngredient->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_edit', [$model->id])); + } + + } + + } + + + // Upload FILE ----------------------------------------------------------------------------------------------------------------------- + + public function imageUpload(){ + + $product_id = Request::get('product_id'); + $product = Product::findOrFail($product_id); + + try { + $image = \App\Services\Slim::getImages('images')[0]; + + if ( isset($image['output']['data']) ) + { + + // Base64 of the image + $data = $image['output']['data']; + $file_ex = array( 'image/jpeg' => 'jpg', 'image/png' => 'png'); + + if (!isset($file_ex[$image['output']['type']])) { + \Session()->flash('alert-danger', 'File is not jpg or png!'); + return redirect(route('admin_product_edit', [$product->id])); + } + + $ext = $file_ex[$image['output']['type']]; + // Original file name + $name = $image['output']['name']; + $name = \App\Services\Slim::sanitizeFileName($name); + $name = uniqid() . '_' . $name; + + $data = \Storage::disk('public')->put( + 'images/product/'.$product->id.'/'.$name, + $data + ); + + ProductImage::create([ + 'product_id' => $product->id, + 'filename' => $name, + 'original_name' => $image['output']['name'], + 'ext' => $ext, + 'mine' => $image['output']['type'], + 'size' => $image['input']['size'] + ]); + + + \Session()->flash('alert-success', "Datei hochgeladen"); + return redirect(route('admin_product_edit', [$product->id])); + } + \Session()->flash('alert-danger', "Datei leer"); + return redirect(route('admin_product_edit', [$product->id])); + + } + catch (Exception $e) { + \Session()->flash('alert-danger', "Fehler".$e); + return redirect(route('admin_product_edit', [$product->id])); + } + } + + public function imageDelete($image_id, $product_id){ + + $product = Product::findOrFail($product_id); + $product_image = ProductImage::findOrFail($image_id); + + if($product_image->product_id == $product->id){ + $file = 'images/product/'.$product->id.'/'.$product_image->filename; + \Storage::disk('public')->delete($file); + + $product_image->delete(); + + \Session()->flash('alert-success', "Datei gelöscht"); + return redirect(route('admin_product_edit', [$product->id])); + + } + \Session()->flash('alert-danger', "Datei nicht gefunden"); + return redirect(route('admin_product_edit', [$product->id])); + + } + + public function imageAttribute($product_id, $attr, $val = false){ + + if(is_numeric($val) && $val < 0){ + $val = 0; + } + + $product_image = ProductImage::findOrFail($product_id); + + $product_image->{$attr} = $val; + $product_image->save(); + + \Session()->flash('alert-success', "Wert gespeichert"); + return redirect()->back(); + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/SalesController.php b/app/Http/Controllers/SalesController.php new file mode 100755 index 0000000..3579957 --- /dev/null +++ b/app/Http/Controllers/SalesController.php @@ -0,0 +1,301 @@ +middleware('admin'); + } + + public function users(){ + + if(Request::get('reset') === 'filter'){ + return redirect(route('admin_sales_users')); + } + $data = [ + + ]; + return view('admin.sales.users', $data); + } + + public function usersDetail($id) + { + $ShoppingOrder = ShoppingOrder::find($id); + if($ShoppingOrder->shipped === 0){ + $ShoppingOrder->shipped = 1; + $ShoppingOrder->save(); + } + + $data = [ + 'shopping_order' => $ShoppingOrder, + 'isAdmin' => true, + 'isView' => 'sales_user', + ]; + return view('admin.sales.user_detail', $data); + } + + public function usersStore($id) + { + die("keine funktion"); + $data = [ + 'shopping_order' => ShoppingOrder::find($id), + 'isAdmin' => true, + ]; + return view('admin.sales.user_detail', $data); + } + + public function usersDatatable(){ + + $query = ShoppingOrder::with('shopping_user', 'shopping_payments')->select('shopping_orders.*')->where('shopping_orders.auth_user_id', '!=', NULL); + + return \DataTables::eloquent($query) + ->addColumn('id', function (ShoppingOrder $ShoppingOrder) { + return ''; + }) + ->addColumn('created_at', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->created_at->format("d.m.Y"); + }) + ->addColumn('txaction', function (ShoppingOrder $ShoppingOrder) { + return Payment::getShoppingOrderBadge($ShoppingOrder); + }) + ->addColumn('total_shipping', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getFormattedTotalShipping()." €"; + }) + ->addColumn('payment', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getLastShoppingPayment('getPaymentType'); + }) + ->addColumn('shipped', function (ShoppingOrder $ShoppingOrder) { + return ''.$ShoppingOrder->getShippedType().''; + }) + ->addColumn('is_for', function (ShoppingOrder $ShoppingOrder) { + if($ShoppingOrder->shopping_user->is_for === 'me'){ + return 'Beraterbestellung'; + } + if($ShoppingOrder->shopping_user->is_for === 'ot'){ + return 'Kundenbestellung'; + } + if($ShoppingOrder->shopping_user->is_for === 'hp'){ + return 'Homepartybestellung'; + } + return '-'; + }) + ->addColumn('reference', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getLastShoppingPayment('reference'); + }) + ->addColumn('orders', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->shopping_user ? $ShoppingOrder->shopping_user->orders : ''; + }) + ->orderColumn('id', 'id $1') + ->orderColumn('txaction', 'txaction $1') + ->orderColumn('shipped', 'shipped $1') + ->orderColumn('total_shipping', 'total_shipping $1') + + ->rawColumns(['id', 'txaction', 'is_for', 'shipped']) + ->make(true); + } + + public function customers() + { + if(Request::get('reset') === 'filter'){ + set_user_attr('filter_txaction', null); + set_user_attr('filter_member_id', null); + return redirect(route('admin_sales_customers')); + } + $filter_members = ShoppingOrder::join('users', 'member_id', '=', 'users.id')->groupBy('member_id')->join('user_accounts', 'account_id', '=', 'user_accounts.id')->select('users.id', 'users.email', 'user_accounts.first_name', 'user_accounts.last_name')->get(); //->pluck('email', 'id')->unique()->toArray(); + $data = [ + 'filter_members' => $filter_members, + ]; + return view('admin.sales.customers', $data); + } + + public function customersDetail($id) + { + $ShoppingOrder = ShoppingOrder::find($id); + if($ShoppingOrder->shipped === 0){ + $ShoppingOrder->shipped = 1; + $ShoppingOrder->save(); + } + $data = [ + 'shopping_order' => $ShoppingOrder, + 'isAdmin' => true, + 'isView' => 'sales_customer', + ]; + return view('admin.sales.customer_detail', $data); + } + + public function customersStore($id) + { + $data = Request::all(); + $change_member_error = false; + if($data['action']==='shopping-order-change-member'){ + if(!isset($data['change_member_key']) || $data['change_member_key'] !== config('main.edit_data_pass')){ + $change_member_error = "Das Passwort ist falsch."; + }else{ + //change + $shopping_order = ShoppingOrder::findOrFail($data['id']); + CustomerPriority::newMemberForOrder($shopping_order, $data['change_member_id'], $data['customer_set_member_for']); + \Session()->flash('alert-save', true); + return redirect(route('admin_sales_customers_detail', [$shopping_order->id])); + } + } + if($data['action']==='shopping-user-is-like-member'){ + if(!isset($data['change_member_key']) || $data['change_member_key'] !== config('main.edit_data_pass')){ + \Session()->flash('alert-error', 'Das Passwort ist falsch.'); + return redirect($data['back']); + }else{ + if(!isset($data['is_like_shopping_user_id'])){ + \Session()->flash('alert-error', 'Keine Änderung ausgewählt'); + return redirect($data['back']); + } + $shopping_user = ShoppingUser::findOrFail($data['id']); + $set_like_shopping_user = ShoppingUser::findOrFail($data['is_like_shopping_user_id']); + $send_member_mail = isset($data['send_member_mail']) ? true : false; + $change_shopping_user = isset($data['change_shopping_user']) ? true : false; + //Mail send in setIsLike + CustomerPriority::setIsLike($shopping_user, $set_like_shopping_user, $send_member_mail, $change_shopping_user); + \Session()->flash('alert-save', true); + return redirect($data['back']); + } + } + $data = [ + 'change_member_error' => $change_member_error, + 'shopping_order' => ShoppingOrder::find($id), + 'isAdmin' => true, + 'isView' => 'sales_customer', + ]; + return view('admin.sales.customer_detail', $data); + } + + public function customersDatatable(){ + + $query = ShoppingOrder::with('shopping_user')->select('shopping_orders.*')->where('shopping_orders.auth_user_id', NULL); + + set_user_attr('filter_txaction', Request::get('filter_txaction')); + if(Request::get('filter_txaction') != ""){ + if(Request::get('filter_txaction') === 'NULL'){ + $query->where('txaction', '=', NULL); + + }else{ + $query->where('txaction', '=', Request::get('filter_txaction')); + } + } + set_user_attr('filter_member_id', Request::get('filter_member_id')); + if(Request::get('filter_member_id') != ""){ + $query->where('member_id', '=', Request::get('filter_member_id')); + } + + return \DataTables::eloquent($query) + ->addColumn('id', function (ShoppingOrder $ShoppingOrder) { + return ''; + }) + ->addColumn('created_at', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->created_at->format("d.m.Y"); + }) + ->addColumn('txaction', function (ShoppingOrder $ShoppingOrder) { + return Payment::getShoppingOrderBadge($ShoppingOrder); + }) + ->addColumn('total_shipping', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getFormattedTotalShipping()." €"; + }) + ->addColumn('payment', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getLastShoppingPayment('getPaymentType'); + }) + ->addColumn('shipped', function (ShoppingOrder $ShoppingOrder) { + return ''.$ShoppingOrder->getShippedType().''; + }) + ->addColumn('is_for', function (ShoppingOrder $ShoppingOrder) { + if($ShoppingOrder->shopping_user->is_for === 'me'){ + return 'Beraterbestellung'; + } + if($ShoppingOrder->shopping_user->is_for === 'ot'){ + return 'Kundenbestellung'; + } + if($ShoppingOrder->shopping_user->is_for === 'hp'){ + return 'Homepartybestellung'; + } + return '-'; + }) + ->addColumn('reference', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getLastShoppingPayment('reference'); + }) + ->addColumn('member_id', function (ShoppingOrder $ShoppingOrder) { + if($ShoppingOrder->member_id) { + return $ShoppingOrder->member_id ? '' . $ShoppingOrder->member->getFullName() . '' : ''; + } + if($ShoppingOrder->shopping_user && $ShoppingOrder->shopping_user->is_like){ + return ''; + } + return ''; + }) + + + + ->orderColumn('id', 'id $1') + ->orderColumn('txaction', 'txaction $1') + ->orderColumn('member_id', 'member_id $1') + ->orderColumn('shipped', 'shipped $1') + ->orderColumn('total_shipping', 'total_shipping $1') + ->rawColumns(['id', 'member_id', 'txaction', 'user_shop_id', 'is_for', 'shipped']) + ->make(true); + } + + public function store(){ + $data = Request::all(); + if(!isset($data['id'])){ + abort(404); + } + if(isset($data['action'])){ + if($data['action'] === 'store_shipped' && isset($data['shipped'])){ + $shopping_order = ShoppingOrder::findOrFail($data['id']); + $shopping_order->shipped = $data['shipped']; + $shopping_order->save(); + } + + if($data['action'] === 'store_txaction' && isset($data['txaction']) && isset($data['payment_id'])){ + $shopping_order = ShoppingOrder::findOrFail($data['id']); + $shopping_payment = ShoppingPayment::findOrFail($data['payment_id']); + + PaymentTransaction::create([ + 'shopping_payment_id' => $shopping_payment->id, + 'request' => 'transaction', + 'txid' => 0, + 'userid' => 0, + 'status' => 'FNCMIV', + 'transmitted_data' => NULL, + 'txaction' => $data['txaction'], + 'mode' => $shopping_payment->mode, + ]); + + $shopping_order->txaction = $data['txaction']; + $shopping_order->paid = true; + $shopping_order->save(); + $shopping_payment->txaction = $data['txaction']; + $shopping_payment->save(); + + //TODO can send MAIL + //Payment::paymentStatusSendMail($shopping_order, $shopping_payment, $data); + } + + } + if(isset($data['back'])){ + return redirect($data['back']); + } + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/ShippingController.php b/app/Http/Controllers/ShippingController.php new file mode 100755 index 0000000..e705529 --- /dev/null +++ b/app/Http/Controllers/ShippingController.php @@ -0,0 +1,152 @@ +middleware('superadmin'); + + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function index() + { + $data = [ + 'values' => Shipping::all(), + ]; + return view('admin.shipping.index', $data); + } + + public function edit($shipping_id) + { + if($shipping_id === "new"){ + $shipping = new Shipping(); + $shipping->active = 1; + + }else{ + $shipping = Shipping::findOrFail($shipping_id); + + } + $data = [ + 'value' => $shipping, + ]; + return view('admin.shipping.edit', $data); + + + } + + /** + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function store(Request $request) + { + $shipping = false; + $data = Request::all(); + + if($data['action'] === 'shipping'){ + if ($data['id'] === "new") { + $shipping = new Shipping(); + $rules = array('name' => 'required'); + } else { + $shipping = Shipping::findOrFail($data['id']); + $rules = array('name' => 'required'); + } + $ret = ['value' => $shipping]; + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return view('admin.shipping.edit', $ret)->withErrors($validator); + } + $data = Request::all(); + $shipping->name = $data['name']; + $shipping->free = $data['free']; + $shipping->active = isset($data['active']) ? true : false; + $shipping->save(); + } + + if($data['action'] === 'price'){ + $shipping = Shipping::findOrFail($data['shipping_id']); + $rules = array('price' => 'required'); + $ret = ['value' => $shipping]; + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return view('admin.shipping.edit', $ret)->withErrors($validator); + } + if ($data['id'] === "new") { + $price = ShippingPrice::create($data); + } else { + $price = ShippingPrice::findOrFail($data['id']); + if($price->shipping_id != $shipping->id){ + abort(404); + } + $price->fill($data); + $price->save(); + } + + } + if($data['action'] === 'country'){ + $shipping = Shipping::findOrFail($data['shipping_id']); + foreach($data['country_ids'] as $country_id){ + if(ShippingCountry::where('country_id', $country_id)->count() == 0){ + ShippingCountry::create([ + 'shipping_id' => $shipping->id, + 'country_id' => $country_id + ]); + } + } + } + + if($shipping){ + \Session()->flash('alert-save', true); + return redirect(route('admin_shipping_edit', [$shipping->id])); + } + return redirect(route('admin_shippings')); + + } + + + public function deleteShipping($id) + { + $model = Shipping::findOrFail($id); + $model->delete(); + \Session()->flash('alert-success', "Versandkosten gelöscht"); + return redirect('/admin/shippings'); + } + + public function deletePrice($id) + { + $model = ShippingPrice::findOrFail($id); + $shipping = $model->shipping; + $model->delete(); + \Session()->flash('alert-success', "Preis gelöscht"); + return redirect(route('admin_shipping_edit', [$shipping->id])); + } + + public function deleteCountry($id) + { + $model = ShippingCountry::findOrFail($id); + if($model->shopping_orders->count()){ + abort(403, 'Einträge vorhanden'); + } + $shipping = $model->shipping; + $model->delete(); + \Session()->flash('alert-success', "Preis gelöscht"); + return redirect(route('admin_shipping_edit', [$shipping->id])); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/SitesController.php b/app/Http/Controllers/SitesController.php new file mode 100755 index 0000000..0270d38 --- /dev/null +++ b/app/Http/Controllers/SitesController.php @@ -0,0 +1,148 @@ +middleware('admin'); + } + + public function index() + { + // + } + + public function show($site) + { + $data = [ + 'value' => IqSite::find(1), + 'site' => $site, + ]; + return view('admin.site.edit', $data); + } + + public function store($site) + { + $data = Request::all(); + $data['products'] = isset($data['products']) ? $data['products'] : null; + $data['set_products'] = isset($data['set_products']) ? $data['set_products'] : null; + + if($site == "new"){ + // $model = IqSite::create($data); + }else{ + $model = IqSite::find(1); + $model->fill($data); + $model->save(); + } + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_sites', ['start'])); + + } + + + // Upload FILE ----------------------------------------------------------------------------------------------------------------------- + + public function imageUpload($site){ + + $model = IqSite::find(1); + + try { + $image = \App\Services\Slim::getImages('images')[0]; + + if ( isset($image['output']['data']) ) + { + + // Base64 of the image + $data = $image['output']['data']; + $file_ex = array( 'image/jpeg' => 'jpg', 'image/png' => 'png'); + + if (!isset($file_ex[$image['output']['type']])) { + \Session()->flash('alert-danger', 'File is not jpg or png!'); + return redirect(route('admin_sites', [$model->slug])); + } + + $ext = $file_ex[$image['output']['type']]; + // Original file name + $name = $image['output']['name']; + $name = \App\Services\Slim::sanitizeFileName($name); + $path = 'images/iq_images/'; + + $image_name = ""; + do { + $image_name = uniqid('', false) . '_' . $name; + } while (\Storage::disk('public')->exists($path.$image_name)); + + $data = \Storage::disk('public')->put( + $path.$image_name, + $data + ); + + $iq_image = IqImage::create([ + 'filename' => $image_name, + 'original_name' => $image['output']['name'], + 'ext' => $ext, + 'mine' => $image['output']['type'], + 'size' => $image['input']['size'] + ]); + + $model->iq_image_id = $iq_image->id; + $model->save(); + + \Session()->flash('alert-success', "Datei hochgeladen"); + return redirect(route('admin_sites', [$model->slug])); + } + \Session()->flash('alert-danger', "Datei leer"); + return redirect(route('admin_sites', [$model->slug])); + + } + catch (Exception $e) { + \Session()->flash('alert-danger', "Fehler".$e); + return redirect(route('admin_sites', [$model->slug])); + } + } + + public function imageDelete($site, $image_id){ + + $iq_image = IqImage::findOrFail($image_id); + $model = IqSite::find(1); + + + if($iq_image->id == $model->iq_image->id){ + $file = 'images/iq_images/'.$iq_image->filename; + \Storage::disk('public')->delete($file); + $model->iq_image_id = NULL; + $model->save(); + $iq_image->delete(); + + + \Session()->flash('alert-success', "Datei gelöscht"); + return redirect(route('admin_sites', [$model->slug])); + + } + \Session()->flash('alert-danger', "Datei nicht gefunden"); + return redirect(route('admin_sites', [$model->slug])); + + } + + public function imageAttribute($site, $image_id, $attr, $val = false){ + + $iq_image = IqImage::findOrFail($image_id); + + $iq_image->{$attr} = $val; + $iq_image->save(); + + \Session()->flash('alert-success', "Wert gespeichert"); + return redirect()->back(); + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/SyS/AdminToolsController.php b/app/Http/Controllers/SyS/AdminToolsController.php new file mode 100755 index 0000000..c393f94 --- /dev/null +++ b/app/Http/Controllers/SyS/AdminToolsController.php @@ -0,0 +1,205 @@ +middleware('sysadmin'); + + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function index() + { + dd('index'); + } + + public function customers() + { + + $shopping_users = ShoppingUser::where('member_id', '=', NULL)->where('auth_user_id', '=', NULL)->get(); + $data = [ + 'values' => $shopping_users, + 'text' => '', + ]; + + return view('sys.admin.customers', $data); + } + + + public function customerStore() + { + $data = Request::all(); + $ret = ""; + if($data['action'] === 'makePaymentMethodsDefault'){ + $users = User::where('payment_methods', '=', NULL)->get(); + //$users = User::all(); + foreach ($users as $user){ + $user->payment_methods = PaymentMethod::getDefaultAsArray(); + $user->save(); + } + } + if($data['action'] === 'checkForAll'){ + $shopping_users = CustomerPriority::checkForAll(); + } + + if($data['action'] === 'checkContractPDF'){ + //create PDF + $user = User::findOrFail(80); + + $pdf = new ContractPDFRepository($user); + $pdf->_set('disk', 'user'); + $pdf->_set('dir', '/'.$user->id.'/documents/'); + $pdf->_set('user_id', $user->id); + $pdf->_set('identifier', 'contract'); + $pdf->createContractPDF(); + + } + + + + if(strpos($data['action'], 'checkOne_') !== false){ + $id = (int) str_replace('checkOne_', '', $data['action']); + $shopping_user = ShoppingUser::findOrFail($id); + $ret = CustomerPriority::checkOne($shopping_user); + } + \Session()->flash('alert-success', $ret); + return back(); + } + + + + + public function cronjobs() + { + //$user_shops = UserShop::all(); + $text = ""; + $values = [ + 'check_payments_account' => route('cron_jobs_action', ['check_payments_account', 'key']) + ]; + $data = [ + 'values' => $values, + 'text' => $text, + ]; + + return view('sys.admin.cronjobs', $data); + } + public function cronjobsStore() + { + $data = Request::all(); + \Session()->flash('alert-save', true); + return back(); + } + + + public function domainSSL() + { + $user_shops = UserShop::all(); + $text = ""; + + $kas = new KasController(); + $domain = 'mivita.care'; + + $ssl = KasSLLController::getApiSSLParameter(); + + $subdomains = $kas->action('get_subdomains'); + foreach ($subdomains as $subdomain){ + $text .= $subdomain['subdomain_name']." - ".$subdomain['ssl_certificate_sni']."\n"; + + if($subdomain['ssl_certificate_sni'] !== "Y"){ + $pra = array( + 'hostname' => $subdomain['subdomain_name'], + ); + $pra = array_merge($pra, $ssl); + $value = $kas->action('update_ssl', $pra); + $text .= $value."\n"; + } + } + $data = [ + 'values' => $user_shops, + 'text' => $text, + ]; + + return view('sys.admin.domain-ssl', $data); + + + + } + public function domainSSLStore() + { + $data = Request::all(); + \Session()->flash('alert-save', true); + return back(); + } + + public function shoppingOrders() + { + $shopping_users = ShoppingUser::all(); + $data = [ + 'values' => $shopping_users, + 'text' => '', + ]; + return view('sys.admin.shopping-orders', $data); + + } + public function shoppingOrdersStore() + { + //first run + $data = Request::all(); + + if($data['action'] === 'first_run'){ + $shopping_users = ShoppingUser::whereHas('shopping_order', function($q) { + $q->where('txaction', 'paid')->OrWhere('txaction', 'appointed'); + })->get(); + + $order_email = []; + $order_number = []; + + foreach ($shopping_users as $shopping_user){ + $order_email[$shopping_user->billing_email] = isset($order_email[$shopping_user->billing_email]) ? $order_email[$shopping_user->billing_email] + 1 : 1; + if($shopping_user->number) { + $order_number[$shopping_user->number] = isset($order_number[$shopping_user->number]) ? $order_number[$shopping_user->number] + 1 : 1; + $shopping_user->orders = $order_number[$shopping_user->number]; + }else { + $shopping_user->orders = $order_email[$shopping_user->billing_email]; + } + $shopping_user->save(); + + } + \Session()->flash('alert-save', true); + } + + if($data['action'] === 'next_run'){ + Shop::userOrders(); + \Session()->flash('alert-save', true); + } + return back(); + + } + + + +} \ No newline at end of file diff --git a/app/Http/Controllers/SyS/ImportController.php b/app/Http/Controllers/SyS/ImportController.php new file mode 100755 index 0000000..325d935 --- /dev/null +++ b/app/Http/Controllers/SyS/ImportController.php @@ -0,0 +1,54 @@ +middleware('sysadmin'); + $this->import = $import; + + } + + + public function import() + { + $data = [ + ]; + return view('sys.admin.import', $data); + } + + + public function importStore() + { + $input = Request::all(); + return $this->import->upload($input); + } + + public function importShow($type, $file, $skip = 0, $limit = 4000) + { + $import = $this->import->read($type, $file, $skip, $limit); + $data = [ + 'limit' => $limit, + 'type' => $type, + 'file' => $file, + 'import' => $import, + 'skip' => $skip, + ]; + return view('sys.admin.import-show', $data); + + } + + + +} \ No newline at end of file diff --git a/app/Http/Controllers/SyS/SettingController.php b/app/Http/Controllers/SyS/SettingController.php new file mode 100755 index 0000000..be8c5e6 --- /dev/null +++ b/app/Http/Controllers/SyS/SettingController.php @@ -0,0 +1,50 @@ +middleware('sysadmin'); + + } + + public function index() + { + + $data = [ + 'values' => SySetting::all(), + ]; + return view('sys.settings.index', $data); + } + + public function store() + { + + $data = Request::all(); + + $data['active'] = isset($data['active']) ? true : false; + if($data['id'] === "new"){ + $model = SySetting::create($data); + }else{ + $model = SySetting::find($data['id']); + $model->fill($data); + $model->save(); + } + + + \Session()->flash('alert-save', '1'); + return redirect(route('sysadmin_settings')); + + } + + +} \ No newline at end of file diff --git a/app/Http/Controllers/TemplateController.php b/app/Http/Controllers/TemplateController.php new file mode 100755 index 0000000..8a371d6 --- /dev/null +++ b/app/Http/Controllers/TemplateController.php @@ -0,0 +1,27 @@ +middleware('auth'); + + } + + public function index() + { + + if(Auth::check()) { + + } + return view('templates.index', ['title' => 'Page 2']); + } +} + + diff --git a/app/Http/Controllers/TranslationController.php b/app/Http/Controllers/TranslationController.php new file mode 100755 index 0000000..43af757 --- /dev/null +++ b/app/Http/Controllers/TranslationController.php @@ -0,0 +1,181 @@ +directory_separator = DIRECTORY_SEPARATOR; + $this->languagesPath = App::langPath(); + + } + + /** + * Show the application dashboard. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return redirect('admin/translate/all/edit/de'); + } + + + /** + * @param $language + * @param string $from + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + */ + public function edit($language, $from = 'en') + { + $localisations = array_keys(config('localization.supportedLocales')); + $files = $this->json_files($localisations); + $translations = $this->translationsJson($language, $from); + $show = "all"; + return view('translation.index', compact('files','translations', 'language', 'from', 'show')); + } + + + /** + * @param $lang + * @return \Illuminate\Http\RedirectResponse + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + */ + public function update($language) + { + + + $path = $this->resourcePath($this->languagesPath); + $file = $path.$language.".json"; + $data = Request::all(); + $this->backup($path, $language.".json"); + unset($data['_token']); + + $ret = []; + //file make keys + $source = json_decode(File::get($path."de.json")); + foreach ($source as $key => $v){ + $skey = $this->sanitize($key); + if(!empty($data[$skey])) { + $ret[$key] = $data[$skey]; + } + } + $jsonData = json_encode($ret, TRUE); + file_put_contents($file, $jsonData); + return redirect() + ->route('admin_translate_all_edit', [$language]) + ->with('message', 'Translation added successfully'); + } + + /** + * @param $langs + * @return array + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + */ + public function json_files($localisations){ + $path = $this->resourcePath($this->languagesPath); + $content = array(); + foreach ($localisations as $local){ + $file = File::get($path.$local.".json"); + if($file){ + $content[$local] = array('path'=>$path.$local.".json", 'content'=>json_encode($file)); + } + } + return $content; + + + } + + /** + * @param $language + * @param $from + * @return array + * @throws \Illuminate\Contracts\Filesystem\FileNotFoundException + */ + public function translationsJson($language, $from) + { + $path = $this->resourcePath($this->languagesPath); + $file = array(); + $file['keys'] = (array) json_decode(File::get($path."de.json")); + $file['keys'] = $this->sanitizeKey($file['keys']); + $file['from'] = (array) json_decode(File::get($path.$from.".json")); + $file['from'] = $this->sanitizeKey($file['from']); + $file['dest'] = (array) json_decode(File::get($path.$language.".json")); + $file['dest'] = $this->sanitizeKey($file['dest']); + + return $file; + } + + private function backup($path, $file) + { + + if (!File::exists(storage_path('language/'))) { + File::makeDirectory(storage_path('language/'), 0755, true); + } + + return File::copy($path.$file, storage_path('language/'.time()."-".$file)); + } + + /** + * @param $path + * @return string + */ + protected function resourcePath($path) + { + return "{$path}{$this->directory_separator}"; + } + + /** + * @param $arr + * @return mixed + */ + protected function sanitizeKey($arr){ + foreach ($arr as $key => $val){ + unset($arr[$key]); + $arr[$this->sanitize($key)] = $val; + } + return $arr; + + } + + /** + * @param $string + * @param bool $force_lowercase + * @param bool $anal + * @return mixed|null|string|string[] + */ + protected function sanitize($string, $force_lowercase = true, $anal = false) + { + $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]", + "}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—", + "—", "–", ",", "<", ".", ">", "/", "?"); + $clean = trim(str_replace($strip, "", strip_tags($string))); + $clean = preg_replace('/\s+/', "_", $clean); + $clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ; + + return ($force_lowercase) ? + (function_exists('mb_strtolower')) ? + mb_strtolower($clean, 'UTF-8') : + strtolower($clean) : + $clean; + } + +} diff --git a/app/Http/Controllers/TranslationFileController.php b/app/Http/Controllers/TranslationFileController.php new file mode 100755 index 0000000..5e03150 --- /dev/null +++ b/app/Http/Controllers/TranslationFileController.php @@ -0,0 +1,282 @@ +directory_separator = DIRECTORY_SEPARATOR; + $this->translator = App::make('translator'); + $this->loader = Lang::getLoader(); + $this->languagesPath = App::langPath(); + $this->directory_separator = DIRECTORY_SEPARATOR; + } + + /** + * Show the application dashboard. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + $language = App::getLocale(); + $langsource = 'de'; + $this->languageRead = $language; + $langs = array_keys(config('localization.supportedLocales')); + $files = $this->files(); + $translations = null; + $edit = false; + $show = 'all'; + return view('translation.index_file', compact('files', 'translations', 'language', 'langsource', 'langs', 'edit', 'show')); + + //return view('admin.transitions', $data); + } + + /** + * Display edit form page + * + * @param string $language + * @param string $file + * @param string|null $namespace + * + * @return \Illuminate\Http\Response + */ + public function edit($file, $language = 'en', $langsource = 'de', $show = 'all') + { + $this->languageRead = $language; + $langs = array_keys(config('localization.supportedLocales')); + $files = $this->files(); + $translations = $this->translations($file, $langsource); + $prefix = $this->groupName($file); + $langsource = $langsource; + $edit = $file; + $show = $show; + + return view('translation.index_file', compact('files', 'language', 'langsource', 'file', 'translations', 'prefix', 'langs', 'edit', 'show')); + } + + /** + * Save translation file + * + * @param \GeniusTS\TranslationManager\Requests\TranslationRequest $request + * @param string $language + * @param string $file + * + * @return \Illuminate\Http\Response + */ + public function update(TranslationRequest $request, $file, $language, $langsource, $show) + { + $keys = array_keys($this->translations($file)); + + $this->exportFile($request->only($keys), $file, $language); + + return redirect() + ->route('admin_translate_file_edit', [$file, $language, $langsource, $show]) + ->with('message', 'Translation added successfully'); + } + + /** + * Save a translation file + * + * @param array $translation + * @param $filename + * @param $language + * + * @return bool + */ + public function exportFile($translation, $filename, $language) + { + $path = "{$this->languagesPath}{$this->directory_separator}{$language}{$this->directory_separator}{$filename}.php"; + + $this->backup($path, $language, $filename); + + $content = "filesystem->write($path, $content, new Config); + } + + /** + * Backup the existing translation files + */ + private function backup($path, $language, $filename) + { + if(!File::exists($path)){ + return; + } + if (!File::exists(storage_path('language/'.time().'/'.$language))) { + File::makeDirectory(storage_path('language/'.time().'/'.$language), 0755, true); + } + + return File::copy($path, storage_path('language/'.time().'/'.$language.'/'.$filename.'.php')); + } + + + /** + * Get the translation of a group and name space + * + * @param string $file + * @param string|null $namespace + * @param string|null $language + * + * @return array + */ + public function translations($file, $language = null) + { + $group = $this->groupName($file); + $key = $group; + + return $this->translator->trans($key, [], $language ?: $this->defaultLanguage()); + } + + public function files($lang = false) + { + $path = $this->namespacePath($this->languagesPath, $lang); + + $content = $this->pathContent($path); + + return $content + ->map(function ($file) use ($path) { + $path = ltrim($path . DIRECTORY_SEPARATOR, '/'); + //read file empty entries + $count = $this->countEmptyEntries(Str::replaceLast($path, '', $file)); + //var_dump($translations); + return array(ltrim($this->groupName(Str::replaceLast($path, '', $file)), '/') => ltrim($this->groupName(Str::replaceLast($path, '', $file)), '/')." (".$count.")"); + }) + ->flatten(); + } + + public function countEmptyEntries($file){ + + $translation = $this->translations($file); + $group = $this->groupName($file); + $entries = 0; + $count = 0; + foreach ($translation as $key => $value) + { + $this->searchForEmpty($key, $value, null, $count, $entries, $group); + } + return $entries."/".$count; + } + + protected function searchForEmpty($key, $value, $prefix, &$count, &$entries, $group) + { + $prefix = $prefix ? "{$prefix}.{$key}" : $group.".".$key; + if (is_array($value)) + { + foreach ($value as $subKey => $subValue) + { + $this->searchForEmpty($subKey, $subValue, $prefix, $count,$entries, $group); + } + } + else + { + if(Lang::has($prefix, $this->languageRead, false)){ + $count++; + } + + if(Lang::has($prefix, 'de', false)){ + $entries ++; + } + + } + } + + /** + * Get default language + * + * @return string + */ + public function defaultLanguage() + { + return config('app.fallback_locale', 'de'); + } + + + /** + * Get the group name from a filename + * + * @param $filename + * + * @return mixed + */ + public function groupName($filename) + { + return preg_replace('/\.php$/', '', $filename); + } + /** + * Get default language + * + * @param string $path + * @param string $language + * + * @return string + */ + protected function namespacePath($path, $language = null) + { + return "{$path}{$this->directory_separator}" . ($language ?: $this->defaultLanguage()); + } + + /** + * List content of a path + * + * @param null $path + * @param bool $recursive + * + * @return \Illuminate\Support\Collection + */ + protected function pathContent($path = null, $recursive = false) + { + + //var_dump($this->filesystem->listContents($path, $recursive)); + //return new Collection(($this->filesystem->listContents($path, $recursive))); + return new Collection(File::files($path)); + } + +} diff --git a/app/Http/Controllers/User/CheckoutController.php b/app/Http/Controllers/User/CheckoutController.php new file mode 100755 index 0000000..c73cc7c --- /dev/null +++ b/app/Http/Controllers/User/CheckoutController.php @@ -0,0 +1,533 @@ +session = $session; + $this->instance = sprintf('%s.%s', 'cart', 'payments'); + } + + + public function checkout($identifier){ + + // dump(Request::all()); +// $user_shop = Util::getUserShop(); + + //user shop + /* + $user_shop = $shopping_instance->user_shop; + if($user_shop && $user_shop->active == 1 && $user_shop->user->isActiveShop()){ + Util::setPostRoute('user/'); + \Session::put('user_shop', $user_shop); + \Session::put('user_shop_domain', $shopping_instance->subdomain); + \Session::put('user_shop_payment', $shopping_instance->payment); + \Session::put('user_shop_identifier', $shopping_instance->identifier); + \Session::put('isCheckout', true); + + if($shopping_instance->auth_user_id){ + \Session::put('auth_user', $shopping_instance->auth_user); + } + } + if($shopping_instance->back){ + \Session::put('back_link', $shopping_instance->back); + } + \Session::put('new_session', true); + Yard::instance('shopping')->destroy(); + //restore yard + Yard::instance('shopping')->restore($request->route('identifier')); + + Yard::instance('shopping')->putYardExtra('user_shop_payment', $shopping_instance->payment); + + Yard::instance('shopping')->putYardExtra('shopping_data', $shopping_instance->shopping_data); + $is_for = isset($shopping_instance->shopping_data['is_for']) ? $shopping_instance->shopping_data['is_for'] : 'ot'; + Yard::instance('shopping')->setShippingCountryWithPrice($shopping_instance->country_id, $is_for); + */ + + + $shopping_data = Yard::instance('shopping')->getYardExtra('shopping_data'); + $is_from = isset($shopping_data['is_from']) ? $shopping_data['is_from'] : 'shopping'; + $is_for = isset($shopping_data['is_for']) ? $shopping_data['is_for'] : false; + $shopping_user = null; + + if(\Session::has('new_session')){ + $this->destroy(); + \Session::forget('new_session'); + } + + if(!$this->getPayments('shopping_user_id')){ + if($shopping_data && $is_from !== 'shopping'){ + //can wizard membership user_order + //$shopping_user_id = isset($shopping_data['shopping_user_id']) ? $shopping_data['shopping_user_id'] : false; + $shopping_user = $this->shoppingUserAuthData($is_from, $is_for, $shopping_data); + $shopping_user->save(); + $this->putPayments('shopping_user_id', $shopping_user->id); + }elseif($is_from === 'shopping') { + $shopping_user = new ShoppingUser(); + $shopping_user->is_for = $is_for; + $shopping_user->is_from = $is_from; + $shopping_user->homeparty_id = $homeparty_id; + $shopping_user->mode = 'prev'; + } + }else{ + $shopping_user = ShoppingUser::findOrFail($this->getPayments('shopping_user_id')); + $shopping_user->billing_state = Shop::getCountryShippingCountryId($shopping_user->billing_country_id); + $shopping_user->shipping_state = Shop::getCountryShippingCountryId($shopping_user->shipping_country_id); + } + if($shopping_user->same_as_billing === NULL){ + $shopping_user->same_as_billing = false; + } + + if(old('selected_country') && old('selected_country') === 'change'){ + \Session::forget('_old_input.selected_country'); + $shopping_user->billing_state = old('billing_state'); + $shopping_user->shipping_state = old('shipping_state'); + }else{ + $shopping_user->billing_state = Yard::instance('shopping')->getShippingCountryId(); + $shopping_user->shipping_state = Yard::instance('shopping')->getShippingCountryId(); + } + + /*if(Util::getAuthUser()){ + $shopping_user->abo_options = Util::getUserHistoryValue('abo_options'); + //$shopping_user->save(); + }*/ + + if($is_from !== 'shopping' && Util::getAuthUser()){ + $user = Util::getAuthUser(); + $payment_methods = $user->payment_methods; + $payment_data = $user->account->payment_data; + }else{ + $payment_methods = PaymentMethod::getDefaultAsArray()->toArray(); + $payment_data = false; + } + + $payment_methods_active = \App\Models\PaymentMethod::where('active', true)->get()->pluck( 'id', 'short')->toArray(); + $data = [ + 'is_from' => $is_from, + 'is_for' => $is_for, + 'shopping_data' => $shopping_data, + 'user_shop' => Util::getUserShop(), + 'shopping_user' => $shopping_user, + 'shopping_mode' => Util::getUserShoppingMode(), + 'payment_methods' => $payment_methods, + 'payment_methods_active' => $payment_methods_active, + 'identifier' => $identifier, + 'payment_data' => $payment_data, + 'back' => url()->previous(), + ]; + return view('user.checkout.checkout', $data); + } + + private function shoppingUserAuthData($is_from, $is_for, $data = []){ + + $user = Util::getAuthUser(); + $shopping_user = new ShoppingUser(); + $shopping_user->auth_user_id = $user->id; + $shopping_user->mode = 'prev'; + + $shopping_user->billing_salutation = $user->account->salutation; + $shopping_user->billing_company = $user->account->company; + $shopping_user->billing_firstname = $user->account->first_name; + $shopping_user->billing_lastname = $user->account->last_name; + $shopping_user->billing_address = $user->account->address; + $shopping_user->billing_address_2 = $user->account->address_2; + $shopping_user->billing_zipcode = $user->account->zipcode; + $shopping_user->billing_city = $user->account->city; + $shopping_user->billing_country_id = $user->account->country_id; + $shopping_user->billing_phone = $user->account->phone; + $shopping_user->billing_email = $user->email; + $shopping_user->faker_mail = false; + $shopping_user->shipping_email = $user->email; + + $shopping_user->accepted_data_checkbox = 1; + $shopping_user->is_for = $is_for; + $shopping_user->is_from = $is_from; + + //Lieferadresse + if($is_from === 'user_order'){ + if(isset($data['shopping_user_id']) && $data['is_for'] === 'ot'){ + $s_user = ShoppingUser::findOrFail($data['shopping_user_id']); + /* $shopping_user->billing_salutation = $s_user->billing_salutation; + $shopping_user->billing_company = $s_user->billing_company; + $shopping_user->billing_firstname = $s_user->billing_firstname; + $shopping_user->billing_lastname = $s_user->billing_lastname; + $shopping_user->billing_address = $s_user->billing_address; + $shopping_user->billing_address_2 = $s_user->billing_address_2; + $shopping_user->billing_zipcode = $s_user->billing_zipcode; + $shopping_user->billing_city = $s_user->billing_city; + $shopping_user->billing_country_id = $s_user->billing_country_id; + $shopping_user->billing_phone = $s_user->billing_phone; + $shopping_user->billing_email = $s_user->billing_email; + ;*/ + $shopping_user->faker_mail = $s_user->faker_mail; + if(!$s_user->faker_mail){ + $shopping_user->shipping_email = $s_user->billing_email; + } + $shopping_user->shopping_user_id = $data['shopping_user_id']; + $shopping_user->member_id = $s_user->member_id; + } + $shopping_user->same_as_billing = true; + $shopping_user->shipping_salutation = isset($data['shipping_salutation']) ? $data['shipping_salutation'] : ''; + $shopping_user->shipping_company = isset($data['shipping_company']) ? $data['shipping_company'] : ''; + $shopping_user->shipping_firstname = isset($data['shipping_firstname']) ? $data['shipping_firstname'] : ''; + $shopping_user->shipping_lastname = isset($data['shipping_lastname']) ? $data['shipping_lastname'] : ''; + $shopping_user->shipping_address = isset($data['shipping_address']) ? $data['shipping_address'] : ''; + $shopping_user->shipping_address_2 = isset($data['shipping_address_2']) ? $data['shipping_address_2'] : ''; + $shopping_user->shipping_zipcode = isset($data['shipping_zipcode']) ? $data['shipping_zipcode'] : ''; + $shopping_user->shipping_city = isset($data['shipping_city']) ? $data['shipping_city'] : ''; + $shopping_user->shipping_country_id = Yard::instance('shopping')->getShippingCountryCountryId(); + $shopping_user->shipping_phone = isset($data['shipping_phone']) ? $data['shipping_phone'] : ''; + + }else{ + $shopping_user->same_as_billing = $user->account->same_as_billing ? false : true; + $shopping_user->shipping_salutation = $user->account->shipping_salutation; + $shopping_user->shipping_company = $user->account->shipping_company; + $shopping_user->shipping_firstname = $user->account->shipping_firstname; + $shopping_user->shipping_lastname = $user->account->shipping_lastname; + $shopping_user->shipping_address = $user->account->shipping_address; + $shopping_user->shipping_address_2 = $user->account->shipping_address_2; + $shopping_user->shipping_zipcode = $user->account->shipping_zipcode; + $shopping_user->shipping_city = $user->account->shipping_city; + $shopping_user->shipping_country_id = $user->account->shipping_country_id; + $shopping_user->shipping_phone = $user->account->shipping_phone; + } + + return $shopping_user; + } + + public function store($identifier){ + + + $data = Request::all(); + //change selected Country + /*if(isset($data['selected_country']) && $data['selected_country'] === 'change'){ + if(!Request::get('same_as_billing')){ + Yard::instance('shopping')->setShippingCountryWithPrice($data['billing_state'], $data['is_for']); + }else{ + Yard::instance('shopping')->setShippingCountryWithPrice($data['shipping_state'], $data['is_for']); + } + return back()->withInput(Request::all()); + }*/ + + $rules = array( + 'billing_salutation' => 'required', + 'billing_firstname'=>'required', + 'billing_lastname'=>'required', + 'billing_email'=>'required|email', + 'billing_address'=>'required', + 'billing_zipcode'=>'required', + 'billing_city' => 'required', + 'accepted_data_checkbox' => 'accepted', + ); + + if(Request::get('same_as_billing')){ + $rules = array_merge($rules, [ + 'shipping_firstname'=>'required', + 'shipping_lastname'=>'required', + 'shipping_address'=>'required', + 'shipping_zipcode'=>'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required' + + ]); + } + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + + $data = Request::all(); + //make User + $shopping_user = $this->makeShoppingUser($data); + + //make Order and Items + $shopping_order = $this->makeShoppingOrder($shopping_user); + //CustomerPriority + if($shopping_user->is_from === 'shopping'){ + CustomerPriority::checkOne(ShoppingUser::find($shopping_user->id), true); + } + Util::setUserHistoryValue(['status'=>2, 'shopping_order_id'=>$shopping_order->id]); + + //check credit Card + if(Request::get('payment_method')){ + + $ret = []; + //Rechnungskauf ohne PAYONE + if(Request::get('payment_method') === 'fnc#MIV'){ + + } + //other + $pay = new PayController(); + $pay->init($shopping_user, $shopping_order); + $amount = Yard::instance('shopping')->totalWithShipping(2, '.', '') * 100; + $reference = $pay->setPrePayment(Request::get('payment_method'), $amount, 'EUR', $ret); + $this->putPayments('payment_reference', $reference); + $pay->setPersonalData(); + return $pay->ResponseData($identifier); + } + + return redirect()->back(); + } + + + public function transactionStatus($status, $reference){ + + $shopping_order_id = $this->getPayments('shopping_order_id'); + + $ShoppingPayment = ShoppingPayment::where('shopping_order_id', $shopping_order_id)->where('reference', $reference)->first(); + if(!$ShoppingPayment){ + //TODO log this + Util::setUserHistoryValue(['status'=>21]); + + \Session::flash('checkout-error', 'Der Zahlungsvorgang konnte nicht abgeschlossen werden, die Zahlung wurde nicht gefunden: '.$reference); + return redirect(route('checkout.checkout_card')); + } + $ShoppingPayment->status = $status; + $ShoppingPayment->save(); + + if($status === "success"){ + + Yard::instance('shopping')->destroy(); + $this->destroy(); + + $payt = $ShoppingPayment->payment_transactions->last(); + + $data = [ + 'user_shop' => Util::getUserShop(), + 'order_reference' => $reference, + 'pay_trans' => $payt, + ]; + return view('web.templates.checkout-final', $data); + } + if($status === "cancel"){ + Util::setUserHistoryValue(['status'=>22]); + \Session::flash('checkout-error', 'Der Zahlungsvorgang wurde abgebrochen, die Bestellung konnte nicht ausgeführt werden.'); + return redirect(route('checkout.checkout_card')); + + } + if($status === "error"){ + Util::setUserHistoryValue(['status'=>23]); + \Session::flash('checkout-error', 'Der Zahlungsvorgang wurde abgebrochen, die Bestellung konnte nicht ausgeführt werden.'); + return redirect(route('checkout.checkout_card')); + + } + } + + public function final($transactionId, $reference, $identifier) { + + $payt = PaymentTransaction::findOrFail($transactionId); + if($payt->shopping_payment->reference != $reference){ + abort(404); + } + Yard::instance('shopping')->destroy(); + $this->destroy(); + + if($payt->status === 'fnc' || $payt->status === 'vor'){ + $this->directPaymentStatus($payt); + } + + $data = [ + 'order_reference' => $payt->shopping_payment->reference, + 'pay_trans' => $payt, + ]; + return view('user.checkout.final', $data); + } + + /*private function storeUserPaymentsData($shopping_user, $ret){ + if($shopping_user->auth_user_id){ + $user = User::find($shopping_user->auth_user_id); + if($user && $user->account){ + if(isset($ret['elv']) && is_array($ret['elv'])){ + $user->account->payment_data = $ret['elv']; + $user->account->save(); + } + } + } + }*/ + + private function makeShoppingUser($data){ + + $data['same_as_billing'] = isset($data['same_as_billing']) ? false : true; //reinvert + $data['accepted_data_checkbox'] = isset($data['accepted_data_checkbox']) ? true : false; + + $shopping_user = false; + if($this->getPayments('shopping_user_id')){ + $shopping_user = ShoppingUser::find($this->getPayments('shopping_user_id')); + if($shopping_user){ + $shopping_user->fill($data); + $shopping_user->mode = null; + $shopping_user->save(); + } + } + if(!$shopping_user){ + $shopping_user = ShoppingUser::create($data); + } + $this->putPayments('shopping_user_id', $shopping_user->id); + + return $shopping_user; + } + + private function makeShoppingOrder($shopping_user){ + + $user_shop = Util::getUserShop(); + + + $data = [ + 'shopping_user_id' => $shopping_user->id, + 'auth_user_id' => $shopping_user->auth_user_id, + 'country_id' => Yard::instance('shopping')->getShippingCountryId(), + 'payment_for' => Util::getUserPaymentFor(), + 'total' => Yard::instance('shopping')->total(2, '.', ''), + 'subtotal' => Yard::instance('shopping')->subtotal(2, '.', ''), + 'shipping' => Yard::instance('shopping')->shipping(2, '.', ','), + 'shipping_net' => Yard::instance('shopping')->shippingNet(2, '.', ''), + 'subtotal_ws' => Yard::instance('shopping')->subtotalWithShipping(2, '.', ''), + 'tax' => Yard::instance('shopping')->taxWithShipping(2, '.', ''), + 'total_shipping' => Yard::instance('shopping')->totalWithShipping(2, '.', ''), + 'points' => Yard::instance('shopping')->points(), + 'weight' => Yard::instance('shopping')->weight(), + 'txaction' => 'prev', + 'mode' => Util::getUserShoppingMode(), + ]; + + + $shopping_order= false; + if($this->getPayments('shopping_order_id')){ + $shopping_order = ShoppingOrder::find($this->getPayments('shopping_order_id')); + if($shopping_order){ + $shopping_order->fill($data); + $shopping_order->save(); + } + } + if(!$shopping_order){ + $shopping_order = ShoppingOrder::create($data); + } + $this->putPayments('shopping_order_id', $shopping_order->id); + + $items = Yard::instance('shopping')->getContentByOrder(); + $shopping_order->shopping_order_items()->each(function($model) use ($items, $shopping_order, $shopping_user) { + foreach ($items as $item) { + if ($model->row_id === $item->rowId) { + $data = [ + 'shopping_order_id' => $shopping_order->id, + 'row_id' => $item->rowId, + 'product_id' => $item->id, + 'comp' => $item->options->comp, + 'qty' => $item->qty, + 'price' => $item->price, + 'price_net' => Yard::instance('shopping')->rowPriceNet($item, 3, '.', ''), + 'tax_rate' => $item->taxRate, + 'slug' => $item->options->slug, + ]; + $model->fill($data)->save(); + return false; + } + } + return $model->delete(); + }); + + + foreach ($items as $item) { + if (!ShoppingOrderItem::where('shopping_order_id', $shopping_order->id)->where('row_id', $item->rowId)->count()){ + $data = [ + 'shopping_order_id' => $shopping_order->id, + 'row_id' => $item->rowId, + 'product_id' => $item->id, + 'comp' => $item->options->comp, + 'qty' => $item->qty, + 'price' => $item->price, + 'price_net' => Yard::instance('shopping')->rowPriceNet($item, 3, '.', ''), + 'tax_rate' => $item->taxRate, + 'slug' => $item->options->slug + ]; + $shopping_order_item = ShoppingOrderItem::create($data); + } + } + return $shopping_order; + } + + private function putPayments($key, $value){ + $content = $this->getContent(); + $content->put($key, $value); + $this->session->put($this->instance, $content); + + } + + private function getPayments($key){ + $content = $this->getContent(); + if ($content->has($key)){ + return $content->get($key); + } + return false; + } + + private function getContent() + { + if (is_null($this->session->get($this->instance))) { + return new Collection([]); + } + return $this->session->get($this->instance); + } + + public function destroy() + { + $this->session->remove($this->instance); + } + + private function directPaymentStatus(PaymentTransaction $payt){ + + if(isset($payt->transmitted_data['param'])){ + $shopping_order = ShoppingOrder::find($payt->transmitted_data['param']); + $shopping_order->txaction = 'open'; + $shopping_order->save(); + $shopping_payment = ShoppingPayment::where('reference', $payt->transmitted_data['reference'])->first(); + if($shopping_payment){ + $shopping_payment->txaction = 'open'; + $shopping_payment->save(); + } + //$send_link = Payment::paymentStatusPaidAction($shopping_order, false); + //$payt->request = "approved"; + //$payt->save(); + $data = [ + 'mode' => $payt->transmitted_data['mode'], + 'txaction' => $payt->txaction, + 'send_link' => false, + ]; + Payment::paymentStatusSendMail($shopping_order, $shopping_payment, $data); + } + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/User/CustomerController.php b/app/Http/Controllers/User/CustomerController.php new file mode 100755 index 0000000..192fcb4 --- /dev/null +++ b/app/Http/Controllers/User/CustomerController.php @@ -0,0 +1,270 @@ +middleware('active.account'); + $this->customerRepository = $customerRepository; + + } + + public function index() + { + if(Request::get('reset') === 'filter'){ + // set_user_attr('filter_member_id', null); + // set_user_attr('filter_customer_member', null); + return redirect(route('admin_customers')); + } + $data = [ + + ]; + return view('user.customer.index', $data); + } + + + public function detail($id) + { + $shopping_user = ShoppingUser::findOrFail($id); + if($shopping_user->member_id != \Auth::user()->id){ + abort(404); + } + $data = [ + 'shopping_user' => $shopping_user, + 'isAdmin' => false, + 'isView' => 'customer', + + ]; + return view('user.customer.detail', $data); + } + + public function edit($id) + { + $shopping_user = ShoppingUser::findOrFail($id); + if($shopping_user->member_id != \Auth::user()->id){ + abort(404); + } + $data = [ + 'shopping_user' => $shopping_user, + 'isAdmin' => false, + 'isView' => 'customer', + + ]; + return view('user.customer.edit', $data); + } + + public function add($id, $step=0) + { + if($id === "new"){ + $shopping_user = new ShoppingUser(); + $shopping_user->id = "new"; + }else{ + $shopping_user = ShoppingUser::findOrFail($id); + if($shopping_user->member_id != \Auth::user()->id){ + abort(404); + } + } + + $billing_email = null; + if(!session('errors')){ + if(old('email') || old('billing_email')){ + $step = 1; + $shopping_user->same_as_billing = true; + $billing_email = old('email'); + } + if(old('switcher-without-email') === 'true'){ + $step = 1; + $shopping_user->same_as_billing = true; + $shopping_user->faker_mail = true; + $billing_email = time()."-faker@mivita.care"; + } + } + $data = [ + 'shopping_user' => $shopping_user, + 'isAdmin' => false, + 'isView' => $step === 0 ? 'customer' : 'customer-add', + 'step' => $step, + 'billing_email' => $billing_email, + + ]; + return view('user.customer.add', $data); + } + + private function checkShoppingUsersEmail($data){ + $rules = array( + 'email' => 'required|string|email|max:255|unique:shopping_users,billing_email', + ); + $messages = [ + 'unique' => __('validation.custom.unique_email_client'), + ]; + $validator = Validator::make(Request::all(), $rules, $messages); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + + $rules = array( + 'email' => 'required|string|email|max:255|unique:users,email', + ); + $messages = [ + 'unique' => __('validation.custom.unique_email_member'), + ]; + $validator = Validator::make(Request::all(), $rules, $messages); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + + return back()->withInput(Request::all()); + } + + public function store($id) + { + $data = Request::all(); + + if($id === 'new' && $data['action'] === 'add_customer_with_email'){ + return $this->checkShoppingUsersEmail($data); + } + if($id === 'new' && $data['action'] === 'add_customer_without_email'){ + return back()->withInput(Request::all()); + } + + if($data['action'] === 'shopping-user-store-new' || $data['action']==='shopping-user-store'){ + $rules = array( + 'billing_salutation' => 'required', + 'billing_firstname'=>'required', + 'billing_lastname'=>'required', + 'billing_email'=>'required|email', + 'billing_address'=>'required', + 'billing_zipcode'=>'required', + 'billing_city' => 'required', + 'billing_country_id' => 'required', + ); + + if(!Request::get('same_as_billing')){ + $rules = array_merge($rules, [ + 'shipping_firstname'=>'required', + 'shipping_lastname'=>'required', + 'shipping_address'=>'required', + 'shipping_zipcode'=>'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required', + 'shipping_country_id' => 'required' + ]); + } + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + } + + $data['faker_mail'] = isset($data['faker_mail']) ? true : false; + $data['has_buyed'] = isset($data['has_buyed']) ? true : false; + $data['subscribed'] = isset($data['subscribed']) ? true : false; + //subscribed can only true when has_buyed ist active + $data['subscribed'] = $data['has_buyed'] ? $data['subscribed'] : false; + + $data['same_as_billing'] = isset($data['same_as_billing']) ? true : false; + $data['shipping_country_id'] = isset($data['shipping_country_id']) ? $data['shipping_country_id'] : $data['billing_country_id']; + + if($id > 0 && $data['action'] === 'shopping-user-store'){ + $shopping_user = ShoppingUser::findOrFail($id); + if($shopping_user->member_id != \Auth::user()->id){ + abort(404); + } + CustomerPriority::checkChangeOne($shopping_user, $data, true); + $shopping_user->fill($data); + $shopping_user->save(); + + } + + if($id === 'new' && $data['action'] === 'shopping-user-store-new') { + $shopping_user = ShoppingUser::create($data); + $shopping_user->member_id = \Auth::user()->id; + $shopping_user->save(); + CustomerPriority::checkNewOne($shopping_user, true); + } + \App\Services\Shop::newUserOrder($shopping_user->number); + + if($shopping_user->is_like){ + \Session()->flash('custom-error', __('validation.custom.match_found')); + } + + \Session()->flash('alert-save', true); + return redirect(route('user_customer_detail', [$shopping_user->id])); + } + + public function getCustomers() + { + $user = User::find(\Auth::user()->id); + + $query = ShoppingUser::select(['id', 'billing_company', 'billing_salutation', 'billing_firstname', 'billing_lastname', 'billing_email', 'faker_mail', 'billing_zipcode', 'billing_city', 'billing_country_id', 'orders', 'subscribed', 'created_at', 'number', 'mode', 'is_like', 'wp_order_number']) + ->where('shopping_users.member_id', '=', $user->id); + //->groupBy('shopping_users.number'); + + /*set_user_attr('filter_member_id', Request::get('filter_member_id')); + if(Request::get('filter_member_id') != ""){ + $query->where('member_id', '=', Request::get('filter_member_id')); + }*/ + return \DataTables::eloquent($query) + + ->addColumn('send_to', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->is_like ? ' in Prüfung' : ' wählen'; + }) + ->addColumn('billing_email', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->faker_mail ? "-" : $ShoppingUser->billing_email; + }) + ->addColumn('id', function (ShoppingUser $ShoppingUser) { + return ''; + }) + ->addColumn('billing_salutation', function (ShoppingUser $ShoppingUser) { + return HTMLHelper::getSalutationLang($ShoppingUser->billing_salutation); + }) + ->addColumn('billing_country_id', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->billing_country ? $ShoppingUser->billing_country->getLocated() : ''; + }) + ->addColumn('first_created_at', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->firstEntryByNumber()->created_at->format('d.m.Y'); + }) + ->addColumn('orders', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->lastEntryByNumber()->orders; + }) + ->addColumn('subscribed', function (ShoppingUser $ShoppingUser) { + return get_active_badge($ShoppingUser->subscribed); + }) + ->addColumn('status', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->is_like ? ' in Prüfung ' : ' zugewiesen'; + }) + ->addColumn('extras', function (ShoppingUser $ShoppingUser) { + return $ShoppingUser->wp_order_number.($ShoppingUser->mode==='dev' ? ' dev' : ''); + }) + ->filterColumn('billing_email', function($query, $keyword) { + if($keyword != ""){ + $query->where('billing_email', 'LIKE', '%'.$keyword.'%'); + } + }) + ->orderColumn('send_to', 'id $1') + ->orderColumn('id', 'id $1') + ->orderColumn('billing_email', 'billing_email $1') + ->orderColumn('billing_country_id', 'billing_country_id $1') + ->orderColumn('billing_salutation', 'billing_salutation $1') + ->orderColumn('first_created_at', 'created_at $1') + ->orderColumn('orders', 'orders $1') + ->orderColumn('subscribed', 'subscribed $1') + ->rawColumns(['send_to', 'id', 'subscribed', 'extras', 'status']) + ->make(true); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/User/HomepartyController.php b/app/Http/Controllers/User/HomepartyController.php new file mode 100755 index 0000000..f21c44b --- /dev/null +++ b/app/Http/Controllers/User/HomepartyController.php @@ -0,0 +1,501 @@ +middleware('superadmin'); + + $this->middleware('active.account'); + } + + public function index() + { + $data = [ + 'homepartys' => Homeparty::where('auth_user_id', '=', \Auth::user()->id)->get(), + ]; + return view('user.homeparty.index', $data); + } + + public function detail($id) + { + if($id === 'new'){ + $homeparty = new Homeparty(); + }else{ + $homeparty = $this->getHomparty($id); + } + if($homeparty->homeparty_host){ + $homeparty_user = $homeparty->homeparty_host; + }else{ + $homeparty_user = new HomepartyUser(); + $homeparty_user->is_host = true; + } + + if($homeparty->completed){ + abort(404); + } + + $data = [ + 'homeparty' => $homeparty, + 'homeparty_user' => $homeparty_user, + + ]; + return view('user.homeparty.detail', $data); + } + + public function store($id = null) + { + $data = Request::all(); + if($data['action'] === 'homeparty-party-store'){ + $rules = array( + 'date' => 'required', + 'name' => 'required', + 'place' => 'required' + ); + } + if($data['action'] === 'homeparty-user-store'){ + $rules = array( + 'billing_salutation' => 'required', + 'billing_firstname' => 'required', + 'billing_lastname' => 'required', + 'billing_address' => 'required', + 'billing_zipcode' => 'required', + 'billing_city' => 'required', + 'billing_country_id' => 'required', + ); + if (!Request::get('same_as_billing')) { + $rules = array_merge($rules, [ + 'shipping_firstname' => 'required', + 'shipping_lastname' => 'required', + 'shipping_address' => 'required', + 'shipping_zipcode' => 'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required', + 'shipping_country_id' => 'required' + ]); + } + } + + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + + if($data['action'] === 'homeparty-party-store'){ + if(!$id){ + //first save create and empty user/host + do { + $token = Util::uuidToken(); + } while( Homeparty::where('token', $token)->count() ); + $data['token'] = $token; + $data['auth_user_id'] = \Auth::user()->id; + $homeparty = Homeparty::create($data); + + $homeparty_user = HomepartyUser::create([ + 'homeparty_id' => $homeparty->id, + 'auth_user_id' => \Auth::user()->id, + 'is_host' => true, + ]); + }else { + $homeparty = $this->getHomparty($id); + $homeparty->fill($data)->save(); + } + } + + if($data['action'] === 'homeparty-user-store'){ + $homeparty = $this->getHomparty($id); + $data['same_as_billing'] = isset($data['same_as_billing']) ? true : false; + $data['shipping_country_id'] = isset($data['shipping_country_id']) ? $data['shipping_country_id'] : $data['billing_country_id']; + $homeparty_user = $homeparty->homeparty_host; + $homeparty_user->fill($data)->save(); + } + + \Session()->flash('alert-save', '1'); + return redirect(route('user_homeparty_detail', $homeparty->id)); + } + + + public function guests($id = null) + { + $homeparty = $this->getHomparty($id); + $data = [ + 'homeparty' => $homeparty, + ]; + return view('user.homeparty.guests', $data); + } + + + public function guestDetail($id = null, $gid = null) + { + $homeparty = $this->getHomparty($id); + if($gid === 'new'){ + $homeparty_user = new HomepartyUser(); + }else{ + $homeparty_user = HomepartyUser::findOrFail($gid); + if($homeparty->id !== $homeparty_user->homeparty_id){ + abort(404); + } + } + if($homeparty->completed){ + abort(404); + } + $data = [ + 'homeparty' => $homeparty, + 'homeparty_user' => $homeparty_user, + ]; + return view('user.homeparty.guest_detail', $data); + } + + public function guestStore($id = null, $gid = null) + { + $data = Request::all(); + $rules = array( + 'billing_salutation' => 'required', + 'billing_firstname' => 'required', + 'billing_lastname' => 'required', + 'billing_address' => 'required', + 'billing_zipcode' => 'required', + 'billing_city' => 'required', + 'billing_country_id' => 'required', + ); + if (!Request::get('same_as_billing')) { + $rules = array_merge($rules, [ + 'shipping_firstname' => 'required', + 'shipping_lastname' => 'required', + 'shipping_address' => 'required', + 'shipping_zipcode' => 'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required', + 'shipping_country_id' => 'required' + ]); + } + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + + $homeparty = $this->getHomparty($id); + if($gid === null){ + $homeparty_user = HomepartyUser::create([ + 'homeparty_id' => $homeparty->id, + 'auth_user_id' => \Auth::user()->id, + 'is_host' => false, + ]); + }else{ + $homeparty_user = HomepartyUser::findOrFail($gid); + } + if($homeparty->id !== $homeparty_user->homeparty_id){ + abort(404); + } + $data['same_as_billing'] = isset($data['same_as_billing']) ? true : false; + $data['shipping_country_id'] = isset($data['shipping_country_id']) ? $data['shipping_country_id'] : $data['billing_country_id']; + $homeparty_user->fill($data)->save(); + \Session()->flash('alert-save', '1'); + return redirect(route('user_homeparty_guests', [$homeparty->id])); + } + + + public function order($id = null) + { + $user = User::find(Auth::user()->id); + + $homeparty = $this->getHomparty($id); + HomepartyCart::calculateHomeparty($homeparty); + $userHistoryPaymentOrder = UserHistory::whereUserId($user->id)->whereAction('payment_homeparty')->where('referenz', $homeparty->id)->get()->last(); + $data = [ + 'homeparty' => $homeparty, + 'userHistoryPaymentOrder' => $userHistoryPaymentOrder, + ]; + return view('user.homeparty.order', $data); + } + //perform Request + public function orderStore($id = null) + { + + $homeparty = $this->getHomparty($id); + + + + if(Request::ajax()) { + $data = Request::all(); + + if($data['action'] === 'addProduct') { + if($data['homeparty_id'] == $homeparty->id){ + $homeparty_user = HomepartyUser::findOrFail($data['homeparty_user_id']); + if($homeparty_user->homeparty_id !== $homeparty->id){ + abort(404); + } + if($product = Product::find($data['product_id'])){ + $margin = 0; + if(\Auth::user() && \Auth::user()->user_level){ + $margin = \Auth::user()->user_level->margin; + } + $HomepartyUserOrderItem = HomepartyUserOrderItem::where('homeparty_user_id', $homeparty_user->id)->where('product_id', $product->id)->first(); + if($HomepartyUserOrderItem){ + $HomepartyUserOrderItem->qty = $HomepartyUserOrderItem->qty+1; + $HomepartyUserOrderItem->save(); + }else{ + $HomepartyUserOrderItem = HomepartyUserOrderItem::create([ + 'homeparty_id' => $homeparty->id, + 'homeparty_user_id' => $homeparty_user->id, + 'product_id' => $product->id, + 'qty' => 1, + 'price' => $product->price, + 'price_net' => $product->getPriceWith(true, false), + 'tax_rate' => $product->tax, + 'points' => $product->points, + 'margin' => $margin, + 'ek-price' => $product->getPriceWith(false, true), + 'slug' => $product->slug + + ]); + } + + } + + } + $homeparty_user = HomepartyUser::findOrFail($data['homeparty_user_id']); + HomepartyCart::calculateHomeparty($homeparty); + $html_user_cart = view("user.homeparty.show_products_order", ['homeparty' => $homeparty, 'homeparty_guest' => $homeparty_user])->render(); + $html_bonus = view("user.homeparty.show_bonus", ['homeparty' => $homeparty])->render(); + $html_host_bonus = view("user.homeparty.show_calc_bonus_host")->render(); + $html_total = view("user.homeparty.show_total_order", ['homeparty' => $homeparty])->render(); + return response()->json(['response' => true, 'data'=>$data, 'html_user_cart'=>$html_user_cart, 'html_bonus'=>$html_bonus, 'html_host_bonus'=>$html_host_bonus, 'html_total'=>$html_total]); + } + + if($data['action'] === 'updateCart') { + if($data['homeparty_id'] == $homeparty->id){ + $homeparty_user = HomepartyUser::findOrFail($data['homeparty_user_id']); + if($homeparty_user->homeparty_id !== $homeparty->id){ + abort(404); + } + if(isset($data['product_id']) && $product = Product::find($data['product_id'])){ + if(isset($data['order_item_id']) && $HomepartyUserOrderItem = HomepartyUserOrderItem::find($data['order_item_id'])){ + if(isset($data['qty'])){ + $qty = (int) $data['qty']; + $qty = $qty < 1 ? 1 : $qty; + $qty = $qty > 100 ? 100 : $qty; + $HomepartyUserOrderItem->qty = $qty; + $HomepartyUserOrderItem->save(); + } + } + } + } + $homeparty_user = HomepartyUser::findOrFail($data['homeparty_user_id']); + HomepartyCart::calculateHomeparty($homeparty); + $html_user_cart = view("user.homeparty.show_products_order", ['homeparty' => $homeparty, 'homeparty_guest' => $homeparty_user])->render(); + $html_bonus = view("user.homeparty.show_bonus", ['homeparty' => $homeparty])->render(); + $html_host_bonus = view("user.homeparty.show_calc_bonus_host")->render(); + $html_total = view("user.homeparty.show_total_order", ['homeparty' => $homeparty])->render(); + return response()->json(['response' => true, 'data'=>$data, 'html_user_cart'=>$html_user_cart, 'html_bonus'=>$html_bonus, 'html_host_bonus'=>$html_host_bonus, 'html_total'=>$html_total]); + } + + if($data['action'] === 'removeFromCart') { + if($data['homeparty_id'] == $homeparty->id){ + $homeparty_user = HomepartyUser::findOrFail($data['homeparty_user_id']); + if($homeparty_user->homeparty_id !== $homeparty->id){ + abort(404); + } + if(isset($data['product_id']) && $product = Product::find($data['product_id'])){ + if(isset($data['order_item_id']) && $HomepartyUserOrderItem = HomepartyUserOrderItem::find($data['order_item_id'])){ + $HomepartyUserOrderItem->delete(); + } + } + } + $homeparty_user = HomepartyUser::findOrFail($data['homeparty_user_id']); + HomepartyCart::calculateHomeparty($homeparty); + $html_user_cart = view("user.homeparty.show_products_order", ['homeparty' => $homeparty, 'homeparty_guest' => $homeparty_user])->render(); + $html_bonus = view("user.homeparty.show_bonus", ['homeparty' => $homeparty])->render(); + $html_host_bonus = view("user.homeparty.show_calc_bonus_host")->render(); + $html_total = view("user.homeparty.show_total_order", ['homeparty' => $homeparty])->render(); + return response()->json(['response' => true, 'data'=>$data, 'html_user_cart'=>$html_user_cart, 'html_bonus'=>$html_bonus, 'html_host_bonus'=>$html_host_bonus, 'html_total'=>$html_total]); + } + + if($data['action'] === 'updateDeliveryOption') { + if($data['homeparty_id'] == $homeparty->id){ + $homeparty_user = HomepartyUser::findOrFail($data['homeparty_user_id']); + if($homeparty_user->homeparty_id !== $homeparty->id){ + abort(404); + } + if(isset($data['delivery'])){ + $homeparty_user->delivery = $data['delivery']; + $homeparty_user->save(); + } + } + $homeparty_user = HomepartyUser::findOrFail($data['homeparty_user_id']); + HomepartyCart::calculateHomeparty($homeparty); + $html_user_cart = view("user.homeparty.show_products_order", ['homeparty' => $homeparty, 'homeparty_guest' => $homeparty_user])->render(); + $html_bonus = view("user.homeparty.show_bonus", ['homeparty' => $homeparty])->render(); + $html_host_bonus = view("user.homeparty.show_calc_bonus_host")->render(); + $html_total = view("user.homeparty.show_total_order", ['homeparty' => $homeparty])->render(); + return response()->json(['response' => true, 'data'=>$data, 'html_user_cart'=>$html_user_cart, 'html_bonus'=>$html_bonus, 'html_host_bonus'=>$html_host_bonus, 'html_total'=>$html_total]); + } + + + return response()->json(['response' => false, 'data'=>$data]); + } + + HomepartyCart::calculateHomeparty($homeparty); + if(\App\Services\HomepartyCart::$price === 0){ + \Session()->flash('alert-error', 'Dein Warenkorb ist leer, bitte füge erst Produkte hinzu.'); + return redirect(route('user_homeparty_order', [$homeparty->id])); + } + + //save the calucalte card! + $time = time(); + $date = date('d.m.Y H:i:s', $time); + $user = User::find(Auth::user()->id); + Yard::instance('shopping')->destroy(); + Yard::instance('shopping')->add($homeparty->id, 'Bestellung Homeparty '.$date, 1, \App\Services\HomepartyCart::$price, ['image' => "", 'slug' => $time, 'weight' => 0]); + do { + $identifier = Util::getToken(); + } while( ShoppingInstance::where('identifier', $identifier)->count() ); + + HomepartyCart::store($identifier, $date); + + $data = []; + $data['is_from'] = 'homeparty'; + $data['shop_price_net'] = HomepartyCart::getFormattedPriceNet(); + $data['shop_price_tax'] = HomepartyCart::getFormattedPriceTax(); + $data['homeparty_id'] = $homeparty->id; + $data['is_for'] = 'hp'; + + ShoppingInstance::create([ + 'identifier' => $identifier, + 'user_shop_id' => 1, //is first faker shop for nuy intern + 'auth_user_id' => Auth::user()->id, + 'payment' => 5, //Berater Membership + 'subdomain' => url('/'), + 'country_id' => Yard::instance('shopping')->getShippingCountryId(), + 'shopping_data' => $data, + 'back' => url()->previous(), + + ]); + + HomepartyCart::store($identifier, $date); + Yard::instance('shopping')->store($identifier); + + $path = route('checkout.checkout_card', ['identifier'=>$identifier]); + UserHistory::create(['user_id' => $user->id, 'action'=>'payment_homeparty', 'status'=>1, 'referenz'=>$homeparty->id, 'identifier'=>$identifier]); + //$path = str_replace('http', 'https', $path); + return redirect()->secure($path); + } + + + public function delete($do, $id = null, $gid=null) + { + $homeparty = $this->getHomparty($id); + + if($do === 'hpu'){ + $homeparty_user = HomepartyUser::findOrFail($gid); + if($homeparty->id !== $homeparty_user->homeparty_id){ + abort(404); + } + $homeparty_user->save(); + $homeparty_user->delete(); + \Session()->flash('alert-success', "Homeparty Gast gelöscht"); + return redirect(route('user_homeparty_guests', [$homeparty->id])); + + } + if($do === 'hp') { + + foreach ($homeparty->homeparty_users as $homeparty_user){ + if ($homeparty->id !== $homeparty_user->homeparty_id) { + abort(404); + } + $homeparty_user->save(); + $homeparty_user->delete(); + } + $homeparty->delete(); + \Session()->flash('alert-success', "Homeparty gelöscht"); + return redirect(route('user_homepartys')); + + } + abort(404); + } + + private function getHomparty($id){ + $homeparty = Homeparty::findOrFail($id); + if($homeparty->auth_user_id !== \Auth::user()->id){ + abort(404); + } + return $homeparty; + } + + public function datatable(){ + $query = Product::select('products.*')->where('active', true)->where(function ($q) { + $q->where('show_at', '=', 0) + ->orWhere('show_at', '=', 1); + }); + + return \DataTables::eloquent($query) + + ->addColumn('add_card', function (Product $product) { + return ''; + }) + ->addColumn('picture', function (Product $product) { + if(count($product->images)){ + return ''; + } + return ""; + }) + ->addColumn('price_net', function (Product $product) { + return $product->getFormattedPriceWith(true, true). " €"; + }) + ->addColumn('price_gross', function (Product $product) { + return $product->getFormattedPriceWith(false, true). " €"; + }) + ->addColumn('price_vk_gross', function (Product $product) { + return $product->getFormattedPriceWith(false, false). " €"; + }) + ->addColumn('action', function (Product $product) { + return ''; + }) + ->filterColumn('product', function($query, $keyword) { + if($keyword != ""){ + $query->where('name', 'LIKE', '%'.$keyword.'%'); + } + }) + ->orderColumn('name', 'name $1') + ->orderColumn('product', 'name $1') + ->orderColumn('number', 'number $1') + ->orderColumn('points', 'points $1') + ->orderColumn('price_net', 'price_net $1') + ->orderColumn('price_gross', 'price_gross $1') + ->orderColumn('price_vk_gross', 'price $1') + ->orderColumn('contents_total', 'contents_total $1') + ->orderColumn('weight', 'weight $1') + + ->rawColumns(['add_card', 'product', 'quantity', 'picture', 'action']) + ->make(true); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/User/OrderController.php b/app/Http/Controllers/User/OrderController.php new file mode 100755 index 0000000..40f1621 --- /dev/null +++ b/app/Http/Controllers/User/OrderController.php @@ -0,0 +1,495 @@ +middleware('superadmin'); + + $this->middleware('active.account'); + } + + public function index() + { + + $data = [ + ]; + return view('user.order.index', $data); + } + + public function detail($id) + { + $user = User::find(\Auth::user()->id); + $shopping_order = ShoppingOrder::findOrFail($id); + if($shopping_order->auth_user_id !== $user->id){ + abort(404); + } + $shopping_order->getLastShoppingPayment(); + + $data = [ + 'shopping_order' => $shopping_order, + 'isAdmin' => false, + ]; + return view('user.order.detail', $data); + } + + public function ordersDatatable(){ + + $user = User::find(\Auth::user()->id); + $query = ShoppingOrder::with('shopping_user', 'shopping_payments')->select('shopping_orders.*')->where('auth_user_id', '=', $user->id)->where('txaction', '!=', NULL); + + return \DataTables::eloquent($query) + ->addColumn('id', function (ShoppingOrder $ShoppingOrder) { + return ''; + }) + ->addColumn('created_at', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->created_at->format("d.m.Y"); + }) + ->addColumn('txaction', function (ShoppingOrder $ShoppingOrder) { + return Payment::getShoppingOrderBadge($ShoppingOrder); + }) + ->addColumn('total_shipping', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getFormattedTotalShipping()." €"; + }) + ->addColumn('payment', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getLastShoppingPayment('getPaymentType'); + }) + ->addColumn('shipped', function (ShoppingOrder $ShoppingOrder) { + return ''.$ShoppingOrder->getShippedType().''; + }) + ->addColumn('is_for', function (ShoppingOrder $ShoppingOrder) { + if($ShoppingOrder->shopping_user->is_for === 'me'){ + return 'Beraterbestellung'; + } + if($ShoppingOrder->shopping_user->is_for === 'ot'){ + return 'Kundenbestellung'; + } + if($ShoppingOrder->shopping_user->is_for === 'hp'){ + return 'Homepartybestellung'; + } + return '-'; + }) + ->addColumn('reference', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getLastShoppingPayment('reference'); + }) + ->orderColumn('id', 'id $1') + ->orderColumn('txaction', 'txaction $1') + ->orderColumn('shipped', 'shipped $1') + ->orderColumn('total_shipping', 'total_shipping $1') + ->rawColumns(['id', 'txaction', 'is_for', 'shipped']) + ->make(true); + } + + + public function delivery($for, $id=null) + { + $user = User::find(\Auth::user()->id); + + $shopping_user = null; + $delivery_id = null; + if($for === 'ot'){ + $shopping_user = $this->checkShoppingUser($id, $user); + $delivery_id = $shopping_user->id; + if(!$this->checkShoppingCountry($for, $delivery_id) && !\Session()->has('custom-error')){ + \Session()->flash('custom-error', __('validation.custom.shipping_not_found')); + return redirect(route('user_order_my_delivery', [$for, $delivery_id])); + } + } + + if(Request::get('action') === 'next'){ + Yard::instance('shopping')->destroy(); + if(Request::get('switchers-radio-is-for') === 'ot'){ + $delivery_id = $id; + } + return redirect(route('user_order_my_list', [Request::get('switchers-radio-is-for'), $delivery_id])); + } + + $data = [ + 'shopping_user' => $shopping_user, + 'isAdmin' => false, + 'isView' => 'customer', + 'for' => $for, + 'delivery_id' => $delivery_id, + ]; + return view('user.order.delivery', $data); + } + + public function list($for, $id=null) + { + $user = User::find(\Auth::user()->id); + $shopping_user = null; + $delivery_id = null; + + if($for === 'ot'){ + $shopping_user = $this->checkShoppingUser($id, $user); + $delivery_id = $shopping_user->id; + } + $shipping_country_id = $this->checkShoppingCountry($for, $id); + if(!$shipping_country_id){ + \Session()->flash('custom-error', __('validation.custom.shipping_not_found')); + return redirect(route('user_order_my_delivery', [$for, $delivery_id])); + } + + Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country_id, $for); + + $data = [ + 'shopping_user' => $shopping_user, + 'user' => $user, + 'isAdmin' => false, + 'isView' => 'customer', + 'for' => $for, + 'delivery_id' => $delivery_id, + 'comp_products' => $this->getCompProducts($for), + ]; + return view('user.order.list', $data); + } + + public function payment($for, $id=null){ + $data = Request::all(); + + $user = User::find(Auth::user()->id); + $rules = array( + 'shipping_salutation' => 'required', + 'shipping_firstname'=>'required', + 'shipping_lastname'=>'required', + 'shipping_address'=>'required', + 'shipping_zipcode'=>'required', + 'shipping_city' => 'required', + 'shipping_state' => 'required', + ); + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + + if(Yard::instance('shopping')->getNumComp() > 0){ + if(!isset($data['switchers-comp-product'])){ + $validator->errors()->add('switchers-comp-product', __('Bitte wähle ein Kompensationsprodukt aus')); + }else{ + if(!is_array($data['switchers-comp-product'])){ + $validator->errors()->add('switchers-comp-product', __('Bitte wähle ein Kompensationsprodukt aus')); + }else{ + if(count($data['switchers-comp-product']) !== Yard::instance('shopping')->getNumComp()){ + $validator->errors()->add('switchers-comp-product', __('Bitte wähle :count Kompensationsprodukte aus', ['count'=>Yard::instance('shopping')->getNumComp()])); + } + } + } + if ($validator->errors()->count()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + } + do { + $identifier = Util::getToken(); + } while( ShoppingInstance::where('identifier', $identifier)->count() ); + $data['is_from'] = 'user_order'; + $data['is_for'] = $for; + $data['shopping_user_id'] = $id; + unset($data['quantity']); + unset($data['_token']); + + ShoppingInstance::create([ + 'identifier' => $identifier, + 'user_shop_id' => 1, //is first faker shop for buy intern + 'auth_user_id' => Auth::user()->id, + 'payment' => 2, //Berater Shop + 'subdomain' => url('/'), + 'country_id' => Yard::instance('shopping')->getShippingCountryId(), + 'shopping_data' => $data, + 'back' => url()->previous(), + + ]); + Yard::instance('shopping')->store($identifier); + + + //add to DB + $path = route('checkout.checkout_card', ['identifier'=>$identifier]); + UserHistory::create(['user_id' => $user->id, 'action'=>'user_order_payment', 'status'=>1, 'product_id'=>null, 'identifier'=>$identifier, 'abo_options'=>0]); + //$path = str_replace('http', 'https', $path); + return redirect()->secure($path); + + } + + private function checkShoppingCountry($for, $id=null){ + + $country_id = null; + if($for === 'me'){ + $user = User::find(\Auth::user()->id); + if($user->same_as_billing){ + $country_id = $user->account->country_id; + }else{ + $country_id = $user->account->shipping_country_id; + } + } + if($for === 'ot' && $id){ + $shopping_user = ShoppingUser::findOrFail($id); + if($shopping_user->same_as_billing){ + $country_id = $shopping_user->billing_country_id; + }else{ + $country_id = $shopping_user->shipping_country_id; + } + } + + if($country_id){ + if($shipping_country = ShippingCountry::whereCountryId($country_id)->first()){ + return $shipping_country->id; + } + } + return false; + } + + private function checkShoppingUser($id, $user){ + if($id === null){ + abort(403, 'Error: Keine User ID'); + } + $shopping_user = ShoppingUser::findOrFail($id); + if($shopping_user->member_id !== $user->id){ + abort(403, 'Error: Falsche User ID'); + } + $shopping_user = ShoppingUser::findOrFail($id); + if($shopping_user->is_like){ + abort(403, 'Error: Kunde in Prüfung'); + } + return $shopping_user; + } + + public function datatable(){ + + $show_at = 1; + + // $user = User::find(\Auth::user()->id); + ; + + if(Request::get('shipping_is_for') === 'me'){ + $query = Product::select('products.*')->where('active', true)->where(function ($q) { + $q->where('show_at', '=', 1) + ->orWhere('show_at', '=', 2) + ->orWhere('show_at', '=', 6); + + }); + + }else{ + $query = Product::select('products.*')->where('active', true)->where(function ($q) { + $q->where('show_at', '=', 0) + ->orWhere('show_at', '=', 1); + }); + + } + + + //Kunden und Berater + //->orWhere('show_at', '=', 2); // Nur Berater + //->orderBy('pos', 'DESC') + //->orderBy('id', 'DESC'); + + return \DataTables::eloquent($query) + + ->addColumn('product', function (Product $product) { + + $cartItem = Yard::instance('shopping')->getCartItemByProduct($product->id); + $qty = isset($cartItem->qty) ? $cartItem->qty : 0; + $rowId = isset($cartItem->rowId) ? $cartItem->rowId : ''; + return ''.$product->name.'
+
+ + + + + + + +
+
'; + }) + /* + + ->addColumn('add_card', function (Product $product) { + return ''; + }) + ->addColumn('quantity', function (Product $product) { + $cartItem = Yard::instance('shopping')->getCartItemByProduct($product->id); + $qty = isset($cartItem->qty) ? $cartItem->qty : 0; + $rowId = isset($cartItem->rowId) ? $cartItem->rowId : ''; + return '
+
+ + + + + + + +
+
'; + + })*/ + ->addColumn('picture', function (Product $product) { + if(count($product->images)){ + return ''; + } + return ""; + }) + ->addColumn('price_net', function (Product $product) { + return $product->getFormattedPriceWith(true, true). " €"; + }) + ->addColumn('price_gross', function (Product $product) { + return $product->getFormattedPriceWith(false, true). " €"; + }) + ->addColumn('price_vk_gross', function (Product $product) { + return $product->getFormattedPriceWith(false, false). " €"; + }) + ->addColumn('action', function (Product $product) { + return ''; + }) + ->filterColumn('product', function($query, $keyword) { + if($keyword != ""){ + $query->where('name', 'LIKE', '%'.$keyword.'%'); + } + }) + ->orderColumn('name', 'name $1') + ->orderColumn('product', 'name $1') + ->orderColumn('number', 'number $1') + ->orderColumn('points', 'points $1') + ->orderColumn('price_net', 'price_net $1') + ->orderColumn('price_gross', 'price_gross $1') + ->orderColumn('price_vk_gross', 'price $1') + ->orderColumn('contents_total', 'contents_total $1') + ->orderColumn('weight', 'weight $1') + + ->rawColumns(['add_card', 'product', 'quantity', 'picture', 'action']) + ->make(true); + } + + + public function performRequest(){ + + if(Request::ajax()) { + $data = Request::all(); + + $is_for = isset($data['shipping_is_for']) ? $data['shipping_is_for'] : 'ot'; + $data['comp_products'] = $this->getCompProducts($is_for); + + if($data['action'] === 'updateCart' && isset($data['product_id'])){ + if($product = Product::find($data['product_id'])){ + $image = ""; + if($product->images->count()){ + $image = $product->images->first()->slug; + } + + //get the card item + $cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->getPriceWith(false, true), ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points]); + Yard::setTax($cartItem->rowId, $product->tax); + + if(isset($data['qty']) && $data['qty'] > 0){ + Yard::instance('shopping')->update($cartItem->rowId, $data['qty']); + }else{ + //if 0 get the item by qty:1 and remove it + Yard::instance('shopping')->remove($cartItem->rowId); + } + // + + Yard::instance('shopping')->reCalculateShippingPrice(); + $this->checkCompProduct(Yard::instance('shopping')->getNumComp()); + $html_card = view("user.order.yard_view_form", $data)->render(); + $html_comp = view("user.order.comp_product", $data)->render(); + + return response()->json(['response' => true, 'data'=>$data, 'html_card'=>$html_card, 'html_comp'=>$html_comp]); + } + } + if($data['action'] === 'clearCart') { + Yard::instance('shopping')->destroy(); + return response()->json(['response' => true, 'data'=>Yard::instance('shopping')->count(), 'html_card'=>'', 'html_comp'=>'']); + + } + + if($data['action'] === 'updateShippingCountry') { + if(isset($data['shipping_country_id'])){ + if($shipping_country = ShippingCountry::find($data['shipping_country_id'])){ + Yard::instance('shopping')->setShippingCountryWithPrice($shipping_country->id, $is_for); + $this->checkCompProduct(Yard::instance('shopping')->getNumComp()); + } + } + $html_card = view("user.order.yard_view_form", $data)->render(); + $html_comp = view("user.order.comp_product", $data)->render(); + return response()->json(['response' => true, 'data'=>$data, 'html_card'=>$html_card, 'html_comp'=>$html_comp]); + + } + if($data['action'] === 'updateCompProduct'){ + // $data['comp_product_id'] + // $data['comp_num'] + //count_comp_products + $this->updateCompProduct($data); + Yard::instance('shopping')->reCalculateShippingPrice(); + $html_card = view("user.order.yard_view_form", $data)->render(); + $html_comp = view("user.order.comp_product", $data)->render(); + + return response()->json(['response' => true, 'data'=>$data, 'html_card'=>$html_card, 'html_comp'=>$html_comp]); + + } + return response()->json(['response' => false, 'data'=>$data]); + } + } + + private function checkCompProduct($count_comp_products){ + foreach (Yard::instance('shopping')->content() as $row) { + //wenn gleich löschen, da neue Versandkosten + if($row->options->comp > $count_comp_products) { + Yard::instance('shopping')->remove($row->rowId); + } + } + } + private function updateCompProduct($data){ + //clear old + foreach (Yard::instance('shopping')->content() as $row) { + //wenn kleiner wurde ein produkt entfernt aufgrund der Anzahl + //wenn gleich löschen, da neue Versandkosten + if($row->options->comp === $data['comp_num'] || $row->options->comp > $data['count_comp_products']) { + Yard::instance('shopping')->remove($row->rowId); + } + } + + if(isset($data['comp_product_id'])) { + if ($product = Product::find($data['comp_product_id'])) { + $image = ""; + if ($product->images->count()) { + $image = $product->images->first()->slug; + } + $cartItem = Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, 0, + ['image' => $image, 'slug' => $product->slug, 'weight' => 0, 'points' => 0, + 'comp' => $data['comp_num'], 'product_id' => $product->id]); + Yard::setTax($cartItem->rowId, 0); + } + } + } + + private function getCompProducts($for){ + if($for === 'me'){ + return Product::whereActive(true)->where('show_at', '=', 1)->where('shipping_addon', true)->orderBy('pos', 'DESC')->get(); + } + return null; + } +} \ No newline at end of file diff --git a/app/Http/Controllers/User/ShopSalesController.php b/app/Http/Controllers/User/ShopSalesController.php new file mode 100755 index 0000000..2166766 --- /dev/null +++ b/app/Http/Controllers/User/ShopSalesController.php @@ -0,0 +1,74 @@ +middleware('active.shop'); + } + + public function orders() + { + $data = [ + ]; + return view('user.shop.sales.orders', $data); + } + + public function orderDetail($id) + { + $user = User::find(\Auth::user()->id); + $shopping_order = ShoppingOrder::findOrFail($id); + if($shopping_order->member_id !== $user->id){ + abort(404); + } + $data = [ + 'shopping_order' => $shopping_order, + 'isAdmin' => false, + ]; + return view('user.shop.sales.order_detail', $data); + } + + public function ordersDatatable(){ + + $user = User::find(\Auth::user()->id); + $query = ShoppingOrder::with('shopping_user')->select('shopping_orders.*')->where('member_id', $user->id); + + return \DataTables::eloquent($query) + ->addColumn('id', function (ShoppingOrder $ShoppingOrder) { + return ''; + }) + ->addColumn('created_at', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->created_at->format("d.m.Y"); + }) + ->addColumn('txaction', function (ShoppingOrder $ShoppingOrder) { + return Payment::getShoppingOrderBadge($ShoppingOrder); + }) + ->addColumn('total_shipping', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->getFormattedTotalShipping(); + }) + ->addColumn('orders', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->shopping_user ? $ShoppingOrder->shopping_user->orders : ''; + }) + ->addColumn('user_shop_id', function (ShoppingOrder $ShoppingOrder) { + return $ShoppingOrder->user_shop ? ''.$ShoppingOrder->user_shop->getSubdomain(false).'' : ''; + }) + + ->orderColumn('id', 'id $1') + ->orderColumn('txaction', 'txaction $1') + ->orderColumn('user_shop_id', 'user_shop_id $1') + ->rawColumns(['id', 'txaction', 'user_shop_id']) + ->make(true); + } + + + +} \ No newline at end of file diff --git a/app/Http/Controllers/User/TeamController.php b/app/Http/Controllers/User/TeamController.php new file mode 100755 index 0000000..23de8fd --- /dev/null +++ b/app/Http/Controllers/User/TeamController.php @@ -0,0 +1,31 @@ +middleware('active.account'); + } + + public function members() + { + $user = User::find(\Auth::user()->id); + if($user->isActiveShop() && $user->shop){ + $shop_register_link = $user->shop->getSubdomain(false)."/reg"; + }else{ + $member_id = 'm'.($user->id + config('mivita.add_number_id')); + $shop_register_link = config('app.protocol').config('app.domain').config('app.tld_care').'/reg/'.$member_id; + } + $data = [ + 'shop_register_link' => $shop_register_link + ]; + return view('user.team.members', $data); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/UserDataController.php b/app/Http/Controllers/UserDataController.php new file mode 100755 index 0000000..3357bba --- /dev/null +++ b/app/Http/Controllers/UserDataController.php @@ -0,0 +1,221 @@ +middleware('auth'); + $this->userRepo = $userRepo; + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function userEdit(){ + $user = Auth::user(); + + /*if(!$user->account){ + $user->account = new UserAccount(); + }*/ + $data = [ + 'user' => $user, + ]; + return view('user.edit', $data); + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function userEditStore(){ + + $user = Auth::user(); + /*if(!$user->account){ + $user->account = new UserAccount(); + }*/ + + $rules = array( + 'salutation' => 'required', + 'first_name'=>'required', + 'last_name'=>'required', + 'address'=>'required', + 'zipcode'=>'required', + 'city' => 'required', + 'email' => 'required|string|email|max:255|exists:users,email', + 'email-confirm' => 'required|same:email', + ); + if(!Request::get('same_as_billing')){ + $rules = array_merge($rules, [ + 'shipping_firstname'=>'required', + 'shipping_lastname'=>'required', + 'shipping_address'=>'required', + 'shipping_zipcode'=>'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required' + + ]); + } + $data = [ + 'user' => $user, + ]; + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + + return view('user.edit', $data)->withErrors($validator); + + } else { + $this->userRepo->update(Request::all()); + \Session()->flash('alert-save', true); + return redirect('/user/edit'); + } + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function userDataStore(){ + + $user = User::findOrFail(Auth::user()->id); + if(!$user->account){ + $user->account = new UserAccount(); + } + $rules = array( + 'salutation' => 'required', + 'last_name' => 'required|max:255', + 'country_id' => 'required|integer|min:1', + 'email' => 'required|string|email|max:255|exists:users,email', + 'email-confirm' => 'required|same:email', + ); + if($user->active == 0){ + $rules['accepted_data_protection'] = 'required'; + $rules['accepted_active'] = 'required'; + } + + if(Request::get('company') == 1){ + $rules['company_name'] = 'required|max:255'; + $rules['company_country_id'] = 'required|integer|min:1'; + } + + $data = [ + 'user' => $user, + ]; + + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + + // get the error messages from the validator + $messages = $validator->messages(); + // redirect our user back to the form with the errors from the validator + return view('user.edit', $data)->withErrors($validator); + + } else { + $this->userRepo->update(Request::all()); + + if($user->active == 0) { + $account = $user->account; + $account->data_protection = now(); + $account->save(); + + $user->active = 1; + $user->active_date = now(); + $user->save(); + } + + if(Request::get('accepted_active') == "on"){ + $user->agreement = now(); + }else{ + $user->agreement = null; + } + + + \Session()->flash('alert-save', true); + return redirect('/home'); + } + } + + /** + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + */ + public function userDataAcceptedForm(){ + $user = Auth::user(); + + if(Request::get('accepted_active') == "on"){ + $user->agreement = now(); + }else { + $user->agreement = null; + } + + $user->save(); + \Session()->flash('alert-save', true); + return redirect('/home'); + } + + + /** + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + */ + public function userDataFree(){ + $user = Auth::user(); + $user->active = 1; + $user->active_date = now(); + $user->save(); + return redirect('/home'); + + } + + /** + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + */ + public function userDataFreeForm(){ + $user = Auth::user(); + + $rules = array( + 'accepted_data_protection' => 'required' + ); + + $data = [ + 'user' => $user, + ]; + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + // get the error messages from the validator + $messages = $validator->messages(); + // redirect our user back to the form with the errors from the validator + return view('home', $data)->withErrors($validator); + } else { + $account = $user->account; + $account->data_protection = now(); + $account->save(); + + if(Request::get('accepted_active') == "on"){ + $user->agreement = now(); + }else{ + $user->agreement = null; + } + + + + $user->active = 1; + $user->active_date = now(); + $user->save(); + + } + return redirect('/home'); + + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/UserDeleteController.php b/app/Http/Controllers/UserDeleteController.php new file mode 100755 index 0000000..39eb5e4 --- /dev/null +++ b/app/Http/Controllers/UserDeleteController.php @@ -0,0 +1,72 @@ +middleware('auth'); + $this->userRepo = $userRepo; + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function deleteAccount(){ + return view('user.delete_account'); + } + + /** + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function deleteAccountAction(Request $request) + { + $user = Auth::user(); + + $rules = array( + 'old_password' => 'required|old_password:' . Auth::user()->password, + ); + + Validator::extend('old_password', function ($attribute, $value, $parameters, $validator) { + + return Hash::check($value, current($parameters)); + + }); + + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + + // get the error messages from the validator + $messages = $validator->messages(); + // redirect our user back to the form with the errors from the validator + return view('user.delete_account')->withErrors($validator); + + }else{ + $this->userRepo->deleteUser($user); + //make delete + Auth::logout(); + \Session()->flash('alert-danger', __('account deleted')); + return redirect(route('home')); + } + } +} \ No newline at end of file diff --git a/app/Http/Controllers/UserLevelController.php b/app/Http/Controllers/UserLevelController.php new file mode 100755 index 0000000..fe7a1fe --- /dev/null +++ b/app/Http/Controllers/UserLevelController.php @@ -0,0 +1,84 @@ +middleware('admin'); + } + + public function index() + { + + $data = [ + 'values' => UserLevel::all(), + 'trans' => array_keys(config('localization.supportedLocales')), + ]; + return view('admin.level.index', $data); + } + + public function store() + { + + $data = Request::all(); + if($data['id'] == "new"){ + $model = UserLevel::create([ + 'name' => $data['name'], + 'pos' => $data['pos'], + 'content' => $data['content'], + 'active' => isset($data['active']) ? true : false, + ]); + }else{ + $model = UserLevel::find($data['id']); + $model->name = $data['name']; + $model->pos = $data['pos']; + $model->content = $data['content']; + $model->active = isset($data['active']) ? true : false; + $model->save(); + } + + if(!empty($data['trans'])){ + $trans = []; + foreach ($data['trans'] as $lang => $value){ + if($value && $value != null){ + $trans[$lang] = $value; + } + } + if(count($trans)){ + $model->trans_name = $trans; + $model->save(); + } + } + + \Session()->flash('alert-save', '1'); + return redirect(route('admin_levels')); + + + } + + + /*public function delete($id){ + + if(ProductAttribute::where('attribute_id', $id)->count()){ + \Session()->flash('alert-error', 'Eintrag wird als Produktattribute verwendet'); + return redirect(route('admin_product_attributes')); + } + + $model = Attribute::findOrFail($id); + $model->delete(); + \Session()->flash('alert-success', 'Eintrag gelöscht'); + return redirect(route('admin_product_attributes')); + } + */ + +} \ No newline at end of file diff --git a/app/Http/Controllers/UserShopController.php b/app/Http/Controllers/UserShopController.php new file mode 100755 index 0000000..569ee04 --- /dev/null +++ b/app/Http/Controllers/UserShopController.php @@ -0,0 +1,408 @@ +middleware('active.shop'); + $this->userRepo = $userRepo; + } + + public function index() + { + $user = Auth::user(); + if ($user->shop && !$user->shop->set_defaults) { + if ($user->account) { + $user->shop->title = $user->account->first_name . " " . $user->account->last_name; + } + if ($user->account) { + $user->shop->contact = $this->generate_contact($user); + } else { + $user->shop->contact = "Deine Straße/Nr • Dein PLZ Ort\nFestnetz: Deine Festnetz-Nummer\nMobil: Deine Mobil-Nummer\nDeine E-Mail-Adresse"; + } + + $user->shop->accessibility = "Mo-Fr: 9.00 - 19.00 Uhr\nSa-So: 11.00 - 18.00 Uhr"; + + } + $data = [ + 'user' => $user, + ]; + return view('user.shop', $data); + + } + + public function store() + { + $user = Auth::user(); + $data = Request::all(); + + if (!$user->shop) { + abort(404); + } + $user->shop->title = $data['title']; + $user->shop->contact = trim(preg_replace('/\s*\n+/',"\n", $data['contact'])); + $user->shop->accessibility = trim(preg_replace('/\s*\n+/',"\n", $data['accessibility'])); + $user->shop->about = trim(preg_replace('/\s+/', ' ',$data['about'])); + $user->shop->active = isset($data['active']) ? true : false; + $user->shop->set_defaults = true; + $user->shop->save(); + \Session()->flash('alert-save', true); + + return redirect(route('user_shop')); + + } + + private function generate_contact($user) + { + $ret = ""; + $sep = "\n"; + + $ret = $user->account->street != "" ? $user->account->street : "Deine Straße/Nr"; + $ret .= " • "; + $ret.= $user->account->postal_code != "" ? $user->account->postal_code." " : "Dein PLZ "; + $ret.= $user->account->city != "" ? $user->account->city : "Dein Ort"; + $ret.= $sep; + + $pre = $user->account->pre_phone_id != "" ? $user->account->pre_phone->phone." " : ""; + $ret.= "Festnetz: ".($user->account->phone != "" ? $pre.$user->account->phone : "Deine Festnetz-Nummer"); + $ret.= $sep; + + $pre = $user->account->pre_mobil_id != "" ? $user->account->pre_mobil->phone." " : ""; + $ret.= "Mobil: ".($user->account->mobil != "" ? $pre.$user->account->mobil : "Deine Mobil-Nummer"); + $ret.= $sep; + + $ret.= $user->email; + + return $ret; + + } + + // Upload FILE ----------------------------------------------------------------------------------------------------------------------- + + public function uploadImage(){ + + $user = Auth::user(); + + if(!$user->shop){ + abort(404); + } + + try { + $image = \App\Services\Slim::getImages('images')[0]; + + if ( isset($image['output']['data']) ) + { + // Base64 of the image + $data = $image['output']['data']; + $file_ex = array( 'image/jpeg' => 'jpg', 'image/png' => 'png'); + + if (!isset($file_ex[$image['output']['type']])) { + \Session()->flash('alert-danger', 'File is not jpg or png!'); + return redirect(route('user_shop')); + } + + $ext = $file_ex[$image['output']['type']]; + // Original file name + $name = $image['output']['name']; + $name = \App\Services\Slim::sanitizeFileName($name); + $name = uniqid() . '_' . $name; + + $data = \Storage::disk('public')->put( + 'images/shop/'.$name, + $data + ); + + $user->shop->filename = $name; + $user->shop->originalname = $image['output']['name']; + $user->shop->ext = $ext; + $user->shop->mine = $image['output']['type']; + $user->shop->size = $image['input']['size']; + $user->shop->save(); + + + + \Session()->flash('alert-success', "Datei hochgeladen"); + return redirect(route('user_shop')); + } + \Session()->flash('alert-danger', "Datei leer"); + return redirect(route('user_shop')); + + } + catch (Exception $e) { + \Session()->flash('alert-danger', "Fehler".$e); + return redirect(route('user_shop')); + } + } + + public function deleteImage(){ + + $user = Auth::user(); + + if(!$user->shop){ + abort(404); + } + + if($user->shop->filename){ + $file = 'images/shop/'.$user->shop->filename; + \Storage::disk('public')->delete($file); + + $user->shop->filename = null; + $user->shop->originalname = null; + $user->shop->ext = null; + $user->shop->mine = null; + $user->shop->size = null; + $user->shop->save(); + + \Session()->flash('alert-success', "Datei gelöscht"); + return redirect(route('user_shop')); + + } + \Session()->flash('alert-danger', "Datei nicht gefunden"); + return redirect(route('user_shop')); + + } + + public function uploadOnSiteImage(){ + + $user = Auth::user(); + $user_shop_id = Request::get('user_shop_id'); + + if(!$user->shop || $user->shop->id != $user_shop_id){ + abort(404); + } + + try { + $image = \App\Services\Slim::getImages('images')[0]; + + if ( isset($image['output']['data']) ) + { + + // Base64 of the image + $data = $image['output']['data']; + $file_ex = array( 'image/jpeg' => 'jpg', 'image/png' => 'png'); + + if (!isset($file_ex[$image['output']['type']])) { + \Session()->flash('alert-danger', 'File is not jpg or png!'); + return redirect(route('user_shop')); + } + + $ext = $file_ex[$image['output']['type']]; + // Original file name + $name = $image['output']['name']; + $name = \App\Services\Slim::sanitizeFileName($name); + $name = uniqid() . '_' . $name; + + $data = \Storage::disk('public')->put( + 'images/user_shop/'.$user->shop->id.'/'.$name, + $data + ); + + UserShopOnSite::create([ + 'user_shop_id' => $user->shop->id, + 'filename' => $name, + 'original_name' => $image['output']['name'], + 'ext' => $ext, + 'mine' => $image['output']['type'], + 'size' => $image['input']['size'] + ]); + + \Session()->flash('alert-success', "Datei hochgeladen"); + return redirect(route('user_shop')); + } + \Session()->flash('alert-danger', "Datei leer"); + return redirect(route('user_shop')); + + } + catch (Exception $e) { + \Session()->flash('alert-danger', "Fehler".$e); + return redirect(route('user_shop')); + } + } + + public function deleteOnSiteImage($image_id, $user_shop_id){ + + $user = Auth::user(); + if(!$user->shop || $user->shop->id != $user_shop_id){ + abort(404); + } + $image = UserShopOnSite::findOrFail($image_id); + + if($image->user_shop_id == $user_shop_id){ + $file = 'images/user_shop/'.$user_shop_id.'/'.$image->filename; + \Storage::disk('public')->delete($file); + + $image->delete(); + + \Session()->flash('alert-success', "Datei gelöscht"); + return redirect(route('user_shop')); + + } + \Session()->flash('alert-danger', "Datei nicht gefunden"); + return redirect(route('user_shop')); + + } + + + + + /** + * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + */ + public function userShopRegisterForm(){ + + + if(Request::get('shop_submit') == 'check'){ + $rules = array( + 'user_shop_name' => ' required|alpha_dash|profanity|unique:user_shops,name|min:4|max:20|full_word_check', + ); + Validator::extend('full_word_check', function ($attribute, $value, $parameters, $validator) { + if(in_array($value, config('profanity.full_word_check'))){ + return false; + } + return true; + }); + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + \Session()->flash('shop-name-error', 'error'); + return redirect()->back()->withErrors($validator)->withRequest(); + } + \Session()->flash('shop-name-error', 'check'); + return redirect(route('user_shop'))->withRequest(); + } + + if(Request::get('shop_submit') == 'action') { + + $rules = array( + 'user_shop_name' => ' required|alpha_dash|profanity|unique:user_shops,name|min:4|max:20|full_word_check', + ); + Validator::extend('full_word_check', function ($attribute, $value, $parameters, $validator) { + if(in_array($value, config('profanity.full_word_check'))){ + return false; + } + return true; + }); + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + \Session()->flash('shop-name-error', 'error'); + }else{ + \Session()->flash('shop-name-error', 'check'); + + } + + $rules = array( + 'user_shop_active' => 'accepted', + ); + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return redirect()->back()->withErrors($validator)->withRequest(); + } + + //all is right - save + $user = Auth::user(); + $data = Request::all(); + + $user_shop = UserShop::create([ + 'user_id' => $user->id, + 'name' => $data['user_shop_name'], + 'active' => true, + 'active_date' => now(), + ] + ); + + $ret = $this->userShopRegisterSubDomain($user_shop->slug); + if($ret['success'] === true){ + \Session()->flash('alert-save', true); + }else{ + $user_shop->forceDelete(); + \Session()->flash('alert-error', $ret['error']); + } + return redirect(route('user_shop')); + } + + } + + + public function userShopRegisterSubDomain($slug){ + + $kas = new KasController(); + $domain = 'mivita.care'; + + + //check if exisist + $subdomains = $kas->action('get_subdomains'); + foreach ($subdomains as $subdomain){ + $sub = str_replace(".".$domain, '', $subdomain['subdomain_name']); + if($sub == $slug){ + return ['success' => false, 'error' => 'Fehler: Subdomain existierts bereits, bitte einen neues Namen wählen']; + } + } + //add + $full_subdomain_name = $slug.".".$domain; + $pra = array( + 'subdomain_name' => $slug, + 'domain_name' => $domain, + 'subdomain_path' => '/mein.mivita.care/public/', + 'php_version' => '7.3', + //'ssl_proxy' => 'Y', + //'redirect_status' => 0 + ); + $add_subdomain = $kas->action('add_subdomain', $pra); + if($add_subdomain == $full_subdomain_name){ + return ['success' => true]; + } + return ['success' => false, 'error' => $add_subdomain]; + } + + /** + * @return string to ajax + */ + public function checkUserShopName(){ + + $rules = array( + 'user_shop_name' => ' required|alpha_dash|profanity|unique:user_shops,name|min:4|max:20|full_word_check', + ); + Validator::extend('full_word_check', function ($attribute, $value, $parameters, $validator) { + if(in_array($value, config('profanity.full_word_check'))){ + return false; + } + return true; + }); + + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + //$messages = $validator->messages(); + return Response::json(array( + 'success' => false, + 'errors' => $validator->getMessageBag()->toArray() + + )); + } + $slug = SlugService::createSlug(UserShop::class, 'slug', Request::get('user_shop_name')); + + return Response::json(array( + 'success' => true, + 'preview_user_shop_name' => "https://".$slug.".".config('app.domain').config('app.tld_care'), + )); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/UserUpdateEmailController.php b/app/Http/Controllers/UserUpdateEmailController.php new file mode 100755 index 0000000..1a0996e --- /dev/null +++ b/app/Http/Controllers/UserUpdateEmailController.php @@ -0,0 +1,209 @@ +db = $db; + } + + public function index() + { + return view('user.update_email'); + + } + + public function update(Request $request) + { + $user = Auth::user(); + + $rules = array( + 'email' => 'required|string|email|max:255|unique:users|confirmed|users_update_email:' . Auth::user()->id, + //'email-confirm' => 'required|same:email', + ); + + Validator::extend('users_update_email', function ($attribute, $value, $parameters, $validator) { + if($this->db->table($this->table)->where('email', '=', $value)->where('user_id', '!=', $parameters[0])->count()){ + return false; + } + return true; + + }); + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + // redirect our user back to the form with the errors from the validator + $messages = $validator->messages(); + + return view('user.update_email')->withErrors($validator); + + + }else{ + $this->sendActivationMail($user, Request::all()); + \Session()->flash('alert-success', __('We sent you an activation code. Check your email!')); + return redirect(route('user_update_email')); + } + + } + + + public function adminChangeMail($user_id) + { + if(!Auth::user()->isAdmin()){ + abort(404); + } + $data = [ + 'user' => User::findOrFail($user_id), + ]; + return view('admin.change_email', $data); + + } + public function adminUpdateMail(Request $request, $user_id) + { + if(!Auth::user()->isAdmin()){ + abort(404); + } + $user = User::findOrFail($user_id); + $data = [ + 'user' => $user, + ]; + + + $rules = array( + 'email' => 'required|string|email|max:255|unique:users|confirmed|users_update_email:' . $user->id, + //'email-confirm' => 'required|same:email', + ); + + Validator::extend('users_update_email', function ($attribute, $value, $parameters, $validator) { + if($this->db->table($this->table)->where('email', '=', $value)->where('user_id', '!=', $parameters[0])->count()){ + return false; + } + return true; + + }); + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + // redirect our user back to the form with the errors from the validator + $messages = $validator->messages(); + + return view('admin.change_email', $data)->withErrors($validator); + + + }else{ + + $this->sendActivationMail($user, Request::all()); + \Session()->flash('alert-success', __('An activation code was sent to the account by e-mail!')); + return redirect(route('admin_lead_edit', [$user->id])); + } + + } + + + + + public function activateMail($token) + { + + if ($updateEmail = $this->getUpdateEmailByToken($token)) { + $user = User::findOrFail($updateEmail->user_id); + if($user->id == $updateEmail->user_id){ + $user->fill([ + 'email' => $updateEmail->email + ])->save(); + $this->deleteUpdateEmail($token); + //Login! + Auth::login($user); + \Session()->flash('alert-success', __('Your e-mail has been changed.')); + return redirect('/home'); + + } + } + return redirect('/home'); + abort(404); + } + + + public function sendActivationMail($user, array $data) + { + $token = $this->createActivation($user, $data); + Mail::to($data['email'])->send(new MailActivateUser($token, $user)); + } + + + protected function getToken() + { + return hash_hmac('sha256', str_random(40), config('app.key')); + } + + public function createActivation($user, array $data) + { + + $updateEmail = $this->getUpdateEmail($user); + + if (!$updateEmail) { + return $this->createToken($user, $data); + } + return $this->regenerateToken($user, $data); + + } + + private function regenerateToken($user, array $data) + { + + $token = $this->getToken(); + $this->db->table($this->table)->where('user_id', $user->id)->update([ + 'email' => $data['email'], + 'token' => $token, + 'created_at' => new Carbon() + ]); + return $token; + } + + private function createToken($user, array $data) + { + $token = $this->getToken(); + $this->db->table($this->table)->insert([ + 'user_id' => $user->id, + 'email' => $data['email'], + 'token' => $token, + 'created_at' => new Carbon() + ]); + return $token; + } + + public function getUpdateEmail($user) + { + return $this->db->table($this->table)->where('user_id', $user->id)->first(); + } + + + public function getUpdateEmailByToken($token) + { + return $this->db->table($this->table)->where('token', $token)->first(); + } + + public function deleteUpdateEmail($token) + { + $this->db->table($this->table)->where('token', $token)->delete(); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/UserUpdatePasswordController.php b/app/Http/Controllers/UserUpdatePasswordController.php new file mode 100755 index 0000000..c5acc3f --- /dev/null +++ b/app/Http/Controllers/UserUpdatePasswordController.php @@ -0,0 +1,108 @@ +middleware('auth'); + } + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + */ + public function updatePassword() + { + return view('user.update_password'); + } + + + /** + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function updatePasswordStore(Request $request) + { + $rules = array( + 'old_password' => 'required|old_password:' . Auth::user()->password, + 'password' => 'required|string|min:8|confirmed', + ); + + Validator::extend('old_password', function ($attribute, $value, $parameters, $validator) { + + return Hash::check($value, current($parameters)); + + }); + + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + + // get the error messages from the validator + $messages = $validator->messages(); + // redirect our user back to the form with the errors from the validator + return view('user.update_password')->withErrors($validator); + + } + $request->user()->fill([ + 'password' => Hash::make($request->password) + ])->save(); + + + \Session()->flash('alert-save', '1'); + return redirect(route('user_update_password')); + + } + + + /** + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function updatePasswordFirst(){ + if(!Auth::user()->isPasswort()){ + return view('user.update_password_first'); + } + return redirect(route('user_update_password')); + } + + /** + * @param Request $request + * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector|\Illuminate\View\View + */ + public function updatePasswordFirstStore(Request $request) + { + $rules = array( + 'password' => 'required|string|min:6|confirmed', + ); + + + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + + // get the error messages from the validator + $messages = $validator->messages(); + // redirect our user back to the form with the errors from the validator + return view('user.update_password_first')->withErrors($validator); + + } + + $request->user()->fill([ + 'password' => Hash::make($request->password) + ])->save(); + + + \Session()->flash('alert-save', '1'); + return redirect('/home'); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/Web/RegisterController.php b/app/Http/Controllers/Web/RegisterController.php new file mode 100755 index 0000000..1395a27 --- /dev/null +++ b/app/Http/Controllers/Web/RegisterController.php @@ -0,0 +1,99 @@ +middleware('guest'); + $this->userRepo = $userRepo; + } + + /* public function member($member_id = false) + { + if(!$member_id){ + return redirect('/registrierung'); + } + $user_id = (int) str_replace('m', '', $member_id) - config('mivita.add_number_id'); + $user = User::find($user_id); + if(!$user || !$user->isActive() || !$user->isActiveAccount()){ + return redirect('/registrierung'); + } + $data = [ + 'GOOGLE_ReCAPTCHA_KEY' => $this->GOOGLE_ReCAPTCHA_KEY, + 'user_shop' => Util::getUserShop(), + 'from_member_id' => $member_id + ]; + return view('web.templates.registrierung', $data); + }*/ + + public function register(){ + + + $rules = array( + 'salutation' => 'required', + 'first_name'=>'required', + 'last_name'=>'required', + 'email' => 'required|string|email|max:255|unique:users', + 'password' => 'required|string|min:6|confirmed', + 'password_confirmation' => 'required|string|min:6', + 'accepted_data_protection' => 'required', + ); + + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return back()->withErrors($validator)->withInput(Request::all()); + } + + $data = Request::all(); + $user = $this->userRepo->create($data); + + $confirmation_code = UserService::createConfirmationCode(); + + $user->lang = !empty(\App::getLocale()) ? \App::getLocale() : "de"; + $user->confirmation_code = $confirmation_code; + $user->confirmation_code_to = date('Y-m-d H:i:s', strtotime('+1 week')); + $user->confirmation_code_remider = 0; + if(isset($data['from_member_id'])){ + $user->m_sponsor = (int) str_replace('m', '', $data['from_member_id']) - config('main.add_number_id'); + } + $user->save(); + + $user = User::find($user->id); + + Mail::to($user->email)->send(new MailVerifyAccount($confirmation_code, $user)); + + return redirect('/user_register/finish'); + } + + public function finish() + { + $data = [ + + ]; + return view('auth.finish', $data); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/WizardController.php b/app/Http/Controllers/WizardController.php new file mode 100755 index 0000000..d0a1415 --- /dev/null +++ b/app/Http/Controllers/WizardController.php @@ -0,0 +1,520 @@ +fileRepo = $fileRepo; + + } + + public function create() + { + if(!Auth::check()){ + return redirect('login'); + } + + $user = User::findOrFail(Auth::user()->id); + if(!$user->account){ + $account = UserAccount::create([]); + $user->account_id = $account->id; + $user->save(); + return redirect(route('wizard_create')); + } + + $step = !$user->wizard ? 0 : $user->wizard; + + if($step >= 20){ + return redirect('/home'); + } + $userHistoryWizardPayment = UserHistory::whereUserId($user->id)->whereAction('wizard_payment')->get()->last(); + + $data = [ + 'user' => Auth::user(), + 'step' => $step, + 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), + 'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + 'userHistoryWizardPayment' => $userHistoryWizardPayment, + ]; + + if($step == 15){ + return view('user.wizard.create_release', $data); + } + + return view('user.wizard.create', $data); + } + + public function register() + { + + if(!Auth::check()){ + return redirect('login'); + } + $user = User::findOrFail(Auth::user()->id); + if(!$user->account){ + $account = UserAccount::create([]); + $user->account_id = $account->id; + $user->save(); + return redirect(route('wizard_register')); + } + + $step = !$user->wizard ? 0 : $user->wizard; + + if($step >= 10){ + return redirect('/home'); + } + + $data = [ + 'user' => Auth::user(), + 'step' => $step, + 'user_levels' => UserLevel::where('active', true)->get(), + //'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), + //'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + ]; + if($step == 5){ + return view('user.wizard.register_release', $data); + } + + return view('user.wizard.register', $data); + } + + public function payment() + { + if(!Auth::check()){ + return redirect('login'); + } + + $user = User::findOrFail(Auth::user()->id); + if(!$user->account){ + $account = UserAccount::create([]); + $user->account_id = $account->id; + $user->save(); + return redirect(route('wizard_payment')); + } + + $userHistoryWizardPayment = UserHistory::whereUserId($user->id)->whereAction('wizard_payment')->get()->last(); + + $data = [ + 'user' => Auth::user(), + 'step' => 0, + 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), + 'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + 'userHistoryWizardPayment' => $userHistoryWizardPayment, + ]; + + if($user->wizard == 20){ + return view('user.wizard.register_payment', $data); + } + + return redirect(route('/')); + } + + public function storeRegister($step = false) + { + + if (!Auth::check()) { + return redirect('login'); + } + + $user = User::findOrFail(Auth::user()->id); + if (!$user->account) { + $user->account = new UserAccount(); + } + + if ($step == 0) { + $rules = array( + 'accepted_data_protection' => 'required', + 'accepted_active' => 'required', + 'accepted_contract' => 'required' + ); + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + $data = [ + 'user' => Auth::user(), + 'step' => $step, + 'user_levels' => UserLevel::where('active', true)->get(), + //'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), + //'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + ]; + $user->wizard = 0; + $user->save(); + return view('user.wizard.register', $data)->withErrors($validator); + } + $account = $user->account; + if($account->accepted_contract === null){ + $account->accepted_contract = now(); + } + if($account->data_protection === null){ + $account->data_protection = now(); + } + $account->save(); + if($user->agreement === null){ + $user->agreement = now(); + } + + $user->wizard = 1; + $user->save(); + return redirect(route('wizard_register')); + } + if ($step == 1) { + $rules = array( + 'salutation' => 'required', + 'first_name' => 'required', + 'last_name' => 'required', + 'address' => 'required', + 'zipcode' => 'required', + 'city' => 'required', + 'phone' => 'required_without:mobil', + 'mobil' => 'required_without:phone', + 'country_id' => 'required|integer|min:1', + 'birthday' => 'required', + ); + + if (!Request::get('same_as_billing')) { + $rules = array_merge($rules, [ + 'shipping_firstname' => 'required', + 'shipping_lastname' => 'required', + 'shipping_address' => 'required', + 'shipping_zipcode' => 'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required', + 'shipping_country_id' => 'required|integer|min:1', + ]); + } + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + $user->wizard = 1; + $user->save(); + return redirect(route('wizard_register', [1]))->withErrors($validator)->withInput(Request::all()); + } + $data = Request::all(); + $data['same_as_billing'] = Request::get('same_as_billing') == NULL ? 0 : 1; + $user->account->fill($data)->save(); + $user->wizard = 2; + $user->save(); + return redirect(route('wizard_register')); + } + + if ($step == 2) { + if(Request::get('submit') === 'do'){ + if(File::whereUserId($user->id)->whereIdentifier('id_card')->count() == 0){ + $validator = Validator::make(Request::all(), []); + $validator->errors()->add('field', __('Kein Ausweis hinterlegt, bitte erst hochladen.')); + $user->wizard = 2; + $user->save(); + return redirect(route('wizard_register'))->withErrors($validator)->withInput(Request::all()); + } + $user->wizard = 3; + $user->save(); + return redirect(route('wizard_register')); + } + $this->fileRepo->_set('disk', 'user'); + $this->fileRepo->_set('dir', '/'.$user->id.'/verification/'); + $this->fileRepo->_set('user_id', $user->id); + $this->fileRepo->_set('identifier', 'id_card'); + return $this->fileRepo->uploadFile(Request::all()); + } + + if ($step == 3) { + if(Request::get('submit') === 'do'){ + $data = Request::all(); + + if($data['business_license_choose'] === "now"){ + if(File::whereUserId($user->id)->whereIdentifier('business_license')->count() == 0){ + $validator = Validator::make(Request::all(), []); + $validator->errors()->add('field', __('Kein Gewerbeschein hinterlegt, bitte erst hochladen.')); + $user->wizard = 3; + $user->save(); + return redirect(route('wizard_register'))->withErrors($validator)->withInput(Request::all()); + } + } + if($data['business_license_choose'] === "later"){ + + } + if($data['business_license_choose'] === "non"){ + if(!$data['non_business_license_reason'] || $data['non_business_license_reason'] == ""){ + $validator = Validator::make(Request::all(), []); + $validator->errors()->add('field', __('Bitte gib eine Begründung ein, warum Du keinen Gewerbeschein benötigst.')); + $user->wizard = 3; + $user->save(); + return redirect(route('wizard_register'))->withErrors($validator)->withInput(Request::all()); + }else{ + $user->account->setNotice('business_license_reason', $data['non_business_license_reason']); + } + } + + $user->account->setNotice('business_license', $data['business_license_choose']); + $user->wizard = 4; + $user->save(); + + return redirect(route('wizard_register')); + } + $this->fileRepo->_set('disk', 'user'); + $this->fileRepo->_set('dir', '/'.$user->id.'/verification/'); + $this->fileRepo->_set('user_id', $user->id); + $this->fileRepo->_set('identifier', 'business_license'); + return $this->fileRepo->uploadFile(Request::all()); + } + + if ($step == 4) { + + $data = Request::all(); + + if(!isset($data['switchers-package-wizard'])){ + $validator = Validator::make(Request::all(), []); + $validator->errors()->add('field', __('Bitte wähle erst Deine Mitgildschaft aus.')); + return redirect(route('wizard_register'))->withErrors($validator)->withInput(Request::all()); + } + + $user->m_level = $data['switchers-package-wizard']; + $user->next_m_level = $data['switchers-package-wizard']; + $user->wizard = 5; + $user->release_account = now(); + UserHistory::create(['user_id' => $user->id, 'action'=>'release_account', 'status'=>0]); + $user->save(); + + if($user->isTestMode()){ + $mail = config('app.info_test_mail'); + }else{ + $mail = config('app.info_mail'); + } + Mail::to($mail)->send(new MailReleaseAccount($user)); + + return redirect(route('wizard_register')); + } + } + + public function storeCreate($step = 0) + { + + if(!Auth::check()){ + return redirect('login'); + } + + $user = User::findOrFail(Auth::user()->id); + if(!$user->account){ + $user->account = new UserAccount(); + } + + if($step == 10){ + $rules = array( + 'accepted_data_protection' => 'required', + 'accepted_active' => 'required', + ); + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + $data = [ + 'user' => Auth::user(), + 'step' => $step, + 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), + 'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + ]; + $user->wizard = 10; + $user->save(); + return view('user.wizard.create', $data)->withErrors($validator); + + } + $account = $user->account; + if($account->accepted_contract === null){ + $account->accepted_contract = now(); + } + if($account->data_protection === null){ + $account->data_protection = now(); + } + $account->save(); + if($user->agreement === null){ + $user->agreement = now(); + } + $user->wizard = 11; + $user->save(); + + return redirect(route('wizard_create', [11])); + } + if($step == 11){ + + if($user->isPasswort()){ + $user->wizard = 12; + $user->save(); + return redirect(route('wizard_create', [12])); + } + $rules = array( + 'password' => 'required|string|min:6|confirmed', + ); + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + $data = [ + 'user' => Auth::user(), + 'step' => $step, + 'products' => Product::where('active', true)->where('show_at', '=', 3)->orderBy('pos', 'ASC')->get(), + 'products_on_board' => Product::where('active', true)->where('show_at', '=', 5)->orderBy('pos', 'ASC')->get(), + ]; + return view('user.wizard.create', $data)->withErrors($validator); + } + + $user->fill([ + 'password' => Hash::make(Request::get('password')) + ])->save(); + $user->wizard = 12; + + $user->save(); + return redirect(route('wizard_create', [12])); + } + if($step == 12){ + $rules = array( + 'salutation' => 'required', + 'first_name' => 'required', + 'last_name' => 'required', + 'address' => 'required', + 'zipcode' => 'required', + 'city' => 'required', + 'phone' => 'required_without:mobil', + 'mobil' => 'required_without:phone', + 'country_id' => 'required|integer|min:1', + 'birthday' => 'required', + ); + + if(!Request::get('same_as_billing')){ + $rules = array_merge($rules, [ + 'shipping_firstname'=>'required', + 'shipping_lastname'=>'required', + 'shipping_address'=>'required', + 'shipping_zipcode'=>'required', + 'shipping_city' => 'required', + 'shipping_salutation' => 'required' + + ]); + } + $validator = Validator::make(Request::all(), $rules); + if ($validator->fails()) { + return redirect(route('wizard_create', [12]))->withErrors($validator)->withInput(Request::all()); + } + + $data = Request::all(); + $data['same_as_billing'] = Request::get('same_as_billing') == NULL ? 0 : 1; + $user->account->fill($data)->save(); + + $user->wizard = 13; + $user->active_date = now(); + $user->active = 1; + $user->confirmation_code = null; + $user->confirmation_code_to = null; + $user->confirmation_code_remider = 0; + $user->save(); + return redirect(route('wizard_create', [13])); + + } + } + + public function storePayment($step = 0){ + + if(Request::get('switchers-package-wizard')){ + $user = User::find(Auth::user()->id); + Yard::instance('shopping')->destroy(); + $product = Product::find(Request::get('switchers-package-wizard')); + /*$showAboOptions = false; + if(Request::get('abo_options')){ + $showAboOptions = true; + $user->abo_options = true; + $user->save(); + }*/ + if($product && $product->active && $product->show_at == 3){ + //set membership product + $image = ""; + if($product->images->count()){ + $image = $product->images->first()->slug; + } + Yard::instance('shopping')->add($product->id, $product->getLang('name'), 1, $product->price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight]); + + //set onboarding products + if(Request::get('products_on_board')){ + foreach (Request::get('products_on_board') as $product_on_board_id){ + $product_on_board = Product::find($product_on_board_id); + $image = ""; + if($product_on_board->images->count()){ + $image = $product_on_board->images->first()->slug; + } + Yard::instance('shopping')->add($product_on_board->id, $product_on_board->getLang('name'), 1, $product_on_board->price, ['image' => $image, 'slug' => $product_on_board->slug, 'weight' => $product_on_board->weight]); + } + } + + /*do { + $identifier = Util::getToken(); + } while( ShoppingInstance::where('identifier', $identifier)->count() ); + */ + $identifier = Util::getToken(); + + $data = []; + $data['is_from'] = 'wizard'; + $data['is_for'] = 'me'; + + + /*ShoppingInstance::create([ + 'identifier' => $identifier, + 'user_shop_id' => 1, //is first faker shop for buy intern + 'auth_user_id' => Auth::user()->id, + 'payment' => 4, //Berater Wizard + 'subdomain' => url('/'), + 'country_id' => Yard::instance('shopping')->getShippingCountryId(), + 'shopping_data' => $data, + 'back' => url()->previous(), + + ]);*/ + Yard::instance('shopping')->putYardExtra('shopping_data', $data); + Yard::instance('shopping')->store($identifier); + //add to DB + //$path = route('checkout.checkout_card', ['identifier'=>$identifier]); + UserHistory::create(['user_id' => $user->id, 'action'=>'wizard_payment', 'status'=>1, 'product_id'=>$product->id, 'identifier'=>$identifier]); + //$path = str_replace('http', 'https', $path); + //return redirect()->secure($path); + return redirect(route('user_checkout', [$identifier])); + + + } + } + \Session()->flash('alert-error', "Fehler beim Produkt"); + return back(); + } + + public function delete($id, $relation){ + + if($relation === 'upload'){ + $user = User::findOrFail(Auth::user()->id); + $file = $user->files()->findOrFail($id); + //remove file + \Storage::disk('user')->delete($file->dir.$file->filename); + $file->delete(); + \Session()->flash('alert-success', "Datei gelöscht"); + } + return back(); + } + + +} \ No newline at end of file diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php new file mode 100644 index 0000000..5027fa1 --- /dev/null +++ b/app/Http/Kernel.php @@ -0,0 +1,70 @@ + [ + \App\Http\Middleware\EncryptCookies::class, + \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, + \Illuminate\Session\Middleware\StartSession::class, + \Illuminate\Session\Middleware\AuthenticateSession::class, + \Illuminate\View\Middleware\ShareErrorsFromSession::class, + \App\Http\Middleware\VerifyCsrfToken::class, + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + + 'api' => [ + 'throttle:60,1', + \Illuminate\Routing\Middleware\SubstituteBindings::class, + ], + ]; + + /** + * The application's route middleware. + * + * These middleware may be assigned to groups or used individually. + * + * @var array + */ + protected $routeMiddleware = [ + 'auth' => \App\Http\Middleware\Authenticate::class, + 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, + 'admin' => \App\Http\Middleware\Admin::class, + 'superadmin' => \App\Http\Middleware\SuperAdmin::class, + 'sysadmin' => \App\Http\Middleware\SysAdmin::class, + 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, + 'active.account' => \App\Http\Middleware\ActiveAccount::class, + 'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class, + 'can' => \Illuminate\Auth\Middleware\Authorize::class, + 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, + 'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class, + 'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class, + 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, + 'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class, + ]; +} diff --git a/app/Http/Middleware/ActiveAccount.php b/app/Http/Middleware/ActiveAccount.php new file mode 100755 index 0000000..6a51438 --- /dev/null +++ b/app/Http/Middleware/ActiveAccount.php @@ -0,0 +1,26 @@ +isActiveAccount() ) + { + return $next($request); + } + return redirect('/home'); + + } +} diff --git a/app/Http/Middleware/Admin.php b/app/Http/Middleware/Admin.php new file mode 100755 index 0000000..c06f69a --- /dev/null +++ b/app/Http/Middleware/Admin.php @@ -0,0 +1,26 @@ +isAdmin() ) + { + return $next($request); + } + return redirect('/home'); + + } +} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php new file mode 100644 index 0000000..abefe23 --- /dev/null +++ b/app/Http/Middleware/Authenticate.php @@ -0,0 +1,97 @@ +auth = $auth; + } + + /** + * Handle an incoming request. + * + * @param \Illuminate\Http\Request $request + * @param \Closure $next + * @param string[] ...$guards + * @return mixed + * + * @throws \Illuminate\Auth\AuthenticationException + */ + public function handle($request, Closure $next, ...$guards) + { + + $this->authenticate($guards); + + //is blocked + if(in_array('user', $guards) && $this->auth->user()->blocked == 1){ + return redirect(route('user_blocked')); + } + //100 wizzard is finish + if(in_array('user', $guards) && $this->auth->user()->wizard !== 100){ + //0-10 == start wizard form register + if(in_array('user', $guards) && $this->auth->user()->wizard < 10){ + return redirect(route('wizard_register')); + } + //10-20 == start wizard form create Lead + if(in_array('user', $guards) && $this->auth->user()->wizard < 20){ + return redirect(route('wizard_create')); + } + //20 is payment + if(in_array('user', $guards) && $this->auth->user()->wizard == 20){ + $allow = [ + 'user_checkout', + 'user_checkout_store', + 'user_checkout_final', + + ]; + if(in_array($request->route()->getName(), $allow)){ + return $next($request); + } + return redirect(route('wizard_payment')); + } + } + return $next($request); + } + + /** + * Determine if the user is logged in to any of the given guards. + * + * @param array $guards + * @return void + * + * @throws \Illuminate\Auth\AuthenticationException + */ + protected function authenticate(array $guards) + { + if (empty($guards)) { + return $this->auth->authenticate(); + } + + foreach ($guards as $guard) { + if ($this->auth->guard($guard)->check()) { + return $this->auth->shouldUse($guard); + } + } + + throw new AuthenticationException('Unauthenticated.', $guards); + } +} diff --git a/app/Http/Middleware/CheckForMaintenanceMode.php b/app/Http/Middleware/CheckForMaintenanceMode.php new file mode 100644 index 0000000..35b9824 --- /dev/null +++ b/app/Http/Middleware/CheckForMaintenanceMode.php @@ -0,0 +1,17 @@ +check()) { + return redirect(RouteServiceProvider::HOME); + } + + return $next($request); + } +} diff --git a/app/Http/Middleware/SuperAdmin.php b/app/Http/Middleware/SuperAdmin.php new file mode 100755 index 0000000..16da028 --- /dev/null +++ b/app/Http/Middleware/SuperAdmin.php @@ -0,0 +1,26 @@ +isSuperAdmin() ) + { + return $next($request); + } + return redirect('/home'); + + } +} diff --git a/app/Http/Middleware/SysAdmin.php b/app/Http/Middleware/SysAdmin.php new file mode 100755 index 0000000..4f5b955 --- /dev/null +++ b/app/Http/Middleware/SysAdmin.php @@ -0,0 +1,26 @@ +isSySAdmin() ) + { + return $next($request); + } + return redirect('/home'); + + } +} diff --git a/app/Http/Middleware/TrimStrings.php b/app/Http/Middleware/TrimStrings.php new file mode 100644 index 0000000..5a50e7b --- /dev/null +++ b/app/Http/Middleware/TrimStrings.php @@ -0,0 +1,18 @@ +_tplIdx) { + $this->setSourceFile('./pdf/mivita_template_contract_de.pdf'); + } + $this->_tplIdx = $this->importPage($this->_site++); + $this->useTemplate($this->_tplIdx); + + } + + function Footer() { + + } // end of footer + + + +} diff --git a/app/Mail/MailAccountActive.php b/app/Mail/MailAccountActive.php new file mode 100644 index 0000000..1c4b3d2 --- /dev/null +++ b/app/Mail/MailAccountActive.php @@ -0,0 +1,48 @@ +user = $user; + $this->subject = __('email.account_active'); + } + + + public function build() + { + $salutation = __('email.salutation').","; + if($this->user->account){ + if($this->user->account->salutation === "mr"){ + $salutation = __('email.dear_sir')." ".$this->user->account->first_name.","; + }else{ + $salutation = __('email.dear_mrs')." ".$this->user->account->first_name.","; + } + } + return $this->view('emails.auth')->with([ + 'url' => route('login'), + 'salutation' => $salutation, + 'button' => __('Login'), + 'copy1line' => __('email.account_active_copy1line'), + 'copy2line' => __('email.copy2line'), + 'copy3line' => __('email.copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + + ]); + } +} \ No newline at end of file diff --git a/app/Mail/MailActivateUser.php b/app/Mail/MailActivateUser.php new file mode 100644 index 0000000..016cfa1 --- /dev/null +++ b/app/Mail/MailActivateUser.php @@ -0,0 +1,46 @@ +token = $token; + $this->user = $user; + $this->subject = __('email.change_e_mail'); + } + public function build() + { + $salutation = __('email.salutation').","; + + if($this->user->account){ + if($this->user->account->salutation === "mr"){ + $salutation = __('email.dear_sir')." ".$this->user->account->first_name.","; + }else{ + $salutation = __('email.dear_mrs')." ".$this->user->account->first_name.","; + } + } + return $this->view('emails.auth')->with([ + 'url' => route('user_update_email_confirm', $this->token), + 'salutation' => $salutation, + 'button' => __('email.change_e_mail'), + 'copy1line' => __('email.active_copy1line'), + 'copy2line' => __('email.copy2line'), + 'copy3line' => __('email.copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + ]); + } +} diff --git a/app/Mail/MailCheckout.php b/app/Mail/MailCheckout.php new file mode 100644 index 0000000..ba80033 --- /dev/null +++ b/app/Mail/MailCheckout.php @@ -0,0 +1,89 @@ +txaction = $txaction; + $this->shopping_order = $shopping_order; + $this->shopping_payment = $shopping_payment; + $this->send_link = $send_link; + $this->mode = $mode; + + if($this->txaction === 'paid'){ + $this->subject = __('email.checkout_subject_paid')." "; + $this->subject .= ".gruene-seele.bio"; + }elseif($this->txaction === 'extern'){ + $this->subject = __('email.checkout_subject_extern').": "; + $this->subject .= $shopping_order->member->account->m_first_name." ".$shopping_order->member->account->m_last_name." - "; + $this->subject .= $shopping_order->shopping_user->billing_firstname." ".$shopping_order->shopping_user->billing_lastname; + }else{ + $this->subject = __('email.checkout_subject')." "; + $this->subject .= ".gruene-seele.bio"; + } + + /*if($shopping_order->user_shop){ + $this->subject .= $shopping_order->user_shop->slug."."; + }*/ + } + + + public function build() + { + $salutation = __('email.hello').","; + + if($this->txaction !== 'extern' && $this->shopping_order->shopping_user){ + $salutation = __('email.hello')." ".$this->shopping_order->shopping_user->billing_firstname.","; + //make Adresse + } + if($this->txaction === 'paid' || $this->txaction === 'extern'){ + return $this->view('emails.checkout')->with([ + 'salutation' => $salutation, + 'copy1line' => __('email.checkout_copy1line'), + 'shopping_order' => $this->shopping_order, + 'shopping_payment' => $this->shopping_payment, + 'copy3line' => __('email.checkout_copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + 'send_link' => $this->send_link, + 'url' => Util::getMyMivitaUrl(), + 'button' => Util::getMyMivitaUrl(false), + 'mode' => $this->mode + ]); + }else{ + return $this->view('emails.checkout_status')->with([ + 'salutation' => $salutation, + 'copy1line' => __('email.status_copy1line'), + 'txaction' => $this->txaction, + 'shopping_order' => $this->shopping_order, + 'shopping_payment' => $this->shopping_payment, + 'copy3line' => __('email.checkout_copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + 'send_link' => false, + 'mode' => $this->mode + ]); + } + + } +} \ No newline at end of file diff --git a/app/Mail/MailContact.php b/app/Mail/MailContact.php new file mode 100644 index 0000000..144f040 --- /dev/null +++ b/app/Mail/MailContact.php @@ -0,0 +1,59 @@ +data = $data; + $this->user_shop = Util::getUserShop(); + $this->subject = __('email.your_request_from').' mivita.care'; + if($this->user_shop){ + $this->subject = __('email.your_request_from')." ".$this->user_shop->slug.'.mivita.care'; + } + } + + public function build() + { + $salutation = __('email.hello'); + if(isset($this->data['first_name'])){ + $salutation .= " ".$this->data['first_name']; + } + + if(isset($this->data['salutation'])){ + if($this->data['salutation'] === 'mr'){ + $this->data['salutation'] = 'Herr'; + } + if($this->data['salutation'] === 'ms'){ + $this->data['salutation'] = 'Frau'; + } + } + $copy1line = __('email.your_request_from')." mivita.care"; + if($this->user_shop){ + $copy1line = __('email.your_request_from')." ".$this->user_shop->slug.'.mivita.care'; + } + + return $this->view('emails.contact')->with([ + 'salutation' => $salutation, + 'copy1line' => $copy1line, + 'data' => $this->data, + 'copy3line' => __('email.copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + ]); + } +} \ No newline at end of file diff --git a/app/Mail/MailCustomMessage.php b/app/Mail/MailCustomMessage.php new file mode 100644 index 0000000..deb6c38 --- /dev/null +++ b/app/Mail/MailCustomMessage.php @@ -0,0 +1,83 @@ +save = $save; + $this->data = $data; + $this->user = $user; + $this->sender = $sender; + $this->subject = isset($data['subject']) ? $data['subject'] : __('email.email_subject'); + $this->message = isset($data['message']) ? $data['message'] : ''; + $this->message_last = isset($data['message_last']) ? $data['message_last'] : ''; + } + + + public function build() + { + $salutation = __('email.salutation').","; + if($this->user->account){ + if($this->user->account->salutation === "mr"){ + $salutation = __('email.dear_sir')." ".$this->user->account->first_name.","; + }else{ + $salutation = __('email.dear_mrs')." ".$this->user->account->first_name.","; + } + } + if($this->save){ + UserMessage::create([ + 'user_id' => $this->user->id, + 'send_user_id' => $this->sender->id, + 'email' => $this->user->email, + 'subject' => $this->subject, + 'message' => $this->message." ".$this->message_last, + 'send' => true, + 'sent_at' => now(), + ]); + } + $url = ""; + $button = ""; + if(isset($this->data['confirmation_code'])){ + $url = route('register_verify', $this->data['confirmation_code']); + $button = __('email.button_account'); + + } + + if(isset($this->data['url'])){ + $url =$this->data['url']; + $button = $this->data['button']; + + } + return $this->view('emails.custom')->with([ + 'url' => $url, + 'title' => $salutation, + 'button' => $button, + 'content' => $this->message, + 'content_last' => $this->message_last, + 'copy2line' => __('email.copy2line'), + 'copy3line' => __('email.copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + + ]); + } +} diff --git a/app/Mail/MailInfo.php b/app/Mail/MailInfo.php new file mode 100644 index 0000000..ed1d238 --- /dev/null +++ b/app/Mail/MailInfo.php @@ -0,0 +1,116 @@ +user = $user; + $this->action = $action; + $this->data = $data; + + if($this->action === "delete_membership"){ + $this->subject = 'Mitgliedschaft beenden - beantragt'; + } + if($this->action === "check_is_like_customer"){ + $this->subject = 'Kunden überprüfen - Kundenhoheit'; + } + if($this->action === "change_is_like_customer"){ + $this->subject = 'Kunden erneut überprüfen - Kundenhoheit'; + } + } + + + public function build() + { + $content = ""; + + if($this->action === "delete_membership"){ + $content .= __(strtoupper($this->user->account->salutation))." "; + $content .= $this->user->account->first_name." ".$this->user->account->last_name."\n"; + $content .= $this->user->account->address."\n"; + $content .= $this->user->account->zipcode." ".$this->user->account->city."\n"; + $content .= $this->user->account->country_id ? $this->user->account->country->de."\n\n" : "\n\n"; + if($this->user->account->phone){ + $content .= "Telefon: "; + $content .= $this->user->account->pre_phone_id ? $this->user->account->pre_phone->phone." " : " "; + $content .= $this->user->account->phone; + } + if($this->user->account->mobil){ + $content .= "Mobil: "; + $content .= $this->user->account->pre_mobil_id ? $this->user->account->pre_mobil->phone." " : " "; + $content .= $this->user->account->mobil; + } + $content .= "E-Mail: ".$this->user->email; + + $copy1line = "Infos zum Berater:"."\n"; + $button = "zum Berater"; + $title = "Ein Berater möchte seine Mitgliedschaft beenden."; + $url = route('admin_lead_edit', $this->user->id).'?show=check_lead'; + } + + if($this->action === "check_is_like_customer") { + $copy1line = "Hier geht es zum Kunden:"."\n"; + $button = "zum Kunden"; + $title = "Ein Kunden muss überprüft werden und einem Berater zugeordnet werden, da die Adresse nicht eindeutig ist."; + $url = route('admin_customer_detail', $this->user->id); + $content .= $this->user ? 'Firma: '.$this->user->billing_company."\n" : ''; + $content .= \App\Services\HTMLHelper::getSalutationLang($this->user->billing_salutation)." "; + $content .= $this->user->billing_firstname." "; + $content .= $this->user->billing_lastname."\n"; + $content .= $this->user->billing_address; + $content .= $this->user->billing_address_2 ? '/ '.$this->user->billing_address_2."\n" : "\n"; + $content .= $this->user->billing_zipcode." "; + $content .= $this->user->billing_city."\n"; + $content .= $this->user->billing_email."\n"; + $content .= $this->user->billing_phone."\n"; + $content .= $this->user->billing_country->getLocated(); + } + + if($this->action === "change_is_like_customer"){ + $copy1line = "Hier geht es zum Kunden:"."\n"; + $button = "zum Kunden"; + $title = "Ein Kunden muss erneut überprüft werden, da bei einer Änderung eine bestehende Kundenhoheit gefunden wurde."; + $url = route('admin_customer_detail', $this->user->id); + $content .= "Folgende Daten für die Kundenhoheit wurden geändert:"."\n"; + foreach ($this->data as $key=>$value){ + $content .= $this->user->{$key}." => ".$value."\n"; + } + $content .= "\n"."\n"."Rechnungsadresse des Kunden vor der Änderung:"."\n"; + $content .= $this->user ? 'Firma: '.$this->user->billing_company."\n" : ''; + $content .= \App\Services\HTMLHelper::getSalutationLang($this->user->billing_salutation)." "; + $content .= $this->user->billing_firstname." "; + $content .= $this->user->billing_lastname."\n"; + $content .= $this->user->billing_address; + $content .= $this->user->billing_address_2 ? '/ '.$this->user->billing_address_2."\n" : "\n"; + $content .= $this->user->billing_zipcode." "; + $content .= $this->user->billing_city."\n"; + $content .= $this->user->billing_email."\n"; + $content .= $this->user->billing_phone."\n"; + $content .= $this->user->billing_country->getLocated(); + } + return $this->view('emails.info')->with([ + 'url' => $url, + 'title' => $title, + 'button' => $button, + 'copy1line' => $copy1line, + 'copy2line' => __('email.copy2line'), + 'content' => $content, + ]); + } +} \ No newline at end of file diff --git a/app/Mail/MailReleaseAccount.php b/app/Mail/MailReleaseAccount.php new file mode 100644 index 0000000..8a39056 --- /dev/null +++ b/app/Mail/MailReleaseAccount.php @@ -0,0 +1,63 @@ +user = $user; + $this->subject = 'Neuer Berater Registrierung prüfen'; + } + + + public function build() + { + $content = __(strtoupper($this->user->account->salutation))." "; + $content .= $this->user->account->first_name." ".$this->user->account->last_name."\n"; + $content .= $this->user->account->address."\n"; + $content .= $this->user->account->zipcode." ".$this->user->account->city."\n"; + $content .= $this->user->account->country_id ? $this->user->account->country->de."\n\n" : "\n\n"; + if($this->user->account->phone){ + $content .= "Telefon: "; + $content .= $this->user->account->pre_phone_id ? $this->user->account->pre_phone->phone." " : " "; + $content .= $this->user->account->phone; + } + if($this->user->account->mobil){ + $content .= "Mobil: "; + $content .= $this->user->account->pre_mobil_id ? $this->user->account->pre_mobil->phone." " : " "; + $content .= $this->user->account->mobil; + } + $content .= "E-Mail: ".$this->user->email; + + + $copy1line = "Ein neuer Berater hat sich registriert und wartet auf die Überprüfung und Freigabe seiner Daten:"."\n"; + $copy1line .= "+ Überprüfung der Ausweisdate"."\n"; + $copy1line .= "+ Überprüfung des Gewerbenachweises"."\n"; + $copy1line .= "+ Eintrag Account ID"."\n"; + $copy1line .= "+ Überprüfung / Kenntnisnahme Sponsor"."\n"; + $copy1line .= "+ Überprüfung der Rechnungsdaten"."\n"; + $copy1line .= 'Nach erfolgreicher Überprüfung mit dem Button „Daten vollständig => Berater freischalten“ den Berater freischalten.'."\n"; + $copy1line .= 'Der Berater erhält eine Mail, dass sein Account freigeschaltet wurde. Der Vertrag wird automatisch mit den Daten des Vertriebspartners erstellt.'."\n"; + + return $this->view('emails.info')->with([ + 'url' => route('admin_lead_edit', $this->user->id).'?show=check_lead', + 'title' => 'Berater Registrierung prüfen', + 'button' => 'zur Berater Prüfung', + 'copy1line' => $copy1line, + 'copy2line' => __('email.copy2line'), + 'content' => $content, + ]); + } +} \ No newline at end of file diff --git a/app/Mail/MailResetPassword.php b/app/Mail/MailResetPassword.php new file mode 100644 index 0000000..29fabc1 --- /dev/null +++ b/app/Mail/MailResetPassword.php @@ -0,0 +1,51 @@ +token = $token; + $this->user = $user; + $this->subject = __('email.reset_passwort'); + + } + + + public function build() + { + $salutation = __('email.salutation').","; + if($this->user->account){ + if($this->user->account->salutation === "mr"){ + $salutation = __('email.dear_sir')." ".$this->user->account->first_name.","; + }else{ + $salutation = __('email.dear_mrs')." ".$this->user->account->first_name.","; + } + } + return $this->view('emails.auth')->with([ + 'url' => route('password.reset', $this->token), + 'salutation' => $salutation, + 'button' => __('email.reset_passwort'), + 'copy1line' => __('email.reset_pass_copy1line'), + 'copy2line' => __('email.copy2line'), + 'copy3line' => __('email.copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + + ]); + } +} \ No newline at end of file diff --git a/app/Mail/MailSyS.php b/app/Mail/MailSyS.php new file mode 100644 index 0000000..49dabc9 --- /dev/null +++ b/app/Mail/MailSyS.php @@ -0,0 +1,63 @@ +model = $model; + $this->action = $action; + + if($this->action === "log"){ + $this->subject = 'mivita Logger'; + } + } + + + public function build() + { + $content = ""; + if($this->action === "log"){ + + $title = "New Log"; + + + if($this->model->user_id && $this->model->user){ + $content .= "From User: ".$this->model->user->id." | ".$this->model->user->email."\n"; + } + if($this->model->model && $this->model->model_id){ + $content .= "Apply: ".$this->model->model." | ".$this->model->model_id."\n"; + if($this->model->model === 'App\User'){ + $apply = User::find($this->model->model_id); + $content .= $this->model->model.": ".$apply->email." | ".$this->model->model_id."\n"; + } + } + $content .= "\n"; + $content .= "Action: ".$this->model->action."\n"; + $content .= "Message: ".$this->model->message."\n"; + $content .= "\n"; + $content .= "Channel: ".$this->model->channel."\n"; + $content .= "Level: ".$this->model->getLevelType()."\n"; + $content .= "\n"; + $content .= "Time: ".$this->model->created_at->format("d.m.Y H:i"); + } + + return $this->view('emails.sys')->with([ + 'title' => $title, + 'content' => $content, + ]); + } +} \ No newline at end of file diff --git a/app/Mail/MailVerifyAccount.php b/app/Mail/MailVerifyAccount.php new file mode 100644 index 0000000..1204615 --- /dev/null +++ b/app/Mail/MailVerifyAccount.php @@ -0,0 +1,49 @@ +confirmation_code = $confirmation_code; + $this->user = $user; + $this->subject = __('email.email_verify'); + } + + + public function build() + { + $salutation = __('email.salutation').","; + if($this->user->account){ + if($this->user->account->salutation === "mr"){ + $salutation = __('email.dear_sir')." ".$this->user->account->first_name.","; + }else{ + $salutation = __('email.dear_mrs')." ".$this->user->account->first_name.","; + } + } + return $this->view('emails.auth')->with([ + 'url' => route('register_verify', $this->confirmation_code), + 'salutation' => $salutation, + 'button' => __('email.email_verify'), + 'copy1line' => __('email.email_verify_copy1line'), + 'copy2line' => __('email.copy2line'), + 'copy3line' => __('email.copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + + ]); + } +} \ No newline at end of file diff --git a/app/Mail/MailVerifyContact.php b/app/Mail/MailVerifyContact.php new file mode 100644 index 0000000..813d745 --- /dev/null +++ b/app/Mail/MailVerifyContact.php @@ -0,0 +1,48 @@ +confirmation_code = $confirmation_code; + $this->user = $user; + $this->subject = __('email.verify_e_mail'); + } + + + public function build() + { + $salutation = __('email.salutation').","; + if($this->user->account){ + if($this->user->account->salutation === "mr"){ + $salutation = __('email.dear_sir')." ".$this->user->account->first_name.","; + }else{ + $salutation = __('email.dear_mrs')." ".$this->user->account->first_name.","; + } + } + return $this->view('emails.auth')->with([ + 'url' => route('register_verify', $this->confirmation_code), + 'salutation' => $salutation, + 'button' => __('email.verify_e_mail'), + 'copy1line' => __('email.verify_copy1line'), + 'copy2line' => __('email.copy2line'), + 'copy3line' => __('email.copy3line'), + 'greetings' => __('email.greetings'), + 'sender' => __('email.sender'), + ]); + } +} \ No newline at end of file diff --git a/app/Models/Attribute.php b/app/Models/Attribute.php new file mode 100644 index 0000000..9237561 --- /dev/null +++ b/app/Models/Attribute.php @@ -0,0 +1,91 @@ + 'array']; + + protected $fillable = [ + 'parent_id', 'name', 'pos', 'active', + ]; + + + public function parent() + { + return $this->belongsTo('App\Models\Attribute', 'parent_id'); + } + + public function childrens() + { + return $this->hasMany('App\Models\Attribute', 'parent_id', 'id'); + } + + public function setPosAttribute($value){ + $this->attributes['pos'] = is_numeric($value) ? $value : null; + + } + public function getLang($key) + { + $lang = \App::getLocale(); + if ($lang == 'de') { + return $this->{$key}; + } + $trans = $this->getTrans($key, $lang); + if (!$trans || $trans == '') { + return $this->{$key}; + } + return $trans; + } + + public function getTrans($key, $lang) + { + $key = 'trans_' . $key; + if (!empty($this->{$key}[$lang])) { + return $this->{$key}[$lang]; + } + } + + public function getTranNames() + { + $ret = ""; + foreach ((array) $this->trans_name as $value){ + $ret .= $value.', '; + } + return rtrim($ret, ', '); + } + +} diff --git a/app/Models/Category.php b/app/Models/Category.php new file mode 100644 index 0000000..8f8415d --- /dev/null +++ b/app/Models/Category.php @@ -0,0 +1,135 @@ + 'array', 'trans_headline' => 'array']; + + protected $fillable = [ + 'parent_id', 'name', 'headline', 'pos', 'active', + ]; + + public function sluggable() + { + return [ + 'slug' => [ + 'source' => 'name' + ] + ]; + } + + public function parent() + { + return $this->belongsTo('App\Models\Category', 'parent_id'); + } + + public function childrens() + { + return $this->hasMany('App\Models\Category', 'parent_id', 'id'); + } + + public function product_categories() + { + return $this->hasMany('App\Models\ProductCategory', 'category_id', 'id'); + + } + + public function iq_image() + { + return $this->belongsTo('App\Models\IqImage', 'headline_image_id'); + } + + public function setPosAttribute($value){ + $this->attributes['pos'] = is_numeric($value) ? $value : null; + + } + public function getLang($key) + { + $lang = \App::getLocale(); + if ($lang === 'de') { + return $this->{$key}; + } + $trans = $this->getTrans($key, $lang); + if (!$trans || $trans == '') { + return $this->{$key}; + } + return $trans; + } + + public function getTrans($key, $lang) + { + $key = 'trans_' . $key; + if (!empty($this->{$key}[$lang])) { + return $this->{$key}[$lang]; + } + return ""; + } + + public function getTranNames() + { + $ret = ""; + foreach ((array) $this->trans_name as $value){ + $ret .= $value.', '; + } + return rtrim($ret, ', '); + } + + public function getTranHeadlines() + { + $ret = ""; + foreach ((array) $this->trans_headline as $value){ + $ret .= $value.', '; + } + return rtrim($ret, ', '); + } + +} diff --git a/app/Models/Country.php b/app/Models/Country.php new file mode 100644 index 0000000..f398114 --- /dev/null +++ b/app/Models/Country.php @@ -0,0 +1,169 @@ + 'bool', + 'own_eur' => 'bool', + 'currency' => 'bool', + 'currency_calc' => 'bool', + 'trans_name' => 'array', + 'attr' => 'array' + ]; + + protected $fillable = [ + 'code', 'phone', 'en', 'de', 'es', 'fr', 'it', 'ru', + 'switch', 'own_eur', 'currency', 'currency_unit', 'currency_calc', 'currency_faktor', + 'active', 'trans_name', 'attr', + ]; + + public function country_prices() + { + return $this->hasMany(CountryPrice::class, 'country_id'); + } + + public function getLocated($lang = false){ + + if(!$lang){ + $lang = \App::getLocale(); + + } + if($lang === 'de'){ + return $this->de; + } + if($lang === 'en'){ + return $this->en; + } + if($lang === 'es'){ + return $this->es; + } + if($lang === 'fr'){ + return $this->fr; + } + if($lang === 'it'){ + return $this->it; + } + if($lang === 'ru'){ + return $this->ru; + } + + //search by trans + + if($val = $this->getTrans('name', $lang)){ + return $val; + } + return $this->de; + } + + public function getTrans($key, $lang) + { + $key = 'trans_' . $key; + if (!empty($this->{$key}[$lang])) { + return $this->{$key}[$lang]; + } + return ""; + } + + public function getAttrByKey($key) + { + $name = 'attr'; + if (!empty($this->{$name}[$key])) { + return $this->{$name}[$key]; + } + return ""; + } + + public static function getCountryIdByCode($code){ + if($code == null){ + return null; + } + $r = Country::where('code', '=', $code)->first(); + if($r){ + return $r->id; + } + return null; + } + + public static function getCountryIdByCodeOrOne($code){ + if($code == null){ + return 1; + } + $r = Country::where('code', '=', $code)->first(); + if($r){ + return $r->id; + } + return 1; + } + + public static function getCountryIdByPhone($phone){ + if($phone == null){ + return null; + } + $r = Country::where('phone', '=', $phone)->first(); + if($r){ + return $r->id; + } + return null; + } + +} diff --git a/app/Models/CountryPrice.php b/app/Models/CountryPrice.php new file mode 100644 index 0000000..1354071 --- /dev/null +++ b/app/Models/CountryPrice.php @@ -0,0 +1,73 @@ + 'int', + 'product_id' => 'int', + 'c_price' => 'float', + 'c_tax' => 'float', + 'c_price_old' => 'float', + 'c_currency' => 'float' + ]; + + protected $fillable = [ + 'country_id', + 'product_id', + 'c_price', + 'c_tax', + 'c_price_old', + 'c_currency' + ]; + + public function country() + { + return $this->belongsTo(Country::class); + } + + public function product() + { + return $this->belongsTo(Product::class); + } +} diff --git a/app/Models/File.php b/app/Models/File.php new file mode 100644 index 0000000..dfcbc41 --- /dev/null +++ b/app/Models/File.php @@ -0,0 +1,84 @@ + 'int', + 'size' => 'int' + ]; + + protected $fillable = [ + 'user_id', + 'identifier', + 'filename', + 'dir', + 'original_name', + 'ext', + 'mine', + 'size' + ]; + + public function user() + { + return $this->belongsTo(User::class); + } + + public function formatBytes($precision = 2) + { + $size = $this->size; + + if ($size > 0) { + $size = (int) $size; + $base = log($size) / log(1024); + $suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB'); + + return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)]; + } else { + return $size; + } + } +} diff --git a/app/Models/Import.php b/app/Models/Import.php new file mode 100644 index 0000000..d3a6f16 --- /dev/null +++ b/app/Models/Import.php @@ -0,0 +1,66 @@ + 'required|mimes:xls,xlsx' + ]; + + public static $messages = [ + 'file.mimes' => 'Datei ist kein Excel Format', + 'file.required' => 'Excel is required' + ]; + + protected static $row = []; + + public static function setRow($row){ + + // self::checkTime(); + self::$row[] = $row; + } + + + public static function checkTime(){ + + if(round((microtime(true) - self::$start), 2) > 29){ + echo 'Total execution time in seconds: ' . round((microtime(true) - self::$start), 2); + die(); + return true; + } + return false; + } + + public static function countRows(){ + return count(self::$row); + } + + + public static function break(){ + echo count(self::$row)."
"; + echo 'Total execution time in seconds: ' . round((microtime(true) - self::$start), 2); + die(); + + } + + + + +} diff --git a/app/Models/Ingredient.php b/app/Models/Ingredient.php new file mode 100644 index 0000000..2330fc8 --- /dev/null +++ b/app/Models/Ingredient.php @@ -0,0 +1,80 @@ + 'bool', + 'pos' => 'int' + ]; + + protected $fillable = [ + 'name', + 'trans_name', + 'inci', + 'trans_inci', + 'effect', + 'trans_effect', + 'active', + 'pos' + ]; + + public function products() + { + return $this->belongsToMany(Product::class, 'product_ingredients') + ->withPivot('id') + ->withTimestamps(); + } + + public function product_ingredients() + { + return $this->hasMany(ProductIngredient::class, 'product_ingredients', 'id'); + + } +} diff --git a/app/Models/IqImage.php b/app/Models/IqImage.php new file mode 100644 index 0000000..3291452 --- /dev/null +++ b/app/Models/IqImage.php @@ -0,0 +1,77 @@ + [ + 'source' => 'original_name' + ] + ]; + } + + public function formatBytes($precision = 2) + { + $size = $this->size; + + if ($size > 0) { + $size = (int) $size; + $base = log($size) / log(1024); + $suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB'); + + return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)]; + } else { + return $size; + } + } + +} diff --git a/app/Models/IqSite.php b/app/Models/IqSite.php new file mode 100644 index 0000000..34eb80f --- /dev/null +++ b/app/Models/IqSite.php @@ -0,0 +1,102 @@ + 'array', 'set_products' => 'array']; + + protected $fillable = [ + 'slug', 'headline', 'copy', 'products', 'set_products', + ]; + + public function iq_image() + { + return $this->belongsTo('App\Models\IqImage', 'iq_image_id'); + } + + + public function getLang($key) + { + $lang = \App::getLocale(); + if ($lang == 'de') { + return $this->{$key}; + } + $trans = $this->getTrans($key, $lang); + if (!$trans || $trans == '') { + return $this->{$key}; + } + return $trans; + } + + public function getTrans($key, $lang) + { + $key = 'trans_' . $key; + if (!empty($this->{$key}[$lang])) { + return $this->{$key}[$lang]; + } + return ""; + } + + + public function getProductModels(){ + $ret = []; + foreach($this->products as $product_id){ + $ret[] = Product::findOrFail($product_id); + + } + return $ret; + } + + public function getProductSetModels(){ + $ret = []; + foreach($this->set_products as $product_id){ + $ret[] = Product::findOrFail($product_id); + + } + return $ret; + } + + public function hasImage(){ + if($this->iq_image_id){ + if($this->iq_image && isset($this->iq_image->slug) && $this->iq_image->active){ + return true; + } + + } + return false; + } +} diff --git a/app/Models/Logger.php b/app/Models/Logger.php new file mode 100644 index 0000000..ad84cc1 --- /dev/null +++ b/app/Models/Logger.php @@ -0,0 +1,83 @@ + 'int', + 'model_id' => 'int', + 'level' => 'int' + ]; + + protected $fillable = [ + 'user_id', + 'model_id', + 'model', + 'action', + 'channel', + 'message', + 'level' + ]; + + public $levelTypes = [ + 1 => 'debug', + 2 => 'info', + 3 => 'notice', + 4 => 'warning', + 5 => 'error', + 6 => 'critical', + 7 => 'alert', + ]; + + public function user() + { + return $this->belongsTo(User::class); + } + + public function getLevelType(){ + + return isset($this->levelTypes[$this->level]) ? $this->levelTypes[$this->level] : ""; + } + +} diff --git a/app/Models/PaymentMethod.php b/app/Models/PaymentMethod.php new file mode 100644 index 0000000..1eaef29 --- /dev/null +++ b/app/Models/PaymentMethod.php @@ -0,0 +1,77 @@ + 'int', + 'pos' => 'int', + 'active' => 'bool', + 'default' => 'bool', + ]; + + protected $fillable = [ + 'name', + 'short', + 'show_at', + 'pos', + 'default', + 'active' + ]; + + public static $showATs = [ + 0 => 'Nur Kunden Shop', + 1 => 'Nur Berater Shop', + 2 => 'Kunden + Berater Shop', + 3 => 'Nur Reg/Mitgliedschaft Berater', + 4 => 'Kunden + Berater Shop + Reg/Mitgliedschaft', + 5 => 'Berater Shop + Reg/Mitgliedschaft', + 9 => 'überall', + ]; + + public function getShowAtType(){ + return isset(self::$showATs[$this->show_at]) ? self::$showATs[$this->show_at] : '-'; + } + + public static function getDefaultAsArray($short=false){ + return PaymentMethod::where('active', true)->where('default', true)->pluck('id'); + } +} diff --git a/app/Models/PaymentTransaction.php b/app/Models/PaymentTransaction.php new file mode 100644 index 0000000..e0a0f87 --- /dev/null +++ b/app/Models/PaymentTransaction.php @@ -0,0 +1,75 @@ + 'array' + ]; + + protected $fillable = [ + 'shopping_payment_id', + 'request', + 'txid', + 'userid', + 'status', + 'key', + 'txaction', + 'transmitted_data', + 'errorcode', + 'errormessage', + 'customermessage', + 'mode', + ]; + + + public function shopping_payment() + { + return $this->belongsTo('App\Models\ShoppingPayment','shopping_payment_id'); + } +} diff --git a/app/Models/Product.php b/app/Models/Product.php new file mode 100644 index 0000000..a6f20d7 --- /dev/null +++ b/app/Models/Product.php @@ -0,0 +1,433 @@ +payment_order_id to the package in the payment api + */ + + protected $table = 'products'; + + protected $casts = [ + 'trans_name' => 'array', + 'trans_title' => 'array', + 'trans_copy' => 'array', + 'icons' => 'array', + 'trans_description' => 'array', + 'trans_usage' => 'array', + 'trans_ingredients' => 'array', + 'action' => 'array', + 'wp_number' => 'int', + 'shipping_addon' => 'bool', + 'active' => 'bool' + ]; + use Sluggable; + + use SoftDeletes; + + protected $dates = ['deleted_at']; + + protected $fillable = [ + 'name', + 'title', + 'copy', + 'price', + 'price_ek', + 'tax', + 'price_old', + 'points', + 'weight', + 'contents', + 'contents_total', + 'unit', + 'number', + 'wp_number', + 'icons', + 'description', + 'usage', + 'ingredients', + 'pos', + 'amount', + 'active', + 'show_at', + 'shipping_addon', + 'identifier', + 'action', + 'upgrade_to_id' + ]; + + public $identifiers_types = [ + '' => '-', + 'show_upgrade' => 'Kann geupdatet werden', + 'show_order' => 'Wird immer als Option angezeigt', + 'upgrade' => 'Produktupgrade zur Produkt ID', + 'upgrade_member' => 'Beraterupgrade zur Karriere ID', + 'proportional_voucher' => 'Anteiliger Gutschein Berater', + + + ]; + public $unitTypes = [ + 0 => '', + 1 => 'ml', + 2 => 'g', + 3 => 'Liter', + 4 => 'KG', + ]; + + public $showATs = [ + 0 => 'Nur Kunden Shop', + 1 => 'Kunden + Berater Shop', + 2 => 'Nur Berater Shop', + 3 => 'Registrierung / Mitgliedschaft Berater', + 4 => 'Nur Mitgliedschaft Berater', + 5 => 'Onboarding Berater', + 6 => 'Onboarding Berater + Berater Shop', + 7 => 'zur internen Berechnung', + + ]; + + public $actions = [ + 0 => 'payment_for_account', + 1 => 'payment_for_shop', + 2 => 'payment_for_shop_upgrade', + 4 => 'payment_for_lead_upgrade', + + ]; + + public function sluggable() + { + return [ + 'slug' => [ + 'source' => 'name' + ] + ]; + } + + public function attributes(){ + return $this->hasMany('App\Models\ProductAttribute', 'product_id', 'id'); + } + + public function categories(){ + return $this->hasMany('App\Models\ProductCategory', 'product_id', 'id'); + } + + public function images(){ + return $this->hasMany('App\Models\ProductImage', 'product_id', 'id')->orderBy('pos'); + } + + public function imagesActive(){ + return $this->hasMany('App\Models\ProductImage', 'product_id', 'id')->where('active', true)->orderBy('pos'); + } + + public function country_prices() + { + return $this->hasMany(CountryPrice::class, 'product_id'); + } + + + public function p_ingredients() + { + return $this->belongsToMany(Ingredient::class, 'product_ingredients') + ->withPivot('id') + ->withTimestamps(); + } + + public function product_ingredients() + { + return $this->hasMany(ProductIngredient::class, 'product_ingredients', 'id'); + } + + + public function getActionName($id = 0){ + if(isset($this->actions[$id])){ + return $this->actions[$id]; + } + return false; + } + public function _format_number($value){ + return preg_replace("/[^0-9,]/", "", $value); + } + + public function setPriceAttribute( $value ) { + + $this->attributes['price'] = $value ? Util::reFormatNumber($value) : null; + } + public function setPriceEkAttribute( $value ) { + + $this->attributes['price_ek'] = $value ? Util::reFormatNumber($value) : null; + } + public function setTaxAttribute( $value ) { + + $this->attributes['tax'] = $value ? Util::reFormatNumber($value) : null; + } + public function setPriceOldAttribute( $value ) { + + $this->attributes['price_old'] = $value ? Util::reFormatNumber($value) : null; + } + + public function getFormattedPrice() + { + return isset($this->attributes['price']) ? Util::formatNumber($this->attributes['price']) : ""; + } + + public function getFormattedPriceEk() + { + return isset($this->attributes['price_ek']) ? Util::formatNumber($this->attributes['price_ek']) : ""; + } + + public function getFormattedTax() + { + return isset($this->attributes['tax']) ? Util::formatNumber($this->attributes['tax'], 0) : ""; + } + + public function getFormattedPriceOld() + { + return isset($this->attributes['price_old']) ? Util::formatNumber($this->attributes['price_old']) : ""; + } + + /*price by user Factor*/ + private function calcPriceUserFactor($price){ + if(\Auth::user() && \Auth::user()->user_level){ + $margin = ((\Auth::user()->user_level->margin -100)*-1) / 100; + $price = $price * $margin; + } + return $price; + } + /*price net*/ + private function calcPriceNet($price){ + $tax_rate = ($this->attributes['tax'] + 100) / 100; + + return $price / $tax_rate; + } + //price calu with + public function getPriceWith(Bool $net = true, Bool $ufactor = true){ + $price = $this->attributes['price']; + $price = $net ? $this->calcPriceNet($price) : $price; + $price = $ufactor ? $this->calcPriceUserFactor($price) : $price; + return round($price, 2); + } + /*out*/ + public function getFormattedPriceWith(Bool $net = true, Bool $ufactor = true) + { + return isset($this->attributes['price']) ? Util::formatNumber($this->getPriceWith($net, $ufactor)) : ""; + } + + + public function getBasePriceFormattedFull(){ + if($price = $this->getBasePrice()){ + $unit = $this->attributes['unit']; + //ml g + if($unit === 1 || $unit === 2){ + return Util::formatNumber($price) . ' € / 100 '.$this->getUnitType(); + } + //l kg + if($unit === 3 || $unit === 4){ + return Util::formatNumber($price) . ' € / 1 '.$this->getUnitType(); + } + } + return ""; + } + + public function getBasePriceFormatted(){ + if($price = $this->getBasePrice()){ + return Util::formatNumber($price); + } + return ""; + } + + public function getBasePrice(){ + if(isset($this->attributes['unit']) && isset($this->attributes['contents_total']) && $this->attributes['contents_total'] != 0){ + $unit = $this->attributes['unit']; + //ml g + if($unit === 1 || $unit === 2){ + return $this->attributes['price'] * 100 / $this->attributes['contents_total']; + } + //l kg + if($unit === 3 || $unit === 4){ + return $this->attributes['price'] * 1000 / $this->attributes['contents_total']; + } + } + return ""; + } + public function getUnitType(){ + return isset($this->unitTypes[$this->unit]) ? $this->unitTypes[$this->unit] : '-'; + } + public function getShowAtType(){ + return isset($this->showATs[$this->show_at]) ? $this->showATs[$this->show_at] : '-'; + } + + + public function setPosAttribute($value){ + $this->attributes['pos'] = is_numeric($value) ? $value : null; + + } + public function getLang($key) + { + $lang = \App::getLocale(); + if ($lang == 'de') { + return $this->{$key}; + } + $trans = $this->getTrans($key, $lang); + if (!$trans || $trans == '') { + return $this->{$key}; + } + return $trans; + } + + public function getTrans($key, $lang) + { + $key = 'trans_' . $key; + if (!empty($this->{$key}[$lang])) { + return $this->{$key}[$lang]; + } + } + + public function getTranNames() + { + $ret = ""; + foreach ((array) $this->trans_name as $value){ + $ret .= $value.', '; + } + return rtrim($ret, ', '); + } + + public function getCountryPrice($country_id){ + return $this->country_prices->where('country_id', '=', $country_id)->first() ?: new CountryPrice(); + } + + public function getCPrice($country_id){ + return $this->getCountryPrice($country_id)->c_price; + } + public function getCTax($country_id){ + return $this->getCountryPrice($country_id)->c_tax; + } + public function getCPriceOld($country_id){ + return $this->getCountryPrice($country_id)->c_price_old; + } + public function getCCurrency($country_id){ + return $this->getCountryPrice($country_id)->c_currency; + } + + public function getRealPrice(Country $country){ + if($country->own_eur && $this->getCPrice($country->id)){ + return $this->getCPrice($country->id); + } + return $this->price; + } + + +} diff --git a/app/Models/ProductAttribute.php b/app/Models/ProductAttribute.php new file mode 100644 index 0000000..a94b36c --- /dev/null +++ b/app/Models/ProductAttribute.php @@ -0,0 +1,44 @@ +belongsTo('App\Models\Product', 'product_id'); + } + + public function attribute() + { + return $this->belongsTo('App\Models\Attribute', 'attribute_id'); + } +} diff --git a/app/Models/ProductCategory.php b/app/Models/ProductCategory.php new file mode 100644 index 0000000..edeebeb --- /dev/null +++ b/app/Models/ProductCategory.php @@ -0,0 +1,45 @@ +belongsTo('App\Models\Product', 'product_id'); + } + + public function category() + { + return $this->belongsTo('App\Models\Category', 'category_id'); + } + +} diff --git a/app/Models/ProductImage.php b/app/Models/ProductImage.php new file mode 100644 index 0000000..25f7db2 --- /dev/null +++ b/app/Models/ProductImage.php @@ -0,0 +1,82 @@ + [ + 'source' => 'original_name' + ] + ]; + } + + public function product() + { + return $this->belongsTo('App\Models\Product', 'product_id'); + } + + public function formatBytes($precision = 2) + { + $size = $this->size; + + if ($size > 0) { + $size = (int) $size; + $base = log($size) / log(1024); + $suffixes = array(' bytes', ' KB', ' MB', ' GB', ' TB'); + + return round(pow(1024, $base - floor($base)), $precision) . $suffixes[floor($base)]; + } else { + return $size; + } + } + +} diff --git a/app/Models/ProductIngredient.php b/app/Models/ProductIngredient.php new file mode 100644 index 0000000..400ade4 --- /dev/null +++ b/app/Models/ProductIngredient.php @@ -0,0 +1,56 @@ + 'int', + 'ingredient_id' => 'int' + ]; + + protected $fillable = [ + 'product_id', + 'ingredient_id' + ]; + + public function ingredient() + { + return $this->belongsTo(Ingredient::class, 'ingredient_id'); + } + + public function product() + { + return $this->belongsTo(Product::class, 'product_id'); + } +} diff --git a/app/Models/Shipping.php b/app/Models/Shipping.php new file mode 100644 index 0000000..7a3af40 --- /dev/null +++ b/app/Models/Shipping.php @@ -0,0 +1,81 @@ + 'array', + ]; + + protected $fillable = [ + 'name', 'active', 'free' + ]; + + public function _format_number($value){ + return preg_replace("/[^0-9,]/", "", $value); + } + + public function setFreeAttribute( $value ) { + if($value == ""){ + $this->attributes['free'] = null; + }else{ + $value = $this->_format_number($value); + $this->attributes['free'] = floatval(str_replace(',', '.', $value)); + } + } + public function getFormattedFree() + { + if($this->free === null) { + return ""; + } + if(\App::getLocale() == "en"){ + return number_format($this->attributes['free'], 2, '.', ','); + } + return number_format($this->attributes['free'], 2, ',', '.'); + } + + + public function countries(){ + return $this->hasMany('App\Models\ShippingCountry', 'shipping_id', 'id'); + } + + public function prices(){ + return $this->hasMany('App\Models\ShippingPrice', 'shipping_id', 'id'); + } + public function shipping_prices(){ + return $this->hasMany('App\Models\ShippingPrice', 'shipping_id', 'id'); + } +} diff --git a/app/Models/ShippingCountry.php b/app/Models/ShippingCountry.php new file mode 100644 index 0000000..c7733a6 --- /dev/null +++ b/app/Models/ShippingCountry.php @@ -0,0 +1,53 @@ +belongsTo('App\Models\Shipping', 'shipping_id'); + } + + public function country() + { + return $this->belongsTo('App\Models\Country', 'country_id'); + } + + public function shopping_orders() + { + return $this->hasMany('App\Models\ShoppingOrder', 'country_id'); + } + +} diff --git a/app/Models/ShippingPrice.php b/app/Models/ShippingPrice.php new file mode 100644 index 0000000..724ee3b --- /dev/null +++ b/app/Models/ShippingPrice.php @@ -0,0 +1,121 @@ +belongsTo('App\Models\Shipping', 'shipping_id'); + } + + + public function setPriceAttribute($value) + { + $this->attributes['price'] = $value ? Util::reFormatNumber($value) : null; + } + + public function setPriceCompAttribute($value) + { + $this->attributes['price_comp'] = $value ? Util::reFormatNumber($value) : null; + } + + public function setFactorAttribute($value) + { + $this->attributes['factor'] = $value ? Util::reFormatNumber($value) : null; + } + + public function setTaxAttribute($value) + { + $this->attributes['tax_rate'] = $value ? Util::reFormatNumber($value) : null; + } + + public function setTotalFromAttribute($value) + { + $this->attributes['total_from'] = $value ? Util::reFormatNumber($value) : null; + } + + public function setTotalToAttribute($value) + { + $this->attributes['total_to'] = $value ? Util::reFormatNumber($value) : null; + } + + public function getFormattedPrice() + { + return isset($this->attributes['price']) ? Util::formatNumber($this->attributes['price']) : ""; + } + + public function getFormattedPriceComp() + { + return isset($this->attributes['price_comp']) ? Util::formatNumber($this->attributes['price_comp']) : ""; + } + + public function getFormattedTaxRate() + { + return isset($this->attributes['tax_rate']) ? Util::formatNumber($this->attributes['tax_rate']) : ""; + } + + public function getFormattedFactor() + { + return isset($this->attributes['factor']) ? Util::formatNumber($this->attributes['factor']) : ""; + } + + + public function getFormatTotalFrom() + { + return isset($this->attributes['total_from']) ? Util::formatNumber($this->attributes['total_from']) : ""; + } + + public function getFormattedTotalTo() + { + return isset($this->attributes['total_to']) ? Util::formatNumber($this->attributes['total_to']) : ""; + } + + +} diff --git a/app/Models/ShoppingOrder.php b/app/Models/ShoppingOrder.php new file mode 100644 index 0000000..d42ddb5 --- /dev/null +++ b/app/Models/ShoppingOrder.php @@ -0,0 +1,273 @@ + 'array', + ]; + + public static $shippedTypes = [ + 0 => 'offen', + 1 => 'in Bearbeitung', + 2 => 'versendet', + 3 => 'abgeschlossen', + 10 => 'storniert' + ]; + + public static $apiShippedTypes = [ + 0 => 'open', //(Fullfilment durch Händler)', + 1 => 'process', //(Fullfilment durch MIVITA: nicht Versand) + 2 => 'sent', //(Fullfilment durch MIVITA: Versand erfolgt)' + 3 => 'close', //(Fullfilment durch MIVITA: Versand erfolgt)', + 10 => 'cancel' + ]; + + public static $shippedColors = [ + 0 => 'warning', + 1 => 'info', + 2 => 'success', + 3 => 'secondary', + 10 => 'danger', + ]; + + + + + public function shopping_user() + { + return $this->belongsTo('App\Models\ShoppingUser','shopping_user_id'); + } + + public function country() + { + return $this->belongsTo('App\Models\ShippingCountry','country_id'); + } + + public function shipping_country() + { + return $this->belongsTo('App\Models\ShippingCountry','country_id'); + } + + //can null + public function member() + { + return $this->belongsTo('App\User','member_id'); + } + //can null + public function auth_user() + { + return $this->belongsTo('App\User','auth_user_id'); + } + + public function user_history() + { + return $this->hasOne('App\Models\UserHistory','shopping_order_id')->latest(); + } + + + public function shopping_order_items(){ + return $this->hasMany('App\Models\ShoppingOrderItem', 'shopping_order_id'); + } + + public function shopping_payments(){ + return $this->hasMany('App\Models\ShoppingPayment', 'shopping_order_id'); + } + + public function setUserHistoryValue($values = []){ + if($user_history = $this->user_history){ + foreach ($values as $key=>$val){ + $user_history->{$key} = $val; + } + $user_history->save(); + } + } + + public function getLastShoppingPayment($key=false){ + $shopping_payment = $this->shopping_payments->last(); + if($shopping_payment){ + if($key === 'getPaymentType'){ + return $shopping_payment->getPaymentType(); + } + if($key === 'reference'){ + return $shopping_payment->reference; + } + } + return ""; + } + + public function getShippedType(){ + return isset(self::$shippedTypes[$this->shipped]) ? self::$shippedTypes[$this->shipped] : ""; + } + + public function getAPIShippedType(){ + return isset(self::$apiShippedTypes[$this->shipped]) ? self::$apiShippedTypes[$this->shipped] : "free"; + } + + public function getShippedColor(){ + return isset(self::$shippedColors[$this->shipped]) ? self::$shippedColors[$this->shipped] : "default"; + } + + public function getFormattedTotal() + { + return formatNumber($this->attributes['total']); + } + + public function getFormattedSubtotal() + { + return formatNumber($this->attributes['subtotal']); + } + + public function getFormattedShipping() + { + return formatNumber($this->attributes['shipping']); + } + + public function getFormattedShippingNet() + { + return formatNumber($this->attributes['shipping_net']); + } + + public function getFormattedSubtotalWs() + { + return formatNumber($this->attributes['subtotal_ws']); + } + + public function getFormattedTax() + { + return formatNumber($this->attributes['tax']); + } + + public function getFormattedTotalShipping() + { + return formatNumber($this->attributes['total_shipping']); + } + + + + + public function getItemsCount(){ + $count = 0; + if($this->shopping_order_items){ + foreach ($this->shopping_order_items as $shopping_order_item){ + $count += $shopping_order_item->qty; + } + } + + return $count; + } + + + +} diff --git a/app/Models/ShoppingOrderItem.php b/app/Models/ShoppingOrderItem.php new file mode 100644 index 0000000..2ab4689 --- /dev/null +++ b/app/Models/ShoppingOrderItem.php @@ -0,0 +1,100 @@ +belongsTo('App\Models\ShoppingOrder','shopping_order_id'); + } + + public function product() + { + return $this->belongsTo('App\Models\Product','product_id'); + } + + + public function getFormattedPrice() + { + return formatNumber($this->attributes['price']); + } + + public function getFormattedTotalPrice() + { + return formatNumber($this->attributes['price'] * $this->attributes['qty']); + } + + public function getFormattedPriceNet() + { + return formatNumber($this->attributes['price_net']); + } + + public function getFormattedTotalPriceNet() + { + return formatNumber($this->attributes['price_net'] * $this->attributes['qty']); + } + +} \ No newline at end of file diff --git a/app/Models/ShoppingPayment.php b/app/Models/ShoppingPayment.php new file mode 100644 index 0000000..d4f033a --- /dev/null +++ b/app/Models/ShoppingPayment.php @@ -0,0 +1,96 @@ +belongsTo('App\Models\ShoppingOrder','shopping_order_id'); + } + + public function payment_transactions() + { + return $this->hasMany('App\Models\PaymentTransaction','shopping_payment_id'); + } + + public function getPaymentType(){ + + if($this->clearingtype === 'pp') { + return 'PayPal'; + } + if($this->clearingtype === 'cc') { + return 'Kreditkarte'; + } + if($this->clearingtype === 'vor') { + return 'Vorkasse'; + } + if($this->clearingtype === 'elv') { + return 'SEPA Lastschrift'; + } + if($this->clearingtype === 'sb') { + return 'Sofort Überweisung'; + } + if($this->clearingtype === 'fnc') { + return 'Rechnung'; + } + } + + public function getPaymentAmount(){ + return Util::formatNumber($this->amount/100)." ".$this->currency; + } +} \ No newline at end of file diff --git a/app/Models/ShoppingUser.php b/app/Models/ShoppingUser.php new file mode 100644 index 0000000..eed57ca --- /dev/null +++ b/app/Models/ShoppingUser.php @@ -0,0 +1,254 @@ + 'array', + 'is_like' => 'bool', + 'faker_mail' => 'bool', + 'accepted_data_checkbox' => 'bool', + 'same_as_billing' => 'bool', + 'has_buyed' => 'bool', + 'subscribed' => 'bool', + 'wp_order_number' => 'int', + ]; + + + + //can null + public function member() + { + return $this->belongsTo('App\User','member_id'); + } + public function auth_user() + { + return $this->belongsTo('App\User','auth_user_id'); + } + public function billing_country() + { + return $this->belongsTo('App\Models\Country','billing_country_id'); + } + + public function shipping_country() + { + return $this->belongsTo('App\Models\Country','shipping_country_id'); + } + + public function shopping_orders() + { + return $this->hasMany('App\Models\ShoppingOrder','shopping_user_id'); + } + + public function shopping_order() + { + return $this->hasOne('App\Models\ShoppingOrder','shopping_user_id'); + } + + public function setNotice($key, $value){ + $notice = $this->notice; + $notice[$key] = $value; + $this->notice = $notice; + $this->save(); + } + + public function getNotice($key){ + return isset($this->notice[$key]) ? $this->notice[$key] : false; + } + + public function removeNotice($key){ + $notice = $this->notice; + if(isset($notice[$key])){ + unset($notice[$key]); + } + $this->notice = $notice; + $this->save(); + } + + public function firstEntryByNumber(){ + + if($this->number>0){ + if($shopping_user = ShoppingUser::where('number', $this->number)->orderBy('created_at', 'ASC')->first()){ + return $shopping_user; + } + } + return $this; + } + public function lastEntryByNumber(){ + + if($this->number>0){ + if($shopping_user = ShoppingUser::where('number', $this->number)->orderBy('created_at', 'DESC')->first()){ + return $shopping_user; + } + } + return $this; + } + + public function getAPIShippedType() { + if($this->shopping_order){ + return $this->shopping_order->getAPIShippedType(); + } + return "free"; + } +} \ No newline at end of file diff --git a/app/Models/SySetting.php b/app/Models/SySetting.php new file mode 100644 index 0000000..852f046 --- /dev/null +++ b/app/Models/SySetting.php @@ -0,0 +1,77 @@ + 'int', + 'active' => 'bool' + ]; + + protected $fillable = [ + 'name', + 'slug', + 'message', + 'action', + 'status', + 'active' + ]; + + public static $statusTypes = [ + 1 => 'default', + ]; + + public function sluggable() + { + return [ + 'slug' => [ + 'source' => 'name' + ] + ]; + } + + public function getStatusType(){ + return isset(self::$statusTypes[$this->status]) ? self::$statusTypes[$this->status] : ""; + } +} diff --git a/app/Models/UserAccount.php b/app/Models/UserAccount.php new file mode 100644 index 0000000..3f688b6 --- /dev/null +++ b/app/Models/UserAccount.php @@ -0,0 +1,221 @@ + 'array', + 'notice' => 'array', + ]; + + use SoftDeletes; + protected $dates = ['deleted_at']; + + + public function user() + { + return $this->hasOne('App\User', 'account_id'); + } + + public function country() + { + return $this->belongsTo('App\Models\Country', 'country_id'); + } + + public function shipping_country() + { + return $this->belongsTo('App\Models\Country', 'shipping_country_id'); + } + + public function pre_phone() + { + return $this->belongsTo('App\Models\Country', 'pre_phone_id'); + } + + public function pre_mobil() + { + return $this->belongsTo('App\Models\Country', 'pre_mobil_id'); + } + + public function shipping_pre_phone() + { + return $this->belongsTo('App\Models\Country', 'shipping_pre_phone_id'); + } + + public function getBirthdayAttribute($value) + { + if(!$value){ + return ""; + } + return Carbon::parse($value)->format(\Util::formatDateDB()); + } + + public function setBirthdayAttribute( $value ) { + $this->attributes['birthday'] = isset($value) ? (new Carbon($value))->format('Y-m-d') : NULL; + } + + public function getDataProtectionFormat(){ + if(!$this->attributes['data_protection']){ return ""; } + return Carbon::parse($this->attributes['data_protection'])->format(\Util::formatDateTimeDB()); + } + + public function getAcceptContractFormat(){ + if(!$this->attributes['accept_contract']){ return ""; } + return Carbon::parse($this->attributes['accept_contract'])->format(\Util::formatDateTimeDB()); + } + + + public function getCountryAttrAs($attr, $as = false){ + if($this->country){ + $val = $this->country->getAttrByKey($attr); + + if($val){ + if($as){ + return $as; + } + return true; + + } + } + return ""; + } + + public function setNotice($key, $value){ + $notice = $this->notice; + $notice[$key] = $value; + $this->notice = $notice; + $this->save(); + } + + public function getNotice($key){ + return isset($this->notice[$key]) ? $this->notice[$key] : false; + } + +} diff --git a/app/Models/UserHistory.php b/app/Models/UserHistory.php new file mode 100644 index 0000000..4e671f9 --- /dev/null +++ b/app/Models/UserHistory.php @@ -0,0 +1,137 @@ + 'info', + 1 => 'store_payment', + 2 => 'checkout_payment', + 3 => 'payment_error', + 4 => 'payment_redirect', + 5 => 'payment_approved', + 6 => 'txaction_failed', + 7 => 'txaction_appointed', + 8 => 'txaction_paid', + 9 => 'success_payment', + 10 => 'success', + 21 => 'payment_not_found', + 22 => 'checkout_cancel', + 23 => 'checkout_error', + 31 => 'reminder_first', + 32 => 'reminder_first_sepa', + 33 => 'reminder_sec', + 34 => 'reminder_last', + 35 => 'reminder_deaktiv', + 36 => 'reminder_deaktiv_sepa', + 37 => 'reminder_collect_sepa', + + 50 => 'delete_membership' + ]; + protected $status_colors = [ + 0 => 'info', + 1 => 'warning', + 2 => 'warning', + 3 => 'danger', + 4 => 'warning', + 5 => 'warning', + 6 => 'danger', + 7 => 'warning', + 8 => 'success', + 9 => 'secondary', + 10 => 'success', + 21 => 'danger', + 22 => 'danger', + 23 => 'danger', + ]; + protected $casts = [ + 'user_id' => 'int', + 'shopping_order_id' => 'int', + 'product_id' => 'int', + 'referenz' => 'int', + 'status' => 'int' + ]; + + protected $fillable = [ + 'user_id', + 'shopping_order_id', + 'product_id', + 'action', + 'referenz', + 'identifier', + 'abo_options', + 'status' + ]; + + public function product() + { + return $this->belongsTo(Product::class); + } + + public function shopping_order() + { + return $this->belongsTo(ShoppingOrder::class); + } + + public function user() + { + return $this->belongsTo(User::class); + } + + public function getStatusType(){ + if(isset($this->status_types[$this->status])){ + return $this->status_types[$this->status]; + } + } + public function getStatusColor(){ + if(isset($this->status_colors[$this->status])){ + return $this->status_colors[$this->status]; + } + return 'default'; + } +} diff --git a/app/Models/UserLevel.php b/app/Models/UserLevel.php new file mode 100644 index 0000000..0fd87bb --- /dev/null +++ b/app/Models/UserLevel.php @@ -0,0 +1,107 @@ + 'array', 'trans_content' => 'array']; + + protected $fillable = [ + 'name', 'content', 'pos', 'active', + ]; + + + /* public function childrens() + { + return $this->hasMany('App\Models\Attribute', 'parent_id', 'id'); + } + */ + + public function setPosAttribute($value){ + $this->attributes['pos'] = is_numeric($value) ? $value : null; + + } + + + public function _format_number($value){ + return preg_replace("/[^0-9,]/", "", $value); + } + + public function setMarginAttribute( $value ) { + $value = $this->_format_number($value); + $this->attributes['margin'] = floatval(str_replace(',', '.', $value)); + } + + public function getFormattedMargin() + { + if(!isset($this->attributes['margin'])){ + return ""; + } + if(\App::getLocale() === "en"){ + return number_format($this->attributes['margin'], 2, '.', ','); + } + return number_format($this->attributes['margin'], 2, ',', '.'); + } + + public function getLang($key) + { + $lang = \App::getLocale(); + if ($lang === 'de') { + return $this->{$key}; + } + $trans = $this->getTrans($key, $lang); + if (!$trans || $trans == '') { + return $this->{$key}; + } + return $trans; + } + + public function getTrans($key, $lang) + { + $key = 'trans_' . $key; + if (!empty($this->{$key}[$lang])) { + return $this->{$key}[$lang]; + } + } + + public function getTranNames() + { + $ret = ""; + foreach ((array) $this->trans_name as $value){ + $ret .= $value.', '; + } + return rtrim($ret, ', '); + } +} diff --git a/app/Models/UserMessage.php b/app/Models/UserMessage.php new file mode 100644 index 0000000..f9f71c2 --- /dev/null +++ b/app/Models/UserMessage.php @@ -0,0 +1,86 @@ + 'int', + 'send_user_id' => 'int', + 'send' => 'bool', + 'fail' => 'bool' + ]; + + protected $dates = [ + 'sent_at', + 'scheduled_at', + 'delivered_at' + ]; + + protected $fillable = [ + 'user_id', + 'send_user_id', + 'email', + 'subject', + 'message', + 'send', + 'fail', + 'error', + 'sent_at', + 'scheduled_at', + 'delivered_at' + ]; + + public function user() + { + return $this->belongsTo(User::class); + } +} diff --git a/app/Models/UserUpdateEmail.php b/app/Models/UserUpdateEmail.php new file mode 100644 index 0000000..ee5edb2 --- /dev/null +++ b/app/Models/UserUpdateEmail.php @@ -0,0 +1,36 @@ +belongsTo('App\User', 'user_id'); + } +} diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php new file mode 100644 index 0000000..35471f6 --- /dev/null +++ b/app/Providers/AppServiceProvider.php @@ -0,0 +1,28 @@ + 'App\Policies\ModelPolicy', + ]; + + /** + * Register any authentication / authorization services. + * + * @return void + */ + public function boot() + { + $this->registerPolicies(); + + // + } +} diff --git a/app/Providers/BroadcastServiceProvider.php b/app/Providers/BroadcastServiceProvider.php new file mode 100644 index 0000000..352cce4 --- /dev/null +++ b/app/Providers/BroadcastServiceProvider.php @@ -0,0 +1,21 @@ + [ + SendEmailVerificationNotification::class, + ], + ]; + + /** + * Register any events for your application. + * + * @return void + */ + public function boot() + { + parent::boot(); + + // + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..527eee3 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,80 @@ +mapApiRoutes(); + + $this->mapWebRoutes(); + + // + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + * + * @return void + */ + protected function mapWebRoutes() + { + Route::middleware('web') + ->namespace($this->namespace) + ->group(base_path('routes/web.php')); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + * + * @return void + */ + protected function mapApiRoutes() + { + Route::prefix('api') + ->middleware('api') + ->namespace($this->namespace) + ->group(base_path('routes/api.php')); + } +} diff --git a/app/Providers/YardServiceProvider.php b/app/Providers/YardServiceProvider.php new file mode 100755 index 0000000..856bb11 --- /dev/null +++ b/app/Providers/YardServiceProvider.php @@ -0,0 +1,30 @@ +app->singleton(Yard::class, function ($app) { + return new Yard($app['session'], $app['events']); + }); + + + } + +} \ No newline at end of file diff --git a/app/Repositories/BaseRepository.php b/app/Repositories/BaseRepository.php new file mode 100644 index 0000000..7fd891e --- /dev/null +++ b/app/Repositories/BaseRepository.php @@ -0,0 +1,68 @@ +model->count(); + + $new = $this->model->whereSeen(0)->count(); + + return compact('total', 'new'); + } + + /** + * Destroy a model. + * + * @param int $id + * @return void + */ + public function destroy($id) + { + $this->getById($id)->delete(); + } + + /** + * Get Model by id. + * + * @param int $id + * @return App\Models\Model + */ + public function getById($id) + { + return $this->model->findOrFail($id); + } + + /** + * Get Model by id. + * + * @param int $id + * @return App\Models\Model + */ + public function getAll() + { + return $this->model->all(); + } + + /** + * @return Illuminate\Database\Eloquent\Model + */ + public function getModel() + { + return $this->model; + } + +} diff --git a/app/Repositories/ContractPDFRepository.php b/app/Repositories/ContractPDFRepository.php new file mode 100644 index 0000000..201e40c --- /dev/null +++ b/app/Repositories/ContractPDFRepository.php @@ -0,0 +1,150 @@ +model = $model; + } + + public function _set($name, $value){ + $this->{$name} = $value; + } + + private function convert($str){ + return iconv('UTF-8', 'windows-1252', $str); + } + + public function createContractPDF() { + + $pdf = new ContractPDF(); + + $pdf->AddPage('P', array(210, 297)); + $pdf->SetFont('Helvetica', '', 11); + $pdf->SetDrawColor(160, 160, 160); + + $x1 = 16.5; + $x2 = 109; + $y = 70; + $nl = 17.5; + $pdf->SetXY($x1, $y); + $pdf->Write(0, $this->convert($this->model->account->m_account)); + $pdf->SetXY($x2, $y); + $pdf->Write(0, now()->format("d.m.Y")); + + $y += $nl; + $pdf->SetXY($x1, $y); + $pdf->Write(0, $this->convert($this->model->account->company)); + $pdf->SetXY($x2, $y); + $pre = $this->model->account->pre_phone_id != "" ? $this->convert($this->model->account->pre_phone->phone)." " : ""; + $pdf->Write(0, $pre.$this->convert($this->model->account->phone)); + + + + $y += $nl; + $pdf->SetXY($x1, $y); + $pdf->Write(0, $this->convert($this->model->account->m_first_name)); + $pdf->SetXY($x2, $y); + $pre = $this->model->account->pre_mobil_id != "" ? $this->convert($this->model->account->pre_mobil->phone)." " : ""; + $pdf->Write(0, $pre.$this->convert($this->model->account->mobil)); + + $y += $nl; + $pdf->SetXY($x1, $y); + $pdf->Write(0, $this->convert($this->model->account->m_last_name)); + $pdf->SetXY($x2, $y); + $pdf->Write(0, $this->convert($this->model->email)); + + $y += $nl; + $pdf->SetXY($x1, $y); + $pdf->Write(0, $this->convert($this->model->account->address)); + $pdf->SetXY($x2, $y); + $pdf->Write(0, $this->convert($this->model->account->birthday)); + + $y += $nl; + $pdf->SetXY($x1, $y); + $pdf->Write(0, $this->convert($this->model->account->zipcode)." ".$this->convert($this->model->account->city)); + + $y += $nl; + $pdf->SetXY($x1, $y); + $pre = $this->model->account->country_id ? $this->convert($this->model->account->country->de)." " : ""; + $pdf->Write(0, $pre); + + if($this->model->m_sponsor){ + + $y += 48; + $pdf->SetXY($x1, $y); + $pdf->Write(0, $this->convert($this->model->user_sponsor->account->company)); + $pdf->SetXY($x2, $y); + $pdf->Write(0, $this->convert($this->model->user_sponsor->account->m_account)); + + $y += $nl; + $pdf->SetXY($x1, $y); + $pdf->Write(0, $this->convert($this->model->user_sponsor->account->m_first_name)." ".$this->convert($this->model->user_sponsor->account->m_last_name)); + + $website = $this->model->user_sponsor->shop()->count() ? $this->model->user_sponsor->shop->getSubdomain(false) : "www.mivita.care"; + + }else{ + $website = "www.mivita.care"; + } + + $pdf->AddPage('P', array(210, 297)); + $pdf->SetFont('Helvetica', '', 10); + $pdf->SetDrawColor(160, 160, 160); + $pdf->SetXY(52, 56); + $pdf->Write(0, $website); + + + $pdf->SetXY($x1, 65); + $pdf->Write(0, $this->convert($this->model->account->m_first_name)." ".$this->convert($this->model->account->m_last_name)); + $pdf->SetXY($x2, 65); + $pdf->Write(0, $this->convert($this->model->account->m_account)); + + $pdf->AddPage('P', array(210, 297)); + + + if(!Storage::disk($this->disk)->exists( $this->dir )){ + Storage::disk($this->disk)->makeDirectory($this->dir); //creates directory + } + $filename = "MIVITA_Beratervertrag.pdf"; + Storage::disk($this->disk)->put($this->dir.$filename, $pdf->Output('S')); + $size = Storage::disk($this->disk)->size($this->dir.$filename); + $mine = Storage::disk($this->disk)->getMimeType($this->dir.$filename); + + File::create([ + 'user_id' => $this->model->id, + 'identifier' => $this->identifier, + 'filename' => $filename, + 'dir' => $this->dir, + 'original_name' => $filename, + 'ext' => "pdf", + 'mine' => $mine, + 'size' => $size + ]); + + return true; + + } +} \ No newline at end of file diff --git a/app/Repositories/CustomerRepository.php b/app/Repositories/CustomerRepository.php new file mode 100644 index 0000000..f9f59d3 --- /dev/null +++ b/app/Repositories/CustomerRepository.php @@ -0,0 +1,71 @@ +model = $model; + } + + + + public function update($data) + { + + /*if($data['user_id'] === "new" || $data['user_id'] == 0){ + + $this->model = User::create([ + 'email' => $data['email'], + 'password' => env('APP_KEY'), + ]); + } + else{ + $this->model = $this->getById($data['user_id']); + } + + if(!$this->model->account_id){ + $account = new UserAccount(); + }else{ + $account = $this->model->account; + } + + $data['same_as_billing'] = !isset($data['same_as_billing']) ? 0 : 1; + + $account->fill($data)->save(); + + if(!$this->model->account_id){ + $this->model->account_id = $account->id; + $this->model->save(); + }*/ + + return true; + } + + public function create($data){ + + /* $this->model = User::create([ + 'email' => $data['email'], + 'password' => Hash::make($data['password']), + ]); + + $account = UserAccount::create([ + 'm_salutation' => $data['salutation'], + 'm_first_name' => $data['first_name'], + 'm_last_name' => $data['last_name'], + 'salutation' => $data['salutation'], + 'first_name' => $data['first_name'], + 'last_name' => $data['last_name'], + ]); + + $this->model->account_id = $account->id; + $this->model->save(); + + + return $this->model;*/ + } + + +} \ No newline at end of file diff --git a/app/Repositories/FileRepository.php b/app/Repositories/FileRepository.php new file mode 100644 index 0000000..e6a850d --- /dev/null +++ b/app/Repositories/FileRepository.php @@ -0,0 +1,135 @@ +model = $model; + + $this->rules = [ + 'file' => 'required|mimes:pdf,jpeg,png|max:32768' + ]; + $this->messages = [ + 'file.mimes' => 'Datei ist kein PDF Format', + 'file.required' => 'PDF-Datei wird benötigt' + ]; + } + + public function _set($name, $value){ + $this->{$name} = $value; + } + + public function uploadFile( $form_data ) + { + + $validator = Validator::make($form_data, $this->rules, $this->messages); + + if ($validator->fails()) { + return Response::json([ + 'error' => true, + 'message' => $validator->messages()->first(), + 'code' => 400 + ], 400); + } + $file = $form_data['file']; + + $originalName = $file->getClientOriginalName(); + $extension = $file->getClientOriginalExtension(); + $mine = $file->getClientMimeType(); + $size = $file->getSize(); + + + $originalNameWithoutExt = substr($originalName, 0, strlen($originalName) - strlen($extension) - 1); + $filename = Util::sanitize($originalNameWithoutExt, true, false, true); + $allowed_filename = uniqid() . '_' . $filename.".".$extension; + + //$dir = $this->model->getInvoiceStorageAttDir(); + + if(!Storage::disk($this->disk)->exists( $this->dir )){ + Storage::disk($this->disk)->makeDirectory($this->dir); //creates directory + } + Storage::disk($this->disk)->put($this->dir.$allowed_filename, file_get_contents($file->getRealPath())); + + File::create([ + 'user_id' => $this->user_id, + 'identifier' => $this->identifier, + 'filename' => $allowed_filename, + 'dir' => $this->dir, + 'original_name' => $originalName, + 'ext' => $extension, + 'mine' => $mine, + 'size' => $size + ]); + + return Response::json([ + 'error' => false, + 'filename' => $allowed_filename, + 'filedata' => 'pdf', + 'redirect' => route('wizard_register'), + 'code' => 200 + ], 200); + } + + /* public function createFile(Request $request) + { + $locale = \App::getLocale(); + $data = [ + 'step' => 2, + 'locale' => $locale, + ]; + $rules = array( + 'network_name' => 'required|max:255', + 'input_file_now' => 'required|mimes:png,pdf,jpg,jpeg|max:30000' + ); + $validator = Validator::make(Request::all(), $rules); + + if ($validator->fails()) { + // get the error messages from the validator + $messages = $validator->messages(); + // redirect our user back to the form with the errors from the validator + return view('user.register_complete', $data)->withErrors($validator); + + } else { + $user = \Auth::user(); + if(!$user->account->network_name){ + $file = request()->file('input_file_now'); + //$ext = $file->guessClientExtension(); + //$file->storeAs('user/' . $user->id .'/verification'); + $data = $file->store('user/' . $user->id .'/verification'); + $account = $user->account; + $account->network_name = Input::get('network_name'); + $account->network_verification = basename($data); + $account->save(); + + $user->role_id = 2; //set as User by default! + $user->save(); + + + } + + return redirect('complete_register'); + //return view('user.register_complete', $data); + } + }*/ + + +} \ No newline at end of file diff --git a/app/Repositories/ImportRepository.php b/app/Repositories/ImportRepository.php new file mode 100644 index 0000000..097ab75 --- /dev/null +++ b/app/Repositories/ImportRepository.php @@ -0,0 +1,156 @@ +fails()) { + + return Response::json([ + 'error' => true, + 'message' => $validator->messages()->first(), + 'code' => 400 + ], 400); + + } + $file = $form_data['file']; + + $originalName = $file->getClientOriginalName(); + $extension = $file->getClientOriginalExtension(); + $originalNameWithoutExt = substr($originalName, 0, strlen($originalName) - strlen($extension) - 1); + + $filename = $this->sanitize($originalNameWithoutExt); + $allowed_filename = $filename.".".$extension; + + Storage::disk('import')->put($allowed_filename, file_get_contents($file->getRealPath())); + + + return Response::json([ + 'error' => false, + 'filename' => $allowed_filename, + 'filedata' => 'xls', + 'redirect' => url(route('sysadmin_import_show', ['xls', $allowed_filename])), + 'code' => 200 + ], 200); + } + + public function read($type, $file, $skip, $limit) + { + + if(!Storage::disk('import')->has($file)){ + return false; + } + return $this->import(storage_path("app/import/").$file, $file, $skip, $limit); + + + } + + protected function import($file_path, $file, $skip, $limit){ + + $salutation = array(1 => 'mr', 2 => 'ms', 3=>null); + + $ret = [ + 'count' => 0, + 'not' => 0, + 'imported' => [], + 'has_imported' => [], + ]; + /* + * wp_order_number + wp_order_date + billing_company + billing_salutation + billing_firstname + billing_lastname + billing_address + billing_address_2 + billing_zipcode + billing_city + billing_country_code + billing_country + billing_email + billing_phone + shipping_salutation + shipping_company + shipping_firstname + shipping_lastname + shipping_address + shipping_address_2 + shipping_zipcode + shipping_city + shipping_country_code + shipping_country + */ + + + $rows = Excel::toArray(new \App\Imports\ImportCollection(), $file_path); + + foreach ($rows[0] as $row){ + $ret['count']++; + if(isset($row['billing_email'])){ + if(ShoppingUser::where('billing_email', '=', $row['billing_email'])->count() > 0){ + $ssuser = ShoppingUser::where('billing_email', '=', $row['billing_email'])->first(); + if($ssuser->member_id){ + $ret['has_imported'][] = $row['billing_email']." - ".$ssuser->member->email; + continue; + } + } + $row['billing_salutation'] = $salutation[$row['billing_salutation']]; + $row['billing_country_id'] = Country::getCountryIdByCodeOrOne($row['billing_country_code']); + $row['billing_phone'] = strlen($row['billing_phone']) <= 3 ? '' : $row['billing_phone']; + $row['same_as_billing'] = true; + if(isset($row['shipping_salutation']) && $row['shipping_salutation'] > 0){ + $row['shipping_salutation'] = $salutation[$row['shipping_salutation']]; + $row['shipping_country_id'] = Country::getCountryIdByCodeOrOne($row['shipping_country_code']); + $row['same_as_billing'] = false; + } + $row['member_id'] = 3; + $row['number'] = ShoppingUser::max('number') + 1; + $row['has_buyed'] = true; + $row['subscribed'] = false; + $ret['imported'][] = $row['billing_email']; + + ShoppingUser::create($row); + }else{ + $ret['not']++; + } + + } + return $ret; + } + + public function sanitize($string, $force_lowercase = true, $anal = false) + { + $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]", + "}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—", + "—", "–", ",", "<", ".", ">", "/", "?"); + $clean = trim(str_replace($strip, "", strip_tags($string))); + $clean = preg_replace('/\s+/', "-", $clean); + $clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ; + + return ($force_lowercase) ? + (function_exists('mb_strtolower')) ? + mb_strtolower($clean, 'UTF-8') : + strtolower($clean) : + $clean; + } + +} \ No newline at end of file diff --git a/app/Repositories/ProductRepository.php b/app/Repositories/ProductRepository.php new file mode 100644 index 0000000..432148b --- /dev/null +++ b/app/Repositories/ProductRepository.php @@ -0,0 +1,197 @@ +model = $model; + } + + + /** + * refresh. + */ + public function update($data) + { + + $data['active'] = isset($data['active']) ? 1 : 0; + $data['shipping_addon'] = isset($data['shipping_addon']) ? 1 : 0; + + + if($data['id'] === "new"){ + $this->model = Product::create($data); + } + else{ + $this->model = $this->getById($data['id']); + $this->model->fill($data); + $this->model->save(); + } + + $this->updateCategories(isset($data['categories']) ? $data['categories'] : array()); + $this->updateAttributes(isset($data['attributes']) ? $data['attributes'] : array()); + $this->updateIngredients(isset($data['product_ingredients']) ? $data['product_ingredients'] : array()); + $this->updateCountryPrices($data); + + + return $this->model; + } + + + public function updateIngredients($data = array()) + { + $ProductIngredient = $this->model->p_ingredients()->pluck('ingredient_id')->toArray(); + //set attr + if(is_array($data)){ + foreach ($data as $id) { + //not use + if(!in_array($id, $ProductIngredient)){ + ProductIngredient::create([ + 'product_id' => $this->model->id, + 'ingredient_id' => $id, + ]); + } + } + } + return true; + } + + public function updateCategories($data = array()) + { + foreach ($this->model->categories as $category) { + if(($pos = array_search($category->category_id, $data)) !== FALSE){ + unset($data[$pos]); + }else{ + $category->delete(); + } + } + //set attr + if(is_array($data)){ + foreach ($data as $id) { + ProductCategory::create([ + 'product_id' => $this->model->id, + 'category_id' => $id, + ]); + } + } + return true; + } + + public function updateAttributes($data = array()) + { + foreach ($this->model->attributes as $attribute) { + if(($pos = array_search($attribute->attribute_id, $data)) !== FALSE){ + unset($data[$pos]); + }else{ + $attribute->delete(); + } + } + //set attr + if(is_array($data)){ + foreach ($data as $id) { + ProductAttribute::create([ + 'product_id' => $this->model->id, + 'attribute_id' => $id, + ]); + } + } + return true; + } + + public function updateCountryPrices($data) + { + if(!isset($data['country_prices']) || !is_array($data['country_prices'])){ + return false; + } + foreach ($data['country_prices'] as $k => $country_id) { + $cp = CountryPrice::updateOrCreate([ + 'country_id' => $country_id, + 'product_id' => $this->model->id, + ], + [ + 'c_price' => isset($data['c_price'][$country_id]) ? reFormatNumber($data['c_price'][$country_id]) : null, + 'c_tax' => isset($data['c_tax'][$country_id]) ? reFormatNumber($data['c_tax'][$country_id]) : null, + 'c_price_old' => isset($data['c_price_old'][$country_id]) ? reFormatNumber($data['c_price_old'][$country_id]) : null, + 'c_currency' => isset($data['c_currency'][$country_id]) ? reFormatNumber($data['c_currency'][$country_id]) : null, + ]); + + } + + + + return true; + } + + + public function copy($model) + { + $this->model = $model->replicate(); + $this->model->name = "Kopie: ".$this->model->name; + $this->model->wp_number = null; + $this->model->save(); + + //categories + foreach ($model->categories as $category){ + ProductCategory::create([ + 'product_id' => $this->model->id, + 'category_id' => $category->category_id, + ]); + } + + //attributes + foreach ($model->attributes as $attribute){ + ProductAttribute::create([ + 'product_id' => $this->model->id, + 'attribute_id' => $attribute->attribute_id, + ]); + } + + //images + foreach ($model->images as $image){ + $name = \App\Services\Slim::sanitizeFileName($image->original_name); + $name = uniqid() . '_' . $name; + + //copy + $data = \Storage::disk('public')->copy( + 'images/product/'.$image->product_id.'/'.$image->filename, + 'images/product/'.$this->model->id.'/'.$name + ); + + + ProductImage::create([ + 'product_id' => $this->model->id, + 'filename' => $name, + 'original_name' => $image->original_name, + 'ext' => $image->ext, + 'mine' => $image->mine, + 'size' => $image->size + ]); + } + + + return $this->model; + } + + + + + + + public function delete() + { + + } + + +} \ No newline at end of file diff --git a/app/Repositories/UserRepository.php b/app/Repositories/UserRepository.php new file mode 100644 index 0000000..32c873c --- /dev/null +++ b/app/Repositories/UserRepository.php @@ -0,0 +1,107 @@ +model = $model; + } + + + + public function update($data) + { + + if($data['user_id'] === "new" || $data['user_id'] == 0){ + + $this->model = User::create([ + 'email' => $data['email'], + 'password' => env('APP_KEY'), + ]); + $this->model->payment_methods = PaymentMethod::getDefaultAsArray(); + $this->model->save(); + + + } + else{ + $this->model = $this->getById($data['user_id']); + } + + if(!$this->model->account_id){ + $account = new UserAccount(); + }else{ + $account = $this->model->account; + } + + $data['same_as_billing'] = !isset($data['same_as_billing']) ? 0 : 1; + + $account->fill($data)->save(); + + if(!$this->model->account_id){ + $this->model->account_id = $account->id; + $this->model->save(); + } + + return true; + } + + public function create($data){ + + $this->model = User::create([ + 'email' => $data['email'], + 'password' => Hash::make($data['password']), + ]); + + $account = UserAccount::create([ + 'm_salutation' => $data['salutation'], + 'm_first_name' => $data['first_name'], + 'm_last_name' => $data['last_name'], + 'salutation' => $data['salutation'], + 'first_name' => $data['first_name'], + 'last_name' => $data['last_name'], + 'data_protection' => now(), + ]); + + $this->model->account_id = $account->id; + $this->model->payment_methods = PaymentMethod::getDefaultAsArray(); + $this->model->save(); + + + return $this->model; + } + + public function deleteUser(User $user) + { + if($user->account){ + $user->account->delete(); + } + $user->email = "delete".time(); + $user->password = "delete".time(); + $user->confirmed = 0; + $user->confirmation_code = "delete".time(); + $user->confirmation_date = null; + $user->confirmation_code_to = null; + $user->confirmation_code_remider = 2; + $user->agreement = null; + $user->active = 0; + $user->remember_token = ''; + $user->active_date = null; + $user->admin = 0; + $user->deleted_at = now(); + $user->save(); + + return true; + } + + +} \ No newline at end of file diff --git a/app/Services/CustomerPriority.php b/app/Services/CustomerPriority.php new file mode 100644 index 0000000..d042a8e --- /dev/null +++ b/app/Services/CustomerPriority.php @@ -0,0 +1,279 @@ +where('number', '=', NULL)->orderBy('created_at', 'ASC')->get(); + foreach ($shopping_users as $shopping_user){ + if($shopping_user->shopping_order && $shopping_user->shopping_order->user_shop){ + self::checkOne($shopping_user); + } + } + return $shopping_users; + } + + public static function checkOne($shopping_user, $mail=false, $newCustomer = true){ + //look for entry + if(self::entryExists($shopping_user)){ + return 'exists'; + } + if(self::entryLike($shopping_user)){ + if($mail){ //send mail + Mail::to(config('app.info_mail'))->send(new MailInfo($shopping_user, 'check_is_like_customer')); + } + return 'like'; + } + if($newCustomer){ + self::newCustomer($shopping_user); + } + return 'new'; + + } + + public static function setIsLike($shopping_user, $set_like_shopping_user, $send_member_mail, $change_shopping_user=false) + { + if ($shopping_user->id === $set_like_shopping_user->id) { + //set new customer for shopping_user + if($change_shopping_user){ + self::newCustomerNumber($shopping_user); + $send_member_mail = false; + }else{ + self::newCustomer($shopping_user); + } + } else { + //set existing customer for shopping_user + self::existingCustomer($shopping_user, $set_like_shopping_user); + } + self::clearIsLike($shopping_user); + //SEND MAIL TO MEMBER + if ($send_member_mail){ + if ($shopping_user->shopping_order && $shopping_user->shopping_order->shopping_payments) { + Mail::to($shopping_user->member->email)->send(new MailCheckout($shopping_user->shopping_order->txaction, $shopping_user->shopping_order, $shopping_user->shopping_order->shopping_payments->last(), false, $shopping_user->shopping_order->mode)); + } + } + return true; + } + + public static function newMemberForOrder($shopping_order, $member_id, Bool $all = false){ + if($all){ + if($shopping_order->shopping_user && $shopping_order->shopping_user->number){ + $shopping_users = ShoppingUser::where('number', '=', $shopping_order->shopping_user->number)->get(); + $new_number = self::nextNumber(); + foreach ($shopping_users as $shopping_user) { + self::changeCustomer($shopping_user, $member_id, $new_number); + } + } + }else{ + $shopping_order->member_id = $member_id; + $shopping_order->save(); + if($shopping_order->shopping_user){ + $shopping_order->shopping_user->member_id = $member_id; + $shopping_order->shopping_user->number = self::nextNumber(); + $shopping_order->shopping_user->save(); + } + } + } + + public static function newMemberForCustomer($shopping_user, $member_id, Bool $all = false){ + if($all){ + if($shopping_user && $shopping_user->number){ + $shopping_users = ShoppingUser::where('number', '=', $shopping_user->number)->get(); + $new_number = self::nextNumber(); + foreach ($shopping_users as $s_user) { + self::changeCustomer($s_user, $member_id, $new_number); + } + } + }else{ + $shopping_user->member_id = $member_id; + $shopping_user->number = self::nextNumber(); + $shopping_user->save(); + if($shopping_user->shopping_order){ + $shopping_user->shopping_order->member_id = $member_id; + $shopping_user->shopping_order->save(); + } + } + } + + public static function checkChangeOne($shopping_user, $data, $mail=false){ + + $matches = []; + $change = []; + $ret = 'update'; + //email geändert + if(isset($data['billing_email']) && $shopping_user->billing_email != $data['billing_email']){ + $found = ShoppingUser::where('auth_user_id', '=', NULL) + ->where('number', '!=', NULL) //has number + ->where('id', '!=', $shopping_user->id) + ->where('billing_email', '=', $data['billing_email']) + ->get()->pluck('number', 'id')->unique()->toArray(); + if($found && count($found)){ + foreach ($found as $key=>$val){ + $matches[$key] = $val; + } + $ret = 'exists'; + $change['billing_email'] = $data['billing_email']; + } + } + //Anschrift geändert + if(isset($data['billing_lastname']) && isset($data['billing_zipcode']) && ($shopping_user->billing_lastname != $data['billing_lastname'] || $shopping_user->billing_zipcode != $data['billing_zipcode'])){ + $found = ShoppingUser::select('*') + ->where('auth_user_id', '=', NULL) + ->where('number', '!=', NULL) //has number + ->where('id', '!=', $shopping_user->id) + ->where('billing_lastname', '=', $data['billing_lastname']) + ->where('billing_zipcode', '=', $data['billing_zipcode']) + ->get()->pluck('number', 'id')->unique()->toArray(); + if($found && count($found)){ + foreach ($found as $key=>$val){ + $matches[$key] = $val; + } + $ret = 'like'; + $change['billing_lastname'] = $data['billing_lastname']; + $change['billing_zipcode'] = $data['billing_zipcode']; + } + } + if($matches){ + $shopping_user->is_like = true; + $shopping_user->setNotice(self::$user_notice_key, $matches); + $shopping_user->save(); + } + //look for entry + if($matches && $mail){ //send mail + Mail::to(config('app.info_mail'))->send(new MailInfo($shopping_user, 'change_is_like_customer', $change)); + } + + return $ret; + + } + + public static function checkNewOne($shopping_user, $mail=false){ + + if(self::entryLike($shopping_user)){ + if($mail){ //send mail + Mail::to(config('app.info_mail'))->send(new MailInfo($shopping_user, 'check_is_like_customer')); + } + //return 'like'; + } + $shopping_user->number = self::nextNumber(); + $shopping_user->save(); + return true; + } + + private static function entryExists($shopping_user){ + //check same email + $matches = ShoppingUser::where('auth_user_id', '=', NULL) + ->where('number', '!=', NULL) //has number + ->where('id', '!=', $shopping_user->id) + ->where('billing_email', '=', $shopping_user->billing_email)->get(); + + if($matches && count($matches)){ + $match = $matches->last(); + $shopping_user->member_id = $match->member_id; + $shopping_user->number = $match->number; + $shopping_user->save(); + //has order + if($shopping_user->shopping_order){ + $shopping_user->shopping_order->member_id = $match->member_id; + $shopping_user->shopping_order->save(); + } + return true; + } + return false; + } + + private static function entryLike($shopping_user){ + //check same last name und PLZ + $matches = ShoppingUser::select('*') + ->where('auth_user_id', '=', NULL) + ->where('number', '!=', NULL) //has number + ->where('id', '!=', $shopping_user->id) + ->where('billing_lastname', '=', $shopping_user->billing_lastname) + ->where('billing_zipcode', '=', $shopping_user->billing_zipcode) + ->get()->pluck('number', 'id')->unique()->toArray(); + if($matches && count($matches)){ + $shopping_user->is_like = true; + $shopping_user->setNotice(self::$user_notice_key, $matches); + $shopping_user->save(); + return true; + } + return false; + } + + private static function newCustomer($shopping_user){ + if($shopping_user->shopping_order && $shopping_user->shopping_order->user_shop) { + $member_id = $shopping_user->shopping_order->user_shop->user_id; + $shopping_user->member_id = $member_id; + $shopping_user->number = self::nextNumber(); + $shopping_user->save(); + $shopping_user->shopping_order->member_id = $member_id; + $shopping_user->shopping_order->save(); + } + } + + private static function newCustomerNumber($shopping_user) + { + \App\Services\Shop::newUserOrder($shopping_user->number); + $shopping_user->number = self::nextNumber(); + $shopping_user->save(); + \App\Services\Shop::newUserOrder($shopping_user->number); + + } + + private static function changeCustomer($shopping_user, $member_id, $number){ + $old_number = $shopping_user->number; + $shopping_user->member_id = $member_id; + $shopping_user->number = $number; + $shopping_user->save(); + if($shopping_user->shopping_order) { + $shopping_user->shopping_order->member_id = $member_id; + $shopping_user->shopping_order->save(); + } + \App\Services\Shop::newUserOrder($old_number); + \App\Services\Shop::newUserOrder($number); + } + + private static function existingCustomer($shopping_user, $set_like_shopping_user){ + $old_number = $shopping_user->number; + $shopping_user->member_id = $set_like_shopping_user->member_id; + $shopping_user->number = $set_like_shopping_user->number; + $shopping_user->save(); + if($shopping_user->shopping_order) { + $shopping_user->shopping_order->member_id = $set_like_shopping_user->member_id; + $shopping_user->shopping_order->save(); + } + \App\Services\Shop::newUserOrder($old_number); + \App\Services\Shop::newUserOrder($set_like_shopping_user->number); + } + + private static function clearIsLike($shopping_user){ + $shopping_user->is_like = false; + $shopping_user->removeNotice(self::$user_notice_key); + $shopping_user->save(); + + } + + private static function nextNumber (){ + if(!$number = ShoppingUser::max('number')){ + $number = self::$start_number; + } + return $number+1; + } + +} diff --git a/app/Services/Facade/Yard.php b/app/Services/Facade/Yard.php new file mode 100644 index 0000000..3fa51f3 --- /dev/null +++ b/app/Services/Facade/Yard.php @@ -0,0 +1,19 @@ + 'Januar', + 2 => 'Februar', + 3 => 'März', + 4 => 'April', + 5 => 'Mai', + 6 => 'Juni', + 7 => 'Juli', + 8 => 'August', + 9 => 'September', + 10 => 'Oktober', + 11 => 'November', + 12 => 'Dezember', + ]; + + + private static $roles = [ + 0 => 'Kunde', + 1 => 'Admin', + 2 => 'SuperAdmin', + 3 => 'SySAdmin', + ]; + + + public static function getMonth($i){ + return self::$months[intval($i)]; + } + + public static function getRoleLabel($role_id = 0){ + return ''.self::$roles[$role_id].''; + } + + public static function getLabel($id){ + switch ($id) { + case 0: + return 'badge-default'; + break; + case 1: + return 'badge-warning'; + break; + case 2: + return 'badge-primary'; + break; + case 3: + return 'badge-primary'; + break; + } + + } + + public static function getRolesOptions(){ + $ret = ""; + foreach (self::$roles as $role_id => $value){ + $ret .= '\n'; + } + return $ret; + } + + public static function getYearSelectOptions(){ + $start = date("Y", strtotime("-5 years", time())); + $end = date("Y", strtotime("+1 years", time())); + $values = range($start, $end); + $now = date("Y", time()); + $ret = ""; + foreach ($values as $value){ + $attr = ($value == $now) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getAttributesWithoutParents($id = false, $sameId = false, $all = true){ + $values = Attribute::where('parent_id', null)->get(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + if($sameId == $value->id){ + continue; + } + $attr = ($value->id == $id) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getCategoriesWithoutParents($id = false, $sameId = false, $all = true){ + $values = Category::where('parent_id', null)->get(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + if($sameId == $value->id){ + continue; + } + $attr = ($value->id == $id) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getProductsOptions($ids = array(), $all = true){ + if($ids == null){ + $ids = array(); + } + $values = Product::where('active', 1)->get(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + $attr = in_array($value->id, $ids) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getCategoriesOptions($ids = array(), $all = true){ + $values = Category::where('active', 1)->get(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + $attr = in_array($value->id, $ids) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getProductIngredientsOptions($has_ids = array(), $all = true){ + $values = Ingredient::where('active', 1)->get(); + $ret = ""; + $attr = ""; + foreach ($values as $value){ + if(!in_array($value->id, $has_ids)){ + $ret .= '\n'; + } + } + return $ret; + } + + public static function getAttributesOptions($ids = array(), $all = true){ + $values = Attribute::where('active', 1)->get(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + $attr = in_array($value->id, $ids) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getUserLevelOptions($id = false, $all = true){ + $values = UserLevel::where('active', 1)->get(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + $attr = ($value->id == $id) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + + public static function getCompanyOptions($company){ + $options = array(1 => __('business'), 0 => __('private'), ); + $ret = ""; + foreach ($options as $id => $value){ + $attr = ($id == $company) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getContriesWithMore($id, $all=true){# + $values = Country::all(); + $counter = 1; + $ret = ""; + if($all){ + $ret .= '\n'; + + } + foreach ($values as $value){ + if( $counter == 7){ + $ret .= ''; + } + $attr = ($value->id == $id) ? 'selected="selected"' : ''; + $ret .= '\n'; + + $counter ++; + } + $ret .= ''; + return $ret; + } + + public static function getContriesCodes($id, $all=true){# + $values = Country::all(); + $counter = 1; + $ret = ""; + if($all){ + $ret .= '\n'; + + } + foreach ($values as $value){ + + if(!$value->phone) continue; + if( $counter == 7){ + $ret .= ''; + } + $attr = ($value->id == $id) ? 'selected="selected"' : ''; + $ret .= '\n'; + + $counter ++; + } + $ret .= ''; + return $ret; + } + + public static function getCountriesWithoutUsedShippings($all=true){# + $values = Country::all(); + $country_ids = ShippingCountry::all()->pluck('country_id')->toArray(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + if(!in_array($value->id, $country_ids)){ + $ret .= '\n'; + } + } + return $ret; + } + + public static function getCountryNameFormShipping($id){ + $value = ShippingCountry::find($id); + if($value){ + return $value->country->getLocated(); + } + return "not defined"; + } + + public static function getCountriesForShipping($id, $all=false){# + $values = ShippingCountry::all(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + $attr = ($value->id == $id) ? 'selected="selected"' : ''; + $ret .= '\n'; + + } + return $ret; + } + + public static function getSalutation($id){ + $values = array('mr' => __('MR'), 'ms' => __('MS')); + $ret = ""; + $ret .= '\n'; + foreach ($values as $key => $value){ + $attr = ($key == $id) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getSalutationLang($id){ + $values = array('mr' => __('MR'), 'ms' => __('MS')); + return (!empty($values[$id]) ? $values[$id] : ''); + } + + public static function getTaxSaleOptions($id){ + $values = array('1' => __('taxable_sales_1'), '2' => __('taxable_sales_2')); + $ret = ""; + $ret .= '\n'; + foreach ($values as $key => $value){ + $attr = ($key == $id) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + } + + public static function getMembersOptions($id, $all=false){ + $values = User::where('active', '=', true)->where('blocked', '=', false)->where('payment_account', '>=', now())->get(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + $attr = ($value->id == $id) ? 'selected="selected"' : ''; + $to=""; + if($value->account){ + $to = $value->account->first_name." ".$value->account->last_name." | "; + } + $ret .= '\n'; + + } + return $ret; + } + + public static function getUserCustomerOptions($id, $all=false){ + $values = ShoppingUser::select(['id', 'billing_firstname', 'billing_lastname', 'billing_email', 'number']) + ->where('shopping_users.member_id', '=', \Auth::user()->id)->get(); + $ret = ""; + if($all){ + $ret .= '\n'; + } + foreach ($values as $value){ + dump($value); + $attr = ($value->id == $id) ? 'selected="selected"' : ''; + $to = $value->billing_firstname." ".$value->billing_lastname." | ".$value->billing_email; + $ret .= '\n'; + + } + return $ret; + } + + public static function getOptionRange($select, $from=1, $to=50){ + $values = range($from, $to); + $ret = ""; + foreach ($values as $value){ + $attr = ($value == $select) ? 'selected="selected"' : ''; + $ret .= '\n'; + } + return $ret; + + } +} \ No newline at end of file diff --git a/app/Services/HomepartyCart.php b/app/Services/HomepartyCart.php new file mode 100644 index 0000000..1adb5c7 --- /dev/null +++ b/app/Services/HomepartyCart.php @@ -0,0 +1,369 @@ + 15, + 300 => 20, + 400 => 30, + 500 => 35, + 600 => 40, + 700 => 50, + ]; + public static function calculateHomeparty(Homeparty $homeparty){ + + self::$homeparty = $homeparty; + foreach ($homeparty->homeparty_users as $homeparty_user){ + if($homeparty_user->is_host){ + self::$user_host_id = $homeparty_user->id; + } + self::$userCarts[$homeparty_user->id] = new HomepartyUserCart($homeparty_user); + self::addCart(self::$userCarts[$homeparty_user->id]); + + } + self::caluclateShipping(); + self::caluclateBonus(); + self::calculateBonusHost(); + } + + public static function addCart(HomepartyUserCart $homepartyUserCart){ + self::$points += $homepartyUserCart->points; + self::$price += $homepartyUserCart->price; + self::$price_net += $homepartyUserCart->price_net; + self::$ek_price += $homepartyUserCart->ek_price; + self::$income_price += $homepartyUserCart->income_price; + } + + public static function getUserCart($id){ + return isset(self::$userCarts[$id]) ? self::$userCarts[$id] : null; + } + + + private static function caluclateBonus(){ + + if(self::$price >= 200){ + self::$is_bonus = true; + $proportional_voucher = Product::whereIdentifier('proportional_voucher')->first(); + self::$voucher_price = $proportional_voucher->price; + self::$voucher_name = $proportional_voucher->getLang('name'); + + self::$price += self::$voucher_price; + self::$price_net += $proportional_voucher->getPriceWith(true, false); + + $bonus_tmp = self::$price - self::$bonus_value; + + //look up for coupon in table + foreach (self::$bonusTable as $val=>$coupon){ + if($bonus_tmp >= $val){ + self::$is_bonus_coupon = true; + self::$bonus_coupon = $coupon; + }else{ + if(self::$bonus_coupon_fault === 0){ + self::$bonus_coupon_fault = $val - $bonus_tmp; + self::$bonus_coupon_next_step = $val; + self::$bonus_coupon_next_value = $coupon; + } + } + } + $keys = array_keys(self::$bonusTable); + $step = $keys[count($keys)-1]; + if($bonus_tmp > $step){ + self::$bonus_coupon_next_step = $step; + self::$bonus_coupon_next_value =self::$bonusTable[$step]; + } + + }else{ + self::$bonus_diff = 200 - self::$price; + } + + } + + private static function calculateBonusHost(){ + if(self::$is_bonus){ + $bonus_total = self::$bonus_value + self::$bonus_coupon; + $user_cart = self::getUserCart(self::$user_host_id); + //cart lower the bonus + if($user_cart->price <= $bonus_total){ + self::$bonus_points_diff = $user_cart->points; + $user_cart->points = 0; + $user_cart->price = 0; + return; + } + + $bonus_percent = (100/$user_cart->price*$bonus_total); + self::$bonus_points_diff = round($user_cart->points/100*$bonus_percent); + $user_cart->points -= self::$bonus_points_diff; + + $user_cart->price -= $bonus_total; + $user_cart->price_net -= ($bonus_total / config('app.main_tax')); + self::$price -= $bonus_total; + self::$price_net -= ($bonus_total / config('app.main_tax')); + + + + } + } + + private static function caluclateShipping(){ + + //weight to the orders + //first host + $host_user_cart = self::getUserCart(self::$user_host_id); + $host_user_cart->shipping_weight = $host_user_cart->weight; + + foreach (self::$homeparty->homeparty_users as $homeparty_user){ + if(!$homeparty_user->is_host){ + $user_cart = self::$userCarts[$homeparty_user->id]; + if($homeparty_user->getDelivery() === 'direct'){ + $user_cart->shipping_weight += $user_cart->weight; + }else{ + $host_user_cart->shipping_weight += $user_cart->weight; + } + } + } + + self::calculateShippingPrice(); + + } + + private static function calculateShippingPrice(){ + + foreach (self::$homeparty->homeparty_users as $homeparty_user) { + $shipping = $homeparty_user->getShipping(); + $user_cart = self::$userCarts[$homeparty_user->id]; + if(!$shipping){ + return; + } + if($user_cart->shipping_weight === 0){ + $shipping_price = $shipping->shipping_prices->first(); + $shipping_price->price = 0; + $shipping_price->shipping_price_net = 0; + }else{ + //sec by weight + $shipping_price = self::shippingPriceByWeight($shipping->shipping_prices, $user_cart->shipping_weight); + + //default + if(!$shipping_price){ + $shipping_price = $shipping->shipping_prices->first(); + } + } + + if($shipping_price){ + $price = $shipping_price->price; + $user_cart->shipping_price = $price; + $user_cart->shipping_tax_rate = $shipping_price->tax_rate; + $user_cart->shipping_price_net = round($price / ((100+$shipping_price->tax_rate) / 100), 2); + $user_cart->shipping_tax = round($price / (100+$shipping_price->tax_rate) * 100, 2); + } + + //on the end, add prices for porto + $user_cart->price += $user_cart->shipping_price; + $user_cart->price_net += $user_cart->shipping_price_net; + self::$price += $user_cart->shipping_price; + self::$price_net += $user_cart->shipping_price_net; + + self::$shipping_total += $user_cart->shipping_price; + self::$shipping_net_total += $user_cart->shipping_price_net; + + } + } + + private static function shippingPriceByWeight($prices, $weight){ + foreach ($prices as $price){ + if($price->weight_from > 0 && $price->weight_to > 0){ + if($weight >= $price->weight_from && $weight <= $price->weight_to){ + return $price; + } + } + } + return false; + } + + + public static function store($identifier, $date){ + + $data = [ + 'date' => $date, + 'identifier' => $identifier, + 'points' => self::$points, + 'price' => round(self::$price, 2), + 'price_net' => round(self::$price_net, 2), + 'ek_price' => round(self::$ek_price, 2), + 'income_price' => round(self::$income_price, 2), + 'user_host_id' => self::$user_host_id, + 'is_bonus' => self::$is_bonus, + 'is_bonus_coupon' => self::$is_bonus_coupon, + 'bonus_value' => self::$bonus_value, + 'bonus_coupon' => self::$bonus_coupon, + 'bonus_total' => self::$bonus_value + self::$bonus_coupon, + 'shipping_price' => self::$shipping_total, + 'shipping_price_net' => self::$shipping_net_total, + 'bonus_points_diff' => self::$bonus_points_diff, + 'voucher_price' => self::$voucher_price, + 'voucher_name' => self::$voucher_name, + ]; + $user_data = []; + foreach (self::$homeparty->homeparty_users as $homeparty_user){ + + $user_cart = self::$userCarts[$homeparty_user->id]; + $user_data[$homeparty_user->id] = [ + 'is_host' => $homeparty_user->is_host, + 'points' => $user_cart->points, + 'price' => round($user_cart->price, 2), + 'price_net' => round($user_cart->price_net, 2), + 'ek_price' => round($user_cart->ek_price, 2), + 'income_price' => round($user_cart->income_price, 2), + 'weight' => $user_cart->weight, + 'shipping_weight' => $user_cart->shipping_weight, + 'shipping_price' => round($user_cart->shipping_price, 2), + 'shipping_tax_rate' => round($user_cart->shipping_tax_rate, 2), + 'shipping_price_net' => round($user_cart->shipping_price_net, 2), + 'shipping_tax' => $user_cart->shipping_tax, + ]; + } + $data['user_carts'] = $user_data; + self::$homeparty->order = $data; + self::$homeparty->save(); + + } + + public static function getUserCartHost(){ + return self::getUserCart(self::$user_host_id); + } + + public static function getFormattedPoints() + { + return formatNumber(self::$points, 0); + } + + public static function getFormattedPrice() + { + return formatNumber(self::$price); + } + + public static function getFormattedPriceNet() + { + return formatNumber(self::$price_net); + } + + public static function getFormattedEkPrice() + { + return formatNumber(self::$ek_price); + } + + public static function getFormattedIncomePrice() + { + return formatNumber(self::$income_price); + } + + public static function getFormattedPriceTax(){ + return formatNumber(self::$price - self::$price_net); + } + public static function getFormattedBonusPrice() + { + return formatNumber(self::$voucher_price); + } + public static function getFormattedBonusStart(){ + return formatNumber(self::$bonus_start); + } + public static function getFormattedBonusValue(){ + return formatNumber(self::$bonus_value); + } + + public static function getFormattedBonusDiff(){ + return formatNumber(self::$bonus_diff); + } + + public static function getFormattedBonusCoupon(){ + return formatNumber(self::$bonus_coupon); + } + + public static function getFormattedBonusCouponFault(){ + return formatNumber(self::$bonus_coupon_fault); + } + + public static function getFormattedBonusCouponNextStep(){ + return formatNumber(self::$bonus_coupon_next_step); + } + public static function getFormattedBonusCouponNextValue(){ + return formatNumber(self::$bonus_coupon_next_value); + } + + public static function getFormattedBonusTotal(){ + if(self::$is_bonus){ + return formatNumber(self::$bonus_value + self::$bonus_coupon); + } + return formatNumber(0); + } + + public static function getFormattedBonusPointsDiff(){ + return formatNumber( self::$bonus_points_diff, 0 ); + + } + + protected function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator) + { + if(is_null($decimals)){ + $decimals = is_null(config('cart.format.decimals')) ? 2 : config('cart.format.decimals'); + } + if(is_null($decimalPoint)){ + $decimalPoint = is_null(config('cart.format.decimal_point')) ? '.' : config('cart.format.decimal_point'); + } + if(is_null($thousandSeperator)){ + $thousandSeperator = is_null(config('cart.format.thousand_seperator')) ? ',' : config('cart.format.thousand_seperator'); + } + + return number_format($value, $decimals, $decimalPoint, $thousandSeperator); + } +} \ No newline at end of file diff --git a/app/Services/HomepartyUserCart.php b/app/Services/HomepartyUserCart.php new file mode 100644 index 0000000..659fb09 --- /dev/null +++ b/app/Services/HomepartyUserCart.php @@ -0,0 +1,123 @@ +homepartyUser = $homepartyUser; + //is all total + $this->points = 0; + $this->price = 0; + $this->price_net = 0; + $this->ek_price = 0; + $this->income_price = 0; + $this->weight = 0; + $this->shipping_weight = 0; + $this->shipping_price = 0; + $this->shipping_tax_rate = 0; + $this->shipping_price_net = 0; + $this->shipping_tax = 0; + $this->calculateUserCart(); + } + + public function calculateUserCart(){ + + foreach ($this->homepartyUser->homeparty_user_order_items as $order_item) { + $this->points += $order_item->getTotalPoints(); + $this->price += $order_item->getTotalPrice(); + $this->price_net += $order_item->geTotalPriceNet(); + $this->ek_price += $order_item->geTotalEKPrice(); + $this->income_price += $order_item->geTotalIncomePrice(); + $this->weight += ($order_item->product->weight * $order_item->qty); + } + } + + + public function getFormattedPoints() + { + return formatNumber($this->points, 0); + } + + public function getFormattedPrice() + { + return formatNumber($this->price); + } + + public function getFormattedPriceNet() + { + return formatNumber($this->price_net); + } + + public function getFormattedEkPrice() + { + return formatNumber($this->ek_price); + } + + public function getFormattedIncomePrice() + { + return formatNumber($this->income_price); + } + + public function getFormattedShippingPrice() + { + return formatNumber($this->shipping_price); + } + + protected function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator) + { + if(is_null($decimals)){ + $decimals = is_null(config('cart.format.decimals')) ? 2 : config('cart.format.decimals'); + } + if(is_null($decimalPoint)){ + $decimalPoint = is_null(config('cart.format.decimal_point')) ? '.' : config('cart.format.decimal_point'); + } + if(is_null($thousandSeperator)){ + $thousandSeperator = is_null(config('cart.format.thousand_seperator')) ? ',' : config('cart.format.thousand_seperator'); + } + + return number_format($value, $decimals, $decimalPoint, $thousandSeperator); + } +} \ No newline at end of file diff --git a/app/Services/Payment.php b/app/Services/Payment.php new file mode 100644 index 0000000..dd0feac --- /dev/null +++ b/app/Services/Payment.php @@ -0,0 +1,151 @@ + "bezahlt", + 'appointed' => "offen", + 'failed' => "abbruch", + 'extern' => "extern", + 'invoice_open' => "Re. offen", + 'invoice_paid' => "Re. bezahlt", + 'invoice_non' => "keine Zahlung", + 'NULL' => 'keine Zahlung', + ]; + + public static $txaction_invoice = [ + 'invoice_open' => "Re. offen", + 'invoice_paid' => "Re. bezahlt", + 'invoice_non' => 'keine Zahlung', + ]; + + public static $txaction_color = [ + 'paid' => "success", + 'appointed' => "warning", + 'failed' => "danger", + 'extern' => "success", + 'invoice_open' => "warning", + 'invoice_paid' => "success", + 'invoice_non' => "failed", + ]; + + + public static function getFormattedTxaction($txaction){ + if($txaction && isset(self::$txaction_text[$txaction])){ + return self::$txaction_text[$txaction]; + } + return self::$txaction_text['NULL']; + } + + public static function getFormattedTxactionColor($txaction){ + if($txaction && isset(self::$txaction_color[$txaction])){ + return self::$txaction_color[$txaction]; + } + return "warning"; + } + + public static function getShoppingOrderBadge(ShoppingOrder $shopping_order){ + if($shopping_order->mode === 'test'){ + return ''.strtoupper($shopping_order->mode).' - '.self::getFormattedTxaction($shopping_order->txaction).''; + } + if($shopping_order->mode === 'dev'){ + return ''.strtoupper($shopping_order->mode).' - '.self::getFormattedTxaction($shopping_order->txaction).''; + } + return ''.self::getFormattedTxaction($shopping_order->txaction).''; + } + + public static function getShoppingPaymentBadge(ShoppingPayment $shopping_payment){ + if($shopping_payment->mode === 'test'){ + return ''.strtoupper($shopping_payment->mode).' - '.self::getFormattedTxaction($shopping_payment->txaction).''; + } + return ''.self::getFormattedTxaction($shopping_payment->txaction).''; + } + + + /* public static function paymentStatusPaidAction(ShoppingOrder $shopping_order, $paid){ + $send_link = false; + $shopping_order->setUserHistoryValue(['status' => 8]); + Shop::userOrders(); + $shopping_order->paid = $paid; + $shopping_order->save(); + + //if product has actions + if($shopping_order->shopping_order_items && $shopping_order->auth_user_id){ + foreach($shopping_order->shopping_order_items as $shopping_order_item){ + if($shopping_order_item->product){ + if($shopping_order_item->product->action){ + $user = User::findOrFail($shopping_order->auth_user_id); + $user->save(); + $send_link = true; + //new date + $date = \Carbon::now()->modify('1 year'); + if($user->payment_account && $user->daysActiveAccount()>0){ + $date = \Carbon::parse($user->payment_account)->modify('1 year'); + } + foreach ($shopping_order_item->product->action as $do){ + if($shopping_order_item->product->getActionName($do) === 'payment_for_account'){ + $user->payment_order_id = $shopping_order_item->product->id; //34 + $user->payment_account = $date; + $user->wizard = 100; + $shopping_order->setUserHistoryValue(['status' => 9]); + } + if($shopping_order_item->product->getActionName($do) === 'payment_for_shop'){ + $user->payment_order_id = $shopping_order_item->product->id; //35 + $user->payment_shop = $date; + $user->wizard = 100; + $shopping_order->setUserHistoryValue(['status' => 9]); + } + if($shopping_order_item->product->getActionName($do) === 'payment_for_shop_upgrade'){ + if($shopping_order_item->product->upgrade_to_id){ + $user->payment_order_id = $shopping_order_item->product->upgrade_to_id; + } + $user->payment_shop = $user->payment_account; //same Date, is upgrade + $shopping_order->setUserHistoryValue(['status' => 9]); + } + if($shopping_order_item->product->getActionName($do) === 'payment_for_lead_upgrade'){ + if($shopping_order_item->product->upgrade_to_id){ + $user->m_level = $shopping_order_item->product->upgrade_to_id; + } + } + $user->save(); + } + } + } + + } + } + + return $send_link; + }*/ + + public static function paymentStatusSendMail(ShoppingOrder $shopping_order, $shopping_payment, $data){ + $bcc = []; + $billing_email = $shopping_order->shopping_user->billing_email; + if(!$billing_email){ + if($data['mode'] === 'test'){ + $billing_email = config('app.checkout_test_mail'); + }else{ + $billing_email = config('app.checkout_mail'); + } + } + if($data['mode'] === 'test'){ + $bcc[] = config('app.checkout_test_mail'); + }else{ + $bcc[] = config('app.checkout_mail'); + } + + if(!$shopping_order->shopping_user->is_like && $shopping_order->shopping_user->member){ + $bcc[] = $shopping_order->shopping_user->member->email; + } + Mail::to($billing_email)->bcc($bcc)->send(new MailCheckout($data['txaction'], $shopping_order, $shopping_payment, $data['send_link'], $data['mode'])); + } +} diff --git a/app/Services/Shop.php b/app/Services/Shop.php new file mode 100644 index 0000000..e150394 --- /dev/null +++ b/app/Services/Shop.php @@ -0,0 +1,66 @@ +where('txaction', 'paid')->OrWhere('txaction', 'appointed')->OrWhere('txaction', 'extern')->OrWhere('txaction', 'invoice_open')->OrWhere('txaction', 'invoice_paid'); + })->where('orders', '=', NULL)->get(); + foreach ($shopping_users as $shopping_user) { + if ($shopping_user->number) { + $orders = ShoppingUser::where('number', '=', $shopping_user->number)->max('orders'); + $orders = $orders + 1; + } else { + $orders = ShoppingUser::where('billing_email', '=', $shopping_user->billing_email)->max('orders'); + $orders = $orders + 1; + } + $shopping_user->orders = $orders; + $shopping_user->save(); + } + } + + public static function newUserOrder($number){ + if($number > 0){ + $shopping_users = ShoppingUser::where('number', '=', $number)->get(); + $orders = 1; + foreach ($shopping_users as $shopping_user) { + if($shopping_user->shopping_order && ($shopping_user->shopping_order->txaction === 'paid' || $shopping_user->shopping_order->txaction === 'appointed' || $shopping_user->shopping_order->txaction === 'extern')){ + $shopping_user->orders = $orders++; + + }else{ + $shopping_user->orders = NULL; + } + $shopping_user->save(); + + } + } + } + + + public static function getShippingCountryCountryId($shipping_country_id){ + $shippingCountry = ShippingCountry::find($shipping_country_id); + if($shippingCountry && $shippingCountry->country){ + return $shippingCountry->country->id; + } + return 1; //default DE + } + + public static function getCountryShippingCountryId($country_id){ + $shippingCountry = ShippingCountry::whereCountryId($country_id)->first(); + if($shippingCountry){ + return $shippingCountry->id; + } + if($ShippingCountry = ShippingCountry::all()->first()){ + $ShippingCountry->id; + } + return 1; + } + +} \ No newline at end of file diff --git a/app/Services/Slim.php b/app/Services/Slim.php new file mode 100644 index 0000000..79b0faf --- /dev/null +++ b/app/Services/Slim.php @@ -0,0 +1,257 @@ +input)) { + + $inputData = null; + if (isset($data->input->image)) { + $inputData = Slim::getBase64Data($data->input->image); + } + else if (isset($data->input->field)) { + $filename = $_FILES[$data->input->field]['tmp_name']; + if ($filename) { + $inputData = file_get_contents($filename); + } + } + + $input = array( + 'data' => $inputData, + 'name' => $data->input->name, + 'type' => $data->input->type, + 'size' => $data->input->size, + 'width' => $data->input->width, + 'height' => $data->input->height, + ); + + } + + if (isset($data->output)) { + + $outputDate = null; + if (isset($data->output->image)) { + $outputData = Slim::getBase64Data($data->output->image); + } + else if (isset ($data->output->field)) { + $filename = $_FILES[$data->output->field]['tmp_name']; + if ($filename) { + $outputData = file_get_contents($filename); + } + } + + $output = array( + 'data' => $outputData, + 'name' => $data->output->name, + 'type' => $data->output->type, + 'width' => $data->output->width, + 'height' => $data->output->height + ); + } + + if (isset($data->actions)) { + $actions = array( + 'crop' => $data->actions->crop ? array( + 'x' => $data->actions->crop->x, + 'y' => $data->actions->crop->y, + 'width' => $data->actions->crop->width, + 'height' => $data->actions->crop->height, + 'type' => $data->actions->crop->type + ) : null, + 'size' => $data->actions->size ? array( + 'width' => $data->actions->size->width, + 'height' => $data->actions->size->height + ) : null, + 'rotation' => $data->actions->rotation, + 'filters' => $data->actions->filters ? array( + 'sharpen' => $data->actions->filters->sharpen + ) : null + ); + } + + if (isset($data->meta)) { + $meta = $data->meta; + } + + // We've sanitized the base64data and will now return the clean file object + return array( + 'input' => $input, + 'output' => $output, + 'actions' => $actions, + 'meta' => $meta + ); + } + + // $path should have trailing slash + public static function saveFile($data, $name, $path = 'tmp/', $uid = true) { + + // Add trailing slash if omitted + if (substr($path, -1) !== '/') { + $path .= '/'; + } + + // Test if directory already exists + if(!is_dir($path)){ + mkdir($path, 0755, true); + } + + // Sanitize characters in file name + $name = Slim::sanitizeFileName($name); + + // Let's put a unique id in front of the filename so we don't accidentally overwrite other files + if ($uid) { + $name = uniqid() . '_' . $name; + } + + // Add name to path, we need the full path including the name to save the file + $path = $path . $name; + + // store the file + Slim::save($data, $path); + + // return the files new name and location + return array( + 'name' => $name, + 'path' => $path + ); + } + + /** + * Get data from remote URL + * @param $url + * @return string + */ + public static function fetchURL($url, $maxFileSize) { + if (!ini_get('allow_url_fopen')) { + return null; + } + $content = null; + try { + $content = @file_get_contents($url, false, null, 0, $maxFileSize); + } catch(Exception $e) { + return false; + } + return $content; + } + + public static function outputJSON($data) { + header('Content-Type: application/json'); + echo json_encode($data); + } + + /** + * http://stackoverflow.com/a/2021729 + * Remove anything which isn't a word, whitespace, number + * or any of the following characters -_~,;[](). + * If you don't need to handle multi-byte characters + * you can use preg_replace rather than mb_ereg_replace + * @param $str + * @return string + */ + public static function sanitizeFileName($str) { + // Basic clean up + $str = preg_replace('([^\w\s\d\-_~,;\[\]\(\).])', '', $str); + // Remove any runs of periods + $str = preg_replace('([\.]{2,})', '', $str); + + $str = (strlen($str) > 33) ? substr($str,-33) : $str; + + return $str; + } + + /** + * Gets the posted data from the POST or FILES object. If was using Slim to upload it will be in POST (as posted with hidden field) if not enhanced with Slim it'll be in FILES. + * @param $inputName + * @return array|bool + */ + private static function getPostData($inputName) { + + $values = array(); + + if (isset($_POST[$inputName])) { + $values = $_POST[$inputName]; + } + else if (isset($_FILES[$inputName])) { + // Slim was not used to upload this file + return false; + } + + return $values; + } + + /** + * Saves the data to a given location + * @param $data + * @param $path + * @return bool + */ + private static function save($data, $path) { + if (!file_put_contents($path, $data)) { + return false; + } + return true; + } + + /** + * Strips the "data:image..." part of the base64 data string so PHP can save the string as a file + * @param $data + * @return string + */ + private static function getBase64Data($data) { + return base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $data)); + } + +} \ No newline at end of file diff --git a/app/Services/SysLog.php b/app/Services/SysLog.php new file mode 100644 index 0000000..95ddf38 --- /dev/null +++ b/app/Services/SysLog.php @@ -0,0 +1,78 @@ + 'debug', + 2 => 'info', + 3 => 'notice', + 4 => 'warning', + 5 => 'error', + 6 => 'critical', + 7 => 'alert', + ]; + + function __construct($action = null, $channel = 'default', $level = 1) + { + $this->log = new Logger(); + $this->log->action = $action; + $this->log->channel = $channel; + $this->log->level = $level; + } + + public static function action($action = null, $channel = 'default', $level = 1) + { + //Return new instance of this model + return new self($action, $channel, $level); + } + + public function setModel($id, $model){ + $this->log->model_id = $id; + $this->log->model = $model; + return $this; + } + + public function setUserId($user_id){ + $this->log->user_id = $user_id; + return $this; + } + + public function setMessage($message){ + $this->log->message = $message; + return $this; + } + + public function save(){ + $this->log->save(); + //send Mail + if($this->log->level >= 3){ + $mail = config('app.info_test_mail'); + Mail::to($mail)->send(new MailSyS($this->log, 'log')); + } + } + + public function getLevelType(){ + return $this->levelTypes[$this->log->level]; + } + + + +} diff --git a/app/Services/UserService.php b/app/Services/UserService.php new file mode 100644 index 0000000..69e8b33 --- /dev/null +++ b/app/Services/UserService.php @@ -0,0 +1,21 @@ +count() == 0){ + $unique = true; + } + } + while(!$unique); + return $confirmation_code; + } + +} \ No newline at end of file diff --git a/app/Services/Util.php b/app/Services/Util.php new file mode 100644 index 0000000..b1805cf --- /dev/null +++ b/app/Services/Util.php @@ -0,0 +1,241 @@ + $value) { + $mixed[$key] = self::utf8ize($value); + } + } elseif (is_string($mixed)) { + return mb_convert_encoding($mixed, "UTF-8", "UTF-8"); + } + return $mixed; + } + + + public static function getPostRoute(){ + return self::$postRoute; + } + public static function setPostRoute($postRoute){ + self::$postRoute = $postRoute; + } + + public static function getUserShop(){ + if(\Session::has('user_shop')){ + if($user_shop = \Session::get('user_shop')){ + return $user_shop; + } + } + return false; + } + + public static function getAuthUser(){ + if(\Auth::check() && \Auth::user()){ + return \Auth::user(); + } + if(\Session::has('auth_user')){ + if($auth_user = \Session::get('auth_user')){ + return $auth_user; + } + } + return false; + } + + + public static function getUserShopIdentifier(){ + if(\Session::has('user_shop_identifier')){ + if($user_shop_identifier = \Session::get('user_shop_identifier')){ + return $user_shop_identifier; + } + } + return false; + } + public static function getUserHistory(){ + $auth_user = self::getAuthUser(); + $user_shop_identifier = self::getUserShopIdentifier(); + if($user_shop_identifier && $auth_user){ + return UserHistory::whereUserId($auth_user->id)->whereIdentifier($user_shop_identifier)->get()->last(); + } + return false; + } + + public static function setUserHistoryValue($values = []){ + if($user_history = self::getUserHistory()){ + foreach ($values as $key=>$val){ + $user_history->{$key} = $val; + } + $user_history->save(); + } + } + + public static function getUserHistoryValue($key){ + if($user_history = self::getUserHistory()) { + return $user_history->{$key}; + } + return null; + } + + public static function getUserShoppingMode(){ + if($auth_user = self::getAuthUser()){ + if($auth_user->isTestMode()){ + return 'test'; + } + } + return 'live'; + } + public static function addRoute($p = []){ + $b = []; + if(\Session::has('user_shop')){ + if($user_shop = \Session::get('user_shop')){ + $b = ['subdomain' => $user_shop->slug]; + } + } + return array_merge($p, $b); + } + + public static function isCheckout(){ + + if(\Session::has('isCheckout')){ + if(\Session::get('isCheckout') == true){ + return true; + } + } + return false; + } + + public static function getMyMivitaUrl($protocol = true){ + $pro = $protocol ? config('app.protocol') : ""; + return $pro.config('app.pre_url_crm').config('app.domain').config('app.tld_care'); + } + + public static function getUserPaymentFor(){ + if(Yard::instance('shopping')->getYardExtra('user_shop_payment')){ + return Yard::instance('shopping')->getYardExtra('user_shop_payment'); + } + if(\Session::has('user_shop_payment')){ + return \Session::get('user_shop_payment'); + } + + return null; + } + + public static function getUserShopBackUrl($reference = ""){ + + if(\Session::has('user_shop')){ + if(\Session::has('user_shop_domain')){ + return \Session::get('user_shop_domain'); + } + if($user_shop = \Session::get('user_shop')){ + return config('app.protocol').$user_shop->slug.".".config('app.domain').config('app.tld_care')."/back/to/shop/".$reference; + } + } + return url("/"); + } + + public static function getUserCardBackUrl($uri){ + + if(\Session::has('user_shop')){ + if(\Session::has('user_shop_domain')){ + if(\Session::has('back_link')){ + return \Session::get('back_link'); + } + if(self::getUserPaymentFor() === 3){ + return \Session::get('user_shop_domain')."/user/membership"; + } + if(self::getUserPaymentFor() === 2){ + return \Session::get('user_shop_domain')."/user/orders"; + } + return \Session::get('user_shop_domain'); + } + if($user_shop = \Session::get('user_shop')){ + return config('app.protocol').$user_shop->slug.".".config('app.domain').config('app.tld_care').$uri; + } + } + return url($uri); + } + public static function sanitize($string, $force_lowercase = true, $anal = false, $substr = false) + { + $strip = array("~", "`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "_", "=", "+", "[", "{", "]", + "}", "\\", "|", ";", ":", "\"", "'", "‘", "’", "“", "”", "–", "—", + "—", "–", ",", "<", ".", ">", "/", "?"); + $clean = trim(str_replace($strip, "", strip_tags($string))); + $clean = preg_replace('/\s+/', "_", $clean); + $clean = ($anal) ? preg_replace("/[^a-zA-Z0-9]/", "", $clean) : $clean ; + + if($substr){ + $clean = (strlen($clean) > 20) ? substr($clean,-20) : $clean; + + } + return ($force_lowercase) ? + (function_exists('mb_strtolower')) ? + mb_strtolower($clean, 'UTF-8') : + strtolower($clean) : + $clean; + } + +} \ No newline at end of file diff --git a/app/Services/Yard.php b/app/Services/Yard.php new file mode 100644 index 0000000..8ed0094 --- /dev/null +++ b/app/Services/Yard.php @@ -0,0 +1,472 @@ +ysession = $session; + $this->yinstance = sprintf('%s.%s', 'cart', 'shipping_extras'); + if($this->getYardExtra('shipping_price')){ + $this->shipping_price = (float) ($this->getYardExtra('shipping_price')); + } + + if($this->getYardExtra('shipping_price_net')){ + $this->shipping_price_net = (float) ($this->getYardExtra('shipping_price_net')); + } + + if($this->getYardExtra('shipping_tax_rate')){ + $this->shipping_tax_rate = (float) ($this->getYardExtra('shipping_tax_rate')); + } + + if($this->getYardExtra('shipping_tax')){ + $this->shipping_tax = (float) ($this->getYardExtra('shipping_tax')); + } + + if($this->getYardExtra('shipping_country_id')){ + $this->shipping_country_id = $this->getYardExtra('shipping_country_id'); + } + + if($this->getYardExtra('shipping_is_for')){ + $this->shipping_is_for = $this->getYardExtra('shipping_is_for'); + } + + if($this->getYardExtra('num_comp')){ + $this->num_comp = $this->getYardExtra('num_comp'); + } + + + parent::__construct($session, $events); + + if(gettype($this->shipping_country_id) !== 'object' && $this->shipping_country_id == 0){ + $shippingCountry = ShippingCountry::first(); + if($shippingCountry){ + $this->shipping_country_id = $shippingCountry->id; + } + } + + if($this->shipping_price == 0){ + self::instance('shopping')->setShippingCountryWithPrice($this->shipping_country_id, $this->shipping_is_for); + } + } + + public static function getTaxRate() + { + return config('cart.tax'); + } + + public function putYardExtra($key, $value){ + + $content = $this->getYContent(); + $content->put($key, $value); + $this->ysession->put($this->yinstance, $content); + } + + public function getYardExtra($key){ + $content = $this->getYContent(); + if ($content->has($key)){ + return $content->get($key); + } + return false; + } + + public function getShippingCountryName(){ + + $shippingCountry = ShippingCountry::find($this->shipping_country_id); + if($shippingCountry && $shippingCountry->country){ + return $shippingCountry->country->getLocated(); + } + return ""; + } + public function getShippingCountryCountryId() + { + $shippingCountry = ShippingCountry::find($this->shipping_country_id); + if($shippingCountry && $shippingCountry->country){ + return $shippingCountry->country->id; + } + return 1; //default DE + } + + public function getShippingCountryId() + { + return $this->shipping_country_id; + } + + + public function getYContent() + { + if (is_null($this->ysession->get($this->yinstance))) { + return new Collection([]); + } + return $this->ysession->get($this->yinstance); + } + + + public function reCalculateShippingPrice(){ + $this->calculateShippingPrice(); + } + + public function setShippingCountryWithPrice($shipping_country_id, $shipping_is_for = 'ot') + { + $this->shipping_country_id = $shipping_country_id; + $this->putYardExtra('shipping_country_id', $shipping_country_id); + + $this->shipping_is_for = $shipping_is_for; + $this->putYardExtra('shipping_is_for', $shipping_is_for); + + $this->calculateShippingPrice(); + + } + + private function calculateShippingPrice(){ + + $shippingCountry = ShippingCountry::find($this->shipping_country_id); + if(!$shippingCountry){ + return; + } + $shipping = $shippingCountry->shipping; + + if($this->weight() == 0){ + $shipping_price = $shipping->shipping_prices->first(); + $shipping_price->price = 0; + $shipping_price->price_comp = 0; + }else{ + //first by price + $shipping_price = $this->shippingPriceByTotal($shipping->shipping_prices, $this->total(2, '.', '')); + //sec by weight + if(!$shipping_price){ + $shipping_price = $this->shippingPriceByWeight($shipping->shipping_prices, $this->weight()); + } + //default + if(!$shipping_price){ + $shipping_price = $shipping->shipping_prices->first(); + } + } + if($shipping_price){ + $price = $shipping_price->price; + $this->num_comp = 0; + if($this->shipping_is_for === 'me'){ + $price = $shipping_price->price_comp; + $this->num_comp = $shipping_price->num_comp; + + } + $this->shipping_price = $price; + $this->shipping_tax_rate = $shipping_price->tax_rate; + $this->shipping_price_net = round($price / ((100+$shipping_price->tax_rate) / 100), 2); + $this->shipping_tax = round($price / (100+$shipping_price->tax_rate) * 100, 2); + + $this->putYardExtra('num_comp', $this->num_comp); + $this->putYardExtra('shipping_price', $this->shipping_price); + $this->putYardExtra('shipping_tax_rate', $this->shipping_tax_rate); + $this->putYardExtra('shipping_tax', $this->shipping_tax); + $this->putYardExtra('shipping_price_net', $this->shipping_price_net); + } + } + + private function shippingPriceByTotal($prices, $total){ + foreach ($prices as $price){ + if($price->total_from > 0 && $price->total_to > 0){ + if($total >= $price->total_from && $total <= $price->total_to){ + return $price; + } + } + } + return false; + } + private function shippingPriceByWeight($prices, $weight){ + foreach ($prices as $price){ + if($price->weight_from > 0 && $price->weight_to > 0){ + if($weight >= $price->weight_from && $weight <= $price->weight_to){ + return $price; + } + } + } + return false; + } + + /** + * @param null $decimals + * @param null $decimalPoint + * @param null $thousandSeperator + * @return string + */ + public function shipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + return $this->numberFormat($this->shipping_price, $decimals, $decimalPoint, $thousandSeperator); + } + + public function shippingNet($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + return $this->numberFormat($this->shipping_price_net, $decimals, $decimalPoint, $thousandSeperator); + } + // + private function shippingTax($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + return $this->numberFormat($this->shipping_tax, $decimals, $decimalPoint, $thousandSeperator); + + } + + /* private function subShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null){ + $subShipping = $this->shipping_price_net + return $this->numberFormat($subShipping, $decimals, $decimalPoint, $thousandSeperator); + }*/ + //netto + public function subtotalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + $subtotal = (float) $this->shipping_price_net + $this->subtotal(2, '.', ''); + return $this->numberFormat($subtotal, $decimals, $decimalPoint, $thousandSeperator); + } + + + public function taxWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + $total = $this->totalWithShipping(2, '.', ''); + // $totalTax = (float) $this->tax(2, '.', '') + $this->shipping_tax; + $totalTax = $this->subtotalWithShipping(2, '.', ''); + return $this->numberFormat(($total - $totalTax), $decimals, $decimalPoint, $thousandSeperator); + } + + + public function totalWithShipping($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + $total = (float) ($this->total(2, '.', '')) + $this->shipping_price; + return $this->numberFormat($total, $decimals, $decimalPoint, $thousandSeperator); + } + + /** + * Get the total price of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return string + */ + public function weight($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + $content = $this->getContent(); + $total = $content->reduce(function ($total, CartItem $cartItem) { + return $total + ($cartItem->options->weight ? ($cartItem->options->weight*$cartItem->qty) : 0); + }, 0); + + return $total; + } + + public function points() + { + $content = $this->getContent(); + $total = $content->reduce(function ($total, CartItem $cartItem) { + return $total + ($cartItem->options->points ? ($cartItem->options->points * $cartItem->qty) : 0); + }, 0); + + return $total; + } + + public function compCount() + { + $content = $this->getContent(); + + $count = parent::count(); + $comp_count = $content->reduce(function ($comp_count, CartItem $cartItem) { + return $cartItem->options->comp ? $comp_count + 1 : $comp_count; + }, 0); + return $count-$comp_count; + } + + /** + * Get the total price of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return string + */ + public function total($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withFees = false) + { + $content = $this->getContent(); + $total = $content->reduce(function ($total, CartItem $cartItem) { + return $total + ($cartItem->qty * $cartItem->price); + }, 0); + + if ($withFees === true) { + $fees = $this->feeTotal(null, null, null, true); + + $total = $total + $fees; + } + + return $this->numberFormat($total, $decimals, $decimalPoint, $thousandSeperator); + } + + + + /** + * Get the total tax of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + */ + public function tax($decimals = null, $decimalPoint = null, $thousandSeperator = null, $withFees = false) + { + $content = $this->getContent(); + + $tax = $content->reduce(function ($tax, CartItem $cartItem) { + $priceTax = $cartItem->price / (100 + $cartItem->taxRate) * $cartItem->taxRate; + return $tax + ($cartItem->qty * $priceTax); + }, 0); + + if ($withFees === true) { + $fees = $this->feeTax(); + + $tax = $tax + floatval($fees); + } + + return $this->numberFormat($tax, $decimals, $decimalPoint, $thousandSeperator); + } + + + /** + * Get the subtotal (total - tax) of the items in the cart. + * + * @param int $decimals + * @param string $decimalPoint + * @param string $thousandSeperator + * @return float + */ + public function subtotal($decimals = null, $decimalPoint = null, $thousandSeperator = null) + { + $content = $this->getContent(); + + $subTotal = $content->reduce(function ($subTotal, CartItem $cartItem) { + $price_net = $cartItem->price / ((100 + $cartItem->taxRate) / 100); + return $subTotal + ($cartItem->qty * $price_net); + }, 0); + + return $this->numberFormat($subTotal, $decimals, $decimalPoint, $thousandSeperator); + } + + + public function getCartItemByProduct($product_id, $set_price='with'){ + if($product = Product::find($product_id)) { + $image = ""; + if ($product->images->count()) { + $image = $product->images->first()->slug; + } + $price = $product->price; + if($set_price === 'with'){ + $price = $product->getPriceWith(false, true); + } + $cartItem = $this->getCartItem($product->id, $product->getLang('name'), 1, $price, ['image' => $image, 'slug' => $product->slug, 'weight' => $product->weight, 'points' => $product->points]); + $content = $this->getContent(); + + if ($content->has($cartItem->rowId)){ + return $content->get($cartItem->rowId); + } + return $cartItem; + } + return null; + + } + + + public function getCartItem($id, $name = null, $qty = null, $price = null, array $options = []){ + if ($id instanceof Buyable) { + $cartItem = CartItem::fromBuyable($id, $qty ?: []); + } elseif (is_array($id)) { + $cartItem = CartItem::fromArray($id); + } else { + $cartItem = CartItem::fromAttributes($id, $name, $price, $options); + } + return $cartItem; + } + + public function destroy() + { + $this->ysession->remove($this->yinstance); + parent::destroy(); + + } + + public function rowPriceNet(CartItem $row, $decimals = null, $decimalPoint = null, $thousandSeperator = null){ + $price = round($row->price / ((100 + $row->taxRate) /100), 4); + return $this->numberFormat($price, $decimals, $decimalPoint, $thousandSeperator); + } + + public function rowSubtotalNet(CartItem $row, $decimals = null, $decimalPoint = null, $thousandSeperator = null){ + $price = round($row->price / ((100 + $row->taxRate) /100), 4); + return $this->numberFormat(($price * $row->qty), $decimals, $decimalPoint, $thousandSeperator); + } + + public function getNumComp(){ + return $this->num_comp; + } + + public function getCompProductBy($comp, $product_id=false){ + foreach ($this->content() as $row) { + if($row->options->comp == $comp) { + return $row->options->product_id; + } + } + return false; + } + + public function getContentByOrder(){ + $ret = []; + $comp = []; + foreach ($this->content() as $row) { + if($row->options->comp){ + $comp[100+$row->options->comp] = $row; + }else{ + $ret[] = $row; + } + } + ksort($comp); + $ret = array_merge($ret, $comp); + return $ret; + } + + /** + * Get the Formated number + * + * @param $value + * @param $decimals + * @param $decimalPoint + * @param $thousandSeperator + * @return string + */ + protected function numberFormat($value, $decimals, $decimalPoint, $thousandSeperator) + { + if(is_null($decimals)){ + $decimals = is_null(config('cart.format.decimals')) ? 2 : config('cart.format.decimals'); + } + if(is_null($decimalPoint)){ + $decimalPoint = is_null(config('cart.format.decimal_point')) ? '.' : config('cart.format.decimal_point'); + } + if(is_null($thousandSeperator)){ + $thousandSeperator = is_null(config('cart.format.thousand_seperator')) ? ',' : config('cart.format.thousand_seperator'); + } + + return number_format($value, $decimals, $decimalPoint, $thousandSeperator); + } +} diff --git a/app/User.php b/app/User.php new file mode 100644 index 0000000..5c0ace9 --- /dev/null +++ b/app/User.php @@ -0,0 +1,396 @@ + 'datetime', + 'settings' => 'array', + 'payment_methods' => 'array' + ]; + + public function account(){ + return $this->belongsTo('App\Models\UserAccount', 'account_id'); + } + + public function user_level(){ + return $this->belongsTo('App\Models\UserLevel', 'm_level'); + } + + public function next_user_level(){ + return $this->belongsTo('App\Models\UserLevel', 'next_m_level'); + } + + public function user_sponsor(){ + return $this->belongsTo('App\User', 'm_sponsor'); + } + + public function files(){ + return $this->hasMany('App\Models\File', 'user_id', ''); + } + + public function user_histories(){ + return $this->hasMany('App\Models\UserHistory', 'user_id', ''); + } + + public function user_update_email() + { + return $this->hasMany('App\Models\UserUpdateEmail', 'user_id', 'id'); + } + + public function getMUserSponsor(){ + if($this->user_sponsor && $this->user_sponsor->account){ + return $this->user_sponsor->account->first_name." ".$this->user_sponsor->account->last_name." | ".$this->user_sponsor->email; + + } + } + public function getFullName($email=true){ + $ret = ""; + if($this->account){ + $ret = $this->account->first_name." ".$this->account->last_name; + + } + if($email && $this->id > 1){ + $ret .= " | ".$this->email; + } + return $ret; + } + + /** + * @return bool + */ + public function isAdmin() + { + if($this->admin >= 1){ + return true; + } + return false; + } + + /** + * @return bool + */ + public function isSuperAdmin() + { + if($this->admin >= 2){ + return true; + } + return false; + } + + /** + * @return bool + */ + public function isSySAdmin() + { + if($this->admin >= 3){ + return true; + } + return false; + } + + /** + * @return bool + */ + public function isApiUser() + { + if($this->admin >= 4){ + return true; + } + return false; + } + + /** + * @return bool + */ + public function isTestMode() + { + return $this->test_mode ? true : false; + } + + + /** + * @return bool + */ + public function showSideNav() + { + if($this->active == 1 && $this->blocked == 0 && $this->wizard >= 10){ + return true; + } + return false; + } + + public function isActive(){ + return ($this->active == 1 && $this->blocked == 0) ? true : false; + } + + public function isActiveAccount(){ + return $this->payment_account ? Carbon::parse($this->payment_account)->gt(Carbon::now()) : false; + } + + + public function isRenewalAccount(){ + if ($this->payment_account) { + return Carbon::parse($this->payment_account)->modify('-'.(config('mivita.renewal_days')+1).' days')->lt(Carbon::now()); + } + return false; + } + + public function nextRenewalAccount(){ + return $this->payment_account ? Carbon::parse($this->payment_account)->modify('-'.config('mivita.renewal_days').' days')->format(\Util::formatDateTimeDB()) : false ; + } + + public function daysActiveAccount(){ + return Carbon::now()->diffInDays(Carbon::parse($this->payment_account), false); + } + + public function modifyActiveAccount($add = "1 year"){ + return Carbon::parse($this->payment_account)->modify($add)->format(\Util::formatDateTimeDB()); + } + + public function daysHumansActiveAccount(){ + return Carbon::now()->diffForHumans(Carbon::parse($this->payment_account)); + } + + public function daysActiveShop(){ + return Carbon::now()->diffInDays(Carbon::parse($this->payment_shop), false); + } + + public function modifyActiveShop($add = "1 year"){ + return Carbon::parse($this->payment_shop)->modify($add)->format(\Util::formatDateTimeDB()); + } + + public function daysHumansActiveShop(){ + return Carbon::now()->diffForHumans(Carbon::parse($this->payment_shop)); + } + + /** + * @return string + */ + public function getConfirmationDateFormat(){ + if(!$this->attributes['confirmation_date']){ return ""; } + return Carbon::parse($this->attributes['confirmation_date'])->format(\Util::formatDateTimeDB()); + } + + /** + * @return string + */ + public function getActiveDateFormat(){ + if(!$this->attributes['active_date']){ return ""; } + return Carbon::parse($this->attributes['active_date'])->format(\Util::formatDateTimeDB()); + } + + /** + * @return string + */ + public function getAgreementFormat(){ + if(!$this->attributes['agreement']){ return ""; } + return Carbon::parse($this->attributes['agreement'])->format(\Util::formatDateTimeDB()); + } + + public function getPaymentAccountDateFormat($time = true){ + if(!$this->attributes['payment_account']){ return ""; } + if(!$time){ + return Carbon::parse($this->attributes['payment_account'])->format(\Util::formatDateDB()); + } + return Carbon::parse($this->attributes['payment_account'])->format(\Util::formatDateTimeDB()); + } + + public function getPaymentShopDateFormat($time = true){ + if(!$this->attributes['payment_shop']){ return ""; } + if(!$time){ + return Carbon::parse($this->attributes['payment_shop'])->format(\Util::formatDateDB()); + } + return Carbon::parse($this->attributes['payment_shop'])->format(\Util::formatDateTimeDB()); + } + + public function getReleaseAccountFormat($time = true){ + if(!$this->attributes['release_account']){ return ""; } + if(!$time){ + return Carbon::parse($this->attributes['release_account'])->format(\Util::formatDateDB()); + } + return Carbon::parse($this->attributes['release_account'])->format(\Util::formatDateTimeDB()); + } + + + public function setSetting(array $revisions, bool $save = true){ + if(!$this->settings){ + $this->settings = []; + } + $this->settings = array_merge($this->settings, $revisions); + if ($save) { + $this->save(); + } + return $this; + } + + public function getSetting($key, $default = null){ + return isset($this->settings[$key]) ? $this->settings[$key] : $default; + } + + public function getPaymentMethodsShort(){ + $ret = ""; + if($this->payment_methods !== null){ + foreach ($this->payment_methods as $payment_method){ + if($find = PaymentMethod::find($payment_method)){ + $ret .= $find->short." | "; + } + } + $ret = rtrim($ret, " | "); + } + return $ret; + } + /** + * @return string + */ + public function getLandByCountry(){ + if($this->account && $this->account->country_id){ + $code = $this->account->country->code; + if($code == "FR"){ + return 'fr'; + } + if($code == "CH"){ + return 'de'; + } + if($code == "NL"){ + return 'nl'; + } + if($code == "DE"){ + return 'de'; + } + } + return "de"; + } + + /** + * Send the password reset notification. + * + * @param string $token + * @return void + */ + public function sendPasswordResetNotification($token) + { + Mail::to($this->email)->send(new MailResetPassword($token, $this)); + // $this->notify(new ResetPasswordNotification($token)); + } +} diff --git a/app/helpers.php b/app/helpers.php new file mode 100644 index 0000000..c92c36e --- /dev/null +++ b/app/helpers.php @@ -0,0 +1,71 @@ +getSetting($key); + } + return null; + } +} + +if (! function_exists('set_user_attr')) { + function set_user_attr($key, $value){ + if ($user = Auth::user()) { + return $user->setSetting([$key => $value]); + } + return null; + } +} + +if (! function_exists('get_active_badge')) { + function get_active_badge($active, $tooltip = false, $pos = "top") + { + if($tooltip){ + $tooltip = 'data-toggle="tooltip" data-placement="top" data-original-title="'.$tooltip.'"'; + } + return $active ? '' : ''; + } +} + + +if (! function_exists('formatNumber')) { + function formatNumber($number, $dec=2) + { + return !$number ? $number : Util::formatNumber($number, $dec); + } +} + +if (! function_exists('reFormatNumber')) { + function reFormatNumber($number) + { + return !$number ? $number : Util::reFormatNumber($number); + } +} + + diff --git a/artisan b/artisan new file mode 100644 index 0000000..5c23e2e --- /dev/null +++ b/artisan @@ -0,0 +1,53 @@ +#!/usr/bin/env php +make(Illuminate\Contracts\Console\Kernel::class); + +$status = $kernel->handle( + $input = new Symfony\Component\Console\Input\ArgvInput, + new Symfony\Component\Console\Output\ConsoleOutput +); + +/* +|-------------------------------------------------------------------------- +| Shutdown The Application +|-------------------------------------------------------------------------- +| +| Once Artisan has finished running, we will fire off the shutdown events +| so that any final work may be done by the application before we shut +| down the process. This is the last thing to happen to the request. +| +*/ + +$kernel->terminate($input, $status); + +exit($status); diff --git a/bootstrap/app.php b/bootstrap/app.php new file mode 100644 index 0000000..037e17d --- /dev/null +++ b/bootstrap/app.php @@ -0,0 +1,55 @@ +singleton( + Illuminate\Contracts\Http\Kernel::class, + App\Http\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Console\Kernel::class, + App\Console\Kernel::class +); + +$app->singleton( + Illuminate\Contracts\Debug\ExceptionHandler::class, + App\Exceptions\Handler::class +); + +/* +|-------------------------------------------------------------------------- +| Return The Application +|-------------------------------------------------------------------------- +| +| This script returns the application instance. The instance is given to +| the calling script so we can separate the building of the instances +| from the actual running of the application and sending responses. +| +*/ + +return $app; diff --git a/bootstrap/cache/.gitignore b/bootstrap/cache/.gitignore new file mode 100755 index 0000000..d6b7ef3 --- /dev/null +++ b/bootstrap/cache/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..00a5d08 --- /dev/null +++ b/composer.json @@ -0,0 +1,90 @@ +{ + "name": "laravel/laravel", + "type": "project", + "description": "The Laravel Framework.", + "keywords": [ + "framework", + "laravel" + ], + "license": "MIT", + "require": { + "php": "^7.3|^8.0", + "askedio/laravel5-profanity-filter": "*", + "barryvdh/laravel-dompdf": "*", + "cviebrock/eloquent-sluggable": "*", + "digital-bird/shoppingcart": "^3.0", + "doctrine/dbal": "*", + "fideloper/proxy": "^4.4", + "fruitcake/laravel-cors": "^2.0", + "guzzlehttp/guzzle": "^7.0.1", + "intervention/image": "*", + "jenssegers/date": "*", + "laracasts/flash": "*", + "laravel/framework": "^8.12", + "laravel/helpers": "*", + "laravel/passport": "*", + "laravel/tinker": "^2.5", + "laravel/ui": "^3.1", + "laravelcollective/html": "*", + "reliese/laravel": "*", + "setasign/fpdf": "*", + "setasign/fpdi": "*", + "yajra/laravel-datatables-oracle": "*" + }, + "require-dev": { + "facade/ignition": "^2.5", + "fakerphp/faker": "^1.9.1", + "laravel/sail": "^1.0.1", + "mockery/mockery": "^1.4.2", + "nunomaduro/collision": "^5.0", + "phpunit/phpunit": "^9.3.3", + "barryvdh/laravel-debugbar": "*", + "barryvdh/laravel-ide-helper": "*" + }, + "config": { + "optimize-autoloader": true, + "preferred-install": "dist", + "sort-packages": true + }, + "extra": { + "laravel": { + "dont-discover": [] + } + }, + "autoload": { + "files": [ + "app/helpers.php" + ], + "psr-4": { + "App\\": "app/", + "Database\\Factories\\": "database/factories/", + "Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Tests\\": "tests/" + } + }, + "minimum-stability": "dev", + "prefer-stable": true, + "scripts": { + "post-update-cmd": [ + "php artisan clear-compiled", + "Illuminate\\Foundation\\ComposerScripts::postUpdate", + "php artisan ide-helper:generate", + "php artisan ide-helper:meta", + "php artisan ide-helper:models" + ], + "post-autoload-dump": [ + "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", + "@php artisan package:discover --ansi" + ], + "post-root-package-install": [ + "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" + ], + "post-create-project-cmd": [ + "@php artisan key:generate --ansi" + ] + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..206cf92 --- /dev/null +++ b/composer.lock @@ -0,0 +1,10795 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "ef4569bbf806f3339fc3af3a5cbe0116", + "packages": [ + { + "name": "askedio/laravel5-profanity-filter", + "version": "1.10", + "source": { + "type": "git", + "url": "https://github.com/Askedio/laravel-profanity-filter.git", + "reference": "34bec8cd92e998015e73a90d888ef981b0ed749a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Askedio/laravel-profanity-filter/zipball/34bec8cd92e998015e73a90d888ef981b0ed749a", + "reference": "34bec8cd92e998015e73a90d888ef981b0ed749a", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "require-dev": { + "laravel/laravel": "5.*", + "phpunit/phpunit": "~5.0", + "symfony/css-selector": "3.1.*", + "symfony/dom-crawler": "3.1.*" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Askedio\\Laravel5ProfanityFilter\\Providers\\ProfanityFilterServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Askedio\\Laravel5ProfanityFilter\\": "app/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "AGPL-3.0" + ], + "description": "A Vendor Package Example", + "keywords": [ + "laravel" + ], + "support": { + "issues": "https://github.com/Askedio/laravel-profanity-filter/issues", + "source": "https://github.com/Askedio/laravel-profanity-filter/tree/1.10" + }, + "time": "2018-10-19T16:07:02+00:00" + }, + { + "name": "asm89/stack-cors", + "version": "v2.0.2", + "source": { + "type": "git", + "url": "https://github.com/asm89/stack-cors.git", + "reference": "8d8f88b3b3830916be94292c1fbce84433efb1aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/asm89/stack-cors/zipball/8d8f88b3b3830916be94292c1fbce84433efb1aa", + "reference": "8d8f88b3b3830916be94292c1fbce84433efb1aa", + "shasum": "" + }, + "require": { + "php": "^7.0|^8.0", + "symfony/http-foundation": "~2.7|~3.0|~4.0|~5.0", + "symfony/http-kernel": "~2.7|~3.0|~4.0|~5.0" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Asm89\\Stack\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alexander", + "email": "iam.asm89@gmail.com" + } + ], + "description": "Cross-origin resource sharing library and stack middleware", + "homepage": "https://github.com/asm89/stack-cors", + "keywords": [ + "cors", + "stack" + ], + "support": { + "issues": "https://github.com/asm89/stack-cors/issues", + "source": "https://github.com/asm89/stack-cors/tree/v2.0.2" + }, + "time": "2020-10-29T16:03:21+00:00" + }, + { + "name": "barryvdh/laravel-dompdf", + "version": "v0.9.0", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-dompdf.git", + "reference": "5b99e1f94157d74e450f4c97e8444fcaffa2144b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-dompdf/zipball/5b99e1f94157d74e450f4c97e8444fcaffa2144b", + "reference": "5b99e1f94157d74e450f4c97e8444fcaffa2144b", + "shasum": "" + }, + "require": { + "dompdf/dompdf": "^1", + "illuminate/support": "^5.5|^6|^7|^8", + "php": "^7.1 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\DomPDF\\ServiceProvider" + ], + "aliases": { + "PDF": "Barryvdh\\DomPDF\\Facade" + } + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\DomPDF\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "A DOMPDF Wrapper for Laravel", + "keywords": [ + "dompdf", + "laravel", + "pdf" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-dompdf/issues", + "source": "https://github.com/barryvdh/laravel-dompdf/tree/v0.9.0" + }, + "funding": [ + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2020-12-27T12:05:53+00:00" + }, + { + "name": "brick/math", + "version": "0.9.1", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "283a40c901101e66de7061bd359252c013dcc43c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/283a40c901101e66de7061bd359252c013dcc43c", + "reference": "283a40c901101e66de7061bd359252c013dcc43c", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1|^8.0" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^7.5.15|^8.5", + "vimeo/psalm": "^3.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "brick", + "math" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/master" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/brick/math", + "type": "tidelift" + } + ], + "time": "2020-08-18T23:57:15+00:00" + }, + { + "name": "cocur/slugify", + "version": "v4.0.0", + "source": { + "type": "git", + "url": "https://github.com/cocur/slugify.git", + "reference": "3f1ffc300f164f23abe8b64ffb3f92d35cec8307" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cocur/slugify/zipball/3f1ffc300f164f23abe8b64ffb3f92d35cec8307", + "reference": "3f1ffc300f164f23abe8b64ffb3f92d35cec8307", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=7.0" + }, + "conflict": { + "symfony/config": "<3.4 || >=4,<4.3", + "symfony/dependency-injection": "<3.4 || >=4,<4.3", + "symfony/http-kernel": "<3.4 || >=4,<4.3", + "twig/twig": "<2.12.1" + }, + "require-dev": { + "laravel/framework": "~5.1", + "latte/latte": "~2.2", + "league/container": "^2.2.0", + "mikey179/vfsstream": "~1.6.8", + "mockery/mockery": "^1.3", + "nette/di": "~2.4", + "phpunit/phpunit": "^5.7.27", + "pimple/pimple": "~1.1", + "plumphp/plum": "~0.1", + "symfony/config": "^3.4 || ^4.3 || ^5.0", + "symfony/dependency-injection": "^3.4 || ^4.3 || ^5.0", + "symfony/http-kernel": "^3.4 || ^4.3 || ^5.0", + "twig/twig": "^2.12.1 || ~3.0", + "zendframework/zend-modulemanager": "~2.2", + "zendframework/zend-servicemanager": "~2.2", + "zendframework/zend-view": "~2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cocur\\Slugify\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florian Eckerstorfer", + "email": "florian@eckerstorfer.co", + "homepage": "https://florian.ec" + }, + { + "name": "Ivo Bathke", + "email": "ivo.bathke@gmail.com" + } + ], + "description": "Converts a string into a slug.", + "keywords": [ + "slug", + "slugify" + ], + "support": { + "issues": "https://github.com/cocur/slugify/issues", + "source": "https://github.com/cocur/slugify/tree/master" + }, + "time": "2019-12-14T13:04:14+00:00" + }, + { + "name": "composer/package-versions-deprecated", + "version": "1.11.99.1", + "source": { + "type": "git", + "url": "https://github.com/composer/package-versions-deprecated.git", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/package-versions-deprecated/zipball/7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "reference": "7413f0b55a051e89485c5cb9f765fe24bb02a7b6", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1.0 || ^2.0", + "php": "^7 || ^8" + }, + "replace": { + "ocramius/package-versions": "1.11.99" + }, + "require-dev": { + "composer/composer": "^1.9.3 || ^2.0@dev", + "ext-zip": "^1.13", + "phpunit/phpunit": "^6.5 || ^7" + }, + "type": "composer-plugin", + "extra": { + "class": "PackageVersions\\Installer", + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "PackageVersions\\": "src/PackageVersions" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)", + "support": { + "issues": "https://github.com/composer/package-versions-deprecated/issues", + "source": "https://github.com/composer/package-versions-deprecated/tree/1.11.99.1" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-11T10:22:58+00:00" + }, + { + "name": "cviebrock/eloquent-sluggable", + "version": "8.0.2", + "source": { + "type": "git", + "url": "https://github.com/cviebrock/eloquent-sluggable.git", + "reference": "1b693b333de9080380340facf3806c644a949ad7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/cviebrock/eloquent-sluggable/zipball/1b693b333de9080380340facf3806c644a949ad7", + "reference": "1b693b333de9080380340facf3806c644a949ad7", + "shasum": "" + }, + "require": { + "cocur/slugify": "^4.0", + "illuminate/config": "^8.0", + "illuminate/database": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0" + }, + "require-dev": { + "limedeck/phpunit-detailed-printer": "^6.0", + "mockery/mockery": "^1.4.2", + "orchestra/database": "^6.0", + "orchestra/testbench": "^6.0", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Cviebrock\\EloquentSluggable\\ServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Cviebrock\\EloquentSluggable\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin Viebrock", + "email": "colin@viebrock.ca" + } + ], + "description": "Easy creation of slugs for your Eloquent models in Laravel", + "homepage": "https://github.com/cviebrock/eloquent-sluggable", + "keywords": [ + "eloquent", + "eloquent-sluggable", + "laravel", + "lumen", + "slug", + "sluggable" + ], + "support": { + "issues": "https://github.com/cviebrock/eloquent-sluggable/issues", + "source": "https://github.com/cviebrock/eloquent-sluggable/tree/8.0.2" + }, + "time": "2020-11-29T18:53:58+00:00" + }, + { + "name": "defuse/php-encryption", + "version": "v2.2.1", + "source": { + "type": "git", + "url": "https://github.com/defuse/php-encryption.git", + "reference": "0f407c43b953d571421e0020ba92082ed5fb7620" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/defuse/php-encryption/zipball/0f407c43b953d571421e0020ba92082ed5fb7620", + "reference": "0f407c43b953d571421e0020ba92082ed5fb7620", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "paragonie/random_compat": ">= 2", + "php": ">=5.4.0" + }, + "require-dev": { + "nikic/php-parser": "^2.0|^3.0|^4.0", + "phpunit/phpunit": "^4|^5" + }, + "bin": [ + "bin/generate-defuse-key" + ], + "type": "library", + "autoload": { + "psr-4": { + "Defuse\\Crypto\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Hornby", + "email": "taylor@defuse.ca", + "homepage": "https://defuse.ca/" + }, + { + "name": "Scott Arciszewski", + "email": "info@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "Secure PHP Encryption Library", + "keywords": [ + "aes", + "authenticated encryption", + "cipher", + "crypto", + "cryptography", + "encrypt", + "encryption", + "openssl", + "security", + "symmetric key cryptography" + ], + "support": { + "issues": "https://github.com/defuse/php-encryption/issues", + "source": "https://github.com/defuse/php-encryption/tree/master" + }, + "time": "2018-07-24T23:27:56+00:00" + }, + { + "name": "digital-bird/shoppingcart", + "version": "3.0.4", + "source": { + "type": "git", + "url": "https://github.com/digital-bird/LaravelShoppingcart.git", + "reference": "03f07813310df17368b1b3bfa15489ac9112b633" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/digital-bird/LaravelShoppingcart/zipball/03f07813310df17368b1b3bfa15489ac9112b633", + "reference": "03f07813310df17368b1b3bfa15489ac9112b633", + "shasum": "" + }, + "require": { + "illuminate/events": "5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|6.*|7.*|8.*", + "illuminate/session": "5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|6.*|7.*|8.*", + "illuminate/support": "5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*|5.7.*|5.8.*|6.*|7.*|8.*" + }, + "require-dev": { + "mockery/mockery": "~0.9.0", + "orchestra/testbench": "~3.1", + "phpunit/phpunit": "~5.0|~6.0|~7.0|~8.0|~9,0" + }, + "suggest": { + "gloudemans/notify": "Simple flash notifications for Laravel" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Gloudemans\\Shoppingcart\\ShoppingcartServiceProvider" + ], + "aliases": { + "Cart": "Gloudemans\\Shoppingcart\\Facades\\Cart" + } + } + }, + "autoload": { + "psr-4": { + "Gloudemans\\Shoppingcart\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Rob Gloudemans", + "email": "info@robgloudemans.nl" + } + ], + "description": "Laravel Shoppingcart", + "keywords": [ + "laravel", + "shoppingcart" + ], + "support": { + "source": "https://github.com/digital-bird/LaravelShoppingcart/tree/3.0.4" + }, + "time": "2020-10-23T07:09:33+00:00" + }, + { + "name": "dnoegel/php-xdg-base-dir", + "version": "v0.1.1", + "source": { + "type": "git", + "url": "https://github.com/dnoegel/php-xdg-base-dir.git", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dnoegel/php-xdg-base-dir/zipball/8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "reference": "8f8a6e48c5ecb0f991c2fdcf5f154a47d85f9ffd", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "phpunit/phpunit": "~7.0|~6.0|~5.0|~4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "XdgBaseDir\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "implementation of xdg base directory specification for php", + "support": { + "issues": "https://github.com/dnoegel/php-xdg-base-dir/issues", + "source": "https://github.com/dnoegel/php-xdg-base-dir/tree/v0.1.1" + }, + "time": "2019-12-04T15:06:13+00:00" + }, + { + "name": "doctrine/cache", + "version": "1.10.2", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "13e3381b25847283a91948d04640543941309727" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/13e3381b25847283a91948d04640543941309727", + "reference": "13e3381b25847283a91948d04640543941309727", + "shasum": "" + }, + "require": { + "php": "~7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": ">2.2,<2.4" + }, + "require-dev": { + "alcaeus/mongo-php-adapter": "^1.1", + "doctrine/coding-standard": "^6.0", + "mongodb/mongodb": "^1.1", + "phpunit/phpunit": "^7.0", + "predis/predis": "~1.0" + }, + "suggest": { + "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.", + "homepage": "https://www.doctrine-project.org/projects/cache.html", + "keywords": [ + "abstraction", + "apcu", + "cache", + "caching", + "couchdb", + "memcached", + "php", + "redis", + "xcache" + ], + "support": { + "issues": "https://github.com/doctrine/cache/issues", + "source": "https://github.com/doctrine/cache/tree/1.10.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fcache", + "type": "tidelift" + } + ], + "time": "2020-07-07T18:54:01+00:00" + }, + { + "name": "doctrine/dbal", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "ee6d1260d5cc20ec506455a585945d7bdb98662c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/ee6d1260d5cc20ec506455a585945d7bdb98662c", + "reference": "ee6d1260d5cc20ec506455a585945d7bdb98662c", + "shasum": "" + }, + "require": { + "composer/package-versions-deprecated": "^1.11.99", + "doctrine/cache": "^1.0", + "doctrine/event-manager": "^1.0", + "php": "^7.3 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.1", + "jetbrains/phpstorm-stubs": "^2019.1", + "phpstan/phpstan": "^0.12.40", + "phpstan/phpstan-strict-rules": "^0.12.2", + "phpunit/phpunit": "^9.4", + "psalm/plugin-phpunit": "^0.10.0", + "symfony/console": "^2.0.5|^3.0|^4.0|^5.0", + "vimeo/psalm": "^3.17.2" + }, + "suggest": { + "symfony/console": "For helpful console commands such as SQL execution and import of files." + }, + "bin": [ + "bin/doctrine-dbal" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\DBAL\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + } + ], + "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.", + "homepage": "https://www.doctrine-project.org/projects/dbal.html", + "keywords": [ + "abstraction", + "database", + "db2", + "dbal", + "mariadb", + "mssql", + "mysql", + "oci8", + "oracle", + "pdo", + "pgsql", + "postgresql", + "queryobject", + "sasql", + "sql", + "sqlite", + "sqlserver", + "sqlsrv" + ], + "support": { + "issues": "https://github.com/doctrine/dbal/issues", + "source": "https://github.com/doctrine/dbal/tree/3.0.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fdbal", + "type": "tidelift" + } + ], + "time": "2020-11-15T18:20:41+00:00" + }, + { + "name": "doctrine/event-manager", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/event-manager.git", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f", + "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/common": "<2.9@dev" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpunit/phpunit": "^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\": "lib/Doctrine/Common" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com" + } + ], + "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.", + "homepage": "https://www.doctrine-project.org/projects/event-manager.html", + "keywords": [ + "event", + "event dispatcher", + "event manager", + "event system", + "events" + ], + "support": { + "issues": "https://github.com/doctrine/event-manager/issues", + "source": "https://github.com/doctrine/event-manager/tree/1.1.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Fevent-manager", + "type": "tidelift" + } + ], + "time": "2020-05-29T18:28:51+00:00" + }, + { + "name": "doctrine/inflector", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "reference": "9cf661f4eb38f7c881cac67c75ea9b00bf97b210", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^7.0", + "phpstan/phpstan": "^0.11", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-strict-rules": "^0.11", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2020-05-29T15:13:26+00:00" + }, + { + "name": "doctrine/lexer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/lexer.git", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/e864bbf5904cb8f5bb334f99209b48018522f042", + "reference": "e864bbf5904cb8f5bb334f99209b48018522f042", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^6.0", + "phpstan/phpstan": "^0.11.8", + "phpunit/phpunit": "^8.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", + "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "keywords": [ + "annotations", + "docblock", + "lexer", + "parser", + "php" + ], + "support": { + "issues": "https://github.com/doctrine/lexer/issues", + "source": "https://github.com/doctrine/lexer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", + "type": "tidelift" + } + ], + "time": "2020-05-25T17:44:05+00:00" + }, + { + "name": "dompdf/dompdf", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/dompdf/dompdf.git", + "reference": "45d260f2f6c6a542e0db3459470374c986a46d93" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/45d260f2f6c6a542e0db3459470374c986a46d93", + "reference": "45d260f2f6c6a542e0db3459470374c986a46d93", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "phenx/php-font-lib": "^0.5.2", + "phenx/php-svg-lib": "^0.3.3", + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "mockery/mockery": "^1.3", + "phpunit/phpunit": "^7.5 || ^8 || ^9", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance", + "ext-zlib": "Needed for pdf stream compression" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "0.7-dev" + } + }, + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + }, + { + "name": "Brian Sweeney", + "email": "eclecticgeek@gmail.com" + }, + { + "name": "Gabriel Bull", + "email": "me@gabrielbull.com" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "support": { + "issues": "https://github.com/dompdf/dompdf/issues", + "source": "https://github.com/dompdf/dompdf/tree/v1.0.1" + }, + "time": "2020-12-31T13:25:19+00:00" + }, + { + "name": "dragonmantank/cron-expression", + "version": "v3.1.0", + "source": { + "type": "git", + "url": "https://github.com/dragonmantank/cron-expression.git", + "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", + "reference": "7a8c6e56ab3ffcc538d05e8155bb42269abf1a0c", + "shasum": "" + }, + "require": { + "php": "^7.2|^8.0", + "webmozart/assert": "^1.7.0" + }, + "replace": { + "mtdowling/cron-expression": "^1.0" + }, + "require-dev": { + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-webmozart-assert": "^0.12.7", + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Cron\\": "src/Cron/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Tankersley", + "email": "chris@ctankersley.com", + "homepage": "https://github.com/dragonmantank" + } + ], + "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", + "keywords": [ + "cron", + "schedule" + ], + "support": { + "issues": "https://github.com/dragonmantank/cron-expression/issues", + "source": "https://github.com/dragonmantank/cron-expression/tree/v3.1.0" + }, + "funding": [ + { + "url": "https://github.com/dragonmantank", + "type": "github" + } + ], + "time": "2020-11-24T19:55:57+00:00" + }, + { + "name": "egulias/email-validator", + "version": "2.1.25", + "source": { + "type": "git", + "url": "https://github.com/egulias/EmailValidator.git", + "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4", + "shasum": "" + }, + "require": { + "doctrine/lexer": "^1.0.1", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.10" + }, + "require-dev": { + "dominicsayers/isemail": "^3.0.7", + "phpunit/phpunit": "^4.8.36|^7.5.15", + "satooshi/php-coveralls": "^1.0.1" + }, + "suggest": { + "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Egulias\\EmailValidator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eduardo Gulias Davis" + } + ], + "description": "A library for validating emails against several RFCs", + "homepage": "https://github.com/egulias/EmailValidator", + "keywords": [ + "email", + "emailvalidation", + "emailvalidator", + "validation", + "validator" + ], + "support": { + "issues": "https://github.com/egulias/EmailValidator/issues", + "source": "https://github.com/egulias/EmailValidator/tree/2.1.25" + }, + "funding": [ + { + "url": "https://github.com/egulias", + "type": "github" + } + ], + "time": "2020-12-29T14:50:06+00:00" + }, + { + "name": "fideloper/proxy", + "version": "4.4.1", + "source": { + "type": "git", + "url": "https://github.com/fideloper/TrustedProxy.git", + "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/c073b2bd04d1c90e04dc1b787662b558dd65ade0", + "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0", + "php": ">=5.4.0" + }, + "require-dev": { + "illuminate/http": "^5.0|^6.0|^7.0|^8.0|^9.0", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Fideloper\\Proxy\\TrustedProxyServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Fideloper\\Proxy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Fidao", + "email": "fideloper@gmail.com" + } + ], + "description": "Set trusted proxies for Laravel", + "keywords": [ + "load balancing", + "proxy", + "trusted proxy" + ], + "support": { + "issues": "https://github.com/fideloper/TrustedProxy/issues", + "source": "https://github.com/fideloper/TrustedProxy/tree/4.4.1" + }, + "time": "2020-10-22T13:48:01+00:00" + }, + { + "name": "firebase/php-jwt", + "version": "v5.2.0", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "feb0e820b8436873675fd3aca04f3728eb2185cb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/feb0e820b8436873675fd3aca04f3728eb2185cb", + "reference": "feb0e820b8436873675fd3aca04f3728eb2185cb", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": ">=4.8 <=9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/master" + }, + "time": "2020-03-25T18:49:23+00:00" + }, + { + "name": "fruitcake/laravel-cors", + "version": "v2.0.3", + "source": { + "type": "git", + "url": "https://github.com/fruitcake/laravel-cors.git", + "reference": "01de0fe5f71c70d1930ee9a80385f9cc28e0f63a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/01de0fe5f71c70d1930ee9a80385f9cc28e0f63a", + "reference": "01de0fe5f71c70d1930ee9a80385f9cc28e0f63a", + "shasum": "" + }, + "require": { + "asm89/stack-cors": "^2.0.1", + "illuminate/contracts": "^6|^7|^8|^9", + "illuminate/support": "^6|^7|^8|^9", + "php": ">=7.2", + "symfony/http-foundation": "^4|^5", + "symfony/http-kernel": "^4.3.4|^5" + }, + "require-dev": { + "laravel/framework": "^6|^7|^8", + "orchestra/testbench-dusk": "^4|^5|^6", + "phpunit/phpunit": "^6|^7|^8", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + }, + "laravel": { + "providers": [ + "Fruitcake\\Cors\\CorsServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Fruitcake\\Cors\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fruitcake", + "homepage": "https://fruitcake.nl" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application", + "keywords": [ + "api", + "cors", + "crossdomain", + "laravel" + ], + "support": { + "issues": "https://github.com/fruitcake/laravel-cors/issues", + "source": "https://github.com/fruitcake/laravel-cors/tree/v2.0.3" + }, + "funding": [ + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2020-10-22T13:57:20+00:00" + }, + { + "name": "graham-campbell/result-type", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/GrahamCampbell/Result-Type.git", + "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/7e279d2cd5d7fbb156ce46daada972355cea27bb", + "reference": "7e279d2cd5d7fbb156ce46daada972355cea27bb", + "shasum": "" + }, + "require": { + "php": "^7.0|^8.0", + "phpoption/phpoption": "^1.7.3" + }, + "require-dev": { + "phpunit/phpunit": "^6.5|^7.5|^8.5|^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "GrahamCampbell\\ResultType\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "An Implementation Of The Result Type", + "keywords": [ + "Graham Campbell", + "GrahamCampbell", + "Result Type", + "Result-Type", + "result" + ], + "support": { + "issues": "https://github.com/GrahamCampbell/Result-Type/issues", + "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type", + "type": "tidelift" + } + ], + "time": "2020-04-13T13:17:36+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.2.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", + "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.4", + "guzzlehttp/psr7": "^1.7", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "ext-curl": "*", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "psr/log": "^1.1" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.1-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.2.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://github.com/alexeyshockov", + "type": "github" + }, + { + "url": "https://github.com/gmponos", + "type": "github" + } + ], + "time": "2020-10-10T11:47:56+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "60d379c243457e073cff02bc323a2a86cb355631" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", + "reference": "60d379c243457e073cff02bc323a2a86cb355631", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.4.0" + }, + "time": "2020-09-30T07:37:28+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.7.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Schultze", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.7.0" + }, + "time": "2020-09-30T07:37:11+00:00" + }, + { + "name": "intervention/image", + "version": "2.5.1", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "abbf18d5ab8367f96b3205ca3c89fb2fa598c69e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/abbf18d5ab8367f96b3205ca3c89fb2fa598c69e", + "reference": "abbf18d5ab8367f96b3205ca3c89fb2fa598c69e", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@olivervogel.com", + "homepage": "http://olivervogel.com/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "support": { + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/master" + }, + "time": "2019-11-02T09:15:47+00:00" + }, + { + "name": "jenssegers/date", + "version": "v4.0.0", + "source": { + "type": "git", + "url": "https://github.com/jenssegers/date.git", + "reference": "506f86096e0b512f9ece6ad0ccae62b03c125771" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jenssegers/date/zipball/506f86096e0b512f9ece6ad0ccae62b03c125771", + "reference": "506f86096e0b512f9ece6ad0ccae62b03c125771", + "shasum": "" + }, + "require": { + "nesbot/carbon": "^2.16" + }, + "require-dev": { + "phpunit/phpunit": "^7.5", + "satooshi/php-coveralls": "^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + }, + "laravel": { + "providers": [ + "Jenssegers\\Date\\DateServiceProvider" + ], + "aliases": { + "Date": "Jenssegers\\Date\\Date" + } + } + }, + "autoload": { + "psr-4": { + "Jenssegers\\Date\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jens Segers", + "homepage": "https://jenssegers.com" + } + ], + "description": "A date library to help you work with dates in different languages", + "homepage": "https://github.com/jenssegers/date", + "keywords": [ + "carbon", + "date", + "datetime", + "i18n", + "laravel", + "time", + "translation" + ], + "support": { + "issues": "https://github.com/jenssegers/date/issues", + "source": "https://github.com/jenssegers/date/tree/master" + }, + "funding": [ + { + "url": "https://github.com/jenssegers", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/jenssegers/date", + "type": "tidelift" + } + ], + "time": "2020-04-28T06:35:54+00:00" + }, + { + "name": "laracasts/flash", + "version": "3.2", + "source": { + "type": "git", + "url": "https://github.com/laracasts/flash.git", + "reference": "76c2e200498795bdbeda97b682536130316e8b97" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laracasts/flash/zipball/76c2e200498795bdbeda97b682536130316e8b97", + "reference": "76c2e200498795bdbeda97b682536130316e8b97", + "shasum": "" + }, + "require": { + "illuminate/support": "~5.0|^6.0|^7.0|^8.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "dev-master", + "phpunit/phpunit": "^6.1" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Laracasts\\Flash\\FlashServiceProvider" + ], + "aliases": { + "Flash": "Laracasts\\Flash\\Flash" + } + } + }, + "autoload": { + "psr-0": { + "Laracasts\\Flash": "src/" + }, + "files": [ + "src/Laracasts/Flash/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jeffrey Way", + "email": "jeffrey@laracasts.com" + } + ], + "description": "Easy flash notifications", + "support": { + "issues": "https://github.com/laracasts/flash/issues", + "source": "https://github.com/laracasts/flash/tree/master" + }, + "time": "2020-09-07T13:25:35+00:00" + }, + { + "name": "laravel/framework", + "version": "v8.21.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/framework.git", + "reference": "a61cab167c35f465a923737ee6e6fb99cd5fde88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/framework/zipball/a61cab167c35f465a923737ee6e6fb99cd5fde88", + "reference": "a61cab167c35f465a923737ee6e6fb99cd5fde88", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^1.4|^2.0", + "dragonmantank/cron-expression": "^3.0.2", + "egulias/email-validator": "^2.1.10", + "ext-json": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "league/commonmark": "^1.3", + "league/flysystem": "^1.1", + "monolog/monolog": "^2.0", + "nesbot/carbon": "^2.31", + "opis/closure": "^3.6", + "php": "^7.3|^8.0", + "psr/container": "^1.0", + "psr/simple-cache": "^1.0", + "ramsey/uuid": "^4.0", + "swiftmailer/swiftmailer": "^6.0", + "symfony/console": "^5.1.4", + "symfony/error-handler": "^5.1.4", + "symfony/finder": "^5.1.4", + "symfony/http-foundation": "^5.1.4", + "symfony/http-kernel": "^5.1.4", + "symfony/mime": "^5.1.4", + "symfony/process": "^5.1.4", + "symfony/routing": "^5.1.4", + "symfony/var-dumper": "^5.1.4", + "tijsverkoyen/css-to-inline-styles": "^2.2.2", + "vlucas/phpdotenv": "^5.2", + "voku/portable-ascii": "^1.4.8" + }, + "conflict": { + "tightenco/collect": "<5.5.33" + }, + "provide": { + "psr/container-implementation": "1.0" + }, + "replace": { + "illuminate/auth": "self.version", + "illuminate/broadcasting": "self.version", + "illuminate/bus": "self.version", + "illuminate/cache": "self.version", + "illuminate/collections": "self.version", + "illuminate/config": "self.version", + "illuminate/console": "self.version", + "illuminate/container": "self.version", + "illuminate/contracts": "self.version", + "illuminate/cookie": "self.version", + "illuminate/database": "self.version", + "illuminate/encryption": "self.version", + "illuminate/events": "self.version", + "illuminate/filesystem": "self.version", + "illuminate/hashing": "self.version", + "illuminate/http": "self.version", + "illuminate/log": "self.version", + "illuminate/macroable": "self.version", + "illuminate/mail": "self.version", + "illuminate/notifications": "self.version", + "illuminate/pagination": "self.version", + "illuminate/pipeline": "self.version", + "illuminate/queue": "self.version", + "illuminate/redis": "self.version", + "illuminate/routing": "self.version", + "illuminate/session": "self.version", + "illuminate/support": "self.version", + "illuminate/testing": "self.version", + "illuminate/translation": "self.version", + "illuminate/validation": "self.version", + "illuminate/view": "self.version" + }, + "require-dev": { + "aws/aws-sdk-php": "^3.155", + "doctrine/dbal": "^2.6|^3.0", + "filp/whoops": "^2.8", + "guzzlehttp/guzzle": "^6.5.5|^7.0.1", + "league/flysystem-cached-adapter": "^1.0", + "mockery/mockery": "^1.4.2", + "orchestra/testbench-core": "^6.8", + "pda/pheanstalk": "^4.0", + "phpunit/phpunit": "^8.5.8|^9.3.3", + "predis/predis": "^1.1.1", + "symfony/cache": "^5.1.4" + }, + "suggest": { + "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.155).", + "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.6|^3.0).", + "ext-ftp": "Required to use the Flysystem FTP driver.", + "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().", + "ext-memcached": "Required to use the memcache cache driver.", + "ext-pcntl": "Required to use all features of the queue worker.", + "ext-posix": "Required to use all features of the queue worker.", + "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).", + "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).", + "filp/whoops": "Required for friendly error pages in development (^2.8).", + "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).", + "laravel/tinker": "Required to use the tinker console command (^2.0).", + "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).", + "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).", + "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).", + "mockery/mockery": "Required to use mocking (^1.4.2).", + "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).", + "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).", + "phpunit/phpunit": "Required to use assertions and run tests (^8.5.8|^9.3.3).", + "predis/predis": "Required to use the predis connector (^1.1.2).", + "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).", + "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0).", + "symfony/cache": "Required to PSR-6 cache bridge (^5.1.4).", + "symfony/filesystem": "Required to enable support for relative symbolic links (^5.1.4).", + "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).", + "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "8.x-dev" + } + }, + "autoload": { + "files": [ + "src/Illuminate/Collections/helpers.php", + "src/Illuminate/Events/functions.php", + "src/Illuminate/Foundation/helpers.php", + "src/Illuminate/Support/helpers.php" + ], + "psr-4": { + "Illuminate\\": "src/Illuminate/", + "Illuminate\\Support\\": [ + "src/Illuminate/Macroable/", + "src/Illuminate/Collections/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "The Laravel Framework.", + "homepage": "https://laravel.com", + "keywords": [ + "framework", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/framework/issues", + "source": "https://github.com/laravel/framework" + }, + "time": "2021-01-05T15:43:10+00:00" + }, + { + "name": "laravel/helpers", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/helpers.git", + "reference": "cde8ea2427db4f37d67729846b70452499210a21" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/helpers/zipball/cde8ea2427db4f37d67729846b70452499210a21", + "reference": "cde8ea2427db4f37d67729846b70452499210a21", + "shasum": "" + }, + "require": { + "illuminate/support": "~5.8.0|^6.0|^7.0|^8.0", + "php": "^7.1.3|^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0|^8.0|^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + }, + { + "name": "Dries Vints", + "email": "dries.vints@gmail.com" + } + ], + "description": "Provides backwards compatibility for helpers in the latest Laravel release.", + "keywords": [ + "helpers", + "laravel" + ], + "support": { + "source": "https://github.com/laravel/helpers/tree/v1.4.0" + }, + "time": "2020-11-03T16:38:41+00:00" + }, + { + "name": "laravel/passport", + "version": "v10.1.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/passport.git", + "reference": "c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/passport/zipball/c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4", + "reference": "c2b93a7d8d93cf303bb1eefbfa5610f084f9bdd4", + "shasum": "" + }, + "require": { + "ext-json": "*", + "firebase/php-jwt": "^5.0", + "illuminate/auth": "^8.2", + "illuminate/console": "^8.2", + "illuminate/container": "^8.2", + "illuminate/contracts": "^8.2", + "illuminate/cookie": "^8.2", + "illuminate/database": "^8.2", + "illuminate/encryption": "^8.2", + "illuminate/http": "^8.2", + "illuminate/support": "^8.2", + "lcobucci/jwt": "^3.4|^4.0", + "league/oauth2-server": "^8.2", + "nyholm/psr7": "^1.3", + "php": "^7.3|^8.0", + "phpseclib/phpseclib": "^2.0", + "symfony/psr-http-message-bridge": "^2.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^6.0", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "10.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Passport\\PassportServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Passport\\": "src/", + "Laravel\\Passport\\Database\\Factories\\": "database/factories/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel Passport provides OAuth2 server support to Laravel.", + "keywords": [ + "laravel", + "oauth", + "passport" + ], + "support": { + "issues": "https://github.com/laravel/passport/issues", + "source": "https://github.com/laravel/passport" + }, + "time": "2020-11-26T07:57:30+00:00" + }, + { + "name": "laravel/tinker", + "version": "v2.5.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/tinker.git", + "reference": "45884b526e10a88a1b179fa1a1a24d5468c668c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/tinker/zipball/45884b526e10a88a1b179fa1a1a24d5468c668c2", + "reference": "45884b526e10a88a1b179fa1a1a24d5468c668c2", + "shasum": "" + }, + "require": { + "illuminate/console": "^6.0|^7.0|^8.0", + "illuminate/contracts": "^6.0|^7.0|^8.0", + "illuminate/support": "^6.0|^7.0|^8.0", + "php": "^7.2.5|^8.0", + "psy/psysh": "^0.10.4", + "symfony/var-dumper": "^4.3.4|^5.0" + }, + "require-dev": { + "mockery/mockery": "~1.3.3|^1.4.2", + "phpunit/phpunit": "^8.5.8|^9.3.3" + }, + "suggest": { + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0)." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Tinker\\TinkerServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Tinker\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Powerful REPL for the Laravel framework.", + "keywords": [ + "REPL", + "Tinker", + "laravel", + "psysh" + ], + "support": { + "issues": "https://github.com/laravel/tinker/issues", + "source": "https://github.com/laravel/tinker/tree/v2.5.0" + }, + "time": "2020-10-29T13:07:12+00:00" + }, + { + "name": "laravel/ui", + "version": "v3.1.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/ui.git", + "reference": "444072cb2f8baaa15172c5cde2bd30d188c3b7e7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/ui/zipball/444072cb2f8baaa15172c5cde2bd30d188c3b7e7", + "reference": "444072cb2f8baaa15172c5cde2bd30d188c3b7e7", + "shasum": "" + }, + "require": { + "illuminate/console": "^8.0", + "illuminate/filesystem": "^8.0", + "illuminate/support": "^8.0", + "php": "^7.3|^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Ui\\UiServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Ui\\": "src/", + "Illuminate\\Foundation\\Auth\\": "auth-backend/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Laravel UI utilities and presets.", + "keywords": [ + "laravel", + "ui" + ], + "support": { + "issues": "https://github.com/laravel/ui/issues", + "source": "https://github.com/laravel/ui/tree/v3.1.0" + }, + "time": "2020-11-03T19:51:21+00:00" + }, + { + "name": "laravelcollective/html", + "version": "v6.2.1", + "source": { + "type": "git", + "url": "https://github.com/LaravelCollective/html.git", + "reference": "ae15b9c4bf918ec3a78f092b8555551dd693fde3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/LaravelCollective/html/zipball/ae15b9c4bf918ec3a78f092b8555551dd693fde3", + "reference": "ae15b9c4bf918ec3a78f092b8555551dd693fde3", + "shasum": "" + }, + "require": { + "illuminate/http": "^6.0|^7.0|^8.0", + "illuminate/routing": "^6.0|^7.0|^8.0", + "illuminate/session": "^6.0|^7.0|^8.0", + "illuminate/support": "^6.0|^7.0|^8.0", + "illuminate/view": "^6.0|^7.0|^8.0", + "php": ">=7.2.5" + }, + "require-dev": { + "illuminate/database": "^6.0|^7.0|^8.0", + "mockery/mockery": "~1.0", + "phpunit/phpunit": "~8.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.x-dev" + }, + "laravel": { + "providers": [ + "Collective\\Html\\HtmlServiceProvider" + ], + "aliases": { + "Form": "Collective\\Html\\FormFacade", + "Html": "Collective\\Html\\HtmlFacade" + } + } + }, + "autoload": { + "psr-4": { + "Collective\\Html\\": "src/" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Adam Engebretson", + "email": "adam@laravelcollective.com" + }, + { + "name": "Taylor Otwell", + "email": "taylorotwell@gmail.com" + } + ], + "description": "HTML and Form Builders for the Laravel Framework", + "homepage": "https://laravelcollective.com", + "support": { + "issues": "https://github.com/LaravelCollective/html/issues", + "source": "https://github.com/LaravelCollective/html" + }, + "time": "2020-12-15T20:20:05+00:00" + }, + { + "name": "lcobucci/jwt", + "version": "3.4.2", + "source": { + "type": "git", + "url": "https://github.com/lcobucci/jwt.git", + "reference": "17cb82dd625ccb17c74bf8f38563d3b260306483" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/17cb82dd625ccb17c74bf8f38563d3b260306483", + "reference": "17cb82dd625ccb17c74bf8f38563d3b260306483", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "ext-openssl": "*", + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "mikey179/vfsstream": "~1.5", + "phpmd/phpmd": "~2.2", + "phpunit/php-invoker": "~1.1", + "phpunit/phpunit": "^5.7 || ^7.3", + "squizlabs/php_codesniffer": "~2.3" + }, + "suggest": { + "lcobucci/clock": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "Lcobucci\\JWT\\": "src" + }, + "files": [ + "compat/class-aliases.php", + "compat/json-exception-polyfill.php", + "compat/lcobucci-clock-polyfill.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Luís Otávio Cobucci Oblonczyk", + "email": "lcobucci@gmail.com", + "role": "Developer" + } + ], + "description": "A simple library to work with JSON Web Token and JSON Web Signature", + "keywords": [ + "JWS", + "jwt" + ], + "support": { + "issues": "https://github.com/lcobucci/jwt/issues", + "source": "https://github.com/lcobucci/jwt/tree/3.4.2" + }, + "funding": [ + { + "url": "https://github.com/lcobucci", + "type": "github" + }, + { + "url": "https://www.patreon.com/lcobucci", + "type": "patreon" + } + ], + "time": "2020-12-03T13:43:45+00:00" + }, + { + "name": "league/commonmark", + "version": "1.5.7", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/commonmark.git", + "reference": "11df9b36fd4f1d2b727a73bf14931d81373b9a54" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/11df9b36fd4f1d2b727a73bf14931d81373b9a54", + "reference": "11df9b36fd4f1d2b727a73bf14931d81373b9a54", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "scrutinizer/ocular": "1.7.*" + }, + "require-dev": { + "cebe/markdown": "~1.0", + "commonmark/commonmark.js": "0.29.2", + "erusev/parsedown": "~1.0", + "ext-json": "*", + "github/gfm": "0.29.0", + "michelf/php-markdown": "~1.4", + "mikehaertl/php-shellcommand": "^1.4", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2", + "scrutinizer/ocular": "^1.5", + "symfony/finder": "^4.2" + }, + "bin": [ + "bin/commonmark" + ], + "type": "library", + "autoload": { + "psr-4": { + "League\\CommonMark\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)", + "homepage": "https://commonmark.thephpleague.com", + "keywords": [ + "commonmark", + "flavored", + "gfm", + "github", + "github-flavored", + "markdown", + "md", + "parser" + ], + "support": { + "docs": "https://commonmark.thephpleague.com/", + "issues": "https://github.com/thephpleague/commonmark/issues", + "rss": "https://github.com/thephpleague/commonmark/releases.atom", + "source": "https://github.com/thephpleague/commonmark" + }, + "funding": [ + { + "url": "https://enjoy.gitstore.app/repositories/thephpleague/commonmark", + "type": "custom" + }, + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + }, + { + "url": "https://www.patreon.com/colinodell", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/commonmark", + "type": "tidelift" + } + ], + "time": "2020-10-31T13:49:32+00:00" + }, + { + "name": "league/event", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/event.git", + "reference": "d2cc124cf9a3fab2bb4ff963307f60361ce4d119" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/event/zipball/d2cc124cf9a3fab2bb4ff963307f60361ce4d119", + "reference": "d2cc124cf9a3fab2bb4ff963307f60361ce4d119", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "henrikbjorn/phpspec-code-coverage": "~1.0.1", + "phpspec/phpspec": "^2.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Event\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Event package", + "keywords": [ + "emitter", + "event", + "listener" + ], + "support": { + "issues": "https://github.com/thephpleague/event/issues", + "source": "https://github.com/thephpleague/event/tree/master" + }, + "time": "2018-11-26T11:52:41+00:00" + }, + { + "name": "league/flysystem", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "9be3b16c877d477357c015cec057548cf9b2a14a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/9be3b16c877d477357c015cec057548cf9b2a14a", + "reference": "9be3b16c877d477357c015cec057548cf9b2a14a", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "league/mime-type-detection": "^1.3", + "php": "^7.2.5 || ^8.0" + }, + "conflict": { + "league/flysystem-sftp": "<1.0.6" + }, + "require-dev": { + "phpspec/prophecy": "^1.11.1", + "phpunit/phpunit": "^8.5.8" + }, + "suggest": { + "ext-fileinfo": "Required for MimeType", + "ext-ftp": "Allows you to use FTP server storage", + "ext-openssl": "Allows you to use FTPS server storage", + "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2", + "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3", + "league/flysystem-azure": "Allows you to use Windows Azure Blob storage", + "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching", + "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem", + "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files", + "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib", + "league/flysystem-webdav": "Allows you to use WebDAV storage", + "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter", + "spatie/flysystem-dropbox": "Allows you to use Dropbox storage", + "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frenky.net" + } + ], + "description": "Filesystem abstraction: Many filesystems, one API.", + "keywords": [ + "Cloud Files", + "WebDAV", + "abstraction", + "aws", + "cloud", + "copy.com", + "dropbox", + "file systems", + "files", + "filesystem", + "filesystems", + "ftp", + "rackspace", + "remote", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/1.x" + }, + "funding": [ + { + "url": "https://offset.earth/frankdejonge", + "type": "other" + } + ], + "time": "2020-08-23T07:39:11+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/353f66d7555d8a90781f6f5e7091932f9a4250aa", + "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.36", + "phpunit/phpunit": "^8.5.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.5.1" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2020-10-18T11:50:25+00:00" + }, + { + "name": "league/oauth2-server", + "version": "8.2.4", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/oauth2-server.git", + "reference": "622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c", + "reference": "622eaa1f28eb4a2dea0cfc7e4f5280fac794e83c", + "shasum": "" + }, + "require": { + "defuse/php-encryption": "^2.2.1", + "ext-json": "*", + "ext-openssl": "*", + "lcobucci/jwt": "^3.4 || ^4.0", + "league/event": "^2.2", + "php": "^7.2 || ^8.0", + "psr/http-message": "^1.0.1" + }, + "replace": { + "league/oauth2server": "*", + "lncd/oauth2": "*" + }, + "require-dev": { + "laminas/laminas-diactoros": "^2.4.1", + "phpstan/phpstan": "^0.12.57", + "phpstan/phpstan-phpunit": "^0.12.16", + "phpunit/phpunit": "^8.5.13", + "roave/security-advisories": "dev-master" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\OAuth2\\Server\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Bilbie", + "email": "hello@alexbilbie.com", + "homepage": "http://www.alexbilbie.com", + "role": "Developer" + }, + { + "name": "Andy Millington", + "email": "andrew@noexceptions.io", + "homepage": "https://www.noexceptions.io", + "role": "Developer" + } + ], + "description": "A lightweight and powerful OAuth 2.0 authorization and resource server library with support for all the core specification grants. This library will allow you to secure your API with OAuth and allow your applications users to approve apps that want to access their data from your API.", + "homepage": "https://oauth2.thephpleague.com/", + "keywords": [ + "Authentication", + "api", + "auth", + "authorisation", + "authorization", + "oauth", + "oauth 2", + "oauth 2.0", + "oauth2", + "protect", + "resource", + "secure", + "server" + ], + "support": { + "issues": "https://github.com/thephpleague/oauth2-server/issues", + "source": "https://github.com/thephpleague/oauth2-server/tree/8.2.4" + }, + "funding": [ + { + "url": "https://github.com/sephster", + "type": "github" + } + ], + "time": "2020-12-10T11:35:44+00:00" + }, + { + "name": "monolog/monolog", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "reference": "1cb1cde8e8dd0f70cc0fe51354a59acad9302084", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/log": "^1.0.1" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7", + "graylog2/gelf-php": "^1.4.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpspec/prophecy": "^1.6.1", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "^8.5", + "predis/predis": "^1.1", + "rollbar/rollbar": "^1.3", + "ruflin/elastica": ">=0.90 <7.0.1", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/2.2.0" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2020-12-14T13:15:25+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.43.0", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "d32c57d8389113742f4a88725a170236470012e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/d32c57d8389113742f4a88725a170236470012e2", + "reference": "d32c57d8389113742f4a88725a170236470012e2", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.1.8 || ^8.0", + "symfony/polyfill-mbstring": "^1.0", + "symfony/translation": "^3.4 || ^4.0 || ^5.0" + }, + "require-dev": { + "doctrine/orm": "^2.7", + "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", + "kylekatarnls/multi-tester": "^2.0", + "phpmd/phpmd": "^2.9", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12.54", + "phpunit/phpunit": "^7.5 || ^8.0", + "squizlabs/php_codesniffer": "^3.4" + }, + "bin": [ + "bin/carbon" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev", + "dev-3.x": "3.x-dev" + }, + "laravel": { + "providers": [ + "Carbon\\Laravel\\ServiceProvider" + ] + }, + "phpstan": { + "includes": [ + "extension.neon" + ] + } + }, + "autoload": { + "psr-4": { + "Carbon\\": "src/Carbon/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Brian Nesbitt", + "email": "brian@nesbot.com", + "homepage": "http://nesbot.com" + }, + { + "name": "kylekatarnls", + "homepage": "http://github.com/kylekatarnls" + } + ], + "description": "An API extension for DateTime that supports 281 different languages.", + "homepage": "http://carbon.nesbot.com", + "keywords": [ + "date", + "datetime", + "time" + ], + "support": { + "issues": "https://github.com/briannesbitt/Carbon/issues", + "source": "https://github.com/briannesbitt/Carbon" + }, + "funding": [ + { + "url": "https://opencollective.com/Carbon", + "type": "open_collective" + }, + { + "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon", + "type": "tidelift" + } + ], + "time": "2020-12-17T20:55:32+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.10.4", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" + }, + "time": "2020-12-20T10:01:03+00:00" + }, + { + "name": "nyholm/psr7", + "version": "1.3.2", + "source": { + "type": "git", + "url": "https://github.com/Nyholm/psr7.git", + "reference": "a272953743c454ac4af9626634daaf5ab3ce1173" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/a272953743c454ac4af9626634daaf5ab3ce1173", + "reference": "a272953743c454ac4af9626634daaf5ab3ce1173", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "php-http/message-factory": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "http-interop/http-factory-tests": "^0.8", + "php-http/psr7-integration-tests": "^1.0", + "phpunit/phpunit": "^7.5 || 8.5 || 9.4", + "symfony/error-handler": "^4.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Nyholm\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com" + }, + { + "name": "Martijn van der Ven", + "email": "martijn@vanderven.se" + } + ], + "description": "A fast PHP7 implementation of PSR-7", + "homepage": "https://tnyholm.se", + "keywords": [ + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/Nyholm/psr7/issues", + "source": "https://github.com/Nyholm/psr7/tree/1.3.2" + }, + "funding": [ + { + "url": "https://github.com/Zegnat", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2020-11-14T17:35:34+00:00" + }, + { + "name": "opis/closure", + "version": "3.6.1", + "source": { + "type": "git", + "url": "https://github.com/opis/closure.git", + "reference": "943b5d70cc5ae7483f6aff6ff43d7e34592ca0f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/opis/closure/zipball/943b5d70cc5ae7483f6aff6ff43d7e34592ca0f5", + "reference": "943b5d70cc5ae7483f6aff6ff43d7e34592ca0f5", + "shasum": "" + }, + "require": { + "php": "^5.4 || ^7.0 || ^8.0" + }, + "require-dev": { + "jeremeamia/superclosure": "^2.0", + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.6.x-dev" + } + }, + "autoload": { + "psr-4": { + "Opis\\Closure\\": "src/" + }, + "files": [ + "functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marius Sarca", + "email": "marius.sarca@gmail.com" + }, + { + "name": "Sorin Sarca", + "email": "sarca_sorin@hotmail.com" + } + ], + "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.", + "homepage": "https://opis.io/closure", + "keywords": [ + "anonymous functions", + "closure", + "function", + "serializable", + "serialization", + "serialize" + ], + "support": { + "issues": "https://github.com/opis/closure/issues", + "source": "https://github.com/opis/closure/tree/3.6.1" + }, + "time": "2020-11-07T02:01:34+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "phenx/php-font-lib", + "version": "0.5.2", + "source": { + "type": "git", + "url": "https://github.com/PhenX/php-font-lib.git", + "reference": "ca6ad461f032145fff5971b5985e5af9e7fa88d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/ca6ad461f032145fff5971b5985e5af9e7fa88d8", + "reference": "ca6ad461f032145fff5971b5985e5af9e7fa88d8", + "shasum": "" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5 || ^6 || ^7" + }, + "type": "library", + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", + "support": { + "issues": "https://github.com/PhenX/php-font-lib/issues", + "source": "https://github.com/PhenX/php-font-lib/tree/0.5.2" + }, + "time": "2020-03-08T15:31:32+00:00" + }, + { + "name": "phenx/php-svg-lib", + "version": "v0.3.3", + "source": { + "type": "git", + "url": "https://github.com/PhenX/php-svg-lib.git", + "reference": "5fa61b65e612ce1ae15f69b3d223cb14ecc60e32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/5fa61b65e612ce1ae15f69b3d223cb14ecc60e32", + "reference": "5fa61b65e612ce1ae15f69b3d223cb14ecc60e32", + "shasum": "" + }, + "require": { + "sabberworm/php-css-parser": "^8.3" + }, + "require-dev": { + "phpunit/phpunit": "^5.5|^6.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", + "support": { + "issues": "https://github.com/PhenX/php-svg-lib/issues", + "source": "https://github.com/PhenX/php-svg-lib/tree/master" + }, + "time": "2019-09-11T20:02:13+00:00" + }, + { + "name": "php-http/message-factory", + "version": "v1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-http/message-factory.git", + "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1", + "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Factory interfaces for PSR-7 HTTP Message", + "homepage": "http://php-http.org", + "keywords": [ + "factory", + "http", + "message", + "stream", + "uri" + ], + "support": { + "issues": "https://github.com/php-http/message-factory/issues", + "source": "https://github.com/php-http/message-factory/tree/master" + }, + "time": "2015-12-19T14:08:53+00:00" + }, + { + "name": "phpoption/phpoption", + "version": "1.7.5", + "source": { + "type": "git", + "url": "https://github.com/schmittjoh/php-option.git", + "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/994ecccd8f3283ecf5ac33254543eb0ac946d525", + "reference": "994ecccd8f3283ecf5ac33254543eb0ac946d525", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.7-dev" + } + }, + "autoload": { + "psr-4": { + "PhpOption\\": "src/PhpOption/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Johannes M. Schmitt", + "email": "schmittjoh@gmail.com" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com" + } + ], + "description": "Option Type for PHP", + "keywords": [ + "language", + "option", + "php", + "type" + ], + "support": { + "issues": "https://github.com/schmittjoh/php-option/issues", + "source": "https://github.com/schmittjoh/php-option/tree/1.7.5" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption", + "type": "tidelift" + } + ], + "time": "2020-07-20T17:29:33+00:00" + }, + { + "name": "phpseclib/phpseclib", + "version": "2.0.30", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "136b9ca7eebef78be14abf90d65c5e57b6bc5d36" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/136b9ca7eebef78be14abf90d65c5e57b6bc5d36", + "reference": "136b9ca7eebef78be14abf90d65c5e57b6bc5d36", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phing/phing": "~2.7", + "phpunit/phpunit": "^4.8.35|^5.7|^6.0|^9.4", + "squizlabs/php_codesniffer": "~2.0" + }, + "suggest": { + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/2.0.30" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2020-12-17T05:42:04+00:00" + }, + { + "name": "psr/container", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/master" + }, + "time": "2017-02-14T16:28:37+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.3" + }, + "time": "2020-03-23T09:12:05+00:00" + }, + { + "name": "psr/simple-cache", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/master" + }, + "time": "2017-10-23T01:57:42+00:00" + }, + { + "name": "psy/psysh", + "version": "v0.10.5", + "source": { + "type": "git", + "url": "https://github.com/bobthecow/psysh.git", + "reference": "7c710551d4a2653afa259c544508dc18a9098956" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/7c710551d4a2653afa259c544508dc18a9098956", + "reference": "7c710551d4a2653afa259c544508dc18a9098956", + "shasum": "" + }, + "require": { + "dnoegel/php-xdg-base-dir": "0.1.*", + "ext-json": "*", + "ext-tokenizer": "*", + "nikic/php-parser": "~4.0|~3.0|~2.0|~1.3", + "php": "^8.0 || ^7.0 || ^5.5.9", + "symfony/console": "~5.0|~4.0|~3.0|^2.4.2|~2.3.10", + "symfony/var-dumper": "~5.0|~4.0|~3.0|~2.7" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.2", + "hoa/console": "3.17.*" + }, + "suggest": { + "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", + "ext-pdo-sqlite": "The doc command requires SQLite to work.", + "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.", + "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.", + "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit." + }, + "bin": [ + "bin/psysh" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.10.x-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Psy\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Justin Hileman", + "email": "justin@justinhileman.info", + "homepage": "http://justinhileman.com" + } + ], + "description": "An interactive shell for modern PHP.", + "homepage": "http://psysh.org", + "keywords": [ + "REPL", + "console", + "interactive", + "shell" + ], + "support": { + "issues": "https://github.com/bobthecow/psysh/issues", + "source": "https://github.com/bobthecow/psysh/tree/v0.10.5" + }, + "time": "2020-12-04T02:51:30+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "ramsey/collection", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/collection.git", + "reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/collection/zipball/24d93aefb2cd786b7edd9f45b554aea20b28b9b1", + "reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8" + }, + "require-dev": { + "captainhook/captainhook": "^5.3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", + "ergebnis/composer-normalize": "^2.6", + "fzaninotto/faker": "^1.5", + "hamcrest/hamcrest-php": "^2", + "jangregor/phpstan-prophecy": "^0.6", + "mockery/mockery": "^1.3", + "phpstan/extension-installer": "^1", + "phpstan/phpstan": "^0.12.32", + "phpstan/phpstan-mockery": "^0.12.5", + "phpstan/phpstan-phpunit": "^0.12.11", + "phpunit/phpunit": "^8.5", + "psy/psysh": "^0.10.4", + "slevomat/coding-standard": "^6.3", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^3.12.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Ramsey\\Collection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ben Ramsey", + "email": "ben@benramsey.com", + "homepage": "https://benramsey.com" + } + ], + "description": "A PHP 7.2+ library for representing and manipulating collections.", + "keywords": [ + "array", + "collection", + "hash", + "map", + "queue", + "set" + ], + "support": { + "issues": "https://github.com/ramsey/collection/issues", + "source": "https://github.com/ramsey/collection/tree/1.1.1" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + } + ], + "time": "2020-09-10T20:58:17+00:00" + }, + { + "name": "ramsey/uuid", + "version": "4.1.1", + "source": { + "type": "git", + "url": "https://github.com/ramsey/uuid.git", + "reference": "cd4032040a750077205918c86049aa0f43d22947" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/cd4032040a750077205918c86049aa0f43d22947", + "reference": "cd4032040a750077205918c86049aa0f43d22947", + "shasum": "" + }, + "require": { + "brick/math": "^0.8 || ^0.9", + "ext-json": "*", + "php": "^7.2 || ^8", + "ramsey/collection": "^1.0", + "symfony/polyfill-ctype": "^1.8" + }, + "replace": { + "rhumsaa/uuid": "self.version" + }, + "require-dev": { + "codeception/aspect-mock": "^3", + "dealerdirect/phpcodesniffer-composer-installer": "^0.6.2 || ^0.7.0", + "doctrine/annotations": "^1.8", + "goaop/framework": "^2", + "mockery/mockery": "^1.3", + "moontoast/math": "^1.1", + "paragonie/random-lib": "^2", + "php-mock/php-mock-mockery": "^1.3", + "php-mock/php-mock-phpunit": "^2.5", + "php-parallel-lint/php-parallel-lint": "^1.1", + "phpbench/phpbench": "^0.17.1", + "phpstan/extension-installer": "^1.0", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-mockery": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^8.5", + "psy/psysh": "^0.10.0", + "slevomat/coding-standard": "^6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "3.9.4" + }, + "suggest": { + "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.", + "ext-ctype": "Enables faster processing of character classification using ctype functions.", + "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.", + "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.", + "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter", + "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "Ramsey\\Uuid\\": "src/" + }, + "files": [ + "src/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).", + "homepage": "https://github.com/ramsey/uuid", + "keywords": [ + "guid", + "identifier", + "uuid" + ], + "support": { + "issues": "https://github.com/ramsey/uuid/issues", + "rss": "https://github.com/ramsey/uuid/releases.atom", + "source": "https://github.com/ramsey/uuid" + }, + "funding": [ + { + "url": "https://github.com/ramsey", + "type": "github" + } + ], + "time": "2020-08-18T17:17:46+00:00" + }, + { + "name": "reliese/laravel", + "version": "v0.0.19", + "source": { + "type": "git", + "url": "https://github.com/reliese/laravel.git", + "reference": "1f10ed43802b2a07ee7f308e9a87ca875cfb02ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reliese/laravel/zipball/1f10ed43802b2a07ee7f308e9a87ca875cfb02ba", + "reference": "1f10ed43802b2a07ee7f308e9a87ca875cfb02ba", + "shasum": "" + }, + "require": { + "doctrine/dbal": ">=2.5", + "illuminate/console": ">=5.1", + "illuminate/contracts": ">=5.1", + "illuminate/database": ">=5.1", + "illuminate/filesystem": ">=5.1", + "illuminate/support": ">=5.1", + "php": ">=5.6.4" + }, + "require-dev": { + "fzaninotto/faker": "~1.4", + "mockery/mockery": ">=1.4", + "phpunit/phpunit": "^9" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "Reliese\\Coders\\CodersServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Reliese\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cristian Llanos", + "email": "cristianllanos@outlook.com" + } + ], + "description": "Reliese Components for Laravel Framework code generation.", + "homepage": "http://cristianllanos.com", + "keywords": [ + "laravel", + "reliese" + ], + "support": { + "issues": "https://github.com/reliese/laravel/issues", + "source": "https://github.com/reliese/laravel" + }, + "time": "2020-12-07T02:35:15+00:00" + }, + { + "name": "sabberworm/php-css-parser", + "version": "8.3.1", + "source": { + "type": "git", + "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", + "reference": "d217848e1396ef962fb1997cf3e2421acba7f796" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/d217848e1396ef962fb1997cf3e2421acba7f796", + "reference": "d217848e1396ef962fb1997cf3e2421acba7f796", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "codacy/coverage": "^1.4", + "phpunit/phpunit": "~4.8" + }, + "type": "library", + "autoload": { + "psr-0": { + "Sabberworm\\CSS": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "http://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "support": { + "issues": "https://github.com/sabberworm/PHP-CSS-Parser/issues", + "source": "https://github.com/sabberworm/PHP-CSS-Parser/tree/8.3.1" + }, + "time": "2020-06-01T09:10:00+00:00" + }, + { + "name": "setasign/fpdf", + "version": "1.8.2", + "source": { + "type": "git", + "url": "https://github.com/Setasign/FPDF.git", + "reference": "d77904018090c17dc9f3ab6e944679a7a47e710a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Setasign/FPDF/zipball/d77904018090c17dc9f3ab6e944679a7a47e710a", + "reference": "d77904018090c17dc9f3ab6e944679a7a47e710a", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "fpdf.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Olivier Plathey", + "email": "oliver@fpdf.org", + "homepage": "http://fpdf.org/" + } + ], + "description": "FPDF is a PHP class which allows to generate PDF files with pure PHP. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs.", + "homepage": "http://www.fpdf.org", + "keywords": [ + "fpdf", + "pdf" + ], + "support": { + "source": "https://github.com/Setasign/FPDF/tree/1.8.2" + }, + "time": "2019-12-08T10:32:10+00:00" + }, + { + "name": "setasign/fpdi", + "version": "v2.3.5", + "source": { + "type": "git", + "url": "https://github.com/Setasign/FPDI.git", + "reference": "f2246c8669bd25834f5c264425eb0e250d7a9312" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Setasign/FPDI/zipball/f2246c8669bd25834f5c264425eb0e250d7a9312", + "reference": "f2246c8669bd25834f5c264425eb0e250d7a9312", + "shasum": "" + }, + "require": { + "ext-zlib": "*", + "php": "^5.6 || ^7.0 || ^8.0" + }, + "conflict": { + "setasign/tfpdf": "<1.31" + }, + "require-dev": { + "phpunit/phpunit": "~5.7", + "setasign/fpdf": "~1.8", + "setasign/tfpdf": "1.31", + "squizlabs/php_codesniffer": "^3.5", + "tecnickcom/tcpdf": "~6.2" + }, + "suggest": { + "setasign/fpdf": "FPDI will extend this class but as it is also possible to use TCPDF or tFPDF as an alternative. There's no fixed dependency configured." + }, + "type": "library", + "autoload": { + "psr-4": { + "setasign\\Fpdi\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Slabon", + "email": "jan.slabon@setasign.com", + "homepage": "https://www.setasign.com" + }, + { + "name": "Maximilian Kresse", + "email": "maximilian.kresse@setasign.com", + "homepage": "https://www.setasign.com" + } + ], + "description": "FPDI is a collection of PHP classes facilitating developers to read pages from existing PDF documents and use them as templates in FPDF. Because it is also possible to use FPDI with TCPDF, there are no fixed dependencies defined. Please see suggestions for packages which evaluates the dependencies automatically.", + "homepage": "https://www.setasign.com/fpdi", + "keywords": [ + "fpdf", + "fpdi", + "pdf" + ], + "support": { + "issues": "https://github.com/Setasign/FPDI/issues", + "source": "https://github.com/Setasign/FPDI/tree/v2.3.5" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/setasign/fpdi", + "type": "tidelift" + } + ], + "time": "2020-12-03T13:40:03+00:00" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v6.2.4", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e", + "reference": "56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e", + "shasum": "" + }, + "require": { + "egulias/email-validator": "^2.0", + "php": ">=7.0.0", + "symfony/polyfill-iconv": "^1.0", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "symfony/phpunit-bridge": "^4.4|^5.0" + }, + "suggest": { + "ext-intl": "Needed to support internationalized email addresses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.2-dev" + } + }, + "autoload": { + "files": [ + "lib/swift_required.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chris Corbyn" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Swiftmailer, free feature-rich PHP mailer", + "homepage": "https://swiftmailer.symfony.com", + "keywords": [ + "email", + "mail", + "mailer" + ], + "support": { + "issues": "https://github.com/swiftmailer/swiftmailer/issues", + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.4" + }, + "funding": [ + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer", + "type": "tidelift" + } + ], + "time": "2020-12-08T18:02:06+00:00" + }, + { + "name": "symfony/console", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "47c02526c532fb381374dab26df05e7313978976" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976", + "reference": "47c02526c532fb381374dab26df05e7313978976", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", + "symfony/service-contracts": "^1.1|^2", + "symfony/string": "^5.1" + }, + "conflict": { + "symfony/dependency-injection": "<4.4", + "symfony/dotenv": "<5.1", + "symfony/event-dispatcher": "<4.4", + "symfony/lock": "<4.4", + "symfony/process": "<4.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/event-dispatcher": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/var-dumper": "^4.4|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Console Component", + "homepage": "https://symfony.com", + "keywords": [ + "cli", + "command line", + "console", + "terminal" + ], + "support": { + "source": "https://github.com/symfony/console/tree/v5.2.1" + }, + "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": "2020-12-18T08:03:05+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f789e7ead4c79e04ca9a6d6162fc629c89bd8054", + "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v5.2.1" + }, + "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": "2020-12-08T17:02:38+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/master" + }, + "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": "2020-09-07T11:33:47+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "59b190ce16ddf32771a22087b60f6dafd3407147" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/59b190ce16ddf32771a22087b60f6dafd3407147", + "reference": "59b190ce16ddf32771a22087b60f6dafd3407147", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "^1.0", + "symfony/polyfill-php80": "^1.15", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/deprecation-contracts": "^2.1", + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ErrorHandler Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v5.2.1" + }, + "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": "2020-12-09T18:54:12+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1c93f7a1dff592c252574c79a8635a8a80856042" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1c93f7a1dff592c252574c79a8635a8a80856042", + "reference": "1c93f7a1dff592c252574c79a8635a8a80856042", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/event-dispatcher-contracts": "^2", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/dependency-injection": "<4.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "2.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/error-handler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^4.4|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.1" + }, + "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": "2020-12-18T08:03:05+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/0ba7d54483095a198fa51781bc608d17e84dffa2", + "reference": "0ba7d54483095a198fa51781bc608d17e84dffa2", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/event-dispatcher": "^1" + }, + "suggest": { + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.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": "2020-09-07T11:33:47+00:00" + }, + { + "name": "symfony/finder", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/0b9231a5922fd7287ba5b411893c0ecd2733e5ba", + "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Finder Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v5.2.1" + }, + "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": "2020-12-08T17:02:38+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.3.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "41db680a15018f9c1d4b23516059633ce280ca33" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/41db680a15018f9c1d4b23516059633ce280ca33", + "reference": "41db680a15018f9c1d4b23516059633ce280ca33", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-version": "2.3", + "branch-alias": { + "dev-main": "2.3-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.3.1" + }, + "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": "2020-10-14T17:08:19+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "a1f6218b29897ab52acba58cfa905b83625bef8d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a1f6218b29897ab52acba58cfa905b83625bef8d", + "reference": "a1f6218b29897ab52acba58cfa905b83625bef8d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.15" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/cache": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0" + }, + "suggest": { + "symfony/mime": "To use the file extension guesser" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpFoundation Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v5.2.1" + }, + "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": "2020-12-18T10:00:10+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "1feb619286d819180f7b8bc0dc44f516d9c62647" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1feb619286d819180f7b8bc0dc44f516d9c62647", + "reference": "1feb619286d819180f7b8bc0dc44f516d9c62647", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/log": "~1.0", + "symfony/deprecation-contracts": "^2.1", + "symfony/error-handler": "^4.4|^5.0", + "symfony/event-dispatcher": "^5.0", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/browser-kit": "<4.4", + "symfony/cache": "<5.0", + "symfony/config": "<5.0", + "symfony/console": "<4.4", + "symfony/dependency-injection": "<5.1.8", + "symfony/doctrine-bridge": "<5.0", + "symfony/form": "<5.0", + "symfony/http-client": "<5.0", + "symfony/mailer": "<5.0", + "symfony/messenger": "<5.0", + "symfony/translation": "<5.0", + "symfony/twig-bridge": "<5.0", + "symfony/validator": "<5.0", + "twig/twig": "<2.4" + }, + "provide": { + "psr/log-implementation": "1.0" + }, + "require-dev": { + "psr/cache": "~1.0", + "symfony/browser-kit": "^4.4|^5.0", + "symfony/config": "^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/css-selector": "^4.4|^5.0", + "symfony/dependency-injection": "^5.1.8", + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "symfony/routing": "^4.4|^5.0", + "symfony/stopwatch": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^2.4|^3.0" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony HttpKernel Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v5.2.1" + }, + "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": "2020-12-18T13:49:39+00:00" + }, + { + "name": "symfony/mime", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "de97005aef7426ba008c46ba840fc301df577ada" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/de97005aef7426ba008c46ba840fc301df577ada", + "reference": "de97005aef7426ba008c46ba840fc301df577ada", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/property-access": "^4.4|^5.1", + "symfony/property-info": "^4.4|^5.1", + "symfony/serializer": "^5.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A library to manipulate MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v5.2.1" + }, + "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": "2020-12-09T18:54:12+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-iconv", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-iconv.git", + "reference": "c536646fdb4f29104dd26effc2fdcb9a5b085024" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c536646fdb4f29104dd26effc2fdcb9a5b085024", + "reference": "c536646fdb4f29104dd26effc2fdcb9a5b085024", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-iconv": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Iconv\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Iconv extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "iconv", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-intl-grapheme", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-grapheme.git", + "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", + "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Grapheme\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's grapheme_* functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "grapheme", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3b75acd829741c768bc8b1f84eb33265e7cc5117", + "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "727d1096295d807c309fb01a851577302394c897" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897", + "reference": "727d1096295d807c309fb01a851577302394c897", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", + "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.20.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.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": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/process", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd", + "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.15" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Process Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v5.2.1" + }, + "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": "2020-12-08T17:03:37+00:00" + }, + { + "name": "symfony/psr-http-message-bridge", + "version": "v2.0.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/psr-http-message-bridge.git", + "reference": "51a21cb3ba3927d4b4bf8f25cc55763351af5f2e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/51a21cb3ba3927d4b4bf8f25cc55763351af5f2e", + "reference": "51a21cb3ba3927d4b4bf8f25cc55763351af5f2e", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0", + "symfony/http-foundation": "^4.4 || ^5.0" + }, + "require-dev": { + "nyholm/psr7": "^1.1", + "symfony/phpunit-bridge": "^4.4 || ^5.0" + }, + "suggest": { + "nyholm/psr7": "For a super lightweight PSR-7/17 implementation" + }, + "type": "symfony-bridge", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bridge\\PsrHttpMessage\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + } + ], + "description": "PSR HTTP message bridge", + "homepage": "http://symfony.com", + "keywords": [ + "http", + "http-message", + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/symfony/psr-http-message-bridge/issues", + "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.0.2" + }, + "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": "2020-09-29T08:17:46+00:00" + }, + { + "name": "symfony/routing", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "934ac2720dcc878a47a45c986b483a7ee7193620" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/934ac2720dcc878a47a45c986b483a7ee7193620", + "reference": "934ac2720dcc878a47a45c986b483a7ee7193620", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/config": "<5.0", + "symfony/dependency-injection": "<4.4", + "symfony/yaml": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.7", + "psr/log": "~1.0", + "symfony/config": "^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/expression-language": "^4.4|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Routing Component", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v5.2.1" + }, + "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": "2020-12-08T17:03:37+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.0" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/master" + }, + "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": "2020-09-07T11:33:47+00:00" + }, + { + "name": "symfony/string", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/string.git", + "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", + "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-intl-grapheme": "~1.0", + "symfony/polyfill-intl-normalizer": "~1.0", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "~1.15" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\String\\": "" + }, + "files": [ + "Resources/functions.php" + ], + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony String component", + "homepage": "https://symfony.com", + "keywords": [ + "grapheme", + "i18n", + "string", + "unicode", + "utf-8", + "utf8" + ], + "support": { + "source": "https://github.com/symfony/string/tree/v5.2.1" + }, + "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": "2020-12-05T07:33:16+00:00" + }, + { + "name": "symfony/translation", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation.git", + "reference": "a04209ba0d1391c828e5b2373181dac63c52ee70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation/zipball/a04209ba0d1391c828e5b2373181dac63c52ee70", + "reference": "a04209ba0d1391c828e5b2373181dac63c52ee70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15", + "symfony/translation-contracts": "^2.3" + }, + "conflict": { + "symfony/config": "<4.4", + "symfony/dependency-injection": "<5.0", + "symfony/http-kernel": "<5.0", + "symfony/twig-bundle": "<5.0", + "symfony/yaml": "<4.4" + }, + "provide": { + "symfony/translation-implementation": "2.0" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "^4.4|^5.0", + "symfony/console": "^4.4|^5.0", + "symfony/dependency-injection": "^5.0", + "symfony/finder": "^4.4|^5.0", + "symfony/http-kernel": "^5.0", + "symfony/intl": "^4.4|^5.0", + "symfony/service-contracts": "^1.1.2|^2", + "symfony/yaml": "^4.4|^5.0" + }, + "suggest": { + "psr/log-implementation": "To use logging capability in translator", + "symfony/config": "", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "files": [ + "Resources/functions.php" + ], + "psr-4": { + "Symfony\\Component\\Translation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Translation Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/translation/tree/v5.2.1" + }, + "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": "2020-12-08T17:03:37+00:00" + }, + { + "name": "symfony/translation-contracts", + "version": "v2.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/translation-contracts.git", + "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/e2eaa60b558f26a4b0354e1bbb25636efaaad105", + "reference": "e2eaa60b558f26a4b0354e1bbb25636efaaad105", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/translation-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Translation\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to translation", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/translation-contracts/tree/v2.3.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": "2020-09-28T13:05:58+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "13e7e882eaa55863faa7c4ad7c60f12f1a8b5089" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/13e7e882eaa55863faa7c4ad7c60f12f1a8b5089", + "reference": "13e7e882eaa55863faa7c4ad7c60f12f1a8b5089", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^2.4|^3.0" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony mechanism for exploring and dumping PHP variables", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v5.2.1" + }, + "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": "2020-12-16T17:02:19+00:00" + }, + { + "name": "tijsverkoyen/css-to-inline-styles", + "version": "2.2.3", + "source": { + "type": "git", + "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git", + "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/b43b05cf43c1b6d849478965062b6ef73e223bb5", + "reference": "b43b05cf43c1b6d849478965062b6ef73e223bb5", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": "^5.5 || ^7.0 || ^8.0", + "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "TijsVerkoyen\\CssToInlineStyles\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Tijs Verkoyen", + "email": "css_to_inline_styles@verkoyen.eu", + "role": "Developer" + } + ], + "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.", + "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles", + "support": { + "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues", + "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.3" + }, + "time": "2020-07-13T06:12:54+00:00" + }, + { + "name": "vlucas/phpdotenv", + "version": "v5.2.0", + "source": { + "type": "git", + "url": "https://github.com/vlucas/phpdotenv.git", + "reference": "fba64139db67123c7a57072e5f8d3db10d160b66" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/fba64139db67123c7a57072e5f8d3db10d160b66", + "reference": "fba64139db67123c7a57072e5f8d3db10d160b66", + "shasum": "" + }, + "require": { + "ext-pcre": "*", + "graham-campbell/result-type": "^1.0.1", + "php": "^7.1.3 || ^8.0", + "phpoption/phpoption": "^1.7.4", + "symfony/polyfill-ctype": "^1.17", + "symfony/polyfill-mbstring": "^1.17", + "symfony/polyfill-php80": "^1.17" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-filter": "*", + "phpunit/phpunit": "^7.5.20 || ^8.5.2 || ^9.0" + }, + "suggest": { + "ext-filter": "Required to use the boolean validator." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.2-dev" + } + }, + "autoload": { + "psr-4": { + "Dotenv\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "homepage": "https://gjcampbell.co.uk/" + }, + { + "name": "Vance Lucas", + "email": "vance@vancelucas.com", + "homepage": "https://vancelucas.com/" + } + ], + "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "issues": "https://github.com/vlucas/phpdotenv/issues", + "source": "https://github.com/vlucas/phpdotenv/tree/v5.2.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv", + "type": "tidelift" + } + ], + "time": "2020-09-14T15:57:31+00:00" + }, + { + "name": "voku/portable-ascii", + "version": "1.5.6", + "source": { + "type": "git", + "url": "https://github.com/voku/portable-ascii.git", + "reference": "80953678b19901e5165c56752d087fc11526017c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/voku/portable-ascii/zipball/80953678b19901e5165c56752d087fc11526017c", + "reference": "80953678b19901e5165c56752d087fc11526017c", + "shasum": "" + }, + "require": { + "php": ">=7.0.0" + }, + "require-dev": { + "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" + }, + "suggest": { + "ext-intl": "Use Intl for transliterator_transliterate() support" + }, + "type": "library", + "autoload": { + "psr-4": { + "voku\\": "src/voku/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Lars Moelleken", + "homepage": "http://www.moelleken.org/" + } + ], + "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", + "homepage": "https://github.com/voku/portable-ascii", + "keywords": [ + "ascii", + "clean", + "php" + ], + "support": { + "issues": "https://github.com/voku/portable-ascii/issues", + "source": "https://github.com/voku/portable-ascii/tree/1.5.6" + }, + "funding": [ + { + "url": "https://www.paypal.me/moelleken", + "type": "custom" + }, + { + "url": "https://github.com/voku", + "type": "github" + }, + { + "url": "https://opencollective.com/portable-ascii", + "type": "open_collective" + }, + { + "url": "https://www.patreon.com/voku", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", + "type": "tidelift" + } + ], + "time": "2020-11-12T00:07:28+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.9.1", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0 || ^8.0", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.36 || ^7.5.13" + }, + "type": "library", + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozart/assert/issues", + "source": "https://github.com/webmozart/assert/tree/master" + }, + "time": "2020-07-08T17:02:28+00:00" + }, + { + "name": "yajra/laravel-datatables-oracle", + "version": "v9.15.2", + "source": { + "type": "git", + "url": "https://github.com/yajra/laravel-datatables.git", + "reference": "e0b416d8b7d4472b16217c40e74284074cc34dde" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yajra/laravel-datatables/zipball/e0b416d8b7d4472b16217c40e74284074cc34dde", + "reference": "e0b416d8b7d4472b16217c40e74284074cc34dde", + "shasum": "" + }, + "require": { + "illuminate/database": "5.8.*|^6|^7|^8", + "illuminate/filesystem": "5.8.*|^6|^7|^8", + "illuminate/http": "5.8.*|^6|^7|^8", + "illuminate/support": "5.8.*|^6|^7|^8", + "illuminate/view": "5.8.*|^6|^7|^8", + "php": "^7.1.3|^8" + }, + "require-dev": { + "orchestra/testbench": "^3.8" + }, + "suggest": { + "yajra/laravel-datatables-buttons": "Plugin for server-side exporting of dataTables.", + "yajra/laravel-datatables-editor": "Plugin to use DataTables Editor (requires a license).", + "yajra/laravel-datatables-fractal": "Plugin for server-side response using Fractal.", + "yajra/laravel-datatables-html": "Plugin for server-side HTML builder of dataTables." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.0-dev" + }, + "laravel": { + "providers": [ + "Yajra\\DataTables\\DataTablesServiceProvider" + ], + "aliases": { + "DataTables": "Yajra\\DataTables\\Facades\\DataTables" + } + } + }, + "autoload": { + "psr-4": { + "Yajra\\DataTables\\": "src/" + }, + "files": [ + "src/helper.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Arjay Angeles", + "email": "aqangeles@gmail.com" + } + ], + "description": "jQuery DataTables API for Laravel 4|5|6|7", + "keywords": [ + "datatables", + "jquery", + "laravel" + ], + "support": { + "issues": "https://github.com/yajra/laravel-datatables/issues", + "source": "https://github.com/yajra/laravel-datatables/tree/v9.15.2" + }, + "funding": [ + { + "url": "https://www.paypal.me/yajra", + "type": "custom" + }, + { + "url": "https://www.patreon.com/yajra", + "type": "patreon" + } + ], + "time": "2020-12-09T15:42:04+00:00" + } + ], + "packages-dev": [ + { + "name": "barryvdh/laravel-debugbar", + "version": "v3.5.1", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-debugbar.git", + "reference": "233c10688f4c1a6e66ed2ef123038b1363d1bedc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/233c10688f4c1a6e66ed2ef123038b1363d1bedc", + "reference": "233c10688f4c1a6e66ed2ef123038b1363d1bedc", + "shasum": "" + }, + "require": { + "illuminate/routing": "^6|^7|^8", + "illuminate/session": "^6|^7|^8", + "illuminate/support": "^6|^7|^8", + "maximebf/debugbar": "^1.16.3", + "php": ">=7.2", + "symfony/debug": "^4.3|^5", + "symfony/finder": "^4.3|^5" + }, + "require-dev": { + "orchestra/testbench-dusk": "^4|^5|^6", + "phpunit/phpunit": "^8.5|^9.0", + "squizlabs/php_codesniffer": "^3.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.5-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\Debugbar\\ServiceProvider" + ], + "aliases": { + "Debugbar": "Barryvdh\\Debugbar\\Facade" + } + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\Debugbar\\": "src/" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "PHP Debugbar integration for Laravel", + "keywords": [ + "debug", + "debugbar", + "laravel", + "profiler", + "webprofiler" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-debugbar/issues", + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.5.1" + }, + "funding": [ + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2020-09-07T19:32:39+00:00" + }, + { + "name": "barryvdh/laravel-ide-helper", + "version": "v2.9.0", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/laravel-ide-helper.git", + "reference": "64a6b902583802c162cdccf7e76dc8619368bf1a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/laravel-ide-helper/zipball/64a6b902583802c162cdccf7e76dc8619368bf1a", + "reference": "64a6b902583802c162cdccf7e76dc8619368bf1a", + "shasum": "" + }, + "require": { + "barryvdh/reflection-docblock": "^2.0.6", + "composer/composer": "^1.6 || ^2", + "doctrine/dbal": "^2.6 || ^3", + "ext-json": "*", + "illuminate/console": "^8", + "illuminate/filesystem": "^8", + "illuminate/support": "^8", + "php": "^7.3 || ^8.0", + "phpdocumentor/type-resolver": "^1.1.0" + }, + "require-dev": { + "ext-pdo_sqlite": "*", + "friendsofphp/php-cs-fixer": "^2", + "illuminate/config": "^8", + "illuminate/view": "^8", + "mockery/mockery": "^1.4", + "orchestra/testbench": "^6", + "phpunit/phpunit": "^8.5 || ^9", + "spatie/phpunit-snapshot-assertions": "^3 || ^4", + "vimeo/psalm": "^3.12" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.9-dev" + }, + "laravel": { + "providers": [ + "Barryvdh\\LaravelIdeHelper\\IdeHelperServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Barryvdh\\LaravelIdeHelper\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Laravel IDE Helper, generates correct PHPDocs for all Facade classes, to improve auto-completion.", + "keywords": [ + "autocomplete", + "codeintel", + "helper", + "ide", + "laravel", + "netbeans", + "phpdoc", + "phpstorm", + "sublime" + ], + "support": { + "issues": "https://github.com/barryvdh/laravel-ide-helper/issues", + "source": "https://github.com/barryvdh/laravel-ide-helper/tree/v2.9.0" + }, + "funding": [ + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2020-12-29T10:11:05+00:00" + }, + { + "name": "barryvdh/reflection-docblock", + "version": "v2.0.6", + "source": { + "type": "git", + "url": "https://github.com/barryvdh/ReflectionDocBlock.git", + "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/barryvdh/ReflectionDocBlock/zipball/6b69015d83d3daf9004a71a89f26e27d27ef6a16", + "reference": "6b69015d83d3daf9004a71a89f26e27d27ef6a16", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0,<4.5" + }, + "suggest": { + "dflydev/markdown": "~1.0", + "erusev/parsedown": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Barryvdh": [ + "src/" + ] + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "mike.vanriel@naenius.com" + } + ], + "support": { + "source": "https://github.com/barryvdh/ReflectionDocBlock/tree/v2.0.6" + }, + "time": "2018-12-13T10:34:14+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.2.8", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "8a7ecad675253e4654ea05505233285377405215" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/8a7ecad675253e4654ea05505233285377405215", + "reference": "8a7ecad675253e4654ea05505233285377405215", + "shasum": "" + }, + "require": { + "ext-openssl": "*", + "ext-pcre": "*", + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8", + "psr/log": "^1.0", + "symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\CaBundle\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.", + "keywords": [ + "cabundle", + "cacert", + "certificate", + "ssl", + "tls" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/ca-bundle/issues", + "source": "https://github.com/composer/ca-bundle/tree/1.2.8" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-08-23T12:54:47+00:00" + }, + { + "name": "composer/composer", + "version": "2.0.8", + "source": { + "type": "git", + "url": "https://github.com/composer/composer.git", + "reference": "62139b2806178adb979d76bd3437534a1a9fd490" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/composer/zipball/62139b2806178adb979d76bd3437534a1a9fd490", + "reference": "62139b2806178adb979d76bd3437534a1a9fd490", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "composer/semver": "^3.0", + "composer/spdx-licenses": "^1.2", + "composer/xdebug-handler": "^1.1", + "justinrainbow/json-schema": "^5.2.10", + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0", + "react/promise": "^1.2 || ^2.7", + "seld/jsonlint": "^1.4", + "seld/phar-utils": "^1.0", + "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0", + "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0" + }, + "require-dev": { + "phpspec/prophecy": "^1.10", + "symfony/phpunit-bridge": "^4.2 || ^5.0" + }, + "suggest": { + "ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages", + "ext-zip": "Enabling the zip extension allows you to unzip archives", + "ext-zlib": "Allow gzip compression of HTTP requests" + }, + "bin": [ + "bin/composer" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\": "src/Composer" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "https://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.", + "homepage": "https://getcomposer.org/", + "keywords": [ + "autoload", + "dependency", + "package" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/composer/issues", + "source": "https://github.com/composer/composer/tree/2.0.8" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-12-03T16:20:39+00:00" + }, + { + "name": "composer/semver", + "version": "3.2.4", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "reference": "a02fdf930a3c1c3ed3a49b5f63859c0c20e10464", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.54", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.2.4" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:59:24+00:00" + }, + { + "name": "composer/spdx-licenses", + "version": "1.5.5", + "source": { + "type": "git", + "url": "https://github.com/composer/spdx-licenses.git", + "reference": "de30328a7af8680efdc03e396aad24befd513200" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200", + "reference": "de30328a7af8680efdc03e396aad24befd513200", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Spdx\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "SPDX licenses list and validation library.", + "keywords": [ + "license", + "spdx", + "validator" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/spdx-licenses/issues", + "source": "https://github.com/composer/spdx-licenses/tree/1.5.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-12-03T16:04:16+00:00" + }, + { + "name": "composer/xdebug-handler", + "version": "1.4.5", + "source": { + "type": "git", + "url": "https://github.com/composer/xdebug-handler.git", + "reference": "f28d44c286812c714741478d968104c5e604a1d4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", + "reference": "f28d44c286812c714741478d968104c5e604a1d4", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0", + "psr/log": "^1.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Composer\\XdebugHandler\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "John Stevenson", + "email": "john-stevenson@blueyonder.co.uk" + } + ], + "description": "Restarts a process without Xdebug.", + "keywords": [ + "Xdebug", + "performance" + ], + "support": { + "irc": "irc://irc.freenode.org/composer", + "issues": "https://github.com/composer/xdebug-handler/issues", + "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2020-11-13T08:04:11+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^8.0", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-11-10T18:47:58+00:00" + }, + { + "name": "facade/flare-client-php", + "version": "1.3.7", + "source": { + "type": "git", + "url": "https://github.com/facade/flare-client-php.git", + "reference": "fd688d3c06658f2b3b5f7bb19f051ee4ddf02492" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/flare-client-php/zipball/fd688d3c06658f2b3b5f7bb19f051ee4ddf02492", + "reference": "fd688d3c06658f2b3b5f7bb19f051ee4ddf02492", + "shasum": "" + }, + "require": { + "facade/ignition-contracts": "~1.0", + "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0", + "php": "^7.1|^8.0", + "symfony/http-foundation": "^3.3|^4.1|^5.0", + "symfony/mime": "^3.4|^4.0|^5.1", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.14", + "phpunit/phpunit": "^7.5.16", + "spatie/phpunit-snapshot-assertions": "^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Facade\\FlareClient\\": "src" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Send PHP errors to Flare", + "homepage": "https://github.com/facade/flare-client-php", + "keywords": [ + "exception", + "facade", + "flare", + "reporting" + ], + "support": { + "issues": "https://github.com/facade/flare-client-php/issues", + "source": "https://github.com/facade/flare-client-php/tree/1.3.7" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2020-10-21T16:02:39+00:00" + }, + { + "name": "facade/ignition", + "version": "2.5.8", + "source": { + "type": "git", + "url": "https://github.com/facade/ignition.git", + "reference": "8e907d81244649c5ea746e2ec30c32c5f59df472" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/ignition/zipball/8e907d81244649c5ea746e2ec30c32c5f59df472", + "reference": "8e907d81244649c5ea746e2ec30c32c5f59df472", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ext-mbstring": "*", + "facade/flare-client-php": "^1.3.7", + "facade/ignition-contracts": "^1.0.2", + "filp/whoops": "^2.4", + "illuminate/support": "^7.0|^8.0", + "monolog/monolog": "^2.0", + "php": "^7.2.5|^8.0", + "symfony/console": "^5.0", + "symfony/var-dumper": "^5.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.14", + "mockery/mockery": "^1.3", + "orchestra/testbench": "^5.0|^6.0", + "psalm/plugin-laravel": "^1.2" + }, + "suggest": { + "laravel/telescope": "^3.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.x-dev" + }, + "laravel": { + "providers": [ + "Facade\\Ignition\\IgnitionServiceProvider" + ], + "aliases": { + "Flare": "Facade\\Ignition\\Facades\\Flare" + } + } + }, + "autoload": { + "psr-4": { + "Facade\\Ignition\\": "src" + }, + "files": [ + "src/helpers.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "A beautiful error page for Laravel applications.", + "homepage": "https://github.com/facade/ignition", + "keywords": [ + "error", + "flare", + "laravel", + "page" + ], + "support": { + "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction", + "forum": "https://twitter.com/flareappio", + "issues": "https://github.com/facade/ignition/issues", + "source": "https://github.com/facade/ignition" + }, + "time": "2020-12-29T09:12:55+00:00" + }, + { + "name": "facade/ignition-contracts", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/facade/ignition-contracts.git", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267", + "shasum": "" + }, + "require": { + "php": "^7.3|^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^v2.15.8", + "phpunit/phpunit": "^9.3.11", + "vimeo/psalm": "^3.17.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "Facade\\IgnitionContracts\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://flareapp.io", + "role": "Developer" + } + ], + "description": "Solution contracts for Ignition", + "homepage": "https://github.com/facade/ignition-contracts", + "keywords": [ + "contracts", + "flare", + "ignition" + ], + "support": { + "issues": "https://github.com/facade/ignition-contracts/issues", + "source": "https://github.com/facade/ignition-contracts/tree/1.0.2" + }, + "time": "2020-10-16T08:27:54+00:00" + }, + { + "name": "fakerphp/faker", + "version": "v1.13.0", + "source": { + "type": "git", + "url": "https://github.com/FakerPHP/Faker.git", + "reference": "ab3f5364d01f2c2c16113442fb987d26e4004913" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/ab3f5364d01f2c2c16113442fb987d26e4004913", + "reference": "ab3f5364d01f2c2c16113442fb987d26e4004913", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "fzaninotto/faker": "*" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-intl": "*", + "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.4.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Faker\\": "src/Faker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "François Zaninotto" + } + ], + "description": "Faker is a PHP library that generates fake data for you.", + "keywords": [ + "data", + "faker", + "fixtures" + ], + "support": { + "issues": "https://github.com/FakerPHP/Faker/issues", + "source": "https://github.com/FakerPHP/Faker/tree/v1.13.0" + }, + "time": "2020-12-18T16:50:48+00:00" + }, + { + "name": "filp/whoops", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "307fb34a5ab697461ec4c9db865b20ff2fd40771" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/307fb34a5ab697461ec4c9db865b20ff2fd40771", + "reference": "307fb34a5ab697461ec4c9db865b20ff2fd40771", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.9.1" + }, + "time": "2020-11-01T12:00:00+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + }, + "time": "2020-07-09T08:09:16+00:00" + }, + { + "name": "justinrainbow/json-schema", + "version": "5.2.10", + "source": { + "type": "git", + "url": "https://github.com/justinrainbow/json-schema.git", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "reference": "2ba9c8c862ecd5510ed16c6340aa9f6eadb4f31b", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2.2.20||~2.15.1", + "json-schema/json-schema-test-suite": "1.2.0", + "phpunit/phpunit": "^4.8.35" + }, + "bin": [ + "bin/validate-json" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "JsonSchema\\": "src/JsonSchema/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bruno Prieto Reis", + "email": "bruno.p.reis@gmail.com" + }, + { + "name": "Justin Rainbow", + "email": "justin.rainbow@gmail.com" + }, + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + }, + { + "name": "Robert Schönthal", + "email": "seroscho@googlemail.com" + } + ], + "description": "A library to validate a json schema.", + "homepage": "https://github.com/justinrainbow/json-schema", + "keywords": [ + "json", + "schema" + ], + "support": { + "issues": "https://github.com/justinrainbow/json-schema/issues", + "source": "https://github.com/justinrainbow/json-schema/tree/5.2.10" + }, + "time": "2020-05-27T16:41:55+00:00" + }, + { + "name": "laravel/sail", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/laravel/sail.git", + "reference": "277d868441b49898caf0ce3cb4e19b439e419133" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/sail/zipball/277d868441b49898caf0ce3cb4e19b439e419133", + "reference": "277d868441b49898caf0ce3cb4e19b439e419133", + "shasum": "" + }, + "require": { + "illuminate/contracts": "^8.0|^9.0", + "illuminate/support": "^8.0|^9.0", + "php": "^7.3|^8.0" + }, + "bin": [ + "bin/sail" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Sail\\SailServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Sail\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylor@laravel.com" + } + ], + "description": "Docker files for running a basic Laravel application.", + "keywords": [ + "docker", + "laravel" + ], + "support": { + "issues": "https://github.com/laravel/sail/issues", + "source": "https://github.com/laravel/sail" + }, + "time": "2021-01-05T16:40:11+00:00" + }, + { + "name": "maximebf/debugbar", + "version": "v1.16.4", + "source": { + "type": "git", + "url": "https://github.com/maximebf/php-debugbar.git", + "reference": "c86c717e4bf3c6d98422da5c38bfa7b0f494b04c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/c86c717e4bf3c6d98422da5c38bfa7b0f494b04c", + "reference": "c86c717e4bf3c6d98422da5c38bfa7b0f494b04c", + "shasum": "" + }, + "require": { + "php": "^7.1|^8", + "psr/log": "^1.0", + "symfony/var-dumper": "^2.6|^3|^4|^5" + }, + "require-dev": { + "phpunit/phpunit": "^7.5.20 || ^9.4.2" + }, + "suggest": { + "kriswallsmith/assetic": "The best way to manage assets", + "monolog/monolog": "Log using Monolog", + "predis/predis": "Redis storage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.16-dev" + } + }, + "autoload": { + "psr-4": { + "DebugBar\\": "src/DebugBar/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maxime Bouroumeau-Fuseau", + "email": "maxime.bouroumeau@gmail.com", + "homepage": "http://maximebf.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + } + ], + "description": "Debug bar in the browser for php application", + "homepage": "https://github.com/maximebf/php-debugbar", + "keywords": [ + "debug", + "debugbar" + ], + "support": { + "issues": "https://github.com/maximebf/php-debugbar/issues", + "source": "https://github.com/maximebf/php-debugbar/tree/v1.16.4" + }, + "time": "2020-12-07T10:48:48+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.4.2", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "20cab678faed06fac225193be281ea0fddb43b93" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/20cab678faed06fac225193be281ea0fddb43b93", + "reference": "20cab678faed06fac225193be281ea0fddb43b93", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": "^7.3 || ^8.0" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5 || ^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "issues": "https://github.com/mockery/mockery/issues", + "source": "https://github.com/mockery/mockery/tree/master" + }, + "time": "2020-08-11T18:10:13+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.10.2", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "replace": { + "myclabs/deep-copy": "self.version" + }, + "require-dev": { + "doctrine/collections": "^1.0", + "doctrine/common": "^2.6", + "phpunit/phpunit": "^7.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + }, + "files": [ + "src/DeepCopy/deep_copy.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2020-11-13T09:40:50+00:00" + }, + { + "name": "nunomaduro/collision", + "version": "v5.1.0", + "source": { + "type": "git", + "url": "https://github.com/nunomaduro/collision.git", + "reference": "7c2b95589bf81e274e61e47f7672a1b2c3e06eaa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/7c2b95589bf81e274e61e47f7672a1b2c3e06eaa", + "reference": "7c2b95589bf81e274e61e47f7672a1b2c3e06eaa", + "shasum": "" + }, + "require": { + "facade/ignition-contracts": "^1.0", + "filp/whoops": "^2.7.2", + "php": "^7.3 || ^8.0", + "symfony/console": "^5.0" + }, + "require-dev": { + "fideloper/proxy": "^4.4.0", + "friendsofphp/php-cs-fixer": "^2.16.4", + "fruitcake/laravel-cors": "^2.0.1", + "laravel/framework": "^8.0", + "laravel/tinker": "^2.4.1", + "nunomaduro/larastan": "^0.6.2", + "nunomaduro/mock-final-classes": "^1.0", + "orchestra/testbench": "^6.0", + "phpstan/phpstan": "^0.12.36", + "phpunit/phpunit": "^9.3.3" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "NunoMaduro\\Collision\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nuno Maduro", + "email": "enunomaduro@gmail.com" + } + ], + "description": "Cli error handling for console/command-line PHP applications.", + "keywords": [ + "artisan", + "cli", + "command-line", + "console", + "error", + "handling", + "laravel", + "laravel-zero", + "php", + "symfony" + ], + "support": { + "issues": "https://github.com/nunomaduro/collision/issues", + "source": "https://github.com/nunomaduro/collision" + }, + "funding": [ + { + "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L", + "type": "custom" + }, + { + "url": "https://github.com/nunomaduro", + "type": "github" + }, + { + "url": "https://www.patreon.com/nunomaduro", + "type": "patreon" + } + ], + "time": "2020-10-29T14:50:40+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, + "time": "2020-06-27T14:33:11+00:00" + }, + { + "name": "phar-io/version", + "version": "3.0.4", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.0.4" + }, + "time": "2020-12-13T23:18:30+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.2.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "time": "2020-09-03T19:13:55+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "1.12.2", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "245710e971a030f42e08f4912863805570f23d39" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", + "reference": "245710e971a030f42e08f4912863805570f23d39", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.11.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.12.2" + }, + "time": "2020-12-19T10:15:11+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1", + "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.10.2", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:44:49+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/aa4be8575f26070b100fccb67faabb28f21f66f8", + "reference": "aa4be8575f26070b100fccb67faabb28f21f66f8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:57:25+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e16c225d57c3d6808014df6b1dd7598d0a5bbbe", + "reference": "8e16c225d57c3d6808014df6b1dd7598d0a5bbbe", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpspec/prophecy": "^1.12.1", + "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.5", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.3", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^2.3", + "sebastian/version": "^3.0.2" + }, + "require-dev": { + "ext-pdo": "*", + "phpspec/prophecy-phpunit": "^2.0.1" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ], + "files": [ + "src/Framework/Assert/Functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.0" + }, + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-04T05:05:53+00:00" + }, + { + "name": "react/promise", + "version": "v2.8.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "reference": "f3cff96a19736714524ca0dd1d4130de73dbbbc4", + "shasum": "" + }, + "require": { + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^7.0 || ^6.5 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v2.8.0" + }, + "time": "2020-05-12T15:16:56+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", + "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:49:45+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", + "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:52:38+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "reference": "d89cc98761b8cb5a1a235a6b703ae50d34080e65", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:24:23+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", + "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:55:19+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "2.3.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:18:59+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "seld/jsonlint", + "version": "1.8.3", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/jsonlint.git", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57", + "shasum": "" + }, + "require": { + "php": "^5.3 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + }, + "bin": [ + "bin/jsonlint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Seld\\JsonLint\\": "src/Seld/JsonLint/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "JSON Linter", + "keywords": [ + "json", + "linter", + "parser", + "validator" + ], + "support": { + "issues": "https://github.com/Seldaek/jsonlint/issues", + "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/seld/jsonlint", + "type": "tidelift" + } + ], + "time": "2020-11-11T09:19:24+00:00" + }, + { + "name": "seld/phar-utils", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/phar-utils.git", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "reference": "8674b1d84ffb47cc59a101f5d5a3b61e87d23796", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Seld\\PharUtils\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be" + } + ], + "description": "PHAR file format utilities, for when PHP phars you up", + "keywords": [ + "phar" + ], + "support": { + "issues": "https://github.com/Seldaek/phar-utils/issues", + "source": "https://github.com/Seldaek/phar-utils/tree/master" + }, + "time": "2020-07-07T18:42:57+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544", + "reference": "5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "~1.0", + "symfony/polyfill-php80": "^1.15" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Debug Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.18" + }, + "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": "2020-12-10T16:34:26+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Filesystem Component", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.2.1" + }, + "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": "2020-11-30T17:05:38+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "75a63c33a8577608444246075ea0af0d052e452a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/master" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2020-07-12T23:59:07+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "php": "^7.3|^8.0" + }, + "platform-dev": [], + "plugin-api-version": "2.0.0" +} diff --git a/config/app.php b/config/app.php new file mode 100644 index 0000000..1874893 --- /dev/null +++ b/config/app.php @@ -0,0 +1,256 @@ + env('APP_NAME', 'partner.gruene-seele.bio'), + + /* + |-------------------------------------------------------------------------- + | Application Environment + |-------------------------------------------------------------------------- + | + | This value determines the "environment" your application is currently + | running in. This may determine how you prefer to configure various + | services the application utilizes. Set this in your ".env" file. + | + */ + + 'env' => env('APP_ENV', 'production'), + + /* + |-------------------------------------------------------------------------- + | Application Debug Mode + |-------------------------------------------------------------------------- + | + | When your application is in debug mode, detailed error messages with + | stack traces will be shown on every error that occurs within your + | application. If disabled, a simple generic error page is shown. + | + */ + + 'debug' => env('APP_DEBUG', false), + + /* + |-------------------------------------------------------------------------- + | Application URL + |-------------------------------------------------------------------------- + | + | This URL is used by the console to properly generate URLs when using + | the Artisan command line tool. You should set this to the root of + | your application so that it is used when running Artisan tasks. + | + */ + + 'url' => env('APP_URL', 'https://partner.gruene-seele.bio'), + + 'checkout_mail' => env('APP_CHECKOUT_MAIL', 'kevin.adametz@me.com'), + 'checkout_test_mail' => env('APP_CHECKOUT_TEST_MAIL', 'kevin.adametz@me.com'), + 'info_mail' => env('APP_INFO_MAIL', 'kevin.adametz@me.com'), + 'info_test_mail' => env('APP_INFO_TEST_MAIL', 'kevin.adametz@me.com'), + + 'main_tax' => env('APP_MAIN_TAX', 1.19), + + 'asset_url' => env('ASSET_URL', null), + + /* + |-------------------------------------------------------------------------- + | Application Timezone + |-------------------------------------------------------------------------- + | + | Here you may specify the default timezone for your application, which + | will be used by the PHP date and date-time functions. We have gone + | ahead and set this to a sensible default for you out of the box. + | + */ + + 'timezone' => 'Europe/Berlin', + + /* + |-------------------------------------------------------------------------- + | Application Locale Configuration + |-------------------------------------------------------------------------- + | + | The application locale determines the default locale that will be used + | by the translation service provider. You are free to set this value + | to any of the locales which will be supported by the application. + | + */ + + 'locale' => 'de', + + /* + |-------------------------------------------------------------------------- + | Application Fallback Locale + |-------------------------------------------------------------------------- + | + | The fallback locale determines the locale to use when the current one + | is not available. You may change the value to correspond to any of + | the language folders that are provided through your application. + | + */ + + 'fallback_locale' => 'de', + + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'en_US', + + /* + |-------------------------------------------------------------------------- + | Encryption Key + |-------------------------------------------------------------------------- + | + | This key is used by the Illuminate encrypter service and should be set + | to a random, 32 character string, otherwise these encrypted strings + | will not be safe. Please do this before deploying an application! + | + */ + + 'key' => env('APP_KEY'), + + 'cipher' => 'AES-256-CBC', + + /* + |-------------------------------------------------------------------------- + | Autoloaded Service Providers + |-------------------------------------------------------------------------- + | + | The service providers listed here will be automatically loaded on the + | request to your application. Feel free to add your own services to + | this array to grant expanded functionality to your applications. + | + */ + + 'providers' => [ + + /* + * Laravel Framework Service Providers... + */ + Illuminate\Auth\AuthServiceProvider::class, + Illuminate\Broadcasting\BroadcastServiceProvider::class, + Illuminate\Bus\BusServiceProvider::class, + Illuminate\Cache\CacheServiceProvider::class, + Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class, + Illuminate\Cookie\CookieServiceProvider::class, + Illuminate\Database\DatabaseServiceProvider::class, + Illuminate\Encryption\EncryptionServiceProvider::class, + Illuminate\Filesystem\FilesystemServiceProvider::class, + Illuminate\Foundation\Providers\FoundationServiceProvider::class, + Illuminate\Hashing\HashServiceProvider::class, + Illuminate\Mail\MailServiceProvider::class, + Illuminate\Notifications\NotificationServiceProvider::class, + Illuminate\Pagination\PaginationServiceProvider::class, + Illuminate\Pipeline\PipelineServiceProvider::class, + Illuminate\Queue\QueueServiceProvider::class, + Illuminate\Redis\RedisServiceProvider::class, + Illuminate\Auth\Passwords\PasswordResetServiceProvider::class, + Illuminate\Session\SessionServiceProvider::class, + Illuminate\Translation\TranslationServiceProvider::class, + Illuminate\Validation\ValidationServiceProvider::class, + Illuminate\View\ViewServiceProvider::class, + + /* + * Package Service Providers... + */ + + /* + * Application Service Providers... + */ + App\Providers\AppServiceProvider::class, + App\Providers\AuthServiceProvider::class, + // App\Providers\BroadcastServiceProvider::class, + App\Providers\EventServiceProvider::class, + App\Providers\RouteServiceProvider::class, + + Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class, + Jenssegers\Date\DateServiceProvider::class, + Collective\Html\HtmlServiceProvider::class, + Intervention\Image\ImageServiceProvider::class, + // Maatwebsite\Excel\ExcelServiceProvider::class, + Yajra\DataTables\DataTablesServiceProvider::class, + App\Providers\YardServiceProvider::class + + ], + + /* + |-------------------------------------------------------------------------- + | Class Aliases + |-------------------------------------------------------------------------- + | + | This array of class aliases will be registered when this application + | is started. However, feel free to register as many as you wish as + | the aliases are "lazy" loaded so they don't hinder performance. + | + */ + + 'aliases' => [ + 'App' => Illuminate\Support\Facades\App::class, + 'Arr' => Illuminate\Support\Arr::class, + 'Artisan' => Illuminate\Support\Facades\Artisan::class, + 'Auth' => Illuminate\Support\Facades\Auth::class, + 'Blade' => Illuminate\Support\Facades\Blade::class, + 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, + 'Bus' => Illuminate\Support\Facades\Bus::class, + 'Cache' => Illuminate\Support\Facades\Cache::class, + 'Config' => Illuminate\Support\Facades\Config::class, + 'Cookie' => Illuminate\Support\Facades\Cookie::class, + 'Crypt' => Illuminate\Support\Facades\Crypt::class, + 'DB' => Illuminate\Support\Facades\DB::class, + 'Eloquent' => Illuminate\Database\Eloquent\Model::class, + 'Event' => Illuminate\Support\Facades\Event::class, + 'File' => Illuminate\Support\Facades\File::class, + 'Gate' => Illuminate\Support\Facades\Gate::class, + 'Hash' => Illuminate\Support\Facades\Hash::class, + 'Http' => Illuminate\Support\Facades\Http::class, + 'Lang' => Illuminate\Support\Facades\Lang::class, + 'Log' => Illuminate\Support\Facades\Log::class, + 'Mail' => Illuminate\Support\Facades\Mail::class, + 'Notification' => Illuminate\Support\Facades\Notification::class, + 'Password' => Illuminate\Support\Facades\Password::class, + 'Queue' => Illuminate\Support\Facades\Queue::class, + 'Redirect' => Illuminate\Support\Facades\Redirect::class, + 'Redis' => Illuminate\Support\Facades\Redis::class, + 'Request' => Illuminate\Support\Facades\Request::class, + 'Response' => Illuminate\Support\Facades\Response::class, + 'Route' => Illuminate\Support\Facades\Route::class, + 'Schema' => Illuminate\Support\Facades\Schema::class, + 'Session' => Illuminate\Support\Facades\Session::class, + 'Storage' => Illuminate\Support\Facades\Storage::class, + 'Str' => Illuminate\Support\Str::class, + 'URL' => Illuminate\Support\Facades\URL::class, + 'Validator' => Illuminate\Support\Facades\Validator::class, + 'View' => Illuminate\Support\Facades\View::class, + 'Input' => Illuminate\Support\Facades\Input::class, + 'Form' => Collective\Html\FormFacade::class, + 'HTML' => Collective\Html\HtmlFacade::class, + 'Image' => Intervention\Image\Facades\Image::class, + 'Carbon' => Carbon\Carbon::class, + 'Date' => Jenssegers\Date\Date::class, + 'HTMLHelper' => App\Services\HTMLHelper::class, + 'Util' => App\Services\Util::class, + //'Excel' => Maatwebsite\Excel\Facades\Excel::class, + 'DataTables' => Yajra\DataTables\Facades\DataTables::class, + 'Yard' => App\Services\Facade\Yard::class, + ], + +]; diff --git a/config/auth.php b/config/auth.php new file mode 100644 index 0000000..54457fe --- /dev/null +++ b/config/auth.php @@ -0,0 +1,117 @@ + [ + 'guard' => 'user', + 'passwords' => 'users', + ], + + /* + |-------------------------------------------------------------------------- + | Authentication Guards + |-------------------------------------------------------------------------- + | + | Next, you may define every authentication guard for your application. + | Of course, a great default configuration has been defined for you + | here which uses session storage and the Eloquent user provider. + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | Supported: "session", "token" + | + */ + + 'guards' => [ + 'user' => [ + 'driver' => 'session', + 'provider' => 'users', + ], + + 'api' => [ + 'driver' => 'token', + 'provider' => 'users', + 'hash' => false, + ], + ], + + /* + |-------------------------------------------------------------------------- + | User Providers + |-------------------------------------------------------------------------- + | + | All authentication drivers have a user provider. This defines how the + | users are actually retrieved out of your database or other storage + | mechanisms used by this application to persist your user's data. + | + | If you have multiple user tables or models you may configure multiple + | sources which represent each model / table. These sources may then + | be assigned to any extra authentication guards you have defined. + | + | Supported: "database", "eloquent" + | + */ + + 'providers' => [ + 'users' => [ + 'driver' => 'eloquent', + 'model' => App\User::class, + ], + + // 'users' => [ + // 'driver' => 'database', + // 'table' => 'users', + // ], + ], + + /* + |-------------------------------------------------------------------------- + | Resetting Passwords + |-------------------------------------------------------------------------- + | + | You may specify multiple password reset configurations if you have more + | than one user table or model in the application and you want to have + | separate password reset settings based on the specific user types. + | + | The expire time is the number of minutes that the reset token should be + | considered valid. This security feature keeps tokens short-lived so + | they have less time to be guessed. You may change this as needed. + | + */ + + 'passwords' => [ + 'users' => [ + 'provider' => 'users', + 'table' => 'password_resets', + 'expire' => 60, + 'throttle' => 60, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Password Confirmation Timeout + |-------------------------------------------------------------------------- + | + | Here you may define the amount of seconds before a password confirmation + | times out and the user is prompted to re-enter their password via the + | confirmation screen. By default, the timeout lasts for three hours. + | + */ + + 'password_timeout' => 10800, + +]; diff --git a/config/broadcasting.php b/config/broadcasting.php new file mode 100644 index 0000000..3bba110 --- /dev/null +++ b/config/broadcasting.php @@ -0,0 +1,59 @@ + env('BROADCAST_DRIVER', 'null'), + + /* + |-------------------------------------------------------------------------- + | Broadcast Connections + |-------------------------------------------------------------------------- + | + | Here you may define all of the broadcast connections that will be used + | to broadcast events to other systems or over websockets. Samples of + | each available type of connection are provided inside this array. + | + */ + + 'connections' => [ + + 'pusher' => [ + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), + 'secret' => env('PUSHER_APP_SECRET'), + 'app_id' => env('PUSHER_APP_ID'), + 'options' => [ + 'cluster' => env('PUSHER_APP_CLUSTER'), + 'useTLS' => true, + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + ], + + 'log' => [ + 'driver' => 'log', + ], + + 'null' => [ + 'driver' => 'null', + ], + + ], + +]; diff --git a/config/cache.php b/config/cache.php new file mode 100644 index 0000000..46751e6 --- /dev/null +++ b/config/cache.php @@ -0,0 +1,103 @@ + env('CACHE_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Cache Stores + |-------------------------------------------------------------------------- + | + | Here you may define all of the cache "stores" for your application as + | well as their drivers. You may even define multiple stores for the + | same cache driver to group types of items stored in your caches. + | + */ + + 'stores' => [ + + 'apc' => [ + 'driver' => 'apc', + ], + + 'array' => [ + 'driver' => 'array', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'cache', + 'connection' => null, + ], + + 'file' => [ + 'driver' => 'file', + 'path' => storage_path('framework/cache/data'), + ], + + 'memcached' => [ + 'driver' => 'memcached', + 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), + 'sasl' => [ + env('MEMCACHED_USERNAME'), + env('MEMCACHED_PASSWORD'), + ], + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], + 'servers' => [ + [ + 'host' => env('MEMCACHED_HOST', '127.0.0.1'), + 'port' => env('MEMCACHED_PORT', 11211), + 'weight' => 100, + ], + ], + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'cache', + ], + + 'dynamodb' => [ + 'driver' => 'dynamodb', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'endpoint' => env('DYNAMODB_ENDPOINT'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Cache Key Prefix + |-------------------------------------------------------------------------- + | + | When utilizing a RAM based store such as APC or Memcached, there might + | be other applications utilizing the same cache. So, we'll specify a + | value to get prefixed to all our keys so we can avoid collisions. + | + */ + + 'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'), + +]; diff --git a/config/cart.php b/config/cart.php new file mode 100644 index 0000000..8e491ce --- /dev/null +++ b/config/cart.php @@ -0,0 +1,75 @@ + 19, + + /* + |-------------------------------------------------------------------------- + | Shoppingcart database settings + |-------------------------------------------------------------------------- + | + | Here you can set the connection that the shoppingcart should use when + | storing and restoring a cart. + | + */ + + 'database' => [ + + 'connection' => null, + + 'table' => 'shoppingcart', + + ], + + /* + |-------------------------------------------------------------------------- + | Destroy the cart on user logout + |-------------------------------------------------------------------------- + | + | When this option is set to 'true' the cart will automatically + | destroy all cart instances when the user logs out. + | + */ + + 'destroy_on_logout' => false, + + /* + |-------------------------------------------------------------------------- + | Default number format + |-------------------------------------------------------------------------- + | + | This defaults will be used for the formated numbers if you don't + | set them in the method call. + | + */ + + 'format' => [ + + 'decimals' => 2, + + 'decimal_point' => '.', + + 'thousand_seperator' => '' + + ], + + /* + |-------------------------------------------------------------------------- + | Allows you to choose if the discounts applied to fees + |-------------------------------------------------------------------------- + | + */ + 'discountOnFees' => false, + +]; diff --git a/config/cors.php b/config/cors.php new file mode 100644 index 0000000..5c9de89 --- /dev/null +++ b/config/cors.php @@ -0,0 +1,34 @@ + ['api/*'], + + 'allowed_methods' => ['*'], + + 'allowed_origins' => ['*'], + + 'allowed_origins_patterns' => [], + + 'allowed_headers' => ['*'], + + 'exposed_headers' => false, + + 'max_age' => false, + + 'supports_credentials' => false, + +]; diff --git a/config/database.php b/config/database.php new file mode 100644 index 0000000..b42d9b3 --- /dev/null +++ b/config/database.php @@ -0,0 +1,147 @@ + env('DB_CONNECTION', 'mysql'), + + /* + |-------------------------------------------------------------------------- + | Database Connections + |-------------------------------------------------------------------------- + | + | Here are each of the database connections setup for your application. + | Of course, examples of configuring each database platform that is + | supported by Laravel is shown below to make development simple. + | + | + | All database work in Laravel is done through the PHP PDO facilities + | so make sure you have the driver for your particular database of + | choice installed on your machine before you begin development. + | + */ + + 'connections' => [ + + 'sqlite' => [ + 'driver' => 'sqlite', + 'url' => env('DATABASE_URL'), + 'database' => env('DB_DATABASE', database_path('database.sqlite')), + 'prefix' => '', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + ], + + 'mysql' => [ + 'driver' => 'mysql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'unix_socket' => env('DB_SOCKET', ''), + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'prefix' => '', + 'prefix_indexes' => true, + 'strict' => true, + 'engine' => null, + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + ], + + 'pgsql' => [ + 'driver' => 'pgsql', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '5432'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + 'schema' => 'public', + 'sslmode' => 'prefer', + ], + + 'sqlsrv' => [ + 'driver' => 'sqlsrv', + 'url' => env('DATABASE_URL'), + 'host' => env('DB_HOST', 'localhost'), + 'port' => env('DB_PORT', '1433'), + 'database' => env('DB_DATABASE', 'forge'), + 'username' => env('DB_USERNAME', 'forge'), + 'password' => env('DB_PASSWORD', ''), + 'charset' => 'utf8', + 'prefix' => '', + 'prefix_indexes' => true, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Migration Repository Table + |-------------------------------------------------------------------------- + | + | This table keeps track of all the migrations that have already run for + | your application. Using this information, we can determine which of + | the migrations on disk haven't actually been run in the database. + | + */ + + 'migrations' => 'migrations', + + /* + |-------------------------------------------------------------------------- + | Redis Databases + |-------------------------------------------------------------------------- + | + | Redis is an open source, fast, and advanced key-value store that also + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Laravel makes it easy to dig right in. + | + */ + + 'redis' => [ + + 'client' => env('REDIS_CLIENT', 'phpredis'), + + 'options' => [ + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), + ], + + 'default' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_DB', '0'), + ], + + 'cache' => [ + 'url' => env('REDIS_URL'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD', null), + 'port' => env('REDIS_PORT', '6379'), + 'database' => env('REDIS_CACHE_DB', '1'), + ], + + ], + +]; diff --git a/config/debugbar.php b/config/debugbar.php new file mode 100644 index 0000000..ada83c6 --- /dev/null +++ b/config/debugbar.php @@ -0,0 +1,216 @@ + env('DEBUGBAR_ENABLED', null), + 'except' => [ + 'telescope*', + 'horizon*', + ], + + /* + |-------------------------------------------------------------------------- + | Storage settings + |-------------------------------------------------------------------------- + | + | DebugBar stores data for session/ajax requests. + | You can disable this, so the debugbar stores data in headers/session, + | but this can cause problems with large data collectors. + | By default, file storage (in the storage folder) is used. Redis and PDO + | can also be used. For PDO, run the package migrations first. + | + */ + 'storage' => [ + 'enabled' => true, + 'driver' => 'file', // redis, file, pdo, custom + 'path' => storage_path('debugbar'), // For file driver + 'connection' => null, // Leave null for default connection (Redis/PDO) + 'provider' => '', // Instance of StorageInterface for custom driver + ], + + /* + |-------------------------------------------------------------------------- + | Vendors + |-------------------------------------------------------------------------- + | + | Vendor files are included by default, but can be set to false. + | This can also be set to 'js' or 'css', to only include javascript or css vendor files. + | Vendor files are for css: font-awesome (including fonts) and highlight.js (css files) + | and for js: jquery and and highlight.js + | So if you want syntax highlighting, set it to true. + | jQuery is set to not conflict with existing jQuery scripts. + | + */ + + 'include_vendors' => true, + + /* + |-------------------------------------------------------------------------- + | Capture Ajax Requests + |-------------------------------------------------------------------------- + | + | The Debugbar can capture Ajax requests and display them. If you don't want this (ie. because of errors), + | you can use this option to disable sending the data through the headers. + | + | Optionally, you can also send ServerTiming headers on ajax requests for the Chrome DevTools. + */ + + 'capture_ajax' => true, + 'add_ajax_timing' => false, + + /* + |-------------------------------------------------------------------------- + | Custom Error Handler for Deprecated warnings + |-------------------------------------------------------------------------- + | + | When enabled, the Debugbar shows deprecated warnings for Symfony components + | in the Messages tab. + | + */ + 'error_handler' => false, + + /* + |-------------------------------------------------------------------------- + | Clockwork integration + |-------------------------------------------------------------------------- + | + | The Debugbar can emulate the Clockwork headers, so you can use the Chrome + | Extension, without the server-side code. It uses Debugbar collectors instead. + | + */ + 'clockwork' => false, + + /* + |-------------------------------------------------------------------------- + | DataCollectors + |-------------------------------------------------------------------------- + | + | Enable/disable DataCollectors + | + */ + + 'collectors' => [ + 'phpinfo' => true, // Php version + 'messages' => true, // Messages + 'time' => true, // Time Datalogger + 'memory' => true, // Memory usage + 'exceptions' => true, // Exception displayer + 'log' => true, // Logs from Monolog (merged in messages if enabled) + 'db' => true, // Show database (PDO) queries and bindings + 'views' => true, // Views with their data + 'route' => true, // Current route information + 'auth' => false, // Display Laravel authentication status + 'gate' => true, // Display Laravel Gate checks + 'session' => true, // Display session data + 'symfony_request' => true, // Only one can be enabled.. + 'mail' => true, // Catch mail messages + 'laravel' => false, // Laravel version and environment + 'events' => false, // All events fired + 'default_request' => false, // Regular or special Symfony request logger + 'logs' => false, // Add the latest log messages + 'files' => false, // Show the included files + 'config' => false, // Display config settings + 'cache' => false, // Display cache events + 'models' => true, // Display models + 'livewire' => true, // Display Livewire (when available) + ], + + /* + |-------------------------------------------------------------------------- + | Extra options + |-------------------------------------------------------------------------- + | + | Configure some DataCollectors + | + */ + + 'options' => [ + 'auth' => [ + 'show_name' => true, // Also show the users name/email in the debugbar + ], + 'db' => [ + 'with_params' => true, // Render SQL with the parameters substituted + 'backtrace' => true, // Use a backtrace to find the origin of the query in your files. + 'backtrace_exclude_paths' => [], // Paths to exclude from backtrace. (in addition to defaults) + 'timeline' => false, // Add the queries to the timeline + 'explain' => [ // Show EXPLAIN output on queries + 'enabled' => false, + 'types' => ['SELECT'], // Deprecated setting, is always only SELECT + ], + 'hints' => false, // Show hints for common mistakes + 'show_copy' => false, // Show copy button next to the query + ], + 'mail' => [ + 'full_log' => false, + ], + 'views' => [ + 'data' => false, //Note: Can slow down the application, because the data can be quite large.. + ], + 'route' => [ + 'label' => true, // show complete route on bar + ], + 'logs' => [ + 'file' => null, + ], + 'cache' => [ + 'values' => true, // collect cache values + ], + ], + + /* + |-------------------------------------------------------------------------- + | Inject Debugbar in Response + |-------------------------------------------------------------------------- + | + | Usually, the debugbar is added just before , by listening to the + | Response after the App is done. If you disable this, you have to add them + | in your template yourself. See http://phpdebugbar.com/docs/rendering.html + | + */ + + 'inject' => true, + + /* + |-------------------------------------------------------------------------- + | DebugBar route prefix + |-------------------------------------------------------------------------- + | + | Sometimes you want to set route prefix to be used by DebugBar to load + | its resources from. Usually the need comes from misconfigured web server or + | from trying to overcome bugs like this: http://trac.nginx.org/nginx/ticket/97 + | + */ + 'route_prefix' => '_debugbar', + + /* + |-------------------------------------------------------------------------- + | DebugBar route domain + |-------------------------------------------------------------------------- + | + | By default DebugBar route served from the same domain that request served. + | To override default domain, specify it as a non-empty value. + */ + 'route_domain' => null, + + /* + |-------------------------------------------------------------------------- + | DebugBar theme + |-------------------------------------------------------------------------- + | + | Switches between light and dark theme. If set to auto it will respect system preferences + | Possible values: auto, light, dark + */ + 'theme' => 'auto', +]; diff --git a/config/dompdf.php b/config/dompdf.php new file mode 100644 index 0000000..3ddda23 --- /dev/null +++ b/config/dompdf.php @@ -0,0 +1,244 @@ + false, // Throw an Exception on warnings from dompdf + 'orientation' => 'portrait', + 'defines' => array( + /** + * The location of the DOMPDF font directory + * + * The location of the directory where DOMPDF will store fonts and font metrics + * Note: This directory must exist and be writable by the webserver process. + * *Please note the trailing slash.* + * + * Notes regarding fonts: + * Additional .afm font metrics can be added by executing load_font.php from command line. + * + * Only the original "Base 14 fonts" are present on all pdf viewers. Additional fonts must + * be embedded in the pdf file or the PDF may not display correctly. This can significantly + * increase file size unless font subsetting is enabled. Before embedding a font please + * review your rights under the font license. + * + * Any font specification in the source HTML is translated to the closest font available + * in the font directory. + * + * The pdf standard "Base 14 fonts" are: + * Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique, + * Helvetica, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique, + * Times-Roman, Times-Bold, Times-BoldItalic, Times-Italic, + * Symbol, ZapfDingbats. + */ + "font_dir" => storage_path('fonts/'), // advised by dompdf (https://github.com/dompdf/dompdf/pull/782) + + /** + * The location of the DOMPDF font cache directory + * + * This directory contains the cached font metrics for the fonts used by DOMPDF. + * This directory can be the same as DOMPDF_FONT_DIR + * + * Note: This directory must exist and be writable by the webserver process. + */ + "font_cache" => storage_path('fonts/'), + + /** + * The location of a temporary directory. + * + * The directory specified must be writeable by the webserver process. + * The temporary directory is required to download remote images and when + * using the PFDLib back end. + */ + "temp_dir" => sys_get_temp_dir(), + + /** + * ==== IMPORTANT ==== + * + * dompdf's "chroot": Prevents dompdf from accessing system files or other + * files on the webserver. All local files opened by dompdf must be in a + * subdirectory of this directory. DO NOT set it to '/' since this could + * allow an attacker to use dompdf to read any files on the server. This + * should be an absolute path. + * This is only checked on command line call by dompdf.php, but not by + * direct class use like: + * $dompdf = new DOMPDF(); $dompdf->load_html($htmldata); $dompdf->render(); $pdfdata = $dompdf->output(); + */ + "chroot" => realpath(base_path()), + + /** + * Whether to enable font subsetting or not. + */ + "enable_font_subsetting" => false, + + /** + * The PDF rendering backend to use + * + * Valid settings are 'PDFLib', 'CPDF' (the bundled R&OS PDF class), 'GD' and + * 'auto'. 'auto' will look for PDFLib and use it if found, or if not it will + * fall back on CPDF. 'GD' renders PDFs to graphic files. {@link + * Canvas_Factory} ultimately determines which rendering class to instantiate + * based on this setting. + * + * Both PDFLib & CPDF rendering backends provide sufficient rendering + * capabilities for dompdf, however additional features (e.g. object, + * image and font support, etc.) differ between backends. Please see + * {@link PDFLib_Adapter} for more information on the PDFLib backend + * and {@link CPDF_Adapter} and lib/class.pdf.php for more information + * on CPDF. Also see the documentation for each backend at the links + * below. + * + * The GD rendering backend is a little different than PDFLib and + * CPDF. Several features of CPDF and PDFLib are not supported or do + * not make any sense when creating image files. For example, + * multiple pages are not supported, nor are PDF 'objects'. Have a + * look at {@link GD_Adapter} for more information. GD support is + * experimental, so use it at your own risk. + * + * @link http://www.pdflib.com + * @link http://www.ros.co.nz/pdf + * @link http://www.php.net/image + */ + "pdf_backend" => "CPDF", + + /** + * PDFlib license key + * + * If you are using a licensed, commercial version of PDFlib, specify + * your license key here. If you are using PDFlib-Lite or are evaluating + * the commercial version of PDFlib, comment out this setting. + * + * @link http://www.pdflib.com + * + * If pdflib present in web server and auto or selected explicitely above, + * a real license code must exist! + */ + //"DOMPDF_PDFLIB_LICENSE" => "your license key here", + + /** + * html target media view which should be rendered into pdf. + * List of types and parsing rules for future extensions: + * http://www.w3.org/TR/REC-html40/types.html + * screen, tty, tv, projection, handheld, print, braille, aural, all + * Note: aural is deprecated in CSS 2.1 because it is replaced by speech in CSS 3. + * Note, even though the generated pdf file is intended for print output, + * the desired content might be different (e.g. screen or projection view of html file). + * Therefore allow specification of content here. + */ + "default_media_type" => "screen", + + /** + * The default paper size. + * + * North America standard is "letter"; other countries generally "a4" + * + * @see CPDF_Adapter::PAPER_SIZES for valid sizes ('letter', 'legal', 'A4', etc.) + */ + "default_paper_size" => "a4", + + /** + * The default font family + * + * Used if no suitable fonts can be found. This must exist in the font folder. + * @var string + */ + "default_font" => "serif", + + /** + * Image DPI setting + * + * This setting determines the default DPI setting for images and fonts. The + * DPI may be overridden for inline images by explictly setting the + * image's width & height style attributes (i.e. if the image's native + * width is 600 pixels and you specify the image's width as 72 points, + * the image will have a DPI of 600 in the rendered PDF. The DPI of + * background images can not be overridden and is controlled entirely + * via this parameter. + * + * For the purposes of DOMPDF, pixels per inch (PPI) = dots per inch (DPI). + * If a size in html is given as px (or without unit as image size), + * this tells the corresponding size in pt. + * This adjusts the relative sizes to be similar to the rendering of the + * html page in a reference browser. + * + * In pdf, always 1 pt = 1/72 inch + * + * Rendering resolution of various browsers in px per inch: + * Windows Firefox and Internet Explorer: + * SystemControl->Display properties->FontResolution: Default:96, largefonts:120, custom:? + * Linux Firefox: + * about:config *resolution: Default:96 + * (xorg screen dimension in mm and Desktop font dpi settings are ignored) + * + * Take care about extra font/image zoom factor of browser. + * + * In images, size in pixel attribute, img css style, are overriding + * the real image dimension in px for rendering. + * + * @var int + */ + "dpi" => 150, + + /** + * Enable inline PHP + * + * If this setting is set to true then DOMPDF will automatically evaluate + * inline PHP contained within tags. + * + * Enabling this for documents you do not trust (e.g. arbitrary remote html + * pages) is a security risk. Set this option to false if you wish to process + * untrusted documents. + * + * @var bool + */ + "enable_php" => false, + + /** + * Enable inline Javascript + * + * If this setting is set to true then DOMPDF will automatically insert + * JavaScript code contained within tags. + * + * @var bool + */ + "enable_javascript" => true, + + /** + * Enable remote file access + * + * If this setting is set to true, DOMPDF will access remote sites for + * images and CSS files as required. + * This is required for part of test case www/test/image_variants.html through www/examples.php + * + * Attention! + * This can be a security risk, in particular in combination with DOMPDF_ENABLE_PHP and + * allowing remote access to dompdf.php or on allowing remote html code to be passed to + * $dompdf = new DOMPDF(, $dompdf->load_html(..., + * This allows anonymous users to download legally doubtful internet content which on + * tracing back appears to being downloaded by your server, or allows malicious php code + * in remote html pages to be executed by your server with your account privileges. + * + * @var bool + */ + "enable_remote" => true, + + /** + * A ratio applied to the fonts height to be more like browsers' line height + */ + "font_height_ratio" => 1.1, + + /** + * Use the more-than-experimental HTML5 Lib parser + */ + "enable_html5_parser" => false, + ), + + +); diff --git a/config/filesystems.php b/config/filesystems.php new file mode 100644 index 0000000..f5be3a2 --- /dev/null +++ b/config/filesystems.php @@ -0,0 +1,94 @@ + env('FILESYSTEM_DRIVER', 'local'), + + /* + |-------------------------------------------------------------------------- + | Default Cloud Filesystem Disk + |-------------------------------------------------------------------------- + | + | Many applications store files both locally and in the cloud. For this + | reason, you may specify a default "cloud" driver here. This driver + | will be bound as the Cloud disk implementation in the container. + | + */ + + 'cloud' => env('FILESYSTEM_CLOUD', 's3'), + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been setup for each driver as an example of the required options. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => storage_path('app'), + ], + 'user' => [ + 'driver' => 'local', + 'root' => storage_path('app/users'), + 'url' => env('APP_URL').'/storage/users', + 'visibility' => 'public', + ], + 'import' => [ + 'driver' => 'local', + 'root' => storage_path("app/import"), + 'url' => env('APP_URL').'/storage/app/import', + + ], + 'public' => [ + 'driver' => 'local', + 'root' => storage_path('app/public'), + 'url' => env('APP_URL').'/storage', + 'visibility' => 'public', + ], + 's3' => [ + 'driver' => 's3', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION'), + 'bucket' => env('AWS_BUCKET'), + 'url' => env('AWS_URL'), + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Symbolic Links + |-------------------------------------------------------------------------- + | + | Here you may configure the symbolic links that will be created when the + | `storage:link` Artisan command is executed. The array keys should be + | the locations of the links and the values should be their targets. + | + */ + + 'links' => [ + public_path('storage') => storage_path('app/public'), + ], + +]; diff --git a/config/hashing.php b/config/hashing.php new file mode 100644 index 0000000..9146bfd --- /dev/null +++ b/config/hashing.php @@ -0,0 +1,52 @@ + 'bcrypt', + + /* + |-------------------------------------------------------------------------- + | Bcrypt Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Bcrypt algorithm. This will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'bcrypt' => [ + 'rounds' => env('BCRYPT_ROUNDS', 10), + ], + + /* + |-------------------------------------------------------------------------- + | Argon Options + |-------------------------------------------------------------------------- + | + | Here you may specify the configuration options that should be used when + | passwords are hashed using the Argon algorithm. These will allow you + | to control the amount of time it takes to hash the given password. + | + */ + + 'argon' => [ + 'memory' => 8192, + 'threads' => 2, + 'time' => 2, + ], + +]; diff --git a/config/ide-helper.php b/config/ide-helper.php new file mode 100644 index 0000000..620b95c --- /dev/null +++ b/config/ide-helper.php @@ -0,0 +1,281 @@ + '_ide_helper.php', + + /* + |-------------------------------------------------------------------------- + | Where to write the PhpStorm specific meta file + |-------------------------------------------------------------------------- + | + | PhpStorm also supports the directory `.phpstorm.meta.php/` with arbitrary + | files in it, should you need additional files for your project; e.g. + | `.phpstorm.meta.php/laravel_ide_Helper.php'. + | + */ + 'meta_filename' => '.phpstorm.meta.php', + + /* + |-------------------------------------------------------------------------- + | Fluent helpers + |-------------------------------------------------------------------------- + | + | Set to true to generate commonly used Fluent methods + | + */ + + 'include_fluent' => false, + + /* + |-------------------------------------------------------------------------- + | Factory Builders + |-------------------------------------------------------------------------- + | + | Set to true to generate factory generators for better factory() + | method auto-completion. + | + | Deprecated for Laravel 8 or latest. + | + */ + + 'include_factory_builders' => false, + + /* + |-------------------------------------------------------------------------- + | Write Model Magic methods + |-------------------------------------------------------------------------- + | + | Set to false to disable write magic methods of model + | + */ + + 'write_model_magic_where' => true, + + /* + |-------------------------------------------------------------------------- + | Write Model External Eloquent Builder methods + |-------------------------------------------------------------------------- + | + | Set to false to disable write external eloquent builder methods + | + */ + + 'write_model_external_builder_methods' => true, + + /* + |-------------------------------------------------------------------------- + | Write Model relation count properties + |-------------------------------------------------------------------------- + | + | Set to false to disable writing of relation count properties to model DocBlocks. + | + */ + + 'write_model_relation_count_properties' => true, + + /* + |-------------------------------------------------------------------------- + | Write Eloquent Model Mixins + |-------------------------------------------------------------------------- + | + | This will add the necessary DocBlock mixins to the model class + | contained in the Laravel Framework. This helps the IDE with + | auto-completion. + | + | Please be aware that this setting changes a file within the /vendor directory. + | + */ + + 'write_eloquent_model_mixins' => false, + + /* + |-------------------------------------------------------------------------- + | Helper files to include + |-------------------------------------------------------------------------- + | + | Include helper files. By default not included, but can be toggled with the + | -- helpers (-H) option. Extra helper files can be included. + | + */ + + 'include_helpers' => false, + + 'helper_files' => [ + base_path() . '/vendor/laravel/framework/src/Illuminate/Support/helpers.php', + ], + + /* + |-------------------------------------------------------------------------- + | Model locations to include + |-------------------------------------------------------------------------- + | + | Define in which directories the ide-helper:models command should look + | for models. + | + | glob patterns are supported to easier reach models in sub-directories, + | e.g. `app/Services/* /Models` (without the space) + | + */ + + 'model_locations' => [ + 'app', + ], + + /* + |-------------------------------------------------------------------------- + | Models to ignore + |-------------------------------------------------------------------------- + | + | Define which models should be ignored. + | + */ + + 'ignored_models' => [ + + ], + + /* + |-------------------------------------------------------------------------- + | Extra classes + |-------------------------------------------------------------------------- + | + | These implementations are not really extended, but called with magic functions + | + */ + + 'extra' => [ + 'Eloquent' => ['Illuminate\Database\Eloquent\Builder', 'Illuminate\Database\Query\Builder'], + 'Session' => ['Illuminate\Session\Store'], + ], + + 'magic' => [], + + /* + |-------------------------------------------------------------------------- + | Interface implementations + |-------------------------------------------------------------------------- + | + | These interfaces will be replaced with the implementing class. Some interfaces + | are detected by the helpers, others can be listed below. + | + */ + + 'interfaces' => [ + + ], + + /* + |-------------------------------------------------------------------------- + | Support for custom DB types + |-------------------------------------------------------------------------- + | + | This setting allow you to map any custom database type (that you may have + | created using CREATE TYPE statement or imported using database plugin + | / extension to a Doctrine type. + | + | Each key in this array is a name of the Doctrine2 DBAL Platform. Currently valid names are: + | 'postgresql', 'db2', 'drizzle', 'mysql', 'oracle', 'sqlanywhere', 'sqlite', 'mssql' + | + | This name is returned by getName() method of the specific Doctrine/DBAL/Platforms/AbstractPlatform descendant + | + | The value of the array is an array of type mappings. Key is the name of the custom type, + | (for example, "jsonb" from Postgres 9.4) and the value is the name of the corresponding Doctrine2 type (in + | our case it is 'json_array'. Doctrine types are listed here: + | http://doctrine-dbal.readthedocs.org/en/latest/reference/types.html + | + | So to support jsonb in your models when working with Postgres, just add the following entry to the array below: + | + | "postgresql" => array( + | "jsonb" => "json_array", + | ), + | + */ + 'custom_db_types' => [ + + ], + + /* + |-------------------------------------------------------------------------- + | Support for camel cased models + |-------------------------------------------------------------------------- + | + | There are some Laravel packages (such as Eloquence) that allow for accessing + | Eloquent model properties via camel case, instead of snake case. + | + | Enabling this option will support these packages by saving all model + | properties as camel case, instead of snake case. + | + | For example, normally you would see this: + | + | * @property \Illuminate\Support\Carbon $created_at + | * @property \Illuminate\Support\Carbon $updated_at + | + | With this enabled, the properties will be this: + | + | * @property \Illuminate\Support\Carbon $createdAt + | * @property \Illuminate\Support\Carbon $updatedAt + | + | Note, it is currently an all-or-nothing option. + | + */ + 'model_camel_case_properties' => false, + + /* + |-------------------------------------------------------------------------- + | Property Casts + |-------------------------------------------------------------------------- + | + | Cast the given "real type" to the given "type". + | + */ + 'type_overrides' => [ + 'integer' => 'int', + 'boolean' => 'bool', + ], + + /* + |-------------------------------------------------------------------------- + | Include DocBlocks from classes + |-------------------------------------------------------------------------- + | + | Include DocBlocks from classes to allow additional code inspection for + | magic methods and properties. + | + */ + 'include_class_docblocks' => false, + + /* + |-------------------------------------------------------------------------- + | Force FQN usage + |-------------------------------------------------------------------------- + | + | Use the fully qualified (class) name in docBlock, + | event if class exists in a given file + | or there is an import (use className) of a given class + | + */ + 'force_fqn' => false, + + /* + |-------------------------------------------------------------------------- + | Additional relation types + |-------------------------------------------------------------------------- + | + | Sometimes it's needed to create custom relation types. The key of the array + | is the Relationship Method name. The value of the array is the canonical class + | name of the Relationship, e.g. `'relationName' => RelationShipClass::class`. + | + */ + 'additional_relation_types' => [], + +]; diff --git a/config/localization.php b/config/localization.php new file mode 100644 index 0000000..e53ce32 --- /dev/null +++ b/config/localization.php @@ -0,0 +1,300 @@ + [ + //'ace' => ['name' => 'Achinese', 'script' => 'Latn', 'native' => 'Aceh', 'regional' => ''], + //'af' => ['name' => 'Afrikaans', 'script' => 'Latn', 'native' => 'Afrikaans', 'regional' => 'af_ZA'], + //'agq' => ['name' => 'Aghem', 'script' => 'Latn', 'native' => 'Aghem', 'regional' => ''], + //'ak' => ['name' => 'Akan', 'script' => 'Latn', 'native' => 'Akan', 'regional' => 'ak_GH'], + //'an' => ['name' => 'Aragonese', 'script' => 'Latn', 'native' => 'aragonés', 'regional' => 'an_ES'], + //'cch' => ['name' => 'Atsam', 'script' => 'Latn', 'native' => 'Atsam', 'regional' => ''], + //'gn' => ['name' => 'Guaraní', 'script' => 'Latn', 'native' => 'Avañe’ẽ', 'regional' => ''], + //'ae' => ['name' => 'Avestan', 'script' => 'Latn', 'native' => 'avesta', 'regional' => ''], + //'ay' => ['name' => 'Aymara', 'script' => 'Latn', 'native' => 'aymar aru', 'regional' => 'ay_PE'], + //'az' => ['name' => 'Azerbaijani (Latin)', 'script' => 'Latn', 'native' => 'azərbaycanca', 'regional' => 'az_AZ'], + //'id' => ['name' => 'Indonesian', 'script' => 'Latn', 'native' => 'Bahasa Indonesia', 'regional' => 'id_ID'], + //'ms' => ['name' => 'Malay', 'script' => 'Latn', 'native' => 'Bahasa Melayu', 'regional' => 'ms_MY'], + //'bm' => ['name' => 'Bambara', 'script' => 'Latn', 'native' => 'bamanakan', 'regional' => ''], + //'jv' => ['name' => 'Javanese (Latin)', 'script' => 'Latn', 'native' => 'Basa Jawa', 'regional' => ''], + //'su' => ['name' => 'Sundanese', 'script' => 'Latn', 'native' => 'Basa Sunda', 'regional' => ''], + //'bh' => ['name' => 'Bihari', 'script' => 'Latn', 'native' => 'Bihari', 'regional' => ''], + //'bi' => ['name' => 'Bislama', 'script' => 'Latn', 'native' => 'Bislama', 'regional' => ''], + //'nb' => ['name' => 'Norwegian Bokmål', 'script' => 'Latn', 'native' => 'Bokmål', 'regional' => 'nb_NO'], + //'bs' => ['name' => 'Bosnian', 'script' => 'Latn', 'native' => 'bosanski', 'regional' => 'bs_BA'], + //'br' => ['name' => 'Breton', 'script' => 'Latn', 'native' => 'brezhoneg', 'regional' => 'br_FR'], + //'ca' => ['name' => 'Catalan', 'script' => 'Latn', 'native' => 'català', 'regional' => 'ca_ES'], + //'ch' => ['name' => 'Chamorro', 'script' => 'Latn', 'native' => 'Chamoru', 'regional' => ''], + //'ny' => ['name' => 'Chewa', 'script' => 'Latn', 'native' => 'chiCheŵa', 'regional' => ''], + //'kde' => ['name' => 'Makonde', 'script' => 'Latn', 'native' => 'Chimakonde', 'regional' => ''], + //'sn' => ['name' => 'Shona', 'script' => 'Latn', 'native' => 'chiShona', 'regional' => ''], + //'co' => ['name' => 'Corsican', 'script' => 'Latn', 'native' => 'corsu', 'regional' => ''], + //'cy' => ['name' => 'Welsh', 'script' => 'Latn', 'native' => 'Cymraeg', 'regional' => 'cy_GB'], + //'da' => ['name' => 'Danish', 'script' => 'Latn', 'native' => 'dansk', 'regional' => 'da_DK'], + //'se' => ['name' => 'Northern Sami', 'script' => 'Latn', 'native' => 'davvisámegiella', 'regional' => 'se_NO'], + 'de' => ['name' => 'German', 'script' => 'Latn', 'native' => 'Deutsch', 'regional' => 'de_DE'], + //'luo' => ['name' => 'Luo', 'script' => 'Latn', 'native' => 'Dholuo', 'regional' => ''], + //'nv' => ['name' => 'Navajo', 'script' => 'Latn', 'native' => 'Diné bizaad', 'regional' => ''], + //'dua' => ['name' => 'Duala', 'script' => 'Latn', 'native' => 'duálá', 'regional' => ''], + //'et' => ['name' => 'Estonian', 'script' => 'Latn', 'native' => 'eesti', 'regional' => 'et_EE'], + //'na' => ['name' => 'Nauru', 'script' => 'Latn', 'native' => 'Ekakairũ Naoero', 'regional' => ''], + //'guz' => ['name' => 'Ekegusii', 'script' => 'Latn', 'native' => 'Ekegusii', 'regional' => ''], + // 'en' => ['name' => 'English', 'script' => 'Latn', 'native' => 'English', 'regional' => 'en_GB'], + //'en-AU' => ['name' => 'Australian English', 'script' => 'Latn', 'native' => 'Australian English', 'regional' => 'en_AU'], + //'en-GB' => ['name' => 'British English', 'script' => 'Latn', 'native' => 'British English', 'regional' => 'en_GB'], + //'en-US' => ['name' => 'U.S. English', 'script' => 'Latn', 'native' => 'U.S. English', 'regional' => 'en_US'], + // 'es' => ['name' => 'Spanish', 'script' => 'Latn', 'native' => 'español', 'regional' => 'es_ES'], + //'eo' => ['name' => 'Esperanto', 'script' => 'Latn', 'native' => 'esperanto', 'regional' => ''], + //'eu' => ['name' => 'Basque', 'script' => 'Latn', 'native' => 'euskara', 'regional' => 'eu_ES'], + //'ewo' => ['name' => 'Ewondo', 'script' => 'Latn', 'native' => 'ewondo', 'regional' => ''], + //'ee' => ['name' => 'Ewe', 'script' => 'Latn', 'native' => 'eʋegbe', 'regional' => ''], + //'fil' => ['name' => 'Filipino', 'script' => 'Latn', 'native' => 'Filipino', 'regional' => 'fil_PH'], + // 'fr' => ['name' => 'French', 'script' => 'Latn', 'native' => 'français', 'regional' => 'fr_FR'], + //'fr-CA' => ['name' => 'Canadian French', 'script' => 'Latn', 'native' => 'français canadien', 'regional' => 'fr_CA'], + //'fy' => ['name' => 'Western Frisian', 'script' => 'Latn', 'native' => 'frysk', 'regional' => 'fy_DE'], + //'fur' => ['name' => 'Friulian', 'script' => 'Latn', 'native' => 'furlan', 'regional' => 'fur_IT'], + //'fo' => ['name' => 'Faroese', 'script' => 'Latn', 'native' => 'føroyskt', 'regional' => 'fo_FO'], + //'gaa' => ['name' => 'Ga', 'script' => 'Latn', 'native' => 'Ga', 'regional' => ''], + //'ga' => ['name' => 'Irish', 'script' => 'Latn', 'native' => 'Gaeilge', 'regional' => 'ga_IE'], + //'gv' => ['name' => 'Manx', 'script' => 'Latn', 'native' => 'Gaelg', 'regional' => 'gv_GB'], + //'sm' => ['name' => 'Samoan', 'script' => 'Latn', 'native' => 'Gagana fa’a Sāmoa', 'regional' => ''], + //'gl' => ['name' => 'Galician', 'script' => 'Latn', 'native' => 'galego', 'regional' => 'gl_ES'], + //'ki' => ['name' => 'Kikuyu', 'script' => 'Latn', 'native' => 'Gikuyu', 'regional' => ''], + //'gd' => ['name' => 'Scottish Gaelic', 'script' => 'Latn', 'native' => 'Gàidhlig', 'regional' => 'gd_GB'], + //'ha' => ['name' => 'Hausa', 'script' => 'Latn', 'native' => 'Hausa', 'regional' => 'ha_NG'], + //'bez' => ['name' => 'Bena', 'script' => 'Latn', 'native' => 'Hibena', 'regional' => ''], + //'ho' => ['name' => 'Hiri Motu', 'script' => 'Latn', 'native' => 'Hiri Motu', 'regional' => ''], + //'hr' => ['name' => 'Croatian', 'script' => 'Latn', 'native' => 'hrvatski', 'regional' => 'hr_HR'], + //'bem' => ['name' => 'Bemba', 'script' => 'Latn', 'native' => 'Ichibemba', 'regional' => 'bem_ZM'], + //'io' => ['name' => 'Ido', 'script' => 'Latn', 'native' => 'Ido', 'regional' => ''], + //'ig' => ['name' => 'Igbo', 'script' => 'Latn', 'native' => 'Igbo', 'regional' => 'ig_NG'], + //'rn' => ['name' => 'Rundi', 'script' => 'Latn', 'native' => 'Ikirundi', 'regional' => ''], + //'ia' => ['name' => 'Interlingua', 'script' => 'Latn', 'native' => 'interlingua', 'regional' => 'ia_FR'], + //'iu-Latn' => ['name' => 'Inuktitut (Latin)', 'script' => 'Latn', 'native' => 'Inuktitut', 'regional' => 'iu_CA'], + //'sbp' => ['name' => 'Sileibi', 'script' => 'Latn', 'native' => 'Ishisangu', 'regional' => ''], + //'nd' => ['name' => 'North Ndebele', 'script' => 'Latn', 'native' => 'isiNdebele', 'regional' => ''], + //'nr' => ['name' => 'South Ndebele', 'script' => 'Latn', 'native' => 'isiNdebele', 'regional' => 'nr_ZA'], + //'xh' => ['name' => 'Xhosa', 'script' => 'Latn', 'native' => 'isiXhosa', 'regional' => 'xh_ZA'], + //'zu' => ['name' => 'Zulu', 'script' => 'Latn', 'native' => 'isiZulu', 'regional' => 'zu_ZA'], + //'it' => ['name' => 'Italian', 'script' => 'Latn', 'native' => 'italiano', 'regional' => 'it_IT'], + //'ik' => ['name' => 'Inupiaq', 'script' => 'Latn', 'native' => 'Iñupiaq', 'regional' => 'ik_CA'], + //'dyo' => ['name' => 'Jola-Fonyi', 'script' => 'Latn', 'native' => 'joola', 'regional' => ''], + //'kea' => ['name' => 'Kabuverdianu', 'script' => 'Latn', 'native' => 'kabuverdianu', 'regional' => ''], + //'kaj' => ['name' => 'Jju', 'script' => 'Latn', 'native' => 'Kaje', 'regional' => ''], + //'mh' => ['name' => 'Marshallese', 'script' => 'Latn', 'native' => 'Kajin M̧ajeļ', 'regional' => 'mh_MH'], + //'kl' => ['name' => 'Kalaallisut', 'script' => 'Latn', 'native' => 'kalaallisut', 'regional' => 'kl_GL'], + //'kln' => ['name' => 'Kalenjin', 'script' => 'Latn', 'native' => 'Kalenjin', 'regional' => ''], + //'kr' => ['name' => 'Kanuri', 'script' => 'Latn', 'native' => 'Kanuri', 'regional' => ''], + //'kcg' => ['name' => 'Tyap', 'script' => 'Latn', 'native' => 'Katab', 'regional' => ''], + //'kw' => ['name' => 'Cornish', 'script' => 'Latn', 'native' => 'kernewek', 'regional' => 'kw_GB'], + //'naq' => ['name' => 'Nama', 'script' => 'Latn', 'native' => 'Khoekhoegowab', 'regional' => ''], + //'rof' => ['name' => 'Rombo', 'script' => 'Latn', 'native' => 'Kihorombo', 'regional' => ''], + //'kam' => ['name' => 'Kamba', 'script' => 'Latn', 'native' => 'Kikamba', 'regional' => ''], + //'kg' => ['name' => 'Kongo', 'script' => 'Latn', 'native' => 'Kikongo', 'regional' => ''], + //'jmc' => ['name' => 'Machame', 'script' => 'Latn', 'native' => 'Kimachame', 'regional' => ''], + //'rw' => ['name' => 'Kinyarwanda', 'script' => 'Latn', 'native' => 'Kinyarwanda', 'regional' => 'rw_RW'], + //'asa' => ['name' => 'Kipare', 'script' => 'Latn', 'native' => 'Kipare', 'regional' => ''], + //'rwk' => ['name' => 'Rwa', 'script' => 'Latn', 'native' => 'Kiruwa', 'regional' => ''], + //'saq' => ['name' => 'Samburu', 'script' => 'Latn', 'native' => 'Kisampur', 'regional' => ''], + //'ksb' => ['name' => 'Shambala', 'script' => 'Latn', 'native' => 'Kishambaa', 'regional' => ''], + //'swc' => ['name' => 'Congo Swahili', 'script' => 'Latn', 'native' => 'Kiswahili ya Kongo', 'regional' => ''], + //'sw' => ['name' => 'Swahili', 'script' => 'Latn', 'native' => 'Kiswahili', 'regional' => 'sw_KE'], + //'dav' => ['name' => 'Dawida', 'script' => 'Latn', 'native' => 'Kitaita', 'regional' => ''], + //'teo' => ['name' => 'Teso', 'script' => 'Latn', 'native' => 'Kiteso', 'regional' => ''], + //'khq' => ['name' => 'Koyra Chiini', 'script' => 'Latn', 'native' => 'Koyra ciini', 'regional' => ''], + //'ses' => ['name' => 'Songhay', 'script' => 'Latn', 'native' => 'Koyraboro senni', 'regional' => ''], + //'mfe' => ['name' => 'Morisyen', 'script' => 'Latn', 'native' => 'kreol morisien', 'regional' => ''], + //'ht' => ['name' => 'Haitian', 'script' => 'Latn', 'native' => 'Kreyòl ayisyen', 'regional' => 'ht_HT'], + //'kj' => ['name' => 'Kuanyama', 'script' => 'Latn', 'native' => 'Kwanyama', 'regional' => ''], + //'ksh' => ['name' => 'Kölsch', 'script' => 'Latn', 'native' => 'Kölsch', 'regional' => ''], + //'ebu' => ['name' => 'Kiembu', 'script' => 'Latn', 'native' => 'Kĩembu', 'regional' => ''], + //'mer' => ['name' => 'Kimîîru', 'script' => 'Latn', 'native' => 'Kĩmĩrũ', 'regional' => ''], + //'lag' => ['name' => 'Langi', 'script' => 'Latn', 'native' => 'Kɨlaangi', 'regional' => ''], + //'lah' => ['name' => 'Lahnda', 'script' => 'Latn', 'native' => 'Lahnda', 'regional' => ''], + //'la' => ['name' => 'Latin', 'script' => 'Latn', 'native' => 'latine', 'regional' => ''], + //'lv' => ['name' => 'Latvian', 'script' => 'Latn', 'native' => 'latviešu', 'regional' => 'lv_LV'], + //'to' => ['name' => 'Tongan', 'script' => 'Latn', 'native' => 'lea fakatonga', 'regional' => ''], + //'lt' => ['name' => 'Lithuanian', 'script' => 'Latn', 'native' => 'lietuvių', 'regional' => 'lt_LT'], + //'li' => ['name' => 'Limburgish', 'script' => 'Latn', 'native' => 'Limburgs', 'regional' => 'li_BE'], + //'ln' => ['name' => 'Lingala', 'script' => 'Latn', 'native' => 'lingála', 'regional' => ''], + //'lg' => ['name' => 'Ganda', 'script' => 'Latn', 'native' => 'Luganda', 'regional' => 'lg_UG'], + //'luy' => ['name' => 'Oluluyia', 'script' => 'Latn', 'native' => 'Luluhia', 'regional' => ''], + //'lb' => ['name' => 'Luxembourgish', 'script' => 'Latn', 'native' => 'Lëtzebuergesch', 'regional' => 'lb_LU'], + //'hu' => ['name' => 'Hungarian', 'script' => 'Latn', 'native' => 'magyar', 'regional' => 'hu_HU'], + //'mgh' => ['name' => 'Makhuwa-Meetto', 'script' => 'Latn', 'native' => 'Makua', 'regional' => ''], + //'mg' => ['name' => 'Malagasy', 'script' => 'Latn', 'native' => 'Malagasy', 'regional' => 'mg_MG'], + //'mt' => ['name' => 'Maltese', 'script' => 'Latn', 'native' => 'Malti', 'regional' => 'mt_MT'], + //'mtr' => ['name' => 'Mewari', 'script' => 'Latn', 'native' => 'Mewari', 'regional' => ''], + //'mua' => ['name' => 'Mundang', 'script' => 'Latn', 'native' => 'Mundang', 'regional' => ''], + //'mi' => ['name' => 'Māori', 'script' => 'Latn', 'native' => 'Māori', 'regional' => 'mi_NZ'], + // 'nl' => ['name' => 'Dutch', 'script' => 'Latn', 'native' => 'Nederlands', 'regional' => 'nl_NL'], + //'nmg' => ['name' => 'Kwasio', 'script' => 'Latn', 'native' => 'ngumba', 'regional' => ''], + //'yav' => ['name' => 'Yangben', 'script' => 'Latn', 'native' => 'nuasue', 'regional' => ''], + //'nn' => ['name' => 'Norwegian Nynorsk', 'script' => 'Latn', 'native' => 'nynorsk', 'regional' => 'nn_NO'], + //'oc' => ['name' => 'Occitan', 'script' => 'Latn', 'native' => 'occitan', 'regional' => 'oc_FR'], + //'ang' => ['name' => 'Old English', 'script' => 'Runr', 'native' => 'Old English', 'regional' => ''], + //'xog' => ['name' => 'Soga', 'script' => 'Latn', 'native' => 'Olusoga', 'regional' => ''], + //'om' => ['name' => 'Oromo', 'script' => 'Latn', 'native' => 'Oromoo', 'regional' => 'om_ET'], + //'ng' => ['name' => 'Ndonga', 'script' => 'Latn', 'native' => 'OshiNdonga', 'regional' => ''], + //'hz' => ['name' => 'Herero', 'script' => 'Latn', 'native' => 'Otjiherero', 'regional' => ''], + //'uz-Latn' => ['name' => 'Uzbek (Latin)', 'script' => 'Latn', 'native' => 'oʼzbekcha', 'regional' => 'uz_UZ'], + //'nds' => ['name' => 'Low German', 'script' => 'Latn', 'native' => 'Plattdüütsch', 'regional' => 'nds_DE'], + //'pl' => ['name' => 'Polish', 'script' => 'Latn', 'native' => 'polski', 'regional' => 'pl_PL'], + //'pt' => ['name' => 'Portuguese', 'script' => 'Latn', 'native' => 'português', 'regional' => 'pt_PT'], + //'pt-BR' => ['name' => 'Brazilian Portuguese', 'script' => 'Latn', 'native' => 'português do Brasil', 'regional' => 'pt_BR'], + //'ff' => ['name' => 'Fulah', 'script' => 'Latn', 'native' => 'Pulaar', 'regional' => 'ff_SN'], + //'pi' => ['name' => 'Pahari-Potwari', 'script' => 'Latn', 'native' => 'Pāli', 'regional' => ''], + //'aa' => ['name' => 'Afar', 'script' => 'Latn', 'native' => 'Qafar', 'regional' => 'aa_ER'], + //'ty' => ['name' => 'Tahitian', 'script' => 'Latn', 'native' => 'Reo Māohi', 'regional' => ''], + //'ksf' => ['name' => 'Bafia', 'script' => 'Latn', 'native' => 'rikpa', 'regional' => ''], + //'ro' => ['name' => 'Romanian', 'script' => 'Latn', 'native' => 'română', 'regional' => 'ro_RO'], + //'cgg' => ['name' => 'Chiga', 'script' => 'Latn', 'native' => 'Rukiga', 'regional' => ''], + //'rm' => ['name' => 'Romansh', 'script' => 'Latn', 'native' => 'rumantsch', 'regional' => ''], + //'qu' => ['name' => 'Quechua', 'script' => 'Latn', 'native' => 'Runa Simi', 'regional' => ''], + //'nyn' => ['name' => 'Nyankole', 'script' => 'Latn', 'native' => 'Runyankore', 'regional' => ''], + //'ssy' => ['name' => 'Saho', 'script' => 'Latn', 'native' => 'Saho', 'regional' => ''], + //'sc' => ['name' => 'Sardinian', 'script' => 'Latn', 'native' => 'sardu', 'regional' => 'sc_IT'], + //'de-CH' => ['name' => 'Swiss High German', 'script' => 'Latn', 'native' => 'Schweizer Hochdeutsch', 'regional' => 'de_CH'], + //'gsw' => ['name' => 'Swiss German', 'script' => 'Latn', 'native' => 'Schwiizertüütsch', 'regional' => ''], + //'trv' => ['name' => 'Taroko', 'script' => 'Latn', 'native' => 'Seediq', 'regional' => ''], + //'seh' => ['name' => 'Sena', 'script' => 'Latn', 'native' => 'sena', 'regional' => ''], + //'nso' => ['name' => 'Northern Sotho', 'script' => 'Latn', 'native' => 'Sesotho sa Leboa', 'regional' => 'nso_ZA'], + //'st' => ['name' => 'Southern Sotho', 'script' => 'Latn', 'native' => 'Sesotho', 'regional' => 'st_ZA'], + //'tn' => ['name' => 'Tswana', 'script' => 'Latn', 'native' => 'Setswana', 'regional' => 'tn_ZA'], + //'sq' => ['name' => 'Albanian', 'script' => 'Latn', 'native' => 'shqip', 'regional' => 'sq_AL'], + //'sid' => ['name' => 'Sidamo', 'script' => 'Latn', 'native' => 'Sidaamu Afo', 'regional' => 'sid_ET'], + //'ss' => ['name' => 'Swati', 'script' => 'Latn', 'native' => 'Siswati', 'regional' => 'ss_ZA'], + //'sk' => ['name' => 'Slovak', 'script' => 'Latn', 'native' => 'slovenčina', 'regional' => 'sk_SK'], + //'sl' => ['name' => 'Slovene', 'script' => 'Latn', 'native' => 'slovenščina', 'regional' => 'sl_SI'], + //'so' => ['name' => 'Somali', 'script' => 'Latn', 'native' => 'Soomaali', 'regional' => 'so_SO'], + //'sr-Latn' => ['name' => 'Serbian (Latin)', 'script' => 'Latn', 'native' => 'Srpski', 'regional' => 'sr_RS'], + //'sh' => ['name' => 'Serbo-Croatian', 'script' => 'Latn', 'native' => 'srpskohrvatski', 'regional' => ''], + //'fi' => ['name' => 'Finnish', 'script' => 'Latn', 'native' => 'suomi', 'regional' => 'fi_FI'], + //'sv' => ['name' => 'Swedish', 'script' => 'Latn', 'native' => 'svenska', 'regional' => 'sv_SE'], + //'sg' => ['name' => 'Sango', 'script' => 'Latn', 'native' => 'Sängö', 'regional' => ''], + //'tl' => ['name' => 'Tagalog', 'script' => 'Latn', 'native' => 'Tagalog', 'regional' => 'tl_PH'], + //'tzm-Latn' => ['name' => 'Central Atlas Tamazight (Latin)', 'script' => 'Latn', 'native' => 'Tamazight', 'regional' => ''], + //'kab' => ['name' => 'Kabyle', 'script' => 'Latn', 'native' => 'Taqbaylit', 'regional' => 'kab_DZ'], + //'twq' => ['name' => 'Tasawaq', 'script' => 'Latn', 'native' => 'Tasawaq senni', 'regional' => ''], + //'shi' => ['name' => 'Tachelhit (Latin)', 'script' => 'Latn', 'native' => 'Tashelhit', 'regional' => ''], + //'nus' => ['name' => 'Nuer', 'script' => 'Latn', 'native' => 'Thok Nath', 'regional' => ''], + //'vi' => ['name' => 'Vietnamese', 'script' => 'Latn', 'native' => 'Tiếng Việt', 'regional' => 'vi_VN'], + //'tg-Latn' => ['name' => 'Tajik (Latin)', 'script' => 'Latn', 'native' => 'tojikī', 'regional' => 'tg_TJ'], + //'lu' => ['name' => 'Luba-Katanga', 'script' => 'Latn', 'native' => 'Tshiluba', 'regional' => 've_ZA'], + //'ve' => ['name' => 'Venda', 'script' => 'Latn', 'native' => 'Tshivenḓa', 'regional' => ''], + //'tw' => ['name' => 'Twi', 'script' => 'Latn', 'native' => 'Twi', 'regional' => ''], + //'tr' => ['name' => 'Turkish', 'script' => 'Latn', 'native' => 'Türkçe', 'regional' => 'tr_TR'], + //'ale' => ['name' => 'Aleut', 'script' => 'Latn', 'native' => 'Unangax tunuu', 'regional' => ''], + //'ca-valencia' => ['name' => 'Valencian', 'script' => 'Latn', 'native' => 'valencià', 'regional' => ''], + //'vai-Latn' => ['name' => 'Vai (Latin)', 'script' => 'Latn', 'native' => 'Viyamíĩ', 'regional' => ''], + //'vo' => ['name' => 'Volapük', 'script' => 'Latn', 'native' => 'Volapük', 'regional' => ''], + //'fj' => ['name' => 'Fijian', 'script' => 'Latn', 'native' => 'vosa Vakaviti', 'regional' => ''], + //'wa' => ['name' => 'Walloon', 'script' => 'Latn', 'native' => 'Walon', 'regional' => 'wa_BE'], + //'wae' => ['name' => 'Walser', 'script' => 'Latn', 'native' => 'Walser', 'regional' => 'wae_CH'], + //'wen' => ['name' => 'Sorbian', 'script' => 'Latn', 'native' => 'Wendic', 'regional' => ''], + //'wo' => ['name' => 'Wolof', 'script' => 'Latn', 'native' => 'Wolof', 'regional' => 'wo_SN'], + //'ts' => ['name' => 'Tsonga', 'script' => 'Latn', 'native' => 'Xitsonga', 'regional' => 'ts_ZA'], + //'dje' => ['name' => 'Zarma', 'script' => 'Latn', 'native' => 'Zarmaciine', 'regional' => ''], + //'yo' => ['name' => 'Yoruba', 'script' => 'Latn', 'native' => 'Èdè Yorùbá', 'regional' => 'yo_NG'], + //'de-AT' => ['name' => 'Austrian German', 'script' => 'Latn', 'native' => 'Österreichisches Deutsch', 'regional' => 'de_AT'], + //'is' => ['name' => 'Icelandic', 'script' => 'Latn', 'native' => 'íslenska', 'regional' => 'is_IS'], + //'cs' => ['name' => 'Czech', 'script' => 'Latn', 'native' => 'čeština', 'regional' => 'cs_CZ'], + //'bas' => ['name' => 'Basa', 'script' => 'Latn', 'native' => 'Ɓàsàa', 'regional' => ''], + //'mas' => ['name' => 'Masai', 'script' => 'Latn', 'native' => 'ɔl-Maa', 'regional' => ''], + //'haw' => ['name' => 'Hawaiian', 'script' => 'Latn', 'native' => 'ʻŌlelo Hawaiʻi', 'regional' => ''], + //'el' => ['name' => 'Greek', 'script' => 'Grek', 'native' => 'Ελληνικά', 'regional' => 'el_GR'], + //'uz' => ['name' => 'Uzbek (Cyrillic)', 'script' => 'Cyrl', 'native' => 'Ўзбек', 'regional' => 'uz_UZ'], + //'az-Cyrl' => ['name' => 'Azerbaijani (Cyrillic)', 'script' => 'Cyrl', 'native' => 'Азәрбајҹан', 'regional' => 'uz_UZ'], + //'ab' => ['name' => 'Abkhazian', 'script' => 'Cyrl', 'native' => 'Аҧсуа', 'regional' => ''], + //'os' => ['name' => 'Ossetic', 'script' => 'Cyrl', 'native' => 'Ирон', 'regional' => 'os_RU'], + //'ky' => ['name' => 'Kyrgyz', 'script' => 'Cyrl', 'native' => 'Кыргыз', 'regional' => 'ky_KG'], + //'sr' => ['name' => 'Serbian (Cyrillic)', 'script' => 'Cyrl', 'native' => 'Српски', 'regional' => 'sr_RS'], + //'av' => ['name' => 'Avaric', 'script' => 'Cyrl', 'native' => 'авар мацӀ', 'regional' => ''], + //'ady' => ['name' => 'Adyghe', 'script' => 'Cyrl', 'native' => 'адыгэбзэ', 'regional' => ''], + //'ba' => ['name' => 'Bashkir', 'script' => 'Cyrl', 'native' => 'башҡорт теле', 'regional' => ''], + //'be' => ['name' => 'Belarusian', 'script' => 'Cyrl', 'native' => 'беларуская', 'regional' => 'be_BY'], + //'bg' => ['name' => 'Bulgarian', 'script' => 'Cyrl', 'native' => 'български', 'regional' => 'bg_BG'], + //'kv' => ['name' => 'Komi', 'script' => 'Cyrl', 'native' => 'коми кыв', 'regional' => ''], + //'mk' => ['name' => 'Macedonian', 'script' => 'Cyrl', 'native' => 'македонски', 'regional' => 'mk_MK'], + //'mn' => ['name' => 'Mongolian (Cyrillic)', 'script' => 'Cyrl', 'native' => 'монгол', 'regional' => 'mn_MN'], + //'ce' => ['name' => 'Chechen', 'script' => 'Cyrl', 'native' => 'нохчийн мотт', 'regional' => 'ce_RU'], + //'ru' => ['name' => 'Russian', 'script' => 'Cyrl', 'native' => 'русский', 'regional' => 'ru_RU'], + //'sah' => ['name' => 'Yakut', 'script' => 'Cyrl', 'native' => 'саха тыла', 'regional' => ''], + //'tt' => ['name' => 'Tatar', 'script' => 'Cyrl', 'native' => 'татар теле', 'regional' => 'tt_RU'], + //'tg' => ['name' => 'Tajik (Cyrillic)', 'script' => 'Cyrl', 'native' => 'тоҷикӣ', 'regional' => 'tg_TJ'], + //'tk' => ['name' => 'Turkmen', 'script' => 'Cyrl', 'native' => 'түркменче', 'regional' => 'tk_TM'], + //'uk' => ['name' => 'Ukrainian', 'script' => 'Cyrl', 'native' => 'українська', 'regional' => 'uk_UA'], + //'cv' => ['name' => 'Chuvash', 'script' => 'Cyrl', 'native' => 'чӑваш чӗлхи', 'regional' => 'cv_RU'], + //'cu' => ['name' => 'Church Slavic', 'script' => 'Cyrl', 'native' => 'ѩзыкъ словѣньскъ', 'regional' => ''], + //'kk' => ['name' => 'Kazakh', 'script' => 'Cyrl', 'native' => 'қазақ тілі', 'regional' => 'kk_KZ'], + //'hy' => ['name' => 'Armenian', 'script' => 'Armn', 'native' => 'Հայերեն', 'regional' => 'hy_AM'], + //'yi' => ['name' => 'Yiddish', 'script' => 'Hebr', 'native' => 'ייִדיש', 'regional' => 'yi_US'], + //'he' => ['name' => 'Hebrew', 'script' => 'Hebr', 'native' => 'עברית', 'regional' => 'he_IL'], + //'ug' => ['name' => 'Uyghur', 'script' => 'Arab', 'native' => 'ئۇيغۇرچە', 'regional' => 'ug_CN'], + //'ur' => ['name' => 'Urdu', 'script' => 'Arab', 'native' => 'اردو', 'regional' => 'ur_PK'], + //'ar' => ['name' => 'Arabic', 'script' => 'Arab', 'native' => 'العربية', 'regional' => 'ar_AE'], + //'uz-Arab' => ['name' => 'Uzbek (Arabic)', 'script' => 'Arab', 'native' => 'اۉزبېک', 'regional' => ''], + //'tg-Arab' => ['name' => 'Tajik (Arabic)', 'script' => 'Arab', 'native' => 'تاجیکی', 'regional' => 'tg_TJ'], + //'sd' => ['name' => 'Sindhi', 'script' => 'Arab', 'native' => 'سنڌي', 'regional' => 'sd_IN'], + //'fa' => ['name' => 'Persian', 'script' => 'Arab', 'native' => 'فارسی', 'regional' => 'fa_IR'], + //'pa-Arab' => ['name' => 'Punjabi (Arabic)', 'script' => 'Arab', 'native' => 'پنجاب', 'regional' => 'pa_IN'], + //'ps' => ['name' => 'Pashto', 'script' => 'Arab', 'native' => 'پښتو', 'regional' => 'ps_AF'], + //'ks' => ['name' => 'Kashmiri (Arabic)', 'script' => 'Arab', 'native' => 'کأشُر', 'regional' => 'ks_IN'], + //'ku' => ['name' => 'Kurdish', 'script' => 'Arab', 'native' => 'کوردی', 'regional' => 'ku_TR'], + //'dv' => ['name' => 'Divehi', 'script' => 'Thaa', 'native' => 'ދިވެހިބަސް', 'regional' => 'dv_MV'], + //'ks-Deva' => ['name' => 'Kashmiri (Devaganari)', 'script' => 'Deva', 'native' => 'कॉशुर', 'regional' => 'ks_IN'], + //'kok' => ['name' => 'Konkani', 'script' => 'Deva', 'native' => 'कोंकणी', 'regional' => 'kok_IN'], + //'doi' => ['name' => 'Dogri', 'script' => 'Deva', 'native' => 'डोगरी', 'regional' => 'doi_IN'], + //'ne' => ['name' => 'Nepali', 'script' => 'Deva', 'native' => 'नेपाली', 'regional' => ''], + //'pra' => ['name' => 'Prakrit', 'script' => 'Deva', 'native' => 'प्राकृत', 'regional' => ''], + //'brx' => ['name' => 'Bodo', 'script' => 'Deva', 'native' => 'बड़ो', 'regional' => 'brx_IN'], + //'bra' => ['name' => 'Braj', 'script' => 'Deva', 'native' => 'ब्रज भाषा', 'regional' => ''], + //'mr' => ['name' => 'Marathi', 'script' => 'Deva', 'native' => 'मराठी', 'regional' => 'mr_IN'], + //'mai' => ['name' => 'Maithili', 'script' => 'Tirh', 'native' => 'मैथिली', 'regional' => 'mai_IN'], + //'raj' => ['name' => 'Rajasthani', 'script' => 'Deva', 'native' => 'राजस्थानी', 'regional' => ''], + //'sa' => ['name' => 'Sanskrit', 'script' => 'Deva', 'native' => 'संस्कृतम्', 'regional' => 'sa_IN'], + //'hi' => ['name' => 'Hindi', 'script' => 'Deva', 'native' => 'हिन्दी', 'regional' => 'hi_IN'], + //'as' => ['name' => 'Assamese', 'script' => 'Beng', 'native' => 'অসমীয়া', 'regional' => 'as_IN'], + //'bn' => ['name' => 'Bengali', 'script' => 'Beng', 'native' => 'বাংলা', 'regional' => 'bn_BD'], + //'mni' => ['name' => 'Manipuri', 'script' => 'Beng', 'native' => 'মৈতৈ', 'regional' => 'mni_IN'], + //'pa' => ['name' => 'Punjabi (Gurmukhi)', 'script' => 'Guru', 'native' => 'ਪੰਜਾਬੀ', 'regional' => 'pa_IN'], + //'gu' => ['name' => 'Gujarati', 'script' => 'Gujr', 'native' => 'ગુજરાતી', 'regional' => 'gu_IN'], + //'or' => ['name' => 'Oriya', 'script' => 'Orya', 'native' => 'ଓଡ଼ିଆ', 'regional' => 'or_IN'], + //'ta' => ['name' => 'Tamil', 'script' => 'Taml', 'native' => 'தமிழ்', 'regional' => 'ta_IN'], + //'te' => ['name' => 'Telugu', 'script' => 'Telu', 'native' => 'తెలుగు', 'regional' => 'te_IN'], + //'kn' => ['name' => 'Kannada', 'script' => 'Knda', 'native' => 'ಕನ್ನಡ', 'regional' => 'kn_IN'], + //'ml' => ['name' => 'Malayalam', 'script' => 'Mlym', 'native' => 'മലയാളം', 'regional' => 'ml_IN'], + //'si' => ['name' => 'Sinhala', 'script' => 'Sinh', 'native' => 'සිංහල', 'regional' => 'si_LK'], + //'th' => ['name' => 'Thai', 'script' => 'Thai', 'native' => 'ไทย', 'regional' => 'th_TH'], + //'lo' => ['name' => 'Lao', 'script' => 'Laoo', 'native' => 'ລາວ', 'regional' => 'lo_LA'], + //'bo' => ['name' => 'Tibetan', 'script' => 'Tibt', 'native' => 'པོད་སྐད་', 'regional' => 'bo_IN'], + //'dz' => ['name' => 'Dzongkha', 'script' => 'Tibt', 'native' => 'རྫོང་ཁ', 'regional' => 'dz_BT'], + //'my' => ['name' => 'Burmese', 'script' => 'Mymr', 'native' => 'မြန်မာဘာသာ', 'regional' => 'my_MM'], + //'ka' => ['name' => 'Georgian', 'script' => 'Geor', 'native' => 'ქართული', 'regional' => 'ka_GE'], + //'byn' => ['name' => 'Blin', 'script' => 'Ethi', 'native' => 'ብሊን', 'regional' => 'byn_ER'], + //'tig' => ['name' => 'Tigre', 'script' => 'Ethi', 'native' => 'ትግረ', 'regional' => 'tig_ER'], + //'ti' => ['name' => 'Tigrinya', 'script' => 'Ethi', 'native' => 'ትግርኛ', 'regional' => 'ti_ET'], + //'am' => ['name' => 'Amharic', 'script' => 'Ethi', 'native' => 'አማርኛ', 'regional' => 'am_ET'], + //'wal' => ['name' => 'Wolaytta', 'script' => 'Ethi', 'native' => 'ወላይታቱ', 'regional' => 'wal_ET'], + //'chr' => ['name' => 'Cherokee', 'script' => 'Cher', 'native' => 'ᏣᎳᎩ', 'regional' => ''], + //'iu' => ['name' => 'Inuktitut (Canadian Aboriginal Syllabics)', 'script' => 'Cans', 'native' => 'ᐃᓄᒃᑎᑐᑦ', 'regional' => 'iu_CA'], + //'oj' => ['name' => 'Ojibwa', 'script' => 'Cans', 'native' => 'ᐊᓂᔑᓈᐯᒧᐎᓐ', 'regional' => ''], + //'cr' => ['name' => 'Cree', 'script' => 'Cans', 'native' => 'ᓀᐦᐃᔭᐍᐏᐣ', 'regional' => ''], + //'km' => ['name' => 'Khmer', 'script' => 'Khmr', 'native' => 'ភាសាខ្មែរ', 'regional' => 'km_KH'], + //'mn-Mong' => ['name' => 'Mongolian (Mongolian)', 'script' => 'Mong', 'native' => 'ᠮᠣᠨᠭᠭᠣᠯ ᠬᠡᠯᠡ', 'regional' => 'mn_MN'], + //'shi-Tfng' => ['name' => 'Tachelhit (Tifinagh)', 'script' => 'Tfng', 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', 'regional' => ''], + //'tzm' => ['name' => 'Central Atlas Tamazight (Tifinagh)','script' => 'Tfng', 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', 'regional' => ''], + //'yue' => ['name' => 'Yue', 'script' => 'Hant', 'native' => '廣州話', 'regional' => 'yue_HK'], + //'ja' => ['name' => 'Japanese', 'script' => 'Jpan', 'native' => '日本語', 'regional' => 'ja_JP'], + //'zh' => ['name' => 'Chinese (Simplified)', 'script' => 'Hans', 'native' => '简体中文', 'regional' => 'zh_CN'], + //'zh-Hant' => ['name' => 'Chinese (Traditional)', 'script' => 'Hant', 'native' => '繁體中文', 'regional' => 'zh_CN'], + //'ii' => ['name' => 'Sichuan Yi', 'script' => 'Yiii', 'native' => 'ꆈꌠꉙ', 'regional' => ''], + //'vai' => ['name' => 'Vai (Vai)', 'script' => 'Vaii', 'native' => 'ꕙꔤ', 'regional' => ''], + //'jv-Java' => ['name' => 'Javanese (Javanese)', 'script' => 'Java', 'native' => 'ꦧꦱꦗꦮ', 'regional' => ''], + //'ko' => ['name' => 'Korean', 'script' => 'Hang', 'native' => '한국어', 'regional' => 'ko_KR'], + ] + +]; diff --git a/config/logging.php b/config/logging.php new file mode 100644 index 0000000..088c204 --- /dev/null +++ b/config/logging.php @@ -0,0 +1,104 @@ + env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Log Channels + |-------------------------------------------------------------------------- + | + | Here you may configure the log channels for your application. Out of + | the box, Laravel uses the Monolog PHP logging library. This gives + | you a variety of powerful log handlers / formatters to utilize. + | + | Available Drivers: "single", "daily", "slack", "syslog", + | "errorlog", "monolog", + | "custom", "stack" + | + */ + + 'channels' => [ + 'stack' => [ + 'driver' => 'stack', + 'channels' => ['single'], + 'ignore_exceptions' => false, + ], + + 'single' => [ + 'driver' => 'single', + 'path' => storage_path('logs/laravel.log'), + 'level' => 'debug', + ], + + 'daily' => [ + 'driver' => 'daily', + 'path' => storage_path('logs/laravel.log'), + 'level' => 'debug', + 'days' => 14, + ], + + 'slack' => [ + 'driver' => 'slack', + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Laravel Log', + 'emoji' => ':boom:', + 'level' => 'critical', + ], + + 'papertrail' => [ + 'driver' => 'monolog', + 'level' => 'debug', + 'handler' => SyslogUdpHandler::class, + 'handler_with' => [ + 'host' => env('PAPERTRAIL_URL'), + 'port' => env('PAPERTRAIL_PORT'), + ], + ], + + 'stderr' => [ + 'driver' => 'monolog', + 'handler' => StreamHandler::class, + 'formatter' => env('LOG_STDERR_FORMATTER'), + 'with' => [ + 'stream' => 'php://stderr', + ], + ], + + 'syslog' => [ + 'driver' => 'syslog', + 'level' => 'debug', + ], + + 'errorlog' => [ + 'driver' => 'errorlog', + 'level' => 'debug', + ], + + 'null' => [ + 'driver' => 'monolog', + 'handler' => NullHandler::class, + ], + + 'emergency' => [ + 'path' => storage_path('logs/laravel.log'), + ], + ], + +]; diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..67fb340 --- /dev/null +++ b/config/mail.php @@ -0,0 +1,100 @@ + env('MAIL_MAILER', 'smtp'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", + | "postmark", "log", "array" + | + */ + + 'mailers' => [ + 'smtp' => [ + 'transport' => 'smtp', + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'port' => env('MAIL_PORT', 587), + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => '/usr/sbin/sendmail -bs', + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all e-mails sent by your application to be sent from + | the same address. Here, you may specify a name and address that is + | used globally for all e-mails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + + /* + |-------------------------------------------------------------------------- + | Markdown Mail Settings + |-------------------------------------------------------------------------- + | + | If you are using Markdown based email rendering, you may configure your + | theme and component paths here, allowing you to customize the design + | of the emails. Or, you may simply stick with the Laravel defaults! + | + */ + + 'markdown' => [ + 'theme' => 'default', + + 'paths' => [ + resource_path('views/vendor/mail'), + ], + ], + +]; diff --git a/config/main.php b/config/main.php new file mode 100644 index 0000000..ac03d7e --- /dev/null +++ b/config/main.php @@ -0,0 +1,12 @@ + env('MAIN_RENEWAL_DAYS', '29'), + 'abo_booking_days' => env('MAIN_ABO_BOOKING_DAYS', '7'), + 'remind_first_days' => env('MAIN_REMIND_FIRST_DAYS', '21'), + 'remind_sec_days' => env('MAIN_REMIND_SEC_DAYS', '14'), + 'remind_last_days' => env('MAIN_REMIND_LAST_DAYS', '2'), + 'edit_data_pass' => env('MAIN_EDIT_DATA_PASS', 'gseele'), + 'add_number_id' => env('MAIN_ADD_NUMBER_ID', '946'), +]; diff --git a/config/profanity.php b/config/profanity.php new file mode 100644 index 0000000..0f213a8 --- /dev/null +++ b/config/profanity.php @@ -0,0 +1,54 @@ + true, + + /* Replace bad words with this, based on length of word */ + 'replaceWith' => '*', + + /* Replace related letters */ + 'strReplace' => [ + 'a' => '(a|a\.|a\-|4|@|Á|á|À|Â|à|Â|â|Ä|ä|Ã|ã|Å|å|α|Δ|Λ|λ)', + 'b' => '(b|b\.|b\-|8|\|3|ß|Β|β)', + 'c' => '(c|c\.|c\-|Ç|ç|¢|€|<|\(|{|©)', + 'd' => '(d|d\.|d\-|∂|\|\)|Þ|þ|Ð|ð)', + 'e' => '(e|e\.|e\-|3|€|È|è|É|é|Ê|ê|∑)', + 'f' => '(f|f\.|f\-|ƒ)', + 'g' => '(g|g\.|g\-|6|9)', + 'h' => '(h|h\.|h\-|Η)', + 'i' => '(i|i\.|i\-|!|\||\]\[|]|1|∫|Ì|Í|Î|Ï|ì|í|î|ï)', + 'j' => '(j|j\.|j\-)', + 'k' => '(k|k\.|k\-|Κ|κ)', + 'l' => '(l|1\.|l\-|!|\||\]\[|]|£|∫|Ì|Í|Î|Ï)', + 'm' => '(m|m\.|m\-)', + 'n' => '(n|n\.|n\-|η|Ν|Π)', + 'o' => '(o|o\.|o\-|0|Ο|ο|Φ|¤|°|ø)', + 'p' => '(p|p\.|p\-|ρ|Ρ|¶|þ)', + 'q' => '(q|q\.|q\-)', + 'r' => '(r|r\.|r\-|®)', + 's' => '(s|s\.|s\-|5|\$|§)', + 't' => '(t|t\.|t\-|Τ|τ)', + 'u' => '(u|u\.|u\-|υ|µ)', + 'v' => '(v|v\.|v\-|υ|ν)', + 'w' => '(w|w\.|w\-|ω|ψ|Ψ)', + 'x' => '(x|x\.|x\-|Χ|χ)', + 'y' => '(y|y\.|y\-|¥|γ|ÿ|ý|Ÿ|Ý)', + 'z' => '(z|z\.|z\-|Ζ)', + ], + + /* Replace these words no matter what language. */ + 'defaults' => [ + 'fuck', + 'shit', + ], +]; diff --git a/config/queue.php b/config/queue.php new file mode 100644 index 0000000..3a30d6c --- /dev/null +++ b/config/queue.php @@ -0,0 +1,88 @@ + env('QUEUE_CONNECTION', 'sync'), + + /* + |-------------------------------------------------------------------------- + | Queue Connections + |-------------------------------------------------------------------------- + | + | Here you may configure the connection information for each server that + | is used by your application. A default configuration has been added + | for each back-end shipped with Laravel. You are free to add more. + | + | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" + | + */ + + 'connections' => [ + + 'sync' => [ + 'driver' => 'sync', + ], + + 'database' => [ + 'driver' => 'database', + 'table' => 'jobs', + 'queue' => 'default', + 'retry_after' => 90, + ], + + 'beanstalkd' => [ + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', + 'retry_after' => 90, + 'block_for' => 0, + ], + + 'sqs' => [ + 'driver' => 'sqs', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'your-queue-name'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + + 'redis' => [ + 'driver' => 'redis', + 'connection' => 'default', + 'queue' => env('REDIS_QUEUE', 'default'), + 'retry_after' => 90, + 'block_for' => null, + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Failed Queue Jobs + |-------------------------------------------------------------------------- + | + | These options configure the behavior of failed queue job logging so you + | can control which database and table are used to store the jobs that + | have failed. You may change them to any database / table you wish. + | + */ + + 'failed' => [ + 'driver' => env('QUEUE_FAILED_DRIVER', 'database'), + 'database' => env('DB_CONNECTION', 'mysql'), + 'table' => 'failed_jobs', + ], + +]; diff --git a/config/services.php b/config/services.php new file mode 100644 index 0000000..2a1d616 --- /dev/null +++ b/config/services.php @@ -0,0 +1,33 @@ + [ + 'domain' => env('MAILGUN_DOMAIN'), + 'secret' => env('MAILGUN_SECRET'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + ], + + 'postmark' => [ + 'token' => env('POSTMARK_TOKEN'), + ], + + 'ses' => [ + 'key' => env('AWS_ACCESS_KEY_ID'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + ], + +]; diff --git a/config/session.php b/config/session.php new file mode 100644 index 0000000..bc9174f --- /dev/null +++ b/config/session.php @@ -0,0 +1,199 @@ + env('SESSION_DRIVER', 'file'), + + /* + |-------------------------------------------------------------------------- + | Session Lifetime + |-------------------------------------------------------------------------- + | + | Here you may specify the number of minutes that you wish the session + | to be allowed to remain idle before it expires. If you want them + | to immediately expire on the browser closing, set that option. + | + */ + + 'lifetime' => env('SESSION_LIFETIME', 120), + + 'expire_on_close' => false, + + /* + |-------------------------------------------------------------------------- + | Session Encryption + |-------------------------------------------------------------------------- + | + | This option allows you to easily specify that all of your session data + | should be encrypted before it is stored. All encryption will be run + | automatically by Laravel and you can use the Session like normal. + | + */ + + 'encrypt' => false, + + /* + |-------------------------------------------------------------------------- + | Session File Location + |-------------------------------------------------------------------------- + | + | When using the native session driver, we need a location where session + | files may be stored. A default has been set for you but a different + | location may be specified. This is only needed for file sessions. + | + */ + + 'files' => storage_path('framework/sessions'), + + /* + |-------------------------------------------------------------------------- + | Session Database Connection + |-------------------------------------------------------------------------- + | + | When using the "database" or "redis" session drivers, you may specify a + | connection that should be used to manage these sessions. This should + | correspond to a connection in your database configuration options. + | + */ + + 'connection' => env('SESSION_CONNECTION', null), + + /* + |-------------------------------------------------------------------------- + | Session Database Table + |-------------------------------------------------------------------------- + | + | When using the "database" session driver, you may specify the table we + | should use to manage the sessions. Of course, a sensible default is + | provided for you; however, you are free to change this as needed. + | + */ + + 'table' => 'sessions', + + /* + |-------------------------------------------------------------------------- + | Session Cache Store + |-------------------------------------------------------------------------- + | + | When using the "apc", "memcached", or "dynamodb" session drivers you may + | list a cache store that should be used for these sessions. This value + | must match with one of the application's configured cache "stores". + | + */ + + 'store' => env('SESSION_STORE', null), + + /* + |-------------------------------------------------------------------------- + | Session Sweeping Lottery + |-------------------------------------------------------------------------- + | + | Some session drivers must manually sweep their storage location to get + | rid of old sessions from storage. Here are the chances that it will + | happen on a given request. By default, the odds are 2 out of 100. + | + */ + + 'lottery' => [2, 100], + + /* + |-------------------------------------------------------------------------- + | Session Cookie Name + |-------------------------------------------------------------------------- + | + | Here you may change the name of the cookie used to identify a session + | instance by ID. The name specified here will get used every time a + | new session cookie is created by the framework for every driver. + | + */ + + 'cookie' => env( + 'SESSION_COOKIE', + Str::slug(env('APP_NAME', 'laravel'), '_').'_session' + ), + + /* + |-------------------------------------------------------------------------- + | Session Cookie Path + |-------------------------------------------------------------------------- + | + | The session cookie path determines the path for which the cookie will + | be regarded as available. Typically, this will be the root path of + | your application but you are free to change this when necessary. + | + */ + + 'path' => '/', + + /* + |-------------------------------------------------------------------------- + | Session Cookie Domain + |-------------------------------------------------------------------------- + | + | Here you may change the domain of the cookie used to identify a session + | in your application. This will determine which domains the cookie is + | available to in your application. A sensible default has been set. + | + */ + + 'domain' => env('SESSION_DOMAIN', null), + + /* + |-------------------------------------------------------------------------- + | HTTPS Only Cookies + |-------------------------------------------------------------------------- + | + | By setting this option to true, session cookies will only be sent back + | to the server if the browser has a HTTPS connection. This will keep + | the cookie from being sent to you if it can not be done securely. + | + */ + + 'secure' => env('SESSION_SECURE_COOKIE', null), + + /* + |-------------------------------------------------------------------------- + | HTTP Access Only + |-------------------------------------------------------------------------- + | + | Setting this value to true will prevent JavaScript from accessing the + | value of the cookie and the cookie will only be accessible through + | the HTTP protocol. You are free to modify this option if needed. + | + */ + + 'http_only' => true, + + /* + |-------------------------------------------------------------------------- + | Same-Site Cookies + |-------------------------------------------------------------------------- + | + | This option determines how your cookies behave when cross-site requests + | take place, and can be used to mitigate CSRF attacks. By default, we + | do not enable this as other CSRF protection services are in place. + | + | Supported: "lax", "strict", "none" + | + */ + + 'same_site' => 'lax', + +]; diff --git a/config/sluggable.php b/config/sluggable.php new file mode 100644 index 0000000..6d3223d --- /dev/null +++ b/config/sluggable.php @@ -0,0 +1,141 @@ +name; + * + * Or it can be an array of fields, like ["name", "company"], which builds a slug from: + * + * $model->name . ' ' . $model->company; + * + * If you've defined custom getters in your model, you can use those too, + * since Eloquent will call them when you request a custom attribute. + * + * Defaults to null, which uses the toString() method on your model. + */ + + 'source' => null, + + /** + * The maximum length of a generated slug. Defaults to "null", which means + * no length restrictions are enforced. Set it to a positive integer if you + * want to make sure your slugs aren't too long. + */ + + 'maxLength' => null, + + /** + * If you are setting a maximum length on your slugs, you may not want the + * truncated string to split a word in half. The default setting of "true" + * will ensure this, e.g. with a maxLength of 12: + * + * "my source string" -> "my-source" + * + * Setting it to "false" will simply truncate the generated slug at the + * desired length, e.g.: + * + * "my source string" -> "my-source-st" + */ + + 'maxLengthKeepWords' => true, + + /** + * If left to "null", then use the cocur/slugify package to generate the slug + * (with the separator defined below). + * + * Set this to a closure that accepts two parameters (string and separator) + * to define a custom slugger. e.g.: + * + * 'method' => function( $string, $sep ) { + * return preg_replace('/[^a-z]+/i', $sep, $string); + * }, + * + * Otherwise, this will be treated as a callable to be used. e.g.: + * + * 'method' => array('Str','slug'), + */ + + 'method' => null, + + /** + * Separator to use when generating slugs. Defaults to a hyphen. + */ + + 'separator' => '-', + + /** + * Enforce uniqueness of slugs? Defaults to true. + * If a generated slug already exists, an incremental numeric + * value will be appended to the end until a unique slug is found. e.g.: + * + * my-slug + * my-slug-1 + * my-slug-2 + */ + + 'unique' => true, + + /** + * If you are enforcing unique slugs, the default is to add an + * incremental value to the end of the base slug. Alternatively, you + * can change this value to a closure that accepts three parameters: + * the base slug, the separator, and a Collection of the other + * "similar" slugs. The closure should return the new unique + * suffix to append to the slug. + */ + + 'uniqueSuffix' => null, + + /** + * Should we include the trashed items when generating a unique slug? + * This only applies if the softDelete property is set for the Eloquent model. + * If set to "false", then a new slug could duplicate one that exists on a trashed model. + * If set to "true", then uniqueness is enforced across trashed and existing models. + */ + + 'includeTrashed' => false, + + /** + * An array of slug names that can never be used for this model, + * e.g. to prevent collisions with existing routes or controller methods, etc.. + * Defaults to null (i.e. no reserved names). + * Can be a static array, e.g.: + * + * 'reserved' => array('add', 'delete'), + * + * or a closure that returns an array of reserved names. + * If using a closure, it will accept one parameter: the model itself, and should + * return an array of reserved names, or null. e.g. + * + * 'reserved' => function( Model $model) { + * return $model->some_method_that_returns_an_array(); + * } + * + * In the case of a slug that gets generated with one of these reserved names, + * we will do: + * + * $slug .= $separator + "1" + * + * and continue from there. + */ + + 'reserved' => null, + + /** + * Whether to update the slug value when a model is being + * re-saved (i.e. already exists). Defaults to false, which + * means slugs are not updated. + * + * Be careful! If you are using slugs to generate URLs, then + * updating your slug automatically might change your URLs which + * is probably not a good idea from an SEO point of view. + * Only set this to true if you understand the possible consequences. + */ + + 'onUpdate' => false, + +]; diff --git a/config/view.php b/config/view.php new file mode 100644 index 0000000..bc73d32 --- /dev/null +++ b/config/view.php @@ -0,0 +1,49 @@ + [ + resource_path('views'), + ], + + /* + |-------------------------------------------------------------------------- + | Compiled View Path + |-------------------------------------------------------------------------- + | + | This option determines where all the compiled Blade templates will be + | stored for your application. Typically, this is within the storage + | directory. However, as usual, you are free to change this value. + | + */ + + 'compiled' => env( + 'VIEW_COMPILED_PATH', + realpath(storage_path('framework/views')) + ), + + /* + |-------------------------------------------------------------------------- + | Blade View Modification Checking + |-------------------------------------------------------------------------- + | + | On every request the framework will check to see if a view has expired + | to determine if it needs to be recompiled. If you are in production + | and precompiling views this feature may be disabled to save time. + | + */ + + 'expires' => env('VIEW_CHECK_EXPIRATION', true), + +]; diff --git a/database/.gitignore b/database/.gitignore new file mode 100644 index 0000000..97fc976 --- /dev/null +++ b/database/.gitignore @@ -0,0 +1,2 @@ +*.sqlite +*.sqlite-journal diff --git a/database/factories/UserFactory.php b/database/factories/UserFactory.php new file mode 100644 index 0000000..084535f --- /dev/null +++ b/database/factories/UserFactory.php @@ -0,0 +1,27 @@ +define(User::class, function (Faker $faker) { + return [ + 'name' => $faker->name, + 'email' => $faker->unique()->safeEmail, + 'email_verified_at' => now(), + 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password + 'remember_token' => Str::random(10), + ]; +}); diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php new file mode 100644 index 0000000..0ee0a36 --- /dev/null +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -0,0 +1,32 @@ +string('email')->index(); + $table->string('token'); + $table->timestamp('created_at')->nullable(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('password_resets'); + } +} diff --git a/database/migrations/2018_08_19_000000_create_failed_jobs_table.php b/database/migrations/2018_08_19_000000_create_failed_jobs_table.php new file mode 100644 index 0000000..9bddee3 --- /dev/null +++ b/database/migrations/2018_08_19_000000_create_failed_jobs_table.php @@ -0,0 +1,35 @@ +id(); + $table->text('connection'); + $table->text('queue'); + $table->longText('payload'); + $table->longText('exception'); + $table->timestamp('failed_at')->useCurrent(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('failed_jobs'); + } +} diff --git a/database/migrations/2018_09_29_145839_create_user_update_emails_table.php b/database/migrations/2018_09_29_145839_create_user_update_emails_table.php new file mode 100644 index 0000000..8f39bc2 --- /dev/null +++ b/database/migrations/2018_09_29_145839_create_user_update_emails_table.php @@ -0,0 +1,35 @@ +unsignedInteger('user_id'); + $table->string('email')->unique(); + $table->string('token')->index(); + $table->timestamp('created_at'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('user_update_emails'); + } +} + + diff --git a/database/migrations/2018_09_29_145909_create_countries_table.php b/database/migrations/2018_09_29_145909_create_countries_table.php new file mode 100644 index 0000000..3961b54 --- /dev/null +++ b/database/migrations/2018_09_29_145909_create_countries_table.php @@ -0,0 +1,54 @@ +increments('id'); + $table->char('code', 2)->index(); + $table->string('phone', 6)->nullable(); + $table->string('en', 100)->index(); + $table->string('de', 100)->index(); + $table->string('es', 100); + $table->string('fr', 100); + $table->string('it', 100); + $table->string('ru', 100); + + $table->boolean('switch')->default(false); + $table->boolean('own_eur')->default(false); + $table->boolean('currency')->default(false); + $table->string('currency_unit', 10)->nullable(); + $table->boolean('currency_calc')->default(false); + $table->decimal('currency_faktor', 4, 2)->nullable(); + + $table->boolean('active')->default(true); + $table->text('trans_name')->nullable(); + $table->text('attr')->nullable(); + + + $table->timestamps(); + + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('countries'); + } +} diff --git a/database/migrations/2018_09_29_170559_create_user_accounts_table.php b/database/migrations/2018_09_29_170559_create_user_accounts_table.php new file mode 100644 index 0000000..8feadf5 --- /dev/null +++ b/database/migrations/2018_09_29_170559_create_user_accounts_table.php @@ -0,0 +1,98 @@ +increments('id'); + + $table->unsignedInteger('m_account')->unique()->nullable(); + $table->char('m_salutation', 2)->nullable(); + $table->string('m_first_name')->nullable(); + $table->string('m_last_name')->nullable(); + $table->text('m_notes')->nullable(); + + + $table->string('company')->nullable(); + $table->char('salutation', 2)->nullable(); + $table->string('first_name')->nullable(); + $table->string('last_name')->nullable(); + $table->string('address')->nullable(); + $table->string('address_2')->nullable(); + $table->string('zipcode', 10)->nullable(); + $table->string('city')->nullable(); + + $table->unsignedInteger('country_id')->index()->default(1); + + $table->unsignedInteger('pre_phone_id')->nullable(); + $table->string('phone')->nullable(); + $table->unsignedInteger('pre_mobil_id')->nullable(); + $table->string('mobil')->nullable(); + + $table->string('tax_number', 20)->nullable(); + $table->string('tax_identification_number', 20)->nullable(); + $table->unsignedTinyInteger('taxable_sales')->nullable(); + + $table->boolean('same_as_billing')->default(true); + + $table->char('shipping_salutation', 2)->nullable(); + $table->string('shipping_company')->nullable(); + $table->string('shipping_firstname')->nullable(); + $table->string('shipping_lastname')->nullable(); + $table->string('shipping_address')->nullable(); + $table->string('shipping_address_2')->nullable(); + $table->string('shipping_zipcode')->nullable(); + $table->string('shipping_city')->nullable(); + + $table->unsignedInteger('shipping_country_id')->default(1); + + $table->unsignedInteger('shipping_pre_phone_id')->nullable(); + $table->string('shipping_phone')->nullable(); + + $table->date('birthday')->nullable(); + $table->string('website')->nullable(); + $table->string('facebook')->nullable(); + $table->string('facebook_fanpage')->nullable(); + $table->string('instagram')->nullable(); + + $table->text('payment_data')->nullable(); + + $table->timestamp('data_protection')->nullable(); + $table->timestamp('accepted_contract')->nullable(); + $table->text('notice')->nullable(); + + $table->timestamps(); + $table->softDeletes(); + + + $table->foreign('country_id') + ->references('id') + ->on('countries'); + + $table->foreign('shipping_country_id') + ->references('id') + ->on('countries'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('user_accounts'); + } +} diff --git a/database/migrations/2018_09_30_165917_create_user_levels_table.php b/database/migrations/2018_09_30_165917_create_user_levels_table.php new file mode 100644 index 0000000..c15174f --- /dev/null +++ b/database/migrations/2018_09_30_165917_create_user_levels_table.php @@ -0,0 +1,43 @@ +increments('id'); + + $table->string('name')->index(); + $table->text('trans_name')->nullable(); + $table->text('content')->nullable(); + $table->text('trans_content')->nullable(); + + $table->tinyInteger('pos')->unsigned()->nullable(); + $table->boolean('active')->default(false); + + + + $table->timestamps(); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('user_levels'); + } +} diff --git a/database/migrations/2018_10_21_163950_create_iq_images_table.php b/database/migrations/2018_10_21_163950_create_iq_images_table.php new file mode 100644 index 0000000..009ffa6 --- /dev/null +++ b/database/migrations/2018_10_21_163950_create_iq_images_table.php @@ -0,0 +1,42 @@ +increments('id'); + + $table->string('filename')->index(); + $table->string('original_name')->index(); + $table->string('ext')->index(); + $table->string('mine')->index(); + $table->unsignedInteger('size'); + $table->boolean('active')->default(true); + $table->string('slug')->unique()->index(); + $table->unsignedTinyInteger('pos')->nullable()->default(0); + + $table->timestamps(); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('iq_images'); + } +} diff --git a/database/migrations/2018_10_21_163956_create_attributes_table.php b/database/migrations/2018_10_21_163956_create_attributes_table.php new file mode 100644 index 0000000..a2636ed --- /dev/null +++ b/database/migrations/2018_10_21_163956_create_attributes_table.php @@ -0,0 +1,45 @@ +increments('id'); + + $table->unsignedInteger('parent_id')->index()->nullable(); + $table->string('name')->index(); + $table->text('trans_name')->nullable(); + $table->tinyInteger('pos')->unsigned()->nullable(); + $table->boolean('active')->default(false); + + $table->string('slug')->unique()->index(); + + + $table->timestamps(); + + $table->foreign('parent_id') + ->references('id') + ->on('attributes'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('attributes'); + } +} diff --git a/database/migrations/2018_10_21_163959_create_categories_table.php b/database/migrations/2018_10_21_163959_create_categories_table.php new file mode 100644 index 0000000..c2dc19f --- /dev/null +++ b/database/migrations/2018_10_21_163959_create_categories_table.php @@ -0,0 +1,54 @@ +increments('id'); + + $table->unsignedInteger('parent_id')->index()->nullable(); + + $table->string('name')->index(); + $table->string('headline')->index(); + $table->unsignedInteger('headline_image_id')->nullable()->index(); + + $table->text('trans_headline')->nullable(); + $table->text('trans_name')->nullable(); + $table->unsignedTinyInteger('pos')->nullable()->default(0); + $table->boolean('active')->default(false); + + $table->string('slug')->unique()->index(); + + + $table->timestamps(); + + $table->foreign('parent_id') + ->references('id') + ->on('categories'); + + $table->foreign('headline_image_id') + ->references('id') + ->on('iq_images'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('categories'); + } +} diff --git a/database/migrations/2018_10_21_164001_create_products_table.php b/database/migrations/2018_10_21_164001_create_products_table.php new file mode 100644 index 0000000..1de155f --- /dev/null +++ b/database/migrations/2018_10_21_164001_create_products_table.php @@ -0,0 +1,90 @@ +increments('id'); + + $table->string('name')->index(); + $table->text('trans_name')->nullable(); + + $table->string('title')->nullable()->index(); + $table->text('trans_title')->nullable(); + + $table->text('copy')->nullable(); + $table->mediumText('trans_copy')->nullable(); + + $table->decimal('price', 8, 2)->nullable(); + $table->decimal('price_ek', 8, 2)->nullable(); + $table->decimal('tax', 5, 2)->nullable(); + $table->decimal('price_old', 8, 2)->nullable(); //streichpreis + + + $table->unsignedInteger('points')->nullable()->default(0); + $table->unsignedInteger('weight')->nullable()->default(0); + + + $table->string('contents')->nullable(); + $table->unsignedInteger('contents_total')->nullable(); + $table->unsignedTinyInteger('unit')->nullable(); + + $table->string('number')->nullable(); + $table->unsignedInteger('wp_number')->nullable(); + + $table->string('icons')->nullable(); //as array cast + + $table->text('description')->nullable(); + $table->mediumText('trans_description')->nullable(); + + $table->text('usage')->nullable(); + $table->mediumText('trans_usage')->nullable(); + + $table->text('ingredients')->nullable(); + $table->mediumText('trans_ingredients')->nullable(); + + $table->tinyInteger('pos')->unsigned()->nullable(); + $table->boolean('active')->default(false); + + $table->unsignedInteger('amount')->nullable(); //for shop + $table->string('slug')->index(); + + + $table->tinyInteger('show_at')->unsigned()->nullable()->default(0); + $table->boolean('shipping_addon')->default(false); + + $table->string('identifier', 20)->nullable(); + $table->string('action')->nullable(); + + //is an upgrade product, set this product id by payments API paid + $table->unsignedInteger('upgrade_to_id')->nullable(); + + $table->timestamps(); + + $table->softDeletes(); + + + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('products'); + } +} diff --git a/database/migrations/2018_10_21_164003_create_product_attributes_table.php b/database/migrations/2018_10_21_164003_create_product_attributes_table.php new file mode 100644 index 0000000..44a3776 --- /dev/null +++ b/database/migrations/2018_10_21_164003_create_product_attributes_table.php @@ -0,0 +1,45 @@ +increments('id'); + + $table->unsignedInteger('product_id')->index(); + $table->unsignedInteger('attribute_id')->index(); + + $table->timestamps(); + + $table->foreign('product_id') + ->references('id') + ->on('products'); + + $table->foreign('attribute_id') + ->references('id') + ->on('attributes') + ->onDelete('cascade'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_attributes'); + } +} diff --git a/database/migrations/2018_10_21_164005_create_product_categories_table.php b/database/migrations/2018_10_21_164005_create_product_categories_table.php new file mode 100644 index 0000000..439cc6a --- /dev/null +++ b/database/migrations/2018_10_21_164005_create_product_categories_table.php @@ -0,0 +1,45 @@ +increments('id'); + + $table->unsignedInteger('product_id')->index(); + $table->unsignedInteger('category_id')->index(); + + $table->timestamps(); + + $table->foreign('product_id') + ->references('id') + ->on('products'); + + $table->foreign('category_id') + ->references('id') + ->on('categories') + ->onDelete('cascade'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_categories'); + } +} diff --git a/database/migrations/2018_10_21_164007_create_product_images_table.php b/database/migrations/2018_10_21_164007_create_product_images_table.php new file mode 100644 index 0000000..e1a5183 --- /dev/null +++ b/database/migrations/2018_10_21_164007_create_product_images_table.php @@ -0,0 +1,49 @@ +increments('id'); + + $table->unsignedInteger('product_id')->nullable()->index(); + + $table->string('filename')->index(); + $table->string('original_name')->index(); + $table->string('ext')->index(); + $table->string('mine')->index(); + $table->unsignedInteger('size'); + $table->boolean('active')->default(true); + $table->string('slug')->unique()->index(); + $table->unsignedTinyInteger('pos')->nullable()->default(0); + + + $table->timestamps(); + + $table->foreign('product_id') + ->references('id') + ->on('products') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_images'); + } +} diff --git a/database/migrations/2018_11_20_174609_create_shoppingcart_table.php b/database/migrations/2018_11_20_174609_create_shoppingcart_table.php new file mode 100644 index 0000000..fc5bb26 --- /dev/null +++ b/database/migrations/2018_11_20_174609_create_shoppingcart_table.php @@ -0,0 +1,30 @@ +string('identifier'); + $table->string('instance'); + $table->longText('content'); + $table->nullableTimestamps(); + + $table->primary(['identifier', 'instance']); + }); + } + /** + * Reverse the migrations. + */ + public function down() + { + Schema::drop(config('cart.database.table')); + } +} diff --git a/database/migrations/2019_01_06_004815_create_shippings_table.php b/database/migrations/2019_01_06_004815_create_shippings_table.php new file mode 100644 index 0000000..5d7af8d --- /dev/null +++ b/database/migrations/2019_01_06_004815_create_shippings_table.php @@ -0,0 +1,39 @@ +increments('id'); + + $table->string('name')->index(); + $table->text('trans_name')->nullable(); + + $table->decimal('free', 8, 2)->nullable(); + + $table->boolean('active')->default(false); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shippings'); + } +} diff --git a/database/migrations/2019_01_06_004849_create_shipping_prices_table.php b/database/migrations/2019_01_06_004849_create_shipping_prices_table.php new file mode 100644 index 0000000..ccdb0f4 --- /dev/null +++ b/database/migrations/2019_01_06_004849_create_shipping_prices_table.php @@ -0,0 +1,52 @@ +increments('id'); + $table->unsignedInteger('shipping_id'); + + $table->decimal('price', 8, 2)->nullable(); + $table->decimal('price_comp', 8, 2)->nullable(); + $table->unsignedTinyInteger('num_comp')->nullable(); + + $table->decimal('tax_rate', 5, 2)->nullable(); + $table->decimal('factor', 5, 2)->nullable(); + + $table->decimal('total_from', 8, 2)->nullable(); + $table->decimal('total_to', 8, 2)->nullable(); + + $table->unsignedInteger('weight_from')->nullable(); + $table->unsignedInteger('weight_to')->nullable(); + + + $table->timestamps(); + + $table->foreign('shipping_id') + ->references('id') + ->on('shippings') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shipping_prices'); + } +} diff --git a/database/migrations/2019_01_06_004907_create_shipping_countries_table.php b/database/migrations/2019_01_06_004907_create_shipping_countries_table.php new file mode 100644 index 0000000..03b0aae --- /dev/null +++ b/database/migrations/2019_01_06_004907_create_shipping_countries_table.php @@ -0,0 +1,44 @@ +increments('id'); + $table->unsignedInteger('shipping_id'); + $table->unsignedInteger('country_id')->nullable()->index(); + + $table->timestamps(); + + $table->foreign('shipping_id') + ->references('id') + ->on('shippings') + ->onDelete('cascade'); + + $table->foreign('country_id') + ->references('id') + ->on('countries'); + }); + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shipping_countries'); + } +} diff --git a/database/migrations/2019_09_31_000000_create_users_table.php b/database/migrations/2019_09_31_000000_create_users_table.php new file mode 100644 index 0000000..5582903 --- /dev/null +++ b/database/migrations/2019_09_31_000000_create_users_table.php @@ -0,0 +1,88 @@ +increments('id'); + $table->string('email')->unique(); + $table->timestamp('email_verified_at')->nullable(); + $table->string('password'); + + $table->unsignedInteger('account_id')->nullable(); + $table->unsignedInteger('m_level')->nullable(); + $table->unsignedInteger('m_sponsor')->nullable(); + + $table->unsignedTinyInteger('admin')->default(0); + $table->unsignedTinyInteger('wizard')->default(0); + $table->boolean('blocked')->default(false); + + $table->boolean('confirmed')->default(false); + $table->string('confirmation_code', 30)->index()->nullable(); + $table->timestamp('confirmation_date')->nullable(); + $table->dateTime('confirmation_code_to')->nullable(); + $table->unsignedTinyInteger('confirmation_code_remider')->default(0); + + $table->boolean('active')->default(false); + $table->timestamp('active_date')->nullable(); + $table->dateTime('agreement')->nullable(); + + $table->char('lang', 2)->nullable(); + $table->text('notes')->nullable(); + + $table->timestamp('last_login')->nullable(); + + $table->timestamp('release_account')->nullable(); + $table->timestamp('account_payment')->nullable(); + $table->string('payment_methods')->nullable(); + $table->unsignedInteger('next_m_level')->nullable(); + $table->boolean('abo_options')->default(false); + + $table->boolean('test_mode')->default(false); + $table->text('settings')->nullable(); + + $table->rememberToken(); + + $table->timestamps(); + $table->softDeletes(); + + $table->foreign('account_id') + ->references('id') + ->on('user_accounts'); + + $table->foreign('m_level') + ->references('id') + ->on('user_levels'); + + $table->foreign('next_m_level') + ->references('id') + ->on('user_levels'); + + $table->foreign('m_sponsor') + ->references('id') + ->on('users'); + + }); + + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('users'); + } +} diff --git a/database/migrations/2019_10_10_163950_create_iq_sites_table.php b/database/migrations/2019_10_10_163950_create_iq_sites_table.php new file mode 100644 index 0000000..51531a7 --- /dev/null +++ b/database/migrations/2019_10_10_163950_create_iq_sites_table.php @@ -0,0 +1,49 @@ +increments('id'); + + $table->string('slug')->unique()->index(); + + $table->string('headline')->nullable(); + $table->text('copy')->nullable(); + + $table->string('products')->nullable(); + $table->string('set_products')->nullable(); + + $table->unsignedInteger('iq_image_id')->nullable()->index(); + + $table->foreign('iq_image_id') + ->references('id') + ->on('iq_images'); + + + + $table->timestamps(); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('iq_sites'); + } +} diff --git a/database/migrations/2020_02_08_164831_create_files_table.php b/database/migrations/2020_02_08_164831_create_files_table.php new file mode 100644 index 0000000..1ce8d9d --- /dev/null +++ b/database/migrations/2020_02_08_164831_create_files_table.php @@ -0,0 +1,46 @@ +increments('id'); + + $table->unsignedInteger('user_id')->nullable()->index(); + $table->string('identifier')->index(); + $table->string('filename'); + $table->string('dir'); + $table->string('original_name'); + $table->string('ext'); + $table->string('mine'); + $table->unsignedInteger('size'); + $table->timestamps(); + + $table->foreign('user_id') + ->references('id') + ->on('users') + ->onDelete('cascade'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('files'); + } +} diff --git a/database/migrations/2020_03_21_143103_create_user_messages_table.php b/database/migrations/2020_03_21_143103_create_user_messages_table.php new file mode 100644 index 0000000..6d1480f --- /dev/null +++ b/database/migrations/2020_03_21_143103_create_user_messages_table.php @@ -0,0 +1,59 @@ +increments('id'); + + $table->unsignedInteger('user_id'); + $table->unsignedInteger('send_user_id'); + + + $table->string('email', 255); + $table->string('subject', 255); + $table->text('message')->nullable(); + + $table->boolean('send')->default(false); + $table->boolean('fail')->default(false); + $table->text('error')->nullable(); + + $table->timestamp('sent_at')->nullable(); + $table->timestamp('scheduled_at')->nullable(); + $table->timestamp('delivered_at')->nullable(); + + $table->timestamps(); + + $table->foreign('user_id') + ->references('id') + ->on('users') + ->onDelete('cascade'); + + $table->foreign('send_user_id') + ->references('id') + ->on('users') + ->onDelete('cascade'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('user_messages'); + } +} diff --git a/database/migrations/2020_06_03_152445_create_country_prices_table.php b/database/migrations/2020_06_03_152445_create_country_prices_table.php new file mode 100644 index 0000000..5f7ed38 --- /dev/null +++ b/database/migrations/2020_06_03_152445_create_country_prices_table.php @@ -0,0 +1,49 @@ +increments('id'); + + $table->unsignedInteger('country_id')->index(); + $table->unsignedInteger('product_id')->index(); + + $table->decimal('c_price', 8, 2)->nullable(); + $table->decimal('c_tax', 5, 2)->nullable(); + $table->decimal('c_price_old', 8, 2)->nullable(); + + $table->decimal('c_currency', 8, 2)->nullable(); + + $table->timestamps(); + + $table->foreign('country_id') + ->references('id') + ->on('countries'); + + $table->foreign('product_id') + ->references('id') + ->on('products'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('country_prices'); + } +} diff --git a/database/migrations/2020_07_25_131854_create_payment_methods_table.php b/database/migrations/2020_07_25_131854_create_payment_methods_table.php new file mode 100644 index 0000000..fbd649f --- /dev/null +++ b/database/migrations/2020_07_25_131854_create_payment_methods_table.php @@ -0,0 +1,38 @@ +increments('id'); + $table->string('name')->index(); + $table->string('short', 10); + $table->unsignedTinyInteger('show_at')->nullable()->default(0); + $table->unsignedTinyInteger('pos')->nullable()->default(0); + $table->boolean('active')->default(false); + $table->boolean('default')->default(false); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('payment_methods'); + } +} diff --git a/database/migrations/2020_07_30_142848_create_loggers_table.php b/database/migrations/2020_07_30_142848_create_loggers_table.php new file mode 100644 index 0000000..04a94d3 --- /dev/null +++ b/database/migrations/2020_07_30_142848_create_loggers_table.php @@ -0,0 +1,51 @@ +increments('id'); + + //from user + $table->unsignedInteger('user_id')->nullable(); + + //to model + $table->unsignedInteger('model_id')->index()->nullable(); + $table->string('model')->index()->nullable(); + + $table->string('action')->index()->nullable(); + $table->string('channel')->index()->nullable(); + $table->text('message')->nullable(); + + $table->unsignedTinyInteger('level')->index()->default(0); + + $table->timestamps(); + + $table->foreign('user_id') + ->references('id') + ->on('users') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('loggers'); + } +} diff --git a/database/migrations/2020_07_31_114539_create_sy_settings_table.php b/database/migrations/2020_07_31_114539_create_sy_settings_table.php new file mode 100644 index 0000000..767581a --- /dev/null +++ b/database/migrations/2020_07_31_114539_create_sy_settings_table.php @@ -0,0 +1,41 @@ +increments('id'); + + $table->string('name')->index(); + $table->string('slug')->unique()->index(); + + $table->text('message')->nullable(); + + $table->string('action')->index()->nullable(); + $table->unsignedTinyInteger('status')->index()->default(0); + $table->boolean('active')->default(false); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('sy_settings'); + } +} diff --git a/database/migrations/2020_11_09_164147_create_ingredients_table.php b/database/migrations/2020_11_09_164147_create_ingredients_table.php new file mode 100644 index 0000000..9446ab1 --- /dev/null +++ b/database/migrations/2020_11_09_164147_create_ingredients_table.php @@ -0,0 +1,45 @@ +increments('id'); + + $table->string('name')->index(); + $table->text('trans_name')->nullable(); + + $table->text('inci')->nullable(); + $table->mediumText('trans_inci')->nullable(); + + $table->text('effect')->nullable(); + $table->mediumText('trans_effect')->nullable(); + + $table->boolean('active')->default(false); + $table->unsignedTinyInteger('pos')->nullable()->default(0); + + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('ingredients'); + } +} diff --git a/database/migrations/2020_11_09_173825_create_product_ingredients_table.php b/database/migrations/2020_11_09_173825_create_product_ingredients_table.php new file mode 100644 index 0000000..11992cb --- /dev/null +++ b/database/migrations/2020_11_09_173825_create_product_ingredients_table.php @@ -0,0 +1,45 @@ +increments('id'); + + $table->unsignedInteger('product_id')->index(); + $table->unsignedInteger('ingredient_id')->index(); + + $table->timestamps(); + + $table->foreign('product_id') + ->references('id') + ->on('products'); + + $table->foreign('ingredient_id') + ->references('id') + ->on('ingredients') + ->onDelete('cascade'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_ingredients'); + } +} diff --git a/database/migrations/2020_12_23_161530_create_shopping_users_table.php b/database/migrations/2020_12_23_161530_create_shopping_users_table.php new file mode 100644 index 0000000..15670c6 --- /dev/null +++ b/database/migrations/2020_12_23_161530_create_shopping_users_table.php @@ -0,0 +1,105 @@ +increments('id'); + + $table->unsignedInteger('auth_user_id'); + $table->unsignedInteger('member_id')->nullable(); + + $table->unsignedInteger('number')->index()->nullable(); + $table->boolean('is_like')->default(false); + + $table->char('billing_salutation', 2)->nullable(); + $table->string('billing_company')->nullable(); + $table->string('billing_firstname')->nullable(); + $table->string('billing_lastname')->nullable(); + $table->string('billing_address')->nullable(); + $table->string('billing_address_2')->nullable(); + $table->string('billing_zipcode')->nullable(); + $table->string('billing_city')->nullable(); + $table->unsignedInteger('billing_country_id'); + $table->string('billing_phone')->nullable(); + $table->string('billing_email')->nullable(); + $table->boolean('faker_mail')->default(false); + $table->string('shipping_email')->nullable(); + + $table->unsignedSmallInteger('orders')->nullable()->default(1); + + $table->boolean('accepted_data_checkbox')->default(false); + + $table->boolean('same_as_billing')->default(true); + + $table->char('shipping_salutation', 2)->nullable(); + $table->string('shipping_company')->nullable(); + $table->string('shipping_firstname')->nullable(); + $table->string('shipping_lastname')->nullable(); + $table->string('shipping_address')->nullable(); + $table->string('shipping_address_2')->nullable(); + $table->string('shipping_zipcode')->nullable(); + $table->string('shipping_city')->nullable(); + $table->unsignedInteger('shipping_country_id'); + $table->string('shipping_phone')->nullable(); + + $table->boolean('abo_options')->default(false); + $table->boolean('has_buyed')->default(false); + $table->boolean('subscribed')->default(false); + + $table->text('notice')->nullable(); + + $table->char('mode', 4)->nullable(); + + $table->char('is_for', 2)->nullable(); + $table->string('is_from', 10)->nullable(); + $table->unsignedInteger('shopping_user_id')->index()->nullable(); + + + $table->unsignedInteger('wp_order_number')->nullable(); + $table->timestamp('wp_order_date')->nullable(); + + $table->timestamps(); + $table->softDeletes(); + $table->timestamp('user_deleted_at')->nullable(); + + + $table->foreign('billing_country_id') + ->references('id') + ->on('countries'); + + $table->foreign('shipping_country_id') + ->references('id') + ->on('countries'); + + $table->foreign('auth_user_id') + ->references('id') + ->on('users'); + + $table->foreign('member_id') + ->references('id') + ->on('users'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shopping_users'); + } +} diff --git a/database/migrations/2020_12_23_163527_create_shopping_orders_table.php b/database/migrations/2020_12_23_163527_create_shopping_orders_table.php new file mode 100644 index 0000000..8b95b54 --- /dev/null +++ b/database/migrations/2020_12_23_163527_create_shopping_orders_table.php @@ -0,0 +1,82 @@ +increments('id'); + + $table->unsignedInteger('shopping_user_id'); + $table->unsignedInteger('auth_user_id'); + + $table->unsignedInteger('country_id'); + + $table->unsignedInteger('member_id')->nullable(); + + $table->unsignedTinyInteger('payment_for')->nullable(); + + $table->decimal('total', 13, 2)->nullable(); + $table->decimal('subtotal', 13, 2)->nullable(); + + $table->decimal('shipping', 8, 2)->nullable(); + $table->decimal('shipping_net', 8, 2)->nullable(); + + $table->decimal('subtotal_ws', 13, 2)->nullable(); + $table->decimal('tax', 8, 2)->nullable(); + $table->decimal('total_shipping', 13, 2)->nullable(); + + $table->unsignedInteger('points')->nullable(); + + $table->unsignedInteger('weight')->nullable(); + + $table->boolean('paid')->default(false); + $table->string('wp_invoice_path', 255)->nullable(); + $table->text('wp_notice')->nullable(); + + $table->string('txaction', 20)->nullable()->index(); + $table->unsignedTinyInteger('shipped')->default(0); + $table->string('tracking', 255)->nullable(); + + + $table->char('mode', 4)->nullable(); + + $table->timestamps(); + $table->softDeletes(); + $table->timestamp('user_deleted_at')->nullable(); + + $table->foreign('shopping_user_id') + ->references('id') + ->on('shopping_users'); + + + $table->foreign('country_id') + ->references('id') + ->on('shipping_countries'); + + + $table->foreign('member_id') + ->references('id') + ->on('users'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shopping_orders'); + } +} diff --git a/database/migrations/2020_12_23_163724_create_shopping_order_items_table.php b/database/migrations/2020_12_23_163724_create_shopping_order_items_table.php new file mode 100644 index 0000000..c1f409c --- /dev/null +++ b/database/migrations/2020_12_23_163724_create_shopping_order_items_table.php @@ -0,0 +1,57 @@ +increments('id'); + + $table->unsignedInteger('shopping_order_id'); + $table->string('row_id', 40)->nullable(); + $table->unsignedInteger('product_id'); + + $table->unsignedTinyInteger('comp')->nullable(); + + + $table->unsignedInteger('qty'); + $table->decimal('price', 8, 2)->nullable(); + $table->decimal('price_net', 8, 3)->nullable(); + + $table->decimal('tax_rate', 5, 2)->nullable(); + $table->string('slug')->nullable(); + + $table->timestamps(); + $table->softDeletes(); + $table->timestamp('user_deleted_at')->nullable(); + + + $table->foreign('shopping_order_id') + ->references('id') + ->on('shopping_orders'); + + $table->foreign('product_id') + ->references('id') + ->on('products'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shopping_order_items'); + } +} diff --git a/database/migrations/2020_12_23_163832_create_shopping_payments_table.php b/database/migrations/2020_12_23_163832_create_shopping_payments_table.php new file mode 100644 index 0000000..b47d101 --- /dev/null +++ b/database/migrations/2020_12_23_163832_create_shopping_payments_table.php @@ -0,0 +1,52 @@ +increments('id'); + + $table->unsignedInteger('shopping_order_id'); + + $table->string('clearingtype',3); + $table->string('wallettype', 3)->nullable(); + $table->string('onlinebanktransfertype',3)->nullable(); + + $table->string('reference', 16); + $table->unsignedInteger('amount'); + $table->string('currency', 6); + + $table->string('status', 10)->nullable()->index(); + $table->string('txaction', 20)->nullable()->index(); + + $table->char('mode', 4)->nullable(); + + $table->timestamps(); + + $table->foreign('shopping_order_id') + ->references('id') + ->on('shopping_orders'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('shopping_payments'); + } +} diff --git a/database/migrations/2020_12_25_090014_create_payment_transactions_table.php b/database/migrations/2020_12_25_090014_create_payment_transactions_table.php new file mode 100644 index 0000000..68b9c8e --- /dev/null +++ b/database/migrations/2020_12_25_090014_create_payment_transactions_table.php @@ -0,0 +1,56 @@ +increments('id'); + + $table->unsignedInteger('shopping_payment_id'); + + $table->string('request',20); + $table->unsignedInteger('txid'); + $table->unsignedInteger('userid'); + + $table->string('status',20)->nullable(); + + $table->string('key',40)->nullable(); + $table->string('txaction',20)->nullable(); + + $table->text('transmitted_data')->nullable(); + + $table->unsignedInteger('errorcode')->nullable(); + $table->string('errormessage')->nullable(); + $table->string('customermessage')->nullable(); + + $table->char('mode', 4)->nullable(); + + $table->timestamps(); + + $table->foreign('shopping_payment_id') + ->references('id') + ->on('shopping_payments'); + + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('payment_transactions'); + } +} diff --git a/database/migrations/2020_12_26_101227_create_user_histories_table.php b/database/migrations/2020_12_26_101227_create_user_histories_table.php new file mode 100644 index 0000000..22e50b9 --- /dev/null +++ b/database/migrations/2020_12_26_101227_create_user_histories_table.php @@ -0,0 +1,59 @@ +increments('id'); + $table->unsignedInteger('user_id'); + + $table->unsignedInteger('shopping_order_id')->nullable(); + $table->unsignedInteger('product_id')->nullable(); + + $table->string('action')->index()->nullable(); + $table->unsignedInteger('referenz')->default(0); + $table->string('identifier')->index()->nullable(); + + $table->boolean('abo_options')->default(false); + + $table->unsignedTinyInteger('status')->index()->default(0); + + $table->timestamps(); + + + $table->foreign('shopping_order_id') + ->references('id') + ->on('shopping_orders'); + + + $table->foreign('product_id') + ->references('id') + ->on('products'); + + $table->foreign('user_id') + ->references('id') + ->on('users') + ->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('user_histories'); + } +} diff --git a/database/seeds/DatabaseSeeder.php b/database/seeds/DatabaseSeeder.php new file mode 100644 index 0000000..91cb6d1 --- /dev/null +++ b/database/seeds/DatabaseSeeder.php @@ -0,0 +1,16 @@ +call(UsersTableSeeder::class); + } +} diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..ef58326 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,12958 @@ +{ + "name": "appwork-laravel-starter", + "version": "1.5.2", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular/common": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-2.4.10.tgz", + "integrity": "sha1-o6aC0iKPow7CPdDrV8joh/uiaZc=", + "dev": true + }, + "@angular/compiler": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-2.4.10.tgz", + "integrity": "sha1-9R/TSCCyoCx8th+89JhzxYBW+ww=", + "dev": true + }, + "@angular/core": { + "version": "2.4.10", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-2.4.10.tgz", + "integrity": "sha1-C4MgplBlll2ZhkWx9c0892m0Qeo=", + "dev": true + }, + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/compat-data": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", + "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==", + "dev": true + }, + "@babel/core": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.10.tgz", + "integrity": "sha512-eTAlQKq65zHfkHZV0sIVODCPGVgoo1HdBlbSLi9CqOzuZanMv2ihzY+4paiKr1mH+XmYESMAmJ/dpZ68eN6d8w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.12.10", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helpers": "^7.12.5", + "@babel/parser": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", + "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", + "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", + "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.5", + "@babel/helper-validator-option": "^7.12.1", + "browserslist": "^4.14.5", + "semver": "^5.5.0" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", + "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.12.1", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", + "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "regexpu-core": "^4.7.1" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", + "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", + "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-function-name": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", + "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.10", + "@babel/template": "^7.12.7", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", + "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", + "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", + "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "dev": true, + "requires": { + "@babel/types": "^7.12.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", + "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.5" + } + }, + "@babel/helper-module-transforms": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", + "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.11.0", + "@babel/helper-validator-identifier": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.1", + "@babel/types": "^7.12.1", + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", + "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", + "dev": true, + "requires": { + "@babel/types": "^7.12.10" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", + "dev": true + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", + "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-replace-supers": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", + "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.12.7", + "@babel/helper-optimise-call-expression": "^7.12.10", + "@babel/traverse": "^7.12.10", + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", + "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", + "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", + "dev": true, + "requires": { + "@babel/types": "^7.12.11" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.11.tgz", + "integrity": "sha512-TBFCyj939mFSdeX7U7DDj32WtzYY7fDcalgq8v3fBZMNOJQNn7nOYzMaUCiPxPYfCup69mtIpqlKgMZLvQ8Xhw==", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.12.3", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", + "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", + "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.12.5", + "@babel/types": "^7.12.5" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", + "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", + "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", + "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", + "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", + "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", + "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", + "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", + "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", + "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", + "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.12.1" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", + "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", + "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", + "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", + "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", + "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", + "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", + "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", + "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.12.1" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", + "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", + "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", + "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", + "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", + "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", + "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", + "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", + "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", + "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", + "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", + "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", + "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", + "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", + "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.12.1", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", + "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-identifier": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", + "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", + "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", + "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", + "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.12.1" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", + "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", + "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", + "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", + "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.12.10.tgz", + "integrity": "sha512-xOrUfzPxw7+WDm9igMgQCbO3cJKymX7dFdsgRr1eu9n3KjjyU4pptIXbXPseQDquw+W+RuJEJMHKHNsPNNm3CA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", + "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", + "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", + "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", + "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", + "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", + "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", + "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.1", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.11.tgz", + "integrity": "sha512-j8Tb+KKIXKYlDBQyIOy4BLxzv1NUOwlHfZ74rvW+Z0Gp4/cI2IMDPBWAgWceGcE7aep9oL/0K9mlzlMGxA8yNw==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.12.7", + "@babel/helper-compilation-targets": "^7.12.5", + "@babel/helper-module-imports": "^7.12.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-validator-option": "^7.12.11", + "@babel/plugin-proposal-async-generator-functions": "^7.12.1", + "@babel/plugin-proposal-class-properties": "^7.12.1", + "@babel/plugin-proposal-dynamic-import": "^7.12.1", + "@babel/plugin-proposal-export-namespace-from": "^7.12.1", + "@babel/plugin-proposal-json-strings": "^7.12.1", + "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", + "@babel/plugin-proposal-numeric-separator": "^7.12.7", + "@babel/plugin-proposal-object-rest-spread": "^7.12.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.12.7", + "@babel/plugin-proposal-private-methods": "^7.12.1", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-class-properties": "^7.12.1", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.12.1", + "@babel/plugin-transform-arrow-functions": "^7.12.1", + "@babel/plugin-transform-async-to-generator": "^7.12.1", + "@babel/plugin-transform-block-scoped-functions": "^7.12.1", + "@babel/plugin-transform-block-scoping": "^7.12.11", + "@babel/plugin-transform-classes": "^7.12.1", + "@babel/plugin-transform-computed-properties": "^7.12.1", + "@babel/plugin-transform-destructuring": "^7.12.1", + "@babel/plugin-transform-dotall-regex": "^7.12.1", + "@babel/plugin-transform-duplicate-keys": "^7.12.1", + "@babel/plugin-transform-exponentiation-operator": "^7.12.1", + "@babel/plugin-transform-for-of": "^7.12.1", + "@babel/plugin-transform-function-name": "^7.12.1", + "@babel/plugin-transform-literals": "^7.12.1", + "@babel/plugin-transform-member-expression-literals": "^7.12.1", + "@babel/plugin-transform-modules-amd": "^7.12.1", + "@babel/plugin-transform-modules-commonjs": "^7.12.1", + "@babel/plugin-transform-modules-systemjs": "^7.12.1", + "@babel/plugin-transform-modules-umd": "^7.12.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", + "@babel/plugin-transform-new-target": "^7.12.1", + "@babel/plugin-transform-object-super": "^7.12.1", + "@babel/plugin-transform-parameters": "^7.12.1", + "@babel/plugin-transform-property-literals": "^7.12.1", + "@babel/plugin-transform-regenerator": "^7.12.1", + "@babel/plugin-transform-reserved-words": "^7.12.1", + "@babel/plugin-transform-shorthand-properties": "^7.12.1", + "@babel/plugin-transform-spread": "^7.12.1", + "@babel/plugin-transform-sticky-regex": "^7.12.7", + "@babel/plugin-transform-template-literals": "^7.12.1", + "@babel/plugin-transform-typeof-symbol": "^7.12.10", + "@babel/plugin-transform-unicode-escapes": "^7.12.1", + "@babel/plugin-transform-unicode-regex": "^7.12.1", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.12.11", + "core-js-compat": "^3.8.0", + "semver": "^5.5.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", + "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs3": { + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", + "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", + "dev": true, + "optional": true, + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.12.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", + "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.12.7", + "@babel/types": "^7.12.7" + } + }, + "@babel/traverse": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", + "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.11", + "@babel/generator": "^7.12.11", + "@babel/helper-function-name": "^7.12.11", + "@babel/helper-split-export-declaration": "^7.12.11", + "@babel/parser": "^7.12.11", + "@babel/types": "^7.12.12", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.12.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", + "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "@claviska/jquery-minicolors": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@claviska/jquery-minicolors/-/jquery-minicolors-2.3.5.tgz", + "integrity": "sha512-LpiN8hyqRPYB2tEzFD4lI54GxKHQXhzrJMnKnsumElYxjkjbdAPmiIm+1k/Mkfn92HepL7t9uaK5iQSFP/19aw==", + "dev": true + }, + "@flowjs/flow.js": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/@flowjs/flow.js/-/flow.js-2.14.1.tgz", + "integrity": "sha512-99DWlPnksOOS8uHfo+bhSjvs8d2MfLTB/22JBDC2ONwz/OCdP+gL/iiM4puMSTE2wH4A2/+J0eMc7pKwusXunw==", + "dev": true + }, + "@fullcalendar/bootstrap": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/bootstrap/-/bootstrap-4.4.2.tgz", + "integrity": "sha512-zxtQvpZqr7zeBCfszo/i1e4zCvGwLh2zOp8J6Wxw5s73HsB1zuftWop7sPO+qhRrhX5MdM9i/wr8/nNY8BZSmw==", + "dev": true + }, + "@fullcalendar/core": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/core/-/core-4.4.2.tgz", + "integrity": "sha512-vq7KQGuAJ1ieFG5tUqwxwUwmXYtblFOTjHaLAVHo6iEPB52mS7DS45VJfkhaQmX4+5/+BHRpg82G1qkuAINwtg==", + "dev": true + }, + "@fullcalendar/daygrid": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/daygrid/-/daygrid-4.4.2.tgz", + "integrity": "sha512-axjfMhxEXHShV3r2TZjf+2niJ1C6LdAxkHKmg7mVq4jXtUQHOldU5XsjV0v2lUAt1urJBFi2zajfK8798ukL3Q==", + "dev": true + }, + "@fullcalendar/interaction": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/interaction/-/interaction-4.4.2.tgz", + "integrity": "sha512-3ItpGFnxcYQT4NClqhq93QTQwOI8x3mlMf5M4DgK5avVaSzpv9g8p+opqeotK2yzpFeINps06cuQyB1h7vcv1Q==", + "dev": true + }, + "@fullcalendar/list": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/list/-/list-4.4.2.tgz", + "integrity": "sha512-buhfd0w0PavH3EVZ6DR6kvjb+wPDe16XEpNcPkTpvIxnAziwGBvcUeHUBd9KvtEhOcvs9sAKoYKbU4xwHFK0Wg==", + "dev": true + }, + "@fullcalendar/timegrid": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/timegrid/-/timegrid-4.4.2.tgz", + "integrity": "sha512-M5an7qii8OUmI4ogY47k5pn2j/qUbLp6sa6Vo0gO182HR5pb9YtrEZnoQhnScok+I0BkDkLFzMQoiAMTjBm2PQ==", + "dev": true, + "requires": { + "@fullcalendar/daygrid": "~4.4.0" + } + }, + "@fullcalendar/timeline": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@fullcalendar/timeline/-/timeline-4.4.2.tgz", + "integrity": "sha512-9lmFKZNtjHLlbZgOBUqjrKkyvuH3gksD13rRE9LC+TBB2EiUypks99A1Cqa1WhScVi2T6j1HZn3TpV6HFM6MBg==", + "dev": true + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "@popperjs/core": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.6.0.tgz", + "integrity": "sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw==", + "dev": true + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", + "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/node": { + "version": "14.14.20", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.20.tgz", + "integrity": "sha512-Y93R97Ouif9JEOWPIUyU+eyIdyRqQR0I8Ez1dzku4hDx34NWh4HbtIc3WNzwB1Y9ULvNGeu5B8h8bVL5cAk4/A==", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", + "dev": true + }, + "@types/raf": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@types/raf/-/raf-3.4.0.tgz", + "integrity": "sha512-taW5/WYqo36N7V39oYyHP9Ipfd5pNFvGTIQsNGj86xV88YQ7GnI30/yMfKDF7Zgin0m3e+ikX88FvImnK4RjGw==", + "dev": true, + "optional": true + }, + "@vue/component-compiler-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", + "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true + }, + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true + }, + "acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "dev": true, + "requires": { + "acorn": "^2.1.0" + }, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true + } + } + }, + "add": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/add/-/add-2.0.6.tgz", + "integrity": "sha1-JI8Kn25aUo7yKV2+7DBTITCuIjU=", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-3.0.0.tgz", + "integrity": "sha512-YBrGyT2/uVQ/c6Rr+t6ZJXniY03YtHGMJQYal368burRGYKqhx9qGTWqcBU5s1CwYY9E/ri63RYyG1IacMZtqw==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "dependencies": { + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + } + } + }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "dev": true, + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "dev": true + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "animate.css": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/animate.css/-/animate.css-3.7.2.tgz", + "integrity": "sha512-0bE8zYo7C0KvgOYrSVfrzkbYk6IOTVPNqkiHg2cbyF4Pq/PXzilz4BRWA3hwEUBoMp5VBgrC29lQIZyhRWdBTw==", + "dev": true + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arity-n": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arity-n/-/arity-n-1.0.4.tgz", + "integrity": "sha1-2edrEXM+CFacCEeuezmyhgswt0U=", + "dev": true + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.9.6", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz", + "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atoa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atoa/-/atoa-1.0.0.tgz", + "integrity": "sha1-DMDpGkgOc4+SPrwQNnZHF3mzSkk=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "autosize": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.2.tgz", + "integrity": "sha512-jnSyH2d+qdfPGpWlcuhGiHmqBJ6g3X+8T+iRwFrHPLVcdoGJE/x6Qicm6aDHfTsbgZKxyV8UU/YB2p4cjKDRRA==", + "dev": true + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-loader": { + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", + "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", + "dev": true, + "requires": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^1.4.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + } + }, + "babel-merge": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/babel-merge/-/babel-merge-2.0.1.tgz", + "integrity": "sha512-puTQQxuzS+0JlMyVdfsTVaCgzqjBXKPMv7oUANpYcHFY+7IptWZ4PZDYX+qBxrRMtrriuBA44LkKpS99EJzqVA==", + "dev": true, + "requires": { + "@babel/core": "^7.0.0-beta.49", + "deepmerge": "^2.1.0", + "object.omit": "^3.0.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "dev": true, + "optional": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "block-ui": { + "version": "2.70.1", + "resolved": "https://registry.npmjs.org/block-ui/-/block-ui-2.70.1.tgz", + "integrity": "sha1-yGLWTuYoj7eBIzd8ZoC8erJiED8=", + "dev": true, + "requires": { + "jquery": ">=1.7.x" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "blueimp-gallery": { + "version": "2.38.0", + "resolved": "https://registry.npmjs.org/blueimp-gallery/-/blueimp-gallery-2.38.0.tgz", + "integrity": "sha512-HZ211DqFlpQoU+HIUpuAl8mZhrEZaXBCDSOS3eYD8jX9GjuWUo8PybevhRDpxti0duWiT+wDZnRi2uBkUmbAhg==", + "dev": true + }, + "bn.js": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", + "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "bootbox": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/bootbox/-/bootbox-5.4.1.tgz", + "integrity": "sha512-8I2zqVjsrUdRj5aADESQNOlqssbbazl7jkTcue/HqMo+AP+tHzdEHILS6cQsyvzLriZtQg+fG45Drd8M/Q4a8A==", + "dev": true, + "requires": { + "bootstrap": "^4.4.0", + "jquery": "^3.5.1", + "popper.js": "^1.16.0" + }, + "dependencies": { + "jquery": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", + "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==", + "dev": true + } + } + }, + "bootstrap": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz", + "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA==", + "dev": true + }, + "bootstrap-datepicker": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/bootstrap-datepicker/-/bootstrap-datepicker-1.9.0.tgz", + "integrity": "sha512-9rYYbaVOheGYxjOr/+bJCmRPihfy+LkLSg4fIFMT9Od8WwWB/MB50w0JO1eBgKUMbb7PFHQD5uAfI3ArAxZRXA==", + "dev": true, + "requires": { + "jquery": ">=1.7.1 <4.0.0" + } + }, + "bootstrap-daterangepicker": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.0.5.tgz", + "integrity": "sha512-WdTNB5ZKCpqZltcRkzeE6Xmwp/b8yPnuwsHfqP5mGP2VIV/kzd/6VuTIKEjuskDcsLAYW38LXGjcSm2TBNRdTw==", + "dev": true, + "requires": { + "jquery": ">=1.10", + "moment": "^2.9.0" + } + }, + "bootstrap-duallistbox": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/bootstrap-duallistbox/-/bootstrap-duallistbox-3.0.9.tgz", + "integrity": "sha512-PaGSklYaWDsptvFsngqxMIFrwj1BnRsn7f/QKbHjCpN0jRyZIhRreCV9JRuj7U3ZmCYDn3oXnURzFSnOOuTwgw==", + "dev": true + }, + "bootstrap-markdown": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/bootstrap-markdown/-/bootstrap-markdown-2.10.0.tgz", + "integrity": "sha1-ZSNCd4QEVO4a3HSCsvSl45ddrOU=", + "dev": true + }, + "bootstrap-material-datetimepicker": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/bootstrap-material-datetimepicker/-/bootstrap-material-datetimepicker-2.7.3.tgz", + "integrity": "sha1-eX4Xzdt/u0doCRmKQF6EoFd9BGk=", + "dev": true, + "requires": { + "@angular/common": "^2.4.1", + "@angular/compiler": "^2.4.1", + "@angular/core": "^2.4.1", + "html-element-stringify": "^0.2.0", + "jquery": "^3.1.1", + "moment": "^2.17.1", + "zone.js": "^0.8.5" + } + }, + "bootstrap-maxlength": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/bootstrap-maxlength/-/bootstrap-maxlength-1.6.0.tgz", + "integrity": "sha1-A/NfBzOACe/q/drNbQxrzMLafuE=", + "dev": true + }, + "bootstrap-menu": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bootstrap-menu/-/bootstrap-menu-1.0.14.tgz", + "integrity": "sha1-qkQjv4RQa2BIPhTQdtqCpM3e1DQ=", + "dev": true, + "requires": { + "classnames": "^2.1.3", + "jquery-ui": "^1.12.0", + "lodash": "^3.10.0" + } + }, + "bootstrap-select": { + "version": "1.13.18", + "resolved": "https://registry.npmjs.org/bootstrap-select/-/bootstrap-select-1.13.18.tgz", + "integrity": "sha512-V1IzK4rxBq5FrJtkzSH6RmFLFBsjx50byFbfAf8jYyXROWs7ZpprGjdHeoyq2HSsHyjJhMMwjsQhRoYAfxCGow==", + "dev": true + }, + "bootstrap-slider": { + "version": "10.6.2", + "resolved": "https://registry.npmjs.org/bootstrap-slider/-/bootstrap-slider-10.6.2.tgz", + "integrity": "sha512-8JTPZB9QVOdrGzYF3YgC3YW6ssfPeBvBwZnXffiZ7YH/zz1D0EKlZvmQsm/w3N0XjVNYQEoQ0ax+jHrErV4K1Q==", + "dev": true + }, + "bootstrap-table": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/bootstrap-table/-/bootstrap-table-1.16.0.tgz", + "integrity": "sha512-bLbVetbyiXYmhU1LSsaiOHH4uvmlyBa/fNUo3y0owCfQSyQms/sfXOBvbcJWlDmjGtTY7kPW5z7KQvQJDPzN5w==", + "dev": true + }, + "bootstrap-tagsinput": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/bootstrap-tagsinput/-/bootstrap-tagsinput-0.7.1.tgz", + "integrity": "sha1-/+Owa74qEGlF7ygUVoAFqU8hGTc=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.16.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", + "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001173", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.634", + "escalade": "^3.1.1", + "node-releases": "^1.1.69" + } + }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "dev": true + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "c3": { + "version": "0.7.20", + "resolved": "https://registry.npmjs.org/c3/-/c3-0.7.20.tgz", + "integrity": "sha512-QZg4q5M32x2TEgoiQPgc+G+rAuDErTjtG2AeLxS8s0ZLxHBoqsaRcraVvLBG8Zbmj8hOefz2DCWSlX3gaV/11g==", + "dev": true, + "requires": { + "d3": "^5.8.0" + } + }, + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", + "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", + "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.0" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001173", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz", + "integrity": "sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw==", + "dev": true + }, + "canvg": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-3.0.7.tgz", + "integrity": "sha512-4sq6iL5Q4VOXS3PL1BapiXIZItpxYyANVzsAKpTPS5oq4u3SKbGfUcbZh2gdLCQ3jWpG/y5wRkMlBBAJhXeiZA==", + "dev": true, + "optional": true, + "requires": { + "@babel/runtime-corejs3": "^7.9.6", + "@types/raf": "^3.4.0", + "raf": "^3.4.1", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^2.0.0", + "svg-pathdata": "^5.0.5" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "cfb": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.2.0.tgz", + "integrity": "sha512-sXMvHsKCICVR3Naq+J556K+ExBo9n50iKl6LGarlnvuA2035uMlGA/qVrc0wQtow5P1vJEw9UyrKLCbtIKz+TQ==", + "dev": true, + "requires": { + "adler-32": "~1.2.0", + "crc-32": "~1.2.0", + "printj": "~1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "charenc": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", + "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=", + "dev": true + }, + "chart.js": { + "version": "2.9.4", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-2.9.4.tgz", + "integrity": "sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A==", + "dev": true, + "requires": { + "chartjs-color": "^2.1.0", + "moment": "^2.10.2" + } + }, + "chartist": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/chartist/-/chartist-0.11.4.tgz", + "integrity": "sha512-H4AimxaUD738/u9Mq8t27J4lh6STsLi4BQHt65nOtpLk3xyrBPaLiLMrHw7/WV9CmsjGA02WihjuL5qpSagLYw==", + "dev": true + }, + "chartjs-color": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz", + "integrity": "sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==", + "dev": true, + "requires": { + "chartjs-color-string": "^0.6.0", + "color-convert": "^1.9.3" + } + }, + "chartjs-color-string": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz", + "integrity": "sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==", + "dev": true, + "requires": { + "color-name": "^1.0.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", + "dev": true + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "dev": true + }, + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.6.tgz", + "integrity": "sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==", + "dev": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" + } + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "dev": true, + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==", + "dev": true + } + } + }, + "collect.js": { + "version": "4.28.6", + "resolved": "https://registry.npmjs.org/collect.js/-/collect.js-4.28.6.tgz", + "integrity": "sha512-NAyuk1DnCotRaDZIS5kJ4sptgkwOeYqElird10yziN5JBuwYOGkOTguhNcPn5g344IfylZecxNYZAVXgv19p5Q==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + }, + "dependencies": { + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "compose-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", + "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", + "dev": true, + "requires": { + "arity-n": "^1.0.4" + } + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "concat": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/concat/-/concat-1.0.3.tgz", + "integrity": "sha1-QPM1MInWVGdpXLGIa0Xt1jfYzKg=", + "dev": true, + "requires": { + "commander": "^2.9.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", + "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "contra": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/contra/-/contra-1.9.4.tgz", + "integrity": "sha1-9TveQtfltZhcrk2ZqNYQUm3o8o0=", + "dev": true, + "requires": { + "atoa": "1.0.0", + "ticky": "1.0.1" + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", + "dev": true + }, + "core-js-compat": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.2.tgz", + "integrity": "sha512-LO8uL9lOIyRRrQmZxHZFl1RV+ZbcsAkFWTktn5SmH40WgLtSNYN4m4W2v9ONT147PxBY/XrRhrWq8TlvObyUjQ==", + "dev": true, + "requires": { + "browserslist": "^4.16.0", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "core-js-pure": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.2.tgz", + "integrity": "sha512-v6zfIQqL/pzTVAbZvYUozsxNfxcFb6Ks3ZfEbuneJl3FW9Jb8F6vLWB6f+qTmAu72msUdyb84V8d/yBFf7FNnw==", + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "dev": true, + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cropper": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cropper/-/cropper-4.1.0.tgz", + "integrity": "sha512-dNbkWNT606oMgRQ2aYMerDnPpSVLBMTWyERDHsDwih1ahJiVpyfSM9ev/n6G4ElfRG8t0shUZ5FXLg7YtmDdBQ==", + "dev": true, + "requires": { + "cropperjs": "^1.5.6" + } + }, + "cropperjs": { + "version": "1.5.9", + "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.9.tgz", + "integrity": "sha512-aPWlg43sLIcYN4GBXIdyvM09wNPgn1ug+vNVwV8jlb3dbgEX/B34Iw6hrjGSajkUDQBmaCi6uPOevFb7N0yUsw==", + "dev": true + }, + "cross-env": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", + "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crossvent": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/crossvent/-/crossvent-1.5.5.tgz", + "integrity": "sha1-rSCHjkkh6b5z2daXb4suzQ9xoLE=", + "dev": true, + "requires": { + "custom-event": "^1.0.0" + } + }, + "crypt": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", + "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=", + "dev": true + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", + "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-line-break": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.1.1.tgz", + "integrity": "sha512-1feNVaM4Fyzdj4mKPIQNL2n70MmuYzAXZ1aytlROFX1JsOo070OsugwGjj7nl6jnDJWHDM8zRZswkmeYVWZJQA==", + "dev": true, + "optional": true, + "requires": { + "base64-arraybuffer": "^0.2.0" + } + }, + "css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.1.tgz", + "integrity": "sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dev": true, + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dev": true, + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "custom-event-polyfill": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz", + "integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w==", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "d3": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/d3/-/d3-5.16.0.tgz", + "integrity": "sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==", + "dev": true, + "requires": { + "d3-array": "1", + "d3-axis": "1", + "d3-brush": "1", + "d3-chord": "1", + "d3-collection": "1", + "d3-color": "1", + "d3-contour": "1", + "d3-dispatch": "1", + "d3-drag": "1", + "d3-dsv": "1", + "d3-ease": "1", + "d3-fetch": "1", + "d3-force": "1", + "d3-format": "1", + "d3-geo": "1", + "d3-hierarchy": "1", + "d3-interpolate": "1", + "d3-path": "1", + "d3-polygon": "1", + "d3-quadtree": "1", + "d3-random": "1", + "d3-scale": "2", + "d3-scale-chromatic": "1", + "d3-selection": "1", + "d3-shape": "1", + "d3-time": "1", + "d3-time-format": "2", + "d3-timer": "1", + "d3-transition": "1", + "d3-voronoi": "1", + "d3-zoom": "1" + } + }, + "d3-array": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", + "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", + "dev": true + }, + "d3-axis": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", + "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==", + "dev": true + }, + "d3-brush": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.6.tgz", + "integrity": "sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==", + "dev": true, + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "d3-chord": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", + "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", + "dev": true, + "requires": { + "d3-array": "1", + "d3-path": "1" + } + }, + "d3-collection": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", + "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", + "dev": true + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.1.tgz", + "integrity": "sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==", + "dev": true + }, + "d3-contour": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", + "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", + "dev": true, + "requires": { + "d3-array": "^1.1.1" + } + }, + "d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.6.tgz", + "integrity": "sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==", + "dev": true + }, + "d3-drag": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.5.tgz", + "integrity": "sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==", + "dev": true, + "requires": { + "d3-dispatch": "1", + "d3-selection": "1" + } + }, + "d3-dsv": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.2.0.tgz", + "integrity": "sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==", + "dev": true, + "requires": { + "commander": "2", + "iconv-lite": "0.4", + "rw": "1" + } + }, + "d3-ease": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.7.tgz", + "integrity": "sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==", + "dev": true + }, + "d3-fetch": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.2.0.tgz", + "integrity": "sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==", + "dev": true, + "requires": { + "d3-dsv": "1" + } + }, + "d3-force": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", + "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", + "dev": true, + "requires": { + "d3-collection": "1", + "d3-dispatch": "1", + "d3-quadtree": "1", + "d3-timer": "1" + } + }, + "d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==", + "dev": true + }, + "d3-geo": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.12.1.tgz", + "integrity": "sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==", + "dev": true, + "requires": { + "d3-array": "1" + } + }, + "d3-hierarchy": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz", + "integrity": "sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==", + "dev": true + }, + "d3-interpolate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.4.0.tgz", + "integrity": "sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==", + "dev": true, + "requires": { + "d3-color": "1" + } + }, + "d3-path": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.9.tgz", + "integrity": "sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==", + "dev": true + }, + "d3-polygon": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.6.tgz", + "integrity": "sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==", + "dev": true + }, + "d3-quadtree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.7.tgz", + "integrity": "sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==", + "dev": true + }, + "d3-random": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", + "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==", + "dev": true + }, + "d3-scale": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", + "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", + "dev": true, + "requires": { + "d3-array": "^1.2.0", + "d3-collection": "1", + "d3-format": "1", + "d3-interpolate": "1", + "d3-time": "1", + "d3-time-format": "2" + } + }, + "d3-scale-chromatic": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", + "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", + "dev": true, + "requires": { + "d3-color": "1", + "d3-interpolate": "1" + } + }, + "d3-selection": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.2.tgz", + "integrity": "sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==", + "dev": true + }, + "d3-shape": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.7.tgz", + "integrity": "sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==", + "dev": true, + "requires": { + "d3-path": "1" + } + }, + "d3-time": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", + "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==", + "dev": true + }, + "d3-time-format": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.3.0.tgz", + "integrity": "sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==", + "dev": true, + "requires": { + "d3-time": "1" + } + }, + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.10.tgz", + "integrity": "sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==", + "dev": true + }, + "d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.3.2.tgz", + "integrity": "sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==", + "dev": true, + "requires": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "d3-voronoi": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", + "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==", + "dev": true + }, + "d3-zoom": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", + "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", + "dev": true, + "requires": { + "d3-dispatch": "1", + "d3-drag": "1", + "d3-interpolate": "1", + "d3-selection": "1", + "d3-transition": "1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "datatables.net": { + "version": "1.10.23", + "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.23.tgz", + "integrity": "sha512-we3tlNkzpxvgkKKlTxTMXPCt35untVXNg8zUYWpQyC1U5vJc+lT0+Zdc1ztK8d3lh5CfdnuFde2p8n3XwaGl3Q==", + "dev": true, + "requires": { + "jquery": ">=1.7" + } + }, + "datatables.net-bs4": { + "version": "1.10.23", + "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-1.10.23.tgz", + "integrity": "sha512-ChUB8t5t5uzPnJYTPXx2DOvnlm2shz8OadXrKoFavOadB308OuwHVxSldYq9+KGedCeiVxEjNqcaV4nFSXkRsw==", + "dev": true, + "requires": { + "datatables.net": "1.10.23", + "jquery": ">=1.7" + } + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", + "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==", + "dev": true + }, + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", + "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", + "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "desandro-matches-selector": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/desandro-matches-selector/-/desandro-matches-selector-2.0.2.tgz", + "integrity": "sha1-cXvu1NwT59jzdi9wem1YpndCGOE=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "dev": true + } + } + }, + "dom7": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-2.1.5.tgz", + "integrity": "sha512-xnhwVgyOh3eD++/XGtH+5qBwYTgCm0aW91GFgPJ3XG+jlsRLyJivnbP0QmUBFhI+Oaz9FV0s7cxgXHezwOEBYA==", + "dev": true, + "requires": { + "ssr-window": "^2.0.0" + }, + "dependencies": { + "ssr-window": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-2.0.0.tgz", + "integrity": "sha512-NXzN+/HPObKAx191H3zKlYomE5WrVIkoCB5IaSdvKokxTpjBdWfr0RaP+1Z5KOfDT0ZVz+2tdtiBkhsEQ9p+0A==", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "dompurify": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.2.6.tgz", + "integrity": "sha512-7b7ZArhhH0SP6W2R9cqK6RjaU82FZ2UPM7RO8qN1b1wyvC/NY1FNWcX1Pu00fFOAnzEORtwXe4bPaClg6pUybQ==", + "dev": true, + "optional": true + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", + "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", + "dev": true + }, + "dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=", + "dev": true + }, + "dragula": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/dragula/-/dragula-3.7.3.tgz", + "integrity": "sha512-/rRg4zRhcpf81TyDhaHLtXt6sEywdfpv1cRUMeFFy7DuypH2U0WUL0GTdyAQvXegviT4PJK4KuMmOaIDpICseQ==", + "dev": true, + "requires": { + "contra": "1.9.4", + "crossvent": "1.5.5" + } + }, + "dropzone": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/dropzone/-/dropzone-5.7.2.tgz", + "integrity": "sha512-m217bJHtf0J1IiKn4Tv6mnu1h5QvQNBnKZ39gma7hzGQhIZMxYq1vYEHs4AVd4ThFwmALys+52NAOD4zdLTG4w==", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.634", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.634.tgz", + "integrity": "sha512-QPrWNYeE/A0xRvl/QP3E0nkaEvYUvH3gM04ZWYtIa6QlSpEetRlRI1xvQ7hiMIySHHEV+mwDSX8Kj4YZY6ZQAw==", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", + "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", + "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.18.0-next.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", + "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.0", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", + "dev": true + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-templates": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", + "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", + "dev": true, + "requires": { + "recast": "~0.11.12", + "through": "~2.3.6" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "ev-emitter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.1.1.tgz", + "integrity": "sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q==", + "dev": true + }, + "eve-raphael": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/eve-raphael/-/eve-raphael-0.5.0.tgz", + "integrity": "sha1-F8dUt5K+7z+maE15z1pHxjxM2jA=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "extract-text-webpack-plugin": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-4.0.0-beta.0.tgz", + "integrity": "sha512-Hypkn9jUTnFr0DpekNam53X47tXn3ucY08BQumv7kdGgeVUBLq3DJHJTi6HNxv4jl9W+Skxjz9+RnK0sJyqqjA==", + "dev": true, + "requires": { + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.1.2.tgz", + "integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fflate": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.3.11.tgz", + "integrity": "sha512-Rr5QlUeGN1mbOHlaqcSYMKVpPbgLy0AWT/W0EHxA6NGI12yO1jpoui2zBBvU2G824ltM6Ut8BFgfHSBGfkmS0A==", + "dev": true + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true + }, + "file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==", + "dev": true + }, + "file-type": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", + "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==", + "dev": true + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", + "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "findup-sync": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz", + "integrity": "sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + } + }, + "fizzy-ui-utils": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fizzy-ui-utils/-/fizzy-ui-utils-2.0.7.tgz", + "integrity": "sha512-CZXDVXQ1If3/r8s0T+v+qVeMshhfcuq0rqIFgJnrtd+Bu8GmDmqMjntjUePypVtjHXKJ6V4sw9zeyox34n9aCg==", + "dev": true, + "requires": { + "desandro-matches-selector": "^2.0.0" + } + }, + "flatpickr": { + "version": "4.6.9", + "resolved": "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.9.tgz", + "integrity": "sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw==", + "dev": true + }, + "flot": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/flot/-/flot-4.2.1.tgz", + "integrity": "sha512-tnZ4Pg1upBSfSs52VVRPZqF8FUxeVVI124srTV/XNcwJR5ygjaCZuwnpkAuZAWFLZMg2OCHb53pB6VoVB7YT4g==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "follow-redirects": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", + "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "friendly-errors-webpack-plugin": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz", + "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-size": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/get-size/-/get-size-2.0.3.tgz", + "integrity": "sha512-lXNzT/h/dTjTxRbm9BXb+SGxxzkm97h/PCIKtlN/CBCxxmkkIVV21udumMS93MuVTDX583gqc94v3RjuHmI+2Q==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + }, + "dependencies": { + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "gmaps": { + "version": "0.4.25", + "resolved": "https://registry.npmjs.org/gmaps/-/gmaps-0.4.25.tgz", + "integrity": "sha512-a2qZl3SMbfGow02WUWWH9+Cc0kVrUCnhSh+b13P7XTi8pauLHpa0A/8rYK9x4C/iPdkfAY0FAOyuwqHnLPHi4w==", + "dev": true + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dev": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-element-stringify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/html-element-stringify/-/html-element-stringify-0.2.0.tgz", + "integrity": "sha1-sh17KI5OOUVoRUugK2SY0Yd1Drc=", + "dev": true + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "dev": true + }, + "html-loader": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-0.5.5.tgz", + "integrity": "sha512-7hIW7YinOYUpo//kSYcPB6dCKoceKLmOwjEMmhIobHuWGDVl0Nwe4l68mdG/Ru0wcUxQjVMEoZpkalZ/SE7zog==", + "dev": true, + "requires": { + "es6-templates": "^0.2.3", + "fastparse": "^1.1.1", + "html-minifier": "^3.5.8", + "loader-utils": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + } + } + }, + "html2canvas": { + "version": "0.5.0-beta4", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-0.5.0-beta4.tgz", + "integrity": "sha1-goLGKsX9eBaPVwK15IdxV8qT854=", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", + "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "imagemin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz", + "integrity": "sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==", + "dev": true, + "requires": { + "file-type": "^10.7.0", + "globby": "^8.0.1", + "make-dir": "^1.0.0", + "p-pipe": "^1.1.0", + "pify": "^4.0.1", + "replace-ext": "^1.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + } + } + }, + "img-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/img-loader/-/img-loader-3.0.2.tgz", + "integrity": "sha512-rSriLKgvi85Km7ppSF+AEAM3nU4fxpvCkaXtC/IoCEU7jfks55bEANFs0bB9YXYkxY9JurZQIZFtXh5Gue3upw==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0" + } + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", + "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", + "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", + "dev": true + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", + "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", + "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "jest-worker": { + "version": "25.5.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", + "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", + "dev": true, + "requires": { + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "jquery": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz", + "integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg==", + "dev": true + }, + "jquery-knob": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/jquery-knob/-/jquery-knob-1.2.11.tgz", + "integrity": "sha1-83w528HHpqbBLNsu1Pa/+2g/ENY=", + "dev": true + }, + "jquery-mapael": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jquery-mapael/-/jquery-mapael-2.2.0.tgz", + "integrity": "sha512-B5cVcCkfs7Ezia1Zs8bEfVacYD/GvaASyqQeidApR/NJ1C4igcExk9VULVsgLcTPkxohcZrrz5uCaPXvuKeZWw==", + "dev": true, + "requires": { + "jquery": "^3.0 || ^2.0 || ^1.0", + "jquery-mousewheel": "^3.1", + "raphael": "^2.2.0 || ^2.1.1" + } + }, + "jquery-mousewheel": { + "version": "3.1.13", + "resolved": "https://registry.npmjs.org/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz", + "integrity": "sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU=", + "dev": true, + "optional": true + }, + "jquery-sparkline": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jquery-sparkline/-/jquery-sparkline-2.4.0.tgz", + "integrity": "sha1-G+i3twTdOFcVJwiu+x1KSzpp+zM=", + "dev": true + }, + "jquery-ui": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz", + "integrity": "sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE=", + "dev": true + }, + "jquery-validation": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/jquery-validation/-/jquery-validation-1.19.2.tgz", + "integrity": "sha512-yHaAqOGaAB7+p2u5lpzhhQVt3CBMUw3fHcuCJ7nXmXz0LWLHPN7yOhwnocp5nrn2SmnXR1jpV+whx2j1kLz1tQ==", + "dev": true + }, + "jquery.growl": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/jquery.growl/-/jquery.growl-1.3.5.tgz", + "integrity": "sha1-+hxNdY4NdoZVHhWJaxqqwrsa9/E=", + "dev": true + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + } + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-8.5.0.tgz", + "integrity": "sha1-1Nj12/J2hjW2KmKCO5R89wcevJg=", + "dev": true, + "requires": { + "abab": "^1.0.0", + "acorn": "^2.4.0", + "acorn-globals": "^1.0.4", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.0 < 0.4.0", + "cssstyle": ">= 0.2.34 < 0.3.0", + "escodegen": "^1.6.1", + "iconv-lite": "^0.4.13", + "nwmatcher": ">= 1.3.7 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.55.0", + "sax": "^1.1.4", + "symbol-tree": ">= 3.1.0 < 4.0.0", + "tough-cookie": "^2.2.0", + "webidl-conversions": "^3.0.1", + "whatwg-url": "^2.0.1", + "xml-name-validator": ">= 2.0.1 < 3.0.0" + }, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", + "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jspdf": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-2.2.0.tgz", + "integrity": "sha512-kz6blXdM+wQ0vWMDJsa7GW9Ya79DHQBWQL14urVsbr6mk9nsJCSqZuIgE1CPZ78i5Yih2uW4tqOTiLf5xSpT9Q==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "btoa": "^1.2.1", + "canvg": "^3.0.6", + "core-js": "^3.6.0", + "dompurify": "^2.2.0", + "html2canvas": "^1.0.0-rc.5", + "pako": "^1.0.11" + }, + "dependencies": { + "html2canvas": { + "version": "1.0.0-rc.7", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-rc.7.tgz", + "integrity": "sha512-yvPNZGejB2KOyKleZspjK/NruXVQuowu8NnV2HYG7gW7ytzl+umffbtUI62v2dCHQLDdsK6HIDtyJZ0W3neerA==", + "dev": true, + "optional": true, + "requires": { + "css-line-break": "1.1.1" + } + } + } + }, + "jspdf-autotable": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/jspdf-autotable/-/jspdf-autotable-2.0.17.tgz", + "integrity": "sha1-usPRFK4S1E4NeXVjTROZ+GZxbHc=", + "dev": true, + "requires": { + "jspdf": "^1.0.272" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "canvg": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz", + "integrity": "sha512-7Gn2IuQzvUQWPIuZuFHrzsTM0gkPz2RRT9OcbdmA03jeKk8kltrD8gqUzNX15ghY/4PV5bbe5lmD6yDLDY6Ybg==", + "dev": true, + "requires": { + "jsdom": "^8.1.0", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^1.4.1", + "xmldom": "^0.1.22" + }, + "dependencies": { + "stackblur-canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-1.4.1.tgz", + "integrity": "sha1-hJqm+UsnL/JvZHH6QTDtH35HlVs=", + "dev": true + } + } + }, + "css-line-break": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz", + "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=", + "dev": true, + "requires": { + "base64-arraybuffer": "^0.1.5" + } + }, + "file-saver": { + "version": "github:eligrey/FileSaver.js#e865e37af9f9947ddcced76b549e27dc45c1cb2e", + "from": "github:eligrey/FileSaver.js#1.3.8", + "dev": true + }, + "html2canvas": { + "version": "1.0.0-alpha.12", + "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz", + "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=", + "dev": true, + "requires": { + "css-line-break": "1.0.1" + } + }, + "jspdf": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/jspdf/-/jspdf-1.5.3.tgz", + "integrity": "sha512-J9X76xnncMw+wIqb15HeWfPMqPwYxSpPY8yWPJ7rAZN/ZDzFkjCSZObryCyUe8zbrVRNiuCnIeQteCzMn7GnWw==", + "dev": true, + "requires": { + "canvg": "1.5.3", + "file-saver": "github:eligrey/FileSaver.js#1.3.8", + "html2canvas": "1.0.0-alpha.12", + "omggif": "1.0.7", + "promise-polyfill": "8.1.0", + "stackblur-canvas": "2.2.0" + } + }, + "stackblur-canvas": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.2.0.tgz", + "integrity": "sha512-5Gf8dtlf8k6NbLzuly2NkGrkS/Ahh+I5VUjO7TnFizdJtgpfpLLEdQlLe9umbcnZlitU84kfYjXE67xlSXfhfQ==", + "dev": true + } + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jstree": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/jstree/-/jstree-3.3.11.tgz", + "integrity": "sha512-9ZJKroPjCyjb6JLPuAbBrLJKT6pS1f4m5gkwoEagG5oQWtvzm0IiDsntXTxeFtz7AmqrKfij+gLfF9MgWriNxg==", + "dev": true, + "requires": { + "jquery": ">=1.9.1" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", + "dev": true + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "ladda": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ladda/-/ladda-2.0.1.tgz", + "integrity": "sha512-ynRaMdW9y9ABRdTUWa60HSQjtTkoEZMiQDzzYsX8yxIEm7mxL/sxpvoLutYox1XluRif3DxLDg+3Dl1wurjnJg==", + "dev": true, + "requires": { + "spin.js": "^4.0.0" + } + }, + "laravel-mix": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/laravel-mix/-/laravel-mix-5.0.9.tgz", + "integrity": "sha512-1WCJiHimTRW3KlxcabRTco0q+bo4uKPaFTkc6cJ/bLEq4JT1aPkojoauUK7+PyiIlDJncw0Nt2MtDrv5C6j5IQ==", + "dev": true, + "requires": { + "@babel/core": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-transform-runtime": "^7.2.0", + "@babel/preset-env": "^7.2.0", + "@babel/runtime": "^7.2.0", + "autoprefixer": "^9.4.2", + "babel-loader": "^8.0.4", + "babel-merge": "^2.0.1", + "chokidar": "^2.0.3", + "clean-css": "^4.1.3", + "collect.js": "^4.12.8", + "concat": "^1.0.3", + "css-loader": "^1.0.1", + "dotenv": "^6.2.0", + "dotenv-expand": "^4.2.0", + "extract-text-webpack-plugin": "v4.0.0-beta.0", + "file-loader": "^2.0.0", + "friendly-errors-webpack-plugin": "^1.6.1", + "fs-extra": "^7.0.1", + "glob": "^7.1.2", + "html-loader": "^0.5.5", + "imagemin": "^6.0.0", + "img-loader": "^3.0.0", + "lodash": "^4.17.15", + "md5": "^2.2.1", + "optimize-css-assets-webpack-plugin": "^5.0.1", + "postcss-loader": "^3.0.0", + "style-loader": "^0.23.1", + "terser": "^3.11.0", + "terser-webpack-plugin": "^2.2.3", + "vue-loader": "^15.4.2", + "webpack": "^4.36.1", + "webpack-cli": "^3.1.2", + "webpack-dev-server": "^3.1.14", + "webpack-merge": "^4.1.0", + "webpack-notifier": "^1.5.1", + "yargs": "^15.4.1" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "dev": true, + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "loadjs": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.2.0.tgz", + "integrity": "sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "dev": true + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + }, + "dependencies": { + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/markdown/-/markdown-0.5.0.tgz", + "integrity": "sha1-KCBbVlqK51kt4gdGPWY33BgnIrI=", + "dev": true, + "requires": { + "nopt": "~2.1.1" + } + }, + "masonry-layout": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/masonry-layout/-/masonry-layout-4.2.2.tgz", + "integrity": "sha512-iGtAlrpHNyxaR19CvKC3npnEcAwszXoyJiI8ARV2ePi7fmYhIud25MHK8Zx4P0LCC4d3TNO9+rFa1KoK1OEOaA==", + "dev": true, + "requires": { + "get-size": "^2.0.2", + "outlayer": "^2.1.0" + } + }, + "md5": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", + "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", + "dev": true, + "requires": { + "charenc": "0.0.2", + "crypt": "0.0.2", + "is-buffer": "~1.1.6" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "dev": true + }, + "mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", + "dev": true, + "requires": { + "mime-db": "1.45.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "moment": { + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==", + "dev": true + }, + "morris.js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/morris.js/-/morris.js-0.5.0.tgz", + "integrity": "sha1-cldnE1z64Fmq51mZuyzmocXRtEs=", + "dev": true + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "nestable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nestable/-/nestable-0.2.0.tgz", + "integrity": "sha1-m75F5R9hNfw/sIRf32sQFnpwAJw=", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-notifier": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.1.tgz", + "integrity": "sha512-BvEXF+UmsnAfYfoapKM9nGxnP+Wn7P91YfXmrKnfcYCx6VBeoN5Ez5Ogck6I8Bi5k4RlpqRYaw75pAwzX9OphA==", + "dev": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.69", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.69.tgz", + "integrity": "sha512-DGIjo79VDEyAnRlfSqYTsy+yoHd2IOjJiKUozD2MV2D85Vso6Bug56mb9tT/fY5Urt0iqk01H7x+llAruDR2zA==", + "dev": true + }, + "node-sass": { + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", + "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "node-waves": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/node-waves/-/node-waves-0.7.6.tgz", + "integrity": "sha1-8EiQlhkl6Nqrh12ql9FUc053Nf8=", + "dev": true + }, + "nopt": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-2.1.2.tgz", + "integrity": "sha1-bMzZd7gBMqB3MdbozljCyDA8+a8=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "nouislider": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/nouislider/-/nouislider-14.2.0.tgz", + "integrity": "sha512-IeDy8kA3uEtQIS35izyWg9tF0ycNTXvXPxB1SpEAxGGty2MqOIqkyMpOjCqT7Oag99fPRGRGuzHuuemU9+hCmw==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "numeral": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/numeral/-/numeral-2.0.6.tgz", + "integrity": "sha1-StCAk21EPCVhrtnyGX7//iX05QY=", + "dev": true + }, + "nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "dev": true + }, + "object-is": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", + "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", + "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1" + } + }, + "object.omit": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz", + "integrity": "sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==", + "dev": true, + "requires": { + "is-extendable": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", + "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "dev": true + }, + "omggif": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.7.tgz", + "integrity": "sha1-WdLuywJj3oRjWz/riHwMmXPx5J0=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", + "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.4.tgz", + "integrity": "sha512-wqd6FdI2a5/FdoiCNNkEvLeA//lHHfG24Ln2Xm2qqdIk4aOlsR18jwpyOihqQ8849W3qu2DX8fOYxpvTMj+93A==", + "dev": true, + "requires": { + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "outlayer": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/outlayer/-/outlayer-2.1.1.tgz", + "integrity": "sha1-KYY7beEOpdrf/8rfoNcokHOH6aI=", + "dev": true, + "requires": { + "ev-emitter": "^1.0.0", + "fizzy-ui-utils": "^2.0.0", + "get-size": "^2.0.2" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", + "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-pipe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", + "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", + "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pace-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pace-js/-/pace-js-1.0.2.tgz", + "integrity": "sha1-Zzpxf4M8y09DFVMbde5HiDdmAPc=", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parchment": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/parchment/-/parchment-1.1.4.tgz", + "integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==", + "dev": true + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "perfect-scrollbar": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", + "integrity": "sha512-NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "photoswipe": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/photoswipe/-/photoswipe-4.1.3.tgz", + "integrity": "sha512-89Z43IRUyw7ycTolo+AaiDn3W1EEIfox54hERmm9bI12IB9cvRfHSHez3XhAyU8XW2EAFrC+2sKMhh7SJwn0bA==", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "plyr": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/plyr/-/plyr-3.5.10.tgz", + "integrity": "sha512-wbbSuzk3yKVOmYWQUnxG1bxikqZNkxZmL3OjS1DFVU0D2Uko1evGY72LuD9rm/HnNCNzcTuc0c6MCn7bRRpUTA==", + "dev": true, + "requires": { + "core-js": "^3.6.4", + "custom-event-polyfill": "^1.0.7", + "loadjs": "^4.2.0", + "rangetouch": "^2.0.0", + "url-polyfill": "^1.1.8" + } + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "dev": true + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "dev": true, + "optional": true + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "promise-polyfill": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.0.tgz", + "integrity": "sha512-OzSf6gcCUQ01byV4BgwyUCswlaQQ6gzXc23aLQWhicvfX9kfsUiUhgt3CCQej8jDnl8/PhGF31JdHX2/MzF3WA==", + "dev": true + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "pwstrength-bootstrap": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/pwstrength-bootstrap/-/pwstrength-bootstrap-3.0.9.tgz", + "integrity": "sha512-Q99PECtZP0JnlNzaYr74hUtbsI7Jz7h53Ye59fhHlu3TglEfY/Hrf9F23FboudVzSUZ2fWdH/ccZEYmXNAJh1g==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "quill": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/quill/-/quill-1.3.7.tgz", + "integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==", + "dev": true, + "requires": { + "clone": "^2.1.1", + "deep-equal": "^1.0.1", + "eventemitter3": "^2.0.3", + "extend": "^3.0.2", + "parchment": "^1.1.4", + "quill-delta": "^3.6.2" + }, + "dependencies": { + "eventemitter3": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz", + "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo=", + "dev": true + } + } + }, + "quill-delta": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/quill-delta/-/quill-delta-3.6.3.tgz", + "integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==", + "dev": true, + "requires": { + "deep-equal": "^1.0.1", + "extend": "^3.0.2", + "fast-diff": "1.1.2" + } + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dev": true, + "optional": true, + "requires": { + "performance-now": "^2.1.0" + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "rangetouch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/rangetouch/-/rangetouch-2.0.1.tgz", + "integrity": "sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA==", + "dev": true + }, + "raphael": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/raphael/-/raphael-2.3.0.tgz", + "integrity": "sha512-w2yIenZAQnp257XUWGni4bLMVxpUpcIl7qgxEgDIXtmSypYtlNxfXWpOBxs7LBTps5sDwhRnrToJrMUrivqNTQ==", + "dev": true, + "requires": { + "eve-raphael": "0.5.0" + } + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dev": true, + "requires": { + "ast-types": "0.9.6", + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + }, + "dependencies": { + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + } + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", + "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", + "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", + "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", + "dev": true, + "requires": { + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "dependencies": { + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + } + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "resolve-url-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-3.1.2.tgz", + "integrity": "sha512-QEb4A76c8Mi7I3xNKXlRKQSlLBwjUV/ULFMP+G7n3/7tJZ8MG5wsZ3ucxP1Jz8Vevn6fnJsxDx9cIls+utGzPQ==", + "dev": true, + "requires": { + "adjust-sourcemap-loader": "3.0.0", + "camelcase": "5.3.1", + "compose-function": "3.0.3", + "convert-source-map": "1.7.0", + "es6-iterator": "2.0.3", + "loader-utils": "1.2.3", + "postcss": "7.0.21", + "rework": "1.0.1", + "rework-visit": "1.0.0", + "source-map": "0.6.1" + }, + "dependencies": { + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "7.0.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", + "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "rework": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", + "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", + "dev": true, + "requires": { + "convert-source-map": "^0.3.3", + "css": "^2.0.0" + }, + "dependencies": { + "convert-source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-0.3.5.tgz", + "integrity": "sha1-8dgClQr33SYxof6+BZZVDIarMZA=", + "dev": true + } + } + }, + "rework-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rework-visit/-/rework-visit-1.0.0.tgz", + "integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.32.0.tgz", + "integrity": "sha512-fhyqEbMIycQA4blrz/C0pYhv2o4x2y6FYYAH0CshBw3DXh5D5wyERgxw0ptdau1orc/GhNrhF7DFN2etyOCEng==", + "dev": true, + "requires": { + "chokidar": ">=2.0.0 <4.0.0" + } + }, + "sass-graph": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.6.tgz", + "integrity": "sha512-MKuEYXFSGuRSi8FZ3A7imN1CeVn9Gpw0/SFJKdL1ejXJneI9a5rwlEZrKejhEFAA3O6yr3eIyl/WuvASvlT36g==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", + "dev": true + }, + "yargs": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", + "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "5.0.0-security.0" + } + }, + "yargs-parser": { + "version": "5.0.0-security.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", + "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + } + } + }, + "sass-loader": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", + "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", + "dev": true, + "requires": { + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "dev": true + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "select2": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/select2/-/select2-4.0.13.tgz", + "integrity": "sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw==", + "dev": true + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dev": true, + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true + }, + "shepherd.js": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/shepherd.js/-/shepherd.js-7.1.5.tgz", + "integrity": "sha512-Xs9thc5uAQcBdJEJYSOZnEbPia0tKfS89TyNHrqqBEsjWeYm0mMJsCvux9PJA4tfgDOE11NRmXZHA5SXtQkChQ==", + "dev": true, + "requires": { + "@popperjs/core": "^2.3.3", + "smoothscroll-polyfill": "^0.4.4" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + } + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "smartwizard": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/smartwizard/-/smartwizard-4.4.1.tgz", + "integrity": "sha512-tSvrRi+QA3Tha26wwhLUZF/rgyyebzg9nndlG45i66JeI+q0CmpP97W9X6+re6tApB9YSPH3wREf40gt06xPqQ==", + "dev": true + }, + "smoothscroll-polyfill": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/smoothscroll-polyfill/-/smoothscroll-polyfill-0.4.4.tgz", + "integrity": "sha512-TK5ZA9U5RqCwMpfoMq/l1mrH0JAR7y7KRvOBx0n2869aLxch+gT9GhN3yUfjiw+d/DiF1mKo14+hd62JyMmoBg==", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs": { + "version": "0.3.21", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", + "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "dev": true, + "requires": { + "faye-websocket": "^0.11.3", + "uuid": "^3.4.0", + "websocket-driver": "^0.7.4" + } + }, + "sockjs-client": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz", + "integrity": "sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "eventsource": "^1.0.7", + "faye-websocket": "^0.11.3", + "inherits": "^2.0.4", + "json3": "^3.3.3", + "url-parse": "^1.4.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "sortablejs": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz", + "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==", + "dev": true + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "spin.js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/spin.js/-/spin.js-4.1.0.tgz", + "integrity": "sha512-WI8O1OdJlKjialIhB9Z5RfFFM4pI7Hohik76bB3N4Ep3N/vTDPZiRU8QeefyLbmpI5n2bFQXgticl2g+/KiKYA==", + "dev": true + }, + "spinkit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/spinkit/-/spinkit-2.0.1.tgz", + "integrity": "sha512-oYBGY0GV1H1dX+ZdKnB6JVsYC1w/Xl20H111eb+WSS8nUYmlHgGb4y5buFSkzzceEeYYh5kMhXoAmoTpiQauiA==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "ssf": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.11.2.tgz", + "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==", + "dev": true, + "requires": { + "frac": "~1.1.2" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssr-window": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-1.0.1.tgz", + "integrity": "sha512-dgFqB+f00LJTEgb6UXhx0h+SrG50LJvti2yMKMqAgzfUmUXZrLSv2fjULF7AWGwK25EXu8+smLR3jYsJQChPsg==", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", + "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "stackblur-canvas": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-2.4.0.tgz", + "integrity": "sha512-Z+HixfgYV0ss3C342DxPwc+UvN1SYWqoz7Wsi3xEDWEnaBkSCL3Ey21gF4io+WlLm8/RIrSnCrDBIEcH4O+q5Q==", + "dev": true, + "optional": true + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", + "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", + "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", + "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "style-loader": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", + "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "svg-pathdata": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/svg-pathdata/-/svg-pathdata-5.0.5.tgz", + "integrity": "sha512-TAAvLNSE3fEhyl/Da19JWfMAdhSXTYeviXsLSoDT1UM76ADj5ndwAPX1FKQEgB/gFMPavOy6tOqfalXKUiXrow==", + "dev": true, + "optional": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "sweetalert2": { + "version": "9.10.13", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-9.10.13.tgz", + "integrity": "sha512-JiZtO9SQdnS/Uvlqw5MlWpGpYVqH/eBQi7u61+Oxba7ZA4vfX0tSdyzQsiMk56HTUw8Nk8IvNPvfbt3WR3FOsQ==", + "dev": true + }, + "swiper": { + "version": "5.3.8", + "resolved": "https://registry.npmjs.org/swiper/-/swiper-5.3.8.tgz", + "integrity": "sha512-bCxrayTgzC2bZBRuFwAx7T4exWeHqMADBpcuTQ7PNCOIIzJRPqNh4ySIvW06LEEU3Q0KncaNre4hrn+jXcWivQ==", + "dev": true, + "requires": { + "dom7": "^2.1.3", + "ssr-window": "^1.0.1" + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "tableexport.jquery.plugin": { + "version": "1.10.21", + "resolved": "https://registry.npmjs.org/tableexport.jquery.plugin/-/tableexport.jquery.plugin-1.10.21.tgz", + "integrity": "sha512-mLzuFmL1zo1hBjGqdG0Ico92LQOHo7AECHhe+GFyywdTBE6fWX93Ww9pKhWJW3MqzRghJYl4cEGz1a9KjppiUw==", + "dev": true, + "requires": { + "es6-promise": ">=4.2.4", + "file-saver": ">=1.2.0", + "html2canvas": ">=0.5.0-beta4", + "jquery": ">=1.9.1", + "jspdf": ">=1.3.4", + "jspdf-autotable": "2.0.14 || 2.0.17", + "xlsx": ">=0.12.5" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "terser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "terser-webpack-plugin": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", + "integrity": "sha512-/fKw3R+hWyHfYx7Bv6oPqmk4HGQcrWLtV3X6ggvPuwPNHSnzvVV51z6OaaCOus4YLjutYGOz3pEpbhe6Up2s1w==", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.3.1", + "jest-worker": "^25.4.0", + "p-limit": "^2.3.0", + "schema-utils": "^2.6.6", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.6.12", + "webpack-sources": "^1.4.3" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + } + } + }, + "text-mask-addons": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/text-mask-addons/-/text-mask-addons-3.8.0.tgz", + "integrity": "sha1-F7Ye9mWk82gR8uofAaIjtL5hqyY=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "ticky": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ticky/-/ticky-1.0.1.tgz", + "integrity": "sha1-t8+nHnaPHJAAxJe5FRswlHxQ5G0=", + "dev": true + }, + "timepicker": { + "version": "1.13.16", + "resolved": "https://registry.npmjs.org/timepicker/-/timepicker-1.13.16.tgz", + "integrity": "sha512-xNqC4Y5XsEO/Ah18OsjvhR4hBD5v+yRNmo2nsCq5H1Jd8E5MLjkuIba0FFNxlj4Z/oEV3kFPAe+t7C+V0Y4Uhg==", + "dev": true, + "requires": { + "jquery": ">=1.7" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toastr": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/toastr/-/toastr-2.1.4.tgz", + "integrity": "sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE=", + "dev": true, + "requires": { + "jquery": ">=1.12.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typeahead.js": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/typeahead.js/-/typeahead.js-0.11.1.tgz", + "integrity": "sha1-TmTmcbIjEKhgb0rsgFkkuoSwFbg=", + "dev": true, + "requires": { + "jquery": ">=1.7" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + } + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-polyfill": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.12.tgz", + "integrity": "sha512-mYFmBHCapZjtcNHW0MDq9967t+z4Dmg5CJ0KqysK3+ZbyoNOWQHksGCTWwDhxGXllkWlOc10Xfko6v4a3ucM6A==", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "dependencies": { + "es-abstract": { + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", + "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.2", + "is-regex": "^1.1.1", + "object-inspect": "^1.8.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.1", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + } + } + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", + "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vanilla-text-mask": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/vanilla-text-mask/-/vanilla-text-mask-5.1.1.tgz", + "integrity": "sha512-JhjoMbCx3DG4GN/M/j06n1bVLeJPsZ7XelyCx8q87M9d5k3jwuWaY+a+09XBq1uOGQAW8QaWska66hOzXNKiQg==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vegas": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/vegas/-/vegas-2.4.4.tgz", + "integrity": "sha512-EIyoxjcpkAXT3po1aVLe16gAweQQGnQ8TkfAmJMs5OuaQVY2jNrfAgEemuSPh96jWHdNR6XOma9xSwO2epw6Fg==", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-loader": { + "version": "15.9.6", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.6.tgz", + "integrity": "sha512-j0cqiLzwbeImIC6nVIby2o/ABAWhlppyL/m5oJ67R5MloP0hj/DtFgb0Zmq3J9CG7AJ+AXIvHVnJAPBvrLyuDg==", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + } + }, + "vue-style-loader": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", + "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz", + "integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz", + "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", + "dev": true, + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.0.tgz", + "integrity": "sha512-JgQM9JS92ZbFR4P90EvmzNpSGhpPBGBSj10PILeDyYFwp4h2/D9OM03wsJ4zW1fEp4ka2DGrnUeD7FuvQ2aZ2Q==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "optional": true + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "webpack": { + "version": "4.44.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz", + "integrity": "sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.3.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz", + "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + } + }, + "terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + } + } + } + }, + "webpack-cli": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz", + "integrity": "sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.1", + "findup-sync": "^3.0.0", + "global-modules": "^2.0.0", + "import-local": "^2.0.0", + "interpret": "^1.4.0", + "loader-utils": "^1.4.0", + "supports-color": "^6.1.0", + "v8-compile-cache": "^2.1.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "dependencies": { + "mime": { + "version": "2.4.7", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.7.tgz", + "integrity": "sha512-dhNd1uA2u397uQk3Nv5LM4lm93WYDUXFn3Fu291FJerns4jyTudqhIWe4W04YLy7Uk1tm1Ore04NpjRvQp/NPA==", + "dev": true + } + } + }, + "webpack-dev-server": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.1.tgz", + "integrity": "sha512-u4R3mRzZkbxQVa+MBWi2uVpB5W59H3ekZAJsQlKUTdl7Elcah2EhygTPLmeFXybQkf9i2+L0kn7ik9SnXa6ihQ==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.8", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "sockjs-client": "^1.5.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", + "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", + "dev": true + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + }, + "dependencies": { + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + } + } + }, + "webpack-notifier": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/webpack-notifier/-/webpack-notifier-1.12.0.tgz", + "integrity": "sha512-urRnbKupMQHUplsiwsOajp1F1DCJgJ+yyT4HIxAP+TfMF+ZtsKW+kVt2UcDm1E88xutOst+VChJZMDAD3aec5w==", + "dev": true, + "requires": { + "node-notifier": "^8.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "whatwg-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz", + "integrity": "sha1-U5ayBD8CDub3BNnEXqhRnnJN5lk=", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wmf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wmf/-/wmf-1.0.2.tgz", + "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==", + "dev": true + }, + "word": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/word/-/word-0.3.0.tgz", + "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", + "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xlsx": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.16.9.tgz", + "integrity": "sha512-gxi1I3EasYvgCX1vN9pGyq920Ron4NO8PNfhuoA3Hpq6Y8f0ECXiy4OLrK4QZBnj1jx3QD+8Fq5YZ/3mPZ5iXw==", + "dev": true, + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.4", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "fflate": "^0.3.8", + "ssf": "~0.11.2", + "wmf": "~1.0.1", + "word": "~0.3.0" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + } + } + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + }, + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "zone.js": { + "version": "0.8.29", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz", + "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100755 index 0000000..b1df5e7 --- /dev/null +++ b/package.json @@ -0,0 +1,140 @@ +{ + "name": "appwork-laravel-starter", + "version": "1.5.2", + "private": true, + "scripts": { + "dev": "npm run development", + "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js", + "watch": "npm run development -- --watch", + "watch-poll": "npm run watch -- --watch-poll", + "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js", + "prod": "npm run production", + "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" + }, + "devDependencies": { + "@claviska/jquery-minicolors": "~2.3.2", + "@flowjs/flow.js": "~2.14.0", + "@fullcalendar/bootstrap": "~4.4.0", + "@fullcalendar/core": "~4.4.0", + "@fullcalendar/daygrid": "~4.4.0", + "@fullcalendar/interaction": "~4.4.0", + "@fullcalendar/list": "~4.4.0", + "@fullcalendar/timegrid": "~4.4.0", + "@fullcalendar/timeline": "~4.4.0", + "add": "^2.0.6", + "animate.css": "~3.7.0", + "autosize": "~4.0.0", + "block-ui": "~2.70.1", + "blueimp-gallery": "~2.38.0", + "bootbox": "~5.4.0", + "bootstrap": "^4.0.0", + "bootstrap-datepicker": "~1.9.0", + "bootstrap-daterangepicker": "~3.0.2", + "bootstrap-duallistbox": "~3.0.6", + "bootstrap-markdown": "~2.10.0", + "bootstrap-material-datetimepicker": "~2.7.3", + "bootstrap-maxlength": "~1.6.0", + "bootstrap-menu": "~1.0.14", + "bootstrap-select": "~1.13.1", + "bootstrap-slider": "~10.6.1", + "bootstrap-table": "~1.16.0", + "bootstrap-tagsinput": "~0.7.1", + "c3": "~0.7.9", + "chart.js": "~2.9.3", + "chartist": "~0.11.0", + "clipboard": "~2.0.0", + "core-js": "~3.6.4", + "cropper": "~4.1.0", + "cross-env": "~7.0.2", + "custom-event-polyfill": "^1.0.7", + "datatables.net": "~1.10.16", + "datatables.net-bs4": "~1.10.16", + "dragula": "~3.7.2", + "dropzone": "~5.7.0", + "flatpickr": "~4.6.2", + "flot": "~4.2.0", + "gmaps": "~0.4.24", + "jquery": "^3.2", + "jquery-knob": "~1.2.11", + "jquery-mapael": "~2.2.0", + "jquery-sparkline": "~2.4.0", + "jquery-validation": "~1.19.0", + "jquery.growl": "~1.3.5", + "jstree": "~3.3.5", + "ladda": "~2.0.0", + "laravel-mix": "~5.0.0", + "markdown": "~0.5.0", + "masonry-layout": "~4.2.1", + "moment": "~2.24.0", + "morris.js": "~0.5.0", + "nestable": "~0.2.0", + "node-sass": "~4.13.1", + "node-waves": "~0.7.6", + "nouislider": "~14.2.0", + "numeral": "~2.0.6", + "pace-js": "~1.0.2", + "perfect-scrollbar": "~1.5.0", + "photoswipe": "~4.1.2", + "plyr": "~3.5.6", + "popper.js": "^1.12", + "pwstrength-bootstrap": "~3.0.1", + "quill": "~1.3.6", + "raphael": "~2.3.0", + "resolve-url-loader": "~3.1.0", + "sass": "^1.15.2", + "sass-loader": "^8.0.0", + "select2": "~4.0.6-rc.1", + "shepherd.js": "~7.1.0", + "smartwizard": "~4.4.1", + "sortablejs": "~1.10.0", + "spinkit": "~2.0.1", + "sweetalert2": "~9.10.2", + "swiper": "~5.3.0", + "tableexport.jquery.plugin": "~1.10.8", + "text-mask-addons": "~3.8.0", + "timepicker": "~1.13.0", + "toastr": "~2.1.4", + "typeahead.js": "~0.11.1", + "url-polyfill": "^1.1.7", + "vanilla-text-mask": "~5.1.1", + "vegas": "~2.4.0", + "vue-template-compiler": "^2.6.9" + }, + "browserslist": [ + ">= 1%", + "last 2 versions", + "not dead", + "Chrome >= 45", + "Firefox >= 38", + "Edge >= 12", + "Explorer >= 10", + "iOS >= 9", + "Safari >= 9", + "Android >= 4.4", + "Opera >= 30" + ], + "babel": { + "presets": [ + [ + "@babel/env", + { + "targets": { + "browsers": [ + ">= 1%", + "last 2 versions", + "not dead", + "Chrome >= 45", + "Firefox >= 38", + "Edge >= 12", + "Explorer >= 10", + "iOS >= 9", + "Safari >= 9", + "Android >= 4.4", + "Opera >= 30" + ] + } + } + ] + ] + } +} diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 0000000..383f71e --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,30 @@ + + + + + ./tests/Unit + + + + ./tests/Feature + + + + + ./app + + + + + + + + + + + + + diff --git a/public/.htaccess b/public/.htaccess new file mode 100644 index 0000000..b75525b --- /dev/null +++ b/public/.htaccess @@ -0,0 +1,21 @@ + + + Options -MultiViews -Indexes + + + RewriteEngine On + + # Handle Authorization Header + RewriteCond %{HTTP:Authorization} . + RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + + # Redirect Trailing Slashes If Not A Folder... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_URI} (.+)/$ + RewriteRule ^ %1 [L,R=301] + + # Handle Front Controller... + RewriteCond %{REQUEST_FILENAME} !-d + RewriteCond %{REQUEST_FILENAME} !-f + RewriteRule ^ index.php [L] + diff --git a/public/css/application.css b/public/css/application.css new file mode 100644 index 0000000..e6a2ca3 --- /dev/null +++ b/public/css/application.css @@ -0,0 +1,80 @@ + +.alert ul { + margin-bottom: 0; +} +.fa-caret-expand:before { + content: "\f0da"; +} +a[aria-expanded='true'] > .fa-caret-expand:before { + content: "\f0d7"; +} + +.dropzone { + border: 2px dashed; +} + +.card-body { + padding-bottom: 1rem; +} + +.card hr { + border-color: #d6d6de; +} + + +.custom-control.custom-checkbox .custom-control-input:checked ~ .custom-control-label.secondary::before, +.custom-control.custom-radio .custom-control-input:checked ~ .custom-control-label.secondary::before { + border-color: #d7d700; + background-color: #d7d700; +} + +.custom-control-label::before { + border: 1px solid rgba(182, 117, 16, 0.8); +} + +.text-muted { + color: #868686 !important; +} + +@media (min-width: 992px){ + .modal-lg { + max-width: 55rem; + } +} + +@media (min-width: 768px) { + .modal-xl { + width: 90%; + max-width:75rem; + } +} + +.text-match{ + color:#295B28; +} + +.sidenav-vertical .sidenav-menu { + padding-top: 0.225rem; + padding-bottom: 0.225rem; +} + +.sidenav-vertical .sidenav-menu .sidenav-link { + padding-top: 0.525rem; + padding-bottom: 0.525rem; +} + +.form-control.has-error .form-control { + border: 1px solid #ea8e49; +} + +.form-group.has-error .form-control { + border: 1px solid #ea8e49; +} + +.has-error .help-block{ + color: #a94442; +} + +.no-line-break { + white-space: nowrap; +} \ No newline at end of file diff --git a/public/css/cookieconsent.min.css b/public/css/cookieconsent.min.css new file mode 100755 index 0000000..820b31a --- /dev/null +++ b/public/css/cookieconsent.min.css @@ -0,0 +1,6 @@ +.cc-window{opacity:1;transition:opacity 1s ease}.cc-window.cc-invisible{opacity:0}.cc-animate.cc-revoke{transition:transform 1s ease}.cc-animate.cc-revoke.cc-top{transform:translateY(-2em)}.cc-animate.cc-revoke.cc-bottom{transform:translateY(2em)}.cc-animate.cc-revoke.cc-active.cc-bottom,.cc-animate.cc-revoke.cc-active.cc-top,.cc-revoke:hover{transform:translateY(0)}.cc-grower{max-height:0;overflow:hidden;transition:max-height 1s} +.cc-link,.cc-revoke:hover{text-decoration:underline}.cc-revoke,.cc-window{position:fixed;overflow:hidden;box-sizing:border-box;font-family:Helvetica,Calibri,Arial,sans-serif;font-size:16px;line-height:1.5em;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;z-index:9999}.cc-window.cc-static{position:static}.cc-window.cc-floating{padding:2em;max-width:24em;-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner{padding:1em 1.8em;width:100%;-ms-flex-direction:row;flex-direction:row}.cc-revoke{padding:.5em}.cc-header{font-size:18px;font-weight:700}.cc-btn,.cc-close,.cc-link,.cc-revoke{cursor:pointer}.cc-link{opacity:.8;display:inline-block;padding:.2em}.cc-link:hover{opacity:1}.cc-link:active,.cc-link:visited{color:initial}.cc-btn{display:block;padding:.4em .8em;font-size:.9em;font-weight:700;border-width:2px;border-style:solid;text-align:center;white-space:nowrap}.cc-highlight .cc-btn:first-child{background-color:transparent;border-color:transparent}.cc-highlight .cc-btn:first-child:focus,.cc-highlight .cc-btn:first-child:hover{background-color:transparent;text-decoration:underline}.cc-close{display:block;position:absolute;top:.5em;right:.5em;font-size:1.6em;opacity:.9;line-height:.75}.cc-close:focus,.cc-close:hover{opacity:1} +.cc-revoke.cc-top{top:0;left:3em;border-bottom-left-radius:.5em;border-bottom-right-radius:.5em}.cc-revoke.cc-bottom{bottom:0;left:3em;border-top-left-radius:.5em;border-top-right-radius:.5em}.cc-revoke.cc-left{left:3em;right:unset}.cc-revoke.cc-right{right:3em;left:unset}.cc-top{top:1em}.cc-left{left:1em}.cc-right{right:1em}.cc-bottom{bottom:1em}.cc-floating>.cc-link{margin-bottom:1em}.cc-floating .cc-message{display:block;margin-bottom:1em}.cc-window.cc-floating .cc-compliance{-ms-flex:1 0 auto;flex:1 0 auto}.cc-window.cc-banner{-ms-flex-align:center;align-items:center}.cc-banner.cc-top{left:0;right:0;top:0}.cc-banner.cc-bottom{left:0;right:0;bottom:0}.cc-banner .cc-message{display:block;-ms-flex:1 1 auto;flex:1 1 auto;max-width:100%;margin-right:1em}.cc-compliance{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-line-pack:justify;align-content:space-between}.cc-floating .cc-compliance>.cc-btn{-ms-flex:1;flex:1}.cc-btn+.cc-btn{margin-left:.5em} +@media print{.cc-revoke,.cc-window{display:none}}@media screen and (max-width:900px){.cc-btn{white-space:normal}}@media screen and (max-width:414px) and (orientation:portrait),screen and (max-width:736px) and (orientation:landscape){.cc-window.cc-top{top:0}.cc-window.cc-bottom{bottom:0}.cc-window.cc-banner,.cc-window.cc-floating,.cc-window.cc-left,.cc-window.cc-right{left:0;right:0}.cc-window.cc-banner{-ms-flex-direction:column;flex-direction:column}.cc-window.cc-banner .cc-compliance{-ms-flex:1 1 auto;flex:1 1 auto}.cc-window.cc-floating{max-width:none}.cc-window .cc-message{margin-bottom:1em}.cc-window.cc-banner{-ms-flex-align:unset;align-items:unset}.cc-window.cc-banner .cc-message{margin-right:0}} +.cc-floating.cc-theme-classic{padding:1.2em;border-radius:5px}.cc-floating.cc-type-info.cc-theme-classic .cc-compliance{text-align:center;display:inline;-ms-flex:none;flex:none}.cc-theme-classic .cc-btn{border-radius:5px}.cc-theme-classic .cc-btn:last-child{min-width:140px}.cc-floating.cc-type-info.cc-theme-classic .cc-btn{display:inline-block} +.cc-theme-edgeless.cc-window{padding:0}.cc-floating.cc-theme-edgeless .cc-message{margin:2em 2em 1.5em}.cc-banner.cc-theme-edgeless .cc-btn{margin:0;padding:.8em 1.8em;height:100%}.cc-banner.cc-theme-edgeless .cc-message{margin-left:1em}.cc-floating.cc-theme-edgeless .cc-btn+.cc-btn{margin-left:0} \ No newline at end of file diff --git a/public/css/custom-forms-v2.css b/public/css/custom-forms-v2.css new file mode 100755 index 0000000..5a7c29e --- /dev/null +++ b/public/css/custom-forms-v2.css @@ -0,0 +1,311 @@ +/** CUSTOM FORM ELEMENTS [OPTIONAL] + + This CSS file must be included after all other CSS's. + Nothing special - will only rewrite the form elements (input, textarea, select2, buttons) + to look more clean, professional. + **************************************************************** **/ + + + /** CUSTOM : FORM ELEMENTS + *************************** **/ +.btn:not(.btn-xs):not(.btn-sm):not(.btn-md):not(.btn-lg):not(.btn-xlg):not(.btn-reveal):not(.btn-3d):not(.btn-social):not(.btn-v1) { + height:auto; + padding: 14px 20px; +} +#footer .btn { + padding: 6px 12px; +} +#footer.footer-light input { + color: #121212 !important; +} + + +input.form-control, +select.form-control, +textarea.form-control { + height: auto; + color: #121212; + background-color: #fff; + border-color: #dee5ed; + width: 100%; + + border-width:1px; + font-size: 15px; + line-height: 15px; + padding: 14px 20px; + border-radius: 3px; + margin-bottom: 15px; + outline: none; + -webkit-appearance: none; + + -webkit-transition: all .300s; + -moz-transition: all .300s; + -o-transition: all .300s; + transition: all .300s; +} +form .row input.form-control, +form .row select.form-control, +form .row textarea.form-control { + margin-bottom: 0; +} + +@media only screen and (max-width: 768px) { /* mobile fix */ + input.form-control, + select.form-control, + textarea.form-control { + line-height: 22px; + } +} + +/* label spacing fix */ +form label { + margin-top:15px; +} +#topBar form label, +#header form label, +#footer form label, +form div.form-group label { + margin-top:0; +} + + + +input.form-control:hover, +select.form-control:hover, +textarea.form-control:hover { + background-color: #fafafa !important; +} + + section.dark input.form-control:hover, + section.dark select.form-control:hover, + section.dark textarea.form-control:hover { + background-color: #1c2125 !important; + } + +section.dark .select2-container .select2-selection--single .select2-selection__rendered, +section.dark input.form-control, +section.dark select.form-control, +section.dark textarea.form-control { + color: #ffffff; + background-color: #272e33 ; + border-color: #272e33; +} + +section.dark input::placeholder, +section.dark select::placeholder, +section.dark textarea::placeholder { + color: #a3a9b0 !important; + } + + /* textarea */ + textarea.form-control { + min-height:100px; + } + + /* normal select */ + select.form-control:not([size]):not([multiple]) { + height: 50px; + -webkit-appearance:none; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAMAAADNLv/0AAAANlBMVEUAAAD///+ZmZmfoqiaoKydo6ueo6ucpKqdo6qdoqqeoqqdo6qdoqqdo6qco6mdo6qcoqmdo6rJSltEAAAAEHRSTlMAAQVSU5Wmrbe+1NXf5f7+fUgvXAAAAC5JREFUeNodxkkCABAMBMEhiDX4/2fJ9KULLYHlhW5C3YIwvikgThOK3kcddPU9JQ4BFWtk/ScAAAAASUVORK5CYII=) no-repeat; + background-position: center right 20px; + background-color: #fff; + color:#a3a9b0; + } + section.dark select.form-control:not([size]):not([multiple]) { + background: #272e33 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAMAAADNLv/0AAAANlBMVEUAAAD///+ZmZmfoqiaoKydo6ueo6ucpKqdo6qdoqqeoqqdo6qdoqqdo6qco6mdo6qcoqmdo6rJSltEAAAAEHRSTlMAAQVSU5Wmrbe+1NXf5f7+fUgvXAAAAC5JREFUeNodxkkCABAMBMEhiDX4/2fJ9KULLYHlhW5C3YIwvikgThOK3kcddPU9JQ4BFWtk/ScAAAAASUVORK5CYII=) 15px center no-repeat; + background-position: center right 20px; + color:# c9c9c9; + } + + +/* SELECT2 CUSTOM */ +.select2 { + position: relative; +} +.select2-container--default .select2-selection--single { + border: none; + background-color: #fff; +} +.select2-container { + width: 100% !important; + max-width: 100% !important; + font-size: 16px; + height: auto; + margin-bottom: 15px; +} +form .row .select2-container { + margin-bottom: 0; +} +@media (min-width: 64em) { + .select2-container.select2-container--open { + max-width: 393px !important; + } +} +.select2-container .select2-selection--single { + height: auto; + margin: 0; + outline: none; +} +.select2-container .select2-selection--single .select2-selection__rendered { + font-size: 16px; + max-width: 100%; + padding: 16px 20px; + border-radius: 3px; + border-style: solid; + border-width: 1px; + border-color: #dee5ed; + resize: none; + line-height: 1; + outline: none; + color: #a3a9b0; + text-align: left; + margin: 0; + height: 50px; +} +.select2-container .select2-selection--single .select2-selection__rendered:after { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAMAAADNLv/0AAAANlBMVEUAAAD///+ZmZmfoqiaoKydo6ueo6ucpKqdo6qdoqqeoqqdo6qdoqqdo6qco6mdo6qcoqmdo6rJSltEAAAAEHRSTlMAAQVSU5Wmrbe+1NXf5f7+fUgvXAAAAC5JREFUeNodxkkCABAMBMEhiDX4/2fJ9KULLYHlhW5C3YIwvikgThOK3kcddPU9JQ4BFWtk/ScAAAAASUVORK5CYII=) 0 center no-repeat; + width: 20px; +} +.select2-container .select2-results .select2-results__options { + width: 100%; + text-align: left; + font-size: 16px; +} +.select2-container .select2-results .select2-results__options .select2-results__option.select2-results__option--highlighted[aria-selected] { + background-color: #ccc; +} +section.dark .select2-container .select2-selection--single .select2-selection__rendered { + background-color: #272e33; + border-color: #272e33; + color: #a3a9b0; +} +section.dark .select2-container .select2-selection--single .select2-selection__rendered, +.select2-container .select2-selection--single .select2-selection__rendered { + -webkit-transition: all .300s; + -moz-transition: all .300s; + -o-transition: all .300s; + transition: all .300s; +} +.select2-container .select2-selection--single .select2-selection__rendered:hover { + background-color: #fafafa; +} +section.dark .select2-container .select2-selection--single .select2-selection__rendered:hover { + background-color: #1c2125; +} +section.dark .select2-container .select2-selection--single .select2-selection__rendered:focus { + border-color: #c1d120; +} +section.dark .select2-container .select2-results .select2-results__options { + border-color: #a3a9b0; +} +section.dark .select2-container .select2-results .select2-results__options .select2-results__option { + background-color: #272e33; + color: #a3a9b0; +} +section.dark .select2-container .select2-results .select2-results__options .select2-results__option.select2-results__option--highlighted[aria-selected] { + background-color: #333a3f; +} +.select2-container--default .select2-selection--single .select2-selection__arrow { + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAGCAMAAADNLv/0AAAANlBMVEUAAAD///+ZmZmfoqiaoKydo6ueo6ucpKqdo6qdoqqeoqqdo6qdoqqdo6qco6mdo6qcoqmdo6rJSltEAAAAEHRSTlMAAQVSU5Wmrbe+1NXf5f7+fUgvXAAAAC5JREFUeNodxkkCABAMBMEhiDX4/2fJ9KULLYHlhW5C3YIwvikgThOK3kcddPU9JQ4BFWtk/ScAAAAASUVORK5CYII=) 0 center no-repeat; + width: 20px; + height: 20px; + right: 12px; + top: 50%; + margin-top: -9px; +} +.select2-container--default .select2-selection--single .select2-selection__arrow b { + display: none; +} +.select2-results__option { + padding-left: 20px; + padding-right: 20px; +} +.select2-container.select2-container--open { + max-width: 100% !important; +} +section.dark .select2-dropdown { + border: 0; +} +.select2-dropdown { + border-color: #dee5ed; + border-width:1px; +} +.select2-container--focus { + outline: 1px solid transparent; + z-index: 102; +} +/* search field */ +.select2-container--default .select2-search--dropdown .select2-search__field { + padding: 6px !important; + border-radius: 0; + -webkit-border-radius: 0; +} +/* optgroup */ +.select2-container--default .select2-results__group { + font-size:14px; + border-top: #eaeaea 1px solid; + padding-left: 17px; + padding-right: 17px; +} + + + +/* FANCY FORM */ +.fancy-file-upload { + height: auto; +} +.fancy-file-upload>span.button { + height: 41px; + line-height: 41px; +} +.fancy-file-upload>i { + top: 4px; +} + + + +/* MISC */ +@media only screen and (max-width: 768px) { + form .row { + margin-bottom:0 !important; + } + form .row>div { + margin-bottom:15px !important; + display: block; + } + + form .row>div>.row>div:last-child { + margin-bottom: 0 !important; + } +} + + + + +/** RTL + Add .rtl class to body + *************************** **/ +/* forms */ +body.rtl .select2-container .select2-results .select2-results__options, +body.rtl .select2-container .select2-selection--single .select2-selection__rendered { + text-align: right !important; +} +body.rtl .select2-container--default .select2-selection--single .select2-selection__arrow { + left:15px; +} +body.rtl .select2-results__option, +body.rtl .select2-container .select2-selection--single .select2-selection__rendered { + padding-left:20px; + padding-right: 20px; +} +body.rtl input, body.rtl select, body.rtl textarea { + text-align:right !important; +} + +/* normal select */ +body.rtl select.form-control:not([size]):not([multiple]) { + background-position: center left 15px; +} +body.rtl section.dark select.form-control:not([size]):not([multiple]) { + background-position: center left 15px; +} \ No newline at end of file diff --git a/public/download/mivita_widerruf_formular.pdf b/public/download/mivita_widerruf_formular.pdf new file mode 100644 index 0000000..5179280 Binary files /dev/null and b/public/download/mivita_widerruf_formular.pdf differ diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..e69de29 diff --git a/public/images/back.jpg b/public/images/back.jpg new file mode 100644 index 0000000..2108536 Binary files /dev/null and b/public/images/back.jpg differ diff --git a/public/images/de.png b/public/images/de.png new file mode 100644 index 0000000..7765b0e Binary files /dev/null and b/public/images/de.png differ diff --git a/public/images/en.png b/public/images/en.png new file mode 100644 index 0000000..8e8c885 Binary files /dev/null and b/public/images/en.png differ diff --git a/public/images/flaggen.psd b/public/images/flaggen.psd new file mode 100644 index 0000000..b4bf282 Binary files /dev/null and b/public/images/flaggen.psd differ diff --git a/public/images/fr.png b/public/images/fr.png new file mode 100644 index 0000000..b0b7f03 Binary files /dev/null and b/public/images/fr.png differ diff --git a/public/images/gruene-seele-logo.jpg b/public/images/gruene-seele-logo.jpg new file mode 100644 index 0000000..6231aa4 Binary files /dev/null and b/public/images/gruene-seele-logo.jpg differ diff --git a/public/images/jquery.minicolors.png b/public/images/jquery.minicolors.png new file mode 100644 index 0000000..bccc201 Binary files /dev/null and b/public/images/jquery.minicolors.png differ diff --git a/public/images/logo_mivita.png b/public/images/logo_mivita.png new file mode 100644 index 0000000..44d3619 Binary files /dev/null and b/public/images/logo_mivita.png differ diff --git a/public/images/nl.png b/public/images/nl.png new file mode 100644 index 0000000..ad8d44a Binary files /dev/null and b/public/images/nl.png differ diff --git a/public/images/payments-assets/creditcard.png b/public/images/payments-assets/creditcard.png new file mode 100644 index 0000000..53a590f Binary files /dev/null and b/public/images/payments-assets/creditcard.png differ diff --git a/public/images/payments-assets/fnc.png b/public/images/payments-assets/fnc.png new file mode 100644 index 0000000..d858a43 Binary files /dev/null and b/public/images/payments-assets/fnc.png differ diff --git a/public/images/payments-assets/paypal.png b/public/images/payments-assets/paypal.png new file mode 100644 index 0000000..7722f3f Binary files /dev/null and b/public/images/payments-assets/paypal.png differ diff --git a/public/images/payments-assets/sepa.png b/public/images/payments-assets/sepa.png new file mode 100644 index 0000000..cfb7e34 Binary files /dev/null and b/public/images/payments-assets/sepa.png differ diff --git a/public/images/payments-assets/sofort.png b/public/images/payments-assets/sofort.png new file mode 100644 index 0000000..ec60c6f Binary files /dev/null and b/public/images/payments-assets/sofort.png differ diff --git a/public/images/payments-assets/vor.png b/public/images/payments-assets/vor.png new file mode 100644 index 0000000..f73551f Binary files /dev/null and b/public/images/payments-assets/vor.png differ diff --git a/public/images/payments.psd b/public/images/payments.psd new file mode 100644 index 0000000..fc0d283 Binary files /dev/null and b/public/images/payments.psd differ diff --git a/public/images/vendor/blueimp-gallery/error.png b/public/images/vendor/blueimp-gallery/error.png new file mode 100644 index 0000000..a5577c3 Binary files /dev/null and b/public/images/vendor/blueimp-gallery/error.png differ diff --git a/public/images/vendor/blueimp-gallery/error.svg b/public/images/vendor/blueimp-gallery/error.svg new file mode 100644 index 0000000..184206a --- /dev/null +++ b/public/images/vendor/blueimp-gallery/error.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/vendor/blueimp-gallery/loading.gif b/public/images/vendor/blueimp-gallery/loading.gif new file mode 100644 index 0000000..90f28cb Binary files /dev/null and b/public/images/vendor/blueimp-gallery/loading.gif differ diff --git a/public/images/vendor/blueimp-gallery/play-pause.png b/public/images/vendor/blueimp-gallery/play-pause.png new file mode 100644 index 0000000..ece6cfb Binary files /dev/null and b/public/images/vendor/blueimp-gallery/play-pause.png differ diff --git a/public/images/vendor/blueimp-gallery/play-pause.svg b/public/images/vendor/blueimp-gallery/play-pause.svg new file mode 100644 index 0000000..a7f1f50 --- /dev/null +++ b/public/images/vendor/blueimp-gallery/play-pause.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/public/images/vendor/blueimp-gallery/video-play.png b/public/images/vendor/blueimp-gallery/video-play.png new file mode 100644 index 0000000..353e3a5 Binary files /dev/null and b/public/images/vendor/blueimp-gallery/video-play.png differ diff --git a/public/images/vendor/blueimp-gallery/video-play.svg b/public/images/vendor/blueimp-gallery/video-play.svg new file mode 100644 index 0000000..b5ea206 --- /dev/null +++ b/public/images/vendor/blueimp-gallery/video-play.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/public/images/vendor/jstree/dist/themes/default-dark/32px.png b/public/images/vendor/jstree/dist/themes/default-dark/32px.png new file mode 100644 index 0000000..6039572 Binary files /dev/null and b/public/images/vendor/jstree/dist/themes/default-dark/32px.png differ diff --git a/public/images/vendor/jstree/dist/themes/default-dark/40px.png b/public/images/vendor/jstree/dist/themes/default-dark/40px.png new file mode 100644 index 0000000..aae89ad Binary files /dev/null and b/public/images/vendor/jstree/dist/themes/default-dark/40px.png differ diff --git a/public/images/vendor/jstree/dist/themes/default-dark/throbber.gif b/public/images/vendor/jstree/dist/themes/default-dark/throbber.gif new file mode 100644 index 0000000..169062c Binary files /dev/null and b/public/images/vendor/jstree/dist/themes/default-dark/throbber.gif differ diff --git a/public/images/vendor/jstree/dist/themes/default/32px.png b/public/images/vendor/jstree/dist/themes/default/32px.png new file mode 100644 index 0000000..ca6af20 Binary files /dev/null and b/public/images/vendor/jstree/dist/themes/default/32px.png differ diff --git a/public/images/vendor/jstree/dist/themes/default/40px.png b/public/images/vendor/jstree/dist/themes/default/40px.png new file mode 100644 index 0000000..2a3fcb9 Binary files /dev/null and b/public/images/vendor/jstree/dist/themes/default/40px.png differ diff --git a/public/images/vendor/jstree/dist/themes/default/throbber.gif b/public/images/vendor/jstree/dist/themes/default/throbber.gif new file mode 100644 index 0000000..cf06c1a Binary files /dev/null and b/public/images/vendor/jstree/dist/themes/default/throbber.gif differ diff --git a/public/images/vendor/photoswipe/dist/default-skin/default-skin.png b/public/images/vendor/photoswipe/dist/default-skin/default-skin.png new file mode 100644 index 0000000..441c502 Binary files /dev/null and b/public/images/vendor/photoswipe/dist/default-skin/default-skin.png differ diff --git a/public/images/vendor/photoswipe/dist/default-skin/default-skin.svg b/public/images/vendor/photoswipe/dist/default-skin/default-skin.svg new file mode 100644 index 0000000..9d5f0c6 --- /dev/null +++ b/public/images/vendor/photoswipe/dist/default-skin/default-skin.svg @@ -0,0 +1 @@ +default-skin 2 \ No newline at end of file diff --git a/public/images/vendor/photoswipe/dist/default-skin/preloader.gif b/public/images/vendor/photoswipe/dist/default-skin/preloader.gif new file mode 100644 index 0000000..b8faa69 Binary files /dev/null and b/public/images/vendor/photoswipe/dist/default-skin/preloader.gif differ diff --git a/public/images/vendor/vegas/dist/overlays/02.png b/public/images/vendor/vegas/dist/overlays/02.png new file mode 100644 index 0000000..7073301 Binary files /dev/null and b/public/images/vendor/vegas/dist/overlays/02.png differ diff --git a/public/index.php b/public/index.php new file mode 100644 index 0000000..4584cbc --- /dev/null +++ b/public/index.php @@ -0,0 +1,60 @@ + + */ + +define('LARAVEL_START', microtime(true)); + +/* +|-------------------------------------------------------------------------- +| Register The Auto Loader +|-------------------------------------------------------------------------- +| +| Composer provides a convenient, automatically generated class loader for +| our application. We just need to utilize it! We'll simply require it +| into the script here so that we don't have to worry about manual +| loading any of our classes later on. It feels great to relax. +| +*/ + +require __DIR__.'/../vendor/autoload.php'; + +/* +|-------------------------------------------------------------------------- +| Turn On The Lights +|-------------------------------------------------------------------------- +| +| We need to illuminate PHP development, so let us turn on the lights. +| This bootstraps the framework and gets it ready for use, then it +| will load up this application so that we can run it and send +| the responses back to the browser and delight our users. +| +*/ + +$app = require_once __DIR__.'/../bootstrap/app.php'; + +/* +|-------------------------------------------------------------------------- +| Run The Application +|-------------------------------------------------------------------------- +| +| Once we have the application, we can handle the incoming request +| through the kernel, and send the associated response back to +| the client's browser allowing them to enjoy the creative +| and wonderful application we have prepared for them. +| +*/ + +$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); + +$response = $kernel->handle( + $request = Illuminate\Http\Request::capture() +); + +$response->send(); + +$kernel->terminate($request, $response); diff --git a/public/js/German.json b/public/js/German.json new file mode 100644 index 0000000..5e3753a --- /dev/null +++ b/public/js/German.json @@ -0,0 +1,25 @@ + + +{ + "sEmptyTable": "Keine Daten in der Tabelle vorhanden", + "sInfo": "_START_ bis _END_ von _TOTAL_ Einträgen", + "sInfoEmpty": "0 bis 0 von 0 Einträgen", + "sInfoFiltered": "(gefiltert von _MAX_ Einträgen)", + "sInfoPostFix": "", + "sInfoThousands": ".", + "sLengthMenu": "_MENU_ Einträge anzeigen", + "sLoadingRecords": "Wird geladen...", + "sProcessing": "Bitte warten...", + "sSearch": "Suchen", + "sZeroRecords": "Keine Einträge vorhanden.", + "oPaginate": { + "sFirst": "Erste", + "sPrevious": "Zurück", + "sNext": "Nächste", + "sLast": "Letzte" + }, + "oAria": { + "sSortAscending": ": aktivieren, um Spalte aufsteigend zu sortieren", + "sSortDescending": ": aktivieren, um Spalte absteigend zu sortieren" + } +} diff --git a/public/js/application.js b/public/js/application.js new file mode 100644 index 0000000..99e1af6 --- /dev/null +++ b/public/js/application.js @@ -0,0 +1,179 @@ +(function(e, a) { for(var i in a) e[i] = a[i]; }(window, /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = "/"; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 119); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./resources/assets/js/application.js": +/*!********************************************!*\ + !*** ./resources/assets/js/application.js ***! + \********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./bootstrap */ "./resources/assets/js/bootstrap.js"); + +/***/ }), + +/***/ "./resources/assets/js/bootstrap.js": +/*!******************************************!*\ + !*** ./resources/assets/js/bootstrap.js ***! + \******************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// Auto update layout +if (window.layoutHelpers) { + window.layoutHelpers.setAutoUpdate(true); +} + +$(function () { + // Initialize sidenav + $('#layout-sidenav').each(function () { + new SideNav(this, { + orientation: $(this).hasClass('sidenav-horizontal') ? 'horizontal' : 'vertical' + }); + }); // Initialize sidenav togglers + + $('body').on('click', '.layout-sidenav-toggle', function (e) { + e.preventDefault(); + window.layoutHelpers.toggleCollapsed(); + }); // Swap dropdown menus in RTL mode + + if ($('html').attr('dir') === 'rtl') { + $('#layout-navbar .dropdown-menu').toggleClass('dropdown-menu-right'); + } +}); +/** + * We'll load the axios HTTP library which allows us to easily issue requests + * to our Laravel back-end. This library automatically handles sending the + * CSRF token as a header based on the value of the "XSRF" token cookie. + */ +// window.axios = require('axios'); +// +// window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; + +/** + * Next we will register the CSRF Token as a common header with Axios so that + * all outgoing HTTP requests automatically have it attached. This is just + * a simple convenience so we don't have to attach every token manually. + */ +// let token = document.head.querySelector('meta[name="csrf-token"]'); +// +// if (token) { +// window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content; +// } else { +// console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token'); +// } + +/** + * Echo exposes an expressive API for subscribing to channels and listening + * for events that are broadcast by Laravel. Echo and event broadcasting + * allows your team to easily build robust real-time web applications. + */ +// import Echo from 'laravel-echo' +// window.Pusher = require('pusher-js'); +// window.Echo = new Echo({ +// broadcaster: 'pusher', +// key: process.env.MIX_PUSHER_APP_KEY, +// cluster: process.env.MIX_PUSHER_APP_CLUSTER, +// encrypted: true +// }); + +/***/ }), + +/***/ 119: +/*!**************************************************!*\ + !*** multi ./resources/assets/js/application.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! /Volumes/Websites/partner.gruene-seele.bio/resources/assets/js/application.js */"./resources/assets/js/application.js"); + + +/***/ }) + +/******/ }))); \ No newline at end of file diff --git a/public/js/bootstrap-datepicker.de.min.js b/public/js/bootstrap-datepicker.de.min.js new file mode 100755 index 0000000..c63bcf0 --- /dev/null +++ b/public/js/bootstrap-datepicker.de.min.js @@ -0,0 +1 @@ +!function(a){a.fn.datepicker.dates.de={days:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],daysShort:["Son","Mon","Die","Mit","Don","Fre","Sam"],daysMin:["So","Mo","Di","Mi","Do","Fr","Sa"],months:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthsShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],today:"Heute",clear:"Löschen",weekStart:1,format:"dd.mm.yyyy"}}(jQuery); \ No newline at end of file diff --git a/public/js/cookieconsent.min.js b/public/js/cookieconsent.min.js new file mode 100755 index 0000000..c12df1a --- /dev/null +++ b/public/js/cookieconsent.min.js @@ -0,0 +1 @@ +!function(e){if(!e.hasInitialised){var t={escapeRegExp:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},hasClass:function(e,t){var i=" ";return 1===e.nodeType&&(i+e.className+i).replace(/[\n\t]/g,i).indexOf(i+t+i)>=0},addClass:function(e,t){e.className+=" "+t},removeClass:function(e,t){var i=new RegExp("\\b"+this.escapeRegExp(t)+"\\b");e.className=e.className.replace(i,"")},interpolateString:function(e,t){var i=/{{([a-z][a-z0-9\-_]*)}}/gi;return e.replace(i,function(e){return t(arguments[1])||""})},getCookie:function(e){var t="; "+document.cookie,i=t.split("; "+e+"=");return i.length<2?void 0:i.pop().split(";").shift()},setCookie:function(e,t,i,n,o,s){var r=new Date;r.setDate(r.getDate()+(i||365));var a=[e+"="+t,"expires="+r.toUTCString(),"path="+(o||"/")];n&&a.push("domain="+n),s&&a.push("secure"),document.cookie=a.join(";")},deepExtend:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(i in e&&this.isPlainObject(e[i])&&this.isPlainObject(t[i])?this.deepExtend(e[i],t[i]):e[i]=t[i]);return e},throttle:function(e,t){var i=!1;return function(){i||(e.apply(this,arguments),i=!0,setTimeout(function(){i=!1},t))}},hash:function(e){var t,i,n,o=0;if(0===e.length)return o;for(t=0,n=e.length;t=128?"#000":"#fff"},getLuminance:function(e){var t=parseInt(this.normaliseHex(e),16),i=38,n=(t>>16)+i,o=(t>>8&255)+i,s=(255&t)+i,r=(16777216+65536*(n<255?n<1?0:n:255)+256*(o<255?o<1?0:o:255)+(s<255?s<1?0:s:255)).toString(16).slice(1);return"#"+r},isMobile:function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},isPlainObject:function(e){return"object"==typeof e&&null!==e&&e.constructor==Object},traverseDOMPath:function(e,i){return e&&e.parentNode?t.hasClass(e,i)?e:this.traverseDOMPath(e.parentNode,i):null}};e.status={deny:"deny",allow:"allow",dismiss:"dismiss"},e.transitionEnd=function(){var e=document.createElement("div"),t={t:"transitionend",OT:"oTransitionEnd",msT:"MSTransitionEnd",MozT:"transitionend",WebkitT:"webkitTransitionEnd"};for(var i in t)if(t.hasOwnProperty(i)&&"undefined"!=typeof e.style[i+"ransition"])return t[i];return""}(),e.hasTransition=!!e.transitionEnd;var i=Object.keys(e.status).map(t.escapeRegExp);e.customStyles={},e.Popup=function(){function n(){this.initialise.apply(this,arguments)}function o(e){this.openingTimeout=null,t.removeClass(e,"cc-invisible")}function s(t){t.style.display="none",t.removeEventListener(e.transitionEnd,this.afterTransition),this.afterTransition=null}function r(){var t=this.options.onInitialise.bind(this);if(!window.navigator.cookieEnabled)return t(e.status.deny),!0;if(window.CookiesOK||window.navigator.CookiesOK)return t(e.status.allow),!0;var i=Object.keys(e.status),n=this.getStatus(),o=i.indexOf(n)>=0;return o&&t(n),o}function a(){var e=this.options.position.split("-"),t=[];return e.forEach(function(e){t.push("cc-"+e)}),t}function c(){var e=this.options,i="top"==e.position||"bottom"==e.position?"banner":"floating";t.isMobile()&&(i="floating");var n=["cc-"+i,"cc-type-"+e.type,"cc-theme-"+e.theme];e["static"]&&n.push("cc-static"),n.push.apply(n,a.call(this));p.call(this,this.options.palette);return this.customStyleSelector&&n.push(this.customStyleSelector),n}function l(){var e={},i=this.options;i.showLink||(i.elements.link="",i.elements.messagelink=i.elements.message),Object.keys(i.elements).forEach(function(n){e[n]=t.interpolateString(i.elements[n],function(e){var t=i.content[e];return e&&"string"==typeof t&&t.length?t:""})});var n=i.compliance[i.type];n||(n=i.compliance.info),e.compliance=t.interpolateString(n,function(t){return e[t]});var o=i.layouts[i.layout];return o||(o=i.layouts.basic),t.interpolateString(o,function(t){return e[t]})}function u(i){var n=this.options,o=document.createElement("div"),s=n.container&&1===n.container.nodeType?n.container:document.body;o.innerHTML=i;var r=o.children[0];return r.style.display="none",t.hasClass(r,"cc-window")&&e.hasTransition&&t.addClass(r,"cc-invisible"),this.onButtonClick=h.bind(this),r.addEventListener("click",this.onButtonClick),n.autoAttach&&(s.firstChild?s.insertBefore(r,s.firstChild):s.appendChild(r)),r}function h(n){var o=t.traverseDOMPath(n.target,"cc-btn")||n.target;if(t.hasClass(o,"cc-btn")){var s=o.className.match(new RegExp("\\bcc-("+i.join("|")+")\\b")),r=s&&s[1]||!1;r&&(this.setStatus(r),this.close(!0))}t.hasClass(o,"cc-close")&&(this.setStatus(e.status.dismiss),this.close(!0)),t.hasClass(o,"cc-revoke")&&this.revokeChoice()}function p(e){var i=t.hash(JSON.stringify(e)),n="cc-color-override-"+i,o=t.isPlainObject(e);return this.customStyleSelector=o?n:null,o&&d(i,e,"."+n),o}function d(i,n,o){if(e.customStyles[i])return void++e.customStyles[i].references;var s={},r=n.popup,a=n.button,c=n.highlight;r&&(r.text=r.text?r.text:t.getContrast(r.background),r.link=r.link?r.link:r.text,s[o+".cc-window"]=["color: "+r.text,"background-color: "+r.background],s[o+".cc-revoke"]=["color: "+r.text,"background-color: "+r.background],s[o+" .cc-link,"+o+" .cc-link:active,"+o+" .cc-link:visited"]=["color: "+r.link],a&&(a.text=a.text?a.text:t.getContrast(a.background),a.border=a.border?a.border:"transparent",s[o+" .cc-btn"]=["color: "+a.text,"border-color: "+a.border,"background-color: "+a.background],a.padding&&s[o+" .cc-btn"].push("padding: "+a.padding),"transparent"!=a.background&&(s[o+" .cc-btn:hover, "+o+" .cc-btn:focus"]=["background-color: "+(a.hover||v(a.background))]),c?(c.text=c.text?c.text:t.getContrast(c.background),c.border=c.border?c.border:"transparent",s[o+" .cc-highlight .cc-btn:first-child"]=["color: "+c.text,"border-color: "+c.border,"background-color: "+c.background]):s[o+" .cc-highlight .cc-btn:first-child"]=["color: "+r.text]));var l=document.createElement("style");document.head.appendChild(l),e.customStyles[i]={references:1,element:l.sheet};var u=-1;for(var h in s)s.hasOwnProperty(h)&&l.sheet.insertRule(h+"{"+s[h].join(";")+"}",++u)}function v(e){return e=t.normaliseHex(e),"000000"==e?"#222":t.getLuminance(e)}function f(i){if(t.isPlainObject(i)){var n=t.hash(JSON.stringify(i)),o=e.customStyles[n];if(o&&!--o.references){var s=o.element.ownerNode;s&&s.parentNode&&s.parentNode.removeChild(s),e.customStyles[n]=null}}}function m(e,t){for(var i=0,n=e.length;i=0&&(this.dismissTimeout=window.setTimeout(function(){i(e.status.dismiss),n(!0)},Math.floor(o)));var s=this.options.dismissOnScroll;if("number"==typeof s&&s>=0){var r=function(t){window.pageYOffset>Math.floor(s)&&(i(e.status.dismiss),n(!0),window.removeEventListener("scroll",r),this.onWindowScroll=null)};this.options.enabled&&(this.onWindowScroll=r,window.addEventListener("scroll",r))}var a=this.options.dismissOnWindowClick,c=this.options.ignoreClicksFrom;if(a){var l=function(o){for(var s=!1,r=o.path.length,a=c.length,u=0;us&&(i=!0),i?t.hasClass(n,"cc-active")||t.addClass(n,"cc-active"):t.hasClass(n,"cc-active")&&t.removeClass(n,"cc-active")},200);this.onMouseMove=o,window.addEventListener("mousemove",o)}}}var y={enabled:!0,container:null,cookie:{name:"cookieconsent_status",path:"/",domain:"",expiryDays:365,secure:!1},onPopupOpen:function(){},onPopupClose:function(){},onInitialise:function(e){},onStatusChange:function(e,t){},onRevokeChoice:function(){},onNoCookieLaw:function(e,t){},content:{header:"Cookies used on the website!",message:"This website uses cookies to ensure you get the best experience on our website.",dismiss:"Got it!",allow:"Allow cookies",deny:"Decline",link:"Learn more",href:"https://cookiesandyou.com",close:"❌",target:"_blank",policy:"Cookie Policy"},elements:{header:'{{header}} ',message:'{{message}}',messagelink:'{{message}}
{{link}}',dismiss:'{{dismiss}}',allow:'{{allow}}',deny:'{{deny}}',link:'{{link}}',close:'{{close}}'},window:'',revokeBtn:'
{{policy}}
',compliance:{info:'
{{dismiss}}
',"opt-in":'
{{deny}}{{allow}}
',"opt-out":'
{{deny}}{{allow}}
'},type:"info",layouts:{basic:"{{messagelink}}{{compliance}}","basic-close":"{{messagelink}}{{compliance}}{{close}}","basic-header":"{{header}}{{message}}{{link}}{{compliance}}"},layout:"basic",position:"bottom",theme:"block","static":!1,palette:null,revokable:!1,animateRevokable:!0,showLink:!0,dismissOnScroll:!1,dismissOnTimeout:!1,dismissOnWindowClick:!1,ignoreClicksFrom:["cc-revoke","cc-btn"],autoOpen:!0,autoAttach:!0,whitelistPage:[],blacklistPage:[],overrideHTML:null};return n.prototype.initialise=function(e){this.options&&this.destroy(),t.deepExtend(this.options={},y),t.isPlainObject(e)&&t.deepExtend(this.options,e),r.call(this)&&(this.options.enabled=!1),m(this.options.blacklistPage,location.pathname)&&(this.options.enabled=!1),m(this.options.whitelistPage,location.pathname)&&(this.options.enabled=!0);var i=this.options.window.replace("{{classes}}",c.call(this).join(" ")).replace("{{children}}",l.call(this)),n=this.options.overrideHTML;if("string"==typeof n&&n.length&&(i=n),this.options["static"]){var o=u.call(this,'
'+i+"
");o.style.display="",this.element=o.firstChild,this.element.style.display="none",t.addClass(this.element,"cc-invisible")}else this.element=u.call(this,i);b.call(this),g.call(this),this.options.autoOpen&&this.autoOpen()},n.prototype.destroy=function(){this.onButtonClick&&this.element&&(this.element.removeEventListener("click",this.onButtonClick),this.onButtonClick=null),this.dismissTimeout&&(clearTimeout(this.dismissTimeout),this.dismissTimeout=null),this.onWindowScroll&&(window.removeEventListener("scroll",this.onWindowScroll),this.onWindowScroll=null),this.onWindowClick&&(window.removeEventListener("click",this.onWindowClick),this.onWindowClick=null),this.onMouseMove&&(window.removeEventListener("mousemove",this.onMouseMove),this.onMouseMove=null),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.revokeBtn&&this.revokeBtn.parentNode&&this.revokeBtn.parentNode.removeChild(this.revokeBtn),this.revokeBtn=null,f(this.options.palette),this.options=null},n.prototype.open=function(t){if(this.element)return this.isOpen()||(e.hasTransition?this.fadeIn():this.element.style.display="",this.options.revokable&&this.toggleRevokeButton(),this.options.onPopupOpen.call(this)),this},n.prototype.close=function(t){if(this.element)return this.isOpen()&&(e.hasTransition?this.fadeOut():this.element.style.display="none",t&&this.options.revokable&&this.toggleRevokeButton(!0),this.options.onPopupClose.call(this)),this},n.prototype.fadeIn=function(){var i=this.element;if(e.hasTransition&&i&&(this.afterTransition&&s.call(this,i),t.hasClass(i,"cc-invisible"))){if(i.style.display="",this.options["static"]){var n=this.element.clientHeight;this.element.parentNode.style.maxHeight=n+"px"}var r=20;this.openingTimeout=setTimeout(o.bind(this,i),r)}},n.prototype.fadeOut=function(){var i=this.element;e.hasTransition&&i&&(this.openingTimeout&&(clearTimeout(this.openingTimeout),o.bind(this,i)),t.hasClass(i,"cc-invisible")||(this.options["static"]&&(this.element.parentNode.style.maxHeight=""),this.afterTransition=s.bind(this,i),i.addEventListener(e.transitionEnd,this.afterTransition),t.addClass(i,"cc-invisible")))},n.prototype.isOpen=function(){return this.element&&""==this.element.style.display&&(!e.hasTransition||!t.hasClass(this.element,"cc-invisible"))},n.prototype.toggleRevokeButton=function(e){this.revokeBtn&&(this.revokeBtn.style.display=e?"":"none")},n.prototype.revokeChoice=function(e){this.options.enabled=!0,this.clearStatus(),this.options.onRevokeChoice.call(this),e||this.autoOpen()},n.prototype.hasAnswered=function(t){return Object.keys(e.status).indexOf(this.getStatus())>=0},n.prototype.hasConsented=function(t){var i=this.getStatus();return i==e.status.allow||i==e.status.dismiss},n.prototype.autoOpen=function(e){!this.hasAnswered()&&this.options.enabled?this.open():this.hasAnswered()&&this.options.revokable&&this.toggleRevokeButton(!0)},n.prototype.setStatus=function(i){var n=this.options.cookie,o=t.getCookie(n.name),s=Object.keys(e.status).indexOf(o)>=0;Object.keys(e.status).indexOf(i)>=0?(t.setCookie(n.name,i,n.expiryDays,n.domain,n.path,n.secure),this.options.onStatusChange.call(this,i,s)):this.clearStatus()},n.prototype.getStatus=function(){return t.getCookie(this.options.cookie.name)},n.prototype.clearStatus=function(){var e=this.options.cookie;t.setCookie(e.name,"",-1,e.domain,e.path)},n}(),e.Location=function(){function e(e){t.deepExtend(this.options={},s),t.isPlainObject(e)&&t.deepExtend(this.options,e),this.currentServiceIndex=-1}function i(e,t,i){var n,o=document.createElement("script");o.type="text/"+(e.type||"javascript"),o.src=e.src||e,o.async=!1,o.onreadystatechange=o.onload=function(){var e=o.readyState;clearTimeout(n),t.done||e&&!/loaded|complete/.test(e)||(t.done=!0,t(),o.onreadystatechange=o.onload=null)},document.body.appendChild(o),n=setTimeout(function(){t.done=!0,t(),o.onreadystatechange=o.onload=null},i)}function n(e,t,i,n,o){var s=new(window.XMLHttpRequest||window.ActiveXObject)("MSXML2.XMLHTTP.3.0");if(s.open(n?"POST":"GET",e,1),s.setRequestHeader("Content-type","application/x-www-form-urlencoded"),Array.isArray(o))for(var r=0,a=o.length;r3&&t(s)}),s.send(n)}function o(e){return new Error("Error ["+(e.code||"UNKNOWN")+"]: "+e.error)}var s={timeout:5e3,services:["ipinfo"],serviceDefinitions:{ipinfo:function(){return{url:"//ipinfo.io",headers:["Accept: application/json"],callback:function(e,t){try{var i=JSON.parse(t);return i.error?o(i):{code:i.country}}catch(n){return o({error:"Invalid response ("+n+")"})}}}},ipinfodb:function(e){return{url:"//api.ipinfodb.com/v3/ip-country/?key={api_key}&format=json&callback={callback}",isScript:!0,callback:function(e,t){try{var i=JSON.parse(t);return"ERROR"==i.statusCode?o({error:i.statusMessage}):{code:i.countryCode}}catch(n){return o({error:"Invalid response ("+n+")"})}}}},maxmind:function(){return{url:"//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js",isScript:!0,callback:function(e){return window.geoip2?void geoip2.country(function(t){try{e({code:t.country.iso_code})}catch(i){e(o(i))}},function(t){e(o(t))}):void e(new Error("Unexpected response format. The downloaded script should have exported `geoip2` to the global scope"))}}}}};return e.prototype.getNextService=function(){var e;do e=this.getServiceByIdx(++this.currentServiceIndex);while(this.currentServiceIndex=0,revokable:t.revokable.indexOf(e)>=0,explicitAction:t.explicitAction.indexOf(e)>=0}},e.prototype.applyLaw=function(e,t){var i=this.get(t);return i.hasLaw||(e.enabled=!1,"function"==typeof e.onNoCookieLaw&&e.onNoCookieLaw(t,i)),this.options.regionalLaw&&(i.revokable&&(e.revokable=!0),i.explicitAction&&(e.dismissOnScroll=!1,e.dismissOnTimeout=!1)),e},e}(),e.initialise=function(i,n,o){var s=new e.Law(i.law);n||(n=function(){}),o||(o=function(){});var r=Object.keys(e.status),a=t.getCookie("cookieconsent_status"),c=r.indexOf(a)>=0;return c?void n(new e.Popup(i)):void e.getCountryCode(i,function(t){delete i.law,delete i.location,t.code&&(i=s.applyLaw(i,t.code)),n(new e.Popup(i))},function(t){delete i.law,delete i.location,o(t,new e.Popup(i))})},e.getCountryCode=function(t,i,n){if(t.law&&t.law.countryCode)return void i({code:t.law.countryCode});if(t.location){var o=new e.Location(t.location);return void o.locate(function(e){i(e||{})},n)}i({})},e.utils=t,e.hasInitialised=!0,window.cookieconsent=e}}(window.cookieconsent||{}); \ No newline at end of file diff --git a/public/js/custom.js b/public/js/custom.js new file mode 100644 index 0000000..8645e92 --- /dev/null +++ b/public/js/custom.js @@ -0,0 +1,198 @@ +$(function () { + // $('.selectpicker').selectpicker(); + $('[data-toggle="tooltip"]').tooltip(); +}); + + +function update_modal_data_load(e, $ele) { + var ele = $ele, + url = ele.data('url'), + data = {data:ele.data('data'), target:ele.data('target')} , + contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; + + console.log(data); + console.log(url); + $.ajax({ + url: url, + data: data, + type: "POST", + dataType: "json", + cache: false, + contentType: contentType, + encode: true, + headers: { + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') + }, + success: function(data) { + // do what ever you want here. add content to
if it was not 1 . + $(data.target).find('.modal-content').html(data.response); + // $('.selectpicker').selectpicker(["refresh"]); + // $('.input-daterange').datepicker({toggleActive: true,format: 'dd.mm.yyyy'}); + $(data.target).modal('show'); + }, + error: function(xhr, status, errorThrown) { + console.log(xhr); + console.log(xhr.responseText); + console.log(status); + console.log("Sorry, there was a problem!"); + } + }); + return false; +} + +jQuery(document).ready(function() { + $(".update_modal_data_load").on('click', function (e) { + e.preventDefault(); + update_modal_data_load(e, $(this)); + }); + if($('.datepicker-base').length > 0) { + $('.datepicker-base').datepicker({ + orientation: 'auto right', + calendarWeeks: true, + todayBtn: 'linked', + //daysOfWeekDisabled: '1', + todayHighlight: true, + multidate: false, + daysOfWeekHighlighted: '0,6', + autoclose: true, + format: 'dd.mm.yyyy', + language: 'de', + clearBtn: true, + }); + } + if($('.datepicker-birthday').length > 0) { + $('.datepicker-birthday').datepicker({ + todayBtn: 'linked', + // daysOfWeekDisabled: '1', + multidate: false, + daysOfWeekHighlighted: '0,6', + autoclose: true, + format: 'dd.mm.yyyy', + language: 'de', + clearBtn: true, + startView: 2, + + }); + } + if($('.b-material-datetime-picker').length > 0) { + $('.b-material-datetime-picker').bootstrapMaterialDatePicker({ + weekStart: 1, + format: 'DD.MM.YYYY HH:mm', + shortTime: false, + nowButton: true, + clearButton: true, + lang: 'de', + //currentDate: '' + }); + } + +}); + +function _scrollTo(to, offset) { + $('html,body').animate({scrollTop: $(to).offset().top - offset}, 800); +} + +$(function () { + + $('#modals-load-content').on('show.bs.modal', function (event) { + var button = $(event.relatedTarget); + if (!button.data('id')) { + return; + } + var data = {}; + $.each(button.data(), function(index, value){ + if(index !== 'bs.tooltip'){ + data[index] = value; + } + }); + console.log(data); + + loadModalInner(this, data); + + }); + + function initModalInner() { + $('[data-toggle="reloadModal"]').off().on('click', function(event) { + event.preventDefault(); + button = $(this); + var data = {}; + $.each(button.data(), function(index, value){ + if(index !== 'bs.tooltip'){ + data[index] = value; + } + }); + //console.log(data); + loadModalInner(this, data); + }); + + } + function loadModalInner(self, data){ + var url = data.route, + contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; + $.ajax({ + url: url, + data: data, + type: "POST", + dataType: "json", + cache: false, + contentType: contentType, + encode: true, + headers: { + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') + }, + success: function(data) { + console.log(data); + if(data.response.modal){ + $(data.response.target).find('.modal-dialog').addClass(data.response.modal); + } + $(data.response.target).find('.modal-dialog').html(data.html); + $(data.response.target).find('.selectpicker').selectpicker('refresh'); + initModalInner(); + }, + error: function(xhr, status, errorThrown) { + console.log(xhr); + console.log(xhr.responseText); + console.log(errorThrown); + console.log("Sorry, there was a problem!"); + } + }); + return false; + } + + function ajax_object_action(event, object, callback) { + event.preventDefault(); + var data = {}; + $.each(object.data(), function(index, value){ + if(typeof value !== 'object'){ + data[index] = value; + } + }); + var url = data['url']; + console.log(data); + console.log(url); + $.ajax({ + url: url, + data: data, + type: "POST", + dataType: "json", + cache: false, + contentType: 'application/x-www-form-urlencoded; charset=UTF-8', + encode: true, + headers: { + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') + }, + success: function(data) { + //data will send data to callback function + callback(data); + }, + error: function(xhr, status, errorThrown) { + console.log(xhr); + console.log(xhr.responseText); + console.log(status); + console.log(errorThrown); + console.log("Sorry, there was a problem!"); + } + }); + return false; + } +}); \ No newline at end of file diff --git a/public/js/forms_file-upload.js b/public/js/forms_file-upload.js new file mode 100755 index 0000000..9c6c95c --- /dev/null +++ b/public/js/forms_file-upload.js @@ -0,0 +1,71 @@ +// Dropzone +$(function() { + + + + Dropzone.autoDiscover = false; + + $('#dropzone-before').dropzone({ + parallelUploads: 1, + maxFilesize: 50000, + filesizeBase: 1000, + addRemoveLinks: true, + }); + + $('#dropzone-after').dropzone({ + parallelUploads: 1, + maxFilesize: 50000, + filesizeBase: 1000, + addRemoveLinks: true, + }); + + + + + // Mock the file upload progress (only for the demo) + // + /* Dropzone.prototype.uploadFiles = function(files) { + var minSteps = 6; + var maxSteps = 60; + var timeBetweenSteps = 100; + var bytesPerStep = 100000; + var isUploadSuccess = Math.round(Math.random()); + + var self = this; + + for (var i = 0; i < files.length; i++) { + + var file = files[i]; + var totalSteps = Math.round(Math.min(maxSteps, Math.max(minSteps, file.size / bytesPerStep))); + + for (var step = 0; step < totalSteps; step++) { + var duration = timeBetweenSteps * (step + 1); + + setTimeout(function(file, totalSteps, step) { + return function() { + file.upload = { + progress: 100 * (step + 1) / totalSteps, + total: file.size, + bytesSent: (step + 1) * file.size / totalSteps + }; + + self.emit('uploadprogress', file, file.upload.progress, file.upload.bytesSent); + if (file.upload.progress == 100) { + + if (isUploadSuccess) { + file.status = Dropzone.SUCCESS; + self.emit('success', file, 'success', null); + } else { + file.status = Dropzone.ERROR; + self.emit('error', file, 'Some upload error', null); + } + + self.emit('complete', file); + self.processQueue(); + } + }; + }(file, totalSteps, step), duration); + } + } + };*/ +}); diff --git a/public/js/iq-homeparty-cart.js b/public/js/iq-homeparty-cart.js new file mode 100755 index 0000000..d6a5967 --- /dev/null +++ b/public/js/iq-homeparty-cart.js @@ -0,0 +1,201 @@ + +var IqHomepartyCart = { + form: "#homeparty-order-form", + btn_modal_add: '.add-product-basket', + btn_add: '.add-from-basket', + btn_remove: '.remove-from-basket', + table_input: '.table-input-event-onchange', + oTable: null, + cart_holder: '#insert_show_products_order_', + cart_holders: '.insert_show_products_order', + modal: '#modals-load-content', + remove_item_cart: '.remove_item_form_cart', + insert_show_total_order: '#insert_show_total_order', + insert_show_bonus: '#insert_show_bonus', + insert_show_bonus_host: '#insert_show_bonus_host', + select_delivery_option: '.select_delivery_option', + /* + comp_holder: '#holder_html_view_comp_product', + is_for: null, + url: null, + btn_clear: '#clear-products-basket', + + cart_input: '.cart-input-event-onchange', + remove_item: '.remove_item_form_cart', + shipping_state: '#change_shipping_state', + comp_products: 'switchers-comp-product', + count_comp_products: 'count_comp_products', + shipping_is_for: 'shipping_is_for',*/ + + _log: function ($msg){ + console.log($msg); + }, + init: function () { + var _self = this; + _self.url = $(_self.form).attr('action'); + + + $(_self.cart_holders).each(function (key, obj){ + _self.reInit($(obj)); + + }); + //_self.showInit(); + + /*$(_self.shipping_state).on('change', function(){ + _self.update_shipping_state($(this)); + });*/ + return _self; + }, + setDatabase: function (oTable){ + var _self = this; + _self.oTable = oTable; + }, + reInitModal: function (){ + var _self = this; + $(_self.oTable).find(_self.btn_modal_add).on('click', function(){ + _self.add_product_modal($(this)) + }); + }, + add_product_modal: function (_obj){ + var _self = this; + _self.performRequest({ + product_id: _obj.data('product-id'), + homeparty_id: $(_self.oTable).data('homeparty-id'), + homeparty_user_id: $(_self.oTable).data('homeparty-user-id'), + qty: 1, + action: 'addProduct' + }).done(_self.refreshView); + + }, + reInit: function (obj){ + var _self = this; + var _obj = obj; + obj.find(_self.btn_add).off('click').on('click', function(){ + _self.add_product($(this), _obj) + }); + obj.find(_self.btn_remove).off('click').on('click', function(){ + _self.remove_product($(this), _obj) + }); + obj.find(_self.table_input).off('change').on('change', function(){ + _self.update_input_table($(this), _obj); + }); + + obj.find(_self.remove_item_cart).off('click').on('click', function(){ + _self.remove_from_cart($(this), _obj); + }); + + obj.find(_self.select_delivery_option).off('change').on('change', function(){ + _self.update_delivery_option($(this), _obj); + }); + }, + + add_product: function (_obj, _holder){ + var _self = this; + var input = _holder.find('input[name="product_qty_'+_obj.data('order-item-id')+'"]'); + var qty = parseInt(input.val()) + 1; + qty = _self.checkNumber(qty); + input.val(qty); + _self.update_cart(_holder, _obj, qty); + }, + remove_product: function (_obj, _holder){ + var _self = this; + var input = _holder.find('input[name="product_qty_'+_obj.data('order-item-id')+'"]'); + var qty = parseInt(input.val()) - 1; + qty = _self.checkNumber(qty); + input.val(qty); + _self.update_cart(_holder, _obj, qty); + }, + update_input_table: function (_obj, _holder){ + var _self = this; + var qty = parseInt(_obj.val()); + qty = _self.checkNumber(qty); + _obj.val(qty); + _self.update_cart(_holder, _obj, qty); + }, + update_cart: function (_holder, _obj, qty){ + var _self = this; + _self.performRequest({ + product_id: _obj.data('product-id'), + order_item_id: _obj.data('order-item-id'), + homeparty_id: _holder.data('homeparty-id'), + homeparty_user_id: _holder.data('homeparty-user-id'), + qty: qty, + action: 'updateCart' + }).done(_self.refreshView); + }, + remove_from_cart: function (_obj, _holder){ + var _self = this; + _self.performRequest({ + product_id: _obj.data('product-id'), + order_item_id: _obj.data('order-item-id'), + homeparty_id: _holder.data('homeparty-id'), + homeparty_user_id: _holder.data('homeparty-user-id'), + action: 'removeFromCart' + }).done(_self.refreshView); + }, + update_delivery_option: function (_obj, _holder){ + var _self = this; + _self.performRequest({ + delivery: _obj.val(), + homeparty_id: _holder.data('homeparty-id'), + homeparty_user_id: _holder.data('homeparty-user-id'), + action: 'updateDeliveryOption' + }).done(_self.refreshView); + }, + + refreshView: function (data) { + var _self = IqHomepartyCart; + var obj = $(_self.cart_holder+data.data.homeparty_user_id) + obj.html(data.html_user_cart); + $(_self.insert_show_total_order).html(data.html_total); + $(_self.insert_show_bonus).html(data.html_bonus); + $(_self.insert_show_bonus_host).html(data.html_host_bonus); + $(_self.modal).modal('hide'); + _self.reInit(obj); + //$(_self.comp_holder).html(data.html_comp); + // var input = $(_self.table).find('input[name="product_qty_'+data.data.product_id+'"]'); + // input.val(data.data.qty); + // _self.showInit(); + }, + performRequest : function(data) { + var _self = this; + var url = _self.url, + contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; + + console.log(data); + console.log(url); + + return $.ajax({ + url: url, + data: data, + type: "POST", + dataType: "json", + cache: false, + contentType: contentType, + encode: true, + headers: { + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') + } + }) + .done(function (data) { + console.log('performRequest'); + console.log(data); + + }).fail(function (jqXHR, textStatus, errorThrown) { + console.log(jqXHR); + console.log(jqXHR.responseText); + console.log(textStatus); + console.log(errorThrown); + console.log("Sorry, there was a problem!"); + }); + }, + checkNumber : function(number){ + if(number < 1 || isNaN(number)){ + return 1; + } + if(number >= 100){ + return 100; + } + return number; + } +}; \ No newline at end of file diff --git a/public/js/iq-shopping-cart.js b/public/js/iq-shopping-cart.js new file mode 100755 index 0000000..53d3268 --- /dev/null +++ b/public/js/iq-shopping-cart.js @@ -0,0 +1,190 @@ + +var IqShoppingCart = { + table: "#datatables-order-list", + btn_add: '.add-product-basket', + btn_remove: '.remove-product-basket', + card_holder: '#holder_html_view_card', + comp_holder: '#holder_html_view_comp_product', + is_for: null, + url: null, + btn_clear: '#clear-products-basket', + modal: null, + oTable: null, + table_input: '.table-input-event-onchange', + cart_input: '.cart-input-event-onchange', + remove_item: '.remove_item_form_cart', + shipping_state: '#change_shipping_state', + comp_products: 'switchers-comp-product', + count_comp_products: 'count_comp_products', + shipping_is_for: 'shipping_is_for', + + init: function () { + var _self = this; + _self.url = $(_self.table).data('url'); + _self.is_for = $('input[name="'+_self.shipping_is_for+'"]').val(); + _self.showInit(); + $(_self.shipping_state).on('change', function(){ + _self.update_shipping_state($(this)); + }); + return _self; + }, + setDatabase: function (oTable){ + var _self = this; + _self.oTable = oTable; + }, + reInit: function (){ + var _self = this; + $(_self.table).find(_self.btn_add).on('click', function(){ + _self.add_product($(this)) + }); + + $(_self.table).find(_self.btn_remove).on('click', function(){ + _self.remove_product($(this)) + }); + $(_self.table).find(_self.table_input).off('change').on('change', function(){ + _self.update_input_table($(this)); + }); + }, + showInit: function (){ + var _self = this; + $(_self.btn_clear).on('click', function (){ + _self.performRequest({action: 'clearCart'}) + .done(_self.refreshDatabaseRefreshAndView) + }); + $(_self.cart_input).on('change', function(){ + _self.update_input_cart($(this)); + }); + $(_self.remove_item).on('click', function(event){ + event.preventDefault(); + _self.update_cart_database($(this).data('product-id'), 0); + }); + if(_self.is_for === 'me'){ + $('input[name^="'+_self.comp_products+'"]').on('change', function(){ + _self.update_comp_product($(this)); + }); + } + }, + update_shipping_state : function (_obj){ + var _self = this; + var id = parseInt(_obj.val()); + var is_for = _obj.data('is-for'); + _self.performRequest({shipping_country_id: id, shipping_is_for: is_for, action: 'updateShippingCountry'}) + .done(_self.refreshItemsAndView); + }, + update_input_table: function (_obj){ + var _self = this; + var qty = parseInt(_obj.val()); + qty = _self.checkNumber(qty); + _obj.val(qty); + _self.update_cart(_obj.data('product-id'), qty); + }, + update_input_cart: function (_obj){ + var _self = this; + var qty = parseInt(_obj.val()); + qty = _self.checkNumber(qty); + _obj.val(qty); + _self.update_cart_database(_obj.data('product-id'), qty); + }, + update_comp_product: function (_obj){ + var _self = this; + _self.performRequest({comp_product_id: _obj.val(), comp_num: _obj.data('comp_num'), count_comp_products: $('input[name="'+_self.count_comp_products+'"]').val(), action: 'updateCompProduct'}) + .done(_self.refreshItemsAndView); + }, + add_product: function (_obj){ + var _self = this; + var input = $(_self.table).find('input[name="product_qty_'+_obj.data('product-id')+'"]'); + var qty = parseInt(input.val()) + 1; + qty = _self.checkNumber(qty); + input.val(qty); + _self.update_cart(_obj.data('product-id'), qty); + }, + remove_product: function (_obj){ + var _self = this; + var input = $(_self.table).find('input[name="product_qty_'+_obj.data('product-id')+'"]'); + var qty = parseInt(input.val()) - 1; + if(qty < 0){ + qty = 0; + } + input.val(qty); + _self.update_cart(_obj.data('product-id'), qty); + }, + update_cart_database: function (product_id, qty){ + var _self = this; + _self.performRequest({product_id: product_id, qty: qty, action: 'updateCart'}) + .done(_self.refreshDatabaseAndView); + }, + update_cart: function (product_id, qty){ + var _self = this; + _self.performRequest({product_id: product_id, qty: qty, action: 'updateCart'}) + .done(_self.refreshItemsAndView); + }, + refreshItemsAndView: function (data){ + var _self = IqShoppingCart; + $(_self.card_holder).html(data.html_card); + $(_self.comp_holder).html(data.html_comp); + _self.showInit(); + + }, + refreshDatabaseAndView: function (data) { + var _self = IqShoppingCart; + $(_self.card_holder).html(data.html_card); + $(_self.comp_holder).html(data.html_comp); + + var input = $(_self.table).find('input[name="product_qty_'+data.data.product_id+'"]'); + input.val(data.data.qty); + _self.showInit(); + }, + refreshDatabaseRefreshAndView : function (data){ + var _self = IqShoppingCart; + $(_self.card_holder).html(data.html_card); + $(_self.comp_holder).html(data.html_comp); + + _self.showInit(); + _self.oTable.draw(); + }, + checkNumber : function(number){ + if(number < 0 || isNaN(number)){ + return 0; + } + if(number >= 100){ + return 100; + } + return number; + }, + performRequest : function(data) { + var _self = this; + var url = _self.url, + contentType = 'application/x-www-form-urlencoded; charset=UTF-8'; + + data.shipping_is_for = _self.is_for; + console.log(data); + console.log(url); + + return $.ajax({ + url: url, + data: data, + type: "POST", + dataType: "json", + cache: false, + contentType: contentType, + encode: true, + headers: { + 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') + } + }) + .done(function (data) { + + console.log('performRequest'); + console.log(data); + + + + }).fail(function (jqXHR, textStatus, errorThrown) { + console.log(jqXHR); + console.log(jqXHR.responseText); + console.log(textStatus); + console.log(errorThrown); + console.log("Sorry, there was a problem!"); + }); + } +}; \ No newline at end of file diff --git a/public/js/jquery.min.js b/public/js/jquery.min.js new file mode 100644 index 0000000..644d35e --- /dev/null +++ b/public/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), +a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), +null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" + + + + + + + + + +
+ + +
+ @yield('content') +
+
+ + diff --git a/resources/views/_bak/layouts/application.blade.php b/resources/views/_bak/layouts/application.blade.php new file mode 100755 index 0000000..0967b7b --- /dev/null +++ b/resources/views/_bak/layouts/application.blade.php @@ -0,0 +1,203 @@ + + + + + + + + + + + {{ config('app.name') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@yield('styles') + + + + + + + + + + + + + + +@yield('layout-content') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@yield('scripts') + + + + \ No newline at end of file diff --git a/resources/views/_bak/layouts/auth.blade.php b/resources/views/_bak/layouts/auth.blade.php new file mode 100755 index 0000000..83d75b5 --- /dev/null +++ b/resources/views/_bak/layouts/auth.blade.php @@ -0,0 +1,129 @@ + + + + + + {{ config('app.name') }} Login + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +@if(Session::has('alert-error')) + +@endif + +@if(Session::has('alert-success')) + +@endif + + + +@yield('content') + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/views/_bak/layouts/includes/layout-footer.blade.php b/resources/views/_bak/layouts/includes/layout-footer.blade.php new file mode 100755 index 0000000..40d0ca5 --- /dev/null +++ b/resources/views/_bak/layouts/includes/layout-footer.blade.php @@ -0,0 +1,24 @@ + + + + + + + + + diff --git a/resources/views/_bak/layouts/includes/layout-navbar-without.blade.php b/resources/views/_bak/layouts/includes/layout-navbar-without.blade.php new file mode 100755 index 0000000..2c42e72 --- /dev/null +++ b/resources/views/_bak/layouts/includes/layout-navbar-without.blade.php @@ -0,0 +1,7 @@ + +
\ No newline at end of file diff --git a/resources/views/_bak/layouts/includes/layout-navbar.blade.php b/resources/views/_bak/layouts/includes/layout-navbar.blade.php new file mode 100755 index 0000000..ad93843 --- /dev/null +++ b/resources/views/_bak/layouts/includes/layout-navbar.blade.php @@ -0,0 +1,33 @@ + + + + diff --git a/resources/views/_bak/layouts/includes/layout-sidenav.blade.php b/resources/views/_bak/layouts/includes/layout-sidenav.blade.php new file mode 100755 index 0000000..b58cec5 --- /dev/null +++ b/resources/views/_bak/layouts/includes/layout-sidenav.blade.php @@ -0,0 +1,245 @@ + + + +@if(Auth::check()) + +
+ + + +
+ +@endif diff --git a/resources/views/_bak/layouts/layout-1-flex.blade.php b/resources/views/_bak/layouts/layout-1-flex.blade.php new file mode 100755 index 0000000..c401042 --- /dev/null +++ b/resources/views/_bak/layouts/layout-1-flex.blade.php @@ -0,0 +1,39 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-navbar') + + +
+ + @include('layouts.includes.layout-sidenav') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/layouts/layout-1.blade.php b/resources/views/_bak/layouts/layout-1.blade.php new file mode 100755 index 0000000..70cfaae --- /dev/null +++ b/resources/views/_bak/layouts/layout-1.blade.php @@ -0,0 +1,39 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-navbar') + + +
+ + @include('layouts.includes.layout-sidenav') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/layouts/layout-2-flex.blade.php b/resources/views/_bak/layouts/layout-2-flex.blade.php new file mode 100755 index 0000000..c0d2aaa --- /dev/null +++ b/resources/views/_bak/layouts/layout-2-flex.blade.php @@ -0,0 +1,75 @@ +@extends('layouts.application') + +@section('layout-content') + + @if(Session::has('alert-save')) + + @endif + + @if(Session::has('alert-error')) + + @endif + + @if(Session::has('alert-success')) + + @endif + +
+
+ + + @include('layouts.includes.layout-sidenav') + + +
+ + @include('layouts.includes.layout-navbar') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/layouts/layout-2-without.blade.php b/resources/views/_bak/layouts/layout-2-without.blade.php new file mode 100755 index 0000000..19c3ad3 --- /dev/null +++ b/resources/views/_bak/layouts/layout-2-without.blade.php @@ -0,0 +1,74 @@ +@extends('layouts.application') + +@section('layout-content') + + {{-- @if(Session::has('alert-save')) + + @endif + + @if(Session::has('alert-error')) + + @endif + + @if(Session::has('alert-success')) + + @endif--}} + + + +
+
+ + +
+ + @include('layouts.includes.layout-navbar-without') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/layouts/layout-2.blade.php b/resources/views/_bak/layouts/layout-2.blade.php new file mode 100755 index 0000000..8bad1d0 --- /dev/null +++ b/resources/views/_bak/layouts/layout-2.blade.php @@ -0,0 +1,77 @@ +@extends('layouts.application') + +@section('layout-content') + + @if(Session::has('alert-save')) + + @endif + + @if(Session::has('alert-error')) + + @endif + + @if(Session::has('alert-success')) + + @endif + + + +
+
+ + + @include('layouts.includes.layout-sidenav') + + +
+ + @include('layouts.includes.layout-navbar') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/layouts/layout-blank.blade.php b/resources/views/_bak/layouts/layout-blank.blade.php new file mode 100755 index 0000000..bff0c10 --- /dev/null +++ b/resources/views/_bak/layouts/layout-blank.blade.php @@ -0,0 +1,5 @@ +@extends('layouts.application') + +@section('layout-content') + @yield('content') +@endsection diff --git a/resources/views/_bak/layouts/layout-horizontal-sidenav.blade.php b/resources/views/_bak/layouts/layout-horizontal-sidenav.blade.php new file mode 100755 index 0000000..562b706 --- /dev/null +++ b/resources/views/_bak/layouts/layout-horizontal-sidenav.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-navbar', ['hide_layout_sidenav_toggle' => true]) + + +
+ + +
+ + @include('layouts.includes.layout-sidenav', ['layout_sidenav_horizontal' => true]) + + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/layouts/layout-without-navbar-flex.blade.php b/resources/views/_bak/layouts/layout-without-navbar-flex.blade.php new file mode 100755 index 0000000..be70ea2 --- /dev/null +++ b/resources/views/_bak/layouts/layout-without-navbar-flex.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + +
+ + @include('layouts.includes.layout-sidenav') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/layouts/layout-without-navbar.blade.php b/resources/views/_bak/layouts/layout-without-navbar.blade.php new file mode 100755 index 0000000..21ae17c --- /dev/null +++ b/resources/views/_bak/layouts/layout-without-navbar.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + +
+ + @include('layouts.includes.layout-sidenav') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/layouts/layout-without-sidenav.blade.php b/resources/views/_bak/layouts/layout-without-sidenav.blade.php new file mode 100755 index 0000000..abcf168 --- /dev/null +++ b/resources/views/_bak/layouts/layout-without-sidenav.blade.php @@ -0,0 +1,34 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-navbar', ['hide_layout_sidenav_toggle' => true]) + + +
+ + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/_bak/web/contact_form.php b/resources/views/_bak/web/contact_form.php new file mode 100644 index 0000000..da7f8f6 --- /dev/null +++ b/resources/views/_bak/web/contact_form.php @@ -0,0 +1,179 @@ +securekey = hash('sha256',$textkey,TRUE); + // $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); + // $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); + $this->iv = mcrypt_create_iv(32, MCRYPT_RAND); + } + + public function submit() { + + $plugin_settings["recipient_name"] = "mivita.care"; + //$plugin_settings["recipient_email"] = "info@mivita.care"; + $plugin_settings["recipient_email"] = "kevin.adametz@me.com"; + $plugin_settings["email_subject"] = "Mail von mivita.care"; + + + $errors = array(); + + if ( empty( $plugin_settings['recipient_email'] ) ) { + $errors['general'] = 'The recipient email is not set.'; + return array("errors"=>$errors); + exit; + } + + if( empty($_POST['required']) ){ + $errors['general'] = 'Pflichtfelder nicht definiert.'; + return array("errors"=>$errors); + exit; + } + + //check token + if(!$this->checkSpamAutoSend($_POST['sender_token'])){ + $errors['general'] = 'Konnte nicht gesendet werden. Bitte nur alle 10 sec. senden.'; + return array("errors"=>$errors); + exit; + } + + if ( empty( $_POST['sender_email_repeat'] ) ) { + //$errors['sender_email_repeat'] = 'invalid'; + $errors['general'] = 'Konnte nicht gesendet werden. Bitte alle Felder ausfüllen.'.$_POST['sender_email_repeat']; + return array("errors"=>$errors); + exit; + } + + $required = explode(",", trim($_REQUEST['required'])); + $required = array_merge($required, array( 'sender_email', 'sender_name' ) ); + + $key = array_search("sender_email_repeat",$required); + if($key!==false){ + unset($required[$key]); + } + foreach ( $required as $req ) { + if ( empty( $_POST[$req] ) ) { + $errors[$req] = 'required'; + } + } + + if ( !isset( $errors['sender_email'] ) && !strpos($_POST['sender_email'], "@") ) { + $errors['sender_email'] = 'invalid'; + } + + if ( !empty( $errors ) ) { + return array("errors"=>$errors); + exit; + } + + $malicious = array( 'sender_name', 'sender_email' ); + foreach ( $malicious as $mal ) { + if ( $this->is_malicious( $_POST[$mal] ) ) { + $errors[$mal] = 'malicious'; + } + } + + + if ( !empty( $errors ) ) { + return array("errors"=>$errors); + exit; + } + + //remove POST + + unset($_POST['sender_token']); + unset($_POST['sender_email_repeat']); + + $to = trim( $plugin_settings['recipient_name'] . ' <' . $plugin_settings['recipient_email'] . '>' ); + $from = $_POST['sender_name'] . ' <' . $_POST['sender_email'] . '>'; + $subject = $plugin_settings['email_subject']; + + $message = ''; + + foreach ( $_POST as $name => $value ) { + if(strpos($name, 'sender_') !== false) { + $nicename = ucwords( str_replace( '_', ' ', str_replace('sender_', '', $name) ) ); + $message .= $nicename . ': '; + if ( !empty( $_POST[$name] ) ) { + $message .= ( strpos( $_POST[$name], "\n" ) !== false ) ? "\r\n" : ''; + $message .= $_POST[$name]; + } + $message .= "\r\n\r\n-----------------------------------------------------------\r\n\r\n"; + } + } + $message .= "\r\n"; + + $message .= $_POST['message']; + + $message .= "\r\n\r\n-----------------------------------------------------------\r\n". + "Datum: ". date("H:i - d.m.y", time()). "\r\n". + "Onlinenummer: " .time(). "\r\n". + "-----------------------------------------------------------\r\n". + "\r\n\r\n". + "Abgesendet von:\r\n". + "IP-Adresse: " . $_SERVER['REMOTE_ADDR'] . "\r\n". + "Benutzer Browser: ". $_SERVER['HTTP_USER_AGENT'] . "\r\n". + "Server Zeit: ". date("H:i - d.m.y", time()). "\r\n\r\n"; + + $message = wordwrap( $message, 80, "\r\n"); + + $headers = "MIME-Version: 1.0\r\n"; + $headers .= "From: $from\r\n"; + $headers .= "Content-Type: text/plain; charset=\"UTF-8\"\r\n"; + + //header( 'Content-Type: text/plain' ); print_r( compact( 'to', 'subject', 'message', 'headers' ) ); exit; + + if ( !mail( $to, $subject, $message, $headers ) ) { + $errors['general'] = 'For some reason the call to mail() failed. Best to contact the web host.'; + return array("errors"=>$errors); + exit; + } + + return array( 'success' => true ); + exit; + } + + + private function checkSpamAutoSend($token) { + + //var_dump($this->language); + $time = $this->decrypt($token); + $time_now = time(); + + if(!empty($time)){ + + if (!isset($time)) { return false; /* Feld fehlt ->Spam */ } + elseif (!is_numeric($time)) { return false; /* Manipulierung ->Spam */ } + elseif (intval($time) > $time_now-5) { return false; /* zu schnell */ } + elseif (intval($time) < $time_now-10*3600) { return false; /* altes Formular ->Spam */ } + else { return true; /* weitere Überprüfungen */ } + + } + + return false; + } + + + private function is_malicious( $input ) { + $bad_inputs = array( "\r", "\n", "%0a", "%0d", "Content-Type:", "bcc:","to:","cc:" ); + foreach ( $bad_inputs as $bad_input ) { + if ( stripos( strtolower( $input ), strtolower( $bad_input ) ) !== false ) { + return true; + } + } + return false; + } + + public function encrypt($input) { + return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->securekey, $input, MCRYPT_MODE_ECB, $this->iv)); + } + public function decrypt($input) { + return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->securekey, base64_decode($input), MCRYPT_MODE_ECB, $this->iv)); + } + +} + diff --git a/resources/views/_bak/web/contact_form_ajax.php b/resources/views/_bak/web/contact_form_ajax.php new file mode 100644 index 0000000..a76e7d7 --- /dev/null +++ b/resources/views/_bak/web/contact_form_ajax.php @@ -0,0 +1,23 @@ + $form->encrypt(time()))); + } + + if($_GET['load'] == "submit"){ + echo json_encode( $form->submit() ); + } +} + +?> \ No newline at end of file diff --git a/resources/views/_bak/web/index.blade.php b/resources/views/_bak/web/index.blade.php new file mode 100644 index 0000000..85bfc6c --- /dev/null +++ b/resources/views/_bak/web/index.blade.php @@ -0,0 +1 @@ +@include($user_shop ?'web.user.start' : 'web.start') diff --git a/resources/views/_bak/web/layouts/application.blade.php b/resources/views/_bak/web/layouts/application.blade.php new file mode 100644 index 0000000..05f4403 --- /dev/null +++ b/resources/views/_bak/web/layouts/application.blade.php @@ -0,0 +1,98 @@ + + + + + mivita care + + + + + + + + + + + + + + + + + + + + + + + + + + + + @yield('layout-content') + + + + + + + + {{-- --}} + + + + + @yield('scripts') + + + \ No newline at end of file diff --git a/resources/views/_bak/web/layouts/includes/footer.blade.php b/resources/views/_bak/web/layouts/includes/footer.blade.php new file mode 100644 index 0000000..e907e44 --- /dev/null +++ b/resources/views/_bak/web/layouts/includes/footer.blade.php @@ -0,0 +1,105 @@ + +
+
+ +
+ +
+ +

+ Du möchtest Vertriebspartner werden oder hast Fragen zu unseren Produkten? +

+

Jetzt Kontakt aufnehmen: +49 (0) 8333 946 98 90 +

+
+ + + + +
+ +
+
+ + + + + \ No newline at end of file diff --git a/resources/views/_bak/web/layouts/includes/header.blade.php b/resources/views/_bak/web/layouts/includes/header.blade.php new file mode 100644 index 0000000..55a50b4 --- /dev/null +++ b/resources/views/_bak/web/layouts/includes/header.blade.php @@ -0,0 +1,88 @@ + diff --git a/resources/views/_bak/web/layouts/layout.blade.php b/resources/views/_bak/web/layouts/layout.blade.php new file mode 100644 index 0000000..38ac15a --- /dev/null +++ b/resources/views/_bak/web/layouts/layout.blade.php @@ -0,0 +1,12 @@ +@extends('web.layouts.application') + +@section('layout-content') + @include('web.layouts.includes.header') + +
+ @yield('content') + + @include('web.layouts.includes.footer') +
+ +@endsection diff --git a/resources/views/_bak/web/products/_all_products.php b/resources/views/_bak/web/products/_all_products.php new file mode 100644 index 0000000..ea82f54 --- /dev/null +++ b/resources/views/_bak/web/products/_all_products.php @@ -0,0 +1,109 @@ + array( + array(ProduktSlug1, ProduktName1, 'Bild1', 'Bild2'), + array(Produkt2 ...), + array(Produkt3 ...), + ), + .... + Bilder ablegen direkt unter + /assets/images/products/ + */ + + $get_products = array( + /*'Alle Produkte' => array( + array('slug' => 'aloe-vera-gesichtstonic', 'name' => 'Aloe Vera Gesichtstonic', 'first' => 'aloe-vera-gesichtstonic-1.jpg', 'hover' => 'aloe-vera-gesichtstonic-2.jpg'), + array('slug' => 'aloe-vera-reinigungsgel', 'name' => 'Aloe Vera Gesichtsreinigungsgel', 'first' => 'aloe-vera-reinigungsgel-1.jpg', 'hover' => 'aloe-vera-reinigungsgel-2.jpg'), + array('slug' => 'aloe-vera-feuchtigkeitscreme', 'name' => 'Aloe Vera Feuchtigkeitscreme', 'first' => 'aloe-vera-feuchtigkeitscreme-1.jpg', 'hover' => 'aloe-vera-feuchtigkeitscreme-2.jpg'), + array('slug' => 'aloe-vera-tagescreme', 'name' => 'Aloe Vera Tagescreme', 'first' => 'aloe-vera-tagescreme-1.jpg', 'hover' => 'aloe-vera-tagescreme-2.jpg'), + array('slug' => 'aloe-vera-nachtcreme', 'name' => 'Aloe Vera Nachtcreme', 'first' => 'aloe-vera-nachtcreme-1.jpg', 'hover' => 'aloe-vera-nachtcreme-2.jpg'), + array('slug' => 'aloe-vera-serum', 'name' => 'Aloe Vera Serum', 'first' => 'aloe-vera-serum-1.jpg', 'hover' => 'aloe-vera-serum-2.jpg'), + array('slug' => 'aloe-vera-schaummaske', 'name' => 'Aloe Vera Schaummaske', 'first' => 'aloe-vera-schaummaske-1.jpg', 'hover' => 'aloe-vera-schaummaske-2.jpg'), + array('slug' => 'aloe-vera-bodylotion', 'name' => 'Aloe Vera Bodylotion', 'first' => 'aloe-vera-bodylotion-1.jpg', 'hover' => 'aloe-vera-bodylotion-2.jpg'), + array('slug' => 'aloe-vera-after-sun', 'name' => 'Aloe Vera After Sun', 'first' => 'aloe-vera-after-sun-lotion-1.jpg', 'hover' => 'aloe-vera-after-sun-lotion-2.jpg'), + array('slug' => 'aloe-vera-handcreme', 'name' => 'Aloe Vera Handcreme', 'first' => 'aloe-vera-handcreme-1.jpg', 'hover' => 'aloe-vera-handcreme-2.jpg'), + array('slug' => 'aloe-vera-lippenbalsam', 'name' => 'Aloe Vera Lippenbalsam', 'first' => 'aloe-vera-lippenbalsam-1.jpg', 'hover' => 'aloe-vera-lippenbalsam-2.jpg'), + array('slug' => 'aloe-vera-duschgel', 'name' => 'Aloe Vera Duschgel', 'first' => 'aloe-vera-duschgel-1.jpg', 'hover' => 'aloe-vera-duschgel-2.jpg'), + array('slug' => 'aloe-vera-shampoo', 'name' => 'Aloe Vera Shampoo', 'first' => 'aloe-vera-shampoo-1.jpg', 'hover' => 'aloe-vera-shampoo-2.jpg'), + array('slug' => 'aloe-vera-emulsion', 'name' => 'Aloe Vera Emulsion', 'first' => 'aloe-vera-emulsion-1.jpg', 'hover' => 'aloe-vera-emulsion-2.jpg'), + array('slug' => 'aloe-vera-koerperbutter', 'name' => 'Aloe Vera Körperbutter', 'first' => 'aloe-vera-koerperbutter-1.jpg', 'hover' => 'aloe-vera-koerperbutter-2.jpg'), + array('slug' => 'aloe-vera-saft', 'name' => 'Aloe Vera Saft 500 ml', 'first' => 'aloe-vera-saft-1.jpg', 'hover' => 'aloe-vera-saft-2.jpg'), + array('slug' => 'aloe-vera-saft-250', 'name' => 'Aloe Vera Saft 250 ml', 'first' => 'aloe-vera-saft-250-1.jpg', 'hover' => 'aloe-vera-saft-250-2.jpg'), + array('slug' => 'aloe-vera-massageoel', 'name' => 'Aloe Vera Massage-Öl', 'first' => 'aloe-vera-massageoel-1.jpg', 'hover' => 'aloe-vera-massageoel-2.jpg'), + array('slug' => 'aloe-vera-rasierschaum', 'name' => 'Aloe Vera Rasierschaum', 'first' => 'aloe-vera-rasierschaum-1.jpg', 'hover' => 'aloe-vera-rasierschaum-2.jpg'), + array('slug' => 'aloe-vera-gel99', 'name' => 'Aloe Vera Gel 99%', 'first' => 'aloe-vera-gel99-1.jpg', 'hover' => 'aloe-vera-gel99-2.jpg'), + array('slug' => 'aloe-vera-gel86', 'name' => 'Aloe Vera Gel 86%', 'first' => 'aloe-vera-gel86-1.jpg', 'hover' => 'aloe-vera-gel86-2.jpg'), + array('slug' => 'aloe-vera-sos-spray', 'name' => 'Aloe Vera SOS Spray', 'first' => 'aloe-vera-sos-spray-1.jpg', 'hover' => 'aloe-vera-sos-spray-2.jpg'), + array('slug' => 'aloe-vera-hot-cold-gel', 'name' => 'Aloe Vera Hot-Cold Gel', 'first' => 'aloe-vera-hot-cold-gel-1.jpg', 'hover' => 'aloe-vera-hot-cold-gel-2.jpg'), + array('slug' => 'aloe-vera-likoer', 'name' => 'Aloe Vera Likör', 'first' => 'aloe-vera-likoer-1.jpg', 'hover' => 'aloe-vera-likoer-2.jpg'), + array('slug' => 'aloe-vera-grappa', 'name' => 'Aloe Vera Grappa', 'first' => 'aloe-vera-grappa-1.jpg', 'hover' => 'aloe-vera-grappa-2.jpg'), + + ),*/ + // 'Wohltuend' => array( + + 1 => array( + array('slug' => 'aloe-vera-gel99', 'name' => 'Aloe Vera Gel 99%', 'first' => 'aloe-vera-gel99-1.jpg', 'hover' => 'aloe-vera-gel99-2.jpg'), + array('slug' => 'aloe-vera-gel86', 'name' => 'Aloe Vera Gel 86%', 'first' => 'aloe-vera-gel86-1.jpg', 'hover' => 'aloe-vera-gel86-2.jpg'), + array('slug' => 'aloe-vera-sos-spray', 'name' => 'Aloe Vera SOS Spray', 'first' => 'aloe-vera-sos-spray-1.jpg', 'hover' => 'aloe-vera-sos-spray-2.jpg'), + array('slug' => 'aloe-vera-saft', 'name' => 'Aloe Vera Saft 500 ml', 'first' => 'aloe-vera-saft-1.jpg', 'hover' => 'aloe-vera-saft-2.jpg'), + array('slug' => 'aloe-vera-saft-250', 'name' => 'Aloe Vera Saft 250 ml', 'first' => 'aloe-vera-saft-250-1.jpg', 'hover' => 'aloe-vera-saft-250-2.jpg'), + array('slug' => 'aloe-vera-lippenbalsam', 'name' => 'Aloe Vera Lippenbalsam', 'first' => 'aloe-vera-lippenbalsam-1.jpg', 'hover' => 'aloe-vera-lippenbalsam-2.jpg'), + array('slug' => 'aloe-vera-hot-cold-gel', 'name' => 'Aloe Vera Hote-Cold Gel', 'first' => 'aloe-vera-hot-cold-gel-1.jpg', 'hover' => 'aloe-vera-hot-cold-gel-2.jpg'), + + ), + // 'Körperpflege' => array( + + 2 => array( + array('slug' => 'aloe-vera-bodylotion', 'name' => 'Aloe Vera Bodylotion', 'first' => 'aloe-vera-bodylotion-1.jpg', 'hover' => 'aloe-vera-bodylotion-2.jpg'), + array('slug' => 'aloe-vera-after-sun', 'name' => 'Aloe Vera After Sun', 'first' => 'aloe-vera-after-sun-lotion-1.jpg', 'hover' => 'aloe-vera-after-sun-lotion-2.jpg'), + array('slug' => 'aloe-vera-handcreme', 'name' => 'Aloe Vera Handcreme', 'first' => 'aloe-vera-handcreme-1.jpg', 'hover' => 'aloe-vera-handcreme-2.jpg'), + array('slug' => 'aloe-vera-lippenbalsam', 'name' => 'Aloe Vera Lippenbalsam', 'first' => 'aloe-vera-lippenbalsam-1.jpg', 'hover' => 'aloe-vera-lippenbalsam-2.jpg'), + array('slug' => 'aloe-vera-duschgel', 'name' => 'Aloe Vera Duschgel', 'first' => 'aloe-vera-duschgel-1.jpg', 'hover' => 'aloe-vera-duschgel-2.jpg'), + array('slug' => 'aloe-vera-shampoo', 'name' => 'Aloe Vera Shampoo', 'first' => 'aloe-vera-shampoo-1.jpg', 'hover' => 'aloe-vera-shampoo-2.jpg'), + array('slug' => 'aloe-vera-emulsion', 'name' => 'Aloe Vera Emulsion', 'first' => 'aloe-vera-emulsion-1.jpg', 'hover' => 'aloe-vera-emulsion-2.jpg'), + array('slug' => 'aloe-vera-koerperbutter', 'name' => 'Aloe Vera Körperbutter', 'first' => 'aloe-vera-koerperbutter-1.jpg', 'hover' => 'aloe-vera-koerperbutter-2.jpg'), + + ), + //'Gesichtspflege' =>array( + + 3 =>array( + array('slug' => 'aloe-vera-gesichtstonic', 'name' => 'Aloe Vera Gesichtstonic', 'first' => 'aloe-vera-gesichtstonic-1.jpg', 'hover' => 'aloe-vera-gesichtstonic-2.jpg'), + array('slug' => 'aloe-vera-reinigungsgel', 'name' => 'Aloe Vera Gesichtsreinigungsgel', 'first' => 'aloe-vera-reinigungsgel-1.jpg', 'hover' => 'aloe-vera-reinigungsgel-2.jpg'), + array('slug' => 'aloe-vera-feuchtigkeitscreme', 'name' => 'Aloe Vera Feuchtigkeitscreme', 'first' => 'aloe-vera-feuchtigkeitscreme-1.jpg', 'hover' => 'aloe-vera-feuchtigkeitscreme-2.jpg'), + array('slug' => 'aloe-vera-tagescreme', 'name' => 'Aloe Vera Tagescreme', 'first' => 'aloe-vera-tagescreme-1.jpg', 'hover' => 'aloe-vera-tagescreme-2.jpg'), + array('slug' => 'aloe-vera-nachtcreme', 'name' => 'Aloe Vera Nachtcreme', 'first' => 'aloe-vera-nachtcreme-1.jpg', 'hover' => 'aloe-vera-nachtcreme-2.jpg'), + array('slug' => 'aloe-vera-serum', 'name' => 'Aloe Vera Serum', 'first' => 'aloe-vera-serum-1.jpg', 'hover' => 'aloe-vera-serum-2.jpg'), + array('slug' => 'aloe-vera-schaummaske', 'name' => 'Aloe Vera Schaummaske', 'first' => 'aloe-vera-schaummaske-1.jpg', 'hover' => 'aloe-vera-schaummaske-2.jpg'), + array('slug' => 'aloe-vera-rasierschaum', 'name' => 'Aloe Vera Rasierschaum', 'first' => 'aloe-vera-rasierschaum-1.jpg', 'hover' => 'aloe-vera-rasierschaum-2.jpg'), + + + ), + // 'Bio Aloe Vera Saft & Co.' => array( + + 4 => array( + array('slug' => 'aloe-vera-saft', 'name' => 'Aloe Vera Saft 500 ml', 'first' => 'aloe-vera-saft-1.jpg', 'hover' => 'aloe-vera-saft-2.jpg'), + array('slug' => 'aloe-vera-saft-250', 'name' => 'Aloe Vera Saft 250 ml', 'first' => 'aloe-vera-saft-250-1.jpg', 'hover' => 'aloe-vera-saft-250-2.jpg'), + array('slug' => 'aloe-vera-likoer', 'name' => 'Aloe Vera Likör', 'first' => 'aloe-vera-likoer-1.jpg', 'hover' => 'aloe-vera-likoer-2.jpg'), + array('slug' => 'aloe-vera-grappa', 'name' => 'Aloe Vera Grappa', 'first' => 'aloe-vera-grappa-1.jpg', 'hover' => 'aloe-vera-grappa-2.jpg'), + + ), + // 'Aktions-Sets' => array( + + 5 => array( + array('slug' => 'aloe-vera-cleaner-set', 'name' => 'Aloe Vera Cleaner Set', 'first' => 'aloe-vera-cleaner-set-1.jpg', 'hover' => 'aloe-vera-cleaner-set-2.jpg'), + array('slug' => 'aloe-vera-anti-aging-set', 'name' => 'Aloe Vera Anti Aging Set', 'first' => 'aloe-vera-anti-aging-set-1.jpg', 'hover' => 'aloe-vera-anti-aging-set-2.jpg'), + array('slug' => 'aloe-vera-deluxe-set', 'name' => 'Aloe Vera Deluxe Set', 'first' => 'aloe-vera-deluxe-set-1.jpg', 'hover' => 'aloe-vera-deluxe-set-2.jpg'), + array('slug' => 'aloe-vera-repair-set', 'name' => 'Aloe Vera Repair Set', 'first' => 'aloe-vera-repair-set-1.jpg', 'hover' => 'aloe-vera-repair-set-2.jpg'), + array('slug' => 'aloe-vera-intensiv-set', 'name' => 'Aloe Vera Intensiv Set', 'first' => 'aloe-vera-intensiv-set-1.jpg', 'hover' => 'aloe-vera-intensiv-set-2.jpg'), + array('slug' => 'aloe-vera-maenner-set', 'name' => 'Aloe Vera Männer Set', 'first' => 'aloe-vera-maenner-set-1.jpg', 'hover' => 'aloe-vera-maenner-set-2.jpg'), + array('slug' => 'aloe-vera-gel-set', 'name' => 'Aloe Vera Gel Set', 'first' => 'aloe-vera-gel-set-1.jpg', 'hover' => 'aloe-vera-gel-set-2.jpg'), + array('slug' => 'aloe-vera-koerper-set', 'name' => 'Aloe Vera Körper Set', 'first' => 'aloe-vera-koerper-set-1.jpg', 'hover' => 'aloe-vera-koerper-set-2.jpg'), + array('slug' => 'aloe-vera-pflege-set', 'name' => 'Aloe Vera Pflege Set', 'first' => 'aloe-vera-pflege-set-1.jpg', 'hover' => 'aloe-vera-pflege-set-2.jpg'), + + + ), + + ); diff --git a/resources/views/_bak/web/products/aloe-vera-after-sun.php b/resources/views/_bak/web/products/aloe-vera-after-sun.php new file mode 100644 index 0000000..e86d60f --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-after-sun.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - Sonnenblumenöl - Jojobaöl - Panthenol

+
    +
  • pflegend und feuchtigkeitsspendend
  • +
  • beruhigende Wirkung
  • +
  • verbessert die Hautregeneration
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-after-sun-lotion-1.jpg', + 'image' => 'aloe-vera-after-sun-lotion-1.jpg' + ), + array('thumb' => 'aloe-vera-after-sun-lotion-2.jpg', + 'image' => 'aloe-vera-after-sun-lotion-2.jpg' + ), + ); + + + + +$price = '19,60 €'; +$content = '200ml'; +$item_no = '70 10 550'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Pflegende und kühlende Lotion mit mit Vitamine A/E , Jojabaöl, Sonnenblumenöl für den ganzen Körper sowie Panthenol. Panthenol fördert die Produktion von Hautzellen. Verbessert die Hautregeneration nach dem Sonnenbad und die Kombination aus Ölen steigert die Hautfeuchte. Die Wirkung von Aloe Vera und Pantherol bei sonnengereizter Haut ist vielen schon bekannt. Seine feuchtigkeitserhaltende Wirkung auch nach dem Sonnenbad ist in verschiedenen Studien belegt worden.

'; +$usage = '

Ein bis mehrmals täglich auf den Körper auftragen.

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Glycerin, Simmondsia Chinensis Seed Oil, Cyclomethicone, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Panthenol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Xanthan Gum, Sodium Hydroxide, Caprylyl Glycol, Phentylpropanol, Potassium Sorbate, Sodium Benzonate, Citric Acid, Parfum, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-anti-aging-set.php b/resources/views/_bak/web/products/aloe-vera-anti-aging-set.php new file mode 100644 index 0000000..1fe8fd2 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-anti-aging-set.php @@ -0,0 +1,57 @@ +Tagescreme - Nachtcreme - Serum

+
    +
  • hochwertige Gesichtspflege
  • +
  • für die tägliche Anwendung
  • +
  • pflegt und regeneriert die Haut
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-anti-aging-set-1.jpg', + 'image' => 'aloe-vera-anti-aging-set-1.jpg' + ), + array('thumb' => 'aloe-vera-anti-aging-set-2.jpg', + 'image' => 'aloe-vera-anti-aging-set-2.jpg' + ), + ); + + + + +$price = '104,90 €'; +$content = '130ml'; +$item_no = '50 60 200'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Eine erfrischende, duftende und leichte Tagescreme mit 40 % Aloe Vera, wirkt porenverfeinernt und sorgt dafür, dass ihre Haut den ganzen Tag mit hochwertigen Vitaminen A/E versorgt wird. + Die feuchtigkeitsregulierende Nachtpflege mit 40 % Aloe Vera Gel und kostbaren Ölen, Sheabutter und einem Vitaminkomplex reguliert über Nacht ihre Haut, während das + exklusive Anti-Aging Serum mit Hyaluron, Oligopeptide, Mineralstoffcocktail und Vitaminkomplex für ein sichtbar frisches, geglättetes und strahlendes Aussehen sorgt.

'; + +$usage = '

Tagescreme: Je nach Bedarf ein bis mehrmals täglich auf die Gesichtshaut Auftragen. Ideal als Make-up Grundlage.

+

Nachtcreme: Abends nach der Reinigung großzügig auf die Gesichtshaut auftragen.

+

Serum: Am Morgen und Abend nach der Reinigung unter die Gesichtspflege geben.

'; + +$ingredients = '

Tagescreme: Aloe Barbadensis Gel, Aqua, Cetearyl Alcohol, Caprylic/Capric Triglyceride, Methylpropanediol, Glycerin, Isopropyl Myristate, Persea Gratissima Oil, Methyl Glucose Sesquistearate, Sorbitan Stearate, Butyrospermum Parkii Butter, Vitis Vinifera Seed Oil, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Sodium Acrylate/Acryloyldimethyltaurate/Dimethylacrylamide Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene

+

Nachtcreme: Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Cetearyl Alcohol, Methylpropanediol, Glycerin, Vitis Vinifera Seed Oil, Persea Gratissima Oil, Isopropyl Myristate, Methyl Glucose Sesquistearate, Bulyrospermum Parkii Butter, Sorbitan Stearate, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Sodium Acrylate Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene

+

Serum: Aloe Barbadensis Gel, Aqua, Methylpropanediol, Isopropyl Myristate, Hidrolyzed Millet, Caprylic/Capric Triglyceride, Glycerin, Cyclomethicone, Magnesium Aspartate, Zinc Gluconate, Copper Gluconate, Calcium Gluconate, Ascorbyl Palmitate, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Sodium Hyaluronate, Panthenol, Xanthan Gum, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Ethylhexylglycerin, Sodium Hydroxide, Phenoxyethanol, Parfum, Limonene

'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-bodylotion.php b/resources/views/_bak/web/products/aloe-vera-bodylotion.php new file mode 100644 index 0000000..7072928 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-bodylotion.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - Sheabutter - Panthenol - Avocadoöl

+
    +
  • pflegend und feuchtigkeitsspendend
  • +
  • erfrischende Bodylotion
  • +
  • verbessert die Hautregeneration
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-bodylotion-1.jpg', + 'image' => 'aloe-vera-bodylotion-1.jpg' + ), + array('thumb' => 'aloe-vera-bodylotion-2.jpg', + 'image' => 'aloe-vera-bodylotion-2.jpg' + ), + ); + + + + +$price = '16,95 €'; +$content = '200ml'; +$item_no = '70 10 500'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Pflegende Body Lotion mit kostbaren Ölen, Avocadoöl, Panthenol, Sheabutter und Vitamin A/E. Diese hochwertige Lotion mit frischem Duft eignet sich hervorragend für die tägliche Pflege. Besonders nach dem Duschen oder Baden benötigt die Haut viel Feuchtigkeit. Aloe Vera und Panthenol geben der Haut die Feuchtigkeit zurück. Vitamine A/E verbessert das Hautbild und schützt die Haut vor vorzeitiger Alterung. Diese Body Lotion ist sehr ergiebig und hinterlässt einen angenehmen frischen Duft auf der Haut.

'; +$usage = '

Zur Körperpflege täglich auftragen und einmassieren.

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Cetearyl Alcohol, Glycerin, Isopropyl Myristate, Persea Gratissima Oil, Methyl Glucose Sesquistearate, Butyrospermum Parkii Butter, Sorbitan Stearate, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-cleaner-set.php b/resources/views/_bak/web/products/aloe-vera-cleaner-set.php new file mode 100644 index 0000000..a9d549c --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-cleaner-set.php @@ -0,0 +1,53 @@ +Gesichtsreinigungsgel - Gesichtstonic

+
    +
  • porentiefe Gesichtsreinigung mit Panthenol
  • +
  • erfrischendes Tonic mit Gojibeere
  • +
  • die perfekte Vorbereitung für die Aloe Kosmetik
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-cleaner-set-1.jpg', + 'image' => 'aloe-vera-cleaner-set-1.jpg' + ), + array('thumb' => 'aloe-vera-cleaner-set-2.jpg', + 'image' => 'aloe-vera-cleaner-set-2.jpg' + ), + ); + + + + +$price = '35,90 €'; +$content = '400ml'; +$item_no = '50 60 100'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Das Reinigungsgel mit 90% Aloe vera und Panthenol ist perfekt für die Grundreinigung des Gesichts. Im Anschluss folgt die porentiefe Reinigung mit dem Gesichtstonic - ein vitalstoffreiches Tonic mit Gojibeere, Panthenol und Hyaluron.

'; + +$usage = '

Gesichtsreinigungsgel: Am Morgen und am Abend das Gesichtstonic nach der Gesichtsreinigung mit dem Gesichtsreinigungsgel auf ein Wattepad geben und damit über das Gesicht, Hals und Dekollete sanft streichen.

+

Gesichtstonic: Am Morgen und am Abend das Gesichtstonic nach der Gesichtsreinigung mit dem Gesichtsreinigungsgel auf ein Wattepad geben und damit über das Gesicht, Hals und Dekollete sanft streichen.

'; + +$ingredients = '

Reinigungsgel: Aloe Barbadensis Gel, Coco Glucoside, Sodium Cocoyl Apple Amino Acids, Hexylene Glycol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Tocopheryl Acetate, Phenoxyethanol, Ethylhexylglycerin, Sodium Benzoate, Polassium Sorbate, Sodium Hydroxide, Citric Acid, Parfum, Limonene

+

Gesichtstonic: Aloe Barbadensis Gel, Glycerin, Lycium Barbarum Fruit Extract, Sorbic Acid, Panthenol, Sodium Hyaluronate, Caprylyl/Capryl Glucoside, Sodium Benzoate, Potassium Sorbate, Citric Acid, Parfum, Tocopherol, Benzyl Alcohol, Benzoic Acid, Limonene

'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-deluxe-set.php b/resources/views/_bak/web/products/aloe-vera-deluxe-set.php new file mode 100644 index 0000000..6c8e668 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-deluxe-set.php @@ -0,0 +1,59 @@ +Tonic - Reinigungsgel - Tagescreme - Nachtcreme - Serum

+
    +
  • Gesichtspflege Komplettsett
  • +
  • mit reiner Bio Aloe vera
  • +
  • hochwertige Vitamine und Vitalstoffe
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-deluxe-set-1.jpg', + 'image' => 'aloe-vera-deluxe-set-1.jpg' + ), + array('thumb' => 'aloe-vera-deluxe-set-2.jpg', + 'image' => 'aloe-vera-deluxe-set-2.jpg' + ), + ); + + + + +$price = '136,90 €'; +$content = '580 ml'; +$item_no = '50 60 300'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Aloe Vera Gesichtstonic mit Aloe Vera Barbadensis, Hyaluron, Panthenol und Gojibeere für einen reinen, strahlenden und frischen Teint erfrischt und klärt die Haut. Ein sanftes Aloe Vera Gesichtsreinigungsgel zur intensiven Reinigung der Gesichtshaut dringt tief unter die Haut ein und befreit das Gesicht von Schmutz, Make-Up, Talg und abgestorbenen Hautzellen. Eine erfrischende, duftende und leichte Tagescreme mit 40 % Aloe Vera, wirkt porenverfeinernt und sorgt dafür, dass ihre Haut den ganzen Tag mit hochwertigen Vitaminen A/E versorgt wird. Die feuchtigkeitsregulierende Nachtpflege mit 40 % Aloe Vera Gel und kostbaren Ölen, Sheabutter und einem Vitaminkomplex reguliert über Nacht ihre Haut. Eine spezielle Pflege für Gesicht, Hals und Dekollete. Exklusives Anti-Aging Serum mit Hyaluron, Oligopeptide, Mineralstoffcocktail und Vitaminkomplex für ein sichtbar frisches, geglättetes und strahlendes Aussehen.

'; + +$usage = '

Gesichtstonic: Am Morgen und am Abend das Gesichtstonic nach der Gesichtsreinigung mit dem Gesichtsreinigungsgel auf ein Wattepad geben und damit über das Gesicht, Hals und Dekollete sanft streichen.

+

Reinigungsgel: Zur täglichen Gesichtsreinigung (morgens und abends) geben Sie eine kleine Menge in die angefeuchteten Hände, verteilen es im Gesicht und spülen es mit warmen Wasser ab.

+

Tagescreme: Je nach Bedarf ein bis mehrmals täglich auf die Gesichtshaut Auftragen. Ideal als Make-up Grundlage.

+

Nachtcreme: Abends nach der Reinigung großzügig auf die Gesichtshaut auftragen.

+

Serum: Am Morgen und Abend nach der Reinigung unter die Gesichtspflege geben.

'; + +$ingredients = '

Gesichtstonic: Aloe Barbadensis Gel, Glycerin, Lycium Barbarum Fruit Extract, Sorbic Acid, Panthenol, Sodium Hyaluronate, Caprylyl/ Capryl Glucoside, Sodium Benzoate, Potassium Sorbate, Citric Acid, Parfum, Tocopherol, Benzyl Alcohol, Benzoic Acid, Limonene.

+

Reinigungsgel: Aloe Barbadensis Gel, Coco Glucoside, Sodium Cocoyl Apple Amino Acids, Hexylene Glycol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Tocopheryl Acetate, Phenoxyethanol, Ethylhexylglycerin, Sodium Benzoate, Polassium Sorbate, Sodium Hydroxide, Citric Acid, Parfum, Limonene

+

Tagescreme: Aloe Barbadensis Gel, Aqua, Cetearyl Alcohol, Caprylic/Capric Triglyceride, Methylpropanediol, Glycerin, Isopropyl Myristate, Persea Gratissima Oil, Methyl Glucose Sesquistearate, Sorbitan Stearate, Butyrospermum Parkii Butter, Vitis Vinifera Seed Oil, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Sodium Acrylate/Acryloyldimethyltaurate/Dimethylacrylamide Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene

+

Nachtcreme: Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Cetearyl Alcohol, Methylpropanediol, Glycerin, Vitis Vinifera Seed Oil, Persea Gratissima Oil, Isopropyl Myristate, Methyl Glucose Sesquistearate, Bulyrospermum Parkii Butter, Sorbitan Stearate, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Sodium Acrylate Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene

+

Serum: Aloe Barbadensis Gel, Aqua, Methylpropanediol, Isopropyl Myristate, Hidrolyzed Millet, Caprylic/Capric Triglyceride, Glycerin, Cyclomethicone, Magnesium Aspartate, Zinc Gluconate, Copper Gluconate, Calcium Gluconate, Ascorbyl Palmitate, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Sodium Hyaluronate, Panthenol, Xanthan Gum, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Ethylhexylglycerin, Sodium Hydroxide, Phenoxyethanol, Parfum, Limonene

'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-duschgel.php b/resources/views/_bak/web/products/aloe-vera-duschgel.php new file mode 100644 index 0000000..71a7181 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-duschgel.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - mit Panthenol

+
    +
  • erfrischendes und pflegendes Duschgel
  • +
  • sehr gut für trockene Haut geeignet
  • +
  • spendet Feuchtigkeit
  • +
  • reinigt saft und hautschonend
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-duschgel-1.jpg', + 'image' => 'aloe-vera-duschgel-1.jpg' + ), + array('thumb' => 'aloe-vera-duschgel-2.jpg', + 'image' => 'aloe-vera-duschgel-2.jpg' + ), + ); + + + + +$price = '15,90 €'; +$content = '200ml'; +$item_no = '70 10 750'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Erfrischendes, pflegendes und hautschonendes Duschgel mit Aloe Vera und Panthenol. Mit seinem frischen Duft reinigt und pflegt es sanft, ohne den natürlichen Säureschutzmantel der Haut anzugreifen. Auch sehr gut geeignet für trockene und zu Irritationen neigende Haut. Wohltuend auch nach dem Sonnenbad. Bei Neurodermitis und Schuppenflechte zu empfehlen. Trocknet die Haut nicht aus und spendet Feuchtigkeit.

'; +$usage = '

Mit Wasser aufschäumen.

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua , Cocamide DEA, Panthenol, Cocamidopropyl Betaine, Magnesium Chloride, Phenoxyethanol, Benzoic Acid, Dehydroacetic Acid, Potassium Sorbate, Sodium Benzoate, Citric Acid, Parfum.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-emulsion.php b/resources/views/_bak/web/products/aloe-vera-emulsion.php new file mode 100644 index 0000000..1773ce0 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-emulsion.php @@ -0,0 +1,50 @@ +Aloe Vera mit Jojobaöl und Mandelöl

+
    +
  • gegen trockene und spröde Haut
  • +
  • wirkt beruhigend
  • +
  • pflegt schuppige Haut
  • +
  • verbessert das Feuchthaltvermögen
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-emulsion-1.jpg', + 'image' => 'aloe-vera-emulsion-1.jpg' + ), + array('thumb' => 'aloe-vera-emulsion-2.jpg', + 'image' => 'aloe-vera-emulsion-2.jpg' + ), + ); + + + + +$price = '18,90 €'; +$content = '200ml'; +$item_no = '70 10 450'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Diese leichte Emulsion wirkt beruhigend bei beanspruchter Haut. Durch die wertvollen Inhaltsstoffe von Jojobaöl und Vitamin E eignet sie sich die Emulsion hervorragend für sehr trockene und spröde Haut. Auch anwendbar z.B. bei einem Fersenriss. Nach der Sauna, Dusche oder Bad eine wohltuende Pflege. Vor Gebrauch schütteln!

'; +$usage = '

Je nach Bedarf auf die Haut auftragen.

'; + +$ingredients = '

Prunus Amygdalus Dulcis Oil, Aloe Barbadensis Gel, Laureth-3, Simmondsia Chinensis Seed Oil, Tocopheryl Acetate, Sodium Benzoate, Potassium Sorbate, Citric Acid, Benzyl Alcohol, Benzoic Acid, Tocopherol, Parfum, D-Limonene, Linalool.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-feuchtigkeitscreme.php b/resources/views/_bak/web/products/aloe-vera-feuchtigkeitscreme.php new file mode 100644 index 0000000..b8b6b0a --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-feuchtigkeitscreme.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - Jojobaöl - Panthenol - Vitamin A/E

+
    +
  • schützt und glättet die Haut
  • +
  • feuchtigkeitsspendend
  • +
  • natürlicher Sonnenschutzfaktor
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-feuchtigkeitscreme-1.jpg', + 'image' => 'aloe-vera-feuchtigkeitscreme-1.jpg' + ), + array('thumb' => 'aloe-vera-feuchtigkeitscreme-2.jpg', + 'image' => 'aloe-vera-feuchtigkeitscreme-2.jpg' + ), + ); + + + + +$price = '25,90 €'; +$content = '50ml'; +$item_no = '70 10 100'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Eine hochwertige Feuchtigkeitspflege für die Gesichtshaut mit Vitamine A/E sowie Panthenol und Jojobaöl. Die Feuchtigkeitscreme mit 40 % Aloe Vera Gel schützt und glättet die Haut, wirkt juckreitzstillend und ist für jeden Hauttyp und Alter geeignet. Jojobaöl und Aloe Vera enthält viel Vitamin A/E und bildet so einen natürlichen Sonnenschutzfaktor. Auch sehr gut unter dem Make Up und bei junger zu Akne neigender Haut anwendbar. Sehr angenehm nach der Rasur.

'; +$usage = '

Je nach Bedarf ein bis mehrmals täglich nach der Pflege auf die Gesichtshaut auftragen. Ideal als Make-up Grundlage

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Glycerin, Simmondsia Chinensis Seed Oil, Cyclomethicone, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Panthenol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Xanthan Gum, Sodium Hydroxide, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Parfum, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-gel-set.php b/resources/views/_bak/web/products/aloe-vera-gel-set.php new file mode 100644 index 0000000..3bf908d --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-gel-set.php @@ -0,0 +1,55 @@ +Gel 99% - Gel Plus 86% mit Urea - Heiß & Kalt Gel

+
    +
  • Aloe vera Gels aus dem reinen Blattmark
  • +
  • SOS Gels bei Hautproblemen
  • +
  • Schmerzgel bei Verspannungen
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-gel-set-1.jpg', + 'image' => 'aloe-vera-gel-set-1.jpg' + ), + array('thumb' => 'aloe-vera-gel-set-2.jpg', + 'image' => 'aloe-vera-gel-set-2.jpg' + ), + ); + + + + +$price = '49,90 €'; +$content = '350 ml'; +$item_no = '50 60 700'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Das Aloe Vera Barbadensis Gel 99% aus dem reinen filetierten Blattmark aus biologischem Anbau mit einem sehr hohen Aloverose Gehalt von ca. 1.500 mg/l, hat entzündungshemmende Eigenschaften und unterstützt die natürliche Regeneration. Das 86er Gel mit Urea hat etwas weniger Aloe vera Gel, dafür aber Urea, was zusätzlich feuchtigkeitsspendend wirkt. Die Kombination von Aloe Vera Gel, Chiliöl und Menthol beim Heiß & Kalt Gel vermittelt ein angenehmes Wärmegefühl mit Tiefenwirkung. Es lockert und entspannt die Muskeln, z.B. im Nacken, Rücken oder Beinbereich.

'; + +$usage = '

Aloe vera Gel 99%: mehrmals täglich auf entsprechende Stellen auftragen

+

Aloe vera Gel Plus 86%: mehrmals täglich auf entsprechende Stellen auftragen • Hinweis: Brennt kurz bei frischen Verletzungen der Haut

+

Heiß & Kalt Gel: auf die gewünschten Stellen auftragen und einmassieren • Hinweis: Nicht auf Schleimhäute, offene Stellen oder Augen bringen • nach jeder Anwendung Hände gründlich waschen

'; + +$ingredients = '

Aloe vera Gel 99%: Das Aloe Vera Barbadensis Gel 99% aus dem reinen filetierten Blattmark aus biologischem Anbau mit einem sehr hohen Aloverose Gehalt von ca. 1.500 mg/l, hat feuchtigkeitsspendende Eigenschaften und unterstützt die natürliche Regeneration. Bei sonnengereizter Haut, Insektenstichen, leichten Hautverletzungen und Verbrennungen pur aufgetragen, wird es als kühlend und beruhigend empfunden und sollte in keiner Naturapotheke fehlen

+

Aloe vera gel Plus 86%: Aloe Barbadensis Gel, Methylpropanediol, Caprylyl Glycol, Phenylpropanol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Triethanolamine, Potassium Sorbate, Sodium Benzoate, Citric Acid

+

Heiß & Kalt Gel: Aloe Barbadensis Gel, Alcohol denat., Methylpropanediol, Capsicum Annuum Extract, PEG-40 Hydrogenated Castor Oil, Menthol, Camphor, Helianthus Annuus Seed Oil, Mentha Arvensis Leaf Oil, Acrylates/C 10-30 Alkyl Acrylate Crosspolymer, Caprylyl Glycol, Phenylpropanol, Citric Acid, Triethanolamin, Sodium Benzoate, Potassium Sorbate, Limonene

'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-gel86.php b/resources/views/_bak/web/products/aloe-vera-gel86.php new file mode 100644 index 0000000..c61fb46 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-gel86.php @@ -0,0 +1,50 @@ +mit Urea

+
    +
  • SOS-Gel bei Hautproblemen
  • +
  • feuchtigkeitsspendende Wirkung
  • +
  • antibakteriell und entzündungshemmend
  • +
  • juckreizstillende Wirkung
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-gel86-1.jpg', + 'image' => 'aloe-vera-gel86-1.jpg' + ), + array('thumb' => 'aloe-vera-gel86-2.jpg', + 'image' => 'aloe-vera-gel86-2.jpg' + ), + ); + + + + +$price = '14,95 €'; +$content = '100ml'; +$item_no = '80 20 100'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Aloe Vera Gel Plus 86% lässt leichte Schwellungen und Entzündungen schon nach kurzer Zeit abklingen. Durch den Wirkstoff Urea hat es juckreizstillende, entzündungshemmende Eigenschaften. Es wirkt schmerzlindernd und blutstillend bei Brand-, Schürf- und Kratzwunden. Auch bei hartnäckigen Fällen wie Akne, Gürtelrose, Schuppenflechte, Neurodermitis und Herpes sowie bei Zerrungen und Verstauchungen hat sich Aloe Vera Plus bereits bewährt.

'; +$usage = '

Mehrmals täglich auf entsprechende Stellen auftragen. Hinweis: Brennt kurz bei frischen Verletzungen der Haut

'; + +$ingredients = '

Aloe Barbadensis Gel, Methylpropanediol, Caprylyl Glycol, Phenylpropanol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Triethanolamine, Potassium Sorbate, Sodium Benzoate, Citric Acid

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-gel99.php b/resources/views/_bak/web/products/aloe-vera-gel99.php new file mode 100644 index 0000000..4c12bfb --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-gel99.php @@ -0,0 +1,50 @@ +Pures Bio Premium Aloe vera

+
    +
  • bei Sonnenbrand & leichten Verbrennungen
  • +
  • bei Insektenstichen
  • +
  • hilft der Haut zu regenerieren
  • +
  • kühlt und beruhigt die Haut
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-gel99-1.jpg', + 'image' => 'aloe-vera-gel99-1.jpg' + ), + array('thumb' => 'aloe-vera-gel99-2.jpg', + 'image' => 'aloe-vera-gel99-2.jpg' + ), + ); + + + + +$price = '12,95 €'; +$content = '100ml'; +$item_no = '80 20 100'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Das Aloe Vera Barbadensis Gel 99% aus dem reinen filetierten Blattmark aus biologischem Anbau mit einem sehr hohen Aloverose Gehalt von ca. 1.600 mg/l, hat feuchtigkeitsspendende Eigenschaften und unterstützt die natürliche Regeneration. Bei sonnengereizter Haut, Insektenstichen, leichten Hautverletzungen und Verbrennungen pur aufgetragen, wird es als kühlend und beruhigend empfunden und sollte in keiner Naturapotheke fehlen.

'; +$usage = '

mehrmals täglich auf entsprechende Stellen auftragen

'; + +$ingredients = '

Aloe Barbadensis Gel, Methylpropanediol, Caprylyl Glycol, Phenylpropanol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Triethanolamine, Potassium Sorbate, Sodium Benzoate, Citric Acid

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-gesichtstonic.php b/resources/views/_bak/web/products/aloe-vera-gesichtstonic.php new file mode 100644 index 0000000..9f349b2 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-gesichtstonic.php @@ -0,0 +1,51 @@ +Aloe Vera 40 % - Hyaluron - Gojibeere - Panthenol

+
    +
  • erfrischt und klärt die Haut
  • +
  • wirkt juckreizstillend
  • +
  • verbessert das Feuchthaltevermögen
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-gesichtstonic-1.jpg', + 'image' => 'aloe-vera-gesichtstonic-1.jpg' + ), + array('thumb' => 'aloe-vera-gesichtstonic-2.jpg', + 'image' => 'aloe-vera-gesichtstonic-2.jpg' + ), + ); + + + + +$price = '19,90 €'; +$content = '200ml'; +$item_no = '70 10 120'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Aloe Vera Gesichtstonic mit Aloe Vera Barbadensis, Hyaluron, Panthenol und Gojibeere für einen reinen, strahlenden und frischen Teint. Erfrischt und klärt die Haut nach der Reinigung und ist für jeden Hauttyp, auch für empfindliche Haut geeignet.

+

Panthenol verbessert das Feuchthaltevermögen, besonders bei trockener, spröder und schuppiger Haut, wirkt juckreizlindernd und entspannt die Haut. Nach der Reinigung mit dem Gesichtsreinigungsgel und Gesichtstonic ist die Haut optimal für alle weiteren Pflegeprodukte vorbereitet und kann die Wirkstoffe besser aufnehmen.

'; +$usage = '

Am Morgen und am Abend das Gesichtstonic nach der Gesichtsreinigung mit dem Gesichtsreinigungsgel auf ein Wattepad geben und damit über das Gesicht, Hals und Dekollete sanft streichen.

'; + +$ingredients = '

Aloe Barbadensis Gel, Glycerin, Lycium Barbarum Fruit Extract, Sorbic Acid, Panthenol, Sodium Hyaluronate, Caprylyl/ Capryl Glucoside, Sodium Benzoate, Potassium Sorbate, Citric Acid, Parfum, Tocopherol, Benzyl Alcohol, Benzoic Acid, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-grappa.php b/resources/views/_bak/web/products/aloe-vera-grappa.php new file mode 100644 index 0000000..c3a67f7 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-grappa.php @@ -0,0 +1,48 @@ +Spanien küsst Italien

+
    +
  • mit feinstem italienischem Grappa
  • +
  • perfekt zu Edelbitterschokolade
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-grappa-1.jpg', + 'image' => 'aloe-vera-grappa-1.jpg' + ), + array('thumb' => 'aloe-vera-grappa-2.jpg', + 'image' => 'aloe-vera-grappa-2.jpg' + ), + ); + + + + +$price = '24,90 €'; +$content = '350 ml'; +$item_no = '70 80 600'; +//ablegen unter /assets/images/ +$icons = "product_icons_2.jpg"; + +$description = '

Hier wurde Aloe Vera in feinstem italienischem Grappa mazeriert. Herausgekommen ist eine herrliche Melange aus typisch würzigen Tresternoten und perfekt eingebundener Aloe Vera.

'; +$usage = '

Kleines Gläschen nach dem Essen - vorher Taxi bestellen ...

'; + +$ingredients = '

Feinster, italienischer Grappa mazeriert; 40 % vol.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-handcreme.php b/resources/views/_bak/web/products/aloe-vera-handcreme.php new file mode 100644 index 0000000..c050e60 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-handcreme.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - Olivenöl - Sheabutter - Panthenol

+
    +
  • pflegend Hand- und Fußcreme
  • +
  • zieht schnell ein
  • +
  • hinterlässt keinen Fettfilm
  • +
  • schützende Wirkung
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-handcreme-1.jpg', + 'image' => 'aloe-vera-handcreme-1.jpg' + ), + array('thumb' => 'aloe-vera-handcreme-2.jpg', + 'image' => 'aloe-vera-handcreme-2.jpg' + ), + ); + + + + +$price = '16,95 €'; +$content = '100ml'; +$item_no = '70 10 650'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Hochwertige Hand & Fußcreme mit Olivenöl, Sheabutter, Panthenol und Vitamin A/E. Die angenehm duftende Creme zieht schnell ein und hinterlässt keinen Fettfilm auf der Haut. Hochwertige Inhaltsstoffe garantieren optimale Pflege mit schützender Wirkung für Ihre Hände und Füße.

'; +$usage = '

Nach Bedarf auf Hände oder Füße auftragen.

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Cetearyl Alcohol, Glycerin, Methyl Glucose Sesquistearate, Isopropyl Myristate, Butyrospermum Parkii Butter, Sorbitan Stearate, Simmondsia Chinensis Seed Oil, Olea Europaea Oil, Dimethicone, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Xanthan Gum, Sodium Citrate, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-hot-cold-gel.php b/resources/views/_bak/web/products/aloe-vera-hot-cold-gel.php new file mode 100644 index 0000000..c2da7f4 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-hot-cold-gel.php @@ -0,0 +1,49 @@ +Aloe Vera 83 % - mit Chilli und Menthol

+
    +
  • für angenehmes Wärmegefühl
  • +
  • entspannt Muskeln, Nacken und Rücken
  • +
  • gut geeignet für Prellungen und Zerrungen
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-hot-cold-gel-1.jpg', + 'image' => 'aloe-vera-hot-cold-gel-1.jpg' + ), + array('thumb' => 'aloe-vera-hot-cold-gel-2.jpg', + 'image' => 'aloe-vera-hot-cold-gel-2.jpg' + ), + ); + + + + +$price = '29,90 €'; +$content = '150 ml'; +$item_no = '80 20 300'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Die Kombination von Aloe Vera Gel, Chiliöl und Menthol vermittelt ein angenehmes Wärmegefühl mit Tiefenwirkung. Es lockert und entspannt die Muskeln, z.B. im Nacken, Rücken oder Beinbereich. Durch den Heiß-&-Kalt-Effekt werden Sehnen und Gelenkprobleme gelindert. Sehr gut geeignet bei Prellungen, Zerrungen, Muskelkater und Hexenschuss. Nicht auf Schleimhäute offene Stellen oder Augen bringen. Nach jeder Anwendung die Hände gründlich waschen.

'; +$usage = '

Auf die gewünschten Stellen auftragen und einmassieren • Hinweis: Nicht auf Schleimhäute, offene Stellen oder Augen bringen • nach jeder Anwendung Hände gründlich waschen

'; + +$ingredients = '

Aloe Barbadensis Gel, Alcohol denat., Methylpropanediol, Capsicum Annuum Extract, PEG-40 Hydrogenated Castor Oil, Menthol, Camphor, Helianthus Annuus Seed Oil, Mentha Arvensis Leaf Oil, Acrylates/C 10-30 Alkyl Acrylate Crosspolymer, Caprylyl Glycol, Phenylpropanol, Citric Acid, Triethanolamin, Sodium Benzoate, Potassium Sorbate, Limonene

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-intensiv-set.php b/resources/views/_bak/web/products/aloe-vera-intensiv-set.php new file mode 100644 index 0000000..20937a4 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-intensiv-set.php @@ -0,0 +1,56 @@ +Tagescreme - Nachtcreme - Schaummaske

+
    +
  • 24 h Gesichtspflege
  • +
  • hoher Aloe vera Anteil
  • +
  • hochwertige Vitamine und Vitalstoffe
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-intensiv-set-1.jpg', + 'image' => 'aloe-vera-intensiv-set-1.jpg' + ), + array('thumb' => 'aloe-vera-intensiv-set-2.jpg', + 'image' => 'aloe-vera-intensiv-set-2.jpg' + ), + ); + + + + +$price = '64,50 €'; +$content = '150 ml'; +$item_no = '50 60 500'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Eine erfrischende, duftende und leichte Tagescreme mit 40 % Aloe Vera, wirkt porenverfeinernt und sorgt dafür, dass ihre Haut den ganzen Tag mit hochwertigen Vitaminen A/E versorgt wird. Die feuchtigkeitsregulierende Nachtpflege mit 40 % Aloe Vera Gel und kostbaren Ölen, Sheabutter und einem Vitaminkomplex reguliert über Nacht ihre Haut. Durch die mit dem Vitaminkomplex angereicherte Sheabutter und dem Avocadoöl ist die Nachtcreme für sensible, trockene und anspruchsvolle Haut geeignet. Die pflegende und feuchtigkeitsspendende Schaummaske mit Reiskeimöl, Panthenol und Weizenproteinen verwöhnt Ihre Haut. Die erfrischend duftende Schaummaske versorgt die Haut optimal mit Feuchtigkeit, verbessert die Hautregeneration, lindert Hautreizungen und Rötungen.

'; + +$usage = '

Tagescreme: Am Morgen und am Abend das Gesichtstonic nach der Gesichtsreinigung mit dem Gesichtsreinigungsgel auf ein Wattepad geben und damit über das Gesicht, Hals und Dekollete sanft streichen.

+

Nachtcreme: Zur täglichen Gesichtsreinigung (morgens und abends) geben Sie eine kleine Menge in die angefeuchteten Hände, verteilen es im Gesicht und spülen es mit warmen Wasser ab.

+

Schaummaske: vor Gebrauch schütteln • kleine Menge 5-10 min einwirken lassen • mit laufwarmem Wasser abwaschen

'; + +$ingredients = '

Tagescreme: Aloe Barbadensis Gel, Glycerin, Lycium Barbarum Fruit Extract, Sorbic Acid, Panthenol, Sodium Hyaluronate, Caprylyl/ Capryl Glucoside, Sodium Benzoate, Potassium Sorbate, Citric Acid, Parfum, Tocopherol, Benzyl Alcohol, Benzoic Acid, Limonene.

+

Nachtcreme: Aloe Barbadensis Gel, Coco Glucoside, Sodium Cocoyl Apple Amino Acids, Hexylene Glycol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Tocopheryl Acetate, Phenoxyethanol, Ethylhexylglycerin, Sodium Benzoate, Polassium Sorbate, Sodium Hydroxide, Citric Acid, Parfum, Limonene

+

Schaummaske: Aloe Barbadensis Gel, Aqua, Butane, Oryza Sativa Bran Oil, Isopropyl Myristate, Propylene Glycol, Propane, Ceteareth-25, Ceteareth-6, Cetearyl Alcohol, Isobutane, Allantoin, Hydrolyzed Wheat Protein, Panthenol, Cocamidopropyl Betaine, Polyquaternium-11, Lactic Acid, Citric Acid, Sodium Benzoate, Potassium Sorbate, Parfum, Limonene

+

'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-koerper-set.php b/resources/views/_bak/web/products/aloe-vera-koerper-set.php new file mode 100644 index 0000000..ab3add6 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-koerper-set.php @@ -0,0 +1,55 @@ +Duschgel - Shampoo - Bodylotion

+
    +
  • Komplettset für die Körperwäsche
  • +
  • für sensible Haut
  • +
  • mit Bio Aloe für sanfte Pflege
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-koerper-set-1.jpg', + 'image' => 'aloe-vera-koerper-set-1.jpg' + ), + array('thumb' => 'aloe-vera-koerper-set-2.jpg', + 'image' => 'aloe-vera-koerper-set-2.jpg' + ), + ); + + + + +$price = '39,90 €'; +$content = '600 ml'; +$item_no = '50 60 800'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Erfrischendes, pflegendes und hautschonendes Duschgel mit Aloe Vera und Panthenol. Mit seinem frischen Duft reinigt und pflegt es sanft, ohne den natürlichen Säureschutzmantel der Haut anzugreifen. Das milde Aloe Vera Shampoo hat einen erfrischenden Duft und vitalisiert den Haarschaft und die Kopfhaut. Weizenkeimproteine unterstützen die leichte Kämmbarkeit des Haares. Pflegende Body Lotion mit kostbaren Ölen, Avocadoöl, Panthenol, Sheabutter und Vitamin A/E. Diese hochwertige Lotion mit frischem Duft eignet sich hervorragend für die tägliche Pflege.

'; + +$usage = '

Duschgel: Mit Wasser aufschäumen

+

Shampoo: Anfänglich ruhig zweimal die Haare mit dem Shampoo waschen • der Effekt der leichten Kämmbarkeit stellt sich nach ca. 10-15 Haarwäschen ein

+

Bodylotion: Zur Körperpflege täglich auftragen und einmassieren

'; + +$ingredients = '

Duschgel: Aloe Barbadensis Gel, Aqua , Cocamide DEA, Panthenol, Cocamidopropyl Betaine, Magnesium Chloride, Phenoxyethanol, Benzoic Acid, Dehydroacetic Acid, Potassium Sorbate, Sodium Benzoate, Citric Acid, Parfum

+

Shampoo: Aloe Barbadensis Gel, Aqua, Sodium Laureth Sulfate, Cocamide DEA, Coco Glucoside, Glycol Distearate, Cocamide MEA, Laureth-10, Disodium Laureth-3 Sulfosuccinate, Cocamidopropyl Betaine, Magnesium Chloride, Polyquaternium-11, Hydrolyzed Wheat Protein, Phenoxyethanol, Benzoic Acid, Dehydroacetic Acid, Potassium Sorbate, Sodium Benzoate, Citric Acid, Parfum

+

Bodylotion: Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Cetearyl Alcohol, Glycerin, Isopropyl Myristate, Persea Gratissima Oil, Methyl Glucose Sesquistearate, Butyrospermum Parkii Butter, Sorbitan Stearate, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene

'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-koerperbutter.php b/resources/views/_bak/web/products/aloe-vera-koerperbutter.php new file mode 100644 index 0000000..2349d78 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-koerperbutter.php @@ -0,0 +1,50 @@ +Aloe Vera mit Kokosöl und Bienenwachs

+
    +
  • für trockene und spröde Haut
  • +
  • feuchtigkeitsspendend
  • +
  • angenehm frischer Duft
  • +
  • verwöhnt und pflegt die Haut
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-koerperbutter-1.jpg', + 'image' => 'aloe-vera-koerperbutter-1.jpg' + ), + array('thumb' => 'aloe-vera-koerperbutter-2.jpg', + 'image' => 'aloe-vera-koerperbutter-2.jpg' + ), + ); + + + + +$price = '8,95 €'; +$content = '50ml'; +$item_no = '70 10 600'; +//ablegen unter /assets/images/ +$icons = "product_icons_2.jpg"; + +$description = '

Die Aloe Vera Körperbutter mit Kokosöl und Bienenwachs ist Dank ihrer reichhaltigen Inhaltsstoffe auch für sehr trockene Körperregionen wie z. B. Schienbeine, Dekolleté und Ellenbogen hervorragend geeignet. Eine angenehme Körperpflege, nach dem Duschen auf der feuchten Haut verteilen. Nach dem Fußbad eine Fußmassage, verwöhnt und pflegt die Füße. Die afrikanische Noni Frucht gibt ihr einen angenehmen frischen Duft der sehr lange anhält.

'; +$usage = '

Je nach Bedarf auf die Haut auftragen.

'; + +$ingredients = '

Cocos Nucifera Oil, Cera Alba, Aloe Barbadensis Gel, Parfum, Coumarin, Limonene Linalool.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-likoer.php b/resources/views/_bak/web/products/aloe-vera-likoer.php new file mode 100644 index 0000000..8009ef2 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-likoer.php @@ -0,0 +1,49 @@ +Mit feinstem Weingeist

+
    +
  • feinblumiger Likör
  • +
  • fruchtige Note
  • +
  • bitter-süßer Abgang
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-likoer-1.jpg', + 'image' => 'aloe-vera-likoer-1.jpg' + ), + array('thumb' => 'aloe-vera-likoer-2.jpg', + 'image' => 'aloe-vera-likoer-2.jpg' + ), + ); + + + + +$price = '24,90 €'; +$content = '350 ml'; +$item_no = '70 80 500'; +//ablegen unter /assets/images/ +$icons = "product_icons_2.jpg"; + +$description = '

Feinblumiger, fruchtiger Likör, der die Eigenheiten der Aloe Vera optimal ins Glas zaubert. Die perfekt eingebundenen Bitterstoffe der Aloe Vera verleihen dem Likör einen herben, bitter-süßen Abgang, der noch lange auf Zunge und Gaumen verweilt.

'; +$usage = '

Genießen Sie ihn auf Eis oder als klassischen Digestif nach dem Essen

'; + +$ingredients = '

Hier wurde die Aloe Blüte an italienischem Grappa mazeriert; 20 % vol.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-lippenbalsam.php b/resources/views/_bak/web/products/aloe-vera-lippenbalsam.php new file mode 100644 index 0000000..1777011 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-lippenbalsam.php @@ -0,0 +1,50 @@ +Aloe Vera 70 % - Sheabutter - Avocadoöl - Panthenol

+
    +
  • für trockene, raue und spröde Lippen
  • +
  • Licht- und Windschutz
  • +
  • beugt Herpes vor
  • +
  • ohne mineralische Öle und Wachse
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-lippenbalsam-1.jpg', + 'image' => 'aloe-vera-lippenbalsam-1.jpg' + ), + array('thumb' => 'aloe-vera-lippenbalsam-2.jpg', + 'image' => 'aloe-vera-lippenbalsam-2.jpg' + ), + ); + + + + +$price = '7,90 €'; +$content = '15ml'; +$item_no = '70 10 950'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Intensive Feuchtigkeitspflege für Ihre Lippen. Der Aloe Vera Lippenbalsam versorgt raue und besonders empfindliche Lippen intensiv und lang anhaltend mit Feuchtigkeit. Sorgt für Licht und Windschutz. Beugt gegen Herpes vor und hinterlässt keine unangenehme Wachsschicht. Ein schützender, pflegender Balsam für die Lippen, ohne mineralische Öle und Wachse.

'; +$usage = '

Nach Bedarf auf die Lippen auftragen.

'; + +$ingredients = '

Aloe Vera Barbadenis Gel, Caprylic/ Capric Triglyceride, Centeary Alcohol, Butyrospermum Parkii Butter Glyceryl Stearate, Methylpropanediol Glycerin, Ricinus Communis Öl, Methyl Glucose Sequisterante, Sorbitan Stearate, Persea Gratissima Öl, Rhus Vemicifua Peel Cera, Ascobyl Palmitate, Tocopherol, Tocopheryl Acetate, Retinyl Palmiate, Helianthus Annuus Seed Öl, Panthenol, Cera Alba, Phenylpropanol, Caprylyl Glycol, Sodium Benzoate, Potassium Sorbote, Citric Acid, Parfüm.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-maenner-set.php b/resources/views/_bak/web/products/aloe-vera-maenner-set.php new file mode 100644 index 0000000..02998f4 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-maenner-set.php @@ -0,0 +1,57 @@ +Rasierschaum - Feuchtigkeitscreme - Bodylotion - Lippenbalsam

+
    +
  • Pflegeset für den Mann
  • +
  • Komplettpaket für alle Körperbereiche
  • +
  • hochwertiges Set für anspruchsvolle Haut
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-maenner-set-1.jpg', + 'image' => 'aloe-vera-maenner-set-1.jpg' + ), + array('thumb' => 'aloe-vera-maenner-set-2.jpg', + 'image' => 'aloe-vera-maenner-set-2.jpg' + ), + ); + + + + +$price = '54,90 €'; +$content = '465 ml'; +$item_no = '50 60 600'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Pflegender, cremiger Rasierschaum für eine milde, effektive und gründliche Rasur mit Allantoin und Panthenol regeneriert gestresste Haut bereits vor der Rasur. Die Feuchtigkeitscreme mit 40 % Aloe Vera Gel schützt und glättet die Haut, wirkt juckreizstillend und ist für jeden Hauttyp und Alter geeignet. Diese hochwertige Lotion mit frischem Duft eignet sich hervorragend für die tägliche Pflege. Besonders wenn nach dem Duschen oder Baden die Haut viel Feuchtigkeit benötigt. Der Aloe Vera Lippenbalsam versorgt raue und besonders empfindliche Lippen intensiv und lang anhaltend mit Feuchtigkeit und sorgt für Licht- und Windschutz.

'; + +$usage = '

Rasierschaum: Eine kleine, wallnussgroße Menge auf die entsprechenden Hautstellen auftragen

+

Feuchtigkeitscreme: Je nach Bedarf ein bis mehrmals täglich nach der Pflege auf die Gesichtshaut auftragen • Ideal als Make-up Grundlage

+

Bodylotion: Zur Körperpflege täglich auftragen und einmassieren

+

Lippenbalsam: Nach Bedarf auf die Lippen auftragen

'; + +$ingredients = '

Rasierschaum: Aloe Barbadensis Gel, Coco Glucoside, Sodium Cocoyl Apple Amino Acids, Hexylene Glycol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Tocopheryl Acetate, Phenoxyethanol, Ethylhexylglycerin, Sodium Benzoate, Polassium Sorbate, Sodium Hydroxide, Citric Acid, Parfum, Limonene

+

Feuchtigkeitscreme: Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Glycerin, Simmondsia Chinensis Seed Oil, Cyclomethicone, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Panthenol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Xanthan Gum, Sodium Hydroxide, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Parfum, Limonene

+

Bodylotion: Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Cetearyl Alcohol, Glycerin, Isopropyl Myristate, Persea Gratissima Oil, Methyl Glucose Sesquistearate, Butyrospermum Parkii Butter, Sorbitan Stearate, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene

+

Lippenbalsam: Aloe Vera Barbadenis Gel, Caprylic/ Capric Triglyceride, Centeary Alcohol, Butyrospermum Parkii Butter Glyceryl Stearate, Methylpropanediol Glycerin, Ricinus Communis Öl, Methyl Glucose Sequisterante, Sorbitan Stearate, Persea Gratissima Öl, Rhus Vemicifua Peel Cera, Ascobyl Palmitate, Tocopherol, Tocopheryl Acetate, Retinyl Palmiate, Helianthus Annuus Seed Öl, Panthenol, Cera Alba, Phenylpropanol, Caprylyl Glycol, Sodium Benzoate, Potassium Sorbote, Citric Acid, Parfüm'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-massageoel.php b/resources/views/_bak/web/products/aloe-vera-massageoel.php new file mode 100644 index 0000000..f70cdaa --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-massageoel.php @@ -0,0 +1,49 @@ +Aloe Vera 15 % - Mandelöl - Olivenöl - Rosenöl

+
    +
  • wirkt beruhigend und entspannend
  • +
  • macht Haut zart und geschmeidig
  • +
  • perfekt auch nach dem Saunabesuch
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-massageoel-1.jpg', + 'image' => 'aloe-vera-massageoel-1.jpg' + ), + array('thumb' => 'aloe-vera-massageoel-2.jpg', + 'image' => 'aloe-vera-massageoel-2.jpg' + ), + ); + + + + +$price = '18,90 €'; +$content = '200ml'; +$item_no = '70 10 850'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Aloe Vera Massageöl mit Mandel-, Oliven- und Rosenöl wirkt beruhigend & entspannend bei trockener & spröder Haut und macht sie zart und geschmeidig. Das Massageöl ist nicht nur für eine wohltuende Massage geeignet, sondern auch nach dem Saunabesuch oder der täglichen Dusche entspannend.

'; +$usage = '

Vor Gebrauch schütteln! Öl auf die Hände geben, kurz erwärmen lassen und dann entspannt losmassieren

'; + +$ingredients = '

Prunus Amygdalus Dulcis Oil, Olea Europaea Fruit Oil, Aloe Barbadensis Gel, Lecithin, Tocopheryl Acetate, Sodium Benzoate, Potassium Sorbate, Citric Acid, Benzyl Alcohol, Benzoic Acid, Tocopherol, Parfum, Benzyl Benzoate, Citrial, D-Limonene, Linaloo

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-nachtcreme.php b/resources/views/_bak/web/products/aloe-vera-nachtcreme.php new file mode 100644 index 0000000..56acae4 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-nachtcreme.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - Sheabutter - Avocadoöl - Panthenol

+
    +
  • feuchtigkeitsregulierende Nachtpflege
  • +
  • für sensible und anspruchsvolle Haut
  • +
  • pflegt und verfeinert über Nacht die Haut
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-nachtcreme-1.jpg', + 'image' => 'aloe-vera-nachtcreme-1.jpg' + ), + array('thumb' => 'aloe-vera-nachtcreme-2.jpg', + 'image' => 'aloe-vera-nachtcreme-2.jpg' + ), + ); + + + + +$price = '27,90 €'; +$content = '50ml'; +$item_no = '70 10 200'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Die feuchtigkeitsregulierende Nachtpflege mit 40 % Aloe Vera Gel und kostbaren Ölen, Sheabutter und einem Vitaminkomplex reguliert über Nacht ihre Haut. Durch die mit dem Vitaminkomplex angereicherte Sheabutter und dem Avocadoöl ist die Nachtcreme für sensible, trockene und anspruchsvolle Haut geeignet. Bei der täglichen Anwendung, verfeinert und pflegt sich die Gesichtshaut über Nacht.

'; +$usage = '

Abends nach der Reinigung großzügig auf die Gesichtshaut auftragen.

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Cetearyl Alcohol, Methylpropanediol, Glycerin, Vitis Vinifera Seed Oil, Persea Gratissima Oil, Isopropyl Myristate, Methyl Glucose Sesquistearate, Butyrospermum Parkii Butter, Sorbitan Stearate, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Sodium Acrylate/Acryloyldimethyltaurate/Dimethylacrylamide Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-pflege-set.php b/resources/views/_bak/web/products/aloe-vera-pflege-set.php new file mode 100644 index 0000000..ee0c8d9 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-pflege-set.php @@ -0,0 +1,55 @@ +Handcreme - Körperbutter - Lippenbalsam

+
    +
  • Pflegeset für unterwegs
  • +
  • für spröde Lippen und beanspruchte Haut
  • +
  • perfekt für Sie und Ihn
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-pflege-set-1.jpg', + 'image' => 'aloe-vera-pflege-set-1.jpg' + ), + array('thumb' => 'aloe-vera-pflege-set-2.jpg', + 'image' => 'aloe-vera-pflege-set-2.jpg' + ), + ); + + + + +$price = '28,90 €'; +$content = '165 ml'; +$item_no = '50 60 900'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Hochwertige Hand & Fußcreme mit Olivenöl, Sheabutter, Panthenol und Vitamin A/E. Die angenehm duftende Creme zieht schnell ein und hinterlässt keinen Fettfilm auf der Haut. Die Aloe Vera Körperbutter mit Kokosöl und Bienenwachs ist Dank ihrer reichhaltigen Inhaltsstoffe auch für sehr trockene Körperregionen wie z. B. Schienbeine, Dekolleté und Ellenbogen hervorragend geeignet. Der Aloe Vera Lippenbalsam versorgt raue und besonders empfindliche Lippen intensiv und lang anhaltend mit Feuchtigkeit.

'; + +$usage = '

Handcreme: Nach Bedarf auf Hände oder Füße auftragen.

+

Körperbutter: Zur Körperpflege täglich auftragen und einmassieren.

+

Lippenbalsam: Nach Bedarf auf die Lippen auftragen.

'; + +$ingredients = '

Handcreme: Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Cetearyl Alcohol, Glycerin, Methyl Glucose Sesquistearate, Isopropyl Myristate, Butyrospermum Parkii Butter, Sorbitan Stearate, Simmondsia Chinensis Seed Oil, Olea Europaea Oil, Dimethicone, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Xanthan Gum, Sodium Citrate, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene

+

Körperbutter: Cocos Nucifera Oil, Cera Alba, Aloe Barbadensis Gel, Parfum, Coumarin, Limonene Linalool.

+

Lippenbalsam: Aloe Vera Barbadenis Gel, Caprylic/ Capric Triglyceride, Centeary Alcohol, Butyrospermum Parkii Butter Glyceryl Stearate, Methylpropanediol Glycerin, Ricinus Communis Öl, Methyl Glucose Sequisterante, Sorbitan Stearate, Persea Gratissima Öl, Rhus Vemicifua Peel Cera, Ascobyl Palmitate, Tocopherol, Tocopheryl Acetate, Retinyl Palmiate, Helianthus Annuus Seed Öl, Panthenol, Cera Alba, Phenylpropanol, Caprylyl Glycol, Sodium Benzoate, Potassium Sorbote, Citric Acid, Parfüm

'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-rasierschaum.php b/resources/views/_bak/web/products/aloe-vera-rasierschaum.php new file mode 100644 index 0000000..8b89c1c --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-rasierschaum.php @@ -0,0 +1,49 @@ +Aloe Vera 40 % - Allantoin - Panthenol

+
    +
  • spendet Feuchtigkeit
  • +
  • beugt Irritationen der Haut vor
  • +
  • regeneriert gestresste Haut
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-rasierschaum-1.jpg', + 'image' => 'aloe-vera-rasierschaum-1.jpg' + ), + array('thumb' => 'aloe-vera-rasierschaum-2.jpg', + 'image' => 'aloe-vera-rasierschaum-2.jpg' + ), + ); + + + + +$price = '14,90 €'; +$content = '200ml'; +$item_no = '70 10 900'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Pflegender, cremiger Rasierschaum für eine milde, effektive und gründliche Rasur mit Allantoin und Panthenol. Dieser Rasierschaum mit Aloe Vera spendet Feuchtigkeit, beruhigt und regeneriert gestresste Haut bereits vor der Rasur - spezielle Pflege für die anspruchsvolle Männerhaut. Natürlich können auch Frauen diesen Rasierschaum sehr gut anwenden. Vor Gebrauch schütteln.

'; +$usage = '

Eine kleine, wallnussgroße Menge auf die entsprechenden Hautstellen auftragen.

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Stearic Acid, Glycerin, Triethanolamine, Propane, Butane, Ceteareth- 12, Isobutane, Allantoin, Potassium Hydroxide, Palmitic Acid, Polyquaternium- 11, Bis-PEG-15 Methyl Ether Dimethicone, Phenoxyethanol, Ethylhexylglycerine, Panthenol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Parfum

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-reinigungsgel.php b/resources/views/_bak/web/products/aloe-vera-reinigungsgel.php new file mode 100644 index 0000000..d0f9ada --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-reinigungsgel.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - Palmkernöl - Panthenol

+
    +
  • reinigt sanft und intensiv
  • +
  • wirkt porentief und beruhigend
  • +
  • fördert die Hautfeuchte
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-reinigungsgel-1.jpg', + 'image' => 'aloe-vera-reinigungsgel-1.jpg' + ), + array('thumb' => 'aloe-vera-reinigungsgel-2.jpg', + 'image' => 'aloe-vera-reinigungsgel-2.jpg' + ), + ); + + + + +$price = '21,90 €'; +$content = '200ml'; +$item_no = '70 10 130'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Ein sanftes Aloe Vera Gesichtsreinigungsgel zur intensiven Reinigung der Gesichtshaut. Dringt tief unter die Haut ein und befreit das Gesicht von Schmutz, Make-Up, Talg und abgestorbenen Hautzellen porentief. Das Gesichtsreinigungsgel hat eine erfrischende, feuchtigkeitsspendende und beruhigende Wirkung und ist für alle Hauttypen geeignet. Aloe Vera und Panthenol fördert die Hautfeuchte.

'; +$usage = '

Zur täglichen Gesichtsreinigung ( Morgens und Abends ) geben Sie eine kleine Menge in die angefeuchteten Hände, verteilen es im Gesicht und spülen es mit warmen Wasser ab.

'; + +$ingredients = '

Aqua, Aloe Barbadensis Gel, Coco Glucoside, Sodium Cocoyl Apple Amino Acids, Hexylene Glycol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Tocopheryl Acetate, Phenoxyethanol, Ethylhexylglycerin, Sodium Benzoate, Potassium Sorbate, Sodium Hydroxide, Citric Acid, Parfum, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-repair-set.php b/resources/views/_bak/web/products/aloe-vera-repair-set.php new file mode 100644 index 0000000..74b7ddf --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-repair-set.php @@ -0,0 +1,55 @@ +Handcreme - Gel Plus 86% - Emulsion

+
    +
  • Pflege für strapazierte Haut
  • +
  • Repaireffekt durch Aloe und Urea
  • +
  • Hochwertige Öle in der Emulsion
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-repair-set-1.jpg', + 'image' => 'aloe-vera-repair-set-1.jpg' + ), + array('thumb' => 'aloe-vera-repair-set-2.jpg', + 'image' => 'aloe-vera-repair-set-2.jpg' + ), + ); + + + + +$price = '43,50 €'; +$content = '400 ml'; +$item_no = '50 60 400'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Die hochwertige Hand- & Fußcreme mit Aloe Vera Barbadensis , Sheabutter, und Olivenöl pflegt, schützt und versorgt besonders empfindliche, trockene und zu Rissigen neigender Haut. Das Aloe Vera Gel Plus 86% lässt Schwellungen und Entzündungen schon nach kurzer Zeit abklingen. Durch den Wirkstoff Urea hat es juckreizstillende, entzündungshemmende Eigenschaften. Die leichte Emulsion wirkt beruhigend bei beanspruchter Haut. Durch die wertvollen Inhaltsstoffe von Aloe Barbadensis, Mandelöl, Jojobaöl und durch Vitamin A/E, wird sehr spröde und trockene Haut optimal gepflegt.

'; + +$usage = '

Handcreme: Mehrmals täglich auf Hände und Füße einmassieren

+

Aloe vera Gel 86% Plus: Mehrmals täglich auf entsprechende Stellen auftragen • Hinweis: Brennt kurz bei frischen Verletzungen der Haut

+

Emulsion: Vor Gebrauch gut schütteln • Sparsam auf die entsprechenden Stellen auftragen

'; + +$ingredients = '

Handcreme: Aloe Barbadensis Gel, Aqua, Caprylic/Capric Triglyceride, Methylpropanediol, Cetearyl Alcohol, Glycerin, Methyl Glucose Sesquistearate, Isopropyl Myristate, Butyrospermum Parkii Butter, Sorbitan Stearate, Simmondsia Chinensis Seed Oil, Olea Europaea Oil, Dimethicone, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Xanthan Gum, Sodium Citrate, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene

+

Aloe Barbadensis Gel, Methylpropanediol, Caprylyl Glycol, Phenylpropanol, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Triethanolamine, Potassium Sorbate, Sodium Benzoate, Citric Acid

+

Emulsion: Prunus Amygdalus Dulcis Oil, Aloe Barbadensis Gel, Laureth-3, Simmondsia Chinensis Seed Oil, Tocopheryl Acetate, Sodium Benzoate, Potassium Sorbate, Citric Acid, Benzyl Alcohol, Benzoic Acid, Tocopherol, Parfum, D-Limonene, Linalool.

'; + + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-saft-250.php b/resources/views/_bak/web/products/aloe-vera-saft-250.php new file mode 100644 index 0000000..7ca28a1 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-saft-250.php @@ -0,0 +1,51 @@ +Aloe Vera Saft 99,8 % reiner Bio-Saft

+
    +
  • aus kontrolliert biologischem Anbau
  • +
  • verarbeitet durch reine Handarbeit
  • +
  • hergestellt direkt nach der Ernte
  • +
  • über 1.600 mg/l Aloverose-Gehalt (Stand: 2018)
  • +
  • für ca. 10 Portionen á 25 ml täglich
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-saft-250-1.jpg', + 'image' => 'aloe-vera-saft-250-1.jpg' + ), + array('thumb' => 'aloe-vera-saft-250-2.jpg', + 'image' => 'aloe-vera-saft-250-2.jpg' + ), + ); + + + + +$price = '9,80 €'; +$content = '250ml'; +$item_no = '60 30 200'; +//ablegen unter /assets/images/ +$icons = "product_icons_2.jpg"; + +$description = '

Der reine Aloe Vera Saft ist bereits seit Jahrtausenden als Nahrungsergänzung zur Förderung des allgemeinen Wohlbefindens bekannt. Der Saft aus kontrolliert biologischem Anbau, sowie die Verarbeitung der frischen Aloe Vera Blätter in reiner Handarbeit, garantiert Dir einen außergewöhnlich hohen Gehalt an Aloverose (Polysaccharid) - der wichtigste Inhaltsstoff der Aloe Vera Pflanze. Substanzen wie z.B. Vitamine, Enzyme, Mineralsalze, Spurenelemente, fördern das allgemeine Wohlbefinden. Durch die direkte Verarbeitung nach der Ernte, bleibt der hohe Wirkstoffgehalt erhalten. Dieser Aloe Vera Saft ist ein 100%iges BIO-Erzeugnis. Ein echtes Geschenk der Natur.

'; +$usage = '

Wir empfehlen Dir zu Beginn eine Kur von 3-4 Wochen mit täglich morgens und abends je ca. 25 ml vor dem Essen. Der Saft kann pur oder gemischt mit einem Fruchtsaft getrunken werden. Im Anschluss empfehlen wir Dir, ca. 25 ml des Saftes als Nahrungsergänzung morgens vor dem Frühstück einzunehmen.

Nicht mehr als 50 ml täglich einnehmen. Wir empfehlen den Saft nicht in der Schwangerschaft einzunehmen bzw. dies vorher mit dem Arzt abzuklären.

'; + +$ingredients = '

99,8 % Aloe vera Saft, 0,2 % Zitronensäure

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-saft.php b/resources/views/_bak/web/products/aloe-vera-saft.php new file mode 100644 index 0000000..e540e8f --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-saft.php @@ -0,0 +1,51 @@ +Aloe Vera Saft 99,8 % reiner Bio-Saft

+
    +
  • aus kontrolliert biologischem Anbau
  • +
  • verarbeitet durch reine Handarbeit
  • +
  • hergestellt direkt nach der Ernte
  • +
  • über 1.600 mg/l Aloverose-Gehalt (Stand: 2018)
  • +
  • für ca. 20 Portionen á 25 ml täglich
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-saft-1.jpg', + 'image' => 'aloe-vera-saft-1.jpg' + ), + array('thumb' => 'aloe-vera-saft-2.jpg', + 'image' => 'aloe-vera-saft-2.jpg' + ), + ); + + + + +$price = '16,90 €'; +$content = '500ml'; +$item_no = '60 30 100'; +//ablegen unter /assets/images/ +$icons = "product_icons_2.jpg"; + +$description = '

Der reine Aloe Vera Saft ist bereits seit Jahrtausenden als Nahrungsergänzung zur Förderung des allgemeinen Wohlbefindens bekannt. Der Saft aus kontrolliert biologischem Anbau, sowie die Verarbeitung der frischen Aloe Vera Blätter in reiner Handarbeit, garantiert Dir einen außergewöhnlich hohen Gehalt an Aloverose (Polysaccharid) - der wichtigste Inhaltsstoff der Aloe Vera Pflanze. Substanzen wie z.B. Vitamine, Enzyme, Mineralsalze, Spurenelemente, fördern das allgemeine Wohlbefinden. Durch die direkte Verarbeitung nach der Ernte, bleibt der hohe Wirkstoffgehalt erhalten. Dieser Aloe Vera Saft ist ein 100%iges BIO-Erzeugnis. Ein echtes Geschenk der Natur.

'; +$usage = '

Wir empfehlen Dir zu Beginn eine Kur von 3-4 Wochen mit täglich morgens und abends je ca. 25 ml vor dem Essen. Der Saft kann pur oder gemischt mit einem Fruchtsaft getrunken werden. Im Anschluss empfehlen wir Dir, ca. 25 ml des Saftes als Nahrungsergänzung morgens vor dem Frühstück einzunehmen.

Nicht mehr als 50 ml täglich einnehmen. Wir empfehlen den Saft nicht in der Schwangerschaft einzunehmen bzw. dies vorher mit dem Arzt abzuklären.

'; + +$ingredients = '

99,8 % Aloe vera Saft, 0,2 % Zitronensäure

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-schaummaske.php b/resources/views/_bak/web/products/aloe-vera-schaummaske.php new file mode 100644 index 0000000..fde349f --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-schaummaske.php @@ -0,0 +1,50 @@ +Aloe Vera 50 % - Reiskeimöl - Weizenprotein

+
    +
  • pflegend und feuchtigkeitsspendend
  • +
  • erfrischende, intensive Maske
  • +
  • verbessert die Hautregeneration
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-schaummaske-1.jpg', + 'image' => 'aloe-vera-schaummaske-1.jpg' + ), + array('thumb' => 'aloe-vera-schaummaske-2.jpg', + 'image' => 'aloe-vera-schaummaske-2.jpg' + ), + ); + + + + +$price = '19,50 €'; +$content = '50ml'; +$item_no = '70 10 700'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Eine pflegende und feuchtigkeitsspendende Schaummaske die Ihre Haut mit Reiskeimöl, Panthenol und Weizenproteinen verwöhnt. Die erfrischend duftende Schaummaske versorgt die Haut optimal mit Feuchtigkeit, verbessert die Hautregeneration, lindert Hautreizungen und Rötungen. Ein sehr ergiebiger, pflegender Schaum für die Anti-Aging Pflege. Die Schaummaske 1-2 mal in der Woche anwenden. Schon eine kleine Menge genügt, um Ihre Haut zu verwöhnen.

'; +$usage = '

vor Gebrauch schütteln • kleine Menge 5-10 min einwirken lassen • mit laufwarmem Wasser abwaschen

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Butane, Oryza Sativa Bran Oil, Isopropyl Myristate, Propylene Glycol, Propane, Ceteareth-25, Ceteareth-6, Cetearyl Alcohol, Isobutane, Allantoin, Hydrolyzed Wheat Protein, Panthenol, Cocamidopropyl Betaine, Polyquaternium-11, Lactic Acid, Citric Acid, Sodium Benzoate, Potassium Sorbate, Parfum, Limonene

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-serum.php b/resources/views/_bak/web/products/aloe-vera-serum.php new file mode 100644 index 0000000..4fa313e --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-serum.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - Hyaluron - Oligopeptide - Panthenol

+
    +
  • Exklusives Anti Aging Serum
  • +
  • Für strahlendes Aussehen
  • +
  • spezielle Pflege für das Gesicht
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-serum-1.jpg', + 'image' => 'aloe-vera-serum-1.jpg' + ), + array('thumb' => 'aloe-vera-serum-2.jpg', + 'image' => 'aloe-vera-serum-2.jpg' + ), + ); + + + + +$price = '65,00 €'; +$content = '30ml'; +$item_no = '70 10 250'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Eine spezielle Pflege für Gesicht, Hals und Dekollete. Exklusives Anti-Aging Serum mit Hyaluron, Oligopeptide, Mineralstoffcocktail und Vitaminkomplex für ein sichtbar frisches, geglättetes und strahlendes Aussehen. Oligopeptide sind Eiweissbausteine, die den Collagenaufbau der Haut günstig beeinflussen. Es reduziert außerdem die braunen Pigmentflecken auf den Händen und im Gesicht. Ein Tropfen genügt( ein Hub ist ca. 0,2 ml ). Die Flasche hält ca. 4 Monate

'; +$usage = '

Am Morgen und Abend nach der Reinigung unter die Gesichtspflege geben.

'; + +$ingredients = '

Aqua, Aloe Barbadensis Gel, Methylpropanediol, Isopropyl Myristate, Hydrolyzed Millet, Caprylic/Capric Triglyceride, Glycerin, Cyclomethicone, Magnesium Aspartate, Zinc Gluconate, Copper Gluconate, Calcium Gluconate, Ascorbyl Palmitate, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Sodium Hyaluronate, Panthenol, Xanthan Gum, Acrylates/C10-30 Alkyl Acrylate Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Ethylhexylglycerin, Sodium Hydroxide, Phenoxyethanol, Parfum, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-shampoo.php b/resources/views/_bak/web/products/aloe-vera-shampoo.php new file mode 100644 index 0000000..d70175c --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-shampoo.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - mit Weizenproteinen

+
    +
  • für gesundes, leicht kämmbares Haar
  • +
  • für milde und safte Haarpflege
  • +
  • feuchtigkeitsspendend
  • +
  • silikonfrei
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-shampoo-1.jpg', + 'image' => 'aloe-vera-shampoo-1.jpg' + ), + array('thumb' => 'aloe-vera-shampoo-2.jpg', + 'image' => 'aloe-vera-shampoo-2.jpg' + ), + ); + + + + +$price = '14,90 €'; +$content = '200ml'; +$item_no = '70 10 800'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Sanfte Haarpflege mit Weizenkeimproteinen. Das milde Aloe Vera Shampoo hat einen erfrischenden Duft und vitalisiert den Haarschaft und die Kopfhaut. Weizenkeimproteine unterstützen die leichte Kämmbarkeit des Haares, wirkt pflegend, feuchtigkeitsspendend und verbessern den Repair-Effekt. Silikonfrei!

'; +$usage = '

Für die tägliche Haarpflege geeignet.

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Sodium Laureth Sulfate, Cocamide DEA, Coco Glucoside, Glycol Distearate, Cocamide MEA, Laureth-10, Disodium Laureth-3 Sulfosuccinate, Cocamidopropyl Betaine, Magnesium Chloride, Polyquaternium-11, Hydrolyzed Wheat Protein, Phenoxyethanol, Benzoic Acid, Dehydroacetic Acid, Potassium Sorbate, Sodium Benzoate, Citric Acid, Parfum.

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-sos-spray.php b/resources/views/_bak/web/products/aloe-vera-sos-spray.php new file mode 100644 index 0000000..99eb413 --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-sos-spray.php @@ -0,0 +1,49 @@ +Aloe Vera 90 % - mit Panthenol und Grüner-Tee-Extrakt

+
    +
  • wirksam bei Sonnenbrand
  • +
  • bei Insektenstichen und Verbrennungen
  • +
  • wirkt beruhigend und schmerzlindernd
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-sos-spray-1.jpg', + 'image' => 'aloe-vera-sos-spray-1.jpg' + ), + array('thumb' => 'aloe-vera-sos-spray-2.jpg', + 'image' => 'aloe-vera-sos-spray-2.jpg' + ), + ); + + + + +$price = '18,90 €'; +$content = '200 ml'; +$item_no = '70 10 990'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

SOS Spray mit 90 % Bio Aloe Vera und Panthenol ist wirksam bei Sonnenbrand, Insektenstichen und Verbrennungen. Es hat juckreizstillende, entzündungshemmende Eigenschaften und wirkt darüber hinaus kühlend, beruhigend, schmerzlindernd und blutstillend bei Brand-, Schürf- und Kratzwunden. Die antioxidativen und antiirritativen Eigenschaften des grünen Tee-Extrakts runden die Wirkung ab. Für Haushalt, Outdoor und Freizeit - auch für die Wundheilung bei Tieren.

'; +$usage = '

Aus 20-30 cm Entfernung auf entsprechende Hautstellen aufsprühen und einziehen lassen. Mehrmals wiederholen.

'; + +$ingredients = '

Aloe Barbadensis Gel, Panthenol, Betaine, Camellia Sinensis Leaf Extract, Xanthan Gum, Glycerin, Aqua, Phenoxyethanol, Ethylhexylglycerin, Potassium Sorbate, Sodium Benzoate, Sodium Hydroxide, Citric Acid

'; + +?> diff --git a/resources/views/_bak/web/products/aloe-vera-tagescreme.php b/resources/views/_bak/web/products/aloe-vera-tagescreme.php new file mode 100644 index 0000000..f7d086b --- /dev/null +++ b/resources/views/_bak/web/products/aloe-vera-tagescreme.php @@ -0,0 +1,50 @@ +Aloe Vera 40 % - Traubenkernöl - Avocadoöl - Sheabutter

+
    +
  • erfrischende, leichte Tagescreme
  • +
  • regenerierende Wirkung
  • +
  • wirkt porenverfeinernd
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'aloe-vera-tagescreme-1.jpg', + 'image' => 'aloe-vera-tagescreme-1.jpg' + ), + array('thumb' => 'aloe-vera-tagescreme-2.jpg', + 'image' => 'aloe-vera-tagescreme-2.jpg' + ), + ); + + + + +$price = '27,90 €'; +$content = '50ml'; +$item_no = '70 10 150'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Eine erfrischende, duftende und leichte Tagescreme mit 40 % Aloe Vera, wirkt porenverfeinernt und sorgt dafür, dass ihre Haut den ganzen Tag mit hochwertigen Vitaminen A/E versorgt wird. Das hochwertige Traubenkernöl hat eine regenerierende Wirkung und ist besonders für trockene und reife Haut geeignet. Avocadoöl unterstützt noch die Wirkung, in dem es die Zellproduktion anregt.

'; +$usage = '

Je nach Bedarf ein bis mehrmals täglich auf die Gesichtshaut Auftragen. Ideal als Make-up Grundlage.

'; + +$ingredients = '

Aloe Barbadensis Gel, Aqua, Cetearyl Alcohol, Caprylic/Capric Triglyceride, Methylpropanediol, Glycerin, Isopropyl Myristate, Persea Gratissima Oil, Methyl Glucose Sesquistearate, Sorbitan Stearate, Butyrospermum Parkii Butter, Vitis Vinifera Seed Oil, Panthenol, Tocopheryl Acetate, Retinyl Palmitate, Helianthus Annuus Seed Oil, Ascorbyl Palmitate, Carbomer, Sodium Citrate, Sodium Acrylate/Acryloyldimethyltaurate/Dimethylacrylamide Crosspolymer, Caprylyl Glycol, Phenylpropanol, Potassium Sorbate, Sodium Benzoate, Citric Acid, Sodium Hydroxide, Parfum, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/products/anderes_produkt.php b/resources/views/_bak/web/products/anderes_produkt.php new file mode 100644 index 0000000..d638296 --- /dev/null +++ b/resources/views/_bak/web/products/anderes_produkt.php @@ -0,0 +1,60 @@ +Aloe Vera 40 % - Hyaluron - Gojibeere - Panthenol

+
    +
  • erfrischt und klärt die Haut
  • +
  • wirkt juckreizstillend
  • +
  • erbessert das Feuchthaltevermögen
  • +
  • für jeden Hauttyp geeignet
  • +
+ '; + +// produktbilder +//ablegen unter assets/images/products/:slug:/:name:.jpg +//vorschaubild 150x150px (thumb) +//großes Bilder 1000x1500px (image) + +/* + jedes Bild bekommt ein array(), mit thumb und image, + wenn mehr einfach ein array(), hinzufügen, wenn weniger dann entfernen. + Struktur muss sein array( array('thumb' => ':pfad:' , 'image' => ':pfad:' ), array('thumb' => ':pfad:' , 'image' => ':pfad:' ), ... ); +*/ +$images = array( + array('thumb' => 'thumb_1.jpg', + 'image' => 'image_1.jpg' + ), + array('thumb' => 'thumb_2.jpg', + 'image' => 'image_2.jpg' + ), + array('thumb' => 'thumb_3.jpg', + 'image' => 'image_3.jpg' + ), + array('thumb' => 'thumb_4.jpg', + 'image' => 'image_4.jpg' + ), + array('thumb' => 'thumb_5.jpg', + 'image' => 'image_5.jpg' + ), + ); + + + + +$price = '15,90 €'; +$content = '200ml'; +$item_no = '70 10 120'; +//ablegen unter /assets/images/ +$icons = "product_icons_1.png"; + +$description = '

Aloe Vera Gesichtstonic mit Aloe Vera Barbadensis, Hyaluron, Panthenol und Gojibeere für einen reinen, strahlenden und frischen Teint. Erfrischt und klärt die Haut nach der Reinigung und ist für jeden Hauttyp, auch für empfindliche Haut geeignet.

+

Panthenol verbessert das Feuchthaltevermögen, besonders bei trockener, spröder und schuppiger Haut, wirkt juckreizlindernd und entspannt die Haut. Nach der Reinigung mit dem Gesichtsreinigungsgel und Gesichtstonic ist die Haut optimal für alle weiteren Pflegeprodukte vorbereitet und kann die Wirkstoffe besser aufnehmen.

'; +$usage = '

Am Morgen und am Abend das Gesichtstonic nach der Gesichtsreinigung mit dem Gesichtsreinigungsgel auf ein Wattepad geben und damit über das Gesicht, Hals und Dekollete sanft streichen.

'; + +$ingredients = '

Aloe Barbadensis Gel, Glycerin, Lycium Barbarum Fruit Extract, Sorbic Acid, Panthenol, Sodium Hyaluronate, Caprylyl/ Capryl Glucoside, Sodium Benzoate, Potassium Sorbate, Citric Acid, Parfum, Tocopherol, Benzyl Alcohol, Benzoic Acid, Limonene.

'; + +?> diff --git a/resources/views/_bak/web/start.blade.php b/resources/views/_bak/web/start.blade.php new file mode 100644 index 0000000..9a20c4a --- /dev/null +++ b/resources/views/_bak/web/start.blade.php @@ -0,0 +1,238 @@ +@extends('web.layouts.layout') + +@section('content') + + + + + +
+ +
+
    + + +
  • + + + +
    + +
    + Deutscher Direktvertrieb für +
    + +
    + 100% Premium Bio Aloe Vera +
    +
  • +
+
+
+
+ + + + +
+
+
+ +
+ @if($site->hasImage()) + + @endif + +

MIVITA ist ein Unternehmen mit Standort in Deutschland, das innovative und umweltfreundliche + sowie hochwertige Produkte vertreibt. Seit seinem Markteintritt bekennt sich das MIVITA Unternehmen zu einem + Werteverständnis, bei dem die Zufriedenheit der Kunden, wie auch die Verantwortung für die Umwelt im Fokus + stehen.

+ +
+ +
+
+
+ + +
+
+ + + +
+
+

Warum MIVITA?

+

Unsere Kunden vertrauen zurecht auf die exzellenten Eigenschaften der MIVITA Produkte. Damit trifft + jeder aktiv eine kluge Entscheidung für Gesundheit und Umwelt.

+ +

Wir legen nicht nur auf die Qualität unserer Produkte einen hohen Stellenwert, sondern natürlich auch + auf umfassende, kompetente Beratung durch freundliche und fachkundige Berater und Beraterinnen.

+ +

Wir entwickeln und vertreiben ausschließlich Produkte, die qualitativ hochwertig sind. So sind sie + bei sachgemäßer Anwendung und Pflege langlebig und sehr ergiebig. Faktoren, die uns die + Zufriedenheit unserer Kunden sichern.

+ +
+
+ + +
+
+ + + + +
+
+ + +
+
+
+

Aloe Vera

+

Mit höchstem Anspruch arbeiten wir gemeinsam mit der Aloe Vera Farm auf Mallorca + zusammen, die weltweite Qualität der Spitzenklasse garantiert.

+ + + Mehr + + + + lesen + JETZT + + + + + +
+
+
+
+

Produkte

+

Hier findest Du einen Überblick über das komplette Premium-Produktsortiment von MIVITA. + Vom hochwertigen Aloe Saft bis zu wohltuender Kosmetik.

+ + + Mehr + + + + lesen + JETZT + + + + + +
+
+
+
+

Vertriebspartner

+

Werde auch Du ein Vertriebspartner von MIVITA und baue Dir Dein eigenes Geschäft mit + Qualitätsprodukten auf. Wenn Du magst, kannst Du sofort starten ...

+ + + Mehr + + + + lesen + JETZT + + + + + +
+
+ +
+ + +
+
+ + + +
+
+ +
+ +
+ +

MIVITA ist exklusiver Partner der Farm Aloe Vera de Mallorca im Bereich Direktvertrieb Deutschland. + Hier haben zwei Unternehmen zusammengefunden, für die Qualität und Nachhaltigkeit oberstes Gebot + sind. Nur so lassen sich langfristig zufriedene Kunden zu echten Fans unserer Produkte gewinnen.

+
+

„Mensch, Tier und Natur zuliebe ... Nachhaltigkeit und Produkte, die wirklich „guttun“, sind + uns wichtig.“

+

Alois Ried - Inhaber MIVITA

+
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+
+ + + + +@endsection diff --git a/resources/views/_bak/web/templates/_bcategories.blade.php b/resources/views/_bak/web/templates/_bcategories.blade.php new file mode 100644 index 0000000..8e6ed27 --- /dev/null +++ b/resources/views/_bak/web/templates/_bcategories.blade.php @@ -0,0 +1,32 @@ + diff --git a/resources/views/_bak/web/templates/_categories.blade.php b/resources/views/_bak/web/templates/_categories.blade.php new file mode 100644 index 0000000..b37ef41 --- /dev/null +++ b/resources/views/_bak/web/templates/_categories.blade.php @@ -0,0 +1,18 @@ + +
+
+ +

Kategorien

+
+ +
+ diff --git a/resources/views/_bak/web/templates/_content_contact.blade.php b/resources/views/_bak/web/templates/_content_contact.blade.php new file mode 100644 index 0000000..9e48299 --- /dev/null +++ b/resources/views/_bak/web/templates/_content_contact.blade.php @@ -0,0 +1,12 @@ +
+
+

Das klingt spannend für Dich?

+

Dann nimm noch heute Kontakt mit uns auf - wir freuen uns, Dich kennenzulernen.

+ @if($user_shop) + zur + Registrierung + @endif + zum + Kontaktformular + +
\ No newline at end of file diff --git a/resources/views/_bak/web/templates/agb.blade.php b/resources/views/_bak/web/templates/agb.blade.php new file mode 100644 index 0000000..9bd07d2 --- /dev/null +++ b/resources/views/_bak/web/templates/agb.blade.php @@ -0,0 +1,84 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') +
+
+ +
+

Allgemeinen Geschäftsbedingungen

+
+ +
+ Grundlegendes
+ 1) Die nachstehenden Geschäftsbedingungen gelten für alle Verträge, die Sie mit uns als Anbieter (mivita e.K.) über die Internetseite www.mivita.care schließen. Das Warenangebot in unserem Online-Shop richtet sich ausschließlich an volljährige Kunden. Der Einbeziehung von Allgemeinen Geschäftsbedingungen von Kunden, die diesen Geschäftsbedingungen widersprechen, wird bereits jetzt widersprochen. Die Vertragssprache ist deutsch. Sie können diese Geschäfts-bedingungen auf unserer Website abrufen und ausdrucken. +
+
+ 2) Den vollständigen Vertragstext speichern wir nicht. Die Vertragsdaten können Sie vor Absendung Ihrer Bestellung über das Online - Warenkorbsystem ausdrucken oder elektronisch sichern. Nach Zugang Ihrer Bestellung schicken wir Ihnen die Bestelldaten, die gesetzlich vorgeschriebenen Informationen bei Fernabsatzverträgen und die Allgemeinen Geschäftsbedingungen nochmals per Mail zu. +

+ Grundlegendes
+ 1) Unsere Warenangebote im Internet sind unverbindlich und stellen kein verbindliches Angebot zum Abschluss eines Vertrages dar. Sie können über unser Online - Warenkorbsystem eine Bestellung, also ein verbindliches Kaufangebot abgeben. Hierzu legen Sie die zum Kauf beabsichtigten Waren im „Warenkorb” ab. Über die entsprechende Schaltfläche in der Navigationsleiste können Sie den „Warenkorb” aufrufen und dort jederzeit Änderungen vornehmen. Nach Aufrufen der Seite „Kasse” und der Eingabe Ihrer persönlichen Daten sowie der Zahlungs- und Versandbedingungen werden abschließend nochmals alle Bestelldaten in einer Bestellübersicht angezeigt. Sie haben hier die Möglichkeit, vor der Absendung Ihrer Bestellung sämtliche Angaben nochmals zu überprüfen, zu ändern (auch über die Funktion „zurück” des Internetbrowsers) bzw. den Kauf abzubrechen. Durch Absendung der Bestellung über die Schaltfläche “Kaufen” geben Sie ein verbindliches Angebot zum Abschluss des Vertrages ab. Sie erhalten dann eine automatische Eingangsbestätigung per Mail, die noch nicht zum Vertragsschluss führt. +

+ (2) Wir können Ihr Angebot innerhalb von 2 Tagen durch Übermittlung einer Bestellbestätigung per Mail annehmen. Sofern Sie innerhalb dieser Frist keine entsprechende Nachricht erhalten sollten, sind Sie nicht mehr an Ihre Bestellung gebunden. Gegebenenfalls bereits erbrachte Leistungen erstatten wir Ihnen in diesem Fall unverzüglich zurück. +

+ (3) Die Abwicklung der Bestellung und Übermittlung aller im Zusammenhang mit dem Vertragsschluss erforderlichen Informationen erfolgt per Mail zum Teil automatisiert. Sie haben deshalb sicherzustellen, dass die von Ihnen bei uns hinterlegte Mail-Adresse zutreffend ist, der Empfang der Mails technisch sichergestellt und insbesondere nicht durch SPAM-Filter verhindert wird. +

+ + § 3 Preise/Zahlungsmodalitäten
+ (1) Die in unseren Angeboten genannten Preise sowie die Versandkosten stellen Gesamtpreise dar. Sie beinhalten alle Preisbestandteile einschließlich aller anfallenden Steuern. +

+ (2) Die Versandkosten sind nicht im Kaufpreis enthalten. Sie können über eine entsprechend bezeichnete Schaltfläche auf unserer Website oder in der jeweiligen Artikelbeschreibung abgerufen werden. Die Versandkosten werden weiterhin im Laufe des Bestellvorganges gesondert ausgewiesen und sind von Ihnen zusätzlich zu tragen, soweit nicht die versandkostenfreie Lieferung zugesagt ist. +

+ (3) Wir bieten Ihnen verschiedene Zahlungsarten an. Diese sind unter einer entsprechend bezeichneten Schaltfläche auf unserer Website oder in der jeweiligen Artikelbeschreibung ausgewiesen. Soweit nicht anders angegeben, sind die Zahlungsansprüche aus dem geschlossenen Vertrag sofort zur Zahlung fällig. +

+ § 4 Lieferbedingungen
+ (1) Lieferbedingungen, Liefertermin und gegebenenfalls bestehende Lieferbeschränkungen können Sie auf einer entsprechend bezeichneten Schaltfläche auf unserer Website oder in der jeweiligen Artikelbeschreibung abrufen. +

+ (2) Bei Verbrauchern geht die Gefahr des zufälligen Untergangs und der zufälligen Verschlechterung der verkauften Sache während der Versendung erst mit der Übergabe der Ware an diese über. Dies unabhängig davon, ob die Versendung versichert oder unversichert erfolgt. Dies gilt allerdings nicht, wenn Sie eigenständig ein nicht vom Unternehmer benanntes Transportunternehmen oder eine sonst zur Ausführung der Versendung bestimmte Person beauftragt haben. +

+ (3) Bei Unternehmern erfolgt die Lieferung und Versendung auf eigene Gefahr. +

+ § 5 Zurückbehaltungsrecht, Eigentumsvorbehalt
+ (1) Ein Zurückbehaltungsrecht können Sie nur ausüben, soweit es sich um Forderungen aus demselben Vertragsverhältnis handelt. +

+ (2) Die Ware bleibt bis zur vollständigen Zahlung des Kaufpreises unser Eigentum. +

+ (3) Bei Unternehmern gilt ergänzend Folgendes: +

+ - Wir behalten uns das Eigentum an der Ware bis zum vollständigen Ausgleich aller Forderungen aus der laufenden Geschäftsbeziehung vor. Vor Übergang des Eigentums an der Vorbehaltsware ist eine Verpfändung oder Sicherheitsübereignung nicht zulässig. +
+ - Sie dürfen die Ware im ordentlichen Geschäftsgang weiterverkaufen. Für diesen Fall treten Sie bereits jetzt alle Forderungen in Höhe des Rechnungsbetrages, die Ihnen aus dem Weiterverkauf erwachsen, an uns ab. Wir nehmen die Abtretung an, Sie sind jedoch zur Einziehung der Forderungen ermächtigt. Soweit Sie Ihren Zahlungsverpflichtungen nicht ordnungsgemäß nachkommen, behalten wir uns das Recht vor, Forderungen selbst einzuziehen. +
+ - Bei Verbindung und Vermischung der Vorbehaltsware erwerben wir Miteigentum an der neuen Sache im Verhältnis des Rechnungswertes der Vorbehaltsware zu den anderen verarbeiteten Gegenständen zum Zeitpunkt der Verarbeitung. +
+ - Wir verpflichteten uns, die uns zustehenden Sicherheiten auf Verlangen insoweit freizugeben, als der realisierbare Wert unserer Sicherheiten die zu sichernden Forderungen um mehr als 10 % übersteigt. Die Auswahl der freizugebenden Sicherheiten obliegt uns. +

+ § 6 Gewährleistung
+ (1) Es bestehen die gesetzlichen Mängelhaftungsrechte. +

+ (2) Bei Unternehmern gilt abweichend von Abs.1: +

+ - als Unternehmer haben Sie die Ware unverzüglich und mit der gebotenen Sorgfalt auf Qualitäts- und Mengenabweichungen zu untersuchen und uns offensichtliche Mängel binnen 7 Tagen ab Empfang der Ware schriftlich anzuzeigen. Zur Fristwahrung genügt die rechtzeitige Absendung. Dies gilt auch für später festgestellte verdeckte Mängel ab Entdeckung. Sollten Sie Ihrer Untersuchungs- und Rügepflicht nicht nachkommen, ist die Geltendmachung von Gewährleistungsansprüchen ausgeschlossen. +
+ - beim Vorliegen von Mängeln können wir nach unserer Wahl Gewähr durch Nachbesserung oder Ersatzlieferung leisten. Bei einem Fehlschlagen der Mängelbeseitigung können Sie nach Ihrer Wahl Minderung verlangen oder vom Vertrag zurücktreten. Die Mängelbeseitigung gilt nach erfolglosem zweiten Versuch als fehlgeschlagen, wenn sich nicht insbesondere aus der Art der Sache oder des Mangels oder den sonstigen Umständen etwas anderes ergibt. Im Falle der Nachbesserung müssen wir nicht die erhöhten Kosten tragen, die durch die Verbringung der Ware an einen anderen Ort als den Erfüllungsort entstehen, sofern die Verbringung nicht dem bestimmungsgemäßen Gebrauch der Ware entspricht. +
+ - die Gewährleistungsfrist beträgt ein Jahr ab Ablieferung der Ware. Die verkürzte Gewährleistungsfrist gilt nicht für uns zurechenbare schuldhaft verursachte Schäden aus der Verletzung des Lebens, des Körpers oder der Gesundheit und grob fahrlässig oder vorsätzlich verursachte Schäden bzw. Arglist, sowie bei Rückgriffsansprüchen gemäß §§ 478, 479 BGB. +
+ § 7 Haftung
+ (1) Wir haften uneingeschränkt für Schäden aus der Verletzung des Lebens, des Körpers oder der Gesundheit. Weiterhin haften wir ohne Einschränkung in allen Fällen des Vorsatzes und grober Fahrlässigkeit, bei arglistigem Verschweigen eines Mangels, bei Übernahme der Garantie für die Beschaffenheit des Kaufgegenstandes und in allen anderen gesetzlich geregelten Fällen. +
+ (2) Sofern wesentliche Vertragspflichten betroffen sind, ist unsere Haftung bei leichter Fahrlässigkeit auf den vertragstypischen, vorhersehbaren Schaden beschränkt. Wesentliche Vertragspflichten sind wesentliche Pflichten, die sich aus der Natur des Vertrages ergeben und deren Verletzung die Erreichung des Vertragszweckes gefährden würde sowie Pflichten, die der Vertrag uns nach seinem Inhalt zur Erreichung des Vertragszwecks auferlegt, deren Erfüllung die ordnungsgemäße Durchführung des Vertrags überhaupt erst möglich machen und auf deren Einhaltung Sie regelmäßig vertrauen dürfen. +
+ § 8 Schlussbestimmungen
+ (1) Es gilt deutsches Recht. Bei Verbrauchern gilt diese Rechtswahl nur, soweit hierdurch der durch zwingende Bestimmungen des Rechts des Staates des gewöhnlichen Aufenthaltes des Verbrauchers gewährte Schutz nicht entzogen wird (Günstigkeitsprinzip). Die Bestimmungen des UN-Kaufrechts finden ausdrücklich keine Anwendung. +

+ (2) Erfüllungsort für alle Leistungen aus den mit uns bestehenden Geschäftsbeziehungen sowie Gerichtsstand ist unser Sitz, soweit Sie nicht Verbraucher, sondern Kaufmann, juristische Person des öffentlichen Rechts oder öffentlich-rechtliches Sondervermögen sind. Dasselbe gilt, wenn Sie keinen allgemeinen Gerichtsstand in Deutschland oder der EU haben oder der Wohnsitz oder gewöhnliche Aufenthalt im Zeitpunkt der Klageerhebung nicht bekannt ist. Die Befugnis, auch das Gericht an einem anderen gesetzlichen Gerichtsstand anzurufen, bleibt hiervon unberührt. +

+ + Stand: 05.10.2018 +

+
+ +
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/aloevera.blade.php b/resources/views/_bak/web/templates/aloevera.blade.php new file mode 100644 index 0000000..28d8a1f --- /dev/null +++ b/resources/views/_bak/web/templates/aloevera.blade.php @@ -0,0 +1,181 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + +
+
+ +
+ + +
+ + +
+

Aloe Vera

+
+ +

Die weltweit einmaligen und herausragenden Eigenschaften der Aloe Vera sind dem einzigartigen + Zusammenspiel und der Symbiose der unterschiedlichen Inhalts- und Wirkstoffe zu verdanken. Keine + andere bisher bekannte Pflanze verfügt über derart vielseitige Möglichkeiten der heilenden und + pflegenden Anwendung. Insgesamt sind in der medizinischen Literatur derzeit weit mehr als 200 + aktive Substanzen bekannt, und stetig werden neue entdeckt. Die Entschlüsselung des komplexen + Zusammenspiels aller Substanzen steht zwar erst ganz am Anfang, die Wirkungen sind inzwischen + aber sehr gut belegt.

+ + +
+ +
+
+

Herkunft unserer Aloe

+

Von des Deutschen liebster Urlaubsinsel

+
+ +

Die Farm auf Mallorca hat eine Größe von etwa 40 Hektar. Dort werden die Aloe Vera + Pflanzen gezüchtet und gepflegt. Die 200.000 Pflanzen müssen mindestens 5 Jahre alt + sein, bis die Blätter geerntet werden können. Eine Pflanze benötigt mindestens 2.000 + Sonnenstunden im Jahr, um die wertvollen Nährstoffe für den Saft aufzubauen.

+
+ +
+
+

100% BIO Qualität

+

Bio-zertifizierte Handarbeit aus Mallorca

+
+ +

Wir garantieren beste Qualität durch manuelle Produktion und biologische Inhaltsstoffe. + Das typische Klima von Mallorca fordert die Pflanzen heraus. Tests haben ergeben, dass + gerade dieses Klima optimal für eine perfekte Entwicklung der Pflanze ist.

+
+
+
+ +
+ service +

Geschäft auf der Aloe Vera Farm

+
+ +
+ service +

+
+ +
+
+ + + +
+ +
+
+

Die 5 Säulen für beste Aloe Vera Qualität

+
+
    +
  • + + BIO-zertifiziert + Aloe vera aus biologischem Anbau - keine Schadstoffe +
  • +
  • + + Pures Aloe Gel + Verarbeitung des reinen Aloe Gels - kein Pulver-Wasser-Gemisch +
  • +
  • + + Produktion vor Ort + Die geernteten Aloe Blätter werden sofort vor Ort verarbeitet - die Wirkstoffe + bleiben erhalten + +
  • +
  • + + Hoher Aloe Anteil + Alle Produkte haben einen hohen Anteil an purer BIO Aloe vera +
  • +
  • + + Hoher Aloeverose-Gehalt + Mit 1.600-1.700 mg/l überdurchschnittlich hoher Aloverose-Gehalt - DER + Qualitätsfaktor für den Wirkstoffgehalt der Aloe + +
  • +
+ +
+
+ + +
+ + +
+ +
+

Was macht unsere Aloe Vera Produkte so hochwertig?

+

Einer der weltweit besten Aloe Vera Säfte als Grundlage für hochwertige Aloe Produkte

+
+

Das Gel der Aloe Vera Blätter ist ein wahrer Schatz und ein Geschenk der Natur. Aber vom + Anbau bis zur Verarbeitung gibt es einiges zu beachten, damit diese wertvollen Inhaltsstoffe + auch erhalten bleiben und beim Kunden ankommen. Leider halten sich viele Hersteller nicht an + das 1x1 der Aloe Vera Herstellung und so tummeln sich etliche Aloe Produkte am Markt, die + wenig bis keine Wirkung haben. Was also macht unsere Produkte so hochwertig?

+ + +
+ +
+
    +
  • Die Aloe Pflanzen sind über 5 Jahre alt +
  • +
  • Haben weit über 2.000 Sonnenstunden + jährlich +
  • +
  • Rein biologisch kontrollierter Anbau +
  • +
  • Keine (!) künstliche Bewässerung
  • +
  • Keine Schädlings- o. Unkrautvernichter +
  • +
+
+ +
+
    +
  • Ernte und Filetierung der Blätter von + Hand +
  • +
  • Verarbeitung zu Produkten direkt nach + der Ernte +
  • +
  • Nur das reine Gel: kein Pulver oder + Extrakt +
  • +
  • zertifizierter Aloverose-Gehalt über + 1.600 mg/l +
  • +
  • Hoher Anteil an reiner Aloe in jedem + Produkt +
  • +
+
+
+
+
+
+
+ + + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/anforderungsprofil.blade.php b/resources/views/_bak/web/templates/anforderungsprofil.blade.php new file mode 100644 index 0000000..b867160 --- /dev/null +++ b/resources/views/_bak/web/templates/anforderungsprofil.blade.php @@ -0,0 +1,72 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + +
+
+ +
+ +
+

Anforderungsprofil bei mivita

+ +
+

Bei MIVITA ist jeder willkommen, der sich mit Freude und Engagement was ganz Eigenes aufbauen + möchte. Zu unseren Vertriebspartnern zählen vor allem Leute wie ...

+ +
    +
  • Angestellte mit Vollzeitjob
  • +
  • Angestellte mit Teilzeitbeschäftigung
  • +
  • junge Familien oder Alleinerziehende
  • +
  • Selbständige Unternehmer
  • +
  • Studenten und Auszubildende
  • +
  • +50 Generation, die es nochmal wissen will
  • +
+

+ Wenn Du Dich in diesem Anforderungsprofil wiederfindest, dann bist Du bei uns genau richtig. Vor + allem Menschen, die spüren, dass da noch mehr ist, das sie erreichen können, die beruflich + vielleicht auf der Stelle treten, die gerne freier und unabhängiger arbeiten wollen - denen + bieten wir sehr gerne ein unverbindlichs Erstgespräch an. +

+ + +
+ +
+
+
+
+
+ +
+
+

+ + @include('web.templates._content_contact') +
+ + + +
+ @include('web.templates._bcategories') +
+ + +
+ +
+
+ + +@endsection diff --git a/resources/views/_bak/web/templates/card.blade.php b/resources/views/_bak/web/templates/card.blade.php new file mode 100644 index 0000000..ef8df5f --- /dev/null +++ b/resources/views/_bak/web/templates/card.blade.php @@ -0,0 +1,362 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + +
+
+ +

Warenkorb

+ + + + + +
+ + +
+ +

Du hast {{ Yard::instance('shopping')->count() }} Artikel in Deinem Warenkorb

+ + + + @if(Yard::instance('shopping')->content()->count()) + + {!! Form::open(['url' => url(Util::getPostRoute().'card/update'), 'class' => 'cartContent clearfix', 'id'=>'']) !!} + + +
+ +
+
+ +
+ +
+ +
+
+
+ Artikel +
+
+ Einzelpreis +
+
+ Anzahl +
+
+
+ +
+
+ + + + + + @foreach(Yard::instance('shopping')->content() as $row) + @php($product = \App\Models\Product::find($row->id)) + +
+ + + +
+
+
+ {{ $row->name }} +
Inhalt: {{ $product->contents }}
+
Art.-Nr.: {{ $product->number }}
+
Lieferzeit: 1-3 Werktage
+ + +
+ +
+
{{ $row->price() }} €
+
{{$product->getBasePriceFormattedFull()}}
+
inkl. {{ number_format($row->taxRate, 0)}}% MwSt.
+ +
+ +
+
+ +
+
+ {{ $row->subtotal() }} € +
+ +
+
+
+ +
+ + @endforeach + + + Warenkorb löschen + +
+
+ {!! Form::close() !!} + + @endif + +
+ + +
+ + @if(Yard::instance('shopping')->content()->count()) +

Warenkorb Summe

+ + +
+
+
+ +
+ {{ Yard::instance('shopping')->total() }} € + Zwischensumme: +
+
+ +
+
Lieferland:
+
+
+ +
+
+
+
+ {{ Yard::instance('shopping')->shipping() }} € + Versandkosten: +
+
+
+ {{ Yard::instance('shopping')->subtotalWithShipping() }} € + Summe ohne MwSt: +
+
+ {{ Yard::instance('shopping')->taxWithShipping() }} € + zzgl. {{-- Yard::getTaxRate() --}} MwSt: +
+
+ + {{ Yard::instance('shopping')->totalWithShipping() }} € + Gesamtsumme: + + zur Kasse +
+

Sie werden auf unseren checkout Server weitergeletet, die Verbindung ist mit SSL verschlüsselt.

+
+
+
+ @endif + +
+
+

+
+

Alle Preise inkl. gesetzl. Mehrwertsteuer zzgl. Versandkosten, wenn nicht anders beschrieben

+ +
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/checkout-final.blade.php b/resources/views/_bak/web/templates/checkout-final.blade.php new file mode 100644 index 0000000..cd47edb --- /dev/null +++ b/resources/views/_bak/web/templates/checkout-final.blade.php @@ -0,0 +1,150 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + + + +
+
+ + +
+
+

Vielen Dank,

+

Deine Bestellung ist bei uns eingegangen. In Kürze erhälst Du von uns eine Bestellbestätigungsmail.

+ +

Deine Bestellnummer ist: {{ $order_reference }}

+
+ + @if($pay_trans && $pay_trans->shopping_payment) + + @if($pay_trans->shopping_payment->clearingtype === "vor") +

Bezahlung per Vorkasse:

+

Bitte überweise {{ number_format( floatval($pay_trans->shopping_payment->amount/100), 2, ",", ".") }} EUR auf die folgende Kontoverbindung, um den Kauf abzuschließen. +
+ Kontoinhaber: {{ $pay_trans->transmitted_data['clearing_bankaccountholder'] }}
+ IBAN: {{ $pay_trans->transmitted_data['clearing_bankiban'] }}
+ BIC: {{ $pay_trans->transmitted_data['clearing_bankbic'] }}
+ Bank: {{ $pay_trans->transmitted_data['clearing_bankname'] }}
+ Gesamtbetrag: {{ number_format( floatval($pay_trans->shopping_payment->amount/100), 2, ",", ".") }} EUR
+ Verwendungszweck: {{ $pay_trans->transmitted_data['txid'] }} +

+
+ @endif + + @if($pay_trans->shopping_payment->clearingtype === "cc") +

Bezahlung per Kreditkarte:

+

Deine Zahlung wurde genehmigt, eine Bestätigung der Zahlung wird automatisch erstellt.

+
+ @endif + + + @if($pay_trans->shopping_payment->clearingtype === "elv") +

Bezahlung per SEPA:

+

Deine Zahlung wird bearbeitet, eine Bestätigung zur Zahlungsabwicklung wird automatisch erstellt.

+
+ @endif + + @if($pay_trans->shopping_payment->clearingtype === "fnc" && $pay_trans->shopping_payment->onlinebanktransfertype === 'MIV') +

Bezahlung per Rechnung:

+

Deine Bestellung wird bearbeitet, eine Bestätigung zur Bestellungsabwicklung wird automatisch erstellt.

+
+ @endif + @endif +

+ Dein Team von mivita.care +

+
+
+ + +
+
+ + + + + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/checkout.blade.php b/resources/views/_bak/web/templates/checkout.blade.php new file mode 100644 index 0000000..c4c576d --- /dev/null +++ b/resources/views/_bak/web/templates/checkout.blade.php @@ -0,0 +1,959 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + +
+
+ @if ($errors->any()) +
+
+
+ Bitte überprüfe das Formular und vervollständigen alle Angaben. +
+
+
+ @endif + + @if (\Session::has('checkout-error')) +
+
+
+ {{ \Session::get('checkout-error') }} +
+
+
+ @endif + + @if (\Session::has('errormessage')) +
+
+
+ {{ \Session::get('customermessage') }} +
+
+
+ @endif + + + +
+ + {!! Form::open(['url' => route('checkout.checkout_card_final'), 'class' => 'row clearfix', 'id'=>'checkout_card_final']) !!} + + {!! Form::hidden('selected_country', '') !!} + {!! Form::hidden('is_for', $shopping_user->is_for) !!} + {!! Form::hidden('is_from', $shopping_user->is_from) !!} + {!! Form::hidden('homeparty_id', $shopping_user->homeparty_id) !!} + + + @if (\Session::has('elv-managemandate')) + +
+
+ + +
+
+ {!! urldecode(\Session::get('elv-mandate_text')) !!} +
+
+ + +
+ + +
+ @endif + + +
+ +
+

Rechnungsadresse

+ +
+ @if($is_from === 'shopping') +
+
+
+
+ + {!! Form::text('billing_company', $shopping_user->billing_company, ['class' => 'form-control', 'id'=>'billing_company']) !!} +
+
+
+
+
+
+ + + @if ($errors->has('billing_salutation')) + + @endif +
+
+
+
+
+
+ + {!! Form::text('billing_firstname', $shopping_user->billing_firstname, ['class' => 'form-control '.($errors->has('billing_firstname') ? 'error' : ''), 'id'=>'billing_firstname']) !!} + @if ($errors->has('billing_firstname')) + + @endif +
+
+
+
+ + {!! Form::text('billing_lastname', $shopping_user->billing_lastname, ['class' => 'form-control '.($errors->has('billing_lastname') ? 'error' : ''), 'id'=>'billing_lastname']) !!} + @if ($errors->has('billing_lastname')) + + @endif +
+
+
+ +
+
+
+ + {!! Form::text('billing_address', $shopping_user->billing_address, ['class' => 'form-control '.($errors->has('billing_address') ? 'error' : ''), 'id'=>'billing_address']) !!} + @if ($errors->has('billing_address')) + + @endif +
+
+
+
+ + {!! Form::text('billing_address_2', $shopping_user->billing_address_2, ['class' => 'form-control '.($errors->has('billing_address_2') ? 'error' : ''), 'id'=>'billing_address_2']) !!} + @if ($errors->has('billing_address_2')) + + @endif +
+
+
+ +
+
+ + {!! Form::text('billing_zipcode', $shopping_user->billing_zipcode, ['class' => 'form-control '.($errors->has('billing_zipcode') ? 'error' : ''), 'id'=>'billing_zipcode']) !!} + @if ($errors->has('billing_zipcode')) + + @endif +
+
+ + {!! Form::text('billing_city', $shopping_user->billing_city, ['class' => 'form-control '.($errors->has('billing_city') ? 'error' : ''), 'id'=>'billing_city']) !!} + @if ($errors->has('billing_city')) + + @endif +
+
+
+
+ + + + Bei der Änderung des Lieferlandes werden die Versandkosten neu berechnet. +
+
+ +
+
+ + {!! Form::text('billing_phone', $shopping_user->billing_phone, ['class' => 'form-control '.($errors->has('billing_phone') ? 'error' : ''), 'id'=>'billing_phone']) !!} + @if ($errors->has('billing_phone')) + + @endif +
+
+
+
+ + {!! Form::email('billing_email', $shopping_user->billing_email, ['class' => 'form-control '.($errors->has('billing_email') ? 'error' : ''), 'id'=>'billing_email']) !!} + @if ($errors->has('billing_email')) + + @endif +
+
+
+ @else +
+ + {!! Form::hidden('billing_company', $shopping_user->billing_company) !!} + {!! Form::hidden('billing_salutation', $shopping_user->billing_salutation) !!} + {!! Form::hidden('billing_firstname', $shopping_user->billing_firstname) !!} + {!! Form::hidden('billing_lastname', $shopping_user->billing_lastname) !!} + {!! Form::hidden('billing_address', $shopping_user->billing_address) !!} + {!! Form::hidden('billing_address_2', $shopping_user->billing_address_2) !!} + {!! Form::hidden('billing_zipcode', $shopping_user->billing_zipcode) !!} + {!! Form::hidden('billing_city', $shopping_user->billing_city) !!} + {!! Form::hidden('billing_phone', $shopping_user->billing_phone) !!} + {!! Form::hidden('billing_email', $shopping_user->billing_email) !!} + {!! Form::hidden('billing_state', $shopping_user->billing_state) !!} + {!! Form::hidden('billing_country_id', \App\Services\Shop::getShippingCountryCountryId($shopping_user->billing_state)) !!} + +
+ + @if($shopping_user->billing_company) +
+
Firma
+
{{ $shopping_user->billing_company }}
+
+ @endif +
+
Anrede
+
{{ \App\Services\HTMLHelper::getSalutationLang($shopping_user->billing_salutation) }}
+
+
+
Vorname
+
{{ $shopping_user->billing_firstname }}
+
+
+
Nachname
+
{{ $shopping_user->billing_lastname }}
+
+
+
+
+
Straße
+
{{ $shopping_user->billing_address }}
+
+
+
Zusatz
+
{{ $shopping_user->billing_address_2 }}
+
+
+
PLZ
+
{{ $shopping_user->billing_zipcode }}
+
+
+
Stadt
+
{{ $shopping_user->billing_city }}
+
+
+
Land
+
{{ $shopping_user->billing_country->getLocated() }}
+
+
+
Telefon
+
{{ $shopping_user->billing_phone }}
+
+
+
E-Mail
+
{{ $shopping_user->billing_email }}
+
+
+
+

Deine Rechnungsadresse kann nur im Salescenter geändert werden.

+
+ @endif + +
+
+
+ + @if ($errors->has('accepted_data_checkbox')) + + @endif +
+
+ +
+ + + + +
+
+ + @if($shopping_user->is_from === 'user_order') + @if($shopping_user->is_for === 'me') +

Meine Lieferadresse

+ @else +

Lieferadresse des Kunden

+ @endif + @else +

Lieferadresse

+ @endif + +
+ +
+ +
+ + {!! Form::text('shipping_company', $shopping_user->shipping_company, ['class' => 'form-control', 'id'=>'shipping_company']) !!} +
+
+ +
+
+
+ + + + + @if ($errors->has('shipping_salutation')) + + @endif +
+
+
+ +
+
+
+ + {!! Form::text('shipping_firstname', $shopping_user->shipping_firstname, ['class' => 'form-control '.($errors->has('shipping_firstname') ? 'error' : ''), 'id'=>'shipping_firstname']) !!} + @if ($errors->has('shipping_firstname')) + + @endif +
+
+
+
+ + {!! Form::text('shipping_lastname', $shopping_user->shipping_lastname, ['class' => 'form-control '.($errors->has('shipping_lastname') ? 'error' : ''), 'id'=>'shipping_lastname']) !!} + @if ($errors->has('shipping_lastname')) + + @endif +
+
+
+ +
+
+
+ + {!! Form::text('shipping_address', $shopping_user->shipping_address, ['class' => 'form-control '.($errors->has('shipping_address') ? 'error' : ''), 'id'=>'shipping_address']) !!} + @if ($errors->has('shipping_address')) + + @endif +
+
+
+
+ + {!! Form::text('shipping_address_2', $shopping_user->shipping_address_2, ['class' => 'form-control '.($errors->has('shipping_address_2') ? 'error' : ''), 'id'=>'shipping_address_2']) !!} + @if ($errors->has('shipping_address_2')) + + @endif +
+
+
+ +
+
+ + {!! Form::text('shipping_zipcode', $shopping_user->shipping_zipcode, ['class' => 'form-control '.($errors->has('shipping_zipcode') ? 'error' : ''), 'id'=>'shipping_zipcode']) !!} + @if ($errors->has('shipping_zipcode')) + + @endif +
+
+ + {!! Form::text('shipping_city', $shopping_user->shipping_city, ['class' => 'form-control '.($errors->has('shipping_city') ? 'error' : ''), 'id'=>'shipping_city']) !!} + @if ($errors->has('shipping_city')) + + @endif +
+ +
+ +
+
+ + + + @if($is_from === 'user_order' && $is_for === 'me') + Das Lieferland kann nur bei der Bestellübersicht geändert werden. + @else + Bei der Änderung des Landes werden die Versandkosten neu berechnet. + @endif +
+
+ +
+
+ + {!! Form::text('shipping_phone', $shopping_user->shipping_phone, ['class' => 'form-control '.($errors->has('shipping_phone') ? 'error' : ''), 'id'=>'shipping_phone']) !!} + @if ($errors->has('shipping_phone')) + + @endif +
+
+
+
+ + + @if(isset($order_reference)) + + zurück zum Shop + + @else + + @if(Util::getUserPaymentFor() > 1) + zurück {{ Util::getMyMivitaUrl(false) }} + @else + zurück zum Warenkorb + @endif + + @endif +
+ +
+ @if($shopping_mode === 'test') + #### TEST MODE #### TEST MODE #### + @endif + +
+

Zahlungsart

+
+
+
+
+
+ + + @if(($shopping_user->abo_options === 1) && (Util::getUserPaymentFor() >= 3)) + + + @if(array_key_exists('SEPA', $payment_methods_active) && in_array($payment_methods_active['SEPA'], $payment_methods)) +
+ +
+ @else +

Zahlungsmethode nicht freigeschaltet, bitte wende dich an {{ config('app.default_mail') }}

+ @endif + @else + @if(array_key_exists('PP', $payment_methods_active) && in_array($payment_methods_active['PP'], $payment_methods)) +
+ +
+ @endif + + @if(array_key_exists('CC', $payment_methods_active) && in_array($payment_methods_active['CC'], $payment_methods)) +
+ +
+ @endif + @if(array_key_exists('SB', $payment_methods_active) && in_array($payment_methods_active['SB'], $payment_methods)) +
+ +
+ @endif + @if(array_key_exists('SEPA', $payment_methods_active) && in_array($payment_methods_active['SEPA'], $payment_methods)) +
+ +
+ @endif + @if(array_key_exists('VOR', $payment_methods_active) && in_array($payment_methods_active['VOR'], $payment_methods)) +
+ +
+ @endif + @if(array_key_exists('FNC', $payment_methods_active) && in_array($payment_methods_active['FNC'], $payment_methods)) +
+ +
+ @endif + @endif + + {{-- +
+ +
+ +
+ +
+
+ +
+ --}} +
+
+
+
+
+ + + +
+ +

SEPA Lastschrift

+
+
+
+
+
+
+ +
+
+ {!! Form::text('elv_bankaccountholder', (isset($payment_data['bankaccountholder']) ? $payment_data['bankaccountholder'] : ''), ['class' => 'form-control', 'id'=>'elv_bankaccountholder', 'placeholder'=>'Vorname Nachname']) !!} +
+
+ +
+ + {!! Form::text('elv_iban', (isset($payment_data['iban']) ? $payment_data['iban'] : ''), ['class' => 'form-control', 'id'=>'elv_iban', 'placeholder'=>'Beisp.: DE02120300000000202051']) !!} +
+ +
+ + {!! Form::text('elv_bic', (isset($payment_data['bic']) ? $payment_data['bic'] : ''), ['class' => 'form-control', 'id'=>'elv_bic', 'placeholder'=>'Beisp.: PBNKDEFF']) !!} +
+ @if($shopping_user->abo_options) +

Automatische Verlängerung wurde ausgewählt. Dein SEPA-Mandart wird gespeichert und die jährliche Zahlung automatisch ausgeführt.

+ @endif +
+
+
+
+ + + +
+ +

Kreditkarte

+
+
+
+
+ + + +
+ + +
+ +
+
+ +
+
+ {!! Form::text('cc_cardholder_first', '', ['class' => 'form-control', 'id'=>'cc_cardholder_first', 'placeholder'=>'Vorname']) !!} +
+
+ {!! Form::text('cc_cardholder_last', '', ['class' => 'form-control', 'id'=>'cc_cardholder_last', 'placeholder'=>'Nachname']) !!} +
+
+ +
+ + + {!! Form::text('cc_cardpan', '', ['class' => 'form-control', 'id'=>'cc_cardpan', 'placeholder'=>'Kreditkartennummer']) !!} +
+
+
+ +
+ +
+
+ +
+
+
+ + {!! Form::text('cc_cardcvc2', '', ['class' => 'form-control', 'id'=>'cc_cardcvc2', 'placeholder'=>'CVC*']) !!} +
+
+
+
+
+
+ +
+
+
+ @if($is_from === 'user_order') +
+ {{ Yard::instance('shopping')->subtotal() }} € + Zwischensumme: +
+ +
+ +
+ {{ Yard::instance('shopping')->shippingNet() }} € + Versandkosten: +
+ @else +
+ {{ Yard::instance('shopping')->total() }} € + Zwischensumme: +
+ + @if($shopping_user->is_from !== 'homeparty') + +
+ +
+ {{ Yard::instance('shopping')->shipping() }} € + Versandkosten: +
+ @endif + @endif + + @if($shopping_user->is_from !== 'homeparty') +
+ {{ Yard::instance('shopping')->getShippingCountryName() }} + Lieferland: +
+ + +
+ +
+ {{ Yard::instance('shopping')->subtotalWithShipping() }} € + Summe ohne MwSt: +
+ +
+ {{ Yard::instance('shopping')->taxWithShipping() }} € + zzgl. {{-- Yard::getTaxRate() --}} MwSt: +
+ @else +
+ +
+ {!! $shopping_data['shop_price_net'] !!} € + Summe ohne MwSt: +
+ +
+ {!! $shopping_data['shop_price_tax'] !!} € + zzgl. {{-- Yard::getTaxRate() --}} MwSt: +
+ @endif +
+ +
+ {{ Yard::instance('shopping')->totalWithShipping() }} € + Gesamtsumme: +
+ + +

Sind alle Deine Angaben vollsätndig ausgefüllt, klicke auf "Jetzt kaufen" und Du wist zu unserem Zahlungsanbieter weitergeleitet, die Verbindung wird ist SSL verschlüsselt.

+ +
+
+
+
+ + {!! Form::close() !!} +
+
+
+ + + + +@endsection + +@section('scripts') + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/contact-final.blade.php b/resources/views/_bak/web/templates/contact-final.blade.php new file mode 100644 index 0000000..b652d4a --- /dev/null +++ b/resources/views/_bak/web/templates/contact-final.blade.php @@ -0,0 +1,119 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + + + +
+
+ + +
+
+

Vielen Dank für Deine Anfrage

+ +

+ Wir werden uns umgehend bei Dir melden. +

+ +
+ +

+ Beste Grüße +
+ Dein mivita.care Team +

+
+
+ + +
+
+ + + + + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/datenschutz.blade.php b/resources/views/_bak/web/templates/datenschutz.blade.php new file mode 100644 index 0000000..5d62e18 --- /dev/null +++ b/resources/views/_bak/web/templates/datenschutz.blade.php @@ -0,0 +1,231 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') +
+
+ +
+

Datenschutzerklärung

+
+ +
+Unsere Website kann grundsätzlich ohne Angabe personenbezogener Daten genutzt werden. Sofern Sie bestimmte Leistungen über unsere Website in Anspruch nehmen wollen, kann eine Verarbeitung Ihrer personenbezogenen Daten erforderlich werden. +
+Die Verarbeitung Ihrer personenbezogener Daten erfolgt stets in Übereinstimmung mit der Datenschutz-Grundverordnung (DSGVO) und den für uns geltenden landesspezifischen Datenschutzbestimmungen. +
+Wir haben nach Maßgabe des Art. 32 DSGVO geeignete technische und organisatorische Maßnahmen getroffen, um ein angemessenes Schutzniveau zu gewährleisten. Weiterhin haben wir Verfahren eingerichtet, die eine Wahrnehmung Ihrer Rechte, die Löschung von Daten und die Reaktion auf eine Gefährdung der Daten gewährleisten. Den Schutz Ihrer personenbezogenen Daten haben wir bereits bei der Entwicklung und Auswahl der verwendeten Hardware und Software berücksichtigt. Hiermit kommen wir dem Prinzip des Datenschutzes durch Technikgestaltung/durch datenschutzfreundliche Voreinstellungen nach, Art. 25 DSGVO. Zu unseren Sicherheitsmaßnahmen gehören insbesondere die verschlüsselte Übertragung (SSL-Verschlüsselung) von Daten zwischen Ihrem Browser und unserem Server. +

+I. Definitionen +
+Zur besseren Verständlichkeit unserer Datenschutzerklärung möchten wir Ihnen zunächst einige der verwendeten Begriffe erläutern. Im Sinne dieser Datenschutzerklärung bezeichnet der Ausdruck: +

+1) „personenbezogene Daten“ alle Informationen, die sich auf eine identifizierte oder identifizierbare natürliche Person (im Folgenden "betroffene Person") beziehen; als identifizierbar wird eine natürliche Person angesehen, die direkt oder indirekt, insbesondere mittels Zuordnung zu einer Kennung wie einem Namen, zu einer Kennnummer, zu Standortdaten, zu einer Online-Kennung oder zu einem oder mehreren besonderen Merkmalen identifiziert werden kann, die Ausdruck der physischen, physiologischen, genetischen, psychischen, wirtschaftlichen, kulturellen oder sozialen Identität dieser natürlichen Person sind; +

+2) „Verarbeitung“ jeden mit oder ohne Hilfe automatisierter Verfahren ausgeführten Vorgang oder jede solche Vorgangsreihe im Zusammenhang mit personenbezogenen Daten wie das Erheben, das Erfassen, die Organisation, das Ordnen, die Speicherung, die Anpassung oder Veränderung, das Auslesen, das Abfragen, die Verwendung, die Offenlegung durch Übermittlung, Verbreitung oder eine andere Form der Bereitstellung, den Abgleich oder die Verknüpfung, die Einschränkung, das Löschen oder die Vernichtung; +

+3) "Einschränkung der Verarbeitung" die Markierung gespeicherter personenbezogener Daten mit dem Ziel, ihre künftige Verarbeitung einzuschränken; +

+4) "Profiling" jede Art der automatisierten Verarbeitung personenbezogener Daten, die darin besteht, dass diese personenbezogenen Daten verwendet werden, um bestimmte persönliche Aspekte, die sich auf eine natürliche Person beziehen, zu bewerten, insbesondere um Aspekte bezüglich Arbeitsleistung, wirtschaftliche Lage, Gesundheit, persönliche Vorlieben, Interessen, Zuverlässigkeit, Verhalten, Aufenthaltsort oder Ortswechsel dieser natürlichen Person zu analysieren oder vorherzusagen; +

+5) "Pseudonymisierung" die Verarbeitung personenbezogener Daten in einer Weise, dass die personenbezogenen Daten ohne Hinzuziehung zusätzlicher Informationen nicht mehr einer spezifischen betroffenen Person zugeordnet werden können, sofern diese zusätzlichen Informationen gesondert aufbewahrt werden und technischen und organisatorischen Maßnahmen unterliegen, die gewährleisten, dass die personenbezogenen Daten nicht einer identifizierten oder identifizierbaren natürlichen Person zugewiesen werden; +

+6) „Verantwortliche“ die natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, die allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung von personenbezogenen Daten entscheidet; sind die Zwecke und Mittel dieser Verarbeitung durch das Unionsrecht oder das Recht der Mitgliedstaaten vorgegeben, so kann der Verantwortliche beziehungsweise können die bestimmten Kriterien seiner Benennung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten vorgesehen werden +

+7) „Auftragsverarbeiter“ eine natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, die personenbezogene Daten im Auftrag des Verantwortlichen verarbeitet; +

+8) „Empfänger“ eine natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, der personenbezogene Daten offengelegt werden, unabhängig davon, ob es sich bei ihr um einen Dritten handelt oder nicht. Behörden, die im Rahmen eines bestimmten Untersuchungsauftrags nach dem Unionsrecht oder dem Recht der Mitgliedstaaten möglicherweise personenbezogene Daten erhalten, gelten jedoch nicht als Empfänger; die Verarbeitung dieser Daten durch die genannten Behörden erfolgt im Einklang mit den geltenden Datenschutzvorschriften gemäß den Zwecken der Verarbeitung; +

+9) „Dritter“ eine natürliche oder juristische Person, Behörde, Einrichtung oder andere Stelle, außer der betroffenen Person, dem Verantwortlichen, dem Auftragsverarbeiter und den Personen, die unter der unmittelbaren Verantwortung des Verantwortlichen oder des Auftragsverarbeiters befugt sind, die personenbezogenen Daten zu verarbeiten; +

+10) „Einwilligung“ der betroffenen Person jede freiwillig für den bestimmten Fall, in informierter Weise und unmissverständlich abgegebene Willensbekundung in Form einer Erklärung oder einer sonstigen eindeutigen bestätigenden Handlung, mit der die betroffene Person zu verstehen gibt, dass sie mit der Verarbeitung der sie betreffenden personenbezogenen Daten einverstanden ist; +

+11) „Verletzung des Schutzes personenbezogener Daten“ eine Verletzung der Sicherheit, die, ob unbeabsichtigt oder unrechtmäßig, zur Vernichtung, zum Verlust, zur Veränderung, oder zur unbefugten Offenlegung von beziehungsweise zum unbefugten Zugang zu personenbezogenen Daten führt, die übermittelt, gespeichert oder auf sonstige Weise verarbeitet wurden. +

+II. Verantwortlicher +
+Verantwortlicher im Sinne der Datenschutz-Grundverordnung sowie der in den Mitgliedstaaten der Europäischen Union geltenden Datenschutzgesetze und anderer datenschutzrechtlicher Bestimmungen ist: +

+mivita e.K.
+Herr Alois Ried
+Leinfeld 2
+87755 Kirchhaslach
+Telefon: +49 (0) 8333 946 98 90
+Fax: +49 (0) 8333 7268
+Mail: info@mivita.care
+

+III. Cookies +
+Unsere Website verwendet Cookies. Cookies sind kleine Textdateien, die über einen Internetbrowser auf einem Computersystem abgelegt und gespeichert werden. +
+Zahlreiche Websites und Server verwenden Cookies. Viele Cookies enthalten eine sogenannte Cookie-ID. Eine Cookie-ID ist eine eindeutige Kennung des Cookies. Sie besteht aus einer Zeichenfolge, durch die Websites und Server dem konkreten Internetbrowser zugeordnet werden können, in dem das Cookie gespeichert wurde. Dies ermöglicht es den besuchten Websites und Servern, den individuellen Browser der betroffenen Person von anderen Internetbrowsern, die andere Cookies enthalten, zu unterscheiden. Ein bestimmter Internetbrowser kann über die eindeutige Cookie-ID wiedererkannt und identifiziert werden. +
+Durch den Einsatz von Cookies können wir Ihnen nutzerfreundlichere Services bereitstellen, die ohne die Cookie-Setzung nicht möglich wären. +
+Mittels eines Cookies können die Informationen und Angebote auf unserer Website im Sinne des Benutzers optimiert werden. Cookies ermöglichen uns, wie bereits erwähnt, die Benutzer unserer Website wiederzuerkennen. Zweck dieser Wiedererkennung ist es, Ihnen die Verwendung unserer Websites zu erleichtern. Der Benutzer einer Website, die Cookies verwendet, muss beispielsweise nicht bei jedem Besuch der Internetseite erneut seine Zugangsdaten eingeben, weil dies von der Internetseite und dem auf dem Computersystem des Benutzers abgelegten Cookie übernommen wird. +
+Die durch Cookies verarbeiteten Daten sind für die genannten Zwecke zur Wahrung unserer berechtigten Interessen nach Art. 6 Abs. 1 S. 1 lit. f DSGVO erforderlich. +
+Sie können die Setzung von Cookies durch unsere Website jederzeit mittels einer entsprechenden Einstellung des genutzten Internetbrowsers verhindern und damit der Setzung von Cookies dauerhaft widersprechen. Ferner können bereits gesetzte Cookies jederzeit über einen Internetbrowser oder andere Softwareprogramme gelöscht werden. Dies ist in allen gängigen Internetbrowsern möglich. Sollten Sie die Setzung von Cookies in dem von Ihnen genutzten Internetbrowser deaktiveren, sind unter Umständen nicht alle Funktionen unserer Website vollumfänglich nutzbar. +

+IV. Daten und Informationen, die beim Aufruf unserer Website gespeichert werden +
+Bei jedem Aufruf unserer Website werden allgemeine Daten und Informationen erfasst, die in den Logfiles des Servers gespeichert werden. +

+Folgende Daten/Informationen können erfasst werden: +
+- die verwendeten Browsertypen und Versionen +- das verwendete Betriebssystem, +- die Website, von der Sie auf unsere Website gelangen +- die Unterwebsites, die auf unserer Website angesteuert werden +- das Datum und die Uhrzeit des Zugriffs auf unsere Website, +- Ihre IP-Adresse +- Ihr Internet-Service-Provider +- sonstige ähnliche Daten und Informationen, die der Gefahrenabwehr im Falle von Angriffen auf unsere IT-Systeme dienen. +

+Wir benötigen diese Informationen, um die Inhalte unserer Website zutreffend bereitstellen zu können. die dauerhafte Funktionsfähigkeit unseres IT-Systems gewährleisten zu können und um im Falle eines Cyberangriffes den Behörden die zu einer Strafverfolgung notwendigen Informationen bereitstellen zu können. Hierin liegt auch unser berechtigtes Interesse im Rahmen der Rechtsgrundlage für die Verarbeitung dieser Daten gemäß Art. 6 Abs. 1 lit. f DSGVO. Bei der Nutzung dieser allgemeinen Daten und Informationen ziehen wir keine Rückschlüsse auf die betroffene Person. Die anonymen Daten der Server-Logfiles speichern wir getrennt von allen personenbezogenen Daten. +V. Elektronische Kontaktaufnahme mit uns +

+Aufgrund der Regelungen des Telemediengesetzes (TMG) sind wir zur Angabe einer allgemeinen Mailadresse im Impressum unserer Website verpflichtet, über die Sie uns per Mail kontaktieren können. Weiterhin haben Sie die Möglichkeit, über Kontaktformulare auf unserer Website Kontakt mit uns aufzunehmen. Über die Kontaktformulare können Sie u.a. Anfragen zu den Produkten oder unserem Geschäft stellen bzw. sich als Berater bei uns bewerben. Die von Ihnen per Mail oder unsere Kontaktformulare an uns übermittelten personenbezogenen Daten werden automatisch für Zwecke der Bearbeitung oder der Kontaktaufnahme zu Ihnen gespeichert. +

+Mit Absenden Ihrer Nachricht willigen Sie in die Verarbeitung der übermittelten Daten ein. Die Verarbeitung erfolgt auf Grundlage des Art. 6 Abs. 1 lit. a DSGVO mit Ihrer Einwilligung. Sie können Ihre Einwilligung jederzeit durch Mitteilung an uns widerrufen, ohne dass die Rechtmäßigkeit der aufgrund der Einwilligung bis zum Widerruf erfolgten Verarbeitung berührt wird. Ihre E-Mail-Adresse nutzen wir nur zur Bearbeitung Ihrer Anfrage. Ihre Daten werden anschließend gelöscht, sofern Sie der weitergehenden Verarbeitung und Nutzung nicht zugestimmt haben. +

+VI. Rechtsgrundlagen der Verarbeitung +
+Sofern wir bei Ihnen eine Einwilligung für einen bestimmten Verarbeitungszweck einholen, dient uns Art. 6 I lit. a DSGVO als Rechtsgrundlage für den Verarbeitungsvorgang. +

+Sofern die Verarbeitung personenbezogener Daten zur Erfüllung eines Vertrags erforderlich ist, beruht die Verarbeitung auf Art. 6 I lit. b DSGVO. Dies gilt ebenfalls für Verarbeitungsvorgänge, die zur Durchführung vorvertraglicher Maßnahmen erforderlich sind, etwa bei Anfragen zur unseren Produkten oder sonstigen Leistungen. +

+Sofern wir einer rechtlichen Verpflichtung unterliegen, durch die eine Verarbeitung von personenbezogenen Daten erforderlich wird, wie beispielsweise zur Erfüllung steuerlicher Pflichten, so ist Rechtsgrundlage für die Verarbeitung Art. 6 I lit. c DSGVO. +

+Sofern die Verarbeitung von personenbezogenen Daten erforderlich wird, um lebenswichtige Interessen der betroffenen Person oder einer anderen natürlichen Person zu schützen, würde die Verarbeitung auf Art. 6 I lit. d DSGVO beruhen. +

+Letztlich kann Art. 6 I lit. f DSGVO Rechtsgrundlage für einen Verarbeitungsvorgang sein. Dies ist dann der Fall, wenn der Verarbeitungsvorgang von keiner der vorgenannten Rechtsgrundlagen erfasst wird und die Verarbeitung zur Wahrung eines berechtigten Interesses unseres Unternehmens oder eines Dritten erforderlich ist, sofern die Interessen, Grundrechte und Grundfreiheiten des Betroffenen nicht überwiegen. Basiert die Verarbeitung personenbezogener Daten auf Artikel 6 I lit. f DSGVO ist unser berechtigtes Interesse die Durchführung unserer Geschäftstätigkeit zugunsten des Wohlergehens unserer Mitarbeiter/Anteilseigner. +

+VII. Gesetzliche oder vertragliche Vorschriften zur Bereitstellung der personenbezogenen Daten +
+Die Bereitstellung personenbezogener Daten ist zum Teil gesetzlich vorgeschrieben ist (z.B. Steuervorschriften) und kann sich auch aus vertraglichen Regelungen (z.B. Angaben zum Vertragspartner) ergeben. Für den Fall, dass Sie einen Vertrag mit uns abschließen wollen, ist es erforderlich, dass Sie uns personenbezogene Daten zur Verfügung stellen, die in der Folge durch uns verarbeitet werden. Eine Nichtbereitstellung der personenbezogenen Daten hätte zur Folge, dass wir keinen Vertrag mit Ihnen schließen können. +

+VIII. Routinemäßige Löschung/Sperrung von personenbezogenen Daten +
+Wir verarbeiten und speichern personenbezogene Daten nur für den Zeitraum, der zur Erreichung des Speicherungszwecks erforderlich ist oder sofern dies durch den Europäischen Richtlinien- und Verordnungsgeber oder einen anderen Gesetzgeber in Gesetzen oder Vorschriften vorgesehen wurde. Entfällt der Speicherungszweck oder läuft eine vom Europäischen Richtlinien- und Verordnungsgeber oder einem anderen zuständigen Gesetzgeber vorgeschriebene Speicherfrist ab, werden die personenbezogenen Daten routinemäßig und entsprechend den gesetzlichen Vorschriften gesperrt oder gelöscht. +

+Nach Ablauf der jeweiligen gesetzlichen Aufbewahrungsfrist werden die entsprechenden Daten routi-nemäßig gelöscht, sofern sie nicht mehr zur Vertragserfüllung oder Vertragsanbahnung erforderlich sind. Nach den gesetzlichen Vorgaben in Deutschland erfolgt die Aufbewahrung insbesondere für 10 Jahre gemäß §§ 147 Abs. 1 AO, 257 Abs. 1 Nr. 1 und 4, Abs. 4 HGB (Bücher, Aufzeichnungen, Lageberichte, Buchungsbelege, Handelsbücher, für Besteuerung relevanter Unterlagen, etc.) und 6 Jahre gemäß § 257 Abs. 1 Nr. 2 und 3, Abs. 4 HGB (Handelsbriefe). +

+IX. Ihre Rechte +
+1) Bestätigungs- und Auskunftsrecht +
+Sie haben das Recht, von uns eine Bestätigung darüber zu verlangen, ob betreffende personenbezogene Daten verarbeitet werden. Möchten Sie Recht in Anspruch nehmen, können sie sich hierzu jederzeit an uns wenden. +

+Sie haben weiterhin das Recht, von uns unentgeltliche Auskunft über die zu Ihrer Person gespeicherten personenbezogenen Daten und eine Kopie dieser Auskunft zu erhalten. Ferner steht Ihnen ein Auskunftsanspruch über folgende Informationen zu: +
+- die Verarbeitungszwecke +- die Kategorien personenbezogener Daten, die verarbeitet werden +- die Empfänger oder Kategorien von Empfängern, gegenüber denen die personenbezogenen Daten offengelegt worden sind oder noch offengelegt werden, insbesondere bei Empfängern in Drittländern oder bei internationalen Organisationen +- falls möglich die geplante Dauer, für die die personenbezogenen Daten gespeichert werden, oder, falls dies nicht möglich ist, die Kriterien für die Festlegung dieser Dauer +- das Bestehen eines Rechts auf Berichtigung oder Löschung der sie betreffenden personenbezogenen Daten oder auf Einschränkung der Verarbeitung durch den Verantwortlichen oder eines Widerspruchsrechts gegen diese Verarbeitung +- das Bestehen eines Beschwerderechts bei einer Aufsichtsbehörde +- wenn die personenbezogenen Daten nicht bei der betroffenen Person erhoben werden: Alle verfügbaren Informationen über die Herkunft der Daten +- das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling gemäß Artikel 22 Abs.1 und 4 DSGVO und - zumindest in diesen Fällen - aussagekräftige Informationen über die involvierte Logik sowie die Tragweite und die angestrebten Auswirkungen einer derartigen Verarbeitung für die betroffene Person +

+Ferner steht Ihnen ein Auskunftsrecht darüber zu, ob personenbezogene Daten an ein Drittland oder an eine internationale Organisation übermittelt wurden. Sofern dies der Fall ist, so steht Ihnen im Übrigen das Recht zu, Auskunft über die geeigneten Garantien im Zusammenhang mit der Übermittlung zu erhalten. +

+Möchten Sie dieses Auskunftsrecht in Anspruch nehmen, können sie sich hierzu jederzeit an uns wenden. +

+2) Recht auf Berichtigung +
+Sie haben das Recht, die unverzügliche Berichtigung sie betreffender unrichtiger personenbezogener Daten zu verlangen. Ferner steht Ihnen das Recht zu, unter Berücksichtigung der Zwecke der Verarbeitung, die Vervollständigung unvollständiger personenbezogener Daten - auch mittels einer ergänzenden Erklärung - zu verlangen. +

+Möchten Sie dieses Berichtigungsrecht in Anspruch nehmen, können sie sich hierzu jederzeit an uns wenden. +

+3) Recht auf Löschung („Recht auf „Vergessenwerden“) +
+Sie haben das Recht, von uns zu verlangen, dass die sie betreffenden personenbezogenen Daten unverzüglich gelöscht werden, sofern einer der folgenden Gründe zutrifft und soweit die Verarbeitung nicht erforderlich ist: +
+- Die personenbezogenen Daten wurden für solche Zwecke erhoben oder auf sonstige Weise verarbeitet, für welche sie nicht mehr notwendig sind; +- Sie widerrufen ihre Einwilligung, auf die sich die Verarbeitung gemäß Art. 6 Abs. 1 Buchstabe a DSGVO oder Art. 9 Abs. 2 Buchstabe a DSGVO stützte, und es fehlt an einer anderweitigen Rechtsgrundlage für die Verarbeitung; +- Sie legen gemäß Art. 21 Abs. 1 DSGVO Widerspruch gegen die Verarbeitung ein, und es liegen keine vorrangigen berechtigten Gründe für die Verarbeitung vor, oder Sie legen gemäß Art. 21 Abs. 2 DSGVO Widerspruch gegen die Verarbeitung ein; +- Die personenbezogenen Daten wurden unrechtmäßig verarbeitet; +- Die Löschung der personenbezogenen Daten ist zur Erfüllung einer rechtlichen Verpflichtung nach dem Unionsrecht oder dem Recht der Mitgliedstaaten erforderlich, dem wir unterliegen. +- Die personenbezogenen Daten wurden in Bezug auf angebotene Dienste der Informationsgesellschaft gemäß Art. 8 Abs. 1 DSGVO erhoben. +

+Sofern einer der oben genannten Gründe zutrifft und Sie die Löschung von personenbezogenen Daten, die bei uns gespeichert sind, veranlassen möchten, können sie sich hierzu jederzeit an uns wenden. Wir werden veranlassen, dass dem Löschverlangen unverzüglich nachgekommen wird. +
+Wurden die personenbezogenen Daten von uns öffentlich gemacht und sind wir als Verantwortlicher gemäß Art. 17 Abs. 1 DSGVO zur Löschung der personenbezogenen Daten verpflichtet, so treffen wir unter Berücksichtigung der verfügbaren Technologie und der Implementierungskosten angemessene Maßnahmen, auch technischer Art, um andere für die Datenverarbeitung Verantwortliche, welche die veröffentlichten personenbezogenen Daten verarbeiten, darüber in Kenntnis zu setzen, dass Sie von diesen anderen für die Datenverarbeitung Verantwortlichen die Löschung sämtlicher Links zu diesen personenbezogenen Daten oder von Kopien oder Replikationen dieser personenbezogenen Daten verlangt haben, soweit die Verarbeitung nicht erforderlich ist. Wir werden im Einzelfall das Notwendige veranlassen. +

+4) Recht auf Einschränkung der Verarbeitung +
+Sie haben das Recht, von uns die Einschränkung der Verarbeitung zu verlangen, wenn eine der folgenden Voraussetzungen gegeben ist: +
+- Die Richtigkeit der personenbezogenen Daten wird von Ihnen bestritten, und zwar für eine Dauer, die es uns ermöglicht, die Richtigkeit der personenbezogenen Daten zu überprüfen; +- Die Verarbeitung ist unrechtmäßig, Sie lehnen die Löschung der personenbezogenen Daten ab und verlangen stattdessen die Einschränkung der Nutzung der personenbezogenen Daten; +- Wir benötigen die personenbezogenen Daten für die Zwecke der Verarbeitung nicht länger, Sie benötigen sie jedoch zur Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen; +- Sie haben Widerspruch gegen die Verarbeitung gem. Art. 21 Abs. 1 DSGVO eingelegt und es steht noch nicht fest, ob unsere berechtigten Gründe gegenüber Ihren überwiegen. +
+Sofern eine der oben genannten Voraussetzungen gegeben ist und Sie die Einschränkung von personenbezogenen Daten, die bei uns gespeichert sind, verlangen möchten, können Sie sich hierzu jederzeit an uns wenden. Wir werden die Einschränkung der Verarbeitung veranlassen. +

+5) Recht auf Datenübertragbarkeit +
+Sie haben das Recht, von uns die sie betreffenden personenbezogenen Daten, welche von Ihnen bereitgestellt wurden, in einem strukturierten, gängigen und maschinenlesbaren Format zu erhalten. Sie haben außerdem das Recht, diese Daten einem anderen Verantwortlichen ohne Behinderung durch uns zu übermitteln, sofern die Verarbeitung auf der Einwilligung gemäß Art. 6 Abs. 1 Buchstabe a DSGVO oder Art. 9 Abs. 2 Buchstabe a DSGVO oder auf einem Vertrag gemäß Art. 6 Abs. 1 Buchstabe b DSGVO beruht und die Verarbeitung mithilfe automatisierter Verfahren erfolgt, sofern die Verarbeitung nicht für die Wahrnehmung einer Aufgabe erforderlich ist, die im öffentlichen Interesse liegt oder in Ausübung öffentlicher Gewalt erfolgt, welche uns übertragen wurde. +

+Ferner haben Sie bei der Ausübung ihres Rechts auf Datenübertragbarkeit gemäß Art. 20 Abs. 1 DSGVO das Recht, zu erwirken, dass die personenbezogenen Daten direkt von uns an einen anderen Verantwortlichen übermittelt werden, soweit dies technisch machbar ist und sofern hiervon nicht die Rechte und Freiheiten anderer Personen beeinträchtigt werden. +

+Zur Geltendmachung des Rechts auf Datenübertragbarkeit können Sie sich jederzeit an uns wenden. +

+6) Recht auf Widerspruch +
+Sie haben das Recht, aus Gründen, die sich aus ihrer besonderen Situation ergeben, jederzeit gegen die Verarbeitung sie betreffender personenbezogener Daten, die aufgrund von Art. 6 Abs. 1 Buchstaben e oder f DSGVO erfolgt, Widerspruch einzulegen. Dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling. +

+Wir verarbeiten die personenbezogenen Daten im Falle des Widerspruchs nicht mehr, es sei denn, wir können zwingende schutzwürdige Gründe für die Verarbeitung nachweisen, die Ihre Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung dient der Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen. +
+Verarbeiten wir personenbezogene Daten, um Direktwerbung zu betreiben, so haben Sie das Recht, jederzeit Widerspruch gegen die Verarbeitung der personenbezogenen Daten zum Zwecke derartiger Werbung einzulegen. Dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht. Widersprechen Sie der Verarbeitung für Zwecke der Direktwerbung, so werden wir die personenbezogenen Daten nicht mehr für diese Zwecke verarbeiten. +

+Zudem haben Sie das Recht, aus Gründen, die sich aus ihrer besonderen Situation ergeben, gegen die sie betreffende Verarbeitung personenbezogener Daten, die bei uns zu wissenschaftlichen oder historischen Forschungszwecken oder zu statistischen Zwecken gemäß Art. 89 Abs. 1 DSGVO erfolgen, Widerspruch einzulegen, es sei denn, eine solche Verarbeitung ist zur Erfüllung einer im öffentlichen Interesse liegenden Aufgabe erforderlich. +

+Zur Ausübung des Rechts auf Widerspruch können Sie sich an uns wenden. Es steht Ihnen frei, im Zusammenhang mit der Nutzung von Diensten der Informationsgesellschaft, ungeachtet der Richtlinie 2002/58/EG, ihr Widerspruchsrecht mittels automatisierter Verfahren auszuüben, bei denen technische Spezifikationen verwendet werden. +

+7) Automatisierte Entscheidungen im Einzelfall einschließlich Profiling +
+Sie haben das Recht, nicht einer ausschließlich auf einer automatisierten Verarbeitung - einschließlich Profiling - beruhenden Entscheidung unterworfen zu werden, die Ihnen gegenüber rechtliche Wirkung entfaltet oder sie in ähnlicher Weise erheblich beeinträchtigt, sofern die Entscheidung nicht für den Abschluss oder die Erfüllung eines Vertrags zwischen Ihnen und uns erforderlich ist, oder aufgrund von Rechtsvorschriften der Union oder der Mitgliedstaaten, denen wir unterliegen, zulässig ist und diese Rechtsvorschriften angemessene Maßnahmen zur Wahrung Ihrer Rechte und Freiheiten enthalten oder mit Ihrer ausdrücklicher Einwilligung erfolgt. +

+Ist die Entscheidung für den Abschluss oder die Erfüllung eines Vertrags zwischen Ihnen und uns erforderlich oder erfolgt sie mit Ihrer ausdrücklicher Einwilligung, treffen wir angemessene Maßnahmen, um Ihre Rechte und Freiheiten sowie Ihre berechtigten Interessen zu wahren, wozu mindestens das Recht auf Erwirkung des Eingreifens einer Person seitens des Verantwortlichen, auf Darlegung des eigenen Standpunkts und auf Anfechtung der Entscheidung gehört. +

+Möchten Sie Rechte mit Bezug auf automatisierte Entscheidungen geltend machen, können Sie sich hierzu jederzeit an uns wenden. +

+8) Recht auf Widerruf einer datenschutzrechtlichen Einwilligung +
+Sie haben das Recht, eine Einwilligung zur Verarbeitung personenbezogener Daten jederzeit zu widerrufen. +Möchten Sie Ihr Recht auf Widerruf einer Einwilligung geltend machen, können Sie sich hierzu jederzeit an uns wenden. +

+9) Beschwerderecht bei der Aufsichtsbehörde +
+Sie haben gemäß Art. 77 DSGVO das Recht, sich bei der Aufsichtsbehörde zu beschweren, wenn Sie der Ansicht sind, dass die Verarbeitung Ihrer personenbezogenen Daten nicht rechtmäßig erfolgt. +

+X. Zusammenarbeit mit Auftragsverarbeitern/Dritten +
+Soweit wir im Rahmen unserer Datenverarbeitung Ihre Daten gegenüber anderen Personen/Unternehmen offenbaren, an diese übermitteln oder diesen Zugriff auf Ihre Daten gewähren, erfolgt dies ausschließlich auf Grundlage einer gesetzlichen Erlaubnis, Ihrer Einwilligung, einer rechtlichen Verpflichtung oder auf Grundlage unserer berechtigten Interessen. Wenn Dritte von uns mit der Verarbeitung von Daten auf Grundlage eines so genannten „Auftragsverarbeitungsvertrages“ beauftragt worden sind bzw. werden, geschieht dies auf Grundlage des Art. 28 DSGVO. +

+XI. Übermittlungen in Drittländer +
+Soweit wir Daten in einem Drittland verarbeiten oder dies im Rahmen der Inanspruchnahme von Diensten Dritter geschieht, erfolgt dies nur, wenn es zur Erfüllung unserer (vor)vertraglichen Pflichten, auf Grundlage Ihrer Einwilligung, aufgrund einer rechtlichen Verpflichtung oder auf Grundlage unserer berechtigten Interessen geschieht. Vorbehaltlich gesetzlicher oder vertraglicher Erlaubnisse verarbeiten oder lassen wir die Daten in einem Drittland nur beim Vorliegen der besonderen Voraussetzungen der Art. 44 ff. DSGVO verarbeiten. Dementsprechend erfolgt die Verarbeitung z.B. auf Grundlage besonderer Garantien, wie der offiziell anerkannten Feststellung eines der EU entsprechenden Datenschutzniveaus (z.B. für die USA durch das „Privacy Shield“) oder Beachtung offiziell anerkannter spezieller vertraglicher Verpflichtungen (so genannte „Standardvertragsklauseln“). +

+XII. Einbindung von Diensten und Inhalten Dritter +
+Wir setzen auf unserer Website basierend auf unseren berechtigten Interessen im Sinne des Art. 6 Abs. 1 lit. f. DSGVO Angebote von Drittanbietern ein, um deren Inhalte einbinden zu können. Die Anbieter dieser Inhalte erhalten Kenntnis über Ihre IP-Adresse, da ohne die Kenntnis über die IP-Adresse die Inhalte nicht an Ihren Browser übermittelt werden können. Hierbei bemühen wir uns, nur solche Inhalte von Drittanbietern zu verwenden, bei denen Ihre IP-Adresse ausschließlich zur Auslieferung der Inhalte verwendet wird. Es besteht weiterhin die Möglichkeit, dass Drittanbieter so genannte „Pixel-Tags“ - dies sind unsichtbare Grafiken, die auch als "Web Beacons" bezeichnet werden - für statistische oder Marketingzwecke verwenden. "Pixel-Tags" können Informationen, wie zum Beispiel den Besucherverkehr auf unserer Website, auswerten. +

+Nachfolgend geben wir Ihren eine Übersicht zu den von uns verwendeten Angeboten von Drittanbietern nebst Links zu deren Datenschutzerklärungen: +

+Externe Schriftarten von Google, LLC., https://www.google.com/fonts („Google Fonts“). Die Einbindung der Google Fonts erfolgt durch einen Serveraufruf bei Google (in der Regel in den USA). Die Datenschutzerklärung finden Sie hier: https://policies.google.com/privacy, Opt-Out: https://adssettings.google.com/authenticated +

+Videos der Plattform “YouTube” des Drittanbieters Google LLC, 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA. Die Datenschutzerklärung finden Sie hier: https://policies.google.com/privacy, Opt-Out: https://adssettings.google.com/authenticated +

+ + +Stand: 05.10.2018 +

+
+ +
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/erreichbarkeit.blade.php b/resources/views/_bak/web/templates/erreichbarkeit.blade.php new file mode 100644 index 0000000..deb70c9 --- /dev/null +++ b/resources/views/_bak/web/templates/erreichbarkeit.blade.php @@ -0,0 +1,80 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + +
+
+ +
+ +
+

Erreichbarkeit mit Familie & Privatem

+ +
+ +
+ service +

Nesciunt tofu stumptown aliqua, retro synth master cleanse.

+
+ +
+ + + + + + + + + + + + + + + + + + + + + +

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

+
+
+ +
+
+
+ +
+

Mache Menschen glücklich ....

+

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

+ +
+ + @include('web.templates._content_contact') +
+ + + +
+ @include('web.templates._bcategories') +
+ + +
+ +
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/existenzgruendung.blade.php b/resources/views/_bak/web/templates/existenzgruendung.blade.php new file mode 100644 index 0000000..8afb67e --- /dev/null +++ b/resources/views/_bak/web/templates/existenzgruendung.blade.php @@ -0,0 +1,119 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + +
+
+ +
+ +
+

Existenzgründung

+ +
+
+

Gewerbeschein

+

Wenn Du dieses Business angehen möchtest, brauchst Du einen Gewerbeschein. Das ist nix + Wildes + und kann beim Gewerbeamt Deiner Stadt beantragt werden. Dabei fallen geringfügige Kosten + von + einmalig ca. 20-25 EUR an, je nach Stadt bzw. Gemeinde. Überlege Dir dabei eine konkrete + Tätigkeit, die Du auf dem Gewerbeschein angibst. Z. B. „Vertrieb von Wellness- und + Pflegeprodukten“. Im Merkblatt Gewerbeanmeldung, Existenzgründung und Formalitäten + findest + Du hilfreiche und wichtige Informationen zu folgenden Punkten:

+
    +
  • Gewerbeanmeldung
  • +
  • Meldung beim Finanzamt
  • +
  • Mitgliedschaft in der Industrie- und Handelskammer
  • +
+
+ +
+
+
+ +
+ +

Fördermöglichkeiten

+

Wer den Sprung in die vollständige Selbständigkeit wagen möchte, dem bieten sich + verschiedene + Fördermöglichkeiten. Bitte schaut Euch folgende an, in denen Ihr erstes Startkapital + beantragen könnt:

+

+ www.existenzgruender.de
+ www.foerderdatenbank.de
+ www.kfw.de
+ www.mikrofinanz.net
+

+ +
+ +
+
+
+ +
+ +

Soziale Absicherung

+

Fast alle finden den Einstieg in den Direktvertrieb als nebenberufliche Tätigkeit. + Schließlich stellt sich der berufliche Erfolg mit einem guten finanziellen Einkommen + nicht + von heute auf morgen ein. Wer sich dennoch für die ganzheitliche Selbständigkeit + entscheidet, der beachte folgende Punkte bzgl. seiner sozialen Absicherung:

+

+ +

    +
  • Als Selbständige(r) können Sie entweder eine private Altersvorsorge abschließen oder + der + gesetzlichen Rentenversicherung beitreten. Abweichend davon gibt es eine + Versicherungspflicht in der gesetzlichen Rentenversicherung für so genannte + "arbeitnehmerähnliche Selbständige", die auf Dauer und im Wesentlichen nur für einen + einzigen Auftraggeber tätig sind und keine eigenen Arbeitnehmer beschäftigen. +
  • +
  • Als Selbständige(r) können Sie eine private Krankenversicherung abschließen oder + sich + unter bestimmten Bedingungen freiwillig in einer gesetzlichen Krankenkasse + versichern. + Irgendeine Krankenversicherung müssen sie jedoch haben. +
  • +
  • Eine Pflegeversicherung müssen Sie dort abschließen, wo sie auch krankenversichert + sind +
  • +
  • Es besteht keine Pflichtmitgliedschaft in der gesetzlichen + Arbeitslosenversicherung. Nach + der Existenzgründung können Sie sich dort aber unter bestimmten Voraussetzungen + freiwillig + weiterversichern. +
  • +
+
+ +
+ + @include('web.templates._content_contact') +
+ + +
+ @include('web.templates._bcategories') +
+ + +
+ +
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/impressum.blade.php b/resources/views/_bak/web/templates/impressum.blade.php new file mode 100644 index 0000000..02a52c0 --- /dev/null +++ b/resources/views/_bak/web/templates/impressum.blade.php @@ -0,0 +1,46 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') +
+
+ +
+

Impressum

+
+ +

mivita e.K.
+ Leinfeld 2
+ 87755 Kirchhaslach
+ Telefon: +49 (0) 8333 946 98 90
+ Fax: +49 (0) 8333 7268
+ E-Mail: info@mivita.care

+ +

Geschäftsinhaber:
Alois Ried

+ + Registergericht:
Memmingen

+ + Registernummer:
HRA 12236

+ + USt-ID-Nr.:
DE 244162340

+
+

Support mivita:
+ Telefon: +49 (0) 8333 946 98 90
+ E-Mail:: info@mivita.care

+ +
+ + +
+

Nutzungshinweis: +
Eine unerlaubte Verwendung, Reproduktion, Weitergabe, Veröffentlichungen oder eine kommerzielle Nutzung ohne Genehmigung des Urhebers der auf dieser Website befindlichen Inhalte ist untersagt und wird sowohl straf- als auch zivilrechtlich verfolgt!

+
+ Online-Streitbeilegung: +
gemäß Art. 14 Abs. 1 ODR-VO: Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit, die Sie hier finden http://ec.europa.eu/consumers/odr/. + +
+ +
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/karrierechancen.blade.php b/resources/views/_bak/web/templates/karrierechancen.blade.php new file mode 100644 index 0000000..17479eb --- /dev/null +++ b/resources/views/_bak/web/templates/karrierechancen.blade.php @@ -0,0 +1,213 @@ + +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + +
+
+ +
+ +
+

Karrierechancen bei mivita

+ +
+ +
+ service + +

Schulung auf der Aloe Vera Farm auf Mallorca.

+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +

Vertreibe Produkte, die zu einem gesunden und vitalen Leben passen, und die + Dir und Deinen Lieben ein tolles Wohlfühlerlebnis bescheren.

In WhatsApp-Gruppen und Video-Calls halten wir uns gemeinsam auf dem + Laufenden und unterstützen uns gegenseitig. Du bist nicht allein!

Wir geben unser Know-How, bewährte Marketing-Tools und Werbemittel an Dich + weiter, denn nur wenn DU erfolgreich bist, sind wir es auch.

Profitiere von unterstützenden Maßnahmen wie Schulungen, Team-Events oder + gemeinsamen Verkaufsaktionen. Zusammen sind wir erfolgreich!

Mache Dir Social Media zu Nutze, erzähle von Produkten und Erfahrungen. + Gewinne neue Kunden und Partner über facebook & Co.

+ +
+
+
+
+
+ +
+

Mache Menschen glücklich ....

+

Unsere Produkte helfen Menschen bei den unterschiedlichsten Hautproblemen und werden sehr + gerne zur Pflege von Neurodermitis, Schuppenflechte, Akne und viele weiteren Hautkrankheiten + genutzt. Der reine Bio Aloe Vera Saft ist dabei ein ausgezeichneter Bioregulator, wirkt + entzündungshemmend und unterstützt den Körper, die Darmflora aufrecht zu erhalten. Hilf auch + Du anderen Menschen auf natürliche Weise bei der Gesunderhaltung ihres Körpers.

+ +
+ +
+
+
+ + +
+

Und wie verkaufe ich genau?

+

Es gibt viele verschiedene Möglichkeiten für Dich, Produkte zu verkaufen oder Vertriebspartner zu gewinnen. Hier stellen wir Dir ein paar davon vor. Die wichtigste Regel lautet: Nutze die Produkte und rede darüber. Dann werden die Kunden von alleine auf Dich zukommen.

+ +
+
+

Im privatem Umfeld

+ +
+
+
    +
  • Familie
  • +
  • Freunde
  • +
  • Arbeitskollegen
  • +
  • Nachbarn
  • +
  • Homepartys
  • +
  • Sportverein
  • +
  • Familie
  • +
  • Tierbesitzer
  • +
  • u.v.m.
  • +
+
+ +
+

Geschäftliches Umfeld

+ +
+
+
    +
  • Kosmetik / Naturkosmetik
  • +
  • Hairstyling
  • +
  • Ernährung
  • +
  • Nagel- & Fußpflege
  • +
  • Heilpraktiker & Alternativmedizin
  • +
  • Medizin (Haut, Physio, Allgemein etc.)
  • +
  • Rund ums Tier
  • +
  • Yoga & Meditation
  • +
  • Gastronomie
  • +
  • Sport & Fitness
  • +
  • u.v.m.
  • +
+
+ +
+

In den sozialen Medien

+ +
+
+
    +
  • Facebook
  • +
  • Youtube
  • +
  • Instagram
  • +
  • Snapchat
  • +
  • Familie
  • +
  • u.a. ...
  • + +
+
+
+
+ + +
+
+
+ + +
+

Schulung auf der Mallorca Farm

+

Zweimal jährlich veranstaltet MIVITA eine Schulung für Berater. Neben Eurer Begehung der Farm + und Produktionsstätte, weiht Euch Farmbetreiber Werner Telwest in die Geheimnisse der + „Wüstenlilie“ ein. Und das Beste: Zu jeder Schulung gibt es eine Ausschreibung. Wer + entsprechend Umsatz generiert wird mit der Reise von MIVITA belohnt und fliegt FOR FREE auf + des Deutschen liebste Urlaubsinsel.

+ + +
+ + + @include('web.templates._content_contact') +
+ + + +
+ + @include('web.templates._bcategories') + +
+ + +
+ +
+
+ + + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/kontakt.blade.php b/resources/views/_bak/web/templates/kontakt.blade.php new file mode 100644 index 0000000..7abf000 --- /dev/null +++ b/resources/views/_bak/web/templates/kontakt.blade.php @@ -0,0 +1,307 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + + + + +
+
+
+ +
+

Schreibe uns!

+

Du interessierst Dich für unser Geschäft oder hast Fragen zu den Produkten? Dann freuen wir uns auf eine Nachricht von Dir. Wir werden uns im Anschluss sobald wie möglich bei Dir zurückmelden.

+ +
+ {!! Form::open(['url' => '/kontakt']) !!} +
+ * {{trans('register.required_fields')}} +
+
+
+ {!! Form::label('first_name', __('Salutation').'*') !!} + {!! Form::select('salutation', [''=>'Bitte wählen', 'mr'=>'Herr', 'ms'=>'Frau'], '', ['class' => 'form-control '.($errors->has('salutation') ? 'error is-invalid' : '')]) !!} + @if ($errors->has('salutation')) +
+ {{ $errors->first('salutation') }} +
+ @endif +
+
+ {!! Form::label('first_name', __('First name').'*') !!} + {!! Form::text('first_name', '', ['class' => 'form-control '.($errors->has('first_name') ? 'error is-invalid' : ''), 'placeholder'=>__('First name'), '']) !!} + @if ($errors->has('first_name')) +
+ {{ $errors->first('first_name') }} +
+ @endif +
+
+ {!! Form::label('last_name', __('Last name').'*') !!} + {!! Form::text('last_name', '', ['class' => 'form-control '.($errors->has('last_name') ? 'error is-invalid' : ''), 'placeholder'=>__('Last name'), '']) !!} + @if ($errors->has('last_name')) +
+ {{ $errors->first('last_name') }} +
+ @endif +
+
+ {!! Form::label('email', __('E-Mail Address').'*') !!} + {!! Form::email('email', '', ['class' => 'form-control '.($errors->has('email') ? 'error is-invalid' : ''), 'placeholder'=>__('E-Mail Address'), '']) !!} + @if ($errors->has('email')) +
+ {{ $errors->first('email') }} +
+ @endif +
+
+ {!! Form::label('phone', __('Phone')) !!} + {!! Form::text('phone', null, ['class' => 'form-control', 'placeholder'=>__('Phone')]) !!} +
+
+
+
+
+ {!! Form::label('message', __('Nachricht*')) !!} + {!! Form::textarea('message', null, ['class' => 'form-control '.($errors->has('message') ? 'error is-invalid' : ''), 'placeholder'=>__('Deine Nachticht an uns')]) !!} + @if ($errors->has('message')) +
+ {{ $errors->first('message') }} +
+ @endif +
+
+ @if(!$user_shop || $user_shop->id === 22) +
+
+ {!! Form::label('sales_partnership', __('Betrifft Ihre Anfrage eine gewünschte Vertriebspartnerschaft?*')) !!} +
+
+
+
+ + +
+
+
+
+ + @if ($errors->has('sales_partnership')) +
+ {{ $errors->first('sales_partnership') }} +
+ @endif +
+
+ + @endif + +
+
+
+ +
+ + @if ($errors->has('accepted_data_protection')) +
+ {{ $errors->first('accepted_data_protection') }} +
+ @endif +
+ +
+ +
+
+
+ @if ($errors->has('g-recaptcha-response')) +
+ {{ $errors->first('g-recaptcha-response') }} +
+ @endif +
+
+ + {!! Form::close() !!} +
+ +
+ + + +
+ @if($user_shop) +

Kontakt

+

Ich freue mich über Deinen Besuch in meinem MIVITA Onlineshop. Ich bin Deine persönliche Beratung rund um die Produkte und ihrer Anwendung.

+
+ @if($user_shop->isImage()) + + @else + + @endif +
+ +

+ @if($user_shop->title) + {{ $user_shop->title }}
+ @endif + @if($user_shop->contact) + {!! nl2br($user_shop->contact) !!} + @endif +
+ {{ $user_shop->getSubdomain(true) }} +

+ + @if($user_shop->accessibility) +

+ Meine Erreichbarkeit:
+ {!! nl2br($user_shop->accessibility) !!} +

+ @endif + + @else + +

Kontakt

+
+ +

+ Adresse:
mivita e.K.
+ Leinfeld 2
+ 87755 Kirchhaslach
+ Telefon: 0 8333-946 98 90 + Email: info@mivita.care +

+ +
+ +

Geschäftszeiten

+

+ Mo. - Fr.: 9-12 Uhr u. 13-16 Uhr +

+ + @endif + +
+ + +
+ +
+
+ + +@endsection + +@section('scripts') + @if(!$user_shop || $user_shop->id === 22) + + @endif +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/partner.blade.php b/resources/views/_bak/web/templates/partner.blade.php new file mode 100644 index 0000000..11a29ed --- /dev/null +++ b/resources/views/_bak/web/templates/partner.blade.php @@ -0,0 +1,85 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + + + + + +
+
+
+

Partner

+
+

Neben Studenten, Berufseinsteigern, jungen Eltern und alleinerziehenden Müttern bzw. Vätern besteht das MIVITA Vertriebsteam auch aus Unternehmern, die schon vor dem Schritt in den Direktvertrieb ihre Zukunft in die eigenen Hände gelegt haben. So liegt es nahe, dass wir mit diesen Dienstleistern, die unsere Arbeit und den Markt am besten verstehen, auch geschäftlich zusammenarbeiten. Ob Werbemittel wie Autobeschriftung, Flyer, Webdesign, Reisen etc. - wir bauen auch diese Infrastruktur weiter aus, so dass Du Zugriff auf die unterschiedlichsten Dienstleister hast, die Dir maßgeschneidert in Dein eigenes Business helfen.

+ +
+ +
+ +
+
+ MIVITA Fahrzeugbeschriftung +
+
+

Autobeschriftung vom Fachmann

+

Nutze Dein Auto als Werbefläche und mache auf Dich und Dein Produkt aufmerksam. Du möchtest das MIVITA Logo auf Deinem Auto oder hast eine ganz konkrete Vorstellung? Kein Problem. Kontaktiere unseren Vertriebspartner Stefan, der Dich gerne dazu berät:

+ + DV Dienstleistungsservice
+ Stefan Del Vecchio
+ Steinstraße.33
+ 51702 Bergneustadt +

+ DV.Dienstleistungsservice@web.de
+ Festnetz: +49 2261 912 36 26
+ Mobil: +49 174 525 69 00 +



+ +
+
+
+
+ MIVITA Reisen by NETWORKTRIPS +
+
+

MIVITA Reisen by NETWORKTRIPS

+

Wir legen jedem Berater ans Herz, mit uns gemeinsam die Aloe Vera Schulung auf Mallorca zu erleben. Hierzu haben wir für Euch gemeinsam mit unserem Reise-Portal NETWORKTRIPS und angeschlossenem Reisebüro STERN TOURS in Berlin verschiedene Buchungsmöglichkeiten für

+ + • Nur-Hotel
+ • Hotel & Flug
+ • Event-Package
+
+ vorbereitet. Dieses Portal ist nicht öffentlich und eine Registrierung kann nur über einen Einladungslink erfolgen. Bitte fragt Euren Sponsor oder in einer Eurer WhatsApp Gruppen nach.

+ + NETWORTRIPS
+ Ansprechpartner: Thomas Krummel
+ www.networktrips.agency
+ support@networktrips.agency
+ Festnetz: +49 2203 186 90 14
+ Mobil: +49 162 251 48 71 +



+ +
+
+ + +
+
+ + + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/produkte-item.blade.php b/resources/views/_bak/web/templates/produkte-item.blade.php new file mode 100644 index 0000000..041aa86 --- /dev/null +++ b/resources/views/_bak/web/templates/produkte-item.blade.php @@ -0,0 +1,107 @@ + + +
+ + + + @if($user_shop) +
+

{{ $product->getLang('name') }}

+ +
+
+
+ + @if($product->price_old > 0) +
+ {{ $product->getFormattedPriceOld() }} € + {{ $product->getFormattedPrice() }} € +
{{$product->getBasePriceFormattedFull()}}
+ +
+ @else +
+ {{ $product->getFormattedPrice() }} € +
{{$product->getBasePriceFormattedFull()}}
+
+ @endif + + + +
+ + + @else + + + + @endif + +
\ No newline at end of file diff --git a/resources/views/_bak/web/templates/produkte-show.blade.php b/resources/views/_bak/web/templates/produkte-show.blade.php new file mode 100644 index 0000000..bed4109 --- /dev/null +++ b/resources/views/_bak/web/templates/produkte-show.blade.php @@ -0,0 +1,191 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + +
+
+
+ +
+ @include('web.templates._categories') +
+ +
+ +
+ + +
+ @if($product->imagesActive->count()) + + + + + @endif +
+ + + +
+

{{ $product->getLang('name') }}

+ + {!! $product->getLang('copy') !!} +
+ + @if($user_shop) + @if($product->price_old > 0) +
+ {{ $product->getFormattedPriceOld() }} € + {{ $product->getFormattedPrice() }} € + @else +
+ {{ $product->getFormattedPrice() }} € + @endif
+ {{$product->getBasePriceFormattedFull()}}
+ inkl. {{$product->getFormattedTax()}}% MwSt. zzgl. Versandkosten + +
+
+
+ {!! Form::open(['url' => url(Util::getPostRoute().'card/add/'.$product->id), 'class' => 'mb-0', 'id'=>'']) !!} +
+
+
+ +
+ Lieferzeit: 1-3 Werktage + {!! Form::close() !!} +
+
+ @endif + +
+ Inhalt: + {{ $product->contents }} +
+
+
+ Gewicht: + {{ $product->weight }} g +
+
+
+ Art.-Nr.: + {{ $product->number }} +
+
+ +
+ + + +
+ + + +
+ + + +
+ + +
+ +
+ {!! $product->getLang('description') !!} +
+ + +
+ {!! $product->getLang('usage') !!} +
+ + +
+ {!! $product->getLang('ingredients') !!} +
+
+
+ +
+
+ + +
+
+
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/produkte.blade.php b/resources/views/_bak/web/templates/produkte.blade.php new file mode 100644 index 0000000..fb244a5 --- /dev/null +++ b/resources/views/_bak/web/templates/produkte.blade.php @@ -0,0 +1,69 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + + +@section('content') + + + + + + +
+
+ +
+ +
+ @include('web.templates._categories') +
+ +
+

{{$headline}} @if($headline_image) @endif

+
    + @foreach($products as $product) + +
  • + @include('web.templates.produkte-item') +
  • + + @endforeach +
+
+
+
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/registrierung.blade.php b/resources/views/_bak/web/templates/registrierung.blade.php new file mode 100644 index 0000000..bc9d6cd --- /dev/null +++ b/resources/views/_bak/web/templates/registrierung.blade.php @@ -0,0 +1,269 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + + {{-- --}} + + +
+
+ +
+ + +
+ +

{{ trans('register.reg_hl') }}

+ +

{{ trans('register.reg_line_1') }}

+ +
+ + {!! Form::open(['url' => '/registrierung']) !!} + @if(isset($from_member_id)) + {!! Form::hidden('from_member_id', $from_member_id) !!} + @endif +
+ * {{trans('register.required_fields')}} +
+ +
+
+ {!! Form::label('first_name', __('Salutation').'*') !!} + {!! Form::select('salutation', [''=>'Bitte wählen', 'mr'=>'Herr', 'ms'=>'Frau'], '', ['class' => 'form-control '.($errors->has('salutation') ? 'error is-invalid' : '')]) !!} + @if ($errors->has('salutation')) +
+ {{ $errors->first('salutation') }} +
+ @endif +
+
+ {!! Form::label('first_name', __('First name').'*') !!} + {!! Form::text('first_name', '', ['class' => 'form-control '.($errors->has('first_name') ? 'error is-invalid' : ''), 'placeholder'=>__('First name'), '']) !!} + @if ($errors->has('first_name')) +
+ {{ $errors->first('first_name') }} +
+ @endif +
+
+ {!! Form::label('last_name', __('Last name').'*') !!} + {!! Form::text('last_name', '', ['class' => 'form-control '.($errors->has('last_name') ? 'error is-invalid' : ''), 'placeholder'=>__('Last name'), '']) !!} + @if ($errors->has('last_name')) +
+ {{ $errors->first('last_name') }} +
+ @endif +
+ +

+ +
+ {!! Form::label('email', __('E-Mail Address').'*') !!} + {!! Form::email('email', '', ['class' => 'form-control '.($errors->has('email') ? 'error is-invalid' : ''), 'placeholder'=>__('E-Mail Address'), '']) !!} + @if ($errors->has('email')) +
+ {{ $errors->first('email') }} +
+ @endif +
+ +
+ {!! Form::label('email-confirm', __('Confirm E-Mail Address').'*') !!} + {!! Form::email('email-confirm', '', ['class' => 'form-control '.($errors->has('email-confirm') ? 'error is-invalid' : ''), 'placeholder'=>__('Confirm E-Mail Address'), '']) !!} + @if ($errors->has('email-confirm')) +
+ {{ $errors->first('email-confirm') }} +
+ @endif +
+ +

+ + +
+ {!! Form::label('password', __('Password').'*') !!} + {!! Form::password('password', ['class' => 'form-control '.($errors->has('password') ? 'error is-invalid' : ''), 'placeholder'=>__('Password'), '']) !!} + @if ($errors->has('password')) +
+ {{ $errors->first('password') }} +
+ @endif +
+
+ {!! Form::label('password_confirmation', __('Confirm Password').'*') !!} + {!! Form::password('password_confirmation', ['class' => 'form-control '.($errors->has('password_confirmation') ? 'error is-invalid' : ''), 'placeholder'=>__('Confirm Password'), '']) !!} + @if ($errors->has('password_confirmation')) +
+ {{ $errors->first('password_confirmation') }} +
+ @endif +
+ + + +
+ + @if ($errors->has('accepted_data_protection')) +
+ {{ $errors->first('accepted_data_protection') }} +
+ @endif +
+ +
+ + {{--
+
+
+ @if ($errors->has('g-recaptcha-response')) +
+ {{ $errors->first('g-recaptcha-response') }} +
+ @endif +
+
+ --}} + + {!! Form::close() !!} +
+ +
+ + + +
+ + + @if($user_shop) +

Kontakt

+

Ich freue mich über Deinen Besuch in meinem MIVITA Onlineshop. Ich bin Deine persönliche Beratung rund um die Produkte und ihrer Anwendung.

+
+ @if($user_shop->isImage()) + + @else + + @endif +
+ +

+ @if($user_shop->title) + {{ $user_shop->title }}
+ @endif + @if($user_shop->contact) + {!! nl2br($user_shop->contact) !!} + @endif +
+ {{ $user_shop->getSubdomain(true) }} +

+ + @if($user_shop->accessibility) +

+ Meine Erreichbarkeit:
+ {!! nl2br($user_shop->accessibility) !!} +

+ @endif + + @else + +

Kontakt

+
+

+ Adresse:
mivita e.K.
+ Leinfeld 2
+ 87755 Kirchhaslach
+ Telefon: 0 8333-946 98 90 + Email: info@mivita.care +

+
+

Geschäftszeiten

+

+ Mo. - Fr.: 9-12 Uhr u. 13-16 Uhr +

+ + @endif + +
+
+
+
+ + + + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/registrierung_finish.blade.php b/resources/views/_bak/web/templates/registrierung_finish.blade.php new file mode 100644 index 0000000..84727b5 --- /dev/null +++ b/resources/views/_bak/web/templates/registrierung_finish.blade.php @@ -0,0 +1,161 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + + {{-- --}} + + +
+
+ +
+ + +
+ +

Registrierung

+
+
+

{{ trans('register.reg_finisch_hl') }}

+

{{ trans('register.reg_finisch_line_1') }}
+ {{ trans('register.reg_finisch_line_2') }}

+
+

+ {{ trans('register.sender') }} +

+
+
+
+ + + +
+ + + @if($user_shop) +

Kontakt

+

Ich freue mich über Deinen Besuch in meinem MIVITA Onlineshop. Ich bin Deine persönliche Beratung rund um die Produkte und ihrer Anwendung.

+
+ @if($user_shop->isImage()) + + @else + + @endif +
+ +

+ @if($user_shop->title) + {{ $user_shop->title }}
+ @endif + @if($user_shop->contact) + {!! nl2br($user_shop->contact) !!} + @endif +
+ {{ $user_shop->getSubdomain(true) }} +

+ + @if($user_shop->accessibility) +

+ Meine Erreichbarkeit:
+ {!! nl2br($user_shop->accessibility) !!} +

+ @endif + + @else + +

Kontakt

+
+

+ Adresse:
mivita e.K.
+ Leinfeld 2
+ 87755 Kirchhaslach
+ Telefon: 0 8333-946 98 90 + Email: info@mivita.care +

+
+

Geschäftszeiten

+

+ Mo. - Fr.: 9-12 Uhr u. 13-16 Uhr +

+ + @endif + +
+
+
+
+ + + + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/ueber-uns.blade.php b/resources/views/_bak/web/templates/ueber-uns.blade.php new file mode 100644 index 0000000..97b44b5 --- /dev/null +++ b/resources/views/_bak/web/templates/ueber-uns.blade.php @@ -0,0 +1,167 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + + + +
+
+ +
+ + +
+ + +
+

Aloe Vera

+
+ +

Die weltweit einmaligen und herausragenden Eigenschaften der Aloe Vera sind dem einzigartigen + Zusammenspiel und der Symbiose der unterschiedlichen Inhalts- und Wirkstoffe zu verdanken. Keine + andere bisher bekannte Pflanze verfügt über derart vielseitige Möglichkeiten der heilenden und + pflegenden Anwendung. Insgesamt sind in der medizinischen Literatur derzeit weit mehr als 250 + aktive Substanzen bekannt, und stetig werden neue entdeckt. Die Entschlüsselung des komplexen + Zusammenspiels aller Substanzen steht zwar erst ganz am Anfang, die Wirkungen sind inzwischen + aber sehr gut belegt.

+ + +
+ +
+
+

Herkunft unserer Aloe

+

Von des Deutschen liebster Urlaubsinsel

+
+ +

Die Farm auf Mallorca hat eine Größe von etwa 40 Hektar. Dort werden die Aloe Vera + Pflanzen gezüchtet und gepflegt. Die 200.000 Pflanzen müssen mindestens 5 Jahre alt + sein, bis die Blätter geerntet werden können. Eine Pflanze benötigt mindestens 2.000 + Sonnenstunden im Jahr, um die wertvollen Nährstoffe für den Saft aufzubauen.

+ + +
+ +
+
+

100% BIO Qualität

+

Bio-zertifizierte Handarbeit aus Mallorca<

+
+ +

Wir garantieren beste Qualität durch manuelle Produktion und biologische Inhaltsstoffe. + Das typische Klima von Mallorca fordert die Pflanzen heraus. Tests haben ergeben, dass + gerade dieses Klima optimal für eine perfekte Entwicklung der Pflanze ist.

+ +
+ +
+ + +
+ +
+

Mehrwerte?

+

why is different than any other template

+
+

Sed odio sit amet nibh vulputate cursus a sit amet mauris. Morbi accumsan ipsum velit. Nam + nec tellus a odio tincidunt auctor a ornare odio. Sed non mauris vitae erat consequat auctor + eu in elit. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos + himenaeos. Nulla augue justo nibh ac diam.

+ +
+ +
+
    +
  • Nulla ipsum dolor lacus.
  • +
  • Quisque lorem tortor sed.
  • +
  • Aenean ligula non sagittis
  • +
  • Suspendisse a pellentesque.
  • +
  • Congue sodales nulla arcu.
  • +
+
+ +
+
    +
  • Nulla ipsum dolor lacus.
  • +
  • Quisque lorem tortor sed.
  • +
  • Aenean ligula non sagittis
  • +
  • Suspendisse a pellentesque.
  • +
  • Congue sodales nulla arcu.
  • +
+
+ +
+
    +
  • Nulla ipsum dolor lacus.
  • +
  • Quisque lorem tortor sed.
  • +
  • Aenean ligula non sagittis
  • +
  • Suspendisse a pellentesque.
  • +
  • Congue sodales nulla arcu.
  • +
+
+ +
+ +
+ +
+ + + +
+ +
+
+

Auf einen Blick

+
+
    +
  • + + Surgery + lorem ipsum dolor sit amet +
  • +
  • + + Cardiology + lorem ipsum dolor sit amet +
  • +
  • + + Internal Medicine + lorem ipsum dolor sit amet +
  • +
  • + + Rehabilitation + lorem ipsum dolor sit amet +
  • +
+ +
+ +

Nullam id dolor id nibh ultricies vehicula ut id + elit. Integer posuere erat a ante venenatis.

+
+ + +
+ + +
+ +
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/vereinbarkeit.blade.php b/resources/views/_bak/web/templates/vereinbarkeit.blade.php new file mode 100644 index 0000000..5d9d642 --- /dev/null +++ b/resources/views/_bak/web/templates/vereinbarkeit.blade.php @@ -0,0 +1,89 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + +
+
+ +
+ +
+

Vereinbarkeit mit Familie & Privatem

+ +
+ +
+

Wer kennt das nicht? Das Geld fehlt an allen Ecken und Enden und der Chef rümpft schon + immer + die Nase, wenn das Kind mal krank ist. Viele Familien sind auf einen Zweitjob oder die + Teilzeitarbeit der Mutter bzw. des Vaters angewiesen. Und das lässt sich oftmals mit den + Vorstellungen des Arbeitgebers nicht vereinbaren. Was aber, wenn Du Dir Dein monatliches + Nebeneinkommen ganz einfach selber aufbaust und gleichzeitig noch mehr Zeit für Dein + Kind + hast?

+ +

+

Insbesondere im Direktvertrieb mit seinen Möglichkeiten der freien Zeiteinteilung und + passivem Einkommen hast Du mittelfristig soviel Freiheit, wie es Dir ein fester Job + nicht + bieten kann. Als selbständige MIVITA Beraterin entscheidest Du selbst, wann und wo Du + arbeitest. Und das betrifft ja nicht nur junge Eltern. Auch für Menschen, die ihre + Familienangehörigen pflegen müssen oder einfach grundsätzlich mehr Zeit und finanzielle + Entlastung erreichen wollen, stellt der Direktvertrieb eine perfekte Lösung dar: +

+
    +
  • Arbeiten von zuhause oder unterwegs
  • +
  • Keine Büromiete
  • +
  • Keine nennenswerten Investitionen in Entwicklung
  • +
  • keine kostspielige Infrastruktur notwendig
  • + +
+
+ +
+
+
+
+

Frauen im Direktvertrieb

+

Lt. Bundesverband für den Direktvertrieb Deutschland (BDD) waren 82% der Führungskräfte + Frauen. Das ergab eine Umfrage innerhalb der Mitgliedsunternehmen des BDD. Der + Frauenanteil + liegt damit wesentlich höher als im Vergleich mit der Gesamtwirtschaft. Und das kommt + nicht + von irgendwo. Traditionell arbeiten viele Frauen im Direktvertrieb, die aufgrund + familiärer + Bedingungen oder auch mangelnder Chancengleichheit im Markt hier ihre Berufung finden, + Ihre + Tatkraft, ihre Ideen und Energien auszuleben, um sich zu einer erfolgreichen + Geschäftsfrau + zu entwickeln.

+ +
+ + @include('web.templates._content_contact') +
+
+ + + +
+ @include('web.templates._bcategories') +
+ + +
+ +
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/templates/vorteile.blade.php b/resources/views/_bak/web/templates/vorteile.blade.php new file mode 100644 index 0000000..12c4fc5 --- /dev/null +++ b/resources/views/_bak/web/templates/vorteile.blade.php @@ -0,0 +1,108 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + + + + +
+
+ +
+ +
+ +

Direktvertrieb und seine Vorteile

+

Der Direktvertrieb hat sich weltweit längst als eine eigenständige Art der Betriebsform etabliert + und ist bereits in vielen Branchen vertreten. Der Direktvertrieb, der auch als Networkmarketing + bezeichnet wird, beschreibt den persönlichen Verkauf von Waren oder Dienstleistungen an + Verbraucher aus dem direkten Umfeld: Familie, Freunde, Kollegen o.ä.. Entscheidend ist dabei der + persönliche Kontakt und die beratende Funktion - Kundenservice par Excellence! Und das ist auch + schon die große Stärke des Direktvertriebs, nämlich der Service am Kunden, was in den anonymen + Weiten des Internets heute nicht mehr in dem Maße möglich ist, schaffen wir mit viel + Persönlichkeit und Transparenz.

+ +
+ +

Direktvertrieb - wie funktioniert das genau?

+

Stell Dir vor, Du bist begeisterter Fan von Produkten eines bestimmten Unternehmens. Du + denkst Dir: „Super - das muss ich meiner besten Freundin erzählen. Und meinem Kumpel. Und + der Familie. Und überhaupt der ganzen Welt.“ - und die kaufen auf Deine Empfehlung hin das + Produkt. Passiert jeden Tag. Kennen wir alle.

+ +

Der Unterschied ist, Du empfiehlst es nicht nur, nein, Du selbst bist der Verkäufer, baust + Dir einen Kundenstamm auf und verdienst dadurch eine Marge von 30-40%. Neue Kunden gewonnen + - jeahhh! Soweit, so gut.

+ +

Und jetzt stell Dir vor, dass dann Dein Kumpel oder Deine Freundin auch Vertriebspartner + wird, sich einen Kundenstamm aufbaut und Du daran auch noch mitverdienst. Und so geht das + weiter - bis zu 3 Ebenen + Boni!

+ + +
+
+ MIVITA Direktvertrieb +
+ + +
+

Vorteile bei MIVITA:

+

Es gibt sehr viele gute Gründe, um sich mit mivita selbständig zu machen. Viele Beraterinnen und Beratern antworten auf die Frage, warum sie sich für den Direktvertrieb bei mivita entschieden haben:

+
    +
  • 20-40% Verkaufsmarge
  • +
  • Attraktive Boni und Aktionen
  • +
  • Verdienst bis in 3 Ebenen
  • +
  • Kein Mindestumsatz
  • +
  • Freie Zeiteinteilung
  • +
  • Arbeiten im Team
  • +
  • Werbemittel & Onlineshop auf Wunsch
  • +
  • Versand- u. Retourenabwicklung durch MIVITA
  • +
  • Schulungen auf Mallorca
  • +
+

... baue Dir eine selbstbestimmte Zukunft auf, in + der Du Dein eigener Chef bist.

+
+
+ +
+ + +

Vorteile des Direktvertriebs

+ + +

Der Direktvertrieb bringt folgende Vorteile

+ +
    +
  • Um Geld hinzu zu verdienen bzw. die Lebensqualität der Familie zu erhöhen
  • +
  • Um bei geringem Risiko und niedrigen Investitionen ihr/sein eigener Chef zu sein
  • +
  • Um flexibel bei freier Zeiteinteilung zu arbeiten
  • +
  • Keine Abnahmeverpflichtungen zu haben
  • +
  • Ohne Altersbegrenzung, ohne Vorkenntnisse und besondere Qualifikationen starten zu können
  • +
  • Geringes Risiko und niedrige Fixkosten
  • +
  • Wegen der hohe Produktqualität
  • + +
+ + @include('web.templates._content_contact') +
+ + + +
+ @include('web.templates._bcategories') +
+ + +
+
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/_bak/web/user/layouts/application.blade.php b/resources/views/_bak/web/user/layouts/application.blade.php new file mode 100644 index 0000000..a33723a --- /dev/null +++ b/resources/views/_bak/web/user/layouts/application.blade.php @@ -0,0 +1,148 @@ + + + + + @if($user_shop->title) {{ $user_shop->title }}@endif | mivita care + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @yield('layout-content') + + + + + + + + + {{-- --}} + + + + + @yield('scripts') + + + + {{-- + + + --}} + + + \ No newline at end of file diff --git a/resources/views/_bak/web/user/layouts/includes/footer.blade.php b/resources/views/_bak/web/user/layouts/includes/footer.blade.php new file mode 100644 index 0000000..17a93ae --- /dev/null +++ b/resources/views/_bak/web/user/layouts/includes/footer.blade.php @@ -0,0 +1,135 @@ + +
+
+
+
+

+ Du möchtest Vertriebspartner werden oder hast Fragen zu unseren Produkten? +

+ @if(Util::isCheckout()) + @if(isset($order_reference)) +

+ zurück zum Shop +

+ @else +

+ Jetzt Kontakt aufnehmen: zum Kontakt +

+ @endif + @else +

+ Jetzt Kontakt aufnehmen: zum Kontakt +

+ @endif +
+
+
+
+ + + + + \ No newline at end of file diff --git a/resources/views/_bak/web/user/layouts/includes/header.blade.php b/resources/views/_bak/web/user/layouts/includes/header.blade.php new file mode 100644 index 0000000..32c491d --- /dev/null +++ b/resources/views/_bak/web/user/layouts/includes/header.blade.php @@ -0,0 +1,183 @@ + diff --git a/resources/views/_bak/web/user/layouts/layout.blade.php b/resources/views/_bak/web/user/layouts/layout.blade.php new file mode 100644 index 0000000..ff5ad2a --- /dev/null +++ b/resources/views/_bak/web/user/layouts/layout.blade.php @@ -0,0 +1,10 @@ +@extends('web.user.layouts.application') + +@section('layout-content') + @include('web.user.layouts.includes.header') + +
+ @yield('content') + @include('web.user.layouts.includes.footer') +
+@endsection diff --git a/resources/views/_bak/web/user/start.blade.php b/resources/views/_bak/web/user/start.blade.php new file mode 100644 index 0000000..56db327 --- /dev/null +++ b/resources/views/_bak/web/user/start.blade.php @@ -0,0 +1,370 @@ +@extends('web.user.layouts.layout') + +@section('content') + + + + + + +
+ +
+
    + + +
  • + + + +
    + +
    + Deutscher Direktvertrieb für +
    + +
    + 100% Premium Bio Aloe Vera +
    +
  • +
+
+
+
+ + + + +
+
+
+ +
+

{{$site->headline}}

+

{{$site->copy}}

+ + @if($site->hasImage()) + + @endif + +
    + @foreach($site->getProductModels() as $product) + +
  • + @include('web.templates.produkte-item', ['subsite' => 'alle-produkte']) +
  • + + @endforeach +
+ +
+ +
+ +

Spare mit Sets

+
    + @foreach($site->getProductSetModels() as $product) + +
  • + @include('web.templates.produkte-item', ['subsite' => 'alle-produkte']) +
  • + + @endforeach +
+ + +
+ +
+ +
+ + +
+

Willkommen

+

Ich freue mich über Deinen Besuch in meinem MIVITA Onlineshop. Ich bin Deine persönliche Beratung rund um die Produkte und ihrer Anwendung.

+
+ @if($user_shop->isImage()) + + @else + + @endif +
+ +

+ @if($user_shop->title) + {{ $user_shop->title }}
+ @endif + @if($user_shop->contact) + {!! nl2br($user_shop->contact) !!} + @endif +
+ {{ $user_shop->getSubdomain(true) }} +

+ + @if($user_shop->accessibility) +

+ Meine Erreichbarkeit:
+ {!! nl2br($user_shop->accessibility) !!} +

+ @endif + + @if($user_shop->about) + +
+ +
+

+ + „{{ $user_shop->about }}“ + +

+ @endif + + @if($user_shop->on_sites) +
+ +
+

Für Dich vor Ort:

+

Wir waren für Dich vor Ort auf der Aloe Vera Farm auf Mallorca, denn Transparenz ist uns wichtig. So weißt Du genau, wo Deine Produkte herkommen und wie sie produziert werden. Echte Qualität eben.

+ + + @endif +
+
+ + +
+ +
+ + +
+
+ + + +
+
+

Warum MIVITA?

+

Unsere Kunden vertrauen zurecht auf die exzellenten Eigenschaften der MIVITA Produkte. Damit trifft + jeder aktiv eine kluge Entscheidung für Gesundheit und Umwelt.

+ +

Wir legen nicht nur auf die Qualität unserer Produkte einen hohen Stellenwert, sondern natürlich auch + auf umfassende, kompetente Beratung durch freundliche und fachkundige Berater und Beraterinnen.

+ +

Wir entwickeln und vertreiben ausschließlich Produkte, die qualitativ hochwertig sind. So sind sie + bei sachgemäßer Anwendung und Pflege langlebig und sehr ergiebig. Faktoren, die uns die + Zufriedenheit unserer Kunden sichern.

+ +
+
+ + +
+
+ + + + +
+
+ + +
+
+
+

Aloe Vera

+

Mit höchstem Anspruch arbeiten wir gemeinsam mit der Aloe Vera Farm auf Mallorca + zusammen, die weltweite Qualität der Spitzenklasse garantiert.

+ + + Mehr + + + + lesen + JETZT + + + + + +
+
+
+
+

Produkte

+

Hier findest Du einen Überblick über das komplette Premium-Produktsortiment von MIVITA. + Vom hochwertigen Aloe Saft bis zu wohltuender Kosmetik.

+ + + Mehr + + + + lesen + JETZT + + + + + +
+
+
+
+

Vertriebspartner

+

Werde auch Du ein Vertriebspartner von MIVITA und baue Dir Dein eigenes Geschäft mit + Qualitätsprodukten auf. Wenn Du magst, kannst Du sofort starten ...

+ + + Mehr + + + + lesen + JETZT + + + + + +
+
+ +
+ + +
+
+ + + +
+
+ +
+ +
+ +

MIVITA ist exklusiver Partner der Farm Aloe Vera de Mallorca im Bereich Direktvertrieb Deutschland. + Hier haben zwei Unternehmen zusammengefunden, für die Qualität und Nachhaltigkeit oberstes Gebot + sind. Nur so lassen sich langfristig zufriedene Kunden zu echten Fans unserer Produkte gewinnen.

+
+

„Mensch, Tier und Natur zuliebe ... Nachhaltigkeit und Produkte, die wirklich „guttun“, sind + uns wichtig.“

+

Alois Ried - Inhaber MIVITA

+
+ +
+ +
+ +
+ +
+ +
+ + +
+ +
+
+ + + + +@endsection diff --git a/resources/views/admin/attribute/index.blade.php b/resources/views/admin/attribute/index.blade.php new file mode 100755 index 0000000..220b649 --- /dev/null +++ b/resources/views/admin/attribute/index.blade.php @@ -0,0 +1,148 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Attribute')}} +
+
+ + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + + @endforeach + +
 {{__('Pos')}}{{__('Description')}}{{__('Translate') }}{{__('Status')}}
+ + {{ $value->pos }}{{ $value->name }}{{ $value->getTranNames() }}@if($value->active) @else@endif
+
+ +
+
+ +
+ + + + + + + +@endsection diff --git a/resources/views/admin/category/edit.blade.php b/resources/views/admin/category/edit.blade.php new file mode 100755 index 0000000..7288499 --- /dev/null +++ b/resources/views/admin/category/edit.blade.php @@ -0,0 +1,45 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Create/Edit Kategorien') }} +

+ + {!! Form::open(['url' => route('admin_product_category_store'), 'class' => 'form-horizontal', 'id'=>'']) !!} + + + +
+   + {{ __('back') }} +
+ + @include('admin.category.form') + +
+   + {{ __('back') }} +
+ + {!! Form::close() !!} + + + @include('admin.category.images') + + +@endsection diff --git a/resources/views/admin/category/form.blade.php b/resources/views/admin/category/form.blade.php new file mode 100755 index 0000000..c80cb62 --- /dev/null +++ b/resources/views/admin/category/form.blade.php @@ -0,0 +1,67 @@ + +
+ +
+ {{ __('Kategorie') }} + +
+ +
+ +
+
+ + + {{ Form::text('name', $category->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required')) }} +
+
+ +
+
+ + {{ Form::text('headline', $category->headline, array('placeholder'=>__('Produktwelt'), 'class'=>'form-control', 'id'=>'name', 'required')) }} +
+
+ +
+
+ + +
+
+ + {{ Form::text('pos', $category->pos, array('placeholder'=>__('pos'), 'class'=>'form-control', 'id'=>'pos')) }} +
+
+ +
+
+ + +
+
+ {{ __('Übersetzungen') }} +
+
+ @foreach($trans as $lang) + @if($lang != 'de') +
+
+ + {{ Form::text('trans_name['.$lang.']', $category->getTrans('name', $lang), array('class'=>'form-control', 'id'=>'trans_name_'.$lang)) }} +
+
+ + {{ Form::text('trans_headline['.$lang.']', $category->getTrans('headline', $lang), array('class'=>'form-control', 'id'=>'trans_headline_'.$lang)) }} +
+
+ @endif + @endforeach +
+
+ diff --git a/resources/views/admin/category/images.blade.php b/resources/views/admin/category/images.blade.php new file mode 100755 index 0000000..173c90f --- /dev/null +++ b/resources/views/admin/category/images.blade.php @@ -0,0 +1,93 @@ + + + + +
+ +
+ {{ __('Headline Bild') }} + +
+ + +
+ + @if($category->id>0) + + +
+ +
+

Bild wird hinter oder unter die Headline gesetzt und einer Breite von 100% ausgegeben.

+
+
+ +
+ @if($category->headline_image_id) +
+ +
+ Bild löschen + @if($category->iq_image->active) + + @else + + @endif +
+ @endif +
+
+
+ + @if(!$category->headline_image_id) +
+
+
+ @csrf + +
+
+ +
+ +
+ +
+
+
+
+ @else +

Nur ein Bild möglich, vor neuem Upload Bild löschen

+ @endif +
+
+ @else +

Kategorie erst anlegen

+ + + @endif + + +
+
diff --git a/resources/views/admin/category/index.blade.php b/resources/views/admin/category/index.blade.php new file mode 100755 index 0000000..c0580a6 --- /dev/null +++ b/resources/views/admin/category/index.blade.php @@ -0,0 +1,73 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Kategorien')}} +
+
+ + + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + + + + @endforeach + +
 {{__('Pos')}}{{__('Hauptkategorie')}}{{__('Headline')}}{{__('Translate') }}{{__('Status')}}
+ + + + {{ $value->pos }}@if($value->parent) {{ $value->parent->name }} @else {{ $value->name }} @endif@if($value->parent) {{ $value->name }} @else - @endif{{ $value->headline }}@if($value->active) @else@endif
+ +
+ +
+ + +@endsection diff --git a/resources/views/admin/change_email.blade.php b/resources/views/admin/change_email.blade.php new file mode 100755 index 0000000..3a24f26 --- /dev/null +++ b/resources/views/admin/change_email.blade.php @@ -0,0 +1,53 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{$user->email}} | {{__('Change E-Mail')}} +
+
+
+
+
+

{{__('Change the e-mail address of the contact here. We will send the contact a new activation link to the new e-mail address to verify it.')}}

+
+
+ + {!! Form::open(['url' => route('admin_lead_change_mail', [$user->id]) ]) !!} + +
+ +
+ + @if ($errors->has('email')) + + {{ $errors->first('email') }} + + @endif +
+
+
+ +
+ has('email_confirmation') ? 'is-invalid' : '' }} type="email" name="email_confirmation" placeholder="{{__('Confirm new E-Mail Address')}}*" required> + @if ($errors->has('email_confirmation')) + + {{ $errors->first('email_confirmation') }} + + @endif +
+
+ + +
+
+ + {{ __('back') }} + +
+
+ {!! Form::close() !!} +
+
+@endsection + diff --git a/resources/views/admin/country/edit.blade.php b/resources/views/admin/country/edit.blade.php new file mode 100755 index 0000000..d26c9b5 --- /dev/null +++ b/resources/views/admin/country/edit.blade.php @@ -0,0 +1,43 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Create/Edit Land') }} +

+ + {!! Form::open(['url' => route('admin_country_store'), 'class' => 'form-horizontal', 'id'=>'']) !!} + + + +
+   + {{ __('back') }} +
+ + @include('admin.country.form') + +
+   + {{ __('back') }} +
+ + {!! Form::close() !!} + + + +@endsection diff --git a/resources/views/admin/country/form.blade.php b/resources/views/admin/country/form.blade.php new file mode 100755 index 0000000..1088766 --- /dev/null +++ b/resources/views/admin/country/form.blade.php @@ -0,0 +1,179 @@ + +
+ +
+ {{ __('Land') }} + + +
+
+
+
+ + {{ Form::text('name', $country->de, array('placeholder'=>__('Land DE'), 'class'=>'form-control', 'id'=>'de', 'required')) }} +
+
+ + {{ Form::text('en', $country->en, array('placeholder'=>__('Land EN'), 'class'=>'form-control', 'id'=>'en')) }} +
+
+ + {{ Form::text('es', $country->es, array('placeholder'=>__('Land ES'), 'class'=>'form-control', 'id'=>'es')) }} +
+
+ + {{ Form::text('fr', $country->fr, array('placeholder'=>__('Land FR'), 'class'=>'form-control', 'id'=>'fr')) }} +
+
+ + {{ Form::text('it', $country->it, array('placeholder'=>__('Land IT'), 'class'=>'form-control', 'id'=>'it')) }} +
+
+ + {{ Form::text('ru', $country->ru, array('placeholder'=>__('Land RU'), 'class'=>'form-control', 'id'=>'ru')) }} +
+
+
+
+
+ + {{ Form::text('code', $country->code, array('placeholder'=>__('code'), 'class'=>'form-control', 'id'=>'code')) }} +
+
+ + {{ Form::text('phone', $country->phone, array('placeholder'=>__('phone'), 'class'=>'form-control', 'id'=>'phone')) }} +
+
+
+
+ + +
+
+ Anzeige und Währung +
+
+
+
+ +
+
+ +
+
+
+
+
+ + +
+
+ + {{ Form::text('currency_unit', $country->currency_unit, array('placeholder'=>__('CHF'), 'class'=>'form-control', 'id'=>'currency_unit')) }} +
+
+
+
+
+
+
+
+ +
+ + +
+
+
+ + {{ Form::text('currency_faktor', formatNumber($country->currency_faktor, 4), array('placeholder'=>__('1,07'), 'class'=>'form-control', 'id'=>'currency_faktor')) }} +
+
+
+
+
+ + +
+
+ {{trans('register.required_fields')}} +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ + + + +
+
+ {{ __('Übersetzungen') }} +
+
+ @foreach($trans as $lang) + @if(!in_array($lang, ['en', 'de', 'es', 'fr', 'it', 'ru'])) +
+
+ + {{ Form::text('trans_name['.$lang.']', $country->getLocated($lang), array('class'=>'form-control', 'id'=>'trans_name_'.$lang)) }} +
+
+ @endif + @endforeach +
+
+ + + + \ No newline at end of file diff --git a/resources/views/admin/country/index.blade.php b/resources/views/admin/country/index.blade.php new file mode 100644 index 0000000..41f20cc --- /dev/null +++ b/resources/views/admin/country/index.blade.php @@ -0,0 +1,77 @@ +@extends('layouts.layout-2') + +@section('content') + +
+
+ {{__('Länder')}} +
+
+ + + + + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + + + + @endforeach + +
 {{__('DE')}}{{__('Code')}}{{__('Phone')}}{{__('Status')}}{{__('Länderwechsel')}}{{__('e. Preis')}}{{__('e. Währung')}}{{__('Kalkulation')}}
+ + + + {{ $value->de }}{{ $value->code }}{{ $value->phone }}{!! get_active_badge($value->active) !!}{!! get_active_badge($value->switch) !!}{!! get_active_badge($value->own_eur) !!}{!! get_active_badge($value->currency) !!} {{$value->currency_unit}} + @if($value->currency) + @if($value->currency_calc) + {{$value->currency_faktor}} + @else + {{$value->currency_faktor}} + @endif + @else - @endif +
+ +
+
+ + +@endsection + diff --git a/resources/views/admin/customer/_customer_detail.blade.php b/resources/views/admin/customer/_customer_detail.blade.php new file mode 100644 index 0000000..cf22fad --- /dev/null +++ b/resources/views/admin/customer/_customer_detail.blade.php @@ -0,0 +1,110 @@ +
+
+ Kunden-, Rechnungsadresse +
+
+ @if($shopping_user->billing_company) +
+
Firma
+ {{ $shopping_user->billing_company }} +
+ @endif +
+
Anrede
+ {{ \App\Services\HTMLHelper::getSalutationLang($shopping_user->billing_salutation) }} +
+
+
Vorname
+ {{ $shopping_user->billing_firstname }} +
+
+
Nachname
+ {{ $shopping_user->billing_lastname }} +
+
+
+
+
Straße
+ {{ $shopping_user->billing_address }} +
+
+
Zusatz
+ {{ $shopping_user->billing_address_2 }} +
+
+
PLZ
+ {{ $shopping_user->billing_zipcode }} +
+
+
Stadt
+ {{ $shopping_user->billing_city }} +
+
+
Land
+ {{-- $shopping_user->billing_country->getLocated() --}} +
+
+
Telefon
+ {{ $shopping_user->billing_phone }} +
+
+
+
+ + + +
+
+ Lieferadresse +
+ @if($shopping_user->same_as_billing) + {{__('email.checkout_mail_same_address')}} + @else +
+ @if($shopping_user->shipping_company) +
+
Firma
+ {{ $shopping_user->shipping_company }} +
+ @endif +
+
Anrede
+ {{ \App\Services\HTMLHelper::getSalutationLang($shopping_user->shipping_salutation) }} +
+
+
Vorname
+ {{ $shopping_user->shipping_firstname }} +
+
+
Nachname
+ {{ $shopping_user->shipping_lastname }} +
+
+
+
+
Straße
+ {{ $shopping_user->shipping_address }} +
+
+
Zusatz
+ {{ $shopping_user->shipping_address_2 }} +
+
+
PLZ
+ {{ $shopping_user->shipping_zipcode }} +
+
+
Stadt
+ {{ $shopping_user->shipping_city }} +
+
+
Land
+ {{-- $shopping_user->shipping_country->getLocated() --}} +
+
+
Telefon
+ {{ $shopping_user->shipping_phone }} +
+
+ @endif +
\ No newline at end of file diff --git a/resources/views/admin/customer/_detail.blade.php b/resources/views/admin/customer/_detail.blade.php new file mode 100644 index 0000000..acf8ee6 --- /dev/null +++ b/resources/views/admin/customer/_detail.blade.php @@ -0,0 +1,283 @@ +
+ + + +
+ @if($isAdmin) +
+
+
E-Mail
+ @if($shopping_user->faker_mail) + - + @else + {{ $shopping_user->billing_email }} + @endif +
+
+
Kundennummer
+ {{$shopping_user->number}} +
+
+
Datum
+ {{$shopping_user->created_at->format("d.m.Y H:i")}} +
+ +
+ @else +
+
+
E-Mail
+ @if($shopping_user->faker_mail) + - + @else + {{ $shopping_user->billing_email }} + @endif +
+
+
Kundennummer
+ {{$shopping_user->number}} +
+
+
Erstellt
+ {{$shopping_user->firstEntryByNumber()->created_at->format("d.m.Y H:i")}} +
+
+ + @if(!$shopping_user->is_like) + Kundendaten bearbeiten + @endif +
+
+ @endif +
+
+ + +
+
+ @if($isAdmin) +
+ @if(isset($change_member_error) && $change_member_error) +
+
+
+
    +
  • {{ $change_member_error }}
  • +
+
+
+
+ @endif +
Zugewiesener Berater
+ @if($shopping_user->is_like) + + @else + @if($shopping_user->member) + + {{$shopping_user->member->getFullName()}} #{{$shopping_user->member->number}} + @endif + + @endif +
+
+
Über Shop
+ @if($shopping_user->shopping_order) + @if($shopping_user->shopping_order->user_shop->user->isActive() && $shopping_user->shopping_order->user_shop->user->isActiveShop()) + {{$shopping_user->shopping_order->user_shop->getSubdomain(false)}} + @else + {{$shopping_user->shopping_order->user_shop->getSubdomain(false)}} + @endif + @endif +
+
+
ist Berater
+ @if($shopping_user->auth_user) + + + {{$shopping_user->auth_user->getFullName()}} #{{$shopping_user->auth_user->number}} + @else + + @endif +
+ @else +
+ {{-- + @if(!$shopping_user->is_like) + + Bestellung für diesen Kunden aufgeben + + @endif + --}} +
+
+
Kundenhoheit
+ @if($shopping_user->is_like) + in Prüfung + @else + zugewiesen + @endif + +
+ @endif +
+
+
+ + + + @include('admin.customer._customer_detail') + +
+
+
+ Kunde +
+
+
+ @if($shopping_user->has_buyed) + Kunde hat schon gekauft. + @else + Kunde hat noch nicht gekauft. + @endif +
+
+ @if($shopping_user->subscribed) + Kunde ist für Newsletter abonniert. + @else + Kunde ist nicht für Newsletter abonniert. + @endif +
+
+
+
+ + @if($isAdmin) + +
+
+ Bestellung +
+
+ + + + + + + + @if($shopping_user->shopping_order) + @foreach($shopping_user->shopping_order->shopping_order_items as $shopping_order_item) + + + + + + + + @endforeach + @endif + +
ProduktAnzahlPreis
+
+ @if($shopping_order_item->product->images) + @if($image = $shopping_order_item->product->images->first()) + + @endif + @endif + +
+ {{ $shopping_order_item->product->name }} + #{{ $shopping_order_item->product->number }} + + Inhalt: {{ $shopping_order_item->product->contents }}
+ Gewicht: {{ $shopping_order_item->product->weight }} g
+ Points: {{ $shopping_order_item->product->points }} +
+
+
+
+ {{ $shopping_order_item->qty }} + + {{ $shopping_order_item->getFormattedPrice() }} € +
+
+
+
+ + +
+
+ Zahlung +
+
+ + + + + + + @if($isAdmin)@endif + + + + + + + @php($count=0) + @if($shopping_user->shopping_order) + @foreach($shopping_user->shopping_order->shopping_payments as $shopping_payment) + + + + @if($isAdmin)@endif + + + + + @if($isAdmin && $shopping_payment->payment_transactions) + @php($ccount=0) + + + + + @endif + @endforeach + @endif + +
#ZahlungsartReferenznummerGesamtStatusDatum
{{++$count}}{{$shopping_payment->getPaymentType()}}{{$shopping_payment->reference}}{{$shopping_payment->getPaymentAmount()}}{!! \App\Services\Payment::getShoppingPaymentBadge($shopping_payment) !!}{{$shopping_payment->created_at->format("d.m.Y H:i")}}
{{$count}}.{{++$ccount}} + + + + + + + + + + + @foreach($shopping_payment->payment_transactions as $payment_transaction) + + + + + + + @endforeach + +
RequestStatusTX-ActionDatum
{{$payment_transaction->request}}{{$payment_transaction->status}}{{$payment_transaction->txaction}} {{$payment_transaction->errormessage}}{{$payment_transaction->created_at->format("d.m.Y H:i")}}
+
+
+
+ @endif +
\ No newline at end of file diff --git a/resources/views/admin/customer/_edit.blade.php b/resources/views/admin/customer/_edit.blade.php new file mode 100644 index 0000000..9d18bdd --- /dev/null +++ b/resources/views/admin/customer/_edit.blade.php @@ -0,0 +1,400 @@ +
+
+
+
+ Kunden-, Rechnungsadresse +
+
+ * {{trans('register.required_fields')}} + Lieferadresse +
+
+
+
+
+
+
+
+ + {{ Form::text('billing_company', $shopping_user->billing_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'billing_company', 'tabindex' => 1)) }} +
+
+
+
+ + + @if ($errors->has('billing_salutation')) + + {{ $errors->first('billing_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('billing_firstname', $shopping_user->billing_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'billing_firstname', 'required'=>true, 'tabindex' => 4)) }} + @if ($errors->has('billing_firstname')) + + {{ $errors->first('billing_firstname') }} + + @endif + +
+
+ + {{ Form::text('billing_lastname', $shopping_user->billing_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'billing_lastname', 'required'=>true, 'tabindex' => 5)) }} + @if ($errors->has('billing_lastname')) + + {{ $errors->first('billing_lastname') }} + + @endif + +
+
+
+
+ + {{ Form::text('billing_address', $shopping_user->billing_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_address', 'tabindex' => 6)) }} + @if ($errors->has('billing_address')) + + {{ $errors->first('billing_address') }} + + @endif +
+
+
+
+ + {{ Form::text('billing_address_2', $shopping_user->billing_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'billing_address_2', 'tabindex' => 6)) }} +
+
+
+
+ + {{ Form::text('billing_zipcode', $shopping_user->billing_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_zipcode', 'tabindex' => 7)) }} + @if ($errors->has('billing_zipcode')) + + {{ $errors->first('billing_zipcode') }} + + @endif +
+
+ + {{ Form::text('billing_city', $shopping_user->billing_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_city', 'tabindex' => 8)) }} + @if ($errors->has('billing_city')) + + {{ $errors->first('billing_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('billing_country_id')) + + {{ $errors->first('billing_country_id') }} + + @endif +
+
+
+
+ + {{ Form::text('billing_phone', $shopping_user->billing_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'billing_phone', 'tabindex' => 11)) }} +
+
+
+
+
+
+
Lieferadresse
+
+
+
+
+ + {{ Form::text('shipping_company', $shopping_user->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'shipping_company', 'tabindex' => 16)) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_firstname', $shopping_user->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_firstname', 'tabindex' => 18)) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif +
+
+ + {{ Form::text('shipping_lastname', $shopping_user->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_lastname', 'tabindex' => 19)) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif + +
+
+
+
+ + {{ Form::text('shipping_address', $shopping_user->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_address', 'tabindex' => 20)) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address_2', $shopping_user->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'shipping_address_2', 'tabindex' => 21)) }} + @if ($errors->has('shipping_address_2')) + + {{ $errors->first('shipping_address_2') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_zipcode', $shopping_user->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_zipcode', 'tabindex' => 22)) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif + +
+
+ + {{ Form::text('shipping_city', $shopping_user->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_city', 'tabindex' => 23)) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('shipping_country_id')) + + {{ $errors->first('shipping_country_id') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_phone', $shopping_user->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone', 'tabindex' => 26)) }} +
+
+
+
+ +
+
+
+
+ @if($isView === 'customer') + + + + @endif + +
+
+ +
+ +
+
+ +
+
+
+
+ {{ Form::hidden('faker_mail', $shopping_user->faker_mail) }} + + @if($isView === 'customer-add') + {{ Form::hidden('billing_email_1', $billing_email) }} + {{ Form::hidden('billing_email-confirm_1', $billing_email) }} + @if($shopping_user->faker_mail) + {{ Form::hidden('billing_email', $billing_email) }} + {{ Form::hidden('billing_email-confirm', $billing_email) }} + @else +
+
+ + {{ Form::text('billing_email', $billing_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'billing_email', 'readonly')) }} +
+
+ + {{ Form::text('billing_email-confirm', $billing_email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'billing_email-confirm', 'readonly')) }} +
+
+ @endif + + @else + @if($shopping_user->faker_mail) + {{ Form::hidden('billing_email', $shopping_user->billing_email) }} + {{ Form::hidden('billing_email-confirm', $shopping_user->billing_email) }} + @else +
+
+ + {{ Form::text('billing_email', $shopping_user->billing_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'billing_email')) }} +
+
+ + {{ Form::text('billing_email-confirm', $shopping_user->billing_email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'billing_email-confirm')) }} +
+
+ @endif + @endif +
+
+ + diff --git a/resources/views/admin/customer/detail.blade.php b/resources/views/admin/customer/detail.blade.php new file mode 100644 index 0000000..f20a060 --- /dev/null +++ b/resources/views/admin/customer/detail.blade.php @@ -0,0 +1,12 @@ +@extends('layouts.layout-2') + +@section('content') + +

+ zurück + {{ __('Kunden Details') }} +

+ @include('admin.customer._detail') + zurück + +@endsection \ No newline at end of file diff --git a/resources/views/admin/customer/edit.blade.php b/resources/views/admin/customer/edit.blade.php new file mode 100644 index 0000000..b035770 --- /dev/null +++ b/resources/views/admin/customer/edit.blade.php @@ -0,0 +1,15 @@ +@extends('layouts.layout-2') + +@section('content') +

+ zurück + {{ __('Kunden Details') }} bearbeiten +

+ {!! Form::open(['url' => route('admin_customer_edit', [$shopping_user->id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + @include('admin.customer._edit') +
+   +
+ {!! Form::close() !!} + zurück +@endsection \ No newline at end of file diff --git a/resources/views/admin/customer/index.blade.php b/resources/views/admin/customer/index.blade.php new file mode 100644 index 0000000..5aca26b --- /dev/null +++ b/resources/views/admin/customer/index.blade.php @@ -0,0 +1,121 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ {{ __('Kunden') }} +

+ +
+
+
+ {{--
+ + +
--}} +
+ + +
+
+ + + +
+
+ +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
#{{__('Nummer')}}{{__('E-Mail')}}{{__('ist Berater')}}{{__('Anrede')}}{{__('Firma')}}{{__('Vorname')}}{{__('Nachname')}}{{__('PLZ')}}{{__('Stadt')}}{{__('Land')}}{{__('Käufe')}}{{__('Newsletter')}}{{__('zugewiesener Berater')}}{{__('Datum')}}
+
+ +
+
+
+ + +@endsection + diff --git a/resources/views/admin/index.blade.php b/resources/views/admin/index.blade.php new file mode 100644 index 0000000..de83102 --- /dev/null +++ b/resources/views/admin/index.blade.php @@ -0,0 +1,60 @@ +@extends('layouts.layout-2-2') + +@section('content') +
+
+
+
+
+
+
+
{{ __('gesamte Kontakte') }}
+
{{ $export['leads'] }}
+
+
+
+
+ +
+
+
+
+
+
+
+
{{ __('E-Mail verifiziert') }}
+
{{ $export['confirmed'] }}
+
+
+
+
+
+
+
+
+
+
+
+
{{ __('Daten freigeben') }}
+
{{ $export['active'] }}
+
+
+
+
+ +
+
+
+
+
+
+
+
{{__('Einwilligung für weitere Informationen')}}
+
{{ $export['agreement'] }}
+
+
+
+
+
+
+@endsection diff --git a/resources/views/admin/ingredient/edit.blade.php b/resources/views/admin/ingredient/edit.blade.php new file mode 100755 index 0000000..e72b497 --- /dev/null +++ b/resources/views/admin/ingredient/edit.blade.php @@ -0,0 +1,37 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Create/Edit Inhaltsstoff') }} +

+ + {!! Form::open(['url' => route('admin_product_ingredient_store'), 'class' => 'form-horizontal', 'id'=>'']) !!} + + + + + @include('admin.ingredient.form') + +
+   + {{ __('back') }} +
+ + {!! Form::close() !!} + +@endsection diff --git a/resources/views/admin/ingredient/form.blade.php b/resources/views/admin/ingredient/form.blade.php new file mode 100755 index 0000000..ca6044c --- /dev/null +++ b/resources/views/admin/ingredient/form.blade.php @@ -0,0 +1,43 @@ + +
+ +
+ {{ __('Inhaltsstoff') }} + +
+ +
+ +
+
+ + + {{ Form::text('name', $model->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required')) }} +
+
+ +
+
+ + {{ Form::textarea('inci', $model->inci, array('placeholder'=>__('INCI'), 'class'=>'form-control', 'id'=>'inci', 'rows'=>3)) }} +
+
+
+
+ + {{ Form::textarea('effect', $model->effect, array('placeholder'=>__('Wirkung'), 'class'=>'form-control', 'id'=>'inci', 'rows'=>3)) }} +
+
+ +
+
+ + {{ Form::text('pos', $model->pos, array('placeholder'=>__('pos'), 'class'=>'form-control', 'id'=>'pos')) }} +
+
+ +
+
\ No newline at end of file diff --git a/resources/views/admin/ingredient/index.blade.php b/resources/views/admin/ingredient/index.blade.php new file mode 100755 index 0000000..3cf00f1 --- /dev/null +++ b/resources/views/admin/ingredient/index.blade.php @@ -0,0 +1,72 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Inhaltsstoffe')}} +
+
+ + + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + + + @endforeach + +
 {{__('Pos')}}{{__('Name')}}{{__('INCI')}}{{__('Wirkung') }}{{__('Status')}}
+ + + + {{ $value->pos }}{{ $value->name }}{{ $value->inci }}{{ $value->effect }}@if($value->active) @else@endif
+ +
+ +
+ + +@endsection diff --git a/resources/views/admin/lead/edit.blade.php b/resources/views/admin/lead/edit.blade.php new file mode 100644 index 0000000..3190d44 --- /dev/null +++ b/resources/views/admin/lead/edit.blade.php @@ -0,0 +1,113 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ @if(!$user->id || $user->id === 'new') + {{ __('Neuen Berater erstellen') }} + @else + {{ __('Berater bearbeiten') }} + @endif +

+ + {!! Form::open(['url' => route('admin_lead_store')."?show=".$show, 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + +
+   + {{ __('back') }} +
+ + @include('admin.lead.m_register_data') + + @if(!$user->id || $user->id === 'new') + @include('user.user_new_form') + @include('user.data_verify') + @else + @include('user.user_form') + @endif + +
+   + {{ __('back') }} +
+ + {!! Form::close() !!} + + + + + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/admin/lead/index.blade.php b/resources/views/admin/lead/index.blade.php new file mode 100644 index 0000000..52b8802 --- /dev/null +++ b/resources/views/admin/lead/index.blade.php @@ -0,0 +1,75 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ {{ __('Berater') }} +

+ +
+
+ {{-- --}} + + + + + + + + + + + + + + + + + + + + + + +
#{{__('E-Mail')}}{{__('Vorname')}}{{__('Nachname')}}{{__('Level')}}{{__('Mitglied')}}{{__('bis')}}{{__('Umsatz')}}{{__('Sales')}}{{__('verifiziert')}}{{__('freigegeben')}}{{__('Einv.')}}
+ {{-- --}} +
+
+ + +@endsection + diff --git a/resources/views/admin/lead/m_data_form.blade.php b/resources/views/admin/lead/m_data_form.blade.php new file mode 100644 index 0000000..c4aba20 --- /dev/null +++ b/resources/views/admin/lead/m_data_form.blade.php @@ -0,0 +1,49 @@ +@if($m_data_error) +
+
+
+
    +
  • {{ $m_data_error }}
  • +
+
+
+
+@endif +
+
+ +
+
+ + + + + + + + + + + + + + + +
{{ __('Name') }}{{ __('Account ID') }}{{ __('Rolle') }}{{ __('Sponsor') }}
{{ \App\Services\HTMLHelper::getSalutationLang($user->account->m_salutation) }} {{ $user->account->m_first_name }} {{ $user->account->m_last_name }}{{ $user->account->m_account }}@if($user->user_level){{ $user->user_level->name }}@endif@if($user->m_sponsor){{ $user->getMUserSponsor() }}@endif
+ + + + + + + + + +
{{ __('weitere Daten') }}
{{$user->account->m_notes}}
+
+
+ + + diff --git a/resources/views/admin/lead/m_data_form_edit.blade.php b/resources/views/admin/lead/m_data_form_edit.blade.php new file mode 100644 index 0000000..2644d08 --- /dev/null +++ b/resources/views/admin/lead/m_data_form_edit.blade.php @@ -0,0 +1,49 @@ + + +
+
+
+ + Nächste freie ID: {{$next_account_id}} + {{ Form::text('m_account', $user->account->m_account, array('placeholder'=>__('Account ID'), 'class'=>'form-control', 'id'=>'m_account')) }} +
+
+ + +
+
+ + +
+
+
+
+ + +
+ +
+ + {{ Form::text('m_first_name', $user->account->m_first_name, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'m_first_name')) }} +
+
+ + {{ Form::text('m_last_name', $user->account->m_last_name, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'m_last_name')) }} +
+
+
+ + {{ Form::textarea('m_notes', $user->account->m_notes , array('placeholder'=>__('weitere Daten'), 'class'=>'form-control', 'id'=>'m_notes', 'rows'=>4)) }} +
+
+   +
+
+
+ diff --git a/resources/views/admin/lead/m_register_data.blade.php b/resources/views/admin/lead/m_register_data.blade.php new file mode 100644 index 0000000..d5d540c --- /dev/null +++ b/resources/views/admin/lead/m_register_data.blade.php @@ -0,0 +1,178 @@ + +
+
+ +
+
+ @if($m_data_load) + @include('admin.lead.m_data_form_edit') + @endif + @if(!$m_data_load) + @include('admin.lead.m_data_form') + @endif + + +
+
+
+ + @if($user->payment_account ) +

+ {{__('Berater-Account aktiv')}} {{__('bis zum:')}} {{ $user->getPaymentAccountDateFormat() }}

+ @else +

+ {{__('Berater-Account inaktiv')}}

+ @endif + + @if($user->active == 1) +

+ {{__('Daten vollständig, freigeschaltet')}}: {{ $user->getActiveDateFormat() }}

+ @if($user->files->count()) + @foreach($user->files()->whereIdentifier('contract')->get() as $file) + MIVITA_Beratervertrag.pdf + @endforeach + @endif + @else +

+ {{__('Daten nicht vollständigt, inaktiv')}}

+ @endif +
+
+ @if($user->account_id) + @if($user->agreement) +

+ {{__('Einverständniserklärung')}}: {{ $user->getAgreementFormat() }} +

+ @else +

+ {{__('Einverständniserklärung')}} {{ __('nicht akzeptiert') }}

+ @endif + @if($user->account->data_protection) +

+ {{__('Privacy policy approved')}}: {{ $user->account->getDataProtectionFormat() }} +

+ @endif + @endif + @if($user->confirmed == 1) +

+ {{__('E-Mail verified')}}: {{ $user->getConfirmationDateFormat() }}

+ @else +

+ {{__('E-Mail not verified')}}

+ Neue E-Mail für die Registrierung zusenden + @endif +
+
+ @if(!$user->active) +
+ @if($user->release_account) + Registrierung abgeschlossen {{ $user->getReleaseAccountFormat() }}
+ Die Daten sind vollständigt => Berater freischalten + + @else + Berater muss Registrierung noch abschließen + @endif + @endif +
+
+
+
+ @if($user->files->count()) +
+
+ + + + + + + + + @foreach($user->files()->whereIdentifier('id_card')->get() as $file) + + + + + + + @endforeach + +
AusweisdatenNameGrößelöschen
+ @if(strtolower($file->ext ) === 'pdf') + + @else + + @endif + + {{ $file->original_name }}{{ $file->formatBytes() }} + + + +
+
+
+ @if($user->account_id) + + @if($user->account->getNotice('business_license') === 'later') +
+
+
+ {{__('register.business_license_later')}} +
+
+
+ @endif + @if($user->account->getNotice('business_license') === 'non') +
+
+
+
{{__('register.business_license_non')}}
+ {{$user->account->getNotice('business_license_reason')}} +
+
+
+ @endif + @endif + +
+ + + + + + + + + @foreach($user->files()->whereIdentifier('business_license')->get() as $file) + + + + + + + @endforeach + +
GewerbenachweisNameGrößelöschen
+ + @if(strtolower($file->ext ) == 'pdf') + + @else + + @endif + + {{ $file->original_name }}{{ $file->formatBytes() }} + + + +
+
+
+ + @endif +
+
+ diff --git a/resources/views/admin/level/index.blade.php b/resources/views/admin/level/index.blade.php new file mode 100755 index 0000000..b1a2ef3 --- /dev/null +++ b/resources/views/admin/level/index.blade.php @@ -0,0 +1,152 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Rollen')}} +
+
+ + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + @endforeach + +
 {{__('Pos')}}{{__('Description')}}{{__('Translate') }}{{__('Status')}}
+ + {{ $value->pos }}{{ $value->name }}{{ $value->getFormattedMargin() }}{{ $value->getTranNames() }}{!! get_active_badge($value->active) !!}
+
+ +
+
+ +
+ + + + + + + +@endsection diff --git a/resources/views/admin/modal/is_like_member.blade.php b/resources/views/admin/modal/is_like_member.blade.php new file mode 100644 index 0000000..c8bb4a4 --- /dev/null +++ b/resources/views/admin/modal/is_like_member.blade.php @@ -0,0 +1,242 @@ +{!! Form::open(['url' => route('admin_sales_customers_detail', [$current->id]), 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!} + + + + + + + + +{!! Form::close() !!} + + diff --git a/resources/views/admin/modal/member.blade.php b/resources/views/admin/modal/member.blade.php new file mode 100644 index 0000000..3d66c80 --- /dev/null +++ b/resources/views/admin/modal/member.blade.php @@ -0,0 +1,73 @@ +{!! Form::open(['url' => $route, 'class' => 'modal-content', 'enctype' => 'multipart/form-data']) !!} + + + +{!! Form::close() !!} + + diff --git a/resources/views/admin/modal/show_product.blade.php b/resources/views/admin/modal/show_product.blade.php new file mode 100644 index 0000000..479abb8 --- /dev/null +++ b/resources/views/admin/modal/show_product.blade.php @@ -0,0 +1,122 @@ + + \ No newline at end of file diff --git a/resources/views/admin/modal/show_user_customers.blade.php b/resources/views/admin/modal/show_user_customers.blade.php new file mode 100644 index 0000000..963592b --- /dev/null +++ b/resources/views/admin/modal/show_user_customers.blade.php @@ -0,0 +1,84 @@ + \ No newline at end of file diff --git a/resources/views/admin/payment_method/index.blade.php b/resources/views/admin/payment_method/index.blade.php new file mode 100755 index 0000000..1bd0ac7 --- /dev/null +++ b/resources/views/admin/payment_method/index.blade.php @@ -0,0 +1,148 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Zahlungsarten')}} +
+
+ + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + @endforeach + +
 {{__('Pos')}}{{__('Name')}}{{__('sichtbar') }}{{__('Standard')}}{{__('Status')}}
+ + {{ $value->pos }}{{ $value->name }} ({{ $value->short }}){{ $value->getShowAtType() }}{!! get_active_badge($value->default) !!}{!! get_active_badge($value->active) !!}
+
+ +
+
+ +
+ + + + + + + +@endsection diff --git a/resources/views/admin/product/edit.blade.php b/resources/views/admin/product/edit.blade.php new file mode 100755 index 0000000..934341a --- /dev/null +++ b/resources/views/admin/product/edit.blade.php @@ -0,0 +1,45 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Create/Edit Produkt') }} +

+ + {!! Form::open(['url' => route('admin_product_store'), 'class' => 'form-horizontal', 'id'=>'']) !!} + + +
+   + {{ __('back') }} +
+ + @include('admin.product.form') + +
+   + {{ __('back') }} +
+ + {!! Form::close() !!} + + + @include('admin.product.images') + + + +@endsection diff --git a/resources/views/admin/product/form.blade.php b/resources/views/admin/product/form.blade.php new file mode 100755 index 0000000..cd49dcf --- /dev/null +++ b/resources/views/admin/product/form.blade.php @@ -0,0 +1,321 @@ + +
+ +
+ {{ __('Produkt') }} + +
+ +
+ +
+ + + {{ Form::text('name', $product->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required')) }} +
+
+ {{--
+ + {{ Form::text('title', $product->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'title')) }} +
+ --}} +
+ +
+
+ + +
+
+ + {{ Form::select('show_at', $product->showATs, $product->show_at, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'show_at') ) }} +
+ +
+ + {{ Form::text('pos', $product->pos, array('placeholder'=>__('1, 2, 3, etc'), 'class'=>'form-control', 'id'=>'pos')) }} +
+
+
+ + {{ Form::textarea('copy', $product->copy , array('placeholder'=>__('Produktbeschreibung'), 'class'=>'form-control summernote', 'id'=>'copy')) }} +
+ +
+
+ +
+
+ {{ __('Preise in EUR') }} +
+
+
+
+ + {{ Form::text('price', $product->getFormattedPrice(), array('placeholder'=>__('Preis VK in EUR (Brutto)'), 'class'=>'form-control', 'id'=>'price')) }} + +
+
+ + {{ Form::text('price_ek', $product->getFormattedPriceEk(), array('placeholder'=>__('Preis EK in EUR'), 'class'=>'form-control', 'id'=>'price_ek')) }} + +
+
+ + {{ Form::text('tax', $product->getFormattedTax(), array('placeholder'=>__('MwSt in %'), 'class'=>'form-control', 'id'=>'tax')) }} + +
+
+ + {{ Form::text('price_old', $product->getFormattedPriceOld(), array('placeholder'=>__('Streichpreis'), 'class'=>'form-control', 'id'=>'price_old')) }} + +
+
+
+ +
+ + {{ Form::text('weight', $product->weight, array('placeholder'=>__('Gewicht in g'), 'class'=>'form-control', 'id'=>'weight')) }} +
+
+ + {{ Form::text('points', $product->points, array('placeholder'=>__('Points pro Produkt'), 'class'=>'form-control', 'id'=>'points')) }} +
+
+ + {{ Form::text('amount', $product->amount, array('placeholder'=>__('Anzahl/Verfügbarkeit'), 'class'=>'form-control', 'id'=>'amount')) }} + +
+
+
+
+ +
+
+ Landesspezifische Preise +
+ +
+ @foreach($country_for_prices as $country) + + {{ Form::hidden('country_prices[]', $country->id) }} +
+
{{$country->de}}
+
+
+ @if($country->own_eur) +
+
+ +

+
+
+ + {{ Form::text('c_price['.$country->id.']', formatNumber($product->getCPrice($country->id)), array('placeholder'=>__('Preis VK in EUR Brutto'), 'class'=>'form-control', 'id'=>'c_price_'.$country->id)) }} + +
+
+ + {{ Form::text('c_tax['.$country->id.']', formatNumber($product->getCTax($country->id)), array('placeholder'=>__('MwSt in %'), 'class'=>'form-control', 'id'=>'c_tax'.$country->id)) }} + +
+
+ + {{ Form::text('c_price_old['.$country->id.']', formatNumber($product->getCPriceOld($country->id)), array('placeholder'=>__('Streichpreis'), 'class'=>'form-control', 'id'=>'c_price_old'.$country->id)) }} + +
+
+ @endif + @if($country->currency) +
+
+ +

@if($country->currency_calc) Preis Berechnung automatisch @else Preis manuell + angegeben @endif

+
+ + @if($country->currency_calc) + {{-- + NUR Anzeige vom automatisch berechneten Preis currency_faktor + Auf Basis vom price + Wenn own_eur auf basis vom own_eur price + --}} +
+ + {{ Form::text('c_currency['.$country->id.']', formatNumber($product->getRealPrice($country) * $country->currency_faktor), array('class'=>'form-control', 'readonly')) }} + +
+ @else + {{-- + Eingabe + Währungs Namen aus currency_name + currency_faktor als Hinweis ausgeben + Auf Basis vom price + Wenn own_eur auf basis vom own_eur price + --}} +
+ + {{ Form::text('c_currency['.$country->id.']', formatNumber($product->getCCurrency($country->id)), array('placeholder'=>__('Preis VK in ').$country->currency_unit, 'class'=>'form-control')) }} +
+ @endif + +
+ + {{ Form::text('currency_faktor['.$country->id.']', formatNumber($country->currency_faktor, 4), array('class'=>'form-control', 'readonly')) }} +
+
+ + {{ Form::text('preis_eur['.$country->id.']', formatNumber($product->getRealPrice($country)), array('class'=>'form-control', 'readonly')) }} +
+
+ + {{ Form::text('currency_unit['.$country->id.']', $country->currency_unit, array('class'=>'form-control', 'readonly')) }} +
+ +
+ @endif +
+ @endforeach + für die Einstellung von landesspezifischen Preisen müssen diese unter + Länder -> Land aktiviert werden. +
+
+ + +
+
+ {{ __('Inhalte') }} +
+
+
+ +
+ + {{ Form::text('contents', $product->contents, array('placeholder'=>__('Bsp: 150 ml'), 'class'=>'form-control', 'id'=>'contents')) }} +
+
+ + {{ Form::text('contents_total', $product->contents_total, array('placeholder'=>__('Bsp: 150'), 'class'=>'form-control', 'id'=>'contents_total')) }} +
+
+ + {{ Form::select('unit', $product->unitTypes, $product->unit, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'unit') ) }} +
+
+ + {{ Form::text('base_price', $product->getBasePriceFormattedFull(), array('placeholder'=>__(''), 'class'=>'form-control', 'id'=>'base_price', 'readonly')) }} + +
+
+ + {{ Form::text('number', $product->number, array('placeholder'=>__('number'), 'class'=>'form-control', 'id'=>'number')) }} + +
+
+ + {{ Form::text('icons', $product->icons, array('placeholder'=>__('icons'), 'class'=>'form-control', 'id'=>'icons')) }} + +
+
+ + +
+
+ +
+ + {{ Form::textarea('description', $product->description , array('placeholder'=>__('description'), 'class'=>'form-control summernote', 'id'=>'description')) }} +
+
+ + {{ Form::textarea('usage', $product->usage , array('placeholder'=>__('usage'), 'class'=>'form-control summernote', 'id'=>'usage')) }} +
+
+ + {{ Form::textarea('ingredients', $product->ingredients , array('placeholder'=>__('ingredients'), 'class'=>'form-control summernote', 'id'=>'ingredients')) }} +
+
+
+ +
+
+ {{ __('Inhalte') }} +
+
+
+ + + + + + + + + + + @foreach($product->p_ingredients as $ingredient) + + + + + + + @endforeach + +
{{__('Name')}}{{__('INCI')}}{{__('Wirkung') }}
{{ $ingredient->name }}{{ $ingredient->inci }}{{ $ingredient->effect }}
+
+
+
+ + + Inhaltsstoffe anlegen +
+
+   +
+
+
+
+ +@if(Auth::user()->isSySAdmin()) +
+
+ {{ __('SySAdmin Einstellungen') }} +
+
+
+
+ + {{ Form::select('action[]', $product->actions, $product->action, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'action', 'multiple') ) }} +
+
+ + {{ Form::select('identifier', $product->identifiers_types, $product->identifier, array('data-live-search'=>'false', 'class'=>'selectpicker', 'id'=>'identifier') ) }} +
+
+ + {{ Form::text('upgrade_to_id', $product->upgrade_to_id, array('placeholder'=>__('Produkt-ID auf das geupdatet werden soll'), 'class'=>'form-control', 'id'=>'upgrade_to_id')) }} +
+
+
+
+ + {{ Form::text('wp_number', $product->wp_number, array('placeholder'=>__('WP Number'), 'class'=>'form-control', 'id'=>'wp_number')) }} +
+
+
+
+@endif \ No newline at end of file diff --git a/resources/views/admin/product/images.blade.php b/resources/views/admin/product/images.blade.php new file mode 100755 index 0000000..c691a46 --- /dev/null +++ b/resources/views/admin/product/images.blade.php @@ -0,0 +1,96 @@ + + + + +
+ +
+ {{ __('Bilder') }} + +
+ + + +
+ + @if($product->id>0) + + +
+
+ +
+ @foreach($product->images as $image) +
+ +
+ Bild löschen + @if($image->active) + + @else + + @endif +
+
+
+ +
+ +
+ + +
+
+
+ @endforeach +
+
+
+
+
+
+ @csrf + +
+
+ +
+ +
+ +
+
+
+
+
+
+ @else +

Produkt erst speichern

+ + + @endif + + +
+
diff --git a/resources/views/admin/product/index.blade.php b/resources/views/admin/product/index.blade.php new file mode 100755 index 0000000..19a2668 --- /dev/null +++ b/resources/views/admin/product/index.blade.php @@ -0,0 +1,99 @@ +@extends('layouts.layout-2') + +@section('content') +
+ +
+ {{__('Produkte')}} + +
+
+ + + + + + + + + + + + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + + + + + + + + + + + @endforeach + +
 {{__('Pos')}}{{__('Bild')}}{{__('Name')}}{{__('Artikelnummer')}}{{__('Kategorie')}}{{__('Points')}}{{__('Preis')}}{{__('Inhalt')}}{{__('Einheit')}}{{__('Grundpreis')}}{{__('Gewicht')}}{{__('sichbar')}}{{__('KP')}}{{__('Status')}}
+ + + + {{ $value->pos }} + @if(count($value->images)) + + @endif + {{ $value->name }}{{ $value->number }} + @foreach($value->categories as $category) +
{{ $category->category->name }}
+ @endforeach +
{{ $value->getFormattedPrice() }}{{ $value->points }}{{ $value->contents_total }}{{ $value->getUnitType() }}{{ $value->getBasePriceFormatted() }}{{ $value->weight }}{{ $value->getShowAtType() }}{!! get_active_badge($value->shipping_addon) !!}{!! get_active_badge($value->active) !!}   +
+ +
+
+ + +@endsection diff --git a/resources/views/admin/sales/_detail.blade.php b/resources/views/admin/sales/_detail.blade.php new file mode 100644 index 0000000..9c9569c --- /dev/null +++ b/resources/views/admin/sales/_detail.blade.php @@ -0,0 +1,694 @@ + +
+ +
+
+
+ Status: + + {!! \App\Services\Payment::getShoppingOrderBadge($shopping_order); !!} + +
+
+ Versand: + + @if($isAdmin) + + @else + + {{$shopping_order->getShippedType()}} + + @endif +
+
+ +
+
+ + + +
+
+
+
Bestelldatum
+ {{$shopping_order->created_at->format("d.m.Y H:i")}} +
+
+
Anzahl Artikel
+ {{$shopping_order->getItemsCount()}} +
+
+
Preis gesamt
+ {{$shopping_order->getFormattedTotalShipping()}} € +
+
+
Points gesamt
+ {{ $shopping_order->points }} +
+
+
+
+ + +@if($isAdmin) + +
+
+
+ @if(isset($change_member_error) && $change_member_error) +
+
+
+
    +
  • {{ $change_member_error }}
  • +
+
+
+
+ @endif +
Zugewiesener Berater
+ @if($isView === 'sales_user') + {{-- @if($shopping_order->user_shop) + {{$shopping_order->user_shop->title}} + @endif + --}} + @endif + + @if($isView === 'sales_customer') + @if($shopping_order->shopping_user && $shopping_order->shopping_user->is_like) + + @else + @if($shopping_order->member) + + {{$shopping_order->member->getFullName()}} #{{$shopping_order->member->number}} + @endif + + @endif + + @endif + +
+
+
+ +
+
+
+
+ +@endif + + +
+ +
+ @if($shopping_order->shopping_user->is_from === 'shopping' || $shopping_order->shopping_user->is_from === 'extern') + Rechnungsadresse des Kunden + @else + Rechnungsadresse des Beraters + @endif +
+
+ @if($shopping_order->shopping_user->billing_company) +
+
Firma
+ {{ $shopping_order->shopping_user->billing_company }} +
+ @endif + +
+
Anrede
+ {{ \App\Services\HTMLHelper::getSalutationLang($shopping_order->shopping_user->billing_salutation) }} +
+
+
Vorname
+ {{ $shopping_order->shopping_user->billing_firstname }} +
+
+
Nachname
+ {{ $shopping_order->shopping_user->billing_lastname }} +
+
+
+
+
Straße
+ {{ $shopping_order->shopping_user->billing_address }} +
+
+
Zusatz
+ {{ $shopping_order->shopping_user->billing_address_2 }} +
+
+
PLZ
+ {{ $shopping_order->shopping_user->billing_zipcode }} +
+
+
Stadt
+ {{ $shopping_order->shopping_user->billing_city }} +
+
+
E-Mail
+ {{ $shopping_order->shopping_user->billing_email }} +
+
+
Telefon
+ {{ $shopping_order->shopping_user->billing_phone }} +
+
+
Land
+ {{ $shopping_order->shopping_user->billing_country->getLocated() }} +
+
+
+ + + + @if($shopping_order->shopping_user->is_from !== 'homeparty') +
+ +
+
+ @if($shopping_order->shopping_user->is_from === 'user_order' || $shopping_order->shopping_user->is_from === 'extern') + @if($shopping_order->shopping_user->is_for === 'me') + Lieferadresse des Berater + @else + Lieferadresse des Kunden + @endif + @endif + @if($shopping_order->shopping_user->is_from === 'wizard') + Lieferadresse des Berater + @endif + @if($shopping_order->shopping_user->is_from === 'membership') + Lieferadresse des Berater + @endif + @if($shopping_order->shopping_user->is_from === 'shopping') + Lieferadresse des Kunden + @endif +
+ @if($shopping_order->shopping_user->same_as_billing) + {{__('email.checkout_mail_same_address')}} + @else +
+ @if($shopping_order->shopping_user->shipping_company) +
+
Firma
+ {{ $shopping_order->shopping_user->shipping_company }} +
+ @endif + +
+
Anrede
+ {{ \App\Services\HTMLHelper::getSalutationLang($shopping_order->shopping_user->shipping_salutation) }} +
+
+
Vorname
+ {{ $shopping_order->shopping_user->shipping_firstname }} +
+
+
Nachname
+ {{ $shopping_order->shopping_user->shipping_lastname }} +
+
+
+
+
Straße
+ {{ $shopping_order->shopping_user->shipping_address }} +
+
+
Zusatz
+ {{ $shopping_order->shopping_user->shipping_address_2 }} +
+
+
PLZ
+ {{ $shopping_order->shopping_user->shipping_zipcode }} +
+
+
Stadt
+ {{ $shopping_order->shopping_user->shipping_city }} +
+
+
E-Mail
+ {{ $shopping_order->shopping_user->shipping_email }} +
+
+
Telefon
+ {{ $shopping_order->shopping_user->shipping_phone }} +
+
+
Land
+ {{ $shopping_order->shopping_user->shipping_country->getLocated() }} +
+
+ @endif +
+ @endif +
+ + + +
+
+ @if($shopping_order->shopping_user->is_from === 'user_order') + @if($shopping_order->shopping_user->is_for === 'me') + Bestellung für Berater + @else + Bestellung für Kunde + @endif + @endif + @if($shopping_order->shopping_user->is_from === 'wizard') + Beraterbestellung für Registrierung + @endif + @if($shopping_order->shopping_user->is_from === 'membership') + Beraterbestellung für Mitgliedschaft + @endif + @if($shopping_order->shopping_user->is_from === 'shopping') + Kundenbestellung über Shop + @endif + @if($shopping_order->shopping_user->is_from === 'homeparty') +
Beraterbestellung für eine Homeparty
+
+ @endif + + + @if($shopping_order->shopping_user->is_from !== 'homeparty') + +
+ + + + + + + + + @foreach($shopping_order->shopping_order_items as $shopping_order_item) + + + + + + + + + @endforeach + + + + + + + + + + + + + + + + + + + + + +
Produkt + @if($shopping_order->shopping_user->is_from === 'user_order') + Netto-Preis + @else + Preis + @endif + AnzahlSumme
+
+ @if($shopping_order_item->product) + @if($shopping_order_item->product->images) + @if($image = $shopping_order_item->product->images->first()) + + @endif + @endif + +
+ {{ $shopping_order_item->product->name }} + #{{ $shopping_order_item->product->number }} + + Inhalt: {{ $shopping_order_item->product->contents }}
+ Gewicht: {{ $shopping_order_item->product->weight }} g
+ Points: {{ $shopping_order_item->product->points }} +
+
+ @endif +
+
+ @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order_item->getFormattedPriceNet() }} € + @else + {{ $shopping_order_item->getFormattedPrice() }} € + @endif + + {{ $shopping_order_item->qty }} + + @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order_item->getFormattedTotalPriceNet() }} € + @else + {{ $shopping_order_item->getFormattedTotalPrice() }} € + @endif +
+ {{__('email.checkout_mail_shipping')}} + + @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order->getFormattedShippingNet() }} € + @else + {{ $shopping_order->getFormattedShipping() }} € + @endif +
+ {{__('email.checkout_mail_subtotal_ws')}} + + {{ $shopping_order->getFormattedSubtotalWs() }} € +
+ {{__('email.checkout_mail_tax')}} + + {{ $shopping_order->getFormattedTax() }} € +
+ {{__('email.checkout_mail_total')}} + + {{ $shopping_order->getFormattedTotalShipping() }} € +
+ {{__('email.checkout_mail_tax_info')}} +
+
+ @else + @if($shopping_order->homeparty) + + @php($homeparty = $shopping_order->homeparty) + @if($homeparty->homeparty_host) +

Bestellung Gastgeber/in {{$homeparty->homeparty_host->billing_firstname}} {{$homeparty->homeparty_host->billing_lastname}}

+ @include('admin.sales._detail_homparty', ['homeparty'=>$shopping_order->homeparty, 'homeparty_guest' => $homeparty->homeparty_host]) + @endif + + @if($homeparty->homeparty_guests) + @php($g_count = 1) + @foreach($homeparty->homeparty_guests as $homeparty_guest) +
+

Bestellung {!! $g_count++ !!}. Gast {{$homeparty_guest->billing_firstname}} {{$homeparty_guest->billing_lastname}}

+ @include('admin.sales._detail_homparty', ['homeparty'=>$shopping_order->homeparty, 'homeparty_guest' => $homeparty_guest]) + @endforeach + @endif +
+ + @include('admin.sales._detail_homparty_total', ['homeparty' => $homeparty]) + + @endif + @endif +
+
+ + @if($shopping_order->txaction === 'extern') +
+ @if($shopping_order->wp_invoice_path) + + @endif + @if($shopping_order->wp_notice['wp_advertising']) +
+
+ Werbemittel: {!! $shopping_order->wp_notice['wp_advertising'] !!}
+
+
+ @endif + @if($shopping_order->wp_notice['wp_incentives']) +
+
+ Incentives: {!! $shopping_order->wp_notice['wp_incentives'] !!}
+
+
+ @endif +
+
+@endif + + +
+
+ Zahlung +
+ @if($shopping_order->txaction !== 'extern') +
+ + + + + + + + + + + + + @php($count=0) + @foreach($shopping_order->shopping_payments as $shopping_payment) + + + + + + + + + @if($isAdmin && $shopping_payment->payment_transactions) + @php($ccount=0) + + + + + @endif + @endforeach + +
#ZahlungsartGesamtStatusDatumReferenznummer
{{++$count}}{{$shopping_payment->getPaymentType()}}{{$shopping_payment->getPaymentAmount()}} + @if($isAdmin && $shopping_payment->clearingtype === 'fnc' && $shopping_payment->onlinebanktransfertype === 'MIV') + + @else + {!! \App\Services\Payment::getShoppingPaymentBadge($shopping_payment) !!} + @endif + {{$shopping_payment->created_at->format("d.m.Y H:i")}}{{$shopping_payment->reference}}
{{$count}}.{{++$ccount}} + + + + + + + + + + + @foreach($shopping_payment->payment_transactions as $payment_transaction) + + + + + + + @endforeach + +
RequestStatusTX-ActionDatum
{{$payment_transaction->request}}{{$payment_transaction->status}}{{$payment_transaction->txaction}} {{$payment_transaction->errormessage}}{{$payment_transaction->created_at->format("d.m.Y H:i")}}
+
+
+ @else +
+
+
+
    +
  • Bestellung über externen SHOP
  • +
+
+
+
+ @endif +
+
+ +@if($isAdmin) + + + + + + + + + + +@endif \ No newline at end of file diff --git a/resources/views/admin/sales/_detail_homparty.blade.php b/resources/views/admin/sales/_detail_homparty.blade.php new file mode 100644 index 0000000..263842a --- /dev/null +++ b/resources/views/admin/sales/_detail_homparty.blade.php @@ -0,0 +1,246 @@ +@if($homeparty_guest && $homeparty_guest->homeparty_user_order_items->count() || $homeparty_guest->is_host) +
+ + + + + + + + + + + + + + + @foreach($homeparty_guest->homeparty_user_order_items as $value) + + + + + + + + + + + @endforeach + + + + @php($user_cart = $homeparty->order['user_carts'][$homeparty_guest->id]) + @php($hp_order = $homeparty->order) + + @if(!$homeparty_guest->is_host) + + + + @if($homeparty_guest->getDelivery() === 'direct') + + + + + + + @endif + + + + + + + + + @else + @if($hp_order['is_bonus']) + + + + + + + @endif + @if($hp_order['is_bonus_coupon']) + + + + + + + @endif + @if($hp_order['is_bonus']) + + + + + + + @endif + + + + + + + + + + + + + + + @endif + +
{{__('Bild')}}{{__('Produkt')}}{{__('Anzahl')}}{{__('Marge')}}{{__('EK-Preis')}}{{__('Points')}}{{__('Verdienst')}}{{__('VK-Preis')}}
+ @if(count($value->product->images)) + + @endif + + {{ $value->product->name }} +
+
Inhalt: {{ $value->product->contents }}
+
Art.-Nr.: {{ $value->product->number }}
+
+
+ {{$value->qty}} + + {{ $value->margin }}% + + {{ $value->getFormattedTotalEKPrice() }} € + + {{ $value->getFormattedTotalPoints() }} + + {{ $value->getFormattedTotalIncomePrice() }} € + + {{ $value->getFormattedTotalPrice() }} € +
+ @if($homeparty_guest->getDelivery() === 'host') + Lieferung an Gastgeber + @endif + @if($homeparty_guest->getDelivery() === 'direct') + Lieferung direkt an den Gast + @endif +
Versandkosten  {{ Util::formatNumber($user_cart['shipping_price'])}} €
Gesamt:{{Util::formatNumber($user_cart['ek_price'])}} €{{$user_cart['points']}}{{Util::formatNumber($user_cart['income_price'])}} €{{Util::formatNumber($user_cart['price'])}} €
Gutschrift Homeparty Gutschein  - {{ Util::formatNumber($hp_order['bonus_value']) }} €
Gutschrift Bonus  - {{ Util::formatNumber($hp_order['bonus_coupon']) }} €
Abzug Points durch Gutschein- {{ $hp_order['bonus_points_diff'] }}   
Versandkosten:  {{Util::formatNumber($user_cart['shipping_price'])}} €
Summen:{{Util::formatNumber($user_cart['ek_price'])}} €{{$user_cart['points']}}{{Util::formatNumber($user_cart['income_price'])}} €{{Util::formatNumber($user_cart['price'])}} €
+
+ + @if($homeparty_guest->is_host || $homeparty_guest->getDelivery() === 'direct') + +
+ +
+
+ Lieferadresse +
+ @if($homeparty_guest->same_as_billing) +
+ @if($homeparty_guest->billing_company) +
+
Firma
+ {{ $homeparty_guest->billing_company }} +
+ @endif + +
+
Anrede
+ {{ \App\Services\HTMLHelper::getSalutationLang($homeparty_guest->billing_salutation) }} +
+
+
Vorname
+ {{ $homeparty_guest->billing_firstname }} +
+
+
Nachname
+ {{ $homeparty_guest->billing_lastname }} +
+
+
+
+
Straße
+ {{ $homeparty_guest->billing_address }} +
+
+
Zusatz
+ {{ $homeparty_guest->billing_address_2 }} +
+
+
PLZ
+ {{ $homeparty_guest->billing_zipcode }} +
+
+
Stadt
+ {{ $homeparty_guest->billing_city }} +
+
+
E-Mail
+ {{ $homeparty_guest->billing_email }} +
+
+
Telefon
+ {{ $homeparty_guest->billing_phone }} +
+
+
Land
+ {{ $homeparty_guest->billing_country->getLocated() }} +
+
+ @else +
+ @if($homeparty_guest->shipping_company) +
+
Firma
+ {{ $homeparty_guest->shipping_company }} +
+ @endif + +
+
Anrede
+ {{ \App\Services\HTMLHelper::getSalutationLang($homeparty_guest->shipping_salutation) }} +
+
+
Vorname
+ {{ $homeparty_guest->shipping_firstname }} +
+
+
Nachname
+ {{ $homeparty_guest->shipping_lastname }} +
+
+
+
+
Straße
+ {{ $homeparty_guest->shipping_address }} +
+
+
Zusatz
+ {{ $homeparty_guest->shipping_address_2 }} +
+
+
PLZ
+ {{ $homeparty_guest->shipping_zipcode }} +
+
+
Stadt
+ {{ $homeparty_guest->shipping_city }} +
+
+
E-Mail
+ {{ $homeparty_guest->shipping_email }} +
+
+
Telefon
+ {{ $homeparty_guest->shipping_phone }} +
+
+
Land
+ {{ $homeparty_guest->shipping_country->getLocated() }} +
+
+ @endif +
+ @endif + +@else +

Keine Bestellung

+@endif \ No newline at end of file diff --git a/resources/views/admin/sales/_detail_homparty_total.blade.php b/resources/views/admin/sales/_detail_homparty_total.blade.php new file mode 100644 index 0000000..8a50629 --- /dev/null +++ b/resources/views/admin/sales/_detail_homparty_total.blade.php @@ -0,0 +1,58 @@ +
+ + + + + + + + + + + + + + + + @php($hp_order = $homeparty->order) + + @if($hp_order['is_bonus']) + + + + + @endif + + + + + + + + + + + + + + + + + + + + + + + + +
Gesamt{{__('EK-Preis')}}{{__('Points')}}{{__('Verdienst')}}{{__('VK-Preis')}}
+ {{ $hp_order['voucher_name'] }} + {{ Util::formatNumber($hp_order['voucher_price'])}} €
+ Gesamtsummen: + {{ Util::formatNumber($hp_order['ek_price'])}} €{{ $hp_order['points']}}{{ Util::formatNumber($hp_order['income_price'])}} €{{ Util::formatNumber($hp_order['price'])}} €
+ Summe ohne MwSt: +    {{ Util::formatNumber($hp_order['price_net'])}} €
+ Enthaltene MwSt: +    {{ Util::formatNumber($hp_order['price']-$hp_order['price_net'])}} €
+
\ No newline at end of file diff --git a/resources/views/admin/sales/customer_detail.blade.php b/resources/views/admin/sales/customer_detail.blade.php new file mode 100644 index 0000000..f9aef7b --- /dev/null +++ b/resources/views/admin/sales/customer_detail.blade.php @@ -0,0 +1,11 @@ +@extends('layouts.layout-2') + +@section('content') +

+ zurück + {{ __('Bestellung Kunde') }} #{{$shopping_order->id}} +

+ @include('admin.sales._detail') + zurück + +@endsection \ No newline at end of file diff --git a/resources/views/admin/sales/customers.blade.php b/resources/views/admin/sales/customers.blade.php new file mode 100644 index 0000000..b96ca67 --- /dev/null +++ b/resources/views/admin/sales/customers.blade.php @@ -0,0 +1,103 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ {{ __('Bestellungen Kunden') }} +

+
+
+
+
+ + +
+
+ +
+
+ + +
+
+ + + +
+
+ +
+
+ + + + + + + + + + + + + + + + + +
#{{__('Datum')}}{{__('Betrag')}}{{__('Zahlung')}}{{__('Status')}}{{__('Versand')}}{{__('First name')}}{{__('Last name')}}{{__('E-Mail')}}{{__('zugewiesener Berater')}}{{__('Rf-Nr.')}}{{__('Käufe')}}
+
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/admin/sales/user_detail.blade.php b/resources/views/admin/sales/user_detail.blade.php new file mode 100644 index 0000000..3f3ba3d --- /dev/null +++ b/resources/views/admin/sales/user_detail.blade.php @@ -0,0 +1,12 @@ +@extends('layouts.layout-2') + +@section('content') + +

+ zurück + {{ __('Bestellung Berater') }} #{{$shopping_order->id}} +

+ @include('admin.sales._detail') + zurück + +@endsection \ No newline at end of file diff --git a/resources/views/admin/sales/users.blade.php b/resources/views/admin/sales/users.blade.php new file mode 100644 index 0000000..a71b095 --- /dev/null +++ b/resources/views/admin/sales/users.blade.php @@ -0,0 +1,71 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ {{ __('Bestellungen Berater') }} +

+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + +
#{{__('Datum')}}{{__('Betrag')}}{{__('Zahlung')}}{{__('Status')}}{{__('Versand')}}{{__('Art')}}{{__('First name')}}{{__('Last name')}}{{__('E-Mail')}}B.{{__('First name')}}B.{{__('Last name')}}B.{{__('E-Mail')}}{{__('Rf-Nr.')}}{{__('Käufe')}}
+
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/admin/shipping/edit.blade.php b/resources/views/admin/shipping/edit.blade.php new file mode 100755 index 0000000..3f3da40 --- /dev/null +++ b/resources/views/admin/shipping/edit.blade.php @@ -0,0 +1,297 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Create/Edit Versandkosten') }} +

+ + + +
+ {!! Form::open(['url' => route('admin_shipping_store'), 'class' => 'form-horizontal', 'id'=>'']) !!} + +
+ {{ __('Versandkosten') }} +
+
+
+
+ + + {{ Form::text('name', $value->name, array('placeholder'=>__('Name'), 'class'=>'form-control'.($errors->has('name') ? ' is-invalid' : ''), 'required')) }} + @if ($errors->has('name')) + + {{ $errors->first('name') }} + + @endif +
+
+ + + {{ Form::text('free', $value->getFormattedFree(), array('placeholder'=>__('in Euro, leer lassen ohne Freigrenze'), 'class'=>'form-control')) }} +
+
+
+   +
+
+ {!! Form::close() !!} +
+ + @if($value->id>0) +
+
+ {{__('Preise')}} +
+
+ + + + + + + + + + + + + + + + @foreach($value->prices as $price) + + + + + + + + + + + + @endforeach + +
 {{__('Kunden Preis')}}{{__('Kompensation Preis')}}{{__('Anzahl KP')}}{{__('Tax')}}{{__('Preis von - bis')}}{{__('Gewicht von - bis')}}
+ + {{ $price->getFormattedPrice() }}{{ $price->getFormattedPriceComp() }}{{ $price->num_comp }}{{ $price->getFormattedTaxRate() }}{{ $price->getFormatTotalFrom() }} - {{ $price->getFormattedTotalTo() }}{{ $price->weight_from }} - {{ $price->weight_to }}
+
+ + + +
+
+
+ + + + +
+
+ {{__('Land')}} +
+
+ + + @foreach($value->countries as $country) + + + + + + @endforeach + +
+ {{ $country->country->de }} + + @if(!$country->shopping_orders->count()) + + @else + - + @endif +
+ @if(!$value->countries->count()) +
+ + +
+ @endif +
+
+ + + + + + + + @endif + + + + + +@endsection diff --git a/resources/views/admin/shipping/index.blade.php b/resources/views/admin/shipping/index.blade.php new file mode 100755 index 0000000..5b38132 --- /dev/null +++ b/resources/views/admin/shipping/index.blade.php @@ -0,0 +1,60 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Versandkosten')}} +
+
+ + + + + + + + + + + @foreach($values as $value) + + + + + + + + @endforeach + +
 {{__('Name')}}{{__('Status')}}
+ + + + {{ $value->name }}@if($value->active) @else@endif
+ +
+
+ + +@endsection diff --git a/resources/views/admin/site/edit.blade.php b/resources/views/admin/site/edit.blade.php new file mode 100755 index 0000000..11cd419 --- /dev/null +++ b/resources/views/admin/site/edit.blade.php @@ -0,0 +1,41 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Edit Startseite') }} +

+ + {!! Form::open(['url' => route('admin_sites_store', [$site]), 'class' => 'form-horizontal', 'id'=>'']) !!} + +
+   +
+ + @include('admin.site.form') + +
+   +
+ + {!! Form::close() !!} + + + @include('admin.site.images') + + +@endsection diff --git a/resources/views/admin/site/form.blade.php b/resources/views/admin/site/form.blade.php new file mode 100755 index 0000000..9db131c --- /dev/null +++ b/resources/views/admin/site/form.blade.php @@ -0,0 +1,46 @@ + +
+ +
+ {{ __('Inhalte') }} + +
+ +
+ +
+
+ + {{ Form::text('headline', $value->headline, array('placeholder'=>__('Headline'), 'class'=>'form-control', 'id'=>'headline', 'required')) }} +
+
+ +
+
+ + {{ Form::textarea('copy', $value->copy , array('placeholder'=>__('Copy'), 'class'=>'form-control', 'id'=>'copy', 'rows'=>6)) }} +
+
+ +

Anzeige Produkte auf der Startseite

+ +
+
+ + +
+ +
+ + +
+ +
+ +
+
+ diff --git a/resources/views/admin/site/images.blade.php b/resources/views/admin/site/images.blade.php new file mode 100755 index 0000000..b6f97c0 --- /dev/null +++ b/resources/views/admin/site/images.blade.php @@ -0,0 +1,93 @@ + + + + +
+ +
+ {{ __('Headline Bild') }} + +
+ + +
+ + @if($value->id>0) + + +
+ +
+
+
+ +
+ @if($value->iq_image_id) +
+ +
+ Bild löschen + @if($value->iq_image->active) + + @else + + @endif +
+ @endif +
+
+
+
+ + @if(!$value->iq_image_id) +
+
+
+ @csrf + +
+
+ +
+ +
+ +
+
+
+
+ @else +

Nur ein Bild möglich, vor neuem Upload Bild löschen

+ @endif +
+
+ @else +

Kategorie erst anlegen

+ + + @endif + + +
+
diff --git a/resources/views/admin/user/edit.blade.php b/resources/views/admin/user/edit.blade.php new file mode 100644 index 0000000..82ab628 --- /dev/null +++ b/resources/views/admin/user/edit.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Create/Edit Contact') }} +

+ + {!! Form::open(['url' => route('admin_user_store'), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + + + {{-- @include('user.form') --}} + +
+   + + {{ __('abort') }} +
+ {!! Form::close() !!} + + +@endsection \ No newline at end of file diff --git a/resources/views/admin/user/index.blade.php b/resources/views/admin/user/index.blade.php new file mode 100644 index 0000000..123d910 --- /dev/null +++ b/resources/views/admin/user/index.blade.php @@ -0,0 +1,383 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ {{ __('User') }} +

+ +
+
+ + + + + + + + + + + + + + + + + +
#{{__('First name')}}{{__('Last name')}}{{__('E-Mail')}}{{__('Zugang')}}{{__('verified')}} (seit){{__('active')}} (seit){{__('Account')}} (bis){{__('Zahlungsarten')}}{{__('Test Modus')}}{{__('delete')}}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/auth/finish.blade.php b/resources/views/auth/finish.blade.php new file mode 100644 index 0000000..fff77f3 --- /dev/null +++ b/resources/views/auth/finish.blade.php @@ -0,0 +1,62 @@ +@extends('layouts.auth') + +@section('content') + + + +
+
+ +
+ +
+
+ +
+
+
+ gruene-seele-logo +
+
+
+ + + + + @if (session('resent')) + + @endif +
+

{{ trans('register.reg_finisch_hl') }}

+

{{ trans('register.reg_finisch_line_1') }}

+ {{ trans('register.reg_finisch_line_2') }}

+
+
+

+ {{ trans('register.sender') }} +

+ {{--
+ @csrf + . +
+ --}} + + + + +
+
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php new file mode 100644 index 0000000..78e117b --- /dev/null +++ b/resources/views/auth/login.blade.php @@ -0,0 +1,78 @@ +@extends('layouts.auth') + +@section('content') + +
+
+ +
+ +
+
+ +
+
+
+ gruene-seele-logo +
+
+
+ + +
{{ __('Login to your account') }}
+ + + +
+ @csrf +
+ + + + @if ($errors->has('email')) + + {{ $errors->first('email') }} + + @endif +
+
+ + + @if ($errors->has('password')) + + {{ $errors->first('password') }} + + @endif +
+
+ + +
+
+ + + + +
+
+
+
+@endsection diff --git a/resources/views/auth/passwords/confirm.blade.php b/resources/views/auth/passwords/confirm.blade.php new file mode 100644 index 0000000..0db11a4 --- /dev/null +++ b/resources/views/auth/passwords/confirm.blade.php @@ -0,0 +1,71 @@ +@extends('layouts.auth') + +@section('content') + + + +
+
+ +
+ +
+
+ +
+
+
+ gruene-seele-logo +
+
+
+ + +
{{ __('Confirm Password') }}
+ + + {{ __('Please confirm your password before continuing.') }} + +
+ @csrf + +
+ + + + + @error('password') + + {{ $message }} + + @enderror +
+ +
+ + + @if (Route::has('password.request')) + + {{ __('Forgot Your Password?') }} + + @endif +
+
+ + +
+
+
+
+@endsection diff --git a/resources/views/auth/passwords/email.blade.php b/resources/views/auth/passwords/email.blade.php new file mode 100644 index 0000000..eb5ce1f --- /dev/null +++ b/resources/views/auth/passwords/email.blade.php @@ -0,0 +1,66 @@ +@extends('layouts.auth') + +@section('content') + + + +
+
+ +
+ +
+
+ +
+
+
+ gruene-seele-logo +
+
+
+ + +
{{ __('Reset Password') }}
+ + + @if (session('status')) + + @endif + +
+ @csrf + + +
+ + + + @if ($errors->has('email')) + + {{ $errors->first('email') }} + + @endif +
+ +
+ + + + +
+
+
+
+@endsection diff --git a/resources/views/auth/passwords/reset.blade.php b/resources/views/auth/passwords/reset.blade.php new file mode 100644 index 0000000..2ba1f5c --- /dev/null +++ b/resources/views/auth/passwords/reset.blade.php @@ -0,0 +1,85 @@ +@extends('layouts.auth') + +@section('content') + + + +
+
+ +
+ +
+
+ +
+
+
+ gruene-seele-logo +
+
+
+ + +
{{ __('Reset Password') }}
+ + @if (session('status')) + + @csrf + + + +
+ + + + + @error('email') + + {{ $message }} + + @enderror +
+ +
+ + + + + @error('password') + + {{ $message }} + + @enderror +
+ +
+ + +
+ +
+ +
+ + +
+
+
+
+@endsection diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php new file mode 100644 index 0000000..3380507 --- /dev/null +++ b/resources/views/auth/register.blade.php @@ -0,0 +1,121 @@ +@extends('layouts.auth') + +@section('content') + + +
+
+ +
+ +
+
+ +
+
+
+ gruene-seele-logo +
+
+
+ + +
{{ __('Register') }}
+ +
+ @csrf +
+ + + {!! Form::select('salutation', [''=>'Bitte wählen', 'mr'=>'Herr', 'ms'=>'Frau'], '', ['class' => 'form-control '.($errors->has('salutation') ? 'error is-invalid' : ''), 'required'=>false]) !!} + @if ($errors->has('salutation')) + + {{ $errors->first('salutation') }} + + @endif +
+ +
+ + + @if ($errors->has('first_name')) + + {{ $errors->first('first_name') }} + + @endif +
+ +
+ + + @if ($errors->has('last_name')) + + {{ $errors->first('last_name') }} + + @endif +
+ + +
+ + + @if ($errors->has('email')) + + {{ $errors->first('email') }} + + @endif +
+
+ + + + @if ($errors->has('password')) + + {{ $errors->first('password') }} + + @endif +
+
+ + + + @if ($errors->has('password-confirm')) + + {{ $errors->first('password-confirm') }} + + @endif +
+ +
+ + +
+ @if ($errors->has('accepted_data_protection')) + + @endif + +
* {{trans('register.required_fields')}}
+ +
+ + + +
+
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/auth/verify.blade.php b/resources/views/auth/verify.blade.php new file mode 100644 index 0000000..85ed80e --- /dev/null +++ b/resources/views/auth/verify.blade.php @@ -0,0 +1,54 @@ +@extends('layouts.auth') + +@section('content') + + + +
+
+ +
+ +
+
+ +
+
+
+ gruene-seele-logo +
+
+
+ + +
{{ __('Verify Your Email Address') }}<
+ + + @if (session('resent')) + + @endif + + {{ __('Before proceeding, please check your email for a verification link.') }} + {{ __('If you did not receive the email') }}, +
+ @csrf + . +
+ + + + + + +
+
+
+
+@endsection \ No newline at end of file diff --git a/resources/views/emails/_auth.blade.php b/resources/views/emails/_auth.blade.php new file mode 100644 index 0000000..dabb23d --- /dev/null +++ b/resources/views/emails/_auth.blade.php @@ -0,0 +1,259 @@ + + + + + + mivita.care + + + + + + + + + + + + +
+ @if(isset($copy1line)) + {{ strip_tags($copy1line) }} + @endif + @if(isset($content)) + {{ strip_tags($content) }} + @endif +
+ + + + + +
+
+
+ + + + +
+ + + + + +
+
+ + + + + + + + + +
+ + mivita.care + + +

+
+
+ + + + + + @if(isset($copy1line)) + + + + @endif + @if(isset($content)) + + + + @endif + + + + + + +
+

+ {{ $salutation }} +
+
+ + + + +
+
+ {!! nl2br($copy1line) !!} +
+
+
+
+
+ + + + +
+ {!! nl2br($content) !!} +
+
+
+ + + + + + +
+ + + + + + +
+

+ {{ $button }} +

+
+
+
+
+ + + + + + + +
+
+ {{ $copy2line }}
+ {{ $url }} +

+ {{ $copy3line }} +

+ {{ $greetings }}
{{ $sender }} +
+

+
+ +
+ + + + + + + + + +
+

+ {{__('email.footer_copy1')}} +

+
+ www.mivita.care +
+
+

{{__('email.footer_copy2')}}

+ Datenschutzerklärung
+

{{__('email.footer_copy3')}}

+
+
+
+
+
+
+ + diff --git a/resources/views/emails/auth.blade.php b/resources/views/emails/auth.blade.php new file mode 100644 index 0000000..917c8d3 --- /dev/null +++ b/resources/views/emails/auth.blade.php @@ -0,0 +1,227 @@ + + + + + + gruene-seele.bio + + + + + +
+ @if(isset($copy1line)) + {{ strip_tags($copy1line) }} + @endif + @if(isset($content)) + {{ strip_tags($content) }} + @endif +
+ + + + + +
+
+
+ + + + +
+ + + + +
+
+ + + + + + + + + +
+ + gruene-seele.bio + + +

+
+
+ + + + + + @if(isset($copy1line)) + + + + @endif + @if(isset($content)) + + + + @endif + + + + + + +
+

+ {{ $salutation }} +
+
+ + + + +
+
+ {!! nl2br($copy1line) !!} +
+
+
+
+
+ + + + +
+ {!! nl2br($content) !!} +
+
+
+ + + + + + +
+ + + + + + +
+

+ {{ $button }} +

+
+
+
+
+ + + + + + + +
+
+ {{ $copy2line }}
+ {{ $url }} +

+ {{ $copy3line }} +

+ {{ $greetings }}
{{ $sender }} +
+

+
+ +
+ + + + + + + + + +
+

+ {{__('email.footer_copy1')}} +

+
+ www.gruene-seele.bio +
+
+

{{__('email.footer_copy2')}}

+ Datenschutzerklärung
+

{{__('email.footer_copy3')}}

+
+
+
+
+
+
+ + diff --git a/resources/views/emails/checkout.blade.php b/resources/views/emails/checkout.blade.php new file mode 100644 index 0000000..242d2de --- /dev/null +++ b/resources/views/emails/checkout.blade.php @@ -0,0 +1,583 @@ + + + + + + mivita.care + + + + + +
+ {{ $copy1line }} +
+ + + + + +
+
+ + + + +
+ + + + +
+
+ + + + + + + + + +
+
+ + gruene-seele.bio + +
+ +

+
+
+ + + @if($mode === 'test' || $mode === 'dev') + + + + @endif + + + + + + + + + + + + + + + + + + @if($shopping_order->shopping_user->is_from !== 'extern') + + @if($send_link) + + + + + + + @endif + + + + + + + + + + + + + + + + + + + + + + + + + + + @else + @if($shopping_order->wp_invoice_path) + + + + @endif + @if($shopping_order->wp_notice['wp_advertising']) + + + + @endif + @if($shopping_order->wp_notice['wp_incentives']) + + + + @endif + + + + + + + + + + + + + + + + + + @endif + +
+ ##### TEST MODE ##### TEST MODE ##### TEST MODE ##### +
+ {{ $salutation }} +
+ {!! nl2br($copy1line) !!} +
+

+ @if($shopping_order->shopping_user->is_from === 'user_order') + @if($shopping_order->shopping_user->is_for === 'me') + {{__('email.checkout_mail_order_for_me')}} + @else + {{__('email.checkout_mail_order_for_ot')}} + @endif + @endif + @if($shopping_order->shopping_user->is_from === 'wizard') + {{__('email.checkout_mail_order_for_wizard')}} + @endif + @if($shopping_order->shopping_user->is_from === 'membership') + {{__('email.checkout_mail_order_for_membership')}} + @endif + @if($shopping_order->shopping_user->is_from === 'shopping') + {{__('email.checkout_mail_hl1')}} + @endif + @if($shopping_order->shopping_user->is_from === 'homeparty') + {{ __('navigation.my_homeparty') }} / {{ $shopping_order->homeparty->name }} - {{ $shopping_order->homeparty->date }}
+ {{__('email.checkout_mail_hl1')}} + @endif + @if($shopping_order->shopping_user->is_from === 'extern') + {{__('email.checkout_mail_order_for_extern')}} + @endif +
+ + + + + + + + @foreach($shopping_order->shopping_order_items as $shopping_order_item) + + + + + + + @endforeach + + + + + + + + + + + + + + + + + + + + + + + +
Produkt + @if($shopping_order->shopping_user->is_from === 'user_order') + Netto-Preis + @else + Preis + @endif + AnzahlSumme
+ {{ $shopping_order_item->product->name }} + + @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order_item->getFormattedPriceNet() }} € + @else + {{ $shopping_order_item->getFormattedPrice() }} € + @endif + + {{ $shopping_order_item->qty }} + + @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order_item->getFormattedTotalPriceNet() }} € + @else + {{ $shopping_order_item->getFormattedTotalPrice() }} € + @endif +
+
+
+ {{__('email.checkout_mail_shipping')}} + + @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order->getFormattedShippingNet() }} € + @else + {{ $shopping_order->getFormattedShipping() }} € + @endif +
+
+
+ {{__('email.checkout_mail_subtotal_ws')}} + + {{ $shopping_order->getFormattedSubtotalWs() }} € +
+ {{__('email.checkout_mail_tax')}} + + {{ $shopping_order->getFormattedTax() }} € +
+ {{__('email.checkout_mail_total')}} + + {{ $shopping_order->getFormattedTotalShipping() }} € +
+ {{__('email.checkout_mail_tax_info')}} +
+ +
+
+
+
+ + + + + + +
+ + + + + + + + + +
+

+ {{ $button }} +

+
+ {{ $url }} +
+
+
+
+
+
+ {{__('email.checkout_mail_pay_info')}} +
+ + + + +
+ {{__('email.checkout_mail_pay_success')}}
+ {{__('email.checkout_mail_pay_with')}} {{$shopping_payment->getPaymentType()}}
+ {{__('email.checkout_mail_pay_ref')}} {{$shopping_payment->reference}}
+ {{__('email.checkout_mail_your_mail')}} {{ $shopping_order->shopping_user->billing_email }}
+
+
+
+
+ {{__('email.checkout_mail_invoice_addess')}} +
+ + + + + +
+ @if($shopping_order->shopping_user->billing_company) + {{ $shopping_order->shopping_user->billing_company }}
+ @endif + + {{ $shopping_order->shopping_user->billing_firstname }} + {{ $shopping_order->shopping_user->billing_lastname }}
+
+ + {{ $shopping_order->shopping_user->billing_address }}
+ @if($shopping_order->shopping_user->billing_address_2) + {{ $shopping_order->shopping_user->billing_address_2 }}
+ @endif + + {{ $shopping_order->shopping_user->billing_zipcode }} + {{ $shopping_order->shopping_user->billing_city }}
+ {{ $shopping_order->shopping_user->billing_country->getLocated() }}
+ + @if($shopping_order->shopping_user->billing_phone) +

{{ $shopping_order->shopping_user->billing_phone }}
+ @endif +
+
+ @if($shopping_order->shopping_user->is_from === 'user_order') + @if($shopping_order->shopping_user->is_for === 'me') + {{__('email.checkout_mail_deliver_addess')}} + @else + {{__('email.checkout_mail_deliver_customer')}} + @endif + @else + {{__('email.checkout_mail_deliver_addess')}} + @endif +
+ + + + + +
+ @if($shopping_order->shopping_user->same_as_billing) + {{__('email.checkout_mail_same_address')}} + @else + + @if($shopping_order->shopping_user->shipping_company) + {{ $shopping_order->shopping_user->shipping_company }}
+ @endif + + {{ $shopping_order->shopping_user->shipping_firstname }} + {{ $shopping_order->shopping_user->shipping_lastname }}
+
+ + {{ $shopping_order->shopping_user->shipping_address }}
+ @if($shopping_order->shopping_user->shipping_address_2) + {{ $shopping_order->shopping_user->shipping_address_2 }}
+ @endif + + {{ $shopping_order->shopping_user->shipping_zipcode }} + {{ $shopping_order->shopping_user->shipping_city }}
+ + {{ $shopping_order->shopping_user->shipping_country->getLocated() }}
+ + @if($shopping_order->shopping_user->shipping_phone) +

{{ $shopping_order->shopping_user->shipping_phone }}
+ @endif + @endif +
+
+
+
+ + + + + + + +
+ {{ $copy3line }} +

+ {{ $greetings }}
{{ $sender }} +
+

+
+ Rechnung: {{$shopping_order->wp_invoice_path}}
+
+
+ Werbemittel: {!! $shopping_order->wp_notice['wp_advertising'] !!}
+
+
+ Incentives: {!! $shopping_order->wp_notice['wp_incentives'] !!}
+
+
+ {{__('email.checkout_mail_deliver_customer')}} +
+ + + + +
+ @if($shopping_order->shopping_user->same_as_billing) + @if($shopping_order->shopping_user->billing_company) + {{ $shopping_order->shopping_user->billing_company }}
+ @endif + + {{ $shopping_order->shopping_user->billing_firstname }} + {{ $shopping_order->shopping_user->billing_lastname }}
+
+ + {{ $shopping_order->shopping_user->billing_address }}
+ @if($shopping_order->shopping_user->billing_address_2) + {{ $shopping_order->shopping_user->billing_address_2 }}
+ @endif + + {{ $shopping_order->shopping_user->billing_zipcode }} + {{ $shopping_order->shopping_user->billing_city }}
+ {{ $shopping_order->shopping_user->billing_country->getLocated() }}
+ + @if($shopping_order->shopping_user->billing_phone) +

{{ $shopping_order->shopping_user->billing_phone }}
+ @endif + @else + @if($shopping_order->shopping_user->shipping_company) + {{ $shopping_order->shopping_user->shipping_company }}
+ @endif + + {{ $shopping_order->shopping_user->shipping_firstname }} + {{ $shopping_order->shopping_user->shipping_lastname }}
+
+ + {{ $shopping_order->shopping_user->shipping_address }}
+ @if($shopping_order->shopping_user->shipping_address_2) + {{ $shopping_order->shopping_user->shipping_address_2 }}
+ @endif + + {{ $shopping_order->shopping_user->shipping_zipcode }} + {{ $shopping_order->shopping_user->shipping_city }}
+ + {{ $shopping_order->shopping_user->shipping_country->getLocated() }}
+ + @if($shopping_order->shopping_user->shipping_phone) +

{{ $shopping_order->shopping_user->shipping_phone }}
+ @endif + @endif +
+
+
+
+ {{__('email.checkout_copy3line_extern')}} +
+ + + + + + + +
+ + @if($shopping_order->member) + Berater: {{ \App\Services\HTMLHelper::getSalutationLang($shopping_order->member->account->m_salutation) }} {{ $shopping_order->member->account->m_first_name }} {{ $shopping_order->member->account->m_last_name }} +
+ Account ID: {{ $shopping_order->member->account->m_account }}
+ @if($shopping_order->member->user_level) + Karriere-Level: {{ $shopping_order->member->user_level->name }}
+ @endif + @endif + +

+
+
+ + + + + + + +
+

+ {{__('email.footer_copy1')}} +

+
+ www.gruene-seele.bio +
+
+

{{__('email.footer_copy2')}}

+ Datenschutzerklärung
+

{{__('email.footer_copy3')}}

+
+
+
+
+
+
+ + + diff --git a/resources/views/emails/checkout_status.blade.php b/resources/views/emails/checkout_status.blade.php new file mode 100644 index 0000000..4bd1c7b --- /dev/null +++ b/resources/views/emails/checkout_status.blade.php @@ -0,0 +1,447 @@ + + + + + + mivita.care + + + + + +
+ {{ $copy1line }} +
+ + + + + +
+
+ + + + +
+ + + + +
+
+ + + + + + + + + +
+
+ + gruene-seele.bio + +
+ +

+
+
+ + + @if($mode === 'test') + + + + @endif + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ##### TEST MODE ##### TEST MODE ##### TEST MODE ##### +
+ {{ $salutation }} +
+ {!! nl2br($copy1line) !!} +
+ {{__('email.checkout_mail_status_info')}} +
+ + + + +
+ @if($txaction === 'failed') + {{__('email.checkout_mail_pay_error')}}
+ @elseif($txaction === 'open') + + @if($shopping_payment->clearingtype === "vor") + {{__('email.checkout_mail_pay_pre')}}
+ {{__('email.checkout_mail_pay_pre_c1')}} {{ number_format( (float) ($shopping_payment->amount/100), 2, ",", ".") }} {{__('email.checkout_mail_pay_pre_c2')}}
+

+ @php($pay_trans = $shopping_payment->payment_transactions->where('request', 'authorization')->last()) + {{__('email.checkout_mail_bank_holder')}} {{ $pay_trans->transmitted_data['reference'] }}
+ {{__('email.checkout_mail_bank_iban')}} {{ $pay_trans->transmitted_data['reference'] }}
+ {{__('email.checkout_mail_bank_bic')}} {{ $pay_trans->transmitted_data['reference'] }}
+ {{__('email.checkout_mail_bank_name')}} {{ $pay_trans->transmitted_data['reference'] }}
+ {{__('email.checkout_mail_bank_total')}} {{ number_format( (float) ($pay_trans->shopping_payment->amount/100), 2, ",", ".") }} EUR
+ {{__('email.checkout_mail_bank_code')}} {{ $pay_trans->transmitted_data['reference'] }} +

+
+ @else + {{__('email.checkout_mail_pay_invoice_open')}}
+ @endif + @elseif($txaction === 'xxx') + {{__('email.checkout_mail_pay_approved')}}
+ + @else + {{__('email.checkout_mail_system_status')}} {{$txaction}}
+ + @endif + {{__('email.checkout_mail_pay_with')}} {{$shopping_payment->getPaymentType()}}
+ {{__('email.checkout_mail_pay_ref')}} {{$shopping_payment->reference}}
+ {{__('email.checkout_mail_your_mail')}} {{ $shopping_order->shopping_user->billing_email }}
+
+
+

+ @if($shopping_order->shopping_user->is_from === 'user_order') + @if($shopping_order->shopping_user->is_for === 'me') + {{__('email.checkout_mail_order_for_me')}} + @else + {{__('email.checkout_mail_order_for_ot')}} + @endif + @endif + @if($shopping_order->shopping_user->is_from === 'wizard') + {{__('email.checkout_mail_order_for_wizard')}} + @endif + @if($shopping_order->shopping_user->is_from === 'membership') + {{__('email.checkout_mail_order_for_membership')}} + @endif + @if($shopping_order->shopping_user->is_from === 'shopping') + {{__('email.checkout_mail_hl1')}} + @endif + @if($shopping_order->shopping_user->is_from === 'homeparty') + {{ __('navigation.my_homeparty') }} / {{ $shopping_order->homeparty->name }} - {{ $shopping_order->homeparty->date }}
+ {{__('email.checkout_mail_hl1')}} + @endif +
+ + + + + + + + @foreach($shopping_order->shopping_order_items as $shopping_order_item) + + + + + + + @endforeach + + + + + + + + + + + + + + + + + + + + + + + +
Produkt + @if($shopping_order->shopping_user->is_from === 'user_order') + Netto-Preis + @else + Preis + @endif + AnzahlSumme
+ {{ $shopping_order_item->product->name }} + + @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order_item->getFormattedPriceNet() }} € + @else + {{ $shopping_order_item->getFormattedPrice() }} € + @endif + + {{ $shopping_order_item->qty }} + + @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order_item->getFormattedTotalPriceNet() }} € + @else + {{ $shopping_order_item->getFormattedTotalPrice() }} € + @endif +
+
+
+ {{__('email.checkout_mail_shipping')}} + + @if($shopping_order->shopping_user->is_from === 'user_order') + {{ $shopping_order->getFormattedShippingNet() }} € + @else + {{ $shopping_order->getFormattedShipping() }} € + @endif +
+
+
+ {{__('email.checkout_mail_subtotal_ws')}} + + {{ $shopping_order->getFormattedSubtotalWs() }} € +
+ {{__('email.checkout_mail_tax')}} + + {{ $shopping_order->getFormattedTax() }} € +
+ {{__('email.checkout_mail_total')}} + + {{ $shopping_order->getFormattedTotalShipping() }} € +
+ {{__('email.checkout_mail_tax_info')}} +
+
+
+
+ {{__('email.checkout_mail_invoice_addess')}} +
+ + + + +
+ @if($shopping_order->shopping_user->billing_company) + {{ $shopping_order->shopping_user->billing_company }}
+ @endif + + {{ $shopping_order->shopping_user->billing_firstname }} + {{ $shopping_order->shopping_user->billing_lastname }}
+
+ + {{ $shopping_order->shopping_user->billing_address }}
+ @if($shopping_order->shopping_user->billing_address_2) + {{ $shopping_order->shopping_user->billing_address_2 }}
+ @endif + + {{ $shopping_order->shopping_user->billing_zipcode }} + {{ $shopping_order->shopping_user->billing_city }}
+ {{ $shopping_order->shopping_user->billing_country->getLocated() }}
+ + @if($shopping_order->shopping_user->billing_phone) +

{{ $shopping_order->shopping_user->billing_phone }}
+ @endif +
+
+
+
+ @if($shopping_order->shopping_user->is_from === 'user_order') + @if($shopping_order->shopping_user->is_for === 'me') + {{__('email.checkout_mail_deliver_addess')}} + @else + {{__('email.checkout_mail_deliver_customer')}} + @endif + @else + {{__('email.checkout_mail_deliver_addess')}} + @endif +
+ + + + + +
+ @if($shopping_order->shopping_user->same_as_billing) + {{__('email.checkout_mail_same_address')}} + @else + @if($shopping_order->shopping_user->shipping_company) + {{ $shopping_order->shopping_user->shipping_company }}
+ @endif + + {{ $shopping_order->shopping_user->shipping_firstname }} + {{ $shopping_order->shopping_user->shipping_lastname }}
+
+ + {{ $shopping_order->shopping_user->shipping_address }}
+ @if($shopping_order->shopping_user->shipping_address_2) + {{ $shopping_order->shopping_user->shipping_address_2 }}
+ @endif + + {{ $shopping_order->shopping_user->shipping_zipcode }} + {{ $shopping_order->shopping_user->shipping_city }}
+ + {{ $shopping_order->shopping_user->shipping_country->getLocated() }}
+ + @if($shopping_order->shopping_user->shipping_phone) +

{{ $shopping_order->shopping_user->shipping_phone }}
+ @endif + @endif +
+
+
+
+ + + + + + + +
+ {{ $copy3line }} + +

+ {{ $greetings }}
{{ $sender }} +
+

+
+
+ + + + + + + +
+

+ {{__('email.footer_copy1')}} +

+
+ www.gruene-seele.bio +
+
+

{{__('email.footer_copy2')}}

+ Datenschutzerklärung
+

{{__('email.footer_copy3')}}

+
+
+
+
+
+
+ + + diff --git a/resources/views/emails/contact.blade.php b/resources/views/emails/contact.blade.php new file mode 100644 index 0000000..e89c9b7 --- /dev/null +++ b/resources/views/emails/contact.blade.php @@ -0,0 +1,206 @@ + + + + + + gruene-seele.bio + + + + + + +
+ {{ $copy1line }} +
+ + + + + +
+
+
+ + + + +
+ + + + + +
+
+ + + + + + + + + +
+ + gruene-seele.bio + + +

+
+
+ + + + + + + + + + + + + + + + +
+

+ {{ $salutation }} +
+
+ + + + +
+
+ {{ $copy1line }} +
+
+
+
+
+
+ + + @foreach($data as $key=>$value) + + + + + @endforeach + +
+ {{__('email.'.$key)}}:   + + {!! nl2br($value) !!} +
+
+
+
+ + + + + + + +
+

+ {{ $copy3line }} +

+ {{ $greetings }}
{{ $sender }} +
+

+
+ +
+
+ + + + + + + +
+

+ {{__('email.footer_copy1')}} +

+
+ www.gruene-seele.bio +
+
+

{{__('email.footer_copy2')}}

+ Datenschutzerklärung
+

{{__('email.footer_copy3')}}

+
+
+
+
+
+
+
+ + diff --git a/resources/views/emails/custom.blade.php b/resources/views/emails/custom.blade.php new file mode 100644 index 0000000..51f5295 --- /dev/null +++ b/resources/views/emails/custom.blade.php @@ -0,0 +1,240 @@ + + + + + + gruene-seele.bio + + + + + +
+ {{ strip_tags($content) }} +
+ + + + + +
+
+ + + + +
+ + + + +
+
+ + + + + + + + + +
+
+ + gruene-seele.bio + +
+ +

+
+
+ + + + + + + + + + + + + + + @if(isset($content_last) && $content_last != "") + + + + @endif + + + + +
+
+ {{ $title }} +
+
+ + + + +
+ {!! nl2br($content) !!} +
+
+
+ + + + + + +
+ + + + + + +
+

+ {{ $button }} +

+
+
+
+
+ + + + + +
+ {{ $copy2line }}
+ {{ $url }} +
+
+ +
+ + + + +
+ {!! nl2br($content_last) !!} +
+
+
+ + + + + + + + +
+ {{ $copy3line }} +
+ {{ $greetings }}

{{ $sender }} +

+
+ +
+
+ + + + + + + +
+

+ {{__('email.footer_copy1')}} +

+
+ www.gruene-seele.bio +
+
+

{{__('email.footer_copy2')}}

+ Datenschutzerklärung
+

{{__('email.footer_copy3')}}

+
+
+
+
+
+
+ + + diff --git a/resources/views/emails/info.blade.php b/resources/views/emails/info.blade.php new file mode 100644 index 0000000..68b45af --- /dev/null +++ b/resources/views/emails/info.blade.php @@ -0,0 +1,199 @@ + + + + + + gruene-seele.bio + + + + + +
+ {{ $copy1line }} +
+ + + + + +
+
+ + + + +
+ + + + +
+
+ + + + + + + + + +
+
+ + gruene-seele.bio + +
+ +

+
+
+ + + + + + + + + + + + + + +
+ {{ $title }} +
+ {!! nl2br($copy1line) !!} +
+
+ + + + + + +
+ + + + + + + + + +
+

+ {{ $button }} +

+
+ {{ $url }} +
+
+
+
+ + + + +
+ {!! nl2br($content) !!} +
+
+
+ + + + + + + +
+

+ {{__('email.footer_copy1')}} +

+
+ www.gruene-seele.bio +
+
+

{{__('email.footer_copy2')}}

+ Datenschutzerklärung
+

{{__('email.footer_copy3')}}

+
+
+
+
+
+
+ + + diff --git a/resources/views/emails/sys.blade.php b/resources/views/emails/sys.blade.php new file mode 100644 index 0000000..d3458a3 --- /dev/null +++ b/resources/views/emails/sys.blade.php @@ -0,0 +1,164 @@ + + + + + + gruene-seele.bio + + + + + +
+ {{ $content }} +
+ + + + + +
+
+ + + + +
+ + + + +
+
+ + + + + + + + + +
+
+ + gruene-seele.bio + +
+ +

+
+
+ + + + + + + + +
+ {{ $title }} +
+ + + + +
+ {!! nl2br($content) !!} +
+
+
+ + + + + + + +
+

+ {{__('email.footer_copy1')}} +

+
+ www.gruene-seele.bio +
+
+

{{__('email.footer_copy2')}}

+ Datenschutzerklärung
+

{{__('email.footer_copy3')}}

+
+
+
+
+
+
+ + + diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php new file mode 100644 index 0000000..fc6e8d4 --- /dev/null +++ b/resources/views/layouts/app.blade.php @@ -0,0 +1,83 @@ + + + + + + + + + + {{ config('app.name', 'Laravel') }} + + + + + + + + + + + + +
+ + +
+ @yield('content') +
+
+ + diff --git a/resources/views/layouts/application.blade.php b/resources/views/layouts/application.blade.php new file mode 100644 index 0000000..4ccda37 --- /dev/null +++ b/resources/views/layouts/application.blade.php @@ -0,0 +1,203 @@ + + + + + + + + + + + {{ config('app.name') }} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@yield('styles') + + + + + + + + + + + + + + +@yield('layout-content') + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +@yield('scripts') + + + + \ No newline at end of file diff --git a/resources/views/layouts/auth.blade.php b/resources/views/layouts/auth.blade.php new file mode 100644 index 0000000..cb43486 --- /dev/null +++ b/resources/views/layouts/auth.blade.php @@ -0,0 +1,129 @@ + + + + + + {{ config('app.name') }} Login + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ +@if(Session::has('alert-error')) + +@endif + +@if(Session::has('alert-success')) + +@endif + + + +@yield('content') + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/views/layouts/includes/layout-footer.blade.php b/resources/views/layouts/includes/layout-footer.blade.php new file mode 100644 index 0000000..598e6ad --- /dev/null +++ b/resources/views/layouts/includes/layout-footer.blade.php @@ -0,0 +1,23 @@ + + + + + + + + diff --git a/resources/views/layouts/includes/layout-navbar.blade.php b/resources/views/layouts/includes/layout-navbar.blade.php new file mode 100644 index 0000000..c04eb32 --- /dev/null +++ b/resources/views/layouts/includes/layout-navbar.blade.php @@ -0,0 +1,36 @@ + diff --git a/resources/views/layouts/includes/layout-sidenav.blade.php b/resources/views/layouts/includes/layout-sidenav.blade.php new file mode 100644 index 0000000..439a001 --- /dev/null +++ b/resources/views/layouts/includes/layout-sidenav.blade.php @@ -0,0 +1,247 @@ + + + +@if(Auth::check()) + +
+ + + +
+ +@endif diff --git a/resources/views/layouts/layout-1-flex.blade.php b/resources/views/layouts/layout-1-flex.blade.php new file mode 100644 index 0000000..c401042 --- /dev/null +++ b/resources/views/layouts/layout-1-flex.blade.php @@ -0,0 +1,39 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-navbar') + + +
+ + @include('layouts.includes.layout-sidenav') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/layouts/layout-1.blade.php b/resources/views/layouts/layout-1.blade.php new file mode 100644 index 0000000..70cfaae --- /dev/null +++ b/resources/views/layouts/layout-1.blade.php @@ -0,0 +1,39 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-navbar') + + +
+ + @include('layouts.includes.layout-sidenav') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/layouts/layout-2-flex.blade.php b/resources/views/layouts/layout-2-flex.blade.php new file mode 100644 index 0000000..1683815 --- /dev/null +++ b/resources/views/layouts/layout-2-flex.blade.php @@ -0,0 +1,39 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-sidenav') + + +
+ + @include('layouts.includes.layout-navbar') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/layouts/layout-2.blade.php b/resources/views/layouts/layout-2.blade.php new file mode 100644 index 0000000..55e263b --- /dev/null +++ b/resources/views/layouts/layout-2.blade.php @@ -0,0 +1,76 @@ +@extends('layouts.application') + +@section('layout-content') + + @if(Session::has('alert-save')) + + @endif + + @if(Session::has('alert-error')) + + @endif + + @if(Session::has('alert-success')) + + @endif + + +
+
+ + + @include('layouts.includes.layout-sidenav') + + +
+ + @include('layouts.includes.layout-navbar') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/layouts/layout-blank.blade.php b/resources/views/layouts/layout-blank.blade.php new file mode 100644 index 0000000..bff0c10 --- /dev/null +++ b/resources/views/layouts/layout-blank.blade.php @@ -0,0 +1,5 @@ +@extends('layouts.application') + +@section('layout-content') + @yield('content') +@endsection diff --git a/resources/views/layouts/layout-horizontal-sidenav.blade.php b/resources/views/layouts/layout-horizontal-sidenav.blade.php new file mode 100644 index 0000000..562b706 --- /dev/null +++ b/resources/views/layouts/layout-horizontal-sidenav.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-navbar', ['hide_layout_sidenav_toggle' => true]) + + +
+ + +
+ + @include('layouts.includes.layout-sidenav', ['layout_sidenav_horizontal' => true]) + + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/layouts/layout-without-navbar-flex.blade.php b/resources/views/layouts/layout-without-navbar-flex.blade.php new file mode 100644 index 0000000..be70ea2 --- /dev/null +++ b/resources/views/layouts/layout-without-navbar-flex.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + +
+ + @include('layouts.includes.layout-sidenav') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/layouts/layout-without-navbar.blade.php b/resources/views/layouts/layout-without-navbar.blade.php new file mode 100644 index 0000000..21ae17c --- /dev/null +++ b/resources/views/layouts/layout-without-navbar.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + +
+ + @include('layouts.includes.layout-sidenav') + + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/layouts/layout-without-sidenav.blade.php b/resources/views/layouts/layout-without-sidenav.blade.php new file mode 100644 index 0000000..abcf168 --- /dev/null +++ b/resources/views/layouts/layout-without-sidenav.blade.php @@ -0,0 +1,34 @@ +@extends('layouts.application') + +@section('layout-content') + +
+
+ + + @include('layouts.includes.layout-navbar', ['hide_layout_sidenav_toggle' => true]) + + +
+ + +
+ + +
+ @yield('content') +
+ + + + @include('layouts.includes.layout-footer') +
+ + +
+ + +
+
+ +@endsection diff --git a/resources/views/legal/_agb.blade.php b/resources/views/legal/_agb.blade.php new file mode 100755 index 0000000..b432fc0 --- /dev/null +++ b/resources/views/legal/_agb.blade.php @@ -0,0 +1,38 @@ +@extends('layouts.auth') + +@section('content') + + + + +
+
+ +
+ +
+ +
+ {{__('back')}} + + +
+
+
+ mivita.care +
+
+
+ + @include('legal.agb_de') + + {{__('back')}} + +
+
+
+
+ + + +@endsection \ No newline at end of file diff --git a/resources/views/legal/_data_protected.blade.php b/resources/views/legal/_data_protected.blade.php new file mode 100755 index 0000000..cd28c62 --- /dev/null +++ b/resources/views/legal/_data_protected.blade.php @@ -0,0 +1,38 @@ +@extends('layouts.auth') + +@section('content') + + + + +
+
+ +
+ +
+ +
+ {{__('back')}} + + +
+
+
+ mivita.care +
+
+
+ + @include('legal.data_protect_de') + + {{__('back')}} + +
+
+
+
+ + + +@endsection \ No newline at end of file diff --git a/resources/views/legal/_imprint.blade.php b/resources/views/legal/_imprint.blade.php new file mode 100755 index 0000000..a3f6811 --- /dev/null +++ b/resources/views/legal/_imprint.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.auth') + +@section('content') + + + + +
+
+ +
+ +
+ +
+ {{__('back')}} + + +
+
+
+ mivita.care +
+
+
+ + @include('legal.imprint_de') + + {{__('back')}} + +
+
+
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/legal/agb.blade.php b/resources/views/legal/agb.blade.php new file mode 100755 index 0000000..c81e2c6 --- /dev/null +++ b/resources/views/legal/agb.blade.php @@ -0,0 +1,14 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + +
+
+ +
+ @include('legal.agb_de') +
+ +
+
+@endsection \ No newline at end of file diff --git a/resources/views/legal/agb_de.blade.php b/resources/views/legal/agb_de.blade.php new file mode 100755 index 0000000..f97ac36 --- /dev/null +++ b/resources/views/legal/agb_de.blade.php @@ -0,0 +1,84 @@ + + + +@if(isset($modal) && $modal == true) + +@endif diff --git a/resources/views/legal/data_protect_de.blade.php b/resources/views/legal/data_protect_de.blade.php new file mode 100644 index 0000000..22aaa41 --- /dev/null +++ b/resources/views/legal/data_protect_de.blade.php @@ -0,0 +1,228 @@ + + + +@if(isset($modal) && $modal == true) + +@endif diff --git a/resources/views/legal/data_protected.blade.php b/resources/views/legal/data_protected.blade.php new file mode 100755 index 0000000..a2c9ba2 --- /dev/null +++ b/resources/views/legal/data_protected.blade.php @@ -0,0 +1,14 @@ +@extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + +
+
+ +
+ @include('legal.data_protect_de') +
+ +
+
+@endsection diff --git a/resources/views/legal/imprint.blade.php b/resources/views/legal/imprint.blade.php new file mode 100755 index 0000000..c4c820d --- /dev/null +++ b/resources/views/legal/imprint.blade.php @@ -0,0 +1,14 @@ + @extends($user_shop ?'web.user.layouts.layout' : 'web.layouts.layout') + +@section('content') + +
+
+ +
+ @include('legal.imprint_de') +
+ +
+
+@endsection diff --git a/resources/views/legal/imprint_de.blade.php b/resources/views/legal/imprint_de.blade.php new file mode 100644 index 0000000..7faa6e5 --- /dev/null +++ b/resources/views/legal/imprint_de.blade.php @@ -0,0 +1,42 @@ + + + +@if(isset($modal) && $modal == true) + +@endif \ No newline at end of file diff --git a/resources/views/legal/shop_term_of_use.blade.php b/resources/views/legal/shop_term_of_use.blade.php new file mode 100755 index 0000000..2b6ba63 --- /dev/null +++ b/resources/views/legal/shop_term_of_use.blade.php @@ -0,0 +1,36 @@ +@extends('layouts.auth') + +@section('content') + + + + +
+
+ +
+ +
+ +
+ {{__('back')}} + + +
+
+
+ mivita.care +
+
+
+ + @include('legal.shop_term_of_use_de) + + {{__('back')}} + +
+
+
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/legal/shop_term_of_use_de.blade.php b/resources/views/legal/shop_term_of_use_de.blade.php new file mode 100644 index 0000000..36b6575 --- /dev/null +++ b/resources/views/legal/shop_term_of_use_de.blade.php @@ -0,0 +1,19 @@ + + + +@if(isset($modal) && $modal == true) + +@endif \ No newline at end of file diff --git a/resources/views/status/not_found.blade.php b/resources/views/status/not_found.blade.php new file mode 100755 index 0000000..84c3d2f --- /dev/null +++ b/resources/views/status/not_found.blade.php @@ -0,0 +1,47 @@ +@extends('layouts.auth') + +@section('content') + + +
+
+ +
+ +
+
+
+
+
+ gruene-seele-logo +
+
+
+ +
+ + + +
+ +

{{ __('The link to register is no longer active.') }}

+ {{ __('go to login') }} + {{ __('create new password') }} +
+ {{ __('back to the homepage') }} + +
+
+ +
+
+@endsection + + diff --git a/resources/views/status/status_error.blade.php b/resources/views/status/status_error.blade.php new file mode 100755 index 0000000..69c86a5 --- /dev/null +++ b/resources/views/status/status_error.blade.php @@ -0,0 +1,45 @@ +@extends('layouts.auth') + +@section('content') +
+
+ +
+ + +
+
+
+
+
+ gruene-seele-logo +
+
+
+ +
+ + + +
+ +

{{ __('Page not available') }}

+ + {{ __('back to the homepage') }} + +
+
+ + +
+
+ +@endsection + diff --git a/resources/views/status/status_register.blade.php b/resources/views/status/status_register.blade.php new file mode 100755 index 0000000..a46874c --- /dev/null +++ b/resources/views/status/status_register.blade.php @@ -0,0 +1,49 @@ +@extends('layouts.auth') + +@section('content') +
+
+ +
+ + +
+
+
+
+
+ gruene-seele-logo +
+
+
+ +
+ + + +
+ +

{{ __('Thank you for your registration!') }}

+

{{ __('We have sent you an e-mail with a link to activate your data.') }}

+ + {{ __('back to the homepage') }} + +
+
+ + +
+
+ +@endsection + + + + diff --git a/resources/views/status/status_verify.blade.php b/resources/views/status/status_verify.blade.php new file mode 100755 index 0000000..d47d346 --- /dev/null +++ b/resources/views/status/status_verify.blade.php @@ -0,0 +1,45 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ + +
+
+
+
+
+ gruene-seele-logo +
+
+
+ +
+ + + +
+ +

{{ __('You have successfully verified your account!') }}

+

{{ __('Now check your data.') }}

{{ __('to your data') }}

+
+

{{ __('Now assign a password.') }}

{{ __('create new password') }}

+
+ {{ __('back to the homepage') }} + +
+
+ + +
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/status/user_blocked.blade.php b/resources/views/status/user_blocked.blade.php new file mode 100755 index 0000000..1cd7a22 --- /dev/null +++ b/resources/views/status/user_blocked.blade.php @@ -0,0 +1,45 @@ +@extends('layouts.auth') + +@section('content') +
+
+ +
+ + +
+
+
+
+
+ gruene-seele-logo +
+
+
+ +
+ + + +
+ +

{{ __('Dein Account wurde gespeert') }}

+ + {{ __('Logout') }} + +
+
+ + +
+
+ +@endsection + diff --git a/resources/views/status/verify.blade.php b/resources/views/status/verify.blade.php new file mode 100755 index 0000000..07ee939 --- /dev/null +++ b/resources/views/status/verify.blade.php @@ -0,0 +1,26 @@ +@extends('layouts.auth') + +@section('content') +
+
+ +
+ + +
+
+ +
+ +

Your email address has been successfully confirmed.

+ + + +
+
+ + +
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/sys/admin/cronjobs.blade.php b/resources/views/sys/admin/cronjobs.blade.php new file mode 100644 index 0000000..e53936d --- /dev/null +++ b/resources/views/sys/admin/cronjobs.blade.php @@ -0,0 +1,50 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + + +

+ Cron Jobs +

+ + +
+ + {{--
+ + {!! Form::open(['url' => url()->current(), 'class' => '']) !!} +
+ + {{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>20)) }} +
+ + + {!! Form::close() !!} +
--}} + + @if(count($values)>0) +
+ + @foreach($values as $name=>$link) + {{$name}} | {{$link}}

+ @endforeach +
+ @endif +
+ +@endsection + diff --git a/resources/views/sys/admin/customers.blade.php b/resources/views/sys/admin/customers.blade.php new file mode 100644 index 0000000..6cacdc3 --- /dev/null +++ b/resources/views/sys/admin/customers.blade.php @@ -0,0 +1,80 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + + +

+ Kunden +

+ + {!! Form::open(['url' => url()->current(), 'class' => '']) !!} +
+ +
+ + +
+ + {{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>1)) }} +
+ + + + + + + +
+ + @if(count($values)>0) +
+ +
+ + + + + + + + + + + + + @foreach($values as $shopping_user) + + + + + + + + + @endforeach + +
ID{{__('Mail')}}{{__('is like')}}{{__('OrderID')}}{{__('txaction')}}{{__('Action')}}
{{$shopping_user->id}}{{$shopping_user->billing_email}}{{$shopping_user->is_like}}@if($shopping_user->shopping_order){{$shopping_user->shopping_order->id}}@endif@if($shopping_user->shopping_order){{$shopping_user->shopping_order->txaction}}@endif
+ +
+
+ @endif + +
+ {!! Form::close() !!} + +@endsection + diff --git a/resources/views/sys/admin/domain-ssl.blade.php b/resources/views/sys/admin/domain-ssl.blade.php new file mode 100644 index 0000000..ae9e653 --- /dev/null +++ b/resources/views/sys/admin/domain-ssl.blade.php @@ -0,0 +1,50 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + + +

+ Content Tools: Links +

+ + +
+ +
+ + {!! Form::open(['url' => url()->current(), 'class' => '']) !!} +
+ + {{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>20)) }} +
+ + + {!! Form::close() !!} +
+ + @if(count($values)>0) +
+ + @foreach($values as $value) +
{{$value}}
+ @endforeach +
+ @endif +
+ +@endsection + diff --git a/resources/views/sys/admin/import-show.blade.php b/resources/views/sys/admin/import-show.blade.php new file mode 100644 index 0000000..43f722c --- /dev/null +++ b/resources/views/sys/admin/import-show.blade.php @@ -0,0 +1,104 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ Kontakte Import Status +

+ +
+
+
+
+
+
+
+
{{ __('eingelesene Datensätze') }}
+
{{ $import['count'] }}
+
+
+
+
+ +
+
+
+
+
+
+
+
{{ __('Kontakte importiert') }}
+
{{ count($import['imported']) }}
+
+
+
+
+
+
+
+
+
+
+
+
{{ __('ohne E-Mai Adresse') }}
+
{{ $import['not'] }}
+
+
+
+
+ +
+
+
+
+
+
+
+
{{__('Mail schon vorhanden')}}
+
{{ count($import['has_imported']) }}
+
+
+
+
+ +
+
+ + +
+
+ + + + + + + + + + + + + + + + +
{{__('Datei')}}:{{ $file }}
{{__('Import Position start')}}:{{$skip}}
{{__('Import limit')}}:{{ $limit }}
+ +
+
Vorhandene Mails
+ + @foreach($import['has_imported'] as $row) + + {{$row}}
+ + @endforeach + +
+
+ + + + +@endsection diff --git a/resources/views/sys/admin/import.blade.php b/resources/views/sys/admin/import.blade.php new file mode 100644 index 0000000..14d0e9c --- /dev/null +++ b/resources/views/sys/admin/import.blade.php @@ -0,0 +1,109 @@ +@extends('layouts.layout-2') + +@section('content') + +

+ Kontakte importieren +

+ +
+
+ Excel-Datei hochladen +
+
+ + {!! Form::open([ 'url' => route('sysadmin_import_store'), 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'realDropzone' ]) !!} +
+ +
+ {!! Form::close() !!} + +
+ +
+
+@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/sys/admin/shopping-orders.blade.php b/resources/views/sys/admin/shopping-orders.blade.php new file mode 100644 index 0000000..adcffe4 --- /dev/null +++ b/resources/views/sys/admin/shopping-orders.blade.php @@ -0,0 +1,51 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + + +

+ Content Tools: Links +

+ + +
+ +
+ + {!! Form::open(['url' => url()->current(), 'class' => '']) !!} +
+ + {{ Form::textarea('text', $text, array('class'=>'form-control', 'rows'=>1)) }} +
+ + + + {!! Form::close() !!} +
+ + @if(count($values)>0) +
+ + @foreach($values as $value) +
{{$value->billing_email}} | {{$value->orders}}
+ @endforeach +
+ @endif +
+ +@endsection + diff --git a/resources/views/sys/settings/index.blade.php b/resources/views/sys/settings/index.blade.php new file mode 100755 index 0000000..b4a95fd --- /dev/null +++ b/resources/views/sys/settings/index.blade.php @@ -0,0 +1,152 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Systemeinstellungen')}} +
+
+ + + + + + + + + + + + + + @foreach($values as $value) + + + + + + + + + + @endforeach + +
 {{__('Name')}}{{__('slug') }}{{__('Info') }}{{__('Action') }}{{__('Status')}}{{__('Aktiv')}}
+ + {{ $value->name }}{{ $value->slug }}{{ $value->message }}{{ $value->action }}{{ $value->status }}{!! get_active_badge($value->active) !!}
+
+ +
+
+ +
+ + + + + + + +@endsection diff --git a/resources/views/translation/_index.blade.php b/resources/views/translation/_index.blade.php new file mode 100644 index 0000000..2e2aee4 --- /dev/null +++ b/resources/views/translation/_index.blade.php @@ -0,0 +1,130 @@ +@extends('layouts.layout-2-2') + + +@section('content') + + +
+
+
+ +
+ +
+
+
    +
  • Choose +
  • +
  • + @foreach($files as $fl) +
  • >{{ $fl }}
  • + @endforeach + + +
+
+
+ + + @if($translations) + + + + {!! Form::open([ 'url' => route('admin_translation_update', [$file, $language, $langsource, $show]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!} + + +
+ + +
+
+ +
+
+ +
+
+

+ +
+ + + + + + + + + + + + + @foreach($translations as $key => $value) + @include('components.translation_row', [ + 'key' => $key, + 'value' => $value, + 'language'=> $language, + 'parent' => null, + 'prefix' => $prefix, + 'langsource' => $langsource, + 'show' => $show, + ]) + @endforeach + +
KeySource + + Translation + + + + +
+ +
+
+ + +
+
+ +
+
+
+ {!! Form::close() !!} + @endif + + +
+ +
+
+
+ + +@endsection diff --git a/resources/views/translation/eloquent_index.blade.php b/resources/views/translation/eloquent_index.blade.php new file mode 100644 index 0000000..566fde7 --- /dev/null +++ b/resources/views/translation/eloquent_index.blade.php @@ -0,0 +1,181 @@ +@extends('layouts.app-main') + + +@section('content') + + + +
+
+
+ +
+ +
+
+
    + + Choose + + */?> +
  • + @foreach($files as $k => $fl) +
  • >{{ $fl }}
  • + @endforeach + + +
+
+
+ + + @if($entries) + +
+ +
+
+ + + + + + + + + + + + @foreach($entries as $entry) + + + + + @endforeach + +
Name
+ + {{ $entry->name ? $entry->name : $entry->title }} +
+ +
+
+
+ + + + @endif + + + @if($translations) + + {!! Form::open([ 'url' => route('admin_trans_eloquent_update', [$file, $language, $langsource, $show, $id]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!} + + +
+ + +
+
+ +
+
+ +
+
+

+ +
+ + + + + + + + + + + @foreach($fields as $field) + + + > + + + + + @endforeach + +
Source + + Translation + + + + + + + */ + ?> + +
{!! $translations->{$field} !!} + + {{ $old }} + +
+ +
+
+ + +
+
+ +
+
+
+ {!! Form::close() !!} + @endif + + +
+ +
+
+
+ + +@endsection diff --git a/resources/views/translation/index.blade.php b/resources/views/translation/index.blade.php new file mode 100644 index 0000000..6307a3f --- /dev/null +++ b/resources/views/translation/index.blade.php @@ -0,0 +1,127 @@ +@extends('layouts.layout-2') +@section('content') + + +
+ + + +
+
+ +
+ + @if($translations) + + {!! Form::open([ 'url' => route('admin_translate_all_update', [$language, $from]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!} + + +
+ + +
+
+ +
+
+ +
+
+ +
+ + +
+
+

+ +
+ + + + + + + + + + + + + @foreach($translations['keys'] as $key => $value) + + > + + + + @endforeach + +
SourceInhalt {{ $language }} + + + +
{{ $text }} + +
+ +
+
+ + +
+ +
+
+ {!! Form::close() !!} + @endif + + +
+ +
+
+
+ + +@endsection diff --git a/resources/views/translation/index_file.blade.php b/resources/views/translation/index_file.blade.php new file mode 100644 index 0000000..b8fb0b9 --- /dev/null +++ b/resources/views/translation/index_file.blade.php @@ -0,0 +1,131 @@ +@extends('layouts.layout-2') +@section('content') + + + + + +
+ +
+ +
+ @foreach($files as $fl) + + + + +
+ {{ $fl }} +
+
+ + + + @endforeach +
+ +
+ +
+
+ +
+ + + @if($translations) + + {!! Form::open([ 'url' => route('admin_translate_file_update', [$file, $language, $langsource, $show]), 'method' => 'post', 'class' => 'form-horizontal' ]) !!} + + +
+ + +
+
+ +
+
+ +
+
+ +
+ + +
+
+

+ +
+ + + + + + @foreach($translations as $key => $value) + @include('translation.translation_row', [ + 'key' => $key, + 'value' => $value, + 'language'=> $language, + 'parent' => null, + 'prefix' => $prefix, + 'langsource' => $langsource, + 'show' => $show, + ]) + @endforeach + +
+ +
+
+ + +
+ +
+
+ {!! Form::close() !!} + @endif + + +
+ +
+
+
+ + + + + + +@endsection diff --git a/resources/views/translation/translation_row.blade.php b/resources/views/translation/translation_row.blade.php new file mode 100644 index 0000000..462ddab --- /dev/null +++ b/resources/views/translation/translation_row.blade.php @@ -0,0 +1,47 @@ +@if(is_array($value)) + + +

{{ $key }}

+ + + + @foreach($value as $subKey => $subValue) + @include('translation.translation_row', [ + 'language' => $language, + 'key' => $subKey, + 'value' => $subValue, + 'parent' => isset($parent) && $parent ? "{$parent}[$key]" : $key, + 'prefix' => "{$prefix}.{$key}", + 'langsource' => $langsource, + 'show' => $show, + + ]) + @endforeach +@else + + + > + {{ $key }} + + + + + + + +@endif diff --git a/resources/views/user/_user_form.blade.php b/resources/views/user/_user_form.blade.php new file mode 100644 index 0000000..1e2a0b0 --- /dev/null +++ b/resources/views/user/_user_form.blade.php @@ -0,0 +1,468 @@ +
+
+ {{ __('Rechnungsdaten') }} + * {{trans('register.required_fields')}} +
+ +
+ +
+
+ + {{ Form::text('company', $user->account->company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'company', 'tabindex' => 1)) }} +
+
+
+ +
+ + + @if ($errors->has('salutation')) + + {{ $errors->first('salutation') }} + + @endif +
+ +
+ + {{ Form::text('first_name', $user->account->first_name, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'first_name', 'required'=>true, 'tabindex' => 4)) }} + @if ($errors->has('first_name')) + + {{ $errors->first('first_name') }} + + @endif + +
+
+ + {{ Form::text('last_name', $user->account->last_name, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'last_name', 'required'=>true, 'tabindex' => 5)) }} + @if ($errors->has('last_name')) + + {{ $errors->first('last_name') }} + + @endif + +
+
+
+ + {{ Form::text('address', $user->account->address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'address', 'tabindex' => 6)) }} + @if ($errors->has('address')) + + {{ $errors->first('address') }} + + @endif +
+
+
+ + {{ Form::text('address_2', $user->account->address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'address_2', 'tabindex' => 6)) }} +
+
+ + {{ Form::text('birthday', $user->account->birthday, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'required'=>true, 'class'=>'form-control datepicker-birthday')) }} +
+
+
+
+ + {{ Form::text('zipcode', $user->account->zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'zipcode', 'tabindex' => 7)) }} + @if ($errors->has('zipcode')) + + {{ $errors->first('zipcode') }} + + @endif + +
+
+ + {{ Form::text('city', $user->account->city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'city', 'tabindex' => 8)) }} + @if ($errors->has('city')) + + {{ $errors->first('city') }} + + @endif +
+
+ + + @if ($errors->has('country_id')) + + {{ $errors->first('country_id') }} + + @endif +
+
+ +
+
+ + +
+
+ + {{ Form::text('phone', $user->account->phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'phone', 'tabindex' => 11)) }} +
+
+
+
+ + +
+
+ + {{ Form::text('mobil', $user->account->mobil, array('placeholder'=>__('Mobile Phone'), 'class'=>'form-control', 'id'=>'mobil', 'tabindex' => 13)) }} +
+
+ @if($errors->has('phone') || $errors->has('mobil')) +
Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*
+ @else +
Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*
+ @endif +
+ +
+ @if(!isset($step)) +
+ + @if($user->email) +
+
+ + {{ Form::text('email', $user->email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'email', 'readonly'=>true, 'tabindex' => 14)) }} +
+
+ + {{ Form::text('email-confirm', $user->email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'email-confirm', 'readonly'=>true, 'tabindex' => 15)) }} +
+
+ @if(isset($can_change_mail)) + @if(count($user->user_update_email) > 0) +

{{ $user->user_update_email->first()->email }} {{__('waiting for activation since')}} | {{ $user->user_update_email->first()->created_at->format('d.m.Y H:i') }}


+ @endif + {{ __('Contact') }} {{__('Change E-Mail')}} + @else + {{__('Change E-Mail')}} + @endif + @else +
+
+ + {{ Form::text('email', $user->email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'email', 'tabindex' => 14)) }} +
+
+ + {{ Form::text('email-confirm', $user->email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'email-confirm', 'tabindex' => 15)) }} +
+
+ + @endif + @endif +
+
+ +
+
+
+
+ + +

Wähle Kleinunternehmer, wenn Du nicht mehr als 22.000 EUR Umsatz pro Jahr mit Deinem Gewerbe erwirtschaftest.

+
+
+ + {{ Form::text('tax_number', $user->account->tax_number, array('placeholder'=>__('Steuernummer'), 'class'=>'form-control', 'id'=>'tax_number', $user->account->getCountryAttrAs('tax_number','required'))) }} +
+
+ + {{ Form::text('tax_identification_number', $user->account-> tax_identification_number, array('placeholder'=>__('USt-ID Nummer'), 'class'=>'form-control', 'id'=>'tax_identification_number', $user->account->getCountryAttrAs('tax_id_number','required'))) }} +
+ +
+ +
+
+
+ +
+
+
+ {{ __('Versand Adresse') }} +
+
+ +
+
+ + {{ Form::text('shipping_company', $user->account->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'shipping_company', 'tabindex' => 16)) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+ +
+ + {{ Form::text('shipping_firstname', $user->account->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_firstname', 'tabindex' => 18)) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif + +
+
+ + {{ Form::text('shipping_lastname', $user->account->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_lastname', 'tabindex' => 19)) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif + +
+
+
+ + {{ Form::text('shipping_address', $user->account->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_address', 'tabindex' => 20)) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+ + {{ Form::text('shipping_address_2', $user->account->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'shipping_address_2', 'tabindex' => 21)) }} + @if ($errors->has('shipping_address_2')) + + {{ $errors->first('shipping_address_2') }} + + @endif +
+
+
+ + {{ Form::text('shipping_zipcode', $user->account->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_zipcode', 'tabindex' => 22)) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif + +
+
+ + {{ Form::text('shipping_city', $user->account->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_city', 'tabindex' => 23)) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+ + + @if ($errors->has('shipping_country_id')) + + {{ $errors->first('shipping_country_id') }} + + @endif +
+
+
+
+ + +
+
+ + {{ Form::text('shipping_phone', $user->account->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone', 'tabindex' => 26)) }} +
+
+ +
+
+ +{{--
+
+ {{ __('weiteres') }} +
+
+
+
+ + {{ Form::text('website', $user->account->website, array('placeholder'=>__('Webseite'), 'class'=>'form-control', 'id'=>'website')) }} + +
+
+ + {{ Form::text('instagram', $user->account->instagram, array('placeholder'=>__('Instagram'), 'class'=>'form-control', 'id'=>'instagram')) }} + +
+
+
+
+ + {{ Form::text('facebook', $user->account->facebook, array('placeholder'=>__('Facebook'), 'class'=>'form-control', 'id'=>'facebook')) }} + +
+
+ + {{ Form::text('facebook_fanpage', $user->account->facebook_fanpage, array('placeholder'=>__('Facebook Fanpage'), 'class'=>'form-control', 'id'=>'facebook_fanpage')) }} + +
+ +
+
+
--}} + + diff --git a/resources/views/user/checkout/checkout.blade.php b/resources/views/user/checkout/checkout.blade.php new file mode 100644 index 0000000..30b04c2 --- /dev/null +++ b/resources/views/user/checkout/checkout.blade.php @@ -0,0 +1,947 @@ +@extends('layouts.layout-2') + +@section('content') + {{-- + + --}} + +

+ zurück + {{ __('Checkout') }} +

+ + @if ($errors->any()) +
+
+
+ Bitte überprüfe das Formular und vervollständigen alle Angaben. +
+
+
+ @endif + + @if (\Session::has('checkout-error')) +
+
+
+ {{ \Session::get('checkout-error') }} +
+
+
+ @endif + + @if (\Session::has('errormessage')) +
+
+
+ {{ \Session::get('customermessage') }} +
+
+
+ @endif + + + {!! Form::open(['url' => route('user_checkout_store', [$identifier]), 'class' => 'row clearfix', 'id'=>'checkout_card_final']) !!} + + {!! Form::hidden('selected_country', '') !!} + {!! Form::hidden('is_for', $shopping_user->is_for) !!} + {!! Form::hidden('is_from', $shopping_user->is_from) !!} + + +
+
+ +
+

+ Rechnungsadresse +

+ +
+ @if($is_from === 'shopping') + {{--
+
+
+
+ + {!! Form::text('billing_company', $shopping_user->billing_company, ['class' => 'form-control', 'id'=>'billing_company']) !!} +
+
+
+
+
+
+ + + @if ($errors->has('billing_salutation')) + + @endif +
+
+
+
+
+
+ + {!! Form::text('billing_firstname', $shopping_user->billing_firstname, ['class' => 'form-control '.($errors->has('billing_firstname') ? 'error' : ''), 'id'=>'billing_firstname']) !!} + @if ($errors->has('billing_firstname')) + + @endif +
+
+
+
+ + {!! Form::text('billing_lastname', $shopping_user->billing_lastname, ['class' => 'form-control '.($errors->has('billing_lastname') ? 'error' : ''), 'id'=>'billing_lastname']) !!} + @if ($errors->has('billing_lastname')) + + @endif +
+
+
+ +
+
+
+ + {!! Form::text('billing_address', $shopping_user->billing_address, ['class' => 'form-control '.($errors->has('billing_address') ? 'error' : ''), 'id'=>'billing_address']) !!} + @if ($errors->has('billing_address')) + + @endif +
+
+
+
+ + {!! Form::text('billing_address_2', $shopping_user->billing_address_2, ['class' => 'form-control '.($errors->has('billing_address_2') ? 'error' : ''), 'id'=>'billing_address_2']) !!} + @if ($errors->has('billing_address_2')) + + @endif +
+
+
+ +
+
+ + {!! Form::text('billing_zipcode', $shopping_user->billing_zipcode, ['class' => 'form-control '.($errors->has('billing_zipcode') ? 'error' : ''), 'id'=>'billing_zipcode']) !!} + @if ($errors->has('billing_zipcode')) + + @endif +
+
+ + {!! Form::text('billing_city', $shopping_user->billing_city, ['class' => 'form-control '.($errors->has('billing_city') ? 'error' : ''), 'id'=>'billing_city']) !!} + @if ($errors->has('billing_city')) + + @endif +
+
+
+
+ + + + Bei der Änderung des Lieferlandes werden die Versandkosten neu berechnet. +
+
+ +
+
+ + {!! Form::text('billing_phone', $shopping_user->billing_phone, ['class' => 'form-control '.($errors->has('billing_phone') ? 'error' : ''), 'id'=>'billing_phone']) !!} + @if ($errors->has('billing_phone')) + + @endif +
+
+
+
+ + {!! Form::email('billing_email', $shopping_user->billing_email, ['class' => 'form-control '.($errors->has('billing_email') ? 'error' : ''), 'id'=>'billing_email']) !!} + @if ($errors->has('billing_email')) + + @endif +
+
+
+ --}} + @else +
+ {!! Form::hidden('billing_company', $shopping_user->billing_company) !!} + {!! Form::hidden('billing_salutation', $shopping_user->billing_salutation) !!} + {!! Form::hidden('billing_firstname', $shopping_user->billing_firstname) !!} + {!! Form::hidden('billing_lastname', $shopping_user->billing_lastname) !!} + {!! Form::hidden('billing_address', $shopping_user->billing_address) !!} + {!! Form::hidden('billing_address_2', $shopping_user->billing_address_2) !!} + {!! Form::hidden('billing_zipcode', $shopping_user->billing_zipcode) !!} + {!! Form::hidden('billing_city', $shopping_user->billing_city) !!} + {!! Form::hidden('billing_phone', $shopping_user->billing_phone) !!} + {!! Form::hidden('billing_email', $shopping_user->billing_email) !!} + {!! Form::hidden('billing_state', $shopping_user->billing_state) !!} + {!! Form::hidden('billing_country_id', \App\Services\Shop::getShippingCountryCountryId($shopping_user->billing_state)) !!} +
+ @if($shopping_user->billing_company) +
+
Firma
+ {{ $shopping_user->billing_company }} +
+ @endif + +
+
Anrede
+ {{ \App\Services\HTMLHelper::getSalutationLang($shopping_user->billing_salutation) }} +
+
+
Vorname
+ {{ $shopping_user->billing_firstname }} +
+
+
Nachname
+ {{ $shopping_user->billing_lastname }} +
+
+
+
+
Straße
+ {{ $shopping_user->billing_address }} +
+
+
Zusatz
+ {{ $shopping_user->billing_address_2 }} +
+
+
PLZ
+ {{ $shopping_user->billing_zipcode }} +
+
+
Stadt
+ {{ $shopping_user->billing_city }} +
+
+
E-Mail
+ {{ $shopping_user->billing_email }} +
+
+
Telefon
+ {{ $shopping_user->billing_phone }} +
+
+
Land
+ {{ $shopping_user->billing_country->getLocated() }} +
+
+
+

Deine Rechnungsadresse kann nur im Salescenter geändert werden.

+
+
+ @endif + + +
+ +
+
+
+ + + + +
+

+ @if($shopping_user->is_from === 'user_order') + @if($shopping_user->is_for === 'me') + Meine Lieferadresse + @else + Lieferadresse des Kunden + @endif + @else + Lieferadresse + @endif +

+
+ +
+
+
+ + {{ Form::text('shipping_company', $shopping_user->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control')) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_firstname', $shopping_user->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control')) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif +
+
+ + {{ Form::text('shipping_lastname', $shopping_user->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control')) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif + +
+
+
+
+ + {{ Form::text('shipping_address', $shopping_user->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control')) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address_2', $shopping_user->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control')) }} + @if ($errors->has('shipping_address_2')) + + {{ $errors->first('shipping_address_2') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_zipcode', $shopping_user->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control')) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif + +
+
+ + {{ Form::text('shipping_city', $shopping_user->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control')) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('shipping_country_id')) + + {{ $errors->first('shipping_country_id') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_phone', $shopping_user->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone')) }} +
+
+
+ + {{--
+
+ + + + @if($is_from === 'user_order' && $is_for === 'me') + Das Lieferland kann nur bei der Bestellübersicht geändert werden. + @else + Bei der Änderung des Landes werden die Versandkosten neu berechnet. + @endif +
+
+ --}} + + +
+ +
+ +
+ zurück +
+
+ +
+ @if($shopping_mode === 'test') + #### TEST MODE #### TEST MODE #### + @endif + +
+

+ Zahlungsart +

+
+ {{-- @if(($shopping_user->abo_options === 1) && (Util::getUserPaymentFor() >= 3)) + + @if(array_key_exists('SEPA', $payment_methods_active) && in_array($payment_methods_active['SEPA'], $payment_methods)) +
+ +
+ @else +

Zahlungsmethode nicht freigeschaltet, bitte wende dich an {{ config('app.default_mail') }}

+ @endif + @else + --}} + + +
+ + + @if(array_key_exists('PP', $payment_methods_active) && in_array($payment_methods_active['PP'], $payment_methods)) + + + + + + @endif + + @if(array_key_exists('SB', $payment_methods_active) && in_array($payment_methods_active['SB'], $payment_methods)) + + + + + + @endif + @if(array_key_exists('CC', $payment_methods_active) && in_array($payment_methods_active['CC'], $payment_methods)) + + + + + + @endif + @if(array_key_exists('SEPA', $payment_methods_active) && in_array($payment_methods_active['SEPA'], $payment_methods)) + + + + + + @endif + @if(array_key_exists('VOR', $payment_methods_active) && in_array($payment_methods_active['VOR'], $payment_methods)) + + + + + + @endif + @if(array_key_exists('FNC', $payment_methods_active) && in_array($payment_methods_active['FNC'], $payment_methods)) + + + + + + @endif + + +
+ + +
PayPal
+
+ PayPal +
+ + +
Sofort -Überweisung
+
+ Sofort +
+ + +
Kreditkarte
+
+ Mastercard + Visa +
+ + +
SEPA
+
+ SEPA Lastschrift +
+ + +
Vorkasse
+
+ Vorkasse +
+ + +
Rechnungskauf
+
+ Rechnungskauf +
+
+ +
+
+ + + + {{--
+ +

SEPA Lastschrift

+
+
+
+
+
+
+ +
+
+ {!! Form::text('elv_bankaccountholder', (isset($payment_data['bankaccountholder']) ? $payment_data['bankaccountholder'] : ''), ['class' => 'form-control', 'id'=>'elv_bankaccountholder', 'placeholder'=>'Vorname Nachname']) !!} +
+
+ +
+ + {!! Form::text('elv_iban', (isset($payment_data['iban']) ? $payment_data['iban'] : ''), ['class' => 'form-control', 'id'=>'elv_iban', 'placeholder'=>'Beisp.: DE02120300000000202051']) !!} +
+ +
+ + {!! Form::text('elv_bic', (isset($payment_data['bic']) ? $payment_data['bic'] : ''), ['class' => 'form-control', 'id'=>'elv_bic', 'placeholder'=>'Beisp.: PBNKDEFF']) !!} +
+ @if($shopping_user->abo_options) +

Automatische Verlängerung wurde ausgewählt. Dein SEPA-Mandart wird gespeichert und die jährliche Zahlung automatisch ausgeführt.

+ @endif +
+
+
+
--}} + + + +
+ +

Kreditkarte

+
+
+
+
+ + + +
+ + +
+ +
+
+ +
+
+ {!! Form::text('cc_cardholder_first', '', ['class' => 'form-control', 'id'=>'cc_cardholder_first', 'placeholder'=>'Vorname']) !!} +
+
+ {!! Form::text('cc_cardholder_last', '', ['class' => 'form-control', 'id'=>'cc_cardholder_last', 'placeholder'=>'Nachname']) !!} +
+
+ +
+ + + {!! Form::text('cc_cardpan', '', ['class' => 'form-control', 'id'=>'cc_cardpan', 'placeholder'=>'Kreditkartennummer']) !!} +
+
+
+ +
+ +
+
+ +
+
+
+ + {!! Form::text('cc_cardcvc2', '', ['class' => 'form-control', 'id'=>'cc_cardcvc2', 'placeholder'=>'CVC*']) !!} +
+
+
+
+
+
+ + +
+ +

+ Warenkorb +

+ +
+ + @if($is_from === 'user_order') +
+ {{ Yard::instance('shopping')->subtotal() }} € + Zwischensumme: +
+ +
+ +
+ {{ Yard::instance('shopping')->shippingNet() }} € + Versandkosten: +
+ @else +
+ {{ Yard::instance('shopping')->total() }} € + Zwischensumme: +
+ + @endif + +
+ {{ Yard::instance('shopping')->getShippingCountryName() }} + Lieferland: +
+ +
+ +
+ {{ Yard::instance('shopping')->subtotalWithShipping() }} € + Summe ohne MwSt: +
+ +
+ {{ Yard::instance('shopping')->taxWithShipping() }} € + zzgl. {{-- Yard::getTaxRate() --}} MwSt: +
+ +
+ +
+ {{ Yard::instance('shopping')->totalWithShipping() }} € + Gesamtsumme: +
+
+ +
+ +
+ +
+

Sind alle Deine Angaben vollsätndig ausgefüllt, klicke auf "Jetzt kaufen" und Du wist zu unserem Zahlungsanbieter weitergeleitet, die Verbindung wird ist SSL verschlüsselt.

+ +
+
+ +
+ + +
+ + + + + {!! Form::close() !!} + + + +@endsection + +@section('scripts') + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/user/checkout/final.blade.php b/resources/views/user/checkout/final.blade.php new file mode 100644 index 0000000..dbaf25a --- /dev/null +++ b/resources/views/user/checkout/final.blade.php @@ -0,0 +1,137 @@ +@extends('layouts.layout-2') + +@section('content') + + + + + + +
+
+ Bestellbestätigung +
+ +
+

Vielen Dank,

+

Deine Bestellung ist bei uns eingegangen. In Kürze erhälst Du von uns eine Bestellbestätigungsmail.

+ +

Deine Bestellnummer ist: {{ $order_reference }}

+
+ + @if($pay_trans && $pay_trans->shopping_payment) + + @if($pay_trans->shopping_payment->clearingtype === "vor") +

Bezahlung per Vorkasse:

+

Bitte überweise {{ number_format(($pay_trans->shopping_payment->amount/100), 2, ",", ".") }} EUR auf die folgende Kontoverbindung, um den Kauf abzuschließen. +
+ Kontoinhaber: Name
+ IBAN: IBAN
+ BIC: BIC
+ Bank: Bank
+ Gesamtbetrag: {{ number_format( ($pay_trans->shopping_payment->amount/100), 2, ",", ".") }} EUR
+ Verwendungszweck: {{ $pay_trans->transmitted_data['reference'] }} +

+
+ @endif + + @if($pay_trans->shopping_payment->clearingtype === "cc") +

Bezahlung per Kreditkarte:

+

Deine Zahlung wurde genehmigt, eine Bestätigung der Zahlung wird automatisch erstellt.

+
+ @endif + + + @if($pay_trans->shopping_payment->clearingtype === "elv") +

Bezahlung per SEPA:

+

Deine Zahlung wird bearbeitet, eine Bestätigung zur Zahlungsabwicklung wird automatisch erstellt.

+
+ @endif + + @if($pay_trans->shopping_payment->clearingtype === "fnc") +

Bezahlung per Rechnung:

+

Deine Bestellung wird bearbeitet, eine Bestätigung zur Bestellungsabwicklung wird automatisch erstellt.

+
+ @endif + @endif +

+ Dein Team von Grüne Seele +

+
+
+ + + + +@endsection \ No newline at end of file diff --git a/resources/views/user/components/user_shop_edit.blade.php b/resources/views/user/components/user_shop_edit.blade.php new file mode 100644 index 0000000..acc174c --- /dev/null +++ b/resources/views/user/components/user_shop_edit.blade.php @@ -0,0 +1,130 @@ +
+
+ + +
+
+ + {!! Form::open(['url' => route('user_shop_store'), 'class' => 'form-horizontal', 'id'=>'']) !!} +
+ + + {{ Form::text('title', $user->shop->title, array('placeholder'=>__('shop_title'), 'class'=>'form-control', 'id'=>'title')) }} + {{ __('shop_title_help') }} +
+ +
+ + {{ Form::textarea('contact', $user->shop->contact , array('placeholder'=>__('shop_contact'), 'class'=>'form-control', 'id'=>'contact', 'rows'=>4)) }} + {{ __('shop_contact_help') }} +
+ +
+ + {{ Form::textarea('accessibility', $user->shop->accessibility , array('placeholder'=>__('shop_accessibility'), 'class'=>'form-control', 'id'=>'accessibility', 'rows'=>2)) }} + {{ __('shop_accessibility_help') }} +
+ +
+ + {{ Form::textarea('about', $user->shop->about , array('placeholder'=>'', 'class'=>'form-control', 'id'=>'about', 'rows'=>2)) }} + {{ __('shop_about_help') }} +
+ +
+   +
+ {!! Form::close() !!} + +
+
+ +
+
+ + +
+
{{ __('Shop details') }}
+
    +
  • +
    {{ __('name') }}
    +
    + {{ $user->shop->name }} +
    +
  • +
  • +
    {{ __('Domain') }}
    + +
  • +
  • +
    {{ __('Status') }}
    +
    + @if($user->shop->getSubdomainStatus()) + {{ __('available') }} DNS
    + @else + {{ __('not available') }} DNS + @endif + + @if($user->shop->getSubdomainAvailable()) + {{ __('available') }} + @if($user->shop->getSubdomainSslSin()) HTTPS @else HTTP @endif + + @else + {{ __('not available') }} HTTP + @endif + + @if($user->shop->getSubdomainSslSinActive()) + {{ __('available') }} SSL + + @else + {{ __('not available') }} SSL + @endif + +
    +
  • + @if(!$user->shop->getSubdomainStatus() || !$user->shop->getSubdomainAvailable() || !$user->shop->getSubdomainSslSinActive()) +
  • +

    {{ __('not available copy') }} + + + +

    + +
  • + @endif +
  • +
    {{ __('active since') }}
    +
    + {{ $user->shop->getActiveDateFormat() }} +
    +
  • + +
+
+ +
+
+ +
+
+
+ @include('user.components.user_shop_image') +
+
+
+
+ @include('user.components.user_shop_on_site') +
+
+
+ + + + + diff --git a/resources/views/user/components/user_shop_image.blade.php b/resources/views/user/components/user_shop_image.blade.php new file mode 100755 index 0000000..81c2d09 --- /dev/null +++ b/resources/views/user/components/user_shop_image.blade.php @@ -0,0 +1,61 @@ + + + + +
{{ __('shop image') }}
{{ __('shop image copy') }} +
+
+ +
+ + + @if($user->shop->isImage()) +
+
+ +

+ +
+
+ @else +
+
+
+
+ @csrf +
+
+ +
+ +
+ +
+
+
+
+
+ @endif +
+
\ No newline at end of file diff --git a/resources/views/user/components/user_shop_on_site.blade.php b/resources/views/user/components/user_shop_on_site.blade.php new file mode 100755 index 0000000..eba9f5f --- /dev/null +++ b/resources/views/user/components/user_shop_on_site.blade.php @@ -0,0 +1,83 @@ + + + + + + + + + + +
{{ __('shop on site') }}
{{ __('shop on site copy') }} +
+
+ + + +
+ @if(count($user->shop->on_sites) <= 5) +
+
+ @foreach($user->shop->on_sites as $image) +
+ +
+ +
+ @endforeach +
+
+
+
+
+
+ @csrf + +
+
+ +
+ +
+ +
+
+
+
+ @else +
+
+ @foreach($user->shop->on_sites as $image) +
+ +
+ +
+ @endforeach +
+
+ @endif +
+
+
diff --git a/resources/views/user/components/user_shop_register.blade.php b/resources/views/user/components/user_shop_register.blade.php new file mode 100644 index 0000000..7861b63 --- /dev/null +++ b/resources/views/user/components/user_shop_register.blade.php @@ -0,0 +1,168 @@ +
+

{{ __('open your shop') }}

+ + {!! Form::open(['url' => route('user_shop_register_form'), 'class' => 'form-horizontal' , 'id'=>'data-shop-form-validations']) !!} + @php + $shop_name_btn_color = 'btn-secondary'; + $shop_name_fa = ''; + $shop_name_form_control = ''; + @endphp + @if(Session::has('shop-name-error')) + @if(Session::get('shop-name-error') == 'check') + @php + $shop_name_btn_color = 'btn-success'; + $shop_name_fa = 'fa-check'; + $shop_name_form_control = ' is-valid'; + @endphp + + @endif + @if(Session::get('shop-name-error') == 'error') + @php + $shop_name_btn_color = 'btn-danger'; + $shop_name_fa = 'fa-times'; + $shop_name_form_control = ' is-invalid'; + @endphp + @endif + @endif + + +

+ Wähle das Präfix Deines Shopnamens - z. B. vorname(.mivita.care) - Du musst nicht "mivita.care" eingeben. Wähle einen kurzen und prägnanten Namen, damit Du diese URL auch auf kleinen Werbemitteln unterbringen kannst. Achte auch darauf, dass Du keine Markenrechte Dritter verletzt. Dafür kann MIVITA keine Haftung übernehmen. Daher versucht Phantasiebegriffe zu vermeiden, es sei denn Du hast sie als Marke angemeldet. +

+ Deine Internetadresse kann später mit „www.“ und ohne aufgerufen werden. +

+ WICHTIGER HINWEIS: + Aus Deinem Shop-Namen wird die Internet-Adresse (Domain) erstellt, mit der Dein Shop aufgerufen werden kann. Wähle Deinen Shop-Namen sorgfältig aus. Dieser ist nur durch die IT änderbar und wir müssten eine Aufwandsentschädigung von 59,50 € erheben. +

+
+
+ {{ Form::text('user_shop_name', old('user_shop_name'), array('placeholder'=>__('Your Shop Name'), 'class'=>'form-control'.$shop_name_form_control.($errors->has('user_shop_name') ? ' is-invalid' : ''), 'id'=>'user_shop_name', 'tabindex' => 2)) }} + + + +
+ @if ($errors->has('user_shop_name')) + + {{ $errors->first('user_shop_name') }} + + @endif +
+
+ {{ Form::text('preview_user_shop_name', '', array('placeholder'=>__('Vorschau Shop-Internet Adresse'), 'class'=>'form-control', 'id'=>'preview_user_shop_name', 'readonly')) }} +
+
+ + @if ($errors->has('user_shop_active')) + + {{ $errors->first('user_shop_active') }} + + @endif +
+
+
+   + +
+ + {!! Form::close() !!} + +
+ + diff --git a/resources/views/user/customer/add.blade.php b/resources/views/user/customer/add.blade.php new file mode 100644 index 0000000..5d7cd2d --- /dev/null +++ b/resources/views/user/customer/add.blade.php @@ -0,0 +1,133 @@ +@extends('layouts.layout-2') + +@section('content') + + {{-- + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + --}} +

+ {{ __('Kunden hinzufügen') }} +

+ +
+ + +
+
+
+ {!! Form::open(['url' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal']) !!} +
+
+ + {{ Form::text('email', '', array('placeholder'=>'E-Mail Adresse', 'class'=>'form-control', 'id'=>'email', 'required'=>true ,'tabindex' => 1)) }} + @if ($errors->has('email')) + + {{ $errors->first('email') }} + + @endif +

Kundenhoheit: Es können nur Kunden hinzugefügt werden, die noch nicht im mivita-Salescenter vorhanden sind.

+
+
+
+   +
+ +
+ {!! Form::close() !!} + {!! Form::open(['url' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal']) !!} +
+
+ +
+
+ + {!! Form::close() !!} + +
+
+
+
+ @if($step == 1) + {!! Form::open(['url' => route('user_customer_edit', ['new']), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + @include('admin.customer._edit') + +
+   +
+ {!! Form::close() !!} +
+ @endif +
+ +
+
+ + + + + +@endsection diff --git a/resources/views/user/customer/detail.blade.php b/resources/views/user/customer/detail.blade.php new file mode 100644 index 0000000..9666939 --- /dev/null +++ b/resources/views/user/customer/detail.blade.php @@ -0,0 +1,20 @@ +@extends('layouts.layout-2') + +@section('content') + +

+ zurück + {{ __('Kunden Details') }} +

+ + @if(Session::has('custom-error')) +
+ + {{ Session::get('custom-error') }} +
+ @endif + + @include('admin.customer._detail') + zurück + +@endsection \ No newline at end of file diff --git a/resources/views/user/customer/edit.blade.php b/resources/views/user/customer/edit.blade.php new file mode 100644 index 0000000..80e0ef3 --- /dev/null +++ b/resources/views/user/customer/edit.blade.php @@ -0,0 +1,16 @@ +@extends('layouts.layout-2') + +@section('content') + +

+ zurück + {{ __('Kunden Details') }} bearbeiten +

+ {!! Form::open(['url' => route('user_customer_edit', [$shopping_user->id]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + @include('admin.customer._edit') +
+   +
+ {!! Form::close() !!} + zurück +@endsection \ No newline at end of file diff --git a/resources/views/user/customer/index.blade.php b/resources/views/user/customer/index.blade.php new file mode 100644 index 0000000..cfe7019 --- /dev/null +++ b/resources/views/user/customer/index.blade.php @@ -0,0 +1,91 @@ +@extends('layouts.layout-2') + +@section('content') +

+ {{ __('navigation.my_clients') }} +

+ +
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
#{{__('E-Mail')}}{{__('Anrede')}}{{__('Firma')}}{{__('Vorname')}}{{__('Nachname')}}{{__('PLZ')}}{{__('Stadt')}}{{__('Land')}}{{__('Käufe')}}{{__('Newsletter')}}{{__('erstellt')}}{{__('Status')}}{{__('ID Kunden')}}WP
+
+ +
+
+
+ + +@endsection + diff --git a/resources/views/user/data_confirm.blade.php b/resources/views/user/data_confirm.blade.php new file mode 100644 index 0000000..586bbd1 --- /dev/null +++ b/resources/views/user/data_confirm.blade.php @@ -0,0 +1,87 @@ +
+
+ {{ __('Vertrag & Datenschutz') }} + * {{trans('register.required_fields')}} +
+
+
+ +
+ +
+ +
+ +
+
+ {!! File::get(public_path('pdf/gs_contract_de.php')); !!} +
+
+ +
+ +
+ +
+
+ + + diff --git a/resources/views/user/data_verify.blade.php b/resources/views/user/data_verify.blade.php new file mode 100644 index 0000000..bba19c0 --- /dev/null +++ b/resources/views/user/data_verify.blade.php @@ -0,0 +1,14 @@ +
+
+ {{ __('Berater einladen') }} +
+
+
+ +
+
+
+ diff --git a/resources/views/user/delete_account.blade.php b/resources/views/user/delete_account.blade.php new file mode 100644 index 0000000..4f59c35 --- /dev/null +++ b/resources/views/user/delete_account.blade.php @@ -0,0 +1,31 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Delete Account')}} +
+
+

{{__('Confirm your identity with your password before proceeding.')}}

+ + {!! Form::open(['url' => route('user_delete_account')]) !!} +
+ +
+ + @if ($errors->has('old_password')) + + {{ $errors->first('old_password') }} + + @endif +
+
+
+
+ +
+
+ {!! Form::close() !!} +
+
+@endsection \ No newline at end of file diff --git a/resources/views/user/edit.blade.php b/resources/views/user/edit.blade.php new file mode 100644 index 0000000..5d8e08b --- /dev/null +++ b/resources/views/user/edit.blade.php @@ -0,0 +1,31 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif +

+ {{ __('navigation.my_data') }} +

+ {!! Form::open(['url' => route('user_edit'), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + + @include('user.user_form') +
+   + {{ __('back') }} + +
+ {!! Form::close() !!} + +@endsection diff --git a/resources/views/user/form.blade.php b/resources/views/user/form.blade.php new file mode 100644 index 0000000..2776f83 --- /dev/null +++ b/resources/views/user/form.blade.php @@ -0,0 +1,268 @@ +
+
+ {{ __('Rechnungsdaten') }} + * {{trans('register.required_fields')}} +
+
+
+ + +
+ + +
+
+ + {{ Form::text('title', $user->account->title, array('placeholder'=>__('Title'), 'class'=>'form-control', 'id'=>'title', 'tabindex' => 11)) }} + +
+
+ +
+ +
+ + {{ Form::text('first_name', $user->account->first_name, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'first_name', 'required'=>true, 'tabindex' => 12)) }} + +
+
+ + {{ Form::text('last_name', $user->account->last_name, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'last_name', 'required'=>true, 'tabindex' => 13)) }} + +
+ +
+ +
+ + {{ Form::text('street', $user->account->street, array('placeholder'=>__('Street'), 'class'=>'form-control', 'id'=>'street', 'tabindex' => 14)) }} + +
+ +
+
+ + {{ Form::text('postal_code', $user->account->postal_code, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'id'=>'postal_code', 'tabindex' => 15)) }} + +
+
+ + {{ Form::text('city', $user->account->city, array('placeholder'=>__('City'), 'class'=>'form-control', 'id'=>'city', 'tabindex' => 16)) }} + +
+
+ + + @if ($errors->has('country_id')) + + {{ $errors->first('country_id') }} + + @endif + +
+
+ +
+
+ + +
+ +
+ + {{ Form::text('phone', $user->account->phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'phone', 'tabindex' => 18)) }} +
+ @if ($errors->has('phone')) + + {{ $errors->first('phone') }} + + @endif +
+ + +
+
+ + +
+ +
+ + {{ Form::text('mobil', $user->account->mobil, array('placeholder'=>__('Mobile Phone'), 'class'=>'form-control', 'id'=>'mobil', 'tabindex' => 19)) }} +
+ @if ($errors->has('mobil')) + + {{ $errors->first('mobil') }} + + @endif +
+ +
+ + {{ Form::text('birthday', $user->account->birthday, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'required'=>true, 'class'=>'form-control datepicker-birthday')) }} +
+ +
+ @if(!isset($step)) + @if($user->email) +
+
+ + {{ Form::text('email', $user->email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'email', 'readonly'=>true, 'tabindex' => 20)) }} +
+
+ + {{ Form::text('email-confirm', $user->email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'email-confirm', 'readonly'=>true, 'tabindex' => 21)) }} +
+
+ @if(isset($can_change_mail)) + @if(count($user->user_update_email) > 0) +

{{ $user->user_update_email->first()->email }} {{__('waiting for activation since')}} | {{ $user->user_update_email->first()->created_at->format('d.m.Y H:i') }}


+ @endif + {{ __('Contact') }} {{__('Change E-Mail')}} + @else + {{__('Change E-Mail')}} + @endif + @else +
+
+ + {{ Form::text('email', $user->email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'email', 'tabindex' => 20)) }} +
+
+ + {{ Form::text('email-confirm', $user->email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'email-confirm', 'tabindex' => 21)) }} +
+
+ + @endif + @endif +
+
+ +
+
+ {{ __('use') }} +
+
+
+ + + @if ($errors->has('company')) + + {{ $errors->first('company') }} + + @endif +
+
+
+ +
+
+ {{ __('Company data') }} +
+
+
+ + {{ Form::text('company_name', $user->account->company_name, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'company_name', 'required' => true, 'tabindex' => 1)) }} +
+ +
+ + {{ Form::text('company_street', $user->account->company_street, array('placeholder'=>__('Street'), 'class'=>'form-control', 'id'=>'company_street', 'tabindex' => 2)) }} + +
+ +
+
+ + {{ Form::text('company_postal_code', $user->account->company_postal_code, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'id'=>'company_postal_code', 'tabindex' => 3)) }} + +
+
+ + {{ Form::text('company_city', $user->account->company_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'id'=>'company_city', 'tabindex' => 4)) }} + +
+
+ + + @if ($errors->has('company_country_id')) + + {{ $errors->first('company_country_id') }} + + @endif +
+
+ +
+
+ + +
+ +
+ + {{ Form::text('company_phone', $user->account->company_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'company_phone', 'tabindex' => 7)) }} +
+
+
+ + {{ Form::text('company_homepage', $user->account->company_homepage, array('placeholder'=>__('Homepage'), 'class'=>'form-control', 'id'=>'company_homepage', 'tabindex' => 8)) }} +
+ +
+
+ +
+
+ {{ __('weiteres') }} +
+
+
+
+ + {{ Form::text('birthday', $user->account->birthday, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'class'=>'form-control datepicker-birthday')) }} +
+ +
+ + {{ Form::text('website', $user->account->website, array('placeholder'=>__('website'), 'class'=>'form-control', 'id'=>'website')) }} + +
+
+ + {{ Form::text('instagram', $user->account->instagram, array('placeholder'=>__('instagram'), 'class'=>'form-control', 'id'=>'instagram')) }} + +
+
+ +
+
+ + {{ Form::text('facebook', $user->account->facebook, array('placeholder'=>__('facebook'), 'class'=>'form-control', 'id'=>'facebook')) }} + +
+
+ + {{ Form::text('facebook_fanpage', $user->account->facebook_fanpage, array('placeholder'=>__('facebook_fanpage'), 'class'=>'form-control', 'id'=>'facebook_fanpage')) }} + +
+
+ +
+
diff --git a/resources/views/user/homeparty/_address.blade.php b/resources/views/user/homeparty/_address.blade.php new file mode 100644 index 0000000..b23f76c --- /dev/null +++ b/resources/views/user/homeparty/_address.blade.php @@ -0,0 +1,71 @@ +@if($homeparty_user) + @if($homeparty_user->isAddress()) + @if($homeparty_user->same_as_billing) +

+ @if($homeparty_user->billing_company) + {{ $homeparty_user->billing_company }} +
+ @endif + {{ \App\Services\HTMLHelper::getSalutationLang($homeparty_user->billing_salutation) }} + {{ $homeparty_user->billing_firstname }} + {{ $homeparty_user->billing_lastname }} +
+ + {{ $homeparty_user->billing_address }} +
+ @if($homeparty_user->billing_address_2) + {{ $homeparty_user->billing_address_2 }} +
+ @endif + {{ $homeparty_user->billing_zipcode }} + {{ $homeparty_user->billing_city }} +
+ @if($homeparty_user->billing_country) + {{ $homeparty_user->billing_country->getLocated() }} +
+ @endif + @if($homeparty_user->billing_email) + E-Mail:{{ $homeparty_user->billing_email }} +
+ @endif + @if($homeparty_user->billing_phone) + Telefon: {{ $homeparty_user->billing_phone }} + @endif +

+ @else +

+ @if($homeparty_user->shipping_company) + {{ $homeparty_user->shipping_company }} +
+ @endif + {{ \App\Services\HTMLHelper::getSalutationLang($homeparty_user->shipping_salutation) }} + {{ $homeparty_user->shipping_firstname }} + {{ $homeparty_user->shipping_lastname }} +
+ + {{ $homeparty_user->shipping_address }} +
+ @if($homeparty_user->shipping_address_2) + {{ $homeparty_user->shipping_address_2 }} +
+ @endif + {{ $homeparty_user->shipping_zipcode }} + {{ $homeparty_user->shipping_city }} +
+ @if($homeparty_user->shipping_country) + {{ $homeparty_user->shipping_country->getLocated() }} +
+ @endif + @if($homeparty_user->shipping_email) + E-Mail:{{ $homeparty_user->shipping_email }} +
+ @endif + @if($homeparty_user->shipping_phone) + Telefon: {{ $homeparty_user->shipping_phone }} + @endif +

+ @endif + @else +

Keine Adresse angelegt

+ @endif +@endif \ No newline at end of file diff --git a/resources/views/user/homeparty/_edit.blade.php b/resources/views/user/homeparty/_edit.blade.php new file mode 100644 index 0000000..2ddf253 --- /dev/null +++ b/resources/views/user/homeparty/_edit.blade.php @@ -0,0 +1,234 @@ + +
+
+
+
+
+ + {{ Form::text('billing_company', $homeparty_user->billing_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'billing_company', 'tabindex' => 1)) }} +
+
+
+
+ + + @if ($errors->has('billing_salutation')) + + {{ $errors->first('billing_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('billing_firstname', $homeparty_user->billing_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'billing_firstname', 'required'=>true, 'tabindex' => 4)) }} + @if ($errors->has('billing_firstname')) + + {{ $errors->first('billing_firstname') }} + + @endif + +
+
+ + {{ Form::text('billing_lastname', $homeparty_user->billing_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'billing_lastname', 'required'=>true, 'tabindex' => 5)) }} + @if ($errors->has('billing_lastname')) + + {{ $errors->first('billing_lastname') }} + + @endif + +
+
+
+
+ + {{ Form::text('billing_address', $homeparty_user->billing_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_address', 'tabindex' => 6)) }} + @if ($errors->has('billing_address')) + + {{ $errors->first('billing_address') }} + + @endif +
+
+
+
+ + {{ Form::text('billing_address_2', $homeparty_user->billing_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'billing_address_2', 'tabindex' => 6)) }} +
+
+
+
+ + {{ Form::text('billing_zipcode', $homeparty_user->billing_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_zipcode', 'tabindex' => 7)) }} + @if ($errors->has('billing_zipcode')) + + {{ $errors->first('billing_zipcode') }} + + @endif +
+
+ + {{ Form::text('billing_city', $homeparty_user->billing_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'billing_city', 'tabindex' => 8)) }} + @if ($errors->has('billing_city')) + + {{ $errors->first('billing_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('billing_country_id')) + + {{ $errors->first('billing_country_id') }} + + @endif +
+
+
+
+ + {{ Form::text('billing_phone', $homeparty_user->billing_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'billing_phone', 'tabindex' => 11)) }} +
+
+
+
+ + {{ Form::text('billing_email', $homeparty_user->billing_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'billing_email', 'tabindex' => 12)) }} +
+
+
+
+
+
+
Lieferadresse
+
+
+
+
+ + {{ Form::text('shipping_company', $homeparty_user->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'shipping_company', 'tabindex' => 16)) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_firstname', $homeparty_user->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_firstname', 'tabindex' => 18)) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif +
+
+ + {{ Form::text('shipping_lastname', $homeparty_user->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_lastname', 'tabindex' => 19)) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif + +
+
+
+
+ + {{ Form::text('shipping_address', $homeparty_user->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_address', 'tabindex' => 20)) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address_2', $homeparty_user->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'shipping_address_2', 'tabindex' => 21)) }} + @if ($errors->has('shipping_address_2')) + + {{ $errors->first('shipping_address_2') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_zipcode', $homeparty_user->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_zipcode', 'tabindex' => 22)) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif + +
+
+ + {{ Form::text('shipping_city', $homeparty_user->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_city', 'tabindex' => 23)) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('shipping_country_id')) + + {{ $errors->first('shipping_country_id') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_phone', $homeparty_user->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone', 'tabindex' => 26)) }} +
+
+
+
+ + {{ Form::text('shipping_email', $homeparty_user->shipping_email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'shipping_email', 'tabindex' => 27)) }} +
+
+
+
+ +
+
+
+
+ {{ Form::hidden('is_host', $homeparty_user->is_host) }} +
\ No newline at end of file diff --git a/resources/views/user/homeparty/detail.blade.php b/resources/views/user/homeparty/detail.blade.php new file mode 100644 index 0000000..a6af329 --- /dev/null +++ b/resources/views/user/homeparty/detail.blade.php @@ -0,0 +1,243 @@ +@extends('layouts.layout-2') + +@section('content') +

+
{{ __('navigation.my_homeparty') }} / + @if(!$homeparty->id) + anlegen + @else + {{ __('navigation.manage') }} + + @endif +
+ zurück +

+ + {!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-party-form-validation']) !!} + +
+
+
+ @if(!$homeparty->id) +
+ Neue Homeparty anlegen +
+ @else +
+
+
Homeparty verwalten
+ +
+
+ @endif +
+
+ +
+
+
+ + {{ Form::text('name', $homeparty->name, array('placeholder'=>__('Veranstaltungsname'), 'class'=>'form-control', 'required')) }} + @if ($errors->has('name')) + + {{ $errors->first('name') }} + + @endif +
+
+ + {{ Form::text('date', $homeparty->date, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'class'=>'form-control datepicker-base', 'required')) }} + @if ($errors->has('date')) + + {{ $errors->first('date') }} + + @endif +
+
+ + {{ Form::text('place', $homeparty->place, array('placeholder'=>__('Veranstaltungsort'), 'class'=>'form-control', 'required')) }} + @if ($errors->has('place')) + + {{ $errors->first('place') }} + + @endif +
+ +
+
+ + {{ Form::textarea('description', $homeparty->description , array('placeholder'=>__('Beschreibung'), 'class'=>'form-control', 'rows'=>2)) }} +
+
+
+
+   + zurück zur Übersicht +
+ {!! Form::close() !!} + + + @if($homeparty->id) +
+
+
Lass den Gastgeber/in seine Daten selber ausfüllen
+
+
+ + + + +
+
+

Teile diesen Link mit dem Gastgeber/in und Gästen (z.B. WhatsApp oder SMS), damit gelangt sie auf eine Zielseite wo sie ihre Daten selber ausfüllen können. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren.

+
+
+
+ {!! Form::open(['url' => route('user_homeparty_detail', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!} +
+
+
+
+ Gastgeber-, Rechungsadresse +
+
+ * {{trans('register.required_fields')}} + Lieferadresse +
+
+
+ @include('user.homeparty._edit') +
+
+   + zurück zur Übersicht +
+ {!! Form::close() !!} + @endif + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/user/homeparty/guest_detail.blade.php b/resources/views/user/homeparty/guest_detail.blade.php new file mode 100644 index 0000000..3a3158c --- /dev/null +++ b/resources/views/user/homeparty/guest_detail.blade.php @@ -0,0 +1,127 @@ +@extends('layouts.layout-2') + +@section('content') +

+
{{ __('navigation.my_homeparty') }} / {{ $homeparty->name }} - {{ $homeparty->date }}
+ zurück +

+ + {!! Form::open(['url' => route('user_homeparty_guest_detail', [$homeparty->id, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!} +
+
+
+
+ @if($homeparty_user->is_host) Gastgeber, @else Gast-, @endif Rechungsadresse +
+
+ * {{trans('register.required_fields')}} + Lieferadresse +
+
+
+ @include('user.homeparty._edit') +
+
+   + zurück zur Übersicht +
+ {!! Form::close() !!} + + + + +@endsection \ No newline at end of file diff --git a/resources/views/user/homeparty/guests.blade.php b/resources/views/user/homeparty/guests.blade.php new file mode 100644 index 0000000..01bd057 --- /dev/null +++ b/resources/views/user/homeparty/guests.blade.php @@ -0,0 +1,94 @@ +@extends('layouts.layout-2') + +@section('content') +

+
{{ __('navigation.my_homeparty') }} / {{ $homeparty->name }} - {{ $homeparty->date }}
+ @if(!$homeparty->completed) +   Neue Gast anlegen + @endif +

+ +
+
+ @php($g_count = 1) + + @foreach($homeparty->homeparty_users as $homeparty_user) +
+ +
+
+
+
+ {{$homeparty->description}} +
+
+
+
+
Adresse
+
{{$homeparty_user->billing_address}} + {{$homeparty_user->billing_zipcode}} + {{$homeparty_user->city}} + @if($homeparty_user->billing_country_id){{ $homeparty_user->billing_country->getLocated() }}@endif +
+
+
+
E-Telefon
+
{{$homeparty_user->billing_phone}}
+
+
+
E-Mail
+
{{$homeparty_user->billing_email}}
+
+
+
+ +
+ @endforeach +
+
+
+ @if(!$homeparty->completed) + Homparty verwalten + @endif + Bestellung + zurück zur Übersicht +
+ +@endsection \ No newline at end of file diff --git a/resources/views/user/homeparty/index.blade.php b/resources/views/user/homeparty/index.blade.php new file mode 100644 index 0000000..d025489 --- /dev/null +++ b/resources/views/user/homeparty/index.blade.php @@ -0,0 +1,116 @@ +@extends('layouts.layout-2') + +@section('content') +

+
{{ __('navigation.my_homeparty') }} / {{ __('navigation.overview') }}
+   Neue Homeparty anlegen +

+ +
+
+ + @foreach($homepartys as $homeparty) +
+
+
+ {{$homeparty->name}} + @if($homeparty->completed) + abgeschlossen + @endif +
+ @if(!$homeparty->completed) + +
+ + +
+ @endif +
+
+
+
+
+ {{$homeparty->description}} +
+
+
+
+
Datum
+
{{$homeparty->date}}
+
+
+
Ort
+
{{$homeparty->place}}
+
+
+
Gäste
+
{{$homeparty->homeparty_guests->count()}}
+
+
+
Umsatz
+
@if(isset($homeparty->order['price'])){{Util::formatNumber($homeparty->order['price'])}}@endif
+
+
+
Points
+
@if(isset($homeparty->order['points'])){{$homeparty->order['points']}}@endif
+
+
+
+ @if(!$homeparty->completed) +
+
+
+
+ + + + +
+
+
+ @endif +
+
+
+ @if(!$homeparty->completed) + Verwalten + Gäste anlegen + Bestellung + + @else + Gäste ansehen + Bestellung ansehen + + + @endif +
+
+
+ @endforeach +
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/user/homeparty/modal_show_products.blade.php b/resources/views/user/homeparty/modal_show_products.blade.php new file mode 100644 index 0000000..fa686e0 --- /dev/null +++ b/resources/views/user/homeparty/modal_show_products.blade.php @@ -0,0 +1,66 @@ + + \ No newline at end of file diff --git a/resources/views/user/homeparty/order.blade.php b/resources/views/user/homeparty/order.blade.php new file mode 100644 index 0000000..82428ee --- /dev/null +++ b/resources/views/user/homeparty/order.blade.php @@ -0,0 +1,250 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+
{{ __('navigation.my_homeparty') }} / {{ $homeparty->name }} - {{ $homeparty->date }}
+ zurück +

+ + @if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2) +
Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryPaymentOrder->getStatusType())}}
+ @endif + + {!! Form::open(['url' => route('user_homeparty_order', [$homeparty->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-order-form']) !!} + +
+
+
+
+
+
Bestellung anlegen
+ @if(!$homeparty->completed) + + @endif +
+
+
+
+
+
+
+
Lieferadresse Gastgeber/in + @if(!$homeparty->completed) + + @endif +
+ @include('user.homeparty._address', ['homeparty_user' => $homeparty->homeparty_host]) +
+ + {{-- TODO Berechnung Bonus --}} +
+
Aktuelle Bonusansicht
+ +
+ @include('user.homeparty.show_bonus', ['homeparty' => $homeparty]) +
+
+
+
+
+ + @if($homeparty->homeparty_host) +
+
+
+
+
+
Bestellung Gastgeber/in {{$homeparty->homeparty_host->billing_firstname}} {{$homeparty->homeparty_host->billing_lastname}}
+
+
+ @if(!$homeparty->completed) +
+ +
+ @endif +
+
+
+
+ @include('user.homeparty.show_products_order', ['homeparty_guest' => $homeparty->homeparty_host]) +
+
+
+ @endif + + @if($homeparty->homeparty_guests) + @php($g_count = 1) + @foreach($homeparty->homeparty_guests as $homeparty_guest) +
+
+
+
+
+
Bestellung {!! $g_count++ !!}. Gast {{$homeparty_guest->billing_firstname}} {{$homeparty_guest->billing_lastname}}
+
+
+ @if(!$homeparty->completed) +
+ +
+ @endif +
+
+
+
+ @include('user.homeparty.show_products_order', ['homeparty_guest' => $homeparty_guest]) +
+
+
+ @endforeach + @endif +
+ +
+
+
+
+
+
Gesamtübersicht
+
+
+
+
+ +
+
+ @include('user.homeparty.show_total_order', ['homeparty' => $homeparty]) +
+ @if(!$homeparty->completed) +
+ @if($homeparty->homeparty_host && $homeparty->homeparty_host->isAddress()) +
+ +
+

+ Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. + @else +
+ Die Bestellung kann erst abgesendet werden, wenn die Lieferadresse Gastgeber/in angelegt ist. +
+ + @endif + @endif +
+
+ +
+ @if(!$homeparty->completed) + Homparty verwalten + @endif + zurück zur Übersicht +
+ {!! Form::close() !!} + + + + +@endsection +@section('scripts') + + +@endsection \ No newline at end of file diff --git a/resources/views/user/homeparty/self_guest_detail.blade.php b/resources/views/user/homeparty/self_guest_detail.blade.php new file mode 100644 index 0000000..d85b834 --- /dev/null +++ b/resources/views/user/homeparty/self_guest_detail.blade.php @@ -0,0 +1,202 @@ +@extends('layouts.layout-2-without') + +@section('content') + + + @if($homeparty_user === null) +

+
Homeparty / {{ $homeparty->name }} - {{ $homeparty->date }}
+

+ @if(Session::has('alert-save')) +
+
+ {{__('saved')}}: {{__('The changes have been saved.')}} +
+
+ @endif +
+
+ @php($g_count = 1) + @foreach($homeparty->homeparty_users as $homeparty_user) +
+ +
+
+
+
+ {{$homeparty->description}} +
+
+
+
+
Adresse
+
{{$homeparty_user->billing_address}} + {{$homeparty_user->billing_zipcode}} + {{$homeparty_user->city}} + @if($homeparty_user->billing_country_id){{ $homeparty_user->billing_country->getLocated() }}@endif +
+
+
+
E-Telefon
+
{{$homeparty_user->billing_phone}}
+
+
+
E-Mail
+
{{$homeparty_user->billing_email}}
+
+
+
+ +
+ @endforeach +
+
+   Neue Gast anlegen + + @else +

+
Homeparty / {{ $homeparty->name }} - {{ $homeparty->date }}
+ zurück +

+ + {!! Form::open(['url' => route('homeparty', [$homeparty->token, $homeparty_user->id]), 'class' => 'form-horizontal', 'id'=>'homeparty-user-form-validation']) !!} + @if(Session::has('alert-save')) +
+
+ {{__('saved')}}: {{__('The changes have been saved.')}} +
+
+ @endif +
+
+
Eingabe Deiner persönlichen Daten für die Homeparty
+
+
+
+
+
+ @if($homeparty_user->is_host) Gastgeber/in, @else Gast-, @endif Rechungsadresse +
+
+ * {{trans('register.required_fields')}} + Lieferadresse +
+
+
+ @include('user.homeparty._edit') +
+
+
+ +
+
+
+
+   +
+ {!! Form::close() !!} + + + + @endif +@endsection \ No newline at end of file diff --git a/resources/views/user/homeparty/show_bonus.blade.php b/resources/views/user/homeparty/show_bonus.blade.php new file mode 100644 index 0000000..3e51cb8 --- /dev/null +++ b/resources/views/user/homeparty/show_bonus.blade.php @@ -0,0 +1,43 @@ + + + + + + + @if(!\App\Services\HomepartyCart::$is_bonus) + + + + + + + + + + + + + + @else + + + + + + + + + + + + + @endif + + + + + + + + +
Zielumsatz {{\App\Services\HomepartyCart::getFormattedBonusValue()}} € Gutschein:{{\App\Services\HomepartyCart::getFormattedPrice()}} € / {{\App\Services\HomepartyCart::getFormattedBonusStart()}} €
fehlen noch: {{\App\Services\HomepartyCart::getFormattedBonusDiff()}} €
Nächster Bonus:- €
fehlen noch:- €
fehlen noch:0 €
Nächster Bonus {{\App\Services\HomepartyCart::getFormattedBonusCouponNextValue()}} € ab:{{\App\Services\HomepartyCart::getFormattedBonusCouponNextStep()}} €
fehlen noch:{{\App\Services\HomepartyCart::getFormattedBonusCouponFault()}} €
Gutschein Bonus:{{\App\Services\HomepartyCart::getFormattedBonusCoupon()}} €
Gutschein Gesamt{{\App\Services\HomepartyCart::getFormattedBonusTotal()}} €
diff --git a/resources/views/user/homeparty/show_calc_bonus_host.blade.php b/resources/views/user/homeparty/show_calc_bonus_host.blade.php new file mode 100644 index 0000000..71fcad9 --- /dev/null +++ b/resources/views/user/homeparty/show_calc_bonus_host.blade.php @@ -0,0 +1,39 @@ + + @php($user_cart = \App\Services\HomepartyCart::getUserCartHost()) + @if(\App\Services\HomepartyCart::$is_bonus) + + Gutschrift Homeparty Gutschein +   +   + - {{ \App\Services\HomepartyCart::getFormattedBonusValue() }} € + + @endif + @if(\App\Services\HomepartyCart::$is_bonus_coupon) + + Gutschrift Bonus +   +   + - {{ \App\Services\HomepartyCart::getFormattedBonusCoupon() }} € + + @endif + @if(\App\Services\HomepartyCart::$is_bonus) + + Abzug Points durch Gutschein + - {{ \App\Services\HomepartyCart::getFormattedBonusPointsDiff() }} +   +   + + @endif + + Versandkosten: +   +   + {{$user_cart->getFormattedShippingPrice()}} € + + + Gesamt: + {{$user_cart->getFormattedEkPrice()}} € + {{$user_cart->getFormattedPoints()}} + {{$user_cart->getFormattedIncomePrice()}} € + {{$user_cart->getFormattedPrice()}} € + diff --git a/resources/views/user/homeparty/show_products_order.blade.php b/resources/views/user/homeparty/show_products_order.blade.php new file mode 100644 index 0000000..241cc45 --- /dev/null +++ b/resources/views/user/homeparty/show_products_order.blade.php @@ -0,0 +1,121 @@ +@if($homeparty_guest && $homeparty_guest->homeparty_user_order_items->count() || $homeparty_guest->is_host) +
+ + + + + + + + + + + + + + + @foreach($homeparty_guest->homeparty_user_order_items as $value) + + + + + + + + + + + @endforeach + + + + @php($user_cart = \App\Services\HomepartyCart::getUserCart($homeparty_guest->id)) + @if(!$homeparty_guest->is_host) + + + @if(!$homeparty_guest->isAddress()) + + @else + + + @endif + + @if($homeparty_guest->getDelivery() === 'direct') + + + + + + + @endif + + + + + + + + + @else + + @include('user.homeparty.show_calc_bonus_host') + + @endif + +
{{__('Bild')}}{{__('Produkt')}}{{__('Anzahl')}}{{__('Marge')}}{{__('EK-Preis')}}{{__('Points')}}{{__('Verdienst')}}{{__('VK-Preis')}}
+ @if(count($value->product->images)) + + @endif + + {{ $value->product->name }} +
+
Inhalt: {{ $value->product->contents }}
+
Art.-Nr.: {{ $value->product->number }}
+
+ @if(!$homeparty->completed) + + @endif +
+ @if(!$homeparty->completed) +
+
+ + + + + + + +
+
+ @else + {{$value->qty}} + @endif +
+ {{ $value->margin }}% + + {{ $value->getFormattedTotalEKPrice() }} € + + {{ $value->getFormattedTotalPoints() }} + + {{ $value->getFormattedTotalIncomePrice() }} € + + {{ $value->getFormattedTotalPrice() }} € +
+

Keine Lieferadresse angelegt

+
  + @if(!$homeparty->completed) + + + @else + @if($homeparty_guest->getDelivery() === 'host') Lieferung an Gastgeber @endif + @if($homeparty_guest->getDelivery() === 'direct') Lieferung direkt an den Gast @endif + @endif +  
Versandkosten  {{$user_cart->getFormattedShippingPrice()}} €
Gesamt:{{$user_cart->getFormattedEkPrice()}} €{{$user_cart->getFormattedPoints()}}{{$user_cart->getFormattedIncomePrice()}} €{{$user_cart->getFormattedPrice()}} €
+
+@endif \ No newline at end of file diff --git a/resources/views/user/homeparty/show_total_order.blade.php b/resources/views/user/homeparty/show_total_order.blade.php new file mode 100644 index 0000000..06f245b --- /dev/null +++ b/resources/views/user/homeparty/show_total_order.blade.php @@ -0,0 +1,102 @@ +
+ + + + + + + + + + + + @if($homeparty->homeparty_host) + @php($user_cart = \App\Services\HomepartyCart::getUserCart($homeparty->homeparty_host->id)) + + + + + + + + @endif + + @if($homeparty->homeparty_guests) + @php($g_count = 1) + @foreach($homeparty->homeparty_guests as $homeparty_guest) + @php($user_cart = \App\Services\HomepartyCart::getUserCart($homeparty_guest->id)) + + + + + + + + + @endforeach + @endif + + + + + @if(\App\Services\HomepartyCart::$is_bonus) + + + + + + @endif + + + + + + + + + + + + + + + + + + + + + + + + +
 {{__('EK-Preis')}}{{__('Points')}}{{__('Verdienst')}}{{__('VK-Preis')}}
+ Gastgeber/in {{$homeparty->homeparty_host->billing_firstname}} {{$homeparty->homeparty_host->billing_lastname}} + + {{$user_cart->getFormattedEkPrice()}} € + + {{$user_cart->getFormattedPoints()}} + + {{$user_cart->getFormattedIncomePrice()}} € + + {{$user_cart->getFormattedPrice()}} € +
+ {!! $g_count++ !!}. Gast {{$homeparty_guest->billing_firstname}} {{$homeparty_guest->billing_lastname}} + + {{$user_cart->getFormattedEkPrice()}} € + + {{$user_cart->getFormattedPoints()}} + + {{$user_cart->getFormattedIncomePrice()}} € + + {{$user_cart->getFormattedPrice()}} € +
+ {{ \App\Services\HomepartyCart::$voucher_name }} + {{ App\Services\HomepartyCart::getFormattedBonusPrice() }}€
+ Gesamtsummen: + {{\App\Services\HomepartyCart::getFormattedEkPrice()}} €{{\App\Services\HomepartyCart::getFormattedPoints()}}{{\App\Services\HomepartyCart::getFormattedIncomePrice()}} €{{\App\Services\HomepartyCart::getFormattedPrice()}} €
+ Summe ohne MwSt: +    {{\App\Services\HomepartyCart::getFormattedPriceNet()}} €
+ Enthaltene MwSt: +    {{\App\Services\HomepartyCart::getFormattedPriceTax()}} €
+
\ No newline at end of file diff --git a/resources/views/user/membership/_abo_options.blade.php b/resources/views/user/membership/_abo_options.blade.php new file mode 100644 index 0000000..f24c121 --- /dev/null +++ b/resources/views/user/membership/_abo_options.blade.php @@ -0,0 +1,8 @@ + +
+ +
\ No newline at end of file diff --git a/resources/views/user/membership/_change.blade.php b/resources/views/user/membership/_change.blade.php new file mode 100644 index 0000000..5a8b909 --- /dev/null +++ b/resources/views/user/membership/_change.blade.php @@ -0,0 +1,51 @@ + + + + +
+
+ + {!! Form::open(['url' => route('user_membership_store', ['change_order']), 'class' => 'form-horizontal']) !!} +
+ + + @foreach($products as $product) + + + + + + + + @endforeach + +
+ + +
+ @if(count($product->images)) + + @endif +
+
{{$product->name}} @if($product->id == $user->payment_order_id) (aktives Paket) @endif
+ {!! $product->getLang('copy') !!} +
+
+
{{$product->getFormattedPrice()}} EUR / p.a.
+
+
+
+   +
+ {!! Form::close() !!} + +
+
+ \ No newline at end of file diff --git a/resources/views/user/membership/_payment.blade.php b/resources/views/user/membership/_payment.blade.php new file mode 100644 index 0000000..54ef574 --- /dev/null +++ b/resources/views/user/membership/_payment.blade.php @@ -0,0 +1,57 @@ + + + + +
+
+ + {!! Form::open(['url' => route('user_membership_store', ['payment']), 'class' => 'form-horizontal']) !!} +
+ + + @foreach($products as $product) + + + + + + @endforeach + +
+ + +
+ @if(count($product->images)) + + @endif +
+
{{$product->name}}
+ {!! $product->getLang('copy') !!} +
+
+
{{$product->getFormattedPrice()}} EUR / p.a.
+
+
+
+ +
+   +

+ Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. +
+ {!! Form::close() !!} + +
+
+ \ No newline at end of file diff --git a/resources/views/user/membership/_payment_order.blade.php b/resources/views/user/membership/_payment_order.blade.php new file mode 100644 index 0000000..49de01f --- /dev/null +++ b/resources/views/user/membership/_payment_order.blade.php @@ -0,0 +1,65 @@ + + + + +
+
+
Dein gebuchtes Paket
+ {!! Form::open(['url' => route('user_membership_store', ['payment_order']), 'class' => 'form-horizontal']) !!} +
+ + + @foreach($products as $product) + @if($product->id === $user->payment_order_id || $product->identifier === 'show_order') + + + + + + @endif + @endforeach + +
+ + +
+ @if(count($product->images)) + + @endif +
+
{{$product->name}}
+ {!! $product->getLang('copy') !!} +
+
+
{{$product->getFormattedPrice()}} EUR / p.a.
+
+
+ @if(!$user->isAboOption()) +
+ +
+ @else +

Alternativ hast Du die Möglichkeit jetzt direkt Deine Mitgliedschaft mit anderen Zahlungsmöglichkeite zu bezahlen.
+ Ist die Mitgliedschaft vor dem {!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!} bezahlt, wird das SEPA Mandart nicht ausgeführt!

+
+ @endif +   +

+ Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. +
+ {!! Form::close() !!} + +
+
+ \ No newline at end of file diff --git a/resources/views/user/membership/_upgrade.blade.php b/resources/views/user/membership/_upgrade.blade.php new file mode 100644 index 0000000..6603b45 --- /dev/null +++ b/resources/views/user/membership/_upgrade.blade.php @@ -0,0 +1,46 @@ + +{!! Form::open(['url' => route('user_membership_store', ['upgrade_order']), 'class' => 'form-horizontal']) !!} + +
+ + + @foreach($upgrade as $product) + + + + + + + + + + @endforeach + +
+ + +
+ @if(count($product->images)) + + @endif +
+
{{$product->name}}
+ {!! $product->getLang('copy') !!} +
+
+
{{$product->getFormattedPrice()}} EUR / Monat
Restlaufzeit: {{$diff_months}} @if($diff_months==1) Monat @else Monate @endif {!! Util::formatNumber($diff_months * $product->price) !!} EUR
+
+
+ @include('user.membership._abo_options') +   +

+ Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. +
+{!! Form::close() !!} \ No newline at end of file diff --git a/resources/views/user/membership/index.blade.php b/resources/views/user/membership/index.blade.php new file mode 100644 index 0000000..56f33bf --- /dev/null +++ b/resources/views/user/membership/index.blade.php @@ -0,0 +1,255 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif +

+ {{ __('navigation.my_membership') }} +

+
+
+ + @if($user->isRenewalAccount()) +
+
Deine Mitglidschaft wurde am {{ $user->nextRenewalAccount() }} verlängert.
+
+ @if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2) +
Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryPaymentOrder->getStatusType())}}
+ @endif + @if($user->payment_account && $user->isAboOption()) + @if($user->payment_account && $user->isAboOption()) + @if($user->daysActiveAccount() < config('mivita.abo_booking_days') ) +

Wir konnten am {!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!} Deine Mitgliedschaftsgebühr nicht automatisch per SEPA Mandat einziehen.
+ @else +

Deine automatische Verlängerung ist aktiv, wir werden am {!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!} Deine Mitgliedschaftsgebühr automatisch per SEPA Mandat einziehen.
+ @endif +


+ @endif + @else + @if($user->payment_order_id && $user->payment_order_product->identifier === 'show_upgrade') +

+ @endif + @endif + @if($user->payment_order_id) + @if($user->payment_order_product->identifier === 'show_upgrade') +

Eine Rückstufung Deiner Berater-Mitgliedschaft ist nicht mehr möglich.

+

Du hast die Möglichkeit Dein Paket zu upgraden, wähle einfach das erweiterte Paket aus und gehe weiter zur Zahlung.

+ @endif + @if($user->payment_order_product->identifier === 'show_order') +

Eine Änderung Deines Berater-Paketes ist nicht mehr möglich.

+ @endif + @endif + + @if($userHistoryPaymentOrder && $userHistoryPaymentOrder->status > 2) +
+ +
+
+ @include('user.membership._payment_order') +
+ @else + @include('user.membership._payment_order') + @endif +
+
+ @else + + {{-- no Shop - Upgrade --}} + @if($user->isActiveAccount() && !$user->isActiveShop()) +
+
{{__('MIVITA BUSINESS Paket')}} {{__('Upgrade')}}
+
+ @if($userHistoryUpgradeOrder && $userHistoryUpgradeOrder->status > 2) +
Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryUpgradeOrder->getStatusType())}}
+ @endif +
Erweitere jetzt Deine Mitglidschaft auf MIVITA BUSINESS Paket!
+

Berechnet werden die restlichen Monate bis zur Berater-Mitgliedschaft Verlängerung. Danach wird jährlich der MIVITA BUSINESS Paketpreis berechnet.

+ @if($userHistoryUpgradeOrder && $userHistoryUpgradeOrder->status > 2) +
+ +
+
+ @include('user.membership._upgrade') +
+ @else + @include('user.membership._upgrade') + @endif + +
+
+ @endif + + {{-- upgrade downgrade next booking --}} + @if($user->payment_account) +
+
{{__('Mitgliedschaft')}} {{__('anpassen')}}
+
+
Du kannst Deine Mitglidschaft bis zur nächsten Vertragsverlängerung, am {{ $user->nextRenewalAccount() }}, ändern.
+

Die restlichen Laufzeiten bleiben erhalten, erst mit der Verlängerung wird das geänderte Paket aktiv.

+ @include('user.membership._change') +
+
+ @endif + + + + @endif + + + {{-- remove ABO Options --}} + @if($user->payment_account && $user->isAboOption()) +
+ {!! Form::open(['url' => route('user_membership_store', ['remove_abo']), 'class' => 'form-horizontal']) !!} +
{{__('payment.status.auto_renewal_hl')}} {{__('deaktivieren')}}
+ +
+

Automatische Verlängerung dekativeren und SEPA Mandat zurückziehen.
+ Die nächste Buchung ist am: {!! Carbon::parse($user->payment_account)->modify('-'.config('mivita.abo_booking_days').' days')->format('d.m.Y') !!}

+ + +   +
+ {!! Form::close() !!} +
+ @endif + + @if($user->payment_account) +
+ {!! Form::open(['url' => route('user_membership_store', ['delete_membership']), 'class' => 'form-horizontal']) !!} +
{{__('Mitgliedschaft')}} {{__('beenden')}}
+ +
+ +

Du möchtest kein MIVITA Berater mehr sein und Deine Mitgliedschaft beenden?
+ Damit gibst du alle möglichen Provisionen, Vergünstigungen, Zugang zum Sales-Center und noch viel mehr auf. Mit absenden dieser Option erhalten wir ein Nachricht und kümmern uns um die Löschung Deines Accounts. Dieser Vorgang kann ein paar Tage dauern.

+ + @if($userHistoryDeleteMembership && $userHistoryDeleteMembership->status == 50) +

Die Beendigung und Löschung Deiner MIVITA Mitgliedschaft ist beantragt.
+ @else + +   + @endif +

+ {!! Form::close() !!} + +
+ @endif + +
+
+ +
+
{{ __('Mitgliedschaft Details') }}
+
    + +
  • +
    {{__('gebuchtes Paket')}}
    +
    + @if($user->payment_order_id) + {{ $user->payment_order_product->name }} + @endif +
    +
  • +
  • +
    {{__('Vertragsverlängerung')}}
    +
    + @if($user->payment_account) + {{ $user->nextRenewalAccount() }} + @endif +
    +
  • +
  • +
    {{ __('Berater-Mitgliedschaft') }}
    +
    + @if($user->isActiveAccount() ) + {{ __('aktiv') }} + @else + {{ __('inaktiv') }} + @endif +
    +
  • + @if($user->isActiveAccount() ) +
  • +
    {{__('bis zum')}}
    +
    + {{ $user->getPaymentAccountDateFormat() }} +
    +
  • + @else + @if($user->payment_account) +
  • +
    {{__('abgelaufen am')}}
    +
    + {{ $user->getPaymentAccountDateFormat() }} +
    +
  • + @endif + @endif +
  • +
    {{ __('Berater-Online-Shop') }}
    +
    + @if($user->isActiveShop() ) + {{ __('aktiv') }} + @else + {{ __('inaktiv') }} + @endif +
    +
  • + @if($user->isActiveShop() ) +
  • +
    {{__('bis zum')}}
    +
    + {{ $user->getPaymentShopDateFormat() }} +
    +
  • + @else + @if($user->payment_shop) +
  • +
    {{__('abgelaufen am')}}
    +
    + {{ $user->getPaymentShopDateFormat() }} +
    +
  • + @endif + @endif + +
  • +
    {{__('payment.status.auto_renewal_hl')}}
    +
    + @if($user->isAboOption()) + {{ __('aktiv') }} + @else + {{ __('inaktiv') }} + @endif +
    +
  • + +
+
+ +
+
+ +@endsection diff --git a/resources/views/user/order/_bak_shipping_me.blade.php b/resources/views/user/order/_bak_shipping_me.blade.php new file mode 100644 index 0000000..ada4e53 --- /dev/null +++ b/resources/views/user/order/_bak_shipping_me.blade.php @@ -0,0 +1,215 @@ + +@if($user->account) + @if($user->account->same_as_billing) + + +
+
+
+ + {{ Form::text('shipping_company', $user->account->company, array('placeholder'=>__('Company name'), 'class'=>'form-control')) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_firstname', $user->account->first_name, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif + +
+
+ + {{ Form::text('shipping_lastname', $user->account->last_name, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address', $user->account->address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address_2', $user->account->address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control')) }} +
+
+
+
+ + {{ Form::text('shipping_zipcode', $user->account->zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif +
+
+ + {{ Form::text('shipping_city', $user->account->city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('shipping_state')) + + {{ $errors->first('shipping_state') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_phone', $user->account->phone, array('placeholder'=>__('Phone'), 'class'=>'form-control')) }} +
+
+
+ + @else + +
+
+
+ + {{ Form::text('shipping_company', $user->account->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control')) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_firstname', $user->account->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif +
+
+ + {{ Form::text('shipping_lastname', $user->account->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif + +
+
+
+
+ + {{ Form::text('shipping_address', $user->account->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address_2', $user->account->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control')) }} + @if ($errors->has('shipping_address_2')) + + {{ $errors->first('shipping_address_2') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_zipcode', $user->account->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif + +
+
+ + {{ Form::text('shipping_city', $user->account->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('shipping_state')) + + {{ $errors->first('shipping_state') }} + + @endif +
+
+ +
+
+ + {{ Form::text('shipping_phone', $user->account->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control')) }} +
+
+
+ @endif +@else +

Fehler: Keine Adressdaten gefunden!

+@endif \ No newline at end of file diff --git a/resources/views/user/order/_bak_shipping_ot.blade.php b/resources/views/user/order/_bak_shipping_ot.blade.php new file mode 100644 index 0000000..620bf93 --- /dev/null +++ b/resources/views/user/order/_bak_shipping_ot.blade.php @@ -0,0 +1,210 @@ + + @if($shopping_user->same_as_billing) + +
+
+
+ + {{ Form::text('shipping_company', $shopping_user->billing_company, array('placeholder'=>__('Company name'), 'class'=>'form-control')) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_firstname', $shopping_user->billing_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif + +
+
+ + {{ Form::text('shipping_lastname', $shopping_user->billing_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address', $shopping_user->billing_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address_2', $shopping_user->billing_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control')) }} +
+
+
+
+ + {{ Form::text('shipping_zipcode', $shopping_user->billing_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif +
+
+ + {{ Form::text('shipping_city', $shopping_user->billing_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('shipping_state')) + + {{ $errors->first('shipping_state') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_phone', $shopping_user->billing_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control')) }} +
+
+
+ + @else + +
+
+
+ + {{ Form::text('shipping_company', $shopping_user->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control')) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_firstname', $shopping_user->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif +
+
+ + {{ Form::text('shipping_lastname', $shopping_user->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif + +
+
+
+
+ + {{ Form::text('shipping_address', $shopping_user->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address_2', $shopping_user->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control')) }} + @if ($errors->has('shipping_address_2')) + + {{ $errors->first('shipping_address_2') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_zipcode', $shopping_user->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif + +
+
+ + {{ Form::text('shipping_city', $shopping_user->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true)) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('shipping_state')) + + {{ $errors->first('shipping_state') }} + + @endif +
+
+ +
+
+ + {{ Form::text('shipping_phone', $shopping_user->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control')) }} +
+
+
+ @endif \ No newline at end of file diff --git a/resources/views/user/order/comp_product.blade.php b/resources/views/user/order/comp_product.blade.php new file mode 100644 index 0000000..05ada8d --- /dev/null +++ b/resources/views/user/order/comp_product.blade.php @@ -0,0 +1,42 @@ + +
+
+ @if($comp_products && Yard::instance('shopping')->getNumComp() > 0) + + @for($i = 1; $i <= Yard::instance('shopping')->getNumComp(); $i++) + @if(Yard::instance('shopping')->getNumComp() > 1) +

{{$i}}. Versand Kompensationsprodukt

+ @else +

Versand Kompensationsprodukt

+ @endif +
+ @php($counter = 1) + @php($checked_id = Yard::instance('shopping')->getCompProductBy($i)) + @foreach($comp_products as $comp_product) + +
+
+ @if(count($comp_product->images)) + + @endif +
+
+ +
{{ $comp_product->name }}
+
Art-Nr.: {{ $comp_product->number }}
+
+
+ @php($counter++) + @endforeach +
+ @endfor + @endif +
+
\ No newline at end of file diff --git a/resources/views/user/order/delivery.blade.php b/resources/views/user/order/delivery.blade.php new file mode 100644 index 0000000..ddc9e42 --- /dev/null +++ b/resources/views/user/order/delivery.blade.php @@ -0,0 +1,114 @@ +@extends('layouts.layout-2') + +@section('content') +

+ {{ __('navigation.my_orders') }} / {{ __('navigation.do_order') }} +

+ + + +
+
+ + {!! Form::open(['url' => route('user_order_my_delivery', [$for, $delivery_id]), 'class' => 'form-horizontal']) !!} + +

Lieferdaten

+
+ + + +
+
+ + + @if($shopping_user) +
+
+
+ +
+
+ +
+ +
+ @else +
+ +
+ @endif +
+ {!! Form::close() !!} + +
+ + +@endsection + diff --git a/resources/views/user/order/detail.blade.php b/resources/views/user/order/detail.blade.php new file mode 100644 index 0000000..54c29ee --- /dev/null +++ b/resources/views/user/order/detail.blade.php @@ -0,0 +1,11 @@ +@extends('layouts.layout-2') + +@section('content') +

+ zurück + {{ __('Bestellung Kunde') }} #{{$shopping_order->id}} +

+ @include('admin.sales._detail') + zurück + +@endsection \ No newline at end of file diff --git a/resources/views/user/order/index.blade.php b/resources/views/user/order/index.blade.php new file mode 100644 index 0000000..8ea7efb --- /dev/null +++ b/resources/views/user/order/index.blade.php @@ -0,0 +1,59 @@ +@extends('layouts.layout-2') + +@section('content') +

+ {{ __('navigation.my_orders') }} / {{ __('navigation.overview') }} +

+ +
+
+ + + + + + + + + + + + + + + + + +
#{{__('Datum')}}{{__('Betrag')}}{{__('Zahlung')}}{{__('Status')}}{{__('Versand')}}{{__('Art')}}{{__('First name')}}{{__('Last name')}}{{__('E-Mail')}}{{__('Rf-Nr.')}}
+
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/user/order/list.blade.php b/resources/views/user/order/list.blade.php new file mode 100644 index 0000000..d5b8167 --- /dev/null +++ b/resources/views/user/order/list.blade.php @@ -0,0 +1,193 @@ +@extends('layouts.layout-2') + +@section('content') +

+ {{ __('navigation.my_orders') }} / {{ __('navigation.do_order') }} + zurück +
+

+ + @if($user->user_level) +

Die Produktpreise werden entsprechend Deinem Karriere-Level {{$user->user_level->name}} abzüglich {{$user->user_level->getFormattedMargin()}} % Marge angezeigt. Hinweis: Wenn Du den Warenkorb verlässt, gehen alle Einstellungen verloren.

+ @else +

Hinweis: Dir wurde noch kein Karriere-Level zugewisen. Bitte wende dich an info@mivita.care

+ @endif + + @if($errors->has('switchers-comp-product')) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + + +
+
+ + + + + + + + + + + + + + + + +
{{__('Bild')}}{{__('Produkt')}}{{__('Mein Preis netto')}}{{__('Mein Preis brutto')}}{{__('Points')}}{{__('VK-Preis brutto')}}{{__('Inhalt (ml)')}}{{__('Artikelnummer')}}#
+
+
+ + {!! Form::open(['url' => route('user_order_my_payment', [$for, $delivery_id]), 'class' => 'form-horizontal']) !!} + + +
+
+ @if($for === 'ot') +

Lieferland des Kunden

+ @include('user.order.shipping_ot') + @endif + @if($for === 'me') +

Mein Lieferland

+ @include('user.order.shipping_me') + Kann bei der Zahlung/Checkout nicht mehr geändert werden. + @endif +
+
+ + @if($for === 'me') +
+ @include('user.order.comp_product') +
+ @endif + +
+
+

Warenkorb

+
+ @include('user.order.yard_view_form') +
+
+
+
+ zurück +
+ + {!! Form::close() !!} + + + +@endsection + +@section('scripts') + +@endsection diff --git a/resources/views/user/order/list_form.blade.php b/resources/views/user/order/list_form.blade.php new file mode 100644 index 0000000..9206917 --- /dev/null +++ b/resources/views/user/order/list_form.blade.php @@ -0,0 +1,103 @@ + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProduktPreisAnzahlSumme
+
+ +
+ Nike Men Black Liteforce III Sneakers + + Color: +   + Size: EU 37   + Ships from: China + +
+
+
+ $57.55 + + + + 115.1 € + + × +
+
+ +
+ WALKING 400 BLUE CAT3 + + Ships from: Germany + +
+
+
+ $20.55 + + + + $20.55 + + × +
+
+ + +
+
+ {{-- + + --}} +
+
+
+ +
$20
+
+
+ +
$1164.65
+
+
+
+
+
+ +
+ diff --git a/resources/views/user/order/shipping_me.blade.php b/resources/views/user/order/shipping_me.blade.php new file mode 100644 index 0000000..1ddd39a --- /dev/null +++ b/resources/views/user/order/shipping_me.blade.php @@ -0,0 +1,66 @@ + +@if($user->account) + @if($user->account->same_as_billing) + + + {{ Form::hidden('shipping_company', $user->account->company) }} + {{ Form::hidden('shipping_salutation', $user->account->salutation) }} + {{ Form::hidden('shipping_firstname', $user->account->first_name) }} + {{ Form::hidden('shipping_lastname', $user->account->last_name) }} + {{ Form::hidden('shipping_address', $user->account->address) }} + {{ Form::hidden('shipping_address_2', $user->account->address_2) }} + {{ Form::hidden('shipping_zipcode', $user->account->zipcode) }} + {{ Form::hidden('shipping_city', $user->account->city) }} + {{ Form::hidden('shipping_phone', $user->account->phone) }} + +
+
+
+ + @if ($errors->has('shipping_state')) + + {{ $errors->first('shipping_state') }} + + @endif +
+
+
+ + @else + {{ Form::hidden('shipping_company', $user->account->shipping_company) }} + {{ Form::hidden('shipping_salutation', $user->account->shipping_salutation) }} + {{ Form::hidden('shipping_firstname', $user->account->shipping_firstname) }} + {{ Form::hidden('shipping_lastname', $user->account->shipping_lastname) }} + {{ Form::hidden('shipping_address', $user->account->shipping_address) }} + {{ Form::hidden('shipping_address_2', $user->account->shipping_address_2) }} + {{ Form::hidden('shipping_zipcode', $user->account->shipping_zipcode) }} + {{ Form::hidden('shipping_city', $user->account->shipping_city) }} + {{ Form::hidden('shipping_phone', $user->account->shipping_phone) }} + +
+
+
+ + @if ($errors->has('shipping_state')) + + {{ $errors->first('shipping_state') }} + + @endif +
+
+ +
+
+ + {{ Form::text('shipping_phone', $user->account->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control')) }} +
+
+
+ @endif +@else +

Fehler: Keine Adressdaten gefunden!

+@endif \ No newline at end of file diff --git a/resources/views/user/order/shipping_ot.blade.php b/resources/views/user/order/shipping_ot.blade.php new file mode 100644 index 0000000..b4ecfa4 --- /dev/null +++ b/resources/views/user/order/shipping_ot.blade.php @@ -0,0 +1,56 @@ + + @if($shopping_user->same_as_billing) + + + {{ Form::hidden('shipping_company', $shopping_user->billing_company) }} + {{ Form::hidden('shipping_salutation', $shopping_user->billing_salutation) }} + {{ Form::hidden('shipping_firstname', $shopping_user->billing_first_name) }} + {{ Form::hidden('shipping_lastname', $shopping_user->billing_last_name) }} + {{ Form::hidden('shipping_address', $shopping_user->billing_address) }} + {{ Form::hidden('shipping_address_2', $shopping_user->billing_address_2) }} + {{ Form::hidden('shipping_zipcode', $shopping_user->billing_zipcode) }} + {{ Form::hidden('shipping_city', $shopping_user->billing_city) }} + {{ Form::hidden('shipping_phone', $shopping_user->billing_phone) }} + + +
+
+
+ + @if ($errors->has('shipping_state')) + + {{ $errors->first('shipping_state') }} + + @endif +
+
+
+ + @else + + {{ Form::hidden('shipping_company', $shopping_user->shipping_company) }} + {{ Form::hidden('shipping_salutation', $shopping_user->shipping_salutation) }} + {{ Form::hidden('shipping_firstname', $shopping_user->shipping_firstname) }} + {{ Form::hidden('shipping_lastname', $shopping_user->shipping_lastname) }} + {{ Form::hidden('shipping_address', $shopping_user->shipping_address) }} + {{ Form::hidden('shipping_address_2', $shopping_user->shipping_address_2) }} + {{ Form::hidden('shipping_zipcode', $shopping_user->shipping_zipcode) }} + {{ Form::hidden('shipping_city', $shopping_user->shipping_city) }} + {{ Form::hidden('shipping_phone', $shopping_user->shipping_phone) }} +
+
+
+ + @if ($errors->has('shipping_state')) + + {{ $errors->first('shipping_state') }} + + @endif +
+
+
+ @endif \ No newline at end of file diff --git a/resources/views/user/order/yard_view_form.blade.php b/resources/views/user/order/yard_view_form.blade.php new file mode 100644 index 0000000..20524a4 --- /dev/null +++ b/resources/views/user/order/yard_view_form.blade.php @@ -0,0 +1,222 @@ + +@if(Yard::instance('shopping')->content()->count()) + @if(Yard::instance('shopping')->compCount() > 0) + + +
+ +
+
+
+
 
+
+
+
+
+ Artikel +
+
+ Einzelpreis +
+
+ Anzahl +
+
+
+
+
+ @foreach(Yard::instance('shopping')->getContentByOrder() as $row) + @php($product = \App\Models\Product::find($row->id)) +
+ +
+ @if($row->options->has('image')) + + @else + + @endif +
+ +
+
+
+
+
{{ $row->name }}
+
+
Inhalt: {{ $product->contents }}
+
Art.-Nr.: {{ $product->number }}
+
+
+
+ @if(!$row->options->comp) + Artikel entfernen + @else + @if(Yard::instance('shopping')->getNumComp() > 1) + {{$row->options->comp}}. Kompensationsprodukt + @else + Kompensationsprodukt + @endif + + @endif +
+
+ +
+
{{ Yard::instance('shopping')->rowPriceNet($row, 3) }} €
+
+ +
+
+ @if($row->options->comp) + 1 x + @else + + @endif +
+
+
{{ Yard::instance('shopping')->rowSubtotalNet($row) }} €
+
+ +
+
+
+ +
+ @endforeach +
+
+ + +
+
+

Du hast {{ Yard::instance('shopping')->compCount() }} Artikel in Deinem Warenkorb

+

Gesamte Points: {{ Yard::instance('shopping')->points() }}

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Zwischensumme:{{ Yard::instance('shopping')->subtotal() }} €
Lieferland:{{ Yard::instance('shopping')->getShippingCountryName() }}
Versandkosten: + {{ Yard::instance('shopping')->shippingNet() }} € +
Summe ohne MwSt: + {{ Yard::instance('shopping')->subtotalWithShipping() }} € +
zzgl. MwSt:{{ Yard::instance('shopping')->taxWithShipping() }} €
Gesamtsumme Brutto:{{ Yard::instance('shopping')->totalWithShipping() }} €
+ +
+
+
+
+
+ +
+

+ Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. + @endif + +@endif \ No newline at end of file diff --git a/resources/views/user/shop.blade.php b/resources/views/user/shop.blade.php new file mode 100644 index 0000000..7146f75 --- /dev/null +++ b/resources/views/user/shop.blade.php @@ -0,0 +1,27 @@ +@extends('layouts.layout-2') + +@section('content') + + {{-- @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif +--}} +

+ {{ __('navigation.my_shop') }} +

+ @if($user->shop) + @include('user.components.user_shop_edit') + @else + @include('user.components.user_shop_register') + @endif +@endsection diff --git a/resources/views/user/shop/detail.blade.php b/resources/views/user/shop/detail.blade.php new file mode 100644 index 0000000..12c74aa --- /dev/null +++ b/resources/views/user/shop/detail.blade.php @@ -0,0 +1,12 @@ +@extends('layouts.layout-2') + +@section('content') + +

+ zurück + {{ __('Kunden Details') }} #{{$shopping_user->id}} +

+ @include('admin.customer._detail') + zurück + +@endsection \ No newline at end of file diff --git a/resources/views/user/shop/sales/order_detail.blade.php b/resources/views/user/shop/sales/order_detail.blade.php new file mode 100644 index 0000000..81c48fd --- /dev/null +++ b/resources/views/user/shop/sales/order_detail.blade.php @@ -0,0 +1,11 @@ +@extends('layouts.layout-2') + +@section('content') +

+ zurück + {{ __('Bestellung Kunde') }} #{{$shopping_order->id}} +

+ @include('admin.sales._detail') + zurück + +@endsection \ No newline at end of file diff --git a/resources/views/user/shop/sales/orders.blade.php b/resources/views/user/shop/sales/orders.blade.php new file mode 100644 index 0000000..ef791fb --- /dev/null +++ b/resources/views/user/shop/sales/orders.blade.php @@ -0,0 +1,55 @@ +@extends('layouts.layout-2') + +@section('content') + + +

+ {{ __('Bestellungen Kunden') }} +

+ + +
+
+ + + + + + + + + + + + + + +
#{{__('First name')}}{{__('Last name')}}{{__('E-Mail')}}{{__('Datum')}}{{__('Status')}}{{__('Betrag')}}
+
+
+ +@endsection \ No newline at end of file diff --git a/resources/views/user/team/members.blade.php b/resources/views/user/team/members.blade.php new file mode 100644 index 0000000..6aac39a --- /dev/null +++ b/resources/views/user/team/members.blade.php @@ -0,0 +1,55 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif +

+ {{ __('navigation.my_team') }} +

+
+
Berater registrieren
+
+
+
Link für Beraterregistrierung
+
+
+ + + + +
+
+

Du möchtest einen neuen Berater registrieren? Super, das freut uns. Sende ihm einfach nachfolgenden Link per Mail, WhatsApp oder SMS zu. Er gelangt damit auf die Registrierungsseite von www.mivita.care. Wichtig ist, dass Du diesen Link nicht veränderst, denn die angehängte Berater-ID identifiziert Dich als Sponsor von dem neuen Berater. Nur so können Dir künftige Provisionen durch Umsätze von ihm zugeordnet werden. Nutze das „Kopier-Symbol“, um den Link gleich in Deine Zwischenablage zu kopieren. +

+
+
+ +@endsection diff --git a/resources/views/user/update_email.blade.php b/resources/views/user/update_email.blade.php new file mode 100644 index 0000000..b9b95b9 --- /dev/null +++ b/resources/views/user/update_email.blade.php @@ -0,0 +1,52 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Change E-Mail')}} +
+
+
+
+
+

{{__('Change your e-mail address here. We will send you a new activation link to your new e-mail address to verify it.')}}

+
+
+ + {!! Form::open(['url' => route('user_update_email')]) !!} + +
+ +
+ + @if ($errors->has('email')) + + {{ $errors->first('email') }} + + @endif +
+
+
+ +
+ has('email_confirmation') ? 'is-invalid' : '' }} type="email" name="email_confirmation" placeholder="{{__('Confirm new E-Mail')}}*" required> + @if ($errors->has('email_confirmation')) + + {{ $errors->first('email_confirmation') }} + + @endif +
+
+ +
+
+ + {{ __('back') }} + +
+
+ {!! Form::close() !!} +
+
+@endsection + diff --git a/resources/views/user/update_password.blade.php b/resources/views/user/update_password.blade.php new file mode 100644 index 0000000..b5d9d29 --- /dev/null +++ b/resources/views/user/update_password.blade.php @@ -0,0 +1,54 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Change Password')}} +
+
+ {!! Form::open(['url' => route('user_update_password')]) !!} +
+ +
+ + @if ($errors->has('old_password')) + + {{ $errors->first('old_password') }} + + @endif +
+
+
+ +
+ + @if ($errors->has('password')) + + {{ $errors->first('password') }} + + @endif +
+
+
+ +
+ has('password_confirmation') ? 'is-invalid' : '' }} type="password" name="password_confirmation" placeholder="{{__('Confirm new Password')}}*" required> + @if ($errors->has('password_confirmation')) + + {{ $errors->first('password_confirmation') }} + + @endif +
+
+ +
+
+ + {{ __('back') }} + +
+
+ {!! Form::close() !!} +
+
+@endsection \ No newline at end of file diff --git a/resources/views/user/update_password_first.blade.php b/resources/views/user/update_password_first.blade.php new file mode 100644 index 0000000..173f7cd --- /dev/null +++ b/resources/views/user/update_password_first.blade.php @@ -0,0 +1,43 @@ +@extends('layouts.layout-2') + +@section('content') +
+
+ {{__('Create Password')}} +
+
+ {!! Form::open(['url' => route('user_update_password_first')]) !!} +
+ +
+ + @if ($errors->has('password')) + + {{ $errors->first('password') }} + + @endif +
+
+
+ +
+ has('password_confirmation') ? 'is-invalid' : '' }} type="password" name="password_confirmation" placeholder="{{__('Confirm new Password')}}*" required> + @if ($errors->has('password_confirmation')) + + {{ $errors->first('password_confirmation') }} + + @endif +
+
+ +
+
+ + {{ __('back') }} + +
+
+ {!! Form::close() !!} +
+
+@endsection \ No newline at end of file diff --git a/resources/views/user/update_password_first_form.blade.php b/resources/views/user/update_password_first_form.blade.php new file mode 100644 index 0000000..2449bc0 --- /dev/null +++ b/resources/views/user/update_password_first_form.blade.php @@ -0,0 +1,30 @@ + +
+
+ {{__('Create Password')}} +
+
+
+ +
+ + @if ($errors->has('password')) + + {{ $errors->first('password') }} + + @endif +
+
+
+ +
+ has('password_confirmation') ? 'is-invalid' : '' }} type="password" name="password_confirmation" placeholder="{{__('Confirm new Password')}}*" required> + @if ($errors->has('password_confirmation')) + + {{ $errors->first('password_confirmation') }} + + @endif +
+
+
+
\ No newline at end of file diff --git a/resources/views/user/user_form.blade.php b/resources/views/user/user_form.blade.php new file mode 100644 index 0000000..1e634ef --- /dev/null +++ b/resources/views/user/user_form.blade.php @@ -0,0 +1,452 @@ +
+
+
+
+ Rechnungsadresse +
+
+ * {{trans('register.required_fields')}} + Lieferadresse +
+
+
+ +
+ +
+
+
+
+ + {{ Form::text('company', $user->account->company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'company', 'tabindex' => 1)) }} +
+
+
+
+ + + @if ($errors->has('salutation')) + + {{ $errors->first('salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('first_name', $user->account->first_name, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'first_name', 'required'=>true, 'tabindex' => 4)) }} + @if ($errors->has('first_name')) + + {{ $errors->first('first_name') }} + + @endif + +
+
+ + {{ Form::text('last_name', $user->account->last_name, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'last_name', 'required'=>true, 'tabindex' => 5)) }} + @if ($errors->has('last_name')) + + {{ $errors->first('last_name') }} + + @endif + +
+
+
+
+ + {{ Form::text('address', $user->account->address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'address', 'tabindex' => 6)) }} + @if ($errors->has('address')) + + {{ $errors->first('address') }} + + @endif +
+
+
+
+ + {{ Form::text('address_2', $user->account->address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'address_2', 'tabindex' => 6)) }} +
+
+
+
+ + {{ Form::text('zipcode', $user->account->zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'zipcode', 'tabindex' => 7)) }} + @if ($errors->has('zipcode')) + + {{ $errors->first('zipcode') }} + + @endif +
+
+ + {{ Form::text('city', $user->account->city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'city', 'tabindex' => 8)) }} + @if ($errors->has('city')) + + {{ $errors->first('city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('country_id')) + + {{ $errors->first('country_id') }} + + @endif +
+
+ + {{ Form::text('birthday', $user->account->birthday, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'required'=>true, 'class'=>'form-control datepicker-birthday')) }} +
+
+
+
+ + +
+
+ + {{ Form::text('phone', $user->account->phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'phone', 'tabindex' => 11)) }} +
+
+
+
+ + +
+
+ + {{ Form::text('mobil', $user->account->mobil, array('placeholder'=>__('Mobile Phone'), 'class'=>'form-control', 'id'=>'mobil', 'tabindex' => 13)) }} +
+
+ @if($errors->has('phone') || $errors->has('mobil')) +
Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*
+ @else +
Bitte {{ __('Phone') }} und/oder {{ __('Mobile Phone') }} angeben!*
+ @endif +
+ +
+
+
+
+
+
Lieferadresse
+
+
+
+
+ + {{ Form::text('shipping_company', $user->account->shipping_company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'shipping_company', 'tabindex' => 16)) }} +
+
+
+
+ + + @if ($errors->has('shipping_salutation')) + + {{ $errors->first('shipping_salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_firstname', $user->account->shipping_firstname, array('placeholder'=>__('First name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_firstname', 'tabindex' => 18)) }} + @if ($errors->has('shipping_firstname')) + + {{ $errors->first('shipping_firstname') }} + + @endif +
+
+ + {{ Form::text('shipping_lastname', $user->account->shipping_lastname, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_lastname', 'tabindex' => 19)) }} + @if ($errors->has('shipping_lastname')) + + {{ $errors->first('shipping_lastname') }} + + @endif + +
+
+
+
+ + {{ Form::text('shipping_address', $user->account->shipping_address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_address', 'tabindex' => 20)) }} + @if ($errors->has('shipping_address')) + + {{ $errors->first('shipping_address') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_address_2', $user->account->shipping_address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'shipping_address_2', 'tabindex' => 21)) }} + @if ($errors->has('shipping_address_2')) + + {{ $errors->first('shipping_address_2') }} + + @endif +
+
+
+
+ + {{ Form::text('shipping_zipcode', $user->account->shipping_zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_zipcode', 'tabindex' => 22)) }} + @if ($errors->has('shipping_zipcode')) + + {{ $errors->first('shipping_zipcode') }} + + @endif + +
+
+ + {{ Form::text('shipping_city', $user->account->shipping_city, array('placeholder'=>__('City'), 'class'=>'form-control', 'required'=>true, 'id'=>'shipping_city', 'tabindex' => 23)) }} + @if ($errors->has('shipping_city')) + + {{ $errors->first('shipping_city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('shipping_country_id')) + + {{ $errors->first('shipping_country_id') }} + + @endif +
+
+
+
+ + +
+
+ + {{ Form::text('shipping_phone', $user->account->shipping_phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'shipping_phone', 'tabindex' => 26)) }} +
+
+
+
+
+ +
+
+
+ + @if(!isset($step)) +
+ @if($user->email) +
+
+ + {{ Form::text('email', $user->email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'email', 'readonly'=>true, 'tabindex' => 14)) }} +
+
+ + {{ Form::text('email-confirm', $user->email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'email-confirm', 'readonly'=>true, 'tabindex' => 15)) }} +
+
+ @if(isset($can_change_mail)) + @if(count($user->user_update_email) > 0) +

{{ $user->user_update_email->first()->email }} {{__('waiting for activation since')}} | {{ $user->user_update_email->first()->created_at->format('d.m.Y H:i') }}


+ @endif + {{ __('Contact') }} {{__('Change E-Mail')}} + @else + {{__('Change E-Mail')}} + @endif + @else +
+
+ + {{ Form::text('email', $user->email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'id'=>'email', 'tabindex' => 14)) }} +
+
+ + {{ Form::text('email-confirm', $user->email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'id'=>'email-confirm', 'tabindex' => 15)) }} +
+
+ @endif + @endif +
+
+ +
+
+
+
+ + +

Wähle Kleinunternehmer, wenn Du nicht mehr als 22.000 EUR Umsatz pro Jahr mit Deinem Gewerbe erwirtschaftest.

+
+
+ + {{ Form::text('tax_number', $user->account->tax_number, array('placeholder'=>__('Steuernummer'), 'class'=>'form-control', 'id'=>'tax_number', $user->account->getCountryAttrAs('tax_number','required'))) }} +
+
+ + {{ Form::text('tax_identification_number', $user->account-> tax_identification_number, array('placeholder'=>__('USt-ID Nummer'), 'class'=>'form-control', 'id'=>'tax_identification_number', $user->account->getCountryAttrAs('tax_id_number','required'))) }} +
+ +
+ +
+
+ + diff --git a/resources/views/user/user_new_form.blade.php b/resources/views/user/user_new_form.blade.php new file mode 100644 index 0000000..6229b2a --- /dev/null +++ b/resources/views/user/user_new_form.blade.php @@ -0,0 +1,267 @@ + +
+
+ {{ __('Rechnungsdaten') }} + * {{trans('register.required_fields')}} +
+
+ + +
+
+
+
+ + {{ Form::text('company', $user->account->company, array('placeholder'=>__('Company name'), 'class'=>'form-control', 'id'=>'company', 'tabindex' => 1)) }} +
+
+
+
+ + + @if ($errors->has('salutation')) + + {{ $errors->first('salutation') }} + + @endif +
+
+
+
+ + {{ Form::text('first_name', $user->account->first_name, array('placeholder'=>__('First name'), 'class'=>'form-control', 'id'=>'first_name', 'required'=>true, 'tabindex' => 4)) }} + @if ($errors->has('first_name')) + + {{ $errors->first('first_name') }} + + @endif + +
+
+ + {{ Form::text('last_name', $user->account->last_name, array('placeholder'=>__('Last name'), 'class'=>'form-control', 'id'=>'last_name', 'required'=>true, 'tabindex' => 5)) }} + @if ($errors->has('last_name')) + + {{ $errors->first('last_name') }} + + @endif + +
+
+
+
+ + {{ Form::text('address', $user->account->address, array('placeholder'=>__('Street'), 'class'=>'form-control', 'id'=>'address', 'tabindex' => 6)) }} + @if ($errors->has('address')) + + {{ $errors->first('address') }} + + @endif +
+
+
+
+ + {{ Form::text('address_2', $user->account->address_2, array('placeholder'=>__('Wohnung / Gebäude (optional)'), 'class'=>'form-control', 'id'=>'address_2', 'tabindex' => 6)) }} +
+
+
+
+ + {{ Form::text('zipcode', $user->account->zipcode, array('placeholder'=>__('Postcode'), 'class'=>'form-control', 'id'=>'zipcode', 'tabindex' => 7)) }} + @if ($errors->has('zipcode')) + + {{ $errors->first('zipcode') }} + + @endif +
+
+ + {{ Form::text('city', $user->account->city, array('placeholder'=>__('City'), 'class'=>'form-control', 'id'=>'city', 'tabindex' => 8)) }} + @if ($errors->has('city')) + + {{ $errors->first('city') }} + + @endif +
+
+
+
+ + + @if ($errors->has('country_id')) + + {{ $errors->first('country_id') }} + + @endif +
+
+ + {{ Form::text('birthday', $user->account->birthday, array('placeholder'=>Util::formatDate(), 'data-date-format'=>Util::formatDate(), 'data-start_view'=>2, 'class'=>'form-control datepicker-birthday')) }} +
+
+
+
+ + +
+
+ + {{ Form::text('phone', $user->account->phone, array('placeholder'=>__('Phone'), 'class'=>'form-control', 'id'=>'phone', 'tabindex' => 11)) }} +
+
+
+
+ + +
+
+ + {{ Form::text('mobil', $user->account->mobil, array('placeholder'=>__('Mobile Phone'), 'class'=>'form-control', 'id'=>'mobil', 'tabindex' => 13)) }} +
+
+
+
+
+
+ +
+
+
+
+ +
+
+ + {{ Form::text('email', $user->email, array('placeholder'=>'E-Mail', 'class'=>'form-control', 'required'=>true, 'id'=>'email', 'tabindex' => 14)) }} +
+
+ + {{ Form::text('email-confirm', $user->email, array('placeholder'=>__('Confirm E-Mail'), 'class'=>'form-control', 'required'=>true, 'id'=>'email-confirm', 'tabindex' => 15)) }} +
+
+
+
+{{ Form::hidden('same_as_billing', 1) }} + + diff --git a/resources/views/user/wizard/_change.blade.php b/resources/views/user/wizard/_change.blade.php new file mode 100644 index 0000000..3e2d81e --- /dev/null +++ b/resources/views/user/wizard/_change.blade.php @@ -0,0 +1,39 @@ + + + + +
+
+

Wähle Deine Mitgildschaft:

+
+ + + @foreach($user_levels as $user_level) + + + + + @endforeach + +
+ + +
+
+
{{$user_level->name}}
+ {!! $user_level->getLang('content') !!} +
+
+
+
+ +
+
+ \ No newline at end of file diff --git a/resources/views/user/wizard/_payment.blade.php b/resources/views/user/wizard/_payment.blade.php new file mode 100644 index 0000000..4349311 --- /dev/null +++ b/resources/views/user/wizard/_payment.blade.php @@ -0,0 +1,124 @@ + + + {!! Form::open(['url' => route('wizard_store_payment', [20]), 'class' => 'form-horizontal']) !!} +
+ + + @php($counter = 1) + @foreach($products as $product) + + + + + + @php($counter++) + @endforeach + +
+ + +
+ @if(count($product->images)) + + @endif +
+
{{$product->name}}
+ {!! $product->getLang('copy') !!} +
+
+
{{$product->getFormattedPrice()}} EUR / p.a.
+
+ + @if($products_on_board) +
+ + + @foreach($products_on_board as $product) + + + + + + @endforeach + +
+ + +
+ @if(count($product->images)) + + @endif +
+
{{$product->name}}
+ {!! $product->getLang('copy') !!} +
+
+
{{$product->getFormattedPrice()}} EUR / p.a.
+
+ @endif + + + {{--
+
+ + --}} +
+ + +
+ Gesamtsumme: 0 +
+
+
+ +
+ +
+
+
+ + {{-- Du wirst auf unseren checkout Server weitergeletet, die Verbindung ist SSL verschlüsselt. --}} + {!! Form::close() !!} + \ No newline at end of file diff --git a/resources/views/user/wizard/create.blade.php b/resources/views/user/wizard/create.blade.php new file mode 100644 index 0000000..972646f --- /dev/null +++ b/resources/views/user/wizard/create.blade.php @@ -0,0 +1,141 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Registrierung abschließen') }} +

+ +
+ + +
+
+
+ {!! Form::open(['url' => route('wizard_store_create', [10]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation-confirm']) !!} + @include('user.data_confirm') +
+   +
+ {!! Form::close() !!} +
+
+
+
+ @if(!$user->isPasswort()) + {!! Form::open(['url' => route('wizard_store_create', [11])]) !!} + @include('user.update_password_first_form') +
+   +
+ {!! Form::close() !!} + @else + {!! Form::open(['url' => route('wizard_store_create', [11])]) !!} +

Passwort wurde bereits erstellt.

+   + {!! Form::close() !!} + @endif +
+
+
+
+ {!! Form::open(['url' => route('wizard_store_create', [12]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + @include('user.user_form') +
+   +
+ {!! Form::close() !!} +
+
+
+
+ @if($userHistoryWizardPayment && $userHistoryWizardPayment->status > 2) +
Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryWizardPayment->getStatusType())}}
+
+ +
+
+ @include('user.wizard._payment') +
+ + @else + @include('user.wizard._payment') + @endif +
+
+
+
+ + + + + +@endsection diff --git a/resources/views/user/wizard/create_release.blade.php b/resources/views/user/wizard/create_release.blade.php new file mode 100644 index 0000000..435aca8 --- /dev/null +++ b/resources/views/user/wizard/create_release.blade.php @@ -0,0 +1,37 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Registrierung abgeschlossen') }} +

+ +
+
+
+
+

{{ trans('register.wizard_create_release_hl') }}

+

{!! trans('register.wizard_create_release_line_1') !!}

+
+
+
+
+@endsection + +@section('scripts') + +@endsection \ No newline at end of file diff --git a/resources/views/user/wizard/register.blade.php b/resources/views/user/wizard/register.blade.php new file mode 100644 index 0000000..e294849 --- /dev/null +++ b/resources/views/user/wizard/register.blade.php @@ -0,0 +1,331 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Registrierung abschließen') }} +

+ +
+ + +
+
+ +
+ {!! Form::open(['url' => route('wizard_store_register', [0]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation-confirm']) !!} + @include('user.data_confirm') +
+   +
+ {!! Form::close() !!} +
+
+
+
+ {!! Form::open(['url' => route('wizard_store_register', [1]), 'class' => 'form-horizontal', 'id'=>'lead-form-validation']) !!} + @include('user.user_form') +
+   +
+ {!! Form::close() !!} +
+
+
+
+
+
+ {{ trans('register.wizard_verification_hl') }} +
+
+
+
+
+ {!! Form::open([ 'url' => route('wizard_store_register', [2]), 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'idcardDropzone' ]) !!} +
+ +
+ {!! Form::close() !!} +
+ +

{{ trans('register.wizard_verification_line_1') }}

+
+
+
+ @if($user->files->count()) +
+ @foreach($user->files()->whereIdentifier('id_card')->get() as $file) +
+
+
+
{{ $file->original_name }}
+

{{ $file->formatBytes() }} + + + +

+
+ @if(strtolower($file->ext ) == 'pdf') + + @else + + @endif +
+
+ @endforeach +
+ @endif +
+
+
+
+
+ {!! Form::open(['url' => route('wizard_store_register', [2])]) !!} +   + {!! Form::close() !!} +
+
+
+
+
+
+
+ {{ trans('register.wizard_business_license_hl') }} +
+
+
+
+
+ {!! Form::open([ 'url' => route('wizard_store_register', [3]), 'method' => 'post', 'files' => true, 'enctype' => 'multipart/form-data', 'class' => 'dropzone', 'id' => 'businesslDropzone' ]) !!} +
+ +
+ {!! Form::close() !!} +
+ +

{{ trans('register.wizard_business_license_line_1') }}

+
+
+
+ @if($user->files->count()) +
+ @foreach($user->files()->whereIdentifier('business_license')->get() as $file) +
+
+
+
{{ $file->original_name }}
+

{{ $file->formatBytes() }} + + + +

+
+ @if(strtolower($file->ext ) == 'pdf') + + @else + + @endif +
+
+ @endforeach +
+ @endif +
+
+
+ {!! Form::open(['url' => route('wizard_store_register', [3])]) !!} + @php($business_license_choose = $user->account->getNotice('business_license')) +
+
+
+
+
+ +
+
+
+ +
+
+
+ + +

{{__('register.business_license_non_text')}}

+ {{ Form::textarea('non_business_license_reason', $user->account->getNotice('business_license_reason'), array('placeholder'=>__('Begründung'), 'class'=>'form-control', 'rows'=>' 2')) }} + +
+
+
+   +
+
+
+ {!! Form::close() !!} +
+
+
+
+
+

{{ trans('register.wizard_finish_hl') }}

+ {!! Form::open(['url' => route('wizard_store_register', [4])]) !!} + @include('user.wizard._change') +

{{ trans('register.wizard_finish_line_1') }}.

+   + {!! Form::close() !!} +
+
+
+
+@endsection + +@section('scripts') + + + +@endsection \ No newline at end of file diff --git a/resources/views/user/wizard/register_payment.blade.php b/resources/views/user/wizard/register_payment.blade.php new file mode 100644 index 0000000..b578a50 --- /dev/null +++ b/resources/views/user/wizard/register_payment.blade.php @@ -0,0 +1,75 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Registrierung abschließen') }} +

+ +
+ + +
+
+
+ @if($userHistoryWizardPayment && $userHistoryWizardPayment->status > 2) +
Eine Zahlung wurde ausgeführt. Status: {{ trans('payment.status.'.$userHistoryWizardPayment->getStatusType())}}
+
+ +
+
+ @include('user.wizard._payment') +
+ @else + @include('user.wizard._payment') + @endif +
+
+
+
+ + + + + +@endsection diff --git a/resources/views/user/wizard/register_release.blade.php b/resources/views/user/wizard/register_release.blade.php new file mode 100644 index 0000000..825bce7 --- /dev/null +++ b/resources/views/user/wizard/register_release.blade.php @@ -0,0 +1,37 @@ +@extends('layouts.layout-2') + +@section('content') + + @if ($errors->any()) +
+
+
+
    + @foreach ($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + +

+ {{ __('Registrierung abgeschlossen') }} +

+ +
+
+
+
+

{{ trans('register.wizard_reg_release_hl') }}

+

{!! trans('register.wizard_reg_release_line_1') !!}

+
+
+
+
+@endsection + +@section('scripts') + +@endsection \ No newline at end of file diff --git a/resources/views/vendor/flash/message.blade.php b/resources/views/vendor/flash/message.blade.php new file mode 100644 index 0000000..7d8af13 --- /dev/null +++ b/resources/views/vendor/flash/message.blade.php @@ -0,0 +1,27 @@ +@foreach (session('flash_notification', collect())->toArray() as $message) + @if ($message['overlay']) + @include('flash::modal', [ + 'modalClass' => 'flash-modal', + 'title' => $message['title'], + 'body' => $message['message'] + ]) + @else + + @endif +@endforeach + +{{ session()->forget('flash_notification') }} diff --git a/resources/views/vendor/flash/modal.blade.php b/resources/views/vendor/flash/modal.blade.php new file mode 100644 index 0000000..41b821c --- /dev/null +++ b/resources/views/vendor/flash/modal.blade.php @@ -0,0 +1,19 @@ + diff --git a/resources/views/vendor/mail/html/button.blade.php b/resources/views/vendor/mail/html/button.blade.php new file mode 100644 index 0000000..bf35c79 --- /dev/null +++ b/resources/views/vendor/mail/html/button.blade.php @@ -0,0 +1,19 @@ + + + + +
+ + + + +
+ + + + +
+ {{ $slot }} +
+
+
diff --git a/resources/views/vendor/mail/html/footer.blade.php b/resources/views/vendor/mail/html/footer.blade.php new file mode 100644 index 0000000..c3f9360 --- /dev/null +++ b/resources/views/vendor/mail/html/footer.blade.php @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/resources/views/vendor/mail/html/header.blade.php b/resources/views/vendor/mail/html/header.blade.php new file mode 100644 index 0000000..eefabab --- /dev/null +++ b/resources/views/vendor/mail/html/header.blade.php @@ -0,0 +1,7 @@ + + + + {{ $slot }} + + + diff --git a/resources/views/vendor/mail/html/layout.blade.php b/resources/views/vendor/mail/html/layout.blade.php new file mode 100644 index 0000000..859900a --- /dev/null +++ b/resources/views/vendor/mail/html/layout.blade.php @@ -0,0 +1,54 @@ + + + + + + + + + + + + + +
+ + {{ $header ?? '' }} + + + + + + + {{ $footer ?? '' }} +
+ + + + + +
+ {{ Illuminate\Mail\Markdown::parse($slot) }} + + {{ $subcopy ?? '' }} +
+
+
+ + diff --git a/resources/views/vendor/mail/html/message.blade.php b/resources/views/vendor/mail/html/message.blade.php new file mode 100644 index 0000000..1ae9ed8 --- /dev/null +++ b/resources/views/vendor/mail/html/message.blade.php @@ -0,0 +1,27 @@ +@component('mail::layout') + {{-- Header --}} + @slot('header') + @component('mail::header', ['url' => config('app.url')]) + {{ config('app.name') }} + @endcomponent + @endslot + + {{-- Body --}} + {{ $slot }} + + {{-- Subcopy --}} + @isset($subcopy) + @slot('subcopy') + @component('mail::subcopy') + {{ $subcopy }} + @endcomponent + @endslot + @endisset + + {{-- Footer --}} + @slot('footer') + @component('mail::footer') + © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') + @endcomponent + @endslot +@endcomponent diff --git a/resources/views/vendor/mail/html/panel.blade.php b/resources/views/vendor/mail/html/panel.blade.php new file mode 100644 index 0000000..f397080 --- /dev/null +++ b/resources/views/vendor/mail/html/panel.blade.php @@ -0,0 +1,13 @@ + + + + +
+ + + + +
+ {{ Illuminate\Mail\Markdown::parse($slot) }} +
+
diff --git a/resources/views/vendor/mail/html/promotion.blade.php b/resources/views/vendor/mail/html/promotion.blade.php new file mode 100644 index 0000000..0debcf8 --- /dev/null +++ b/resources/views/vendor/mail/html/promotion.blade.php @@ -0,0 +1,7 @@ + + + + +
+ {{ Illuminate\Mail\Markdown::parse($slot) }} +
diff --git a/resources/views/vendor/mail/html/promotion/button.blade.php b/resources/views/vendor/mail/html/promotion/button.blade.php new file mode 100644 index 0000000..8e79081 --- /dev/null +++ b/resources/views/vendor/mail/html/promotion/button.blade.php @@ -0,0 +1,13 @@ + + + + +
+ + + + +
+ {{ $slot }} +
+
diff --git a/resources/views/vendor/mail/html/subcopy.blade.php b/resources/views/vendor/mail/html/subcopy.blade.php new file mode 100644 index 0000000..c3df7b4 --- /dev/null +++ b/resources/views/vendor/mail/html/subcopy.blade.php @@ -0,0 +1,7 @@ + + + + +
+ {{ Illuminate\Mail\Markdown::parse($slot) }} +
diff --git a/resources/views/vendor/mail/html/table.blade.php b/resources/views/vendor/mail/html/table.blade.php new file mode 100644 index 0000000..a5f3348 --- /dev/null +++ b/resources/views/vendor/mail/html/table.blade.php @@ -0,0 +1,3 @@ +
+{{ Illuminate\Mail\Markdown::parse($slot) }} +
diff --git a/resources/views/vendor/mail/html/themes/default.css b/resources/views/vendor/mail/html/themes/default.css new file mode 100644 index 0000000..b78b27d --- /dev/null +++ b/resources/views/vendor/mail/html/themes/default.css @@ -0,0 +1,287 @@ +/* Base */ + +body, body *:not(html):not(style):not(br):not(tr):not(code) { + font-family: Avenir, Helvetica, sans-serif; + box-sizing: border-box; +} + +body { + background-color: #f5f8fa; + color: #74787E; + height: 100%; + hyphens: auto; + line-height: 1.4; + margin: 0; + -moz-hyphens: auto; + -ms-word-break: break-all; + width: 100% !important; + -webkit-hyphens: auto; + -webkit-text-size-adjust: none; + word-break: break-all; + word-break: break-word; +} + +p, +ul, +ol, +blockquote { + line-height: 1.4; + text-align: left; +} + +a { + color: #3869D4; +} + +a img { + border: none; +} + +/* Typography */ + +h1 { + color: #2F3133; + font-size: 19px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +h2 { + color: #2F3133; + font-size: 16px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +h3 { + color: #2F3133; + font-size: 14px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +p { + color: #74787E; + font-size: 16px; + line-height: 1.5em; + margin-top: 0; + text-align: left; +} + +p.sub { + font-size: 12px; +} + +img { + max-width: 100%; +} + +/* Layout */ + +.wrapper { + background-color: #f5f8fa; + margin: 0; + padding: 0; + width: 100%; + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; +} + +.content { + margin: 0; + padding: 0; + width: 100%; + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; +} + +/* Header */ + +.header { + padding: 25px 0; + text-align: center; +} + +.header a { + color: #bbbfc3; + font-size: 19px; + font-weight: bold; + text-decoration: none; + text-shadow: 0 1px 0 white; +} + +/* Body */ + +.body { + background-color: #FFFFFF; + border-bottom: 1px solid #EDEFF2; + border-top: 1px solid #EDEFF2; + margin: 0; + padding: 0; + width: 100%; + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; +} + +.inner-body { + background-color: #FFFFFF; + margin: 0 auto; + padding: 0; + width: 570px; + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 570px; +} + +/* Subcopy */ + +.subcopy { + border-top: 1px solid #EDEFF2; + margin-top: 25px; + padding-top: 25px; +} + +.subcopy p { + font-size: 12px; +} + +/* Footer */ + +.footer { + margin: 0 auto; + padding: 0; + text-align: center; + width: 570px; + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 570px; +} + +.footer p { + color: #AEAEAE; + font-size: 12px; + text-align: center; +} + +/* Tables */ + +.table table { + margin: 30px auto; + width: 100%; + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; +} + +.table th { + border-bottom: 1px solid #EDEFF2; + padding-bottom: 8px; + margin: 0; +} + +.table td { + color: #74787E; + font-size: 15px; + line-height: 18px; + padding: 10px 0; + margin: 0; +} + +.content-cell { + padding: 35px; +} + +/* Buttons */ + +.action { + margin: 30px auto; + padding: 0; + text-align: center; + width: 100%; + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; +} + +.button { + border-radius: 3px; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.16); + color: #FFF; + display: inline-block; + text-decoration: none; + -webkit-text-size-adjust: none; +} + +.button-blue { + background-color: #3097D1; + border-top: 10px solid #3097D1; + border-right: 18px solid #3097D1; + border-bottom: 10px solid #3097D1; + border-left: 18px solid #3097D1; +} + +.button-green { + background-color: #2ab27b; + border-top: 10px solid #2ab27b; + border-right: 18px solid #2ab27b; + border-bottom: 10px solid #2ab27b; + border-left: 18px solid #2ab27b; +} + +.button-red { + background-color: #bf5329; + border-top: 10px solid #bf5329; + border-right: 18px solid #bf5329; + border-bottom: 10px solid #bf5329; + border-left: 18px solid #bf5329; +} + +/* Panels */ + +.panel { + margin: 0 0 21px; +} + +.panel-content { + background-color: #EDEFF2; + padding: 16px; +} + +.panel-item { + padding: 0; +} + +.panel-item p:last-of-type { + margin-bottom: 0; + padding-bottom: 0; +} + +/* Promotions */ + +.promotion { + background-color: #FFFFFF; + border: 2px dashed #9BA2AB; + margin: 0; + margin-bottom: 25px; + margin-top: 25px; + padding: 24px; + width: 100%; + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; +} + +.promotion h1 { + text-align: center; +} + +.promotion p { + font-size: 15px; + text-align: center; +} diff --git a/resources/views/vendor/mail/markdown/button.blade.php b/resources/views/vendor/mail/markdown/button.blade.php new file mode 100644 index 0000000..97444eb --- /dev/null +++ b/resources/views/vendor/mail/markdown/button.blade.php @@ -0,0 +1 @@ +{{ $slot }}: {{ $url }} diff --git a/resources/views/vendor/mail/markdown/footer.blade.php b/resources/views/vendor/mail/markdown/footer.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/markdown/footer.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/markdown/header.blade.php b/resources/views/vendor/mail/markdown/header.blade.php new file mode 100644 index 0000000..aaa3e57 --- /dev/null +++ b/resources/views/vendor/mail/markdown/header.blade.php @@ -0,0 +1 @@ +[{{ $slot }}]({{ $url }}) diff --git a/resources/views/vendor/mail/markdown/layout.blade.php b/resources/views/vendor/mail/markdown/layout.blade.php new file mode 100644 index 0000000..9378baa --- /dev/null +++ b/resources/views/vendor/mail/markdown/layout.blade.php @@ -0,0 +1,9 @@ +{!! strip_tags($header) !!} + +{!! strip_tags($slot) !!} +@isset($subcopy) + +{!! strip_tags($subcopy) !!} +@endisset + +{!! strip_tags($footer) !!} diff --git a/resources/views/vendor/mail/markdown/message.blade.php b/resources/views/vendor/mail/markdown/message.blade.php new file mode 100644 index 0000000..1ae9ed8 --- /dev/null +++ b/resources/views/vendor/mail/markdown/message.blade.php @@ -0,0 +1,27 @@ +@component('mail::layout') + {{-- Header --}} + @slot('header') + @component('mail::header', ['url' => config('app.url')]) + {{ config('app.name') }} + @endcomponent + @endslot + + {{-- Body --}} + {{ $slot }} + + {{-- Subcopy --}} + @isset($subcopy) + @slot('subcopy') + @component('mail::subcopy') + {{ $subcopy }} + @endcomponent + @endslot + @endisset + + {{-- Footer --}} + @slot('footer') + @component('mail::footer') + © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') + @endcomponent + @endslot +@endcomponent diff --git a/resources/views/vendor/mail/markdown/panel.blade.php b/resources/views/vendor/mail/markdown/panel.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/markdown/panel.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/markdown/promotion.blade.php b/resources/views/vendor/mail/markdown/promotion.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/markdown/promotion.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/markdown/promotion/button.blade.php b/resources/views/vendor/mail/markdown/promotion/button.blade.php new file mode 100644 index 0000000..aaa3e57 --- /dev/null +++ b/resources/views/vendor/mail/markdown/promotion/button.blade.php @@ -0,0 +1 @@ +[{{ $slot }}]({{ $url }}) diff --git a/resources/views/vendor/mail/markdown/subcopy.blade.php b/resources/views/vendor/mail/markdown/subcopy.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/markdown/subcopy.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/markdown/table.blade.php b/resources/views/vendor/mail/markdown/table.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/markdown/table.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/notifications/email.blade.php b/resources/views/vendor/notifications/email.blade.php new file mode 100644 index 0000000..fe38895 --- /dev/null +++ b/resources/views/vendor/notifications/email.blade.php @@ -0,0 +1,64 @@ +@component('mail::message') +{{-- Greeting --}} +@if (! empty($greeting)) +# {{ $greeting }} +@else +@if ($level == 'error') +# @lang('Whoops!') +@else +# @lang('Hello!') +@endif +@endif + +{{-- Intro Lines --}} +@foreach ($introLines as $line) +{{ $line }} + +@endforeach + +{{-- Action Button --}} +@isset($actionText) + +@component('mail::button', ['url' => $actionUrl, 'color' => $color]) +{{ $actionText }} +@endcomponent +@endisset + +{{-- Outro Lines --}} +@foreach ($outroLines as $line) +{{ $line }} + +@endforeach + +{{-- Salutation --}} +@if (! empty($salutation)) +{{ $salutation }} +@else +@lang('Regards'),
{{ config('app.name') }} +@endif + +{{-- Subcopy --}} +@isset($actionText) +@component('mail::subcopy') +@lang( + "If you’re having trouble clicking the \":actionText\" button, copy and paste the URL below\n". + 'into your web browser: [:actionURL](:actionURL)', + [ + 'actionText' => $actionText, + 'actionURL' => $actionUrl + ] +) +@endcomponent +@endisset +@endcomponent diff --git a/resources/views/vendor/pagination/bootstrap-4.blade.php b/resources/views/vendor/pagination/bootstrap-4.blade.php new file mode 100644 index 0000000..044bbaa --- /dev/null +++ b/resources/views/vendor/pagination/bootstrap-4.blade.php @@ -0,0 +1,44 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/default.blade.php b/resources/views/vendor/pagination/default.blade.php new file mode 100644 index 0000000..e59847a --- /dev/null +++ b/resources/views/vendor/pagination/default.blade.php @@ -0,0 +1,44 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/semantic-ui.blade.php b/resources/views/vendor/pagination/semantic-ui.blade.php new file mode 100644 index 0000000..ef0dbb1 --- /dev/null +++ b/resources/views/vendor/pagination/semantic-ui.blade.php @@ -0,0 +1,36 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/simple-bootstrap-4.blade.php b/resources/views/vendor/pagination/simple-bootstrap-4.blade.php new file mode 100644 index 0000000..cc30c9b --- /dev/null +++ b/resources/views/vendor/pagination/simple-bootstrap-4.blade.php @@ -0,0 +1,25 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/resources/views/vendor/pagination/simple-default.blade.php b/resources/views/vendor/pagination/simple-default.blade.php new file mode 100644 index 0000000..bdf2fe8 --- /dev/null +++ b/resources/views/vendor/pagination/simple-default.blade.php @@ -0,0 +1,17 @@ +@if ($paginator->hasPages()) + +@endif diff --git a/routes/api 2.php b/routes/api 2.php new file mode 100755 index 0000000..e6b1f26 --- /dev/null +++ b/routes/api 2.php @@ -0,0 +1,59 @@ +name('api.payment_status'); +Route::post('/payment/status', 'Api\PayoneController@paymentStatus')->name('api.payment_status'); +//Route::post('login', 'Api\AuthController@login'); + + + +Route::group([ + 'prefix' => 'auth' +], function () { + Route::post('login', 'Api\AuthController@login'); + //Route::post('signup', 'Api\AuthController@signup'); + + Route::group([ + 'middleware' => 'auth:api' + ], function() { + Route::post('logout', 'Api\AuthController@logout'); + Route::post('checked', 'Api\AuthController@checked'); + }); +}); + +Route::group([ + 'prefix' => 'wp' +], function () { + Route::group([ + 'middleware' => 'auth:api' + ], function() { + Route::post('show', 'Api\ShoppingUserController@show'); + Route::post('store', 'Api\ShoppingUserController@store'); + Route::post('update', 'Api\ShoppingUserController@update'); + Route::post('order', 'Api\ShoppingUserController@order'); + Route::post('status', 'Api\ShoppingUserController@status'); + Route::post('delete', 'Api\ShoppingUserController@delete'); + Route::post('cancel', 'Api\ShoppingUserController@cancel'); + Route::post('open', 'Api\ShoppingUserController@open'); + }); +}); \ No newline at end of file diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..bcb8b18 --- /dev/null +++ b/routes/api.php @@ -0,0 +1,19 @@ +get('/user', function (Request $request) { + return $request->user(); +}); diff --git a/routes/channels.php b/routes/channels.php new file mode 100644 index 0000000..963b0d2 --- /dev/null +++ b/routes/channels.php @@ -0,0 +1,18 @@ +id === (int) $id; +}); diff --git a/routes/console.php b/routes/console.php new file mode 100644 index 0000000..da55196 --- /dev/null +++ b/routes/console.php @@ -0,0 +1,19 @@ +comment(Inspiring::quote()); +})->describe('Display an inspiring quote'); diff --git a/routes/web.php b/routes/web.php new file mode 100644 index 0000000..c96850b --- /dev/null +++ b/routes/web.php @@ -0,0 +1,365 @@ +name('logout'); + +Route::get('storage/images/{from}/{slug}', function($from = null, $slug = null) { + if ($from == 'shop'){ + $image = \App\Models\UserShop::where('filename', $slug)->first(); + $path = storage_path('app/public').'/images/shop'.'/'.$image->filename; + if (file_exists($path)) { + return Response::file($path); + } + } + +})->name('storage_images'); + +Route::get('/product/image/{slug}', function($slug = null) +{ + if($image = \App\Models\ProductImage::where('slug', $slug)->first()){ + $path = storage_path('app/public').'/images/product'.'/'.$image->product_id.'/'.$image->filename; + if (file_exists($path)) { + return Response::file($path); + } + } + +})->name('product_image'); + + +Route::get('/iq/image/{slug}', function($slug = null) +{ + if($image = \App\Models\IqImage::where('slug', $slug)->first()){ + $path = storage_path('app/public').'/images/iq_images/'.$image->filename; + if (file_exists($path)) { + return Response::file($path); + } + } + +})->name('iq_image'); + +Route::get('locale/{locale}', function ($locale) { + \Session::put('locale', $locale); + if(Auth::check()){ + $user = Auth::user(); + $user->lang = $locale; + $user->save(); + } + return redirect()->back(); +})->name('locale'); + +Route::post('/user_register', 'Web\RegisterController@register')->name('user_register'); +Route::get('/user_register/finish', 'Web\RegisterController@finish')->name('user_register_finish'); +Route::get('/register/verify/{confirmationCode}', 'HomeController@verify')->name('register_verify'); +Route::get('/reg/{member_id?}', 'Web\RegisterController@member')->name('register_user_member'); + +Route::get('/status/register', 'HomeController@statusRegister')->name('status_register'); +Route::get('/status/verify', 'HomeController@statusVerify')->name('status_verify'); +Route::get('/status/error', 'HomeController@statusError')->name('status_error'); +Route::get('/status/not/found', 'HomeController@notFound')->name('not_found'); + +Route::post('/loading/modal', 'HomeController@loadingModal')->name('loading_modal'); + +Route::post('/user/check/mail', 'HomeController@checkMail')->name('user_check_mail'); + +Route::get('/', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); + +Route::get('/cron/jobs/action/{action}/{key}', 'CronController@action')->name('cron_jobs_action'); + +Route::get('/user/update_email_confirm/{token}', 'UserUpdateEmailController@activateMail')->name('user_update_email_confirm'); +Route::post('/user/check/mail', 'HomeController@checkMail')->name('user_check_mail'); + +/* AUTH */ +Route::group(['middleware' => ['auth']], function() { + Route::get('/user_blocked', 'HomeController@blocked')->name('user_blocked'); + Route::get('/wizard-create', 'WizardController@create')->name('wizard_create'); + Route::get('/wizard-register', 'WizardController@register')->name('wizard_register'); + + Route::post('/wizard/store/create/{step?}', 'WizardController@storeCreate')->name('wizard_store_create'); + Route::post('/wizard/store/register/{step?}', 'WizardController@storeRegister')->name('wizard_store_register'); + + Route::get('/wizard/payment', 'WizardController@payment')->name('wizard_payment'); + Route::post('/wizard/store/payment/{step?}', 'WizardController@storePayment')->name('wizard_store_payment'); + + Route::get('/wizard/delete/file/{id}/{relation}', 'WizardController@delete')->name('wizard_delete_file'); + + Route::get('/storage/file/{id}/{disk}', function($id = null, $disk = null) + { + $file = \App\Models\File::findOrFail($id); + $path = Storage::disk($disk)->path($file->dir.$file->filename); + if (file_exists($path)) { + return Response::file($path); + } + })->name('storage_file'); + +}); + +/* AUTH user*/ +Route::group(['middleware' => ['auth:user']], function() { + + Route::get('storage/{type?}/{file?}', function($type = null, $file = null) + { + if($type == 'xls'){ + $path = storage_path("app/export/"); + $filename = $file.'.xls'; + } + + if (file_exists($path.$filename)) { + return Response::download($path.$filename, $filename); + } + })->name('storage'); + + Route::get('/home', 'HomeController@show')->name('home'); + Route::post('/modal/load', 'ModalController@load')->name('modal_load'); + + Route::get('/user/edit', 'UserDataController@userEdit')->name('user_edit'); + Route::post('/user/edit', 'UserDataController@userEditStore')->name('user_edit'); + Route::post('/user/data/store', 'UserDataController@userDataStore')->name('user_data_store'); + + Route::get('/user/update_password', 'UserUpdatePasswordController@updatePassword')->name('user_update_password'); + Route::post('/user/update_password', 'UserUpdatePasswordController@updatePasswordStore')->name('user_update_password'); + + Route::get('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirst')->name('user_update_password_first'); + Route::post('/user/update_password_first', 'UserUpdatePasswordController@updatePasswordFirstStore')->name('user_update_password_first'); + + Route::get('/user/update_email', 'UserUpdateEmailController@index')->name('user_update_email'); + Route::post('/user/update_email', 'UserUpdateEmailController@update')->name('user_update_email'); + + Route::get('/user/delete_account', 'UserDeleteController@deleteAccount')->name('user_delete_account'); + Route::post('/user/delete_account', 'UserDeleteController@deleteAccountAction')->name('user_delete_account'); + + Route::post('/user/data/accepted/form', 'UserDataController@userDataAcceptedForm')->name('user_data_accepted_form'); + + Route::get('/user/data/free', 'UserDataController@userDataFree')->name('user_data_free'); + Route::post('/user/data/free/form', 'UserDataController@userDataFreeForm')->name('user_data_free_form'); + + + //user shop Sales + Route::get('/user/shop/orders', 'User\ShopSalesController@orders')->name('user_shop_orders'); + Route::get('/user/shop/order/detail/{id}', 'User\ShopSalesController@orderDetail')->name('user_shop_order_detail'); + Route::get('/user/shop/orders/datatable', 'User\ShopSalesController@ordersDatatable')->name('user_shop_orders_datatable'); + + //user team + Route::get('/user/team/members', 'User\TeamController@members')->name('user_team_members'); + + //user customers + Route::get('/user/customers', 'User\CustomerController@index')->name('user_customers'); + Route::get('/user/customer/detail/{id}', 'User\CustomerController@detail')->name('user_customer_detail'); + Route::get('/user/customer/edit/{id}', 'User\CustomerController@edit')->name('user_customer_edit'); + Route::get('/user/customer/add/{id}/{step?}', 'User\CustomerController@add')->name('user_customer_add'); + Route::post('/user/customer/edit/{id}', 'User\CustomerController@store')->name('user_customer_edit'); + Route::get('/user/customer/datatable', 'User\CustomerController@getCustomers')->name('user_customer_datatable'); + + //user order & do order + Route::get('/user/orders', 'User\OrderController@index')->name('user_orders'); + Route::get('/user/orders/datatable', 'User\OrderController@ordersDatatable')->name('user_orders_datatable'); + + Route::get('/user/order/detail/{id}', 'User\OrderController@detail')->name('user_order_detail'); + + Route::get('/user/order/my/delivery/{for}/{id?}', 'User\OrderController@delivery')->name('user_order_my_delivery'); + Route::post('/user/order/my/delivery/{for}/{id?}', 'User\OrderController@delivery')->name('user_order_my_delivery'); + + Route::get('/user/order/my/list/{for}/{id?}', 'User\OrderController@list')->name('user_order_my_list'); + Route::post('/user/order/my/list/{for}/{id?}', 'User\OrderController@list')->name('user_order_my_list'); + + Route::post('/user/order/my/payment/{for}/{id?}', 'User\OrderController@payment')->name('user_order_my_payment'); + Route::get('/user/order/my/datatable', 'User\OrderController@datatable')->name('user_order_my_datatable'); + Route::post('/user/order/my/perform/request/', 'User\OrderController@performRequest')->name('user_order_my_perform_request'); + + Route::get('/user/membership', 'MembershipController@index')->name('user_membership'); + Route::post('/user/membership/store/{action}', 'MembershipController@storePayment')->name('user_membership_store'); + + Route::get('/user/checkout/{identifier?}', 'User\CheckoutController@checkout')->name('user_checkout'); + Route::post('/user/checkout_store/{identifier?}', 'User\CheckoutController@store')->name('user_checkout_store'); + Route::get('/user/checkout_final/{payid}/{reference}/{identifier?}', 'User\CheckoutController@final')->name('user_checkout_final'); + +}); + +Route::group(['middleware' => ['admin']], function() +{ + //translate + Route::get('/admin/translate/all', 'TranslationController@index')->name('admin_translate_all'); + Route::get('/admin/translate/all/edit/{lang}/{from?}', 'TranslationController@edit')->name('admin_translate_all_edit'); + Route::post('/admin/translate/all/update/{lang}/{from?}', 'TranslationController@update')->name('admin_translate_all_update'); + + Route::get('/admin/translate/file', 'TranslationFileController@index')->name('admin_translate_file'); + Route::get('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@edit')->name('admin_translate_file_edit'); + Route::post('/admin/translation/file/{file}/{language?}/{langsource?}/{show?}', 'TranslationFileController@update')->name('admin_translate_file_update'); + + //site + Route::get('/admin/sites/{site}', 'SitesController@show')->name('admin_sites'); + Route::post('/admin/sites/store/{site}', 'SitesController@store')->name('admin_sites_store'); + Route::post('/admin/sites/image/upload/{site}', 'SitesController@imageUpload')->name('admin_sites_image_upload'); + Route::get('/admin/sites/image/delete/{site}/{image_id}', 'SitesController@imageDelete')->name('admin_sites_image_delete'); + Route::get('/admin/sites/image/attribute/{site}/{image_id}/{attr}/{val}', 'SitesController@imageAttribute')->name('admin_sites_image_attribute'); + + + //products + Route::get('/admin/product/show', 'ProductController@index')->name('admin_product_show'); + Route::post('/admin/product/store', 'ProductController@store')->name('admin_product_store'); + Route::get('/admin/product/edit/{id}', 'ProductController@edit')->name('admin_product_edit'); + Route::get('/admin/product/copy/{id}', 'ProductController@copy')->name('admin_product_copy'); + Route::get('/admin/product/delete/{id}/{do?}/{did?}', 'ProductController@delete')->name('admin_product_delete'); + //products images + Route::post('/admin/product/image/upload', 'ProductController@imageUpload')->name('admin_product_image_upload'); + Route::get('/admin/product/image/delete/{image_id}/{product_id}', 'ProductController@imageDelete')->name('admin_product_image_delete'); + Route::get('/admin/product/image/attribute/{image_id}/{attr}/{val}', 'ProductController@imageAttribute')->name('admin_product_image_attribute'); + + //products categories + Route::get('/admin/product/categories', 'CategoryController@index')->name('admin_product_categories'); + Route::get('/admin/product/category/edit/{id}', 'CategoryController@edit')->name('admin_product_category_edit'); + Route::post('/admin/product/category/store', 'CategoryController@store')->name('admin_product_category_store'); + Route::get('/admin/product/category/delete/{id}', 'CategoryController@delete')->name('admin_product_category_delete'); + + //products categories + Route::get('/admin/product/ingredients', 'IngredientController@index')->name('admin_product_ingredients'); + Route::get('/admin/product/ingredient/edit/{id}', 'IngredientController@edit')->name('admin_product_ingredient_edit'); + Route::post('/admin/product/ingredient/store', 'IngredientController@store')->name('admin_product_ingredient_store'); + Route::get('/admin/product/ingredient/delete/{id}', 'IngredientController@delete')->name('admin_product_ingredient_delete'); + + //products images + Route::post('/admin/product/category/image/upload', 'CategoryController@imageUpload')->name('admin_product_category_image_upload'); + Route::get('/admin/product/category/image/delete{image_id}/{category_id}', 'CategoryController@imageDelete')->name('admin_product_category_image_delete'); + Route::get('/admin/product/category/image/attribute/{image_id}/{attr}/{val}', 'CategoryController@imageAttribute')->name('admin_product_category_image_attribute'); + + + //products attributes + Route::get('/admin/product/attributes', 'AttributeController@index')->name('admin_product_attributes'); + Route::post('/admin/product/attribute/store', 'AttributeController@store')->name('admin_product_attribute_store'); + Route::get('/admin/product/attribute/delete/{id}', 'AttributeController@delete')->name('admin_product_attribute_delete'); + + + //Route::get('/admin/products/import', 'ImportProductController@import')->name('admin_product_import'); + + //leads + Route::get('/admin/leads', 'LeadController@index')->name('admin_leads'); + Route::get('/admin/lead/edit/{id}', 'LeadController@edit')->name('admin_lead_edit'); + Route::post('/admin/lead/edit/{id}', 'LeadController@editPost')->name('admin_lead_edit'); + + //customers + Route::get('/admin/customers', 'CustomerController@index')->name('admin_customers'); + Route::get('/admin/customer/detail/{id}', 'CustomerController@detail')->name('admin_customer_detail'); + Route::get('/admin/customer/edit/{id}', 'CustomerController@edit')->name('admin_customer_edit'); + Route::post('/admin/customer/edit/{id}', 'CustomerController@store')->name('admin_customer_edit'); + Route::get('/admin/customer/datatable', 'CustomerController@getCustomers')->name('admin_customer_datatable'); + + Route::get('/admin/lead/change_mail/{id}', 'UserUpdateEmailController@adminChangeMail')->name('admin_lead_change_mail'); + Route::post('/admin/lead/change_mail/{id}', 'UserUpdateEmailController@adminUpdateMail')->name('admin_lead_change_mail'); + Route::get('/admin/lead/new_mail/verified/{id}', 'LeadController@newMailVerified')->name('admin_lead_new_mail_verified'); + Route::get('/admin/lead/released/{action}/{id}', 'LeadController@released')->name('admin_lead_released'); + Route::post('/admin/lead/released/{action}/{id}', 'LeadController@released')->name('admin_lead_released'); + + + Route::get('/admin/lead/delete/file/{user_id}/{file_id}/{relation}', 'LeadController@deleteFile')->name('admin_lead_delete_file'); + + Route::post('/admin/lead/store', 'LeadController@store')->name('admin_lead_store'); + Route::get('/admin/leads/datatable', 'LeadController@getLeads')->name('admin_leads_datatable'); + + //sales + Route::get('/admin/sales/users', 'SalesController@users')->name('admin_sales_users'); + Route::get('/admin/sales/users/detail/{id}', 'SalesController@usersDetail')->name('admin_sales_users_detail'); + Route::post('/admin/sales/users/detail/{id}', 'SalesController@usersStore')->name('admin_sales_users_detail'); + Route::get('/admin/sales/users/datatable', 'SalesController@usersDatatable')->name('admin_sales_users_datatable'); + + Route::get('/admin/sales/customers', 'SalesController@customers')->name('admin_sales_customers'); + Route::get('/admin/sales/customers/detail/{id}', 'SalesController@customersDetail')->name('admin_sales_customers_detail'); + Route::post('/admin/sales/customers/detail/{id}', 'SalesController@customersStore')->name('admin_sales_customers_detail'); + Route::get('/admin/sales/customers/datatable', 'SalesController@customersDatatable')->name('admin_sales_customers_datatable'); + + Route::post('/admin/sales/sore', 'SalesController@store')->name('admin_sales_store'); + + +}); + +//login pages for superadmin +Route::group(['middleware' => ['superadmin']], function() { + //leads + Route::get('/admin/users', 'AdminUserController@index')->name('admin_users'); + Route::get('/admin/user/edit/{user_id}', 'AdminUserController@edit')->name('admin_user_edit'); + Route::post('/admin/user/store', 'AdminUserController@store')->name('admin_user_store'); + Route::get('/admin/user/delete/{user_id}', 'AdminUserController@deleteUser')->name('admin_user_delete'); + Route::get('/admin/user/login_as/{userId?}', 'AdminUserController@userLoginAs')->name('admin_user_login_as'); + + + Route::get('/admin/shippings', 'ShippingController@index')->name('admin_shippings'); + Route::get('/admin/shipping/edit/{shipping_id}', 'ShippingController@edit')->name('admin_shipping_edit'); + Route::post('/admin/shipping/store', 'ShippingController@store')->name('admin_shipping_store'); + Route::get('/admin/shipping/delete/{shipping_id}', 'ShippingController@deleteShipping')->name('admin_shipping_delete'); + Route::get('/admin/shipping/price/delete/{price_id}', 'ShippingController@deletePrice')->name('admin_shipping_price_delete'); + Route::get('/admin/shipping/country/delete/{price_id}', 'ShippingController@deleteCountry')->name('admin_shipping_country_delete'); + + Route::get('data_table', 'DataTableController@datatable')->name('data_table'); + // Route::get('datatables/leads', 'DataTableController@getLeads')->name('datatables-leads'); + Route::get('data/table/users', 'DataTableController@getUsers')->name('data_table_users'); + + Route::get('/admin/payment_methods', 'PaymentMethodController@index')->name('admin_payment_methods'); + Route::post('/admin/payment_method/store', 'PaymentMethodController@store')->name('admin_payment_method_store'); + + Route::get('/admin/countries', 'CountryController@index')->name('admin_countries'); + Route::get('/admin/country/edit/{id}', 'CountryController@edit')->name('admin_country_edit'); + Route::post('/admin/country/store', 'CountryController@store')->name('admin_country_store'); + + Route::get('/admin/levels', 'UserLevelController@index')->name('admin_levels'); + Route::post('/admin/level/store', 'UserLevelController@store')->name('admin_level_store'); + +}); + +//login pages for sysadmin +Route::group(['middleware' => ['sysadmin']], function() { + Route::get('/sysadmin/tools/customers', 'SyS\AdminToolsController@customers')->name('sysadmin_tools_customers'); + Route::post('/sysadmin/tools/customers', 'SyS\AdminToolsController@customerStore')->name('sysadmin_tools_customers'); + + Route::get('/sysadmin/tools/domainssl', 'SyS\AdminToolsController@domainSSL')->name('sysadmin_tools_domainssl'); + Route::post('/sysadmin/tools/domainssl', 'SyS\AdminToolsController@domainSSLStore')->name('sysadmin_tools_domainssl'); + + Route::get('/sysadmin/tools/cronjobs', 'SyS\AdminToolsController@cronjobs')->name('sysadmin_tools_cronjobsl'); + Route::post('/sysadmin/tools/cronjobs', 'SyS\AdminToolsController@cronjobsStore')->name('sysadmin_tools_cronjobs'); + + Route::get('/sysadmin/tools/shopping_orders', 'SyS\AdminToolsController@shoppingOrders')->name('sysadmin_tools_shopping_orders'); + Route::post('/sysadmin/tools/shopping_orders', 'SyS\AdminToolsController@shoppingOrdersStore')->name('sysadmin_tools_shopping_orders'); + + Route::get('/sysadmin/import', 'SyS\ImportController@import')->name('sysadmin_import'); + Route::post('/sysadmin/import/store', 'SyS\ImportController@importStore')->name('sysadmin_import_store'); + Route::get('/sysadmin/import/show/{type}/{filename}/{skip?}/{limit?}', 'SyS\ImportController@importShow')->name('sysadmin_import_show'); + + Route::get('/sysadmin/settings', 'SyS\SettingController@index')->name('sysadmin_settings'); + Route::post('/sysadmin/tools/setting/store', 'SyS\SettingController@store')->name('sysadmin_setting_store'); +}); + +/* + * Route::group(['middleware' => ['checkout']], function() { + + Route::get('/datenschutz', 'HomeController@legalDataProtected')->name('datenschutz'); + Route::get('/impressum', 'HomeController@legalImprint')->name('impressum'); + Route::get('/datenschutz', 'HomeController@legalDataProtected')->name('data_protected'); + Route::get('/impressum', 'HomeController@legalImprint')->name('imprint'); + Route::get('/agb', 'HomeController@legalAGB')->name('agb'); + + + Route::get('/checkout/card/{identifier?}', 'Web\CheckoutController@checkout')->name('checkout.checkout_card'); + Route::post('/checkout/card/final', 'Web\CheckoutController@checkoutFinal')->name('checkout.checkout_card_final'); + + Route::get('/transaction/status/{status?}/{reference?}', 'Web\CheckoutController@transactionStatus')->name('checkout.transaction_status'); + Route::post('/transaction/status/{status?}/{reference?}', 'Web\CheckoutController@transactionStatus')->name('checkout.transaction_status'); + + Route::get('/transaction/approved/{transactionId}/{reference}', 'Web\CheckoutController@transactionApproved')->name('checkout.transaction_approved'); + +}); +*/ \ No newline at end of file diff --git a/server.php b/server.php new file mode 100644 index 0000000..5fb6379 --- /dev/null +++ b/server.php @@ -0,0 +1,21 @@ + + */ + +$uri = urldecode( + parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) +); + +// This file allows us to emulate Apache's "mod_rewrite" functionality from the +// built-in PHP web server. This provides a convenient way to test a Laravel +// application without having installed a "real" web server software here. +if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { + return false; +} + +require_once __DIR__.'/public/index.php'; diff --git a/storage/debugbar/.gitignore b/storage/debugbar/.gitignore new file mode 100644 index 0000000..d6b7ef3 --- /dev/null +++ b/storage/debugbar/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/tests/CreatesApplication.php b/tests/CreatesApplication.php new file mode 100644 index 0000000..547152f --- /dev/null +++ b/tests/CreatesApplication.php @@ -0,0 +1,22 @@ +make(Kernel::class)->bootstrap(); + + return $app; + } +} diff --git a/tests/Feature/ExampleTest.php b/tests/Feature/ExampleTest.php new file mode 100644 index 0000000..f31e495 --- /dev/null +++ b/tests/Feature/ExampleTest.php @@ -0,0 +1,21 @@ +get('/'); + + $response->assertStatus(200); + } +} diff --git a/tests/TestCase.php b/tests/TestCase.php new file mode 100644 index 0000000..2932d4a --- /dev/null +++ b/tests/TestCase.php @@ -0,0 +1,10 @@ +assertTrue(true); + } +} diff --git a/webpack.mix.js b/webpack.mix.js new file mode 100644 index 0000000..1a2a958 --- /dev/null +++ b/webpack.mix.js @@ -0,0 +1,16 @@ +const mix = require('laravel-mix'); + +/* + |-------------------------------------------------------------------------- + | Mix Asset Management + |-------------------------------------------------------------------------- + | + | Mix provides a clean, fluent API for defining some Webpack build steps + | for your Laravel application. By default, we are compiling the Sass + | file for the application as well as bundling up all the JS files. + | + */ + +mix.js('resources/js/app.js', 'public/js') + .sass('resources/sass/app.scss', 'public/css') + .sourceMaps();