From e1cbf84bfb4d6bfbee3791dba5fa2b6a1c1c89dd Mon Sep 17 00:00:00 2001 From: Khoubza Younes Date: Thu, 10 Dec 2020 13:55:46 +0100 Subject: [PATCH] update laravel and js files --- .../ServiceProvider/Providers/Laravel.php | 1 - .../ServiceProvider/Providers/Laravel.php | 21 +---- src/Noty/Prime/NotyBuilder.php | 1 + src/Noty/Prime/NotyFactory.php | 36 +------- src/Noty/Prime/NotyRenderer.php | 84 ------------------ .../DependencyInjection/Configuration.php | 1 + .../FlasherNotyExtension.php | 2 +- src/Noty/Symfony/Resources/config/config.yaml | 14 +-- .../Laravel/Resources/public/flasher-notyf.js | 17 ++++ .../ServiceProvider/Providers/Laravel.php | 19 +--- src/Notyf/Prime/Notyf.php | 1 - src/Notyf/Prime/NotyfBuilder.php | 4 - src/Notyf/Prime/NotyfFactory.php | 21 +---- src/Notyf/Prime/NotyfRenderer.php | 85 ------------------ .../DependencyInjection/Configuration.php | 1 + .../Symfony/Resources/config/config.yaml | 16 +--- .../Symfony/Resources/public/flasher-notyf.js | 17 ++++ .../{flasher-noty.js => flasher-pnotify.js} | 6 +- .../ServiceProvider/Providers/Laravel.php | 21 +---- src/Pnotify/Prime/Pnotify.php | 1 - src/Pnotify/Prime/PnotifyBuilder.php | 4 - src/Pnotify/Prime/PnotifyFactory.php | 21 +---- src/Pnotify/Prime/PnotifyRenderer.php | 83 ------------------ .../DependencyInjection/Configuration.php | 1 + .../Symfony/Resources/config/config.yaml | 14 +-- .../Resources/public/flasher-pnotify.js} | 6 +- .../Laravel/Resources/public/flasher-noty.js | 21 ----- .../Resources/public/flasher-sweet-alert.js} | 10 ++- .../ServiceProvider/Providers/Laravel.php | 19 +--- src/SweetAlert/Prime/SweetAlert.php | 1 - src/SweetAlert/Prime/SweetAlertBuilder.php | 1 - src/SweetAlert/Prime/SweetAlertFactory.php | 21 +---- src/SweetAlert/Prime/SweetAlertRenderer.php | 87 ------------------- .../DependencyInjection/Configuration.php | 1 + .../Symfony/Resources/config/config.yaml | 16 +--- .../Symfony/Resources/public/flasher-noty.js | 21 ----- .../Resources/public/flasher-sweet-alert.js} | 10 ++- .../DependencyInjection/Configuration.php | 2 +- .../ServiceProvider/Providers/Laravel.php | 21 +---- .../FlasherToastrExtension.php | 2 +- .../config/{services.yaml => config.yaml} | 0 41 files changed, 106 insertions(+), 625 deletions(-) delete mode 100644 src/Noty/Prime/NotyRenderer.php create mode 100644 src/Notyf/Laravel/Resources/public/flasher-notyf.js delete mode 100644 src/Notyf/Prime/NotyfRenderer.php create mode 100644 src/Notyf/Symfony/Resources/public/flasher-notyf.js rename src/Pnotify/Laravel/Resources/public/{flasher-noty.js => flasher-pnotify.js} (71%) delete mode 100644 src/Pnotify/Prime/PnotifyRenderer.php rename src/{Notyf/Laravel/Resources/public/flasher-noty.js => Pnotify/Symfony/Resources/public/flasher-pnotify.js} (71%) delete mode 100644 src/SweetAlert/Laravel/Resources/public/flasher-noty.js rename src/{Pnotify/Symfony/Resources/public/flasher-noty.js => SweetAlert/Laravel/Resources/public/flasher-sweet-alert.js} (52%) delete mode 100644 src/SweetAlert/Prime/SweetAlertRenderer.php delete mode 100644 src/SweetAlert/Symfony/Resources/public/flasher-noty.js rename src/{Notyf/Symfony/Resources/public/flasher-noty.js => SweetAlert/Symfony/Resources/public/flasher-sweet-alert.js} (52%) rename src/Toastr/Symfony/Resources/config/{services.yaml => config.yaml} (100%) diff --git a/src/Laravel/ServiceProvider/Providers/Laravel.php b/src/Laravel/ServiceProvider/Providers/Laravel.php index 90bed1a8..16256e9f 100644 --- a/src/Laravel/ServiceProvider/Providers/Laravel.php +++ b/src/Laravel/ServiceProvider/Providers/Laravel.php @@ -10,7 +10,6 @@ use Flasher\Prime\EventDispatcher\EventListener\StampsListener; use Flasher\Prime\EventDispatcher\EventListener\FilterListener; use Flasher\Prime\EventDispatcher\EventListener\RemoveListener; use Flasher\Prime\Filter\Filter; -use Flasher\Prime\Filter\FilterBuilder; use Flasher\Prime\Flasher; use Flasher\Prime\Renderer\Renderer; use Flasher\Prime\Storage\StorageManager; diff --git a/src/Noty/Laravel/ServiceProvider/Providers/Laravel.php b/src/Noty/Laravel/ServiceProvider/Providers/Laravel.php index 3e9efde1..9922cd3f 100644 --- a/src/Noty/Laravel/ServiceProvider/Providers/Laravel.php +++ b/src/Noty/Laravel/ServiceProvider/Providers/Laravel.php @@ -3,10 +3,8 @@ namespace Flasher\Noty\Laravel\ServiceProvider\Providers; use Flasher\Prime\Flasher; -use Flasher\Prime\Renderer\RendererManager; use Flasher\Noty\Laravel\FlasherNotyServiceProvider; use Flasher\Noty\Prime\NotyFactory; -use Flasher\Noty\Prime\NotyRenderer; use Illuminate\Container\Container; use Illuminate\Foundation\Application; @@ -35,28 +33,17 @@ class Laravel implements ServiceProviderInterface public function registerServices() { - $this->app->singleton('flasher.factory.noty', function (Container $app) { - return new NotyFactory($app['flasher.event_dispatcher']); + $this->app->singleton('flasher.noty', function (Container $app) { + return new NotyFactory($app['flasher.storage_manager']); }); - $this->app->singleton('flasher.renderer.noty', function (Container $app) { - return new NotyRenderer($app['flasher.config']); - }); - - $this->app->alias('flasher.factory.noty', 'Flasher\Noty\Prime\NotyFactory'); - $this->app->alias('flasher.renderer.noty', 'Flasher\Noty\Prime\NotyRenderer'); + $this->app->alias('flasher.noty', 'Flasher\Noty\Prime\NotyFactory'); $this->app->extend('flasher', function (Flasher $flasher, Container $app) { - $flasher->addFactory($app['flasher.factory.noty']); + $flasher->addFactory('toastr', $app['flasher.noty']); return $flasher; }); - - $this->app->extend('flasher.renderer_manager', function (RendererManager $manager, Container $app) { - $manager->addDriver($app['flasher.renderer.noty']); - - return $manager; - }); } public function mergeConfigFromNoty() diff --git a/src/Noty/Prime/NotyBuilder.php b/src/Noty/Prime/NotyBuilder.php index daf9aaf7..1385a71a 100644 --- a/src/Noty/Prime/NotyBuilder.php +++ b/src/Noty/Prime/NotyBuilder.php @@ -102,6 +102,7 @@ final class NotyBuilder extends NotificationBuilder /** * @param string $option + * @param mixed $value * * @return $this */ diff --git a/src/Noty/Prime/NotyFactory.php b/src/Noty/Prime/NotyFactory.php index 44bdeb2e..60f9a337 100644 --- a/src/Noty/Prime/NotyFactory.php +++ b/src/Noty/Prime/NotyFactory.php @@ -3,49 +3,17 @@ namespace Flasher\Noty\Prime; use Flasher\Prime\Factory\AbstractFactory; -use Flasher\Prime\Notification\NotificationBuilderInterface; -use Flasher\Prime\Stamp\StampInterface; /** - * @method NotyBuilder type(string $type, string $message = null, array $options = array()) - * @method NotyBuilder message(string $message) - * @method NotyBuilder options(array $options, bool $merge = true) - * @method NotyBuilder setOption(string $name, $value) - * @method NotyBuilder unsetOption(string $name) - * @method NotyBuilder priority(int $priority) - * @method NotyBuilder handler(string $handler) - * @method NotyBuilder with(StampInterface[] $stamps) - * @method NotyBuilder withStamp(StampInterface $stamp) - * @method NotyBuilder hops(int $amount) - * @method NotyBuilder keep() - * @method NotyBuilder success(string $message = null, array $options = array()) - * @method NotyBuilder error(string $message = null, array $options = array()) - * @method NotyBuilder info(string $message = null, array $options = array()) - * @method NotyBuilder warning(string $message = null, array $options = array()) + * @mixin NotyBuilder */ final class NotyFactory extends AbstractFactory { - /** - * @inheritDoc - */ - public function createNotification() - { - return new Noty(); - } - /** * @inheritDoc */ public function createNotificationBuilder() { - return new NotyBuilder($this->getStorageManager(), $this->createNotification(), 'noty'); - } - - /** - * @inheritDoc - */ - public function supports($name = null, array $context = array()) - { - return in_array($name, array(__CLASS__, 'noty')); + return new NotyBuilder($this->getStorageManager(), new Noty(), 'noty'); } } diff --git a/src/Noty/Prime/NotyRenderer.php b/src/Noty/Prime/NotyRenderer.php deleted file mode 100644 index dde9990d..00000000 --- a/src/Noty/Prime/NotyRenderer.php +++ /dev/null @@ -1,84 +0,0 @@ -config = $config; - $this->scripts = $config->get('adapters.noty.scripts', array()); - $this->styles = $config->get('adapters.noty.styles', array()); - $this->options = $config->get('adapters.noty.options', array()); - } - - /** - * @inheritDoc - */ - public function render(Envelope $envelope) - { - $notification = $envelope->getNotification(); - $options = $envelope->getOptions(); - - $options['text'] = $envelope->getMessage(); - $options['type'] = $envelope->getType(); - - return sprintf("new Noty(%s).show();", json_encode($options)); - } - - /** - * @inheritDoc - */ - public function getScripts() - { - return $this->scripts; - } - - /** - * @inheritDoc - */ - public function getStyles() - { - return $this->styles; - } - - public function renderOptions() - { - return sprintf('Noty.overrideDefaults(%s);', json_encode($this->options)); - } - - /** - * @inheritDoc - */ - public function supports($name = null, array $context = array()) - { - return in_array($name, array(__CLASS__, 'noty', 'Flasher\Noty\Prime\NotyFactory', 'Flasher\Noty\Prime\Noty')); - } -} diff --git a/src/Noty/Symfony/DependencyInjection/Configuration.php b/src/Noty/Symfony/DependencyInjection/Configuration.php index 65724950..e70fabfc 100644 --- a/src/Noty/Symfony/DependencyInjection/Configuration.php +++ b/src/Noty/Symfony/DependencyInjection/Configuration.php @@ -27,6 +27,7 @@ final class Configuration implements ConfigurationInterface ->prototype('scalar')->end() ->defaultValue(array( 'https://cdnjs.cloudflare.com/ajax/libs/noty/3.1.4/noty.min.js', + '/bundles/flashernoty/flasher-noty.js', )) ->end() ->arrayNode('styles') diff --git a/src/Noty/Symfony/DependencyInjection/FlasherNotyExtension.php b/src/Noty/Symfony/DependencyInjection/FlasherNotyExtension.php index 7d1dd5c1..2f27f8ba 100644 --- a/src/Noty/Symfony/DependencyInjection/FlasherNotyExtension.php +++ b/src/Noty/Symfony/DependencyInjection/FlasherNotyExtension.php @@ -30,7 +30,7 @@ final class FlasherNotyExtension extends Extension implements PrependExtensionIn public function prepend(ContainerBuilder $container) { if (!$container->hasExtension('flasher')) { - throw new \RuntimeException('[Flasher\SymfonyFlasher\PrimeBundle] is not registered'); + throw new \RuntimeException('[Flasher\Symfony\FlasherBundle] is not registered'); } $configs = $container->getExtensionConfig($this->getAlias()); diff --git a/src/Noty/Symfony/Resources/config/config.yaml b/src/Noty/Symfony/Resources/config/config.yaml index fd83957e..094e84b9 100644 --- a/src/Noty/Symfony/Resources/config/config.yaml +++ b/src/Noty/Symfony/Resources/config/config.yaml @@ -1,16 +1,8 @@ services: - flasher.factory.noty: + flasher.noty: parent: 'flasher.abstract_factory' class: Flasher\Noty\Prime\NotyFactory tags: - - { name: 'flasher.factory' } + - { name: 'flasher.factory', alias: 'noty' } - flasher.renderer.noty: - class: Flasher\Noty\Prime\NotyRenderer - arguments: - - '@flasher.config' - tags: - - { name: 'flasher.renderer' } - - Flasher\Noty\Prime\NotyFactory: '@flasher.factory.noty' - Flasher\Noty\Prime\NotyRenderer: '@flasher.renderer.noty' + Flasher\Noty\Prime\NotyFactory: '@flasher.noty' diff --git a/src/Notyf/Laravel/Resources/public/flasher-notyf.js b/src/Notyf/Laravel/Resources/public/flasher-notyf.js new file mode 100644 index 00000000..dd6fe205 --- /dev/null +++ b/src/Notyf/Laravel/Resources/public/flasher-notyf.js @@ -0,0 +1,17 @@ +PHPFlasher.addFactory('notyf', (function () { + 'use strict'; + + var exports = {}; + + exports.render = function (data) { + window.notyf.open(data); + }; + + exports.renderOptions = function (options) { + if ("undefined" === typeof window.notyf) { + window.notyf = new Notyf(options); + } + }; + + return exports; +})()); diff --git a/src/Notyf/Laravel/ServiceProvider/Providers/Laravel.php b/src/Notyf/Laravel/ServiceProvider/Providers/Laravel.php index 61cb46ef..9b4ea58d 100644 --- a/src/Notyf/Laravel/ServiceProvider/Providers/Laravel.php +++ b/src/Notyf/Laravel/ServiceProvider/Providers/Laravel.php @@ -4,9 +4,7 @@ namespace Flasher\Notyf\Laravel\ServiceProvider\Providers; use Flasher\Notyf\Laravel\FlasherNotyfServiceProvider; use Flasher\Notyf\Prime\NotyfFactory; -use Flasher\Notyf\Prime\NotyfRenderer; use Flasher\Prime\Flasher; -use Flasher\Prime\Renderer\RendererManager; use Illuminate\Container\Container; use Illuminate\Foundation\Application; @@ -36,24 +34,13 @@ class Laravel implements ServiceProviderInterface public function registerServices() { $this->app->singleton('flasher.factory.notyf', function (Container $app) { - return new NotyfFactory($app['flasher.event_dispatcher']); + return new NotyfFactory($app['flasher.storage_manager']); }); - $this->app->singleton('flasher.renderer.notyf', function (Container $app) { - return new NotyfRenderer($app['flasher.config']); - }); - - $this->app->alias('flasher.factory.notyf', 'Flasher\Notyf\Prime\NotyfFactory'); - $this->app->alias('flasher.renderer.notyf', 'Flasher\Notyf\Prime\NotyfRenderer'); + $this->app->alias('flasher.notyf', 'Flasher\Notyf\Prime\NotyfFactory'); $this->app->extend('flasher', function (Flasher $manager, Container $app) { - $manager->addFactory($app['flasher.factory.notyf']); - - return $manager; - }); - - $this->app->extend('flasher.renderer_manager', function (RendererManager $manager, Container $app) { - $manager->addDriver($app['flasher.renderer.notyf']); + $manager->addFactory('notyf', $app['flasher.notyf']); return $manager; }); diff --git a/src/Notyf/Prime/Notyf.php b/src/Notyf/Prime/Notyf.php index a905234f..92d31c8a 100644 --- a/src/Notyf/Prime/Notyf.php +++ b/src/Notyf/Prime/Notyf.php @@ -6,5 +6,4 @@ use Flasher\Prime\Notification\Notification; final class Notyf extends Notification { - } diff --git a/src/Notyf/Prime/NotyfBuilder.php b/src/Notyf/Prime/NotyfBuilder.php index 47461b5f..902a227a 100644 --- a/src/Notyf/Prime/NotyfBuilder.php +++ b/src/Notyf/Prime/NotyfBuilder.php @@ -4,10 +4,6 @@ namespace Flasher\Notyf\Prime; use Flasher\Prime\Notification\NotificationBuilder; -/** - * @method Pnotify getNotification() - */ final class NotyfBuilder extends NotificationBuilder { - } diff --git a/src/Notyf/Prime/NotyfFactory.php b/src/Notyf/Prime/NotyfFactory.php index f8e4149b..9e1a3860 100644 --- a/src/Notyf/Prime/NotyfFactory.php +++ b/src/Notyf/Prime/NotyfFactory.php @@ -4,29 +4,16 @@ namespace Flasher\Notyf\Prime; use Flasher\Prime\Factory\AbstractFactory; +/** + * @mixin NotyfBuilder + */ final class NotyfFactory extends AbstractFactory { - /** - * @inheritDoc - */ - public function createNotification() - { - return new Pnotify(); - } - /** * @inheritDoc */ public function createNotificationBuilder() { - return new PnotifyBuilder($this->getStorageManager(), $this->createNotification(), 'notyf'); - } - - /** - * @inheritDoc - */ - public function supports($name = null, array $context = array()) - { - return in_array($name, array(__CLASS__, 'notyf')); + return new NotyfBuilder($this->getStorageManager(), new Notyf(), 'notyf'); } } diff --git a/src/Notyf/Prime/NotyfRenderer.php b/src/Notyf/Prime/NotyfRenderer.php deleted file mode 100644 index c2400891..00000000 --- a/src/Notyf/Prime/NotyfRenderer.php +++ /dev/null @@ -1,85 +0,0 @@ -config = $config; - $this->scripts = $config->get('adapters.notyf.scripts', array()); - $this->styles = $config->get('adapters.notyf.styles', array()); - $this->options = $config->get('adapters.notyf.options', array()); - } - - /** - * @inheritDoc - */ - public function render(Envelope $envelope) - { - $options = $envelope->getOptions(); - - $options['message'] = $envelope->getMessage(); - $options['type'] = $envelope->getType(); - - return sprintf("notyf.open(%s);", json_encode($options)); - } - - /** - * @inheritDoc - */ - public function getScripts() - { - return $this->scripts; - } - - /** - * @inheritDoc - */ - public function getStyles() - { - return $this->styles; - } - - public function renderOptions() - { - return sprintf('if ("undefined" === typeof notyf) { var notyf = new Notyf(%s); }', json_encode($this->options)); - } - - /** - * @inheritDoc - */ - public function supports($name = null, array $context = array()) - { - return in_array($name, array(__CLASS__, 'notyf', 'Flasher\Notyf\Prime\NotyfFactory', - 'Flasher\Notyf\Prime\Pnotify' - )); - } -} diff --git a/src/Notyf/Symfony/DependencyInjection/Configuration.php b/src/Notyf/Symfony/DependencyInjection/Configuration.php index 6eab5cda..547f80ba 100644 --- a/src/Notyf/Symfony/DependencyInjection/Configuration.php +++ b/src/Notyf/Symfony/DependencyInjection/Configuration.php @@ -27,6 +27,7 @@ final class Configuration implements ConfigurationInterface ->prototype('scalar')->end() ->defaultValue(array( 'https://cdn.jsdelivr.net/npm/notyf@3/notyf.min.js', + '/bundles/flashernotyf/flasher-notyf.js', )) ->end() ->arrayNode('styles') diff --git a/src/Notyf/Symfony/Resources/config/config.yaml b/src/Notyf/Symfony/Resources/config/config.yaml index 95624abe..f4950e70 100644 --- a/src/Notyf/Symfony/Resources/config/config.yaml +++ b/src/Notyf/Symfony/Resources/config/config.yaml @@ -1,16 +1,8 @@ services: - flasher.factory.notyf: + flasher.notyf: parent: 'flasher.abstract_factory' - class: Flasher\Notyf\Prime\NotyfProducer + class: Flasher\Notyf\Prime\NotyfFactory tags: - - { name: 'flasher.factory' } + - { name: 'flasher.factory', alias: 'notyf' } - flasher.renderer.notyf: - class: Flasher\Notyf\Prime\NotyfRenderer - arguments: - - '@flasher.config' - tags: - - { name: 'flasher.renderer' } - - Flasher\Notyf\Prime\NotyfProducer: '@flasher.factory.notyf' - Flasher\Notyf\Prime\NotyfRenderer: '@flasher.renderer.notyf' + Flasher\Notyf\Prime\NotyfFactory: '@flasher.notyf' diff --git a/src/Notyf/Symfony/Resources/public/flasher-notyf.js b/src/Notyf/Symfony/Resources/public/flasher-notyf.js new file mode 100644 index 00000000..dd6fe205 --- /dev/null +++ b/src/Notyf/Symfony/Resources/public/flasher-notyf.js @@ -0,0 +1,17 @@ +PHPFlasher.addFactory('notyf', (function () { + 'use strict'; + + var exports = {}; + + exports.render = function (data) { + window.notyf.open(data); + }; + + exports.renderOptions = function (options) { + if ("undefined" === typeof window.notyf) { + window.notyf = new Notyf(options); + } + }; + + return exports; +})()); diff --git a/src/Pnotify/Laravel/Resources/public/flasher-noty.js b/src/Pnotify/Laravel/Resources/public/flasher-pnotify.js similarity index 71% rename from src/Pnotify/Laravel/Resources/public/flasher-noty.js rename to src/Pnotify/Laravel/Resources/public/flasher-pnotify.js index f654f7d9..1a8ca8d0 100644 --- a/src/Pnotify/Laravel/Resources/public/flasher-noty.js +++ b/src/Pnotify/Laravel/Resources/public/flasher-pnotify.js @@ -1,4 +1,4 @@ -PHPFlasher.addFactory('noty', (function () { +PHPFlasher.addFactory('pnotify', (function () { 'use strict'; var exports = {}; @@ -10,11 +10,11 @@ PHPFlasher.addFactory('noty', (function () { ...data.options } - new Noty(options).show(); + new PNotify(options); }; exports.renderOptions = function (options) { - Noty.overrideDefaults(options); + PNotify.defaults = options; }; return exports; diff --git a/src/Pnotify/Laravel/ServiceProvider/Providers/Laravel.php b/src/Pnotify/Laravel/ServiceProvider/Providers/Laravel.php index 23682428..3155d16c 100644 --- a/src/Pnotify/Laravel/ServiceProvider/Providers/Laravel.php +++ b/src/Pnotify/Laravel/ServiceProvider/Providers/Laravel.php @@ -4,9 +4,7 @@ namespace Flasher\Pnotify\Laravel\ServiceProvider\Providers; use Flasher\Pnotify\Laravel\FlasherPnotifyServiceProvider; use Flasher\Pnotify\Prime\PnotifyFactory; -use Flasher\Pnotify\Prime\PnotifyRenderer; use Flasher\Prime\Flasher; -use Flasher\Prime\Renderer\RendererManager; use Illuminate\Container\Container; use Illuminate\Foundation\Application; @@ -35,25 +33,14 @@ class Laravel implements ServiceProviderInterface public function registerServices() { - $this->app->singleton('flasher.factory.pnotify', function (Container $app) { - return new PnotifyFactory($app['flasher.event_dispatcher']); + $this->app->singleton('flasher.pnotify', function (Container $app) { + return new PnotifyFactory($app['flasher.storage_manager']); }); - $this->app->singleton('flasher.renderer.pnotify', function (Container $app) { - return new PnotifyRenderer($app['flasher.config']); - }); - - $this->app->alias('flasher.factory.pnotify', 'Flasher\Pnotify\Prime\PnotifyFactory'); - $this->app->alias('flasher.renderer.pnotify', 'Flasher\Pnotify\Prime\PnotifyRenderer'); + $this->app->alias('flasher.pnotify', 'Flasher\Pnotify\Prime\PnotifyFactory'); $this->app->extend('flasher', function (Flasher $manager, Container $app) { - $manager->addFactory($app['flasher.factory.pnotify']); - - return $manager; - }); - - $this->app->extend('flasher.renderer_manager', function (RendererManager $manager, Container $app) { - $manager->addDriver($app['flasher.renderer.pnotify']); + $manager->addFactory('pnotify', $app['flasher.factory.pnotify']); return $manager; }); diff --git a/src/Pnotify/Prime/Pnotify.php b/src/Pnotify/Prime/Pnotify.php index a1827fb4..0cb405b2 100644 --- a/src/Pnotify/Prime/Pnotify.php +++ b/src/Pnotify/Prime/Pnotify.php @@ -6,5 +6,4 @@ use Flasher\Prime\Notification\Notification; final class Pnotify extends Notification { - } diff --git a/src/Pnotify/Prime/PnotifyBuilder.php b/src/Pnotify/Prime/PnotifyBuilder.php index c1ee708b..67ad16e2 100644 --- a/src/Pnotify/Prime/PnotifyBuilder.php +++ b/src/Pnotify/Prime/PnotifyBuilder.php @@ -4,10 +4,6 @@ namespace Flasher\Pnotify\Prime; use Flasher\Prime\Notification\NotificationBuilder; -/** - * @method Pnotify getNotification() - */ final class PnotifyBuilder extends NotificationBuilder { - } diff --git a/src/Pnotify/Prime/PnotifyFactory.php b/src/Pnotify/Prime/PnotifyFactory.php index cb44ec3c..3a8fb34a 100644 --- a/src/Pnotify/Prime/PnotifyFactory.php +++ b/src/Pnotify/Prime/PnotifyFactory.php @@ -4,29 +4,16 @@ namespace Flasher\Pnotify\Prime; use Flasher\Prime\Factory\AbstractFactory; +/** + * @mixin PnotifyBuilder + */ final class PnotifyFactory extends AbstractFactory { - /** - * @inheritDoc - */ - public function createNotification() - { - return new Pnotify(); - } - /** * @inheritDoc */ public function createNotificationBuilder() { - return new PnotifyBuilder($this->getStorageManager(), $this->createNotification(), 'pnotify'); - } - - /** - * @inheritDoc - */ - public function supports($name = null, array $context = array()) - { - return in_array($name, array(__CLASS__, 'pnotify')); + return new PnotifyBuilder($this->getStorageManager(), new Pnotify(), 'pnotify'); } } diff --git a/src/Pnotify/Prime/PnotifyRenderer.php b/src/Pnotify/Prime/PnotifyRenderer.php deleted file mode 100644 index a1ff1037..00000000 --- a/src/Pnotify/Prime/PnotifyRenderer.php +++ /dev/null @@ -1,83 +0,0 @@ -config = $config; - $this->scripts = $config->get('adapters.pnotify.scripts', array()); - $this->styles = $config->get('adapters.pnotify.styles', array()); - $this->options = $config->get('adapters.pnotify.options', array()); - } - - /** - * @inheritDoc - */ - public function render(Envelope $envelope) - { - $options = $envelope->getOptions(); - - $options['text'] = $envelope->getMessage(); - $options['type'] = $envelope->getType(); - - return sprintf("new PNotify(%s);", json_encode($options)); - } - - /** - * @inheritDoc - */ - public function getScripts() - { - return $this->scripts; - } - - /** - * @inheritDoc - */ - public function getStyles() - { - return $this->styles; - } - - public function renderOptions() - { - return sprintf('PNotify.defaults = %s;', json_encode($this->options)); - } - - /** - * @inheritDoc - */ - public function supports($name = null, array $context = array()) - { - return in_array($name, array(__CLASS__, 'pnotify', 'Flasher\Pnotify\Prime\PnotifyFactory', 'Flasher\Pnotify\Prime\Pnotify')); - } -} diff --git a/src/Pnotify/Symfony/DependencyInjection/Configuration.php b/src/Pnotify/Symfony/DependencyInjection/Configuration.php index 6907ce6b..f0362275 100644 --- a/src/Pnotify/Symfony/DependencyInjection/Configuration.php +++ b/src/Pnotify/Symfony/DependencyInjection/Configuration.php @@ -28,6 +28,7 @@ final class Configuration implements ConfigurationInterface ->defaultValue(array( 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js', 'https://cdnjs.cloudflare.com/ajax/libs/pnotify/3.2.1/pnotify.js', + '/bundles/flasherpnotify/flasher-pnotify.js', )) ->end() ->arrayNode('styles') diff --git a/src/Pnotify/Symfony/Resources/config/config.yaml b/src/Pnotify/Symfony/Resources/config/config.yaml index 3c59e14c..b5f0027d 100644 --- a/src/Pnotify/Symfony/Resources/config/config.yaml +++ b/src/Pnotify/Symfony/Resources/config/config.yaml @@ -1,16 +1,8 @@ services: - flasher.factory.pnotify: + flasher.pnotify: parent: 'flasher.abstract_factory' class: Flasher\Pnotify\Prime\PnotifyFactory tags: - - { name: 'flasher.factory' } + - { name: 'flasher.factory', alias: 'pnotify' } - flasher.renderer.pnotify: - class: Flasher\PFlasher\Prime\PnotifyRenderer - arguments: - - '@flasher.config' - tags: - - { name: 'flasher.renderer' } - - Flasher\PFlasher\Prime\PnotifyFactory: '@flasher.factory.pnotify' - Flasher\PFlasher\Prime\PnotifyRenderer: '@flasher.renderer.pnotify' + Flasher\PFlasher\Prime\PnotifyFactory: '@flasher.pnotify' diff --git a/src/Notyf/Laravel/Resources/public/flasher-noty.js b/src/Pnotify/Symfony/Resources/public/flasher-pnotify.js similarity index 71% rename from src/Notyf/Laravel/Resources/public/flasher-noty.js rename to src/Pnotify/Symfony/Resources/public/flasher-pnotify.js index f654f7d9..1a8ca8d0 100644 --- a/src/Notyf/Laravel/Resources/public/flasher-noty.js +++ b/src/Pnotify/Symfony/Resources/public/flasher-pnotify.js @@ -1,4 +1,4 @@ -PHPFlasher.addFactory('noty', (function () { +PHPFlasher.addFactory('pnotify', (function () { 'use strict'; var exports = {}; @@ -10,11 +10,11 @@ PHPFlasher.addFactory('noty', (function () { ...data.options } - new Noty(options).show(); + new PNotify(options); }; exports.renderOptions = function (options) { - Noty.overrideDefaults(options); + PNotify.defaults = options; }; return exports; diff --git a/src/SweetAlert/Laravel/Resources/public/flasher-noty.js b/src/SweetAlert/Laravel/Resources/public/flasher-noty.js deleted file mode 100644 index f654f7d9..00000000 --- a/src/SweetAlert/Laravel/Resources/public/flasher-noty.js +++ /dev/null @@ -1,21 +0,0 @@ -PHPFlasher.addFactory('noty', (function () { - 'use strict'; - - var exports = {}; - - exports.render = function (data) { - var options = { - text: data.message, - type: data.type, - ...data.options - } - - new Noty(options).show(); - }; - - exports.renderOptions = function (options) { - Noty.overrideDefaults(options); - }; - - return exports; -})()); diff --git a/src/Pnotify/Symfony/Resources/public/flasher-noty.js b/src/SweetAlert/Laravel/Resources/public/flasher-sweet-alert.js similarity index 52% rename from src/Pnotify/Symfony/Resources/public/flasher-noty.js rename to src/SweetAlert/Laravel/Resources/public/flasher-sweet-alert.js index f654f7d9..f8a78b8c 100644 --- a/src/Pnotify/Symfony/Resources/public/flasher-noty.js +++ b/src/SweetAlert/Laravel/Resources/public/flasher-sweet-alert.js @@ -1,4 +1,4 @@ -PHPFlasher.addFactory('noty', (function () { +PHPFlasher.addFactory('sweet_alert', (function () { 'use strict'; var exports = {}; @@ -6,15 +6,17 @@ PHPFlasher.addFactory('noty', (function () { exports.render = function (data) { var options = { text: data.message, - type: data.type, + icon: data.type, ...data.options } - new Noty(options).show(); + window.SwalToast.fire(options); }; exports.renderOptions = function (options) { - Noty.overrideDefaults(options); + if ("undefined" === typeof window.SwalToast) { + window.SwalToast = Swal.mixin(options); + } }; return exports; diff --git a/src/SweetAlert/Laravel/ServiceProvider/Providers/Laravel.php b/src/SweetAlert/Laravel/ServiceProvider/Providers/Laravel.php index 6c1779bc..b1d8c0d3 100644 --- a/src/SweetAlert/Laravel/ServiceProvider/Providers/Laravel.php +++ b/src/SweetAlert/Laravel/ServiceProvider/Providers/Laravel.php @@ -3,10 +3,8 @@ namespace Flasher\SweetAlert\Laravel\ServiceProvider\Providers; use Flasher\Prime\Flasher; -use Flasher\Prime\Renderer\RendererManager; use Flasher\SweetAlert\Laravel\FlasherSweetAlertServiceProvider; use Flasher\SweetAlert\Prime\SweetAlertFactory; -use Flasher\SweetAlert\Prime\SweetAlertRenderer; use Illuminate\Container\Container; use Illuminate\Foundation\Application; @@ -36,24 +34,13 @@ class Laravel implements ServiceProviderInterface public function registerServices() { $this->app->singleton('flasher.factory.sweet_alert', function (Container $app) { - return new SweetAlertFactory($app['flasher.event_dispatcher']); + return new SweetAlertFactory($app['flasher.storage_manager']); }); - $this->app->singleton('flasher.renderer.sweet_alert', function (Container $app) { - return new SweetAlertRenderer($app['flasher.config']); - }); - - $this->app->alias('flasher.factory.sweet_alert', 'Flasher\SweetAlert\Prime\SweetAlertFactory'); - $this->app->alias('flasher.renderer.sweet_alert', 'Flasher\SweetAlert\Prime\SweetAlertRenderer'); + $this->app->alias('flasher.sweet_alert', 'Flasher\SweetAlert\Prime\SweetAlertFactory'); $this->app->extend('flasher', function (Flasher $manager, Container $app) { - $manager->addFactory($app['flasher.factory.sweet_alert']); - - return $manager; - }); - - $this->app->extend('flasher.renderer_manager', function (RendererManager $manager, Container $app) { - $manager->addDriver($app['flasher.renderer.sweet_alert']); + $manager->addFactory('sweet_alert', $app['flasher.factory.sweet_alert']); return $manager; }); diff --git a/src/SweetAlert/Prime/SweetAlert.php b/src/SweetAlert/Prime/SweetAlert.php index 966aa720..d8c09ac5 100644 --- a/src/SweetAlert/Prime/SweetAlert.php +++ b/src/SweetAlert/Prime/SweetAlert.php @@ -6,5 +6,4 @@ use Flasher\Prime\Notification\Notification; final class SweetAlert extends Notification { - } diff --git a/src/SweetAlert/Prime/SweetAlertBuilder.php b/src/SweetAlert/Prime/SweetAlertBuilder.php index 4e3e2131..3fb83495 100644 --- a/src/SweetAlert/Prime/SweetAlertBuilder.php +++ b/src/SweetAlert/Prime/SweetAlertBuilder.php @@ -6,5 +6,4 @@ use Flasher\Prime\Notification\NotificationBuilder; final class SweetAlertBuilder extends NotificationBuilder { - } diff --git a/src/SweetAlert/Prime/SweetAlertFactory.php b/src/SweetAlert/Prime/SweetAlertFactory.php index 531beced..aa5b54a0 100644 --- a/src/SweetAlert/Prime/SweetAlertFactory.php +++ b/src/SweetAlert/Prime/SweetAlertFactory.php @@ -4,29 +4,16 @@ namespace Flasher\SweetAlert\Prime; use Flasher\Prime\Factory\AbstractFactory; +/** + * @mixin SweetAlertBuilder + */ final class SweetAlertFactory extends AbstractFactory { - /** - * @inheritDoc - */ - public function createNotification() - { - return new SweetAlert(); - } - /** * @inheritDoc */ public function createNotificationBuilder() { - return new SweetAlertBuilder($this->getStorageManager(), $this->createNotification(), 'sweet_alert'); - } - - /** - * @inheritDoc - */ - public function supports($name = null, array $context = array()) - { - return in_array($name, array(__CLASS__, 'sweet_alert')); + return new SweetAlertBuilder($this->getStorageManager(), new SweetAlert(), 'sweet_alert'); } } diff --git a/src/SweetAlert/Prime/SweetAlertRenderer.php b/src/SweetAlert/Prime/SweetAlertRenderer.php deleted file mode 100644 index 82c1a561..00000000 --- a/src/SweetAlert/Prime/SweetAlertRenderer.php +++ /dev/null @@ -1,87 +0,0 @@ -config = $config; - $this->scripts = $config->get('adapters.sweet_alert.scripts', array()); - $this->styles = $config->get('adapters.sweet_alert.styles', array()); - $this->options = $config->get('adapters.sweet_alert.options', array()); - } - - /** - * @inheritDoc - */ - public function render(Envelope $envelope) - { - $options = $envelope->getOptions(); - - $options['text'] = $envelope->getMessage(); - $options['icon'] = $envelope->getType(); - - if (!empty($options['imageUrl'])) { - unset($options['icon']); - } - - return sprintf("SwalToast.fire(%s);", json_encode($options)); - } - - /** - * @inheritDoc - */ - public function getScripts() - { - return $this->scripts; - } - - /** - * @inheritDoc - */ - public function getStyles() - { - return $this->styles; - } - - public function renderOptions() - { - return sprintf('var SwalToast = Swal.mixin(%s);', json_encode($this->options)); - } - - /** - * @inheritDoc - */ - public function supports($name = null, array $context = array()) - { - return in_array($name, array(__CLASS__, 'sweet_alert', 'Flasher\SweetAlert\Prime\SweetAlertFactory', 'Flasher\SweetAlert\Prime\SweetAlert')); - } -} diff --git a/src/SweetAlert/Symfony/DependencyInjection/Configuration.php b/src/SweetAlert/Symfony/DependencyInjection/Configuration.php index ea326e09..59414a89 100644 --- a/src/SweetAlert/Symfony/DependencyInjection/Configuration.php +++ b/src/SweetAlert/Symfony/DependencyInjection/Configuration.php @@ -29,6 +29,7 @@ final class Configuration implements ConfigurationInterface 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js', 'https://cdnjs.cloudflare.com/ajax/libs/limonte-sweetalert2/10.10.2/sweetalert2.min.js', 'https://cdnjs.cloudflare.com/ajax/libs/promise-polyfill/8.2.0/polyfill.min.js', + '/bundles/flashersweetalert/flasher-sweet-alert.js', )) ->end() ->arrayNode('styles') diff --git a/src/SweetAlert/Symfony/Resources/config/config.yaml b/src/SweetAlert/Symfony/Resources/config/config.yaml index 216a1343..76efa636 100644 --- a/src/SweetAlert/Symfony/Resources/config/config.yaml +++ b/src/SweetAlert/Symfony/Resources/config/config.yaml @@ -1,16 +1,8 @@ services: - flasher.factory.sweet_alert: - parent: 'flasher.factory.abstract' + flasher.sweet_alert: + parent: 'flasher.abstract_factory' class: Flasher\SweetAlert\Prime\SweetAlertFactory tags: - - { name: 'flasher.factory' } + - { name: 'flasher.factory', alias: 'sweet_alert' } - flasher.renderer.sweet_alert: - class: Flasher\SweetAlert\Prime\SweetAlertRenderer - arguments: - - '@flasher.config' - tags: - - { name: 'flasher.renderer' } - - Flasher\SweetAlert\Prime\SweetAlertFactory: '@flasher.factory.sweet_alert' - Flasher\SweetAlert\Prime\SweetAlertRenderer: '@flasher.renderer.sweet_alert' + Flasher\SweetAlert\Prime\SweetAlertFactory: '@flasher.sweet_alert' diff --git a/src/SweetAlert/Symfony/Resources/public/flasher-noty.js b/src/SweetAlert/Symfony/Resources/public/flasher-noty.js deleted file mode 100644 index f654f7d9..00000000 --- a/src/SweetAlert/Symfony/Resources/public/flasher-noty.js +++ /dev/null @@ -1,21 +0,0 @@ -PHPFlasher.addFactory('noty', (function () { - 'use strict'; - - var exports = {}; - - exports.render = function (data) { - var options = { - text: data.message, - type: data.type, - ...data.options - } - - new Noty(options).show(); - }; - - exports.renderOptions = function (options) { - Noty.overrideDefaults(options); - }; - - return exports; -})()); diff --git a/src/Notyf/Symfony/Resources/public/flasher-noty.js b/src/SweetAlert/Symfony/Resources/public/flasher-sweet-alert.js similarity index 52% rename from src/Notyf/Symfony/Resources/public/flasher-noty.js rename to src/SweetAlert/Symfony/Resources/public/flasher-sweet-alert.js index f654f7d9..f8a78b8c 100644 --- a/src/Notyf/Symfony/Resources/public/flasher-noty.js +++ b/src/SweetAlert/Symfony/Resources/public/flasher-sweet-alert.js @@ -1,4 +1,4 @@ -PHPFlasher.addFactory('noty', (function () { +PHPFlasher.addFactory('sweet_alert', (function () { 'use strict'; var exports = {}; @@ -6,15 +6,17 @@ PHPFlasher.addFactory('noty', (function () { exports.render = function (data) { var options = { text: data.message, - type: data.type, + icon: data.type, ...data.options } - new Noty(options).show(); + window.SwalToast.fire(options); }; exports.renderOptions = function (options) { - Noty.overrideDefaults(options); + if ("undefined" === typeof window.SwalToast) { + window.SwalToast = Swal.mixin(options); + } }; return exports; diff --git a/src/Symfony/DependencyInjection/Configuration.php b/src/Symfony/DependencyInjection/Configuration.php index bb078f51..50c8aaf7 100644 --- a/src/Symfony/DependencyInjection/Configuration.php +++ b/src/Symfony/DependencyInjection/Configuration.php @@ -25,7 +25,7 @@ final class Configuration implements ConfigurationInterface ->children() ->scalarNode('default') ->cannotBeEmpty() - ->defaultValue('toastr') + ->defaultValue('notyf') ->end() ->arrayNode('scripts') ->prototype('scalar')->end() diff --git a/src/Toastr/Laravel/ServiceProvider/Providers/Laravel.php b/src/Toastr/Laravel/ServiceProvider/Providers/Laravel.php index 24759b17..1d5c9849 100644 --- a/src/Toastr/Laravel/ServiceProvider/Providers/Laravel.php +++ b/src/Toastr/Laravel/ServiceProvider/Providers/Laravel.php @@ -3,10 +3,8 @@ namespace Flasher\Toastr\Laravel\ServiceProvider\Providers; use Flasher\Prime\Flasher; -use Flasher\Prime\Renderer\RendererManager; use Flasher\Toastr\Laravel\FlasherToastrServiceProvider; use Flasher\Toastr\Prime\ToastrFactory; -use Flasher\Toastr\Prime\ToastrRenderer; use Illuminate\Container\Container; use Illuminate\Foundation\Application; @@ -35,28 +33,17 @@ class Laravel implements ServiceProviderInterface public function registerToastrServices() { - $this->app->singleton('flasher.factory.toastr', function (Container $app) { - return new ToastrFactory($app['flasher.event_dispatcher']); + $this->app->singleton('flasher.toastr', function (Container $app) { + return new ToastrFactory($app['flasher.storage_manager']); }); - $this->app->singleton('flasher.renderer.toastr', function (Container $app) { - return new ToastrRenderer($app['flasher.config']); - }); - - $this->app->alias('flasher.factory.toastr', 'Flasher\Toastr\Prime\ToastrFactory'); - $this->app->alias('flasher.renderer.toastr', 'Flasher\Toastr\Prime\ToastrRenderer'); + $this->app->alias('flasher.toastr', 'Flasher\Toastr\Prime\ToastrFactory'); $this->app->extend('flasher', function (Flasher $flasher, Container $app) { - $flasher->addFactory($app['flasher.factory.toastr']); + $flasher->addFactory('toastr', $app['flasher.toastr']); return $flasher; }); - - $this->app->extend('flasher.renderer_manager', function (RendererManager $manager, Container $app) { - $manager->addDriver($app['flasher.renderer.toastr']); - - return $manager; - }); } public function mergeConfigFromToastr() diff --git a/src/Toastr/Symfony/DependencyInjection/FlasherToastrExtension.php b/src/Toastr/Symfony/DependencyInjection/FlasherToastrExtension.php index 33004295..b623aa64 100644 --- a/src/Toastr/Symfony/DependencyInjection/FlasherToastrExtension.php +++ b/src/Toastr/Symfony/DependencyInjection/FlasherToastrExtension.php @@ -18,7 +18,7 @@ final class FlasherToastrExtension extends Extension implements PrependExtension public function load(array $configs, ContainerBuilder $container) { $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); - $loader->load('services.yaml'); + $loader->load('config.yaml'); $configuration = new Configuration(); $this->processConfiguration($configuration, $configs); diff --git a/src/Toastr/Symfony/Resources/config/services.yaml b/src/Toastr/Symfony/Resources/config/config.yaml similarity index 100% rename from src/Toastr/Symfony/Resources/config/services.yaml rename to src/Toastr/Symfony/Resources/config/config.yaml