diff --git a/common/bootstrap/SetUp.php b/common/bootstrap/SetUp.php index bda4f66..4922895 100644 --- a/common/bootstrap/SetUp.php +++ b/common/bootstrap/SetUp.php @@ -10,10 +10,10 @@ use core\entities\ModuleRecord; //use League\Flysystem\Adapter\Ftp; //use League\Flysystem\Filesystem; -//use shop\cart\Cart; -//use shop\cart\cost\calculator\DynamicCost; -//use shop\cart\cost\calculator\SimpleCost; -//use shop\cart\storage\HybridStorage; +use common\modules\shop\cart\ShopCart; +use common\modules\shop\cart\cost\calculator\DynamicCost; +use common\modules\shop\cart\cost\calculator\SimpleCost; +use common\modules\shop\cart\storage\HybridStorage; use core\dispatchers\AsyncEventDispatcher; use core\dispatchers\DeferredEventDispatcher; use core\dispatchers\EventDispatcher; @@ -84,13 +84,13 @@ class SetUp implements BootstrapInterface $app->params['adminEmail'] ]); - /*$container->setSingleton(Cart::class, function () use ($app) { - return new Cart( + $container->setSingleton(ShopCart::class, function () use ($app) { + return new ShopCart( new HybridStorage($app->get('user'), 'cart', 3600 * 24, $app->db), new DynamicCost(new SimpleCost()) ); }); - +/* $container->setSingleton(YandexMarket::class, [], [ new ShopInfo($app->name, $app->name, $app->params['frontendHostInfo']), ]);*/ diff --git a/composer.json b/composer.json index 5e9228d..a0faca4 100644 --- a/composer.json +++ b/composer.json @@ -41,7 +41,9 @@ "zertex/yii2-ckeditor": "^1.0", "omgdef/yii2-multilingual-behavior": "^2.1", "kartik-v/yii2-detail-view": "@dev", - "zertex/yii2-gridstackjs": "*" + "zertex/yii2-gridstackjs": "*", + "bower-asset/font-awesome": "^4.7", + "bower-asset/devicejs": "^0.7.8" }, "require-dev": { "yiisoft/yii2-debug": "~2.0.0", diff --git a/frontend/components/FrontendController.php b/frontend/components/FrontendController.php index 09c9a6f..50d7b3d 100644 --- a/frontend/components/FrontendController.php +++ b/frontend/components/FrontendController.php @@ -33,5 +33,8 @@ class FrontendController extends Controller ], ]); + + // site name + Yii::$app->name = Yii::$app->params['settings']['site']['name']; } } diff --git a/frontend/web/themes/sport/account/profile/edit.php b/frontend/web/themes/football/account/profile/edit.php similarity index 100% rename from frontend/web/themes/sport/account/profile/edit.php rename to frontend/web/themes/football/account/profile/edit.php diff --git a/frontend/web/themes/sport/account/profile/social.php b/frontend/web/themes/football/account/profile/social.php similarity index 100% rename from frontend/web/themes/sport/account/profile/social.php rename to frontend/web/themes/football/account/profile/social.php diff --git a/frontend/web/themes/sport/auth/auth/login.php b/frontend/web/themes/football/auth/auth/login.php similarity index 100% rename from frontend/web/themes/sport/auth/auth/login.php rename to frontend/web/themes/football/auth/auth/login.php diff --git a/frontend/web/themes/sport/auth/reset/confirm.php b/frontend/web/themes/football/auth/reset/confirm.php similarity index 100% rename from frontend/web/themes/sport/auth/reset/confirm.php rename to frontend/web/themes/football/auth/reset/confirm.php diff --git a/frontend/web/themes/sport/auth/reset/request.php b/frontend/web/themes/football/auth/reset/request.php similarity index 100% rename from frontend/web/themes/sport/auth/reset/request.php rename to frontend/web/themes/football/auth/reset/request.php diff --git a/frontend/web/themes/sport/auth/signup/request.php b/frontend/web/themes/football/auth/signup/request.php similarity index 100% rename from frontend/web/themes/sport/auth/signup/request.php rename to frontend/web/themes/football/auth/signup/request.php diff --git a/frontend/web/themes/sport/contact/index.php b/frontend/web/themes/football/contact/index.php similarity index 100% rename from frontend/web/themes/sport/contact/index.php rename to frontend/web/themes/football/contact/index.php diff --git a/frontend/web/themes/sport/images/Home_files/21436119_473048923066578_5148142032291627008_n.jpg b/frontend/web/themes/football/images/Home_files/21436119_473048923066578_5148142032291627008_n.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/21436119_473048923066578_5148142032291627008_n.jpg rename to frontend/web/themes/football/images/Home_files/21436119_473048923066578_5148142032291627008_n.jpg diff --git a/frontend/web/themes/sport/images/Home_files/21479737_472843706431477_5206562929071095808_n.jpg b/frontend/web/themes/football/images/Home_files/21479737_472843706431477_5206562929071095808_n.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/21479737_472843706431477_5206562929071095808_n.jpg rename to frontend/web/themes/football/images/Home_files/21479737_472843706431477_5206562929071095808_n.jpg diff --git a/frontend/web/themes/sport/images/Home_files/21480085_1618930664797383_1913910776549081088_n.jpg b/frontend/web/themes/football/images/Home_files/21480085_1618930664797383_1913910776549081088_n.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/21480085_1618930664797383_1913910776549081088_n.jpg rename to frontend/web/themes/football/images/Home_files/21480085_1618930664797383_1913910776549081088_n.jpg diff --git a/frontend/web/themes/sport/images/Home_files/21480314_115609609151834_2653927375292596224_n.jpg b/frontend/web/themes/football/images/Home_files/21480314_115609609151834_2653927375292596224_n.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/21480314_115609609151834_2653927375292596224_n.jpg rename to frontend/web/themes/football/images/Home_files/21480314_115609609151834_2653927375292596224_n.jpg diff --git a/frontend/web/themes/sport/images/Home_files/21568673_150711905520712_2006047875271753728_n.jpg b/frontend/web/themes/football/images/Home_files/21568673_150711905520712_2006047875271753728_n.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/21568673_150711905520712_2006047875271753728_n.jpg rename to frontend/web/themes/football/images/Home_files/21568673_150711905520712_2006047875271753728_n.jpg diff --git a/frontend/web/themes/sport/images/Home_files/21569195_772356829603866_7348995180134924288_n.jpg b/frontend/web/themes/football/images/Home_files/21569195_772356829603866_7348995180134924288_n.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/21569195_772356829603866_7348995180134924288_n.jpg rename to frontend/web/themes/football/images/Home_files/21569195_772356829603866_7348995180134924288_n.jpg diff --git a/frontend/web/themes/sport/images/Home_files/GRlsN4GyPxo.html b/frontend/web/themes/football/images/Home_files/GRlsN4GyPxo.html similarity index 100% rename from frontend/web/themes/sport/images/Home_files/GRlsN4GyPxo.html rename to frontend/web/themes/football/images/Home_files/GRlsN4GyPxo.html diff --git a/frontend/web/themes/sport/images/Home_files/analytics.js b/frontend/web/themes/football/images/Home_files/analytics.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/analytics.js rename to frontend/web/themes/football/images/Home_files/analytics.js diff --git a/frontend/web/themes/sport/images/Home_files/bg-pattern-boxed.png b/frontend/web/themes/football/images/Home_files/bg-pattern-boxed.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/bg-pattern-boxed.png rename to frontend/web/themes/football/images/Home_files/bg-pattern-boxed.png diff --git a/frontend/web/themes/sport/images/Home_files/blog-element-1-94x94.jpg b/frontend/web/themes/football/images/Home_files/blog-element-1-94x94.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/blog-element-1-94x94.jpg rename to frontend/web/themes/football/images/Home_files/blog-element-1-94x94.jpg diff --git a/frontend/web/themes/sport/images/Home_files/blog-element-2-94x94.jpg b/frontend/web/themes/football/images/Home_files/blog-element-2-94x94.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/blog-element-2-94x94.jpg rename to frontend/web/themes/football/images/Home_files/blog-element-2-94x94.jpg diff --git a/frontend/web/themes/sport/images/Home_files/blog-element-3-94x94.jpg b/frontend/web/themes/football/images/Home_files/blog-element-3-94x94.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/blog-element-3-94x94.jpg rename to frontend/web/themes/football/images/Home_files/blog-element-3-94x94.jpg diff --git a/frontend/web/themes/sport/images/Home_files/blog-element-4-94x94.jpg b/frontend/web/themes/football/images/Home_files/blog-element-4-94x94.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/blog-element-4-94x94.jpg rename to frontend/web/themes/football/images/Home_files/blog-element-4-94x94.jpg diff --git a/frontend/web/themes/sport/images/Home_files/bootstrap.css b/frontend/web/themes/football/images/Home_files/bootstrap.css similarity index 100% rename from frontend/web/themes/sport/images/Home_files/bootstrap.css rename to frontend/web/themes/football/images/Home_files/bootstrap.css diff --git a/frontend/web/themes/sport/images/Home_files/core-cleared.js b/frontend/web/themes/football/images/Home_files/core-cleared.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/core-cleared.js rename to frontend/web/themes/football/images/Home_files/core-cleared.js diff --git a/frontend/web/themes/sport/images/Home_files/core.js b/frontend/web/themes/football/images/Home_files/core.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/core.js rename to frontend/web/themes/football/images/Home_files/core.js diff --git a/frontend/web/themes/sport/images/Home_files/css.css b/frontend/web/themes/football/images/Home_files/css.css similarity index 100% rename from frontend/web/themes/sport/images/Home_files/css.css rename to frontend/web/themes/football/images/Home_files/css.css diff --git a/frontend/web/themes/sport/images/Home_files/dot-dark.svg b/frontend/web/themes/football/images/Home_files/dot-dark.svg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/dot-dark.svg rename to frontend/web/themes/football/images/Home_files/dot-dark.svg diff --git a/frontend/web/themes/sport/images/Home_files/dot.svg b/frontend/web/themes/football/images/Home_files/dot.svg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/dot.svg rename to frontend/web/themes/football/images/Home_files/dot.svg diff --git a/frontend/web/themes/sport/images/Home_files/ec.js b/frontend/web/themes/football/images/Home_files/ec.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/ec.js rename to frontend/web/themes/football/images/Home_files/ec.js diff --git a/frontend/web/themes/sport/images/Home_files/footer-soccer-post-1-93x87.jpg b/frontend/web/themes/football/images/Home_files/footer-soccer-post-1-93x87.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/footer-soccer-post-1-93x87.jpg rename to frontend/web/themes/football/images/Home_files/footer-soccer-post-1-93x87.jpg diff --git a/frontend/web/themes/sport/images/Home_files/footer-soccer-post-2-93x87.jpg b/frontend/web/themes/football/images/Home_files/footer-soccer-post-2-93x87.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/footer-soccer-post-2-93x87.jpg rename to frontend/web/themes/football/images/Home_files/footer-soccer-post-2-93x87.jpg diff --git a/frontend/web/themes/sport/images/Home_files/footer-soccer-post-3-93x87.jpg b/frontend/web/themes/football/images/Home_files/footer-soccer-post-3-93x87.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/footer-soccer-post-3-93x87.jpg rename to frontend/web/themes/football/images/Home_files/footer-soccer-post-3-93x87.jpg diff --git a/frontend/web/themes/sport/images/Home_files/footer-soccer-post-4-93x87.jpg b/frontend/web/themes/football/images/Home_files/footer-soccer-post-4-93x87.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/footer-soccer-post-4-93x87.jpg rename to frontend/web/themes/football/images/Home_files/footer-soccer-post-4-93x87.jpg diff --git a/frontend/web/themes/sport/images/Home_files/isotope-loader.png b/frontend/web/themes/football/images/Home_files/isotope-loader.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/isotope-loader.png rename to frontend/web/themes/football/images/Home_files/isotope-loader.png diff --git a/frontend/web/themes/sport/images/Home_files/isotope.pkgd.min.js b/frontend/web/themes/football/images/Home_files/isotope.pkgd.min.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/isotope.pkgd.min.js rename to frontend/web/themes/football/images/Home_files/isotope.pkgd.min.js diff --git a/frontend/web/themes/sport/images/Home_files/jquery.ba-resize.min.js b/frontend/web/themes/football/images/Home_files/jquery.ba-resize.min.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/jquery.ba-resize.min.js rename to frontend/web/themes/football/images/Home_files/jquery.ba-resize.min.js diff --git a/frontend/web/themes/sport/images/Home_files/jquery.form.js b/frontend/web/themes/football/images/Home_files/jquery.form.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/jquery.form.js rename to frontend/web/themes/football/images/Home_files/jquery.form.js diff --git a/frontend/web/themes/sport/images/Home_files/landing-soccer-slider-1-slide-1-1920x671.jpg b/frontend/web/themes/football/images/Home_files/landing-soccer-slider-1-slide-1-1920x671.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/landing-soccer-slider-1-slide-1-1920x671.jpg rename to frontend/web/themes/football/images/Home_files/landing-soccer-slider-1-slide-1-1920x671.jpg diff --git a/frontend/web/themes/sport/images/Home_files/landing-soccer-slider-1-slide-2-1920x671.jpg b/frontend/web/themes/football/images/Home_files/landing-soccer-slider-1-slide-2-1920x671.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/landing-soccer-slider-1-slide-2-1920x671.jpg rename to frontend/web/themes/football/images/Home_files/landing-soccer-slider-1-slide-2-1920x671.jpg diff --git a/frontend/web/themes/sport/images/Home_files/loading.gif b/frontend/web/themes/football/images/Home_files/loading.gif similarity index 100% rename from frontend/web/themes/sport/images/Home_files/loading.gif rename to frontend/web/themes/football/images/Home_files/loading.gif diff --git a/frontend/web/themes/sport/images/Home_files/logo-soccer-default-129x129.png b/frontend/web/themes/football/images/Home_files/logo-soccer-default-129x129.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/logo-soccer-default-129x129.png rename to frontend/web/themes/football/images/Home_files/logo-soccer-default-129x129.png diff --git a/frontend/web/themes/sport/images/Home_files/megamenu-post-1-93x94.jpg b/frontend/web/themes/football/images/Home_files/megamenu-post-1-93x94.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/megamenu-post-1-93x94.jpg rename to frontend/web/themes/football/images/Home_files/megamenu-post-1-93x94.jpg diff --git a/frontend/web/themes/sport/images/Home_files/megamenu-post-2-93x94.jpg b/frontend/web/themes/football/images/Home_files/megamenu-post-2-93x94.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/megamenu-post-2-93x94.jpg rename to frontend/web/themes/football/images/Home_files/megamenu-post-2-93x94.jpg diff --git a/frontend/web/themes/sport/images/Home_files/megamenu-post-3-93x94.jpg b/frontend/web/themes/football/images/Home_files/megamenu-post-3-93x94.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/megamenu-post-3-93x94.jpg rename to frontend/web/themes/football/images/Home_files/megamenu-post-3-93x94.jpg diff --git a/frontend/web/themes/sport/images/Home_files/megamenu-post-4-93x94.jpg b/frontend/web/themes/football/images/Home_files/megamenu-post-4-93x94.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/megamenu-post-4-93x94.jpg rename to frontend/web/themes/football/images/Home_files/megamenu-post-4-93x94.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-2-1-368x287.jpg b/frontend/web/themes/football/images/Home_files/news-2-1-368x287.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-2-1-368x287.jpg rename to frontend/web/themes/football/images/Home_files/news-2-1-368x287.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-2-2-368x287.jpg b/frontend/web/themes/football/images/Home_files/news-2-2-368x287.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-2-2-368x287.jpg rename to frontend/web/themes/football/images/Home_files/news-2-2-368x287.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-2-3-368x287.jpg b/frontend/web/themes/football/images/Home_files/news-2-3-368x287.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-2-3-368x287.jpg rename to frontend/web/themes/football/images/Home_files/news-2-3-368x287.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-2-4-368x287.jpg b/frontend/web/themes/football/images/Home_files/news-2-4-368x287.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-2-4-368x287.jpg rename to frontend/web/themes/football/images/Home_files/news-2-4-368x287.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-3-1-370x325.jpg b/frontend/web/themes/football/images/Home_files/news-3-1-370x325.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-3-1-370x325.jpg rename to frontend/web/themes/football/images/Home_files/news-3-1-370x325.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-3-2-370x325.jpg b/frontend/web/themes/football/images/Home_files/news-3-2-370x325.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-3-2-370x325.jpg rename to frontend/web/themes/football/images/Home_files/news-3-2-370x325.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-5-2-369x343.jpg b/frontend/web/themes/football/images/Home_files/news-5-2-369x343.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-5-2-369x343.jpg rename to frontend/web/themes/football/images/Home_files/news-5-2-369x343.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-5-3-369x343.jpg b/frontend/web/themes/football/images/Home_files/news-5-3-369x343.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-5-3-369x343.jpg rename to frontend/web/themes/football/images/Home_files/news-5-3-369x343.jpg diff --git a/frontend/web/themes/sport/images/Home_files/news-5-4-369x343.jpg b/frontend/web/themes/football/images/Home_files/news-5-4-369x343.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/news-5-4-369x343.jpg rename to frontend/web/themes/football/images/Home_files/news-5-4-369x343.jpg diff --git a/frontend/web/themes/sport/images/Home_files/partners-1-inverse-75x42.png b/frontend/web/themes/football/images/Home_files/partners-1-inverse-75x42.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/partners-1-inverse-75x42.png rename to frontend/web/themes/football/images/Home_files/partners-1-inverse-75x42.png diff --git a/frontend/web/themes/sport/images/Home_files/partners-2-inverse-78x41.png b/frontend/web/themes/football/images/Home_files/partners-2-inverse-78x41.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/partners-2-inverse-78x41.png rename to frontend/web/themes/football/images/Home_files/partners-2-inverse-78x41.png diff --git a/frontend/web/themes/sport/images/Home_files/partners-3-inverse-65x44.png b/frontend/web/themes/football/images/Home_files/partners-3-inverse-65x44.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/partners-3-inverse-65x44.png rename to frontend/web/themes/football/images/Home_files/partners-3-inverse-65x44.png diff --git a/frontend/web/themes/sport/images/Home_files/player-1-368x286.png b/frontend/web/themes/football/images/Home_files/player-1-368x286.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/player-1-368x286.png rename to frontend/web/themes/football/images/Home_files/player-1-368x286.png diff --git a/frontend/web/themes/sport/images/Home_files/player-2-368x286.png b/frontend/web/themes/football/images/Home_files/player-2-368x286.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/player-2-368x286.png rename to frontend/web/themes/football/images/Home_files/player-2-368x286.png diff --git a/frontend/web/themes/sport/images/Home_files/player-3-368x286.png b/frontend/web/themes/football/images/Home_files/player-3-368x286.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/player-3-368x286.png rename to frontend/web/themes/football/images/Home_files/player-3-368x286.png diff --git a/frontend/web/themes/sport/images/Home_files/player-4-368x286.png b/frontend/web/themes/football/images/Home_files/player-4-368x286.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/player-4-368x286.png rename to frontend/web/themes/football/images/Home_files/player-4-368x286.png diff --git a/frontend/web/themes/sport/images/Home_files/post-gloria-1-769x429.jpg b/frontend/web/themes/football/images/Home_files/post-gloria-1-769x429.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/post-gloria-1-769x429.jpg rename to frontend/web/themes/football/images/Home_files/post-gloria-1-769x429.jpg diff --git a/frontend/web/themes/sport/images/Home_files/product-Nike-Air-Zoom-Pegasus-67x30.png b/frontend/web/themes/football/images/Home_files/product-Nike-Air-Zoom-Pegasus-67x30.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/product-Nike-Air-Zoom-Pegasus-67x30.png rename to frontend/web/themes/football/images/Home_files/product-Nike-Air-Zoom-Pegasus-67x30.png diff --git a/frontend/web/themes/sport/images/Home_files/product-Nike-Baseball-Hat-55x38.png b/frontend/web/themes/football/images/Home_files/product-Nike-Baseball-Hat-55x38.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/product-Nike-Baseball-Hat-55x38.png rename to frontend/web/themes/football/images/Home_files/product-Nike-Baseball-Hat-55x38.png diff --git a/frontend/web/themes/sport/images/Home_files/product-small-1.png b/frontend/web/themes/football/images/Home_files/product-small-1.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/product-small-1.png rename to frontend/web/themes/football/images/Home_files/product-small-1.png diff --git a/frontend/web/themes/sport/images/Home_files/product-small-2.png b/frontend/web/themes/football/images/Home_files/product-small-2.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/product-small-2.png rename to frontend/web/themes/football/images/Home_files/product-small-2.png diff --git a/frontend/web/themes/sport/images/Home_files/product-small-3.png b/frontend/web/themes/football/images/Home_files/product-small-3.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/product-small-3.png rename to frontend/web/themes/football/images/Home_files/product-small-3.png diff --git a/frontend/web/themes/sport/images/Home_files/regula-1.3.4.min.js b/frontend/web/themes/football/images/Home_files/regula-1.3.4.min.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/regula-1.3.4.min.js rename to frontend/web/themes/football/images/Home_files/regula-1.3.4.min.js diff --git a/frontend/web/themes/sport/images/Home_files/script.js b/frontend/web/themes/football/images/Home_files/script.js similarity index 100% rename from frontend/web/themes/sport/images/Home_files/script.js rename to frontend/web/themes/football/images/Home_files/script.js diff --git a/frontend/web/themes/sport/images/Home_files/sport-elements-323x171.jpg b/frontend/web/themes/football/images/Home_files/sport-elements-323x171.jpg similarity index 100% rename from frontend/web/themes/sport/images/Home_files/sport-elements-323x171.jpg rename to frontend/web/themes/football/images/Home_files/sport-elements-323x171.jpg diff --git a/frontend/web/themes/sport/images/Home_files/style.css b/frontend/web/themes/football/images/Home_files/style.css similarity index 100% rename from frontend/web/themes/sport/images/Home_files/style.css rename to frontend/web/themes/football/images/Home_files/style.css diff --git a/frontend/web/themes/sport/images/Home_files/team-atletico-100x100.png b/frontend/web/themes/football/images/Home_files/team-atletico-100x100.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-atletico-100x100.png rename to frontend/web/themes/football/images/Home_files/team-atletico-100x100.png diff --git a/frontend/web/themes/sport/images/Home_files/team-atletico-37x37.png b/frontend/web/themes/football/images/Home_files/team-atletico-37x37.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-atletico-37x37.png rename to frontend/web/themes/football/images/Home_files/team-atletico-37x37.png diff --git a/frontend/web/themes/sport/images/Home_files/team-atletico-50x50.png b/frontend/web/themes/football/images/Home_files/team-atletico-50x50.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-atletico-50x50.png rename to frontend/web/themes/football/images/Home_files/team-atletico-50x50.png diff --git a/frontend/web/themes/sport/images/Home_files/team-atletico-55x55.png b/frontend/web/themes/football/images/Home_files/team-atletico-55x55.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-atletico-55x55.png rename to frontend/web/themes/football/images/Home_files/team-atletico-55x55.png diff --git a/frontend/web/themes/sport/images/Home_files/team-barcelona-36x31.png b/frontend/web/themes/football/images/Home_files/team-barcelona-36x31.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-barcelona-36x31.png rename to frontend/web/themes/football/images/Home_files/team-barcelona-36x31.png diff --git a/frontend/web/themes/sport/images/Home_files/team-bavaria-fc-113x106.png b/frontend/web/themes/football/images/Home_files/team-bavaria-fc-113x106.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-bavaria-fc-113x106.png rename to frontend/web/themes/football/images/Home_files/team-bavaria-fc-113x106.png diff --git a/frontend/web/themes/sport/images/Home_files/team-bavaria-fc-39x37.png b/frontend/web/themes/football/images/Home_files/team-bavaria-fc-39x37.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-bavaria-fc-39x37.png rename to frontend/web/themes/football/images/Home_files/team-bavaria-fc-39x37.png diff --git a/frontend/web/themes/sport/images/Home_files/team-bavaria-fc-56x52.png b/frontend/web/themes/football/images/Home_files/team-bavaria-fc-56x52.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-bavaria-fc-56x52.png rename to frontend/web/themes/football/images/Home_files/team-bavaria-fc-56x52.png diff --git a/frontend/web/themes/sport/images/Home_files/team-bavaria-fc-59x54.png b/frontend/web/themes/football/images/Home_files/team-bavaria-fc-59x54.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-bavaria-fc-59x54.png rename to frontend/web/themes/football/images/Home_files/team-bavaria-fc-59x54.png diff --git a/frontend/web/themes/sport/images/Home_files/team-celta-vigo-37x34.png b/frontend/web/themes/football/images/Home_files/team-celta-vigo-37x34.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-celta-vigo-37x34.png rename to frontend/web/themes/football/images/Home_files/team-celta-vigo-37x34.png diff --git a/frontend/web/themes/sport/images/Home_files/team-real-madrid-29x43.png b/frontend/web/themes/football/images/Home_files/team-real-madrid-29x43.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-real-madrid-29x43.png rename to frontend/web/themes/football/images/Home_files/team-real-madrid-29x43.png diff --git a/frontend/web/themes/sport/images/Home_files/team-real-madrid-41x59.png b/frontend/web/themes/football/images/Home_files/team-real-madrid-41x59.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-real-madrid-41x59.png rename to frontend/web/themes/football/images/Home_files/team-real-madrid-41x59.png diff --git a/frontend/web/themes/sport/images/Home_files/team-sevilla-45x35.png b/frontend/web/themes/football/images/Home_files/team-sevilla-45x35.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-sevilla-45x35.png rename to frontend/web/themes/football/images/Home_files/team-sevilla-45x35.png diff --git a/frontend/web/themes/sport/images/Home_files/team-sevilla-57x46.png b/frontend/web/themes/football/images/Home_files/team-sevilla-57x46.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/team-sevilla-57x46.png rename to frontend/web/themes/football/images/Home_files/team-sevilla-57x46.png diff --git a/frontend/web/themes/sport/images/Home_files/thumbnail-minimal-1-67x147.png b/frontend/web/themes/football/images/Home_files/thumbnail-minimal-1-67x147.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/thumbnail-minimal-1-67x147.png rename to frontend/web/themes/football/images/Home_files/thumbnail-minimal-1-67x147.png diff --git a/frontend/web/themes/sport/images/Home_files/thumbnail-minimal-2-68x126.png b/frontend/web/themes/football/images/Home_files/thumbnail-minimal-2-68x126.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/thumbnail-minimal-2-68x126.png rename to frontend/web/themes/football/images/Home_files/thumbnail-minimal-2-68x126.png diff --git a/frontend/web/themes/sport/images/Home_files/thumbnail-minimal-3-73x135.png b/frontend/web/themes/football/images/Home_files/thumbnail-minimal-3-73x135.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/thumbnail-minimal-3-73x135.png rename to frontend/web/themes/football/images/Home_files/thumbnail-minimal-3-73x135.png diff --git a/frontend/web/themes/sport/images/Home_files/video-play.png b/frontend/web/themes/football/images/Home_files/video-play.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/video-play.png rename to frontend/web/themes/football/images/Home_files/video-play.png diff --git a/frontend/web/themes/sport/images/Home_files/vimeo-play.png b/frontend/web/themes/football/images/Home_files/vimeo-play.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/vimeo-play.png rename to frontend/web/themes/football/images/Home_files/vimeo-play.png diff --git a/frontend/web/themes/sport/images/Home_files/youtube-play.png b/frontend/web/themes/football/images/Home_files/youtube-play.png similarity index 100% rename from frontend/web/themes/sport/images/Home_files/youtube-play.png rename to frontend/web/themes/football/images/Home_files/youtube-play.png diff --git a/frontend/web/themes/sport/images/bx_loader.gif b/frontend/web/themes/football/images/bx_loader.gif similarity index 100% rename from frontend/web/themes/sport/images/bx_loader.gif rename to frontend/web/themes/football/images/bx_loader.gif diff --git a/frontend/web/themes/sport/images/controls.png b/frontend/web/themes/football/images/controls.png similarity index 100% rename from frontend/web/themes/sport/images/controls.png rename to frontend/web/themes/football/images/controls.png diff --git a/frontend/web/themes/sport/images/images/dot.svg b/frontend/web/themes/football/images/images/dot.svg similarity index 100% rename from frontend/web/themes/sport/images/images/dot.svg rename to frontend/web/themes/football/images/images/dot.svg diff --git a/frontend/web/themes/sport/images/news.jpg b/frontend/web/themes/football/images/news.jpg similarity index 100% rename from frontend/web/themes/sport/images/news.jpg rename to frontend/web/themes/football/images/news.jpg diff --git a/frontend/web/themes/sport/layouts/auth.php b/frontend/web/themes/football/layouts/auth.php similarity index 100% rename from frontend/web/themes/sport/layouts/auth.php rename to frontend/web/themes/football/layouts/auth.php diff --git a/frontend/web/themes/sport/layouts/cabinet.php b/frontend/web/themes/football/layouts/cabinet.php similarity index 100% rename from frontend/web/themes/sport/layouts/cabinet.php rename to frontend/web/themes/football/layouts/cabinet.php diff --git a/frontend/web/themes/sport/layouts/contacts.php b/frontend/web/themes/football/layouts/contacts.php similarity index 100% rename from frontend/web/themes/sport/layouts/contacts.php rename to frontend/web/themes/football/layouts/contacts.php diff --git a/frontend/web/themes/sport/layouts/home.php b/frontend/web/themes/football/layouts/home.php similarity index 100% rename from frontend/web/themes/sport/layouts/home.php rename to frontend/web/themes/football/layouts/home.php diff --git a/frontend/web/themes/sport/layouts/main-filled.php b/frontend/web/themes/football/layouts/main-filled.php similarity index 100% rename from frontend/web/themes/sport/layouts/main-filled.php rename to frontend/web/themes/football/layouts/main-filled.php diff --git a/frontend/web/themes/sport/layouts/main-orig.php b/frontend/web/themes/football/layouts/main-orig.php similarity index 100% rename from frontend/web/themes/sport/layouts/main-orig.php rename to frontend/web/themes/football/layouts/main-orig.php diff --git a/frontend/web/themes/sport/layouts/main.php b/frontend/web/themes/football/layouts/main.php similarity index 100% rename from frontend/web/themes/sport/layouts/main.php rename to frontend/web/themes/football/layouts/main.php diff --git a/frontend/web/themes/sport/layouts/news.php b/frontend/web/themes/football/layouts/news.php similarity index 100% rename from frontend/web/themes/sport/layouts/news.php rename to frontend/web/themes/football/layouts/news.php diff --git a/frontend/web/themes/sport/layouts/one_column.php b/frontend/web/themes/football/layouts/one_column.php similarity index 100% rename from frontend/web/themes/sport/layouts/one_column.php rename to frontend/web/themes/football/layouts/one_column.php diff --git a/frontend/web/themes/sport/layouts/post.php b/frontend/web/themes/football/layouts/post.php similarity index 100% rename from frontend/web/themes/sport/layouts/post.php rename to frontend/web/themes/football/layouts/post.php diff --git a/frontend/web/themes/sport/layouts/profile.php b/frontend/web/themes/football/layouts/profile.php similarity index 100% rename from frontend/web/themes/sport/layouts/profile.php rename to frontend/web/themes/football/layouts/profile.php diff --git a/frontend/web/themes/football/modules/shop/views/layouts/catalog.php b/frontend/web/themes/football/modules/shop/views/layouts/catalog.php new file mode 100644 index 0000000..83678cc --- /dev/null +++ b/frontend/web/themes/football/modules/shop/views/layouts/catalog.php @@ -0,0 +1,49 @@ +title = 'oldenburger Shop - Catalog'; //Yii::$app->settings->data['system']['meta_title']; +?> + +beginContent('@frontend/web/themes/sport/layouts/main.php') ?> + +
+
+ +
+
+ + + + + + + +
+
+ +endContent() ?> + + diff --git a/frontend/web/themes/sport/post/news/_list.php b/frontend/web/themes/football/post/news/_list.php similarity index 100% rename from frontend/web/themes/sport/post/news/_list.php rename to frontend/web/themes/football/post/news/_list.php diff --git a/frontend/web/themes/sport/post/news/_post.php b/frontend/web/themes/football/post/news/_post.php similarity index 100% rename from frontend/web/themes/sport/post/news/_post.php rename to frontend/web/themes/football/post/news/_post.php diff --git a/frontend/web/themes/sport/post/news/category.php b/frontend/web/themes/football/post/news/category.php similarity index 100% rename from frontend/web/themes/sport/post/news/category.php rename to frontend/web/themes/football/post/news/category.php diff --git a/frontend/web/themes/sport/post/news/index.php b/frontend/web/themes/football/post/news/index.php similarity index 100% rename from frontend/web/themes/sport/post/news/index.php rename to frontend/web/themes/football/post/news/index.php diff --git a/frontend/web/themes/sport/post/news/post.php b/frontend/web/themes/football/post/news/post.php similarity index 100% rename from frontend/web/themes/sport/post/news/post.php rename to frontend/web/themes/football/post/news/post.php diff --git a/frontend/web/themes/sport/widgets/general/views/bottom_subscribe.php b/frontend/web/themes/football/widgets/general/views/bottom_subscribe.php similarity index 100% rename from frontend/web/themes/sport/widgets/general/views/bottom_subscribe.php rename to frontend/web/themes/football/widgets/general/views/bottom_subscribe.php diff --git a/frontend/web/themes/sport/widgets/general/views/follow_us.php b/frontend/web/themes/football/widgets/general/views/follow_us.php similarity index 100% rename from frontend/web/themes/sport/widgets/general/views/follow_us.php rename to frontend/web/themes/football/widgets/general/views/follow_us.php diff --git a/frontend/web/themes/sport/widgets/general/views/subscribe.php b/frontend/web/themes/football/widgets/general/views/subscribe.php similarity index 100% rename from frontend/web/themes/sport/widgets/general/views/subscribe.php rename to frontend/web/themes/football/widgets/general/views/subscribe.php diff --git a/frontend/web/themes/sport/widgets/post/views/categories.php b/frontend/web/themes/football/widgets/post/views/categories.php similarity index 100% rename from frontend/web/themes/sport/widgets/post/views/categories.php rename to frontend/web/themes/football/widgets/post/views/categories.php diff --git a/frontend/web/themes/sport/widgets/post/views/news.php b/frontend/web/themes/football/widgets/post/views/news.php similarity index 100% rename from frontend/web/themes/sport/widgets/post/views/news.php rename to frontend/web/themes/football/widgets/post/views/news.php diff --git a/frontend/web/themes/sport/widgets/post/views/news_item.php b/frontend/web/themes/football/widgets/post/views/news_item.php similarity index 100% rename from frontend/web/themes/sport/widgets/post/views/news_item.php rename to frontend/web/themes/football/widgets/post/views/news_item.php diff --git a/frontend/web/themes/sport/widgets/post/views/tags.php b/frontend/web/themes/football/widgets/post/views/tags.php similarity index 100% rename from frontend/web/themes/sport/widgets/post/views/tags.php rename to frontend/web/themes/football/widgets/post/views/tags.php diff --git a/frontend/web/themes/sport/assets/CookieAsset.php b/frontend/web/themes/sport/assets/CookieAsset.php new file mode 100644 index 0000000..31a23f5 --- /dev/null +++ b/frontend/web/themes/sport/assets/CookieAsset.php @@ -0,0 +1,17 @@ +publishOptions['forceCopy'] = true; + } + parent::__construct($config); + } + + public function registerAssetFiles($view) + { + parent::registerAssetFiles($view); + + $manager = $view->getAssetManager(); + $view->registerCssFile($manager->getAssetUrl($this, 'ie9.css'), ['condition' => 'lte IE9']); + } +} diff --git a/frontend/web/themes/sport/assets/TemplateJsAsset.php b/frontend/web/themes/sport/assets/TemplateJsAsset.php new file mode 100644 index 0000000..f459897 --- /dev/null +++ b/frontend/web/themes/sport/assets/TemplateJsAsset.php @@ -0,0 +1,27 @@ +publishOptions['forceCopy'] = true; + } + parent::__construct($config); + } +} diff --git a/frontend/web/themes/sport/css/main.css b/frontend/web/themes/sport/css/main.css new file mode 100644 index 0000000..034cfb7 --- /dev/null +++ b/frontend/web/themes/sport/css/main.css @@ -0,0 +1,2653 @@ +@import url("https://fonts.googleapis.com/css?family=Play:400,700&subset=cyrillic,cyrillic-ext,latin-ext"); +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, +blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, +font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, +b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, +caption, tbody, tfoot, thead, tr, th, td, input, textarea, button, header { + margin: 0; + padding: 0; + border: 0; + outline: none !important; + vertical-align: top; + background: transparent; + font-weight: normal; + line-height: 1.5em; } + +ol, ul { + list-style: none; } + +a, span { + vertical-align: baseline; } + +b, strong { + font-weight: bold; } + +i, dfn { + font-style: italic; } + +img { + max-width: 100%; } + +body { + height: 100%; + font-family: "Play", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #888888; } + +h1, h2, h3, h4, h5, h6 { + margin: 15px 0; + font: normal 15px "Play", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #292d39; } + +p { + margin: 15px 0; + padding: 0; } + +.page_heading { + margin: 0; + padding: 14px 20px; + background: #ffffff; + font-size: 15px; } + +.page_heading a { + font-weight: inherit; + line-height: inherit; } + +.template-index .page_heading, +.template-list-collections .page_heading { + margin: 30px 0 0 0; } + +a { + color: #0AA1F1; + -webkit-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out, box-shadow .3s ease-in-out; + transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out, box-shadow .3s ease-in-out; } + a:hover { + color: #023F60; } + +#wrapper { + position: relative; + z-index: 1; + background: #f4f4f4; } + +#wrapper2 { + overflow: hidden; } + +header { + display: block; + background-color: #ffffff; } + +.container { + padding: 0; } + +.container-small, .container-large { + max-width: 100%; } + +/* TOP NAVIGATION */ +.main-nav { + border-bottom: 2px solid #0AA1F1; + background: #fff; } + +.main-nav:after { + clear: both; + content: "\00a0"; + display: block; + height: 0; + font: 0px/0 serif; + overflow: hidden; } + +@media (min-width: 768px) { + #main-menu > li:first-child > a.has-submenu { + padding-right: 17px; } } +#main-menu > li:first-child > a:before { + color: #ffffff !important; + content: '\f0c9'; + font-family: FontAwesome; + margin-right: 5px; } + +#main-menu > li:first-child > a > span { + display: none; } + +#main-menu > li:first-child > a { + width: 250px !important; + background-color: #0AA1F1 !important; + color: #ffffff; } + +#main-menu > li:first-child a:hover { + background-color: #023F60 !important; } + +#main-menu { + clear: both; + border-bottom: 0; } + +@media (min-width: 768px) { + #main-menu { + float: left; + clear: none; } } +/* Mobile menu toggle button */ +.main-menu-btn { + float: right; + margin: 5px 10px; + position: relative; + display: inline-block; + width: 29px; + height: 29px; + text-indent: 29px; + white-space: nowrap; + overflow: hidden; + cursor: pointer; + -webkit-tap-highlight-color: transparent; } + +/* hamburger icon */ +.main-menu-btn-icon, +.main-menu-btn-icon:before, +.main-menu-btn-icon:after { + position: absolute; + top: 50%; + left: 2px; + height: 2px; + width: 24px; + background: #333; + -webkit-transition: all 0.25s; + transition: all 0.25s; } + +.main-menu-btn-icon:before { + content: ''; + top: -7px; + left: 0; } + +.main-menu-btn-icon:after { + content: ''; + top: 7px; + left: 0; } + +/* x icon */ +#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon { + height: 0; + background: transparent; } + +#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before { + top: 0; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } + +#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after { + top: 0; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); } + +/* hide menu state checkbox (keep it visible to screen readers) */ +#main-menu-state { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + border: 0; + padding: 0; + overflow: hidden; + clip: rect(1px, 1px, 1px, 1px); } + +/* hide the menu in mobile view */ +#main-menu-state:not(:checked) ~ #main-menu { + display: none; } + +#main-menu-state:checked ~ #main-menu { + display: block; } + +@media (min-width: 768px) { + /* hide the button in desktop view */ + .main-menu-btn { + position: absolute; + top: -99999px; } + + /* always show the menu in desktop view */ + #main-menu-state:not(:checked) ~ #main-menu { + display: block; } } +#main-menu { + position: relative; + z-index: 9999; + width: 100%; } + +#main-menu > .has-mega-menu { + position: static !important; } + +#main-menu .mega-menu { + margin-left: 0 !important; + right: 0 !important; + width: auto !important; + max-width: none !important; } + +#main-menu > .has-mega-menu .scroll-up, +#main-menu > .has-mega-menu .scroll-down { + margin-left: 0 !important; } + +/* clear any floats inside the mega menus */ +#main-menu .mega-menu > li { + overflow: auto; } + +/* reset mega menu list/link styles (which are inherited from the SmartMenus core/theme styles) */ +#main-menu .mega-menu { + color: #353451; } + +#main-menu .mega-menu ul { + position: static; + display: block; + margin: 0.83em 0; + border: 0; + padding: 0 0 0 20px; + width: auto; + background: transparent; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; } + +#main-menu .mega-menu ul li { + display: list-item; + list-style-type: disc; + border: 0; } + +#main-menu .mega-menu a { + display: inline; + border: 0; + padding: 0; + background: transparent; + color: inherit; + text-decoration: underline; } + +/* simple columns inside the mega menus */ +#main-menu .mega-menu .column-1-3 { + padding: 0 20px; } + +.mega-menu { + padding: 20px; } + +.mega-menu .blog_date { + margin: 0; + font-size: 13px; + color: #26a0d7; } + +.mega-menu .blog_img { + margin: 15px 0 0 0; } + +.mega-menu .blog_title a { + font-size: 18px !important; + color: #ffffff; } + +.mega-menu .blog_title a:hover { + font-size: 18px !important; + color: #26a0d7; } + +@media (min-width: 768px) { + #main-menu .mega-menu .column-1-3 { + float: left; + width: 33.33%; } } +/* MEDIA */ +/*========== Mobile First Method ==========*/ +/* Custom, iPhone Retina */ +/* Extra Small Devices, Phones */ +/* Small Devices, Tablets */ +/* Medium Devices, Desktops */ +/* Large Devices, Wide Screens */ +/* Extra Large Devices, Wide Screens */ +/*========== Non-Mobile First Method ==========*/ +/* Large Devices, Wide Screens */ +/* Large Devices, Wide Screens */ +/* Medium Devices, Desktops */ +/* Small Devices, Tablets */ +/* Extra Small Devices, Phones */ +/* Custom, iPhone Retina */ +/* PROMOBANNER */ +/* PROMOBANNER */ +#promobanner { + height: 160px; + background: url(../img/promobanner-bg.png) 50% 0% no-repeat; + background-color: #26a0d7; + background-size: 1500px !important; + background-position: right top !important; + position: relative; } + +#promobanner_close { + display: block; + vertical-align: top; + color: #ffffff; + position: absolute; + right: 30px; + top: 25px; + z-index: 1000; } + +#promobanner_close:before { + content: '\f00d'; + font: 20px/1em 'FontAwesome'; } + +#promobanner_close:hover { + color: #292d39; } + +.promobanner_container { + width: 1600px; + margin: 0 auto; } + +.promobanner_error { + height: 120px; + font-size: 20px; + line-height: 120px; + color: #d10300; + text-align: center; + text-transform: uppercase; + text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.7); } + +.promobanner_content { + width: 1100px; + float: left; } + +.promobanner_content img { + float: left; + height: 160px; } + +.promobanner_text { + min-width: 700px; + float: left; + text-align: center; + text-transform: uppercase; } + +.promobanner_text h2 { + margin: 18px 0 0 0; + font-weight: bold; + font-size: 26px; + color: #ffffff; } + +.promobanner_text h3 { + margin: 10px 0 0 0; + font-weight: bold; + font-size: 18px; + color: #ffffff; } + +.promobanner_text .btn { + margin: 17px 0 0 0; + padding: 7px 24px; + background: #ffffff !important; + border-color: #ffffff !important; + font-weight: bold; + font-size: 16px; + color: #26a0d7 !important; } + +.promobanner_text .btn:hover { + background: #292d39 !important; + border-color: #292d39 !important; + color: #ffffff !important; } + +.promobanner_counter { + width: 500px; + float: right; + margin: 30px 0 0 0; + text-align: right; } + +.promobanner_countdown_labels { + color: white; + display: block; + text-align: center; + margin-top: 10px; + text-transform: uppercase; } + +/* < 1900px */ +@media (min-width: 1900px) { + #promobanner { + -webkit-background-size: 100% auto; + background-size: 100% auto; } } +/* < 1700px */ +@media (max-width: 1700px) { + .promobanner_container { + width: 1170px; } + + .promobanner_content img { + display: none; } + + .promobanner_content { + width: 50%; } + + .promobanner_counter { + width: 50%; } } +/* < 1200px */ +@media (max-width: 1199px) { + #promobanner { + display: none !important; } } +/* NIVOSLIDER */ +.nivoSlider { + width: 100%; + height: auto; + overflow: hidden; + position: relative; } + .nivoSlider img { + max-width: none; + position: absolute; + top: 0; + left: 0; } + .nivoSlider a.nivo-imageLink { + width: 100%; + height: 100%; + margin: 0; + padding: 0; + border: 0; + z-index: 6; + position: absolute; + left: 0; + top: 0; + display: none; + filter: alpha(opacity=0); + opacity: 0; } + +.nivo-main-image { + width: 100% !important; + display: block !important; + position: relative !important; } + +.nivo-slice { + height: 100%; + display: block; + position: absolute; + top: 0; + z-index: 5; } + +.nivo-box { + display: block; + overflow: hidden; + position: absolute; + z-index: 5; } + .nivo-box img { + display: block; } + +.nivoSlider > a, +.nivoSlider > img, +.caption_hidden { + display: none; } + +.slider_wrap { + height: 100%; + margin: 30px 0 0 0; + position: relative; + z-index: 1; } + +.nivo-caption { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + z-index: 8; + display: none; + background: none; } + .nivo-caption a { + width: 100%; + height: 100%; + display: block; + text-decoration: none; } + .nivo-caption .wrap_1 { + width: 100%; + height: 100%; + display: table; } + .nivo-caption .wrap_2 { + width: 100%; + height: 100%; + display: table-cell; + vertical-align: middle; + padding: 30px 30px 30px 485px; } + .nivo-caption h3 { + margin: 0; + font-size: 19px; + color: #26a0d7; } + .nivo-caption p { + margin: 8px 0 0 0; + color: #888888; } + .nivo-caption .btn { + margin: 15px 0 0 0; + padding: 9px 25px; + font-size: 14px; } + +.slider_controls { + width: 100%; + font-size: 0; + text-align: center; + position: absolute; + left: 0; + bottom: 20px; + z-index: 10; } + .slider_controls a { + display: inline-block; + vertical-align: top; + color: #ffffff; + cursor: pointer; } + +.slider_controls a ~ a { + margin: 0 0 0 10px; } + +.slider_controls a span { + display: none; } + +.slider_controls a:before { + content: '\f111'; + display: block; + font: 20px 'FontAwesome'; } + +.slider_controls a:hover { + color: #292d39; } + +.slider_controls a.active { + color: #292d39; + cursor: default; } + +.nivo-directionNav { + position: absolute; + right: 20px; + bottom: 20px; + z-index: 9; } + .nivo-directionNav .container { + width: auto; } + .nivo-directionNav a { + width: 22px; + height: 22px; + display: inline-block; + vertical-align: top; + background: #0AA1F1; + font-size: 0; + cursor: pointer; + text-decoration: none; + -webkit-border-radius: 50%; + border-radius: 50%; } + .nivo-directionNav a:before { + display: block; + font: 15px/22px 'FontAwesome'; + color: #ffffff; + text-align: center; } + .nivo-directionNav a:hover { + background: #023F60; } + .nivo-directionNav .nivo-prevNav { + position: relative; + margin: 0 4px 0 0; + padding: 0 1px 0 0; } + .nivo-directionNav .nivo-prevNav:before { + content: '\f104'; } + .nivo-directionNav .nivo-nextNav { + position: relative; + padding: 0 0 0 1px; } + .nivo-directionNav .nivo-nextNav:before { + content: '\f105'; } + +/* < 1200px */ +@media only screen and (max-width: 1200px) { + .nivo-caption .wrap_2 { + padding: 30px 30px 30px 380px !important; } + .nivo-caption .nivo-caption .btn { + padding: 7px 15px; } } +/* < 992px */ +@media only screen and (max-width: 992px) { + .nivo-caption .wrap_2 { + padding: 30px 30px 30px 300px !important; } + + .homepage_carousel .product { + width: 292px !important; } } +/* < 768px */ +@media only screen and (max-width: 768px) { + .nivo-caption .wrap_2 { + padding: 30px 30px 30px 52% !important; } } +/* < 480px */ +@media only screen and (max-width: 480px) { + .nivo-caption { + display: none !important; } } +/* BXSLIDER */ +.bx-wrapper { + position: relative; + margin: 0 auto; + padding: 0; + *zoom: 1; } + +.bx-wrapper img { + max-width: 100%; + display: block; + margin: 0 auto; } + +/** THEME +===================================*/ +.bx-wrapper .bx-pager, +.bx-wrapper .bx-controls-auto { + position: absolute; + bottom: -30px; + width: 100%; } + +/* PAGER */ +.bx-wrapper .bx-pager { + text-align: center; + font-size: .85em; + font-family: "Play", "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: bold; + color: #666; + padding-top: 20px; } + +.bx-wrapper .bx-pager .bx-pager-item, +.bx-wrapper .bx-controls-auto .bx-controls-auto-item { + display: inline-block; + *zoom: 1; + *display: inline; } + +.bx-wrapper .bx-pager.bx-default-pager a { + background: #666; + text-indent: -9999px; + display: block; + width: 10px; + height: 10px; + margin: 0 5px; + outline: 0; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; } + +.bx-wrapper .bx-pager.bx-default-pager a:hover, +.bx-wrapper .bx-pager.bx-default-pager a.active { + background: #000; } + +/* DIRECTION CONTROLS (NEXT / PREV) */ +.bx-wrapper .bx-controls-direction a.disabled { + display: none; } + +/* PAGER WITH AUTO-CONTROLS HYBRID LAYOUT */ +.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-pager { + text-align: left; + width: 80%; } + +.bx-wrapper .bx-controls.bx-has-controls-auto.bx-has-pager .bx-controls-auto { + right: 0; + width: 35px; } + +/* IMAGE CAPTIONS */ +.bx-wrapper .bx-caption { + position: absolute; + bottom: 0; + left: 0; + background: #666 \9; + background: rgba(80, 80, 80, 0.75); + width: 100%; } + +.bx-wrapper .bx-caption span { + color: #fff; + font-family: "Play", "Helvetica Neue", Helvetica, Arial, sans-serif; + display: block; + font-size: .85em; + padding: 10px; } + +/* FEATURED BXSLIDER */ +/* SIDEBAR */ +/* SIDEBAR */ +.sidebar_widget { + margin: 30px 0 0 0; + background-color: #ffffff; } + +.sidebar_widget .widget_header { + margin: 0; + padding: 14px 20px; + background: #ffffff; + font-size: 15px; } + +.sidebar_widget .widget_content { + padding: 5px; } + +.list_links { + margin: 30px 0 0 0; } + +.list_links li a { + display: block; + padding: 12px 20px; + background: #ffffff; + font-weight: 300; + font-size: 14px; + line-height: 1.2em; + color: #292d39; } + +.list_links li ~ li a { + border-top: 1px solid rgba(0, 0, 0, 0.1); } + +.list_links li a:after { + content: '\f105'; + vertical-align: middle; + float: right; + margin: 0 0 0 7px; + font: 14px/1.2em 'FontAwesome'; + opacity: .3; } + +.list_links li.active a { + font-weight: bold; + color: #26a0d7; } + +.list_links li a:hover { + color: #26a0d7; + text-decoration: none; } + +.sidebar_widget__collections { + margin: -60px 0 0 0; } + +.sidebar_widget__collections .widget_header { + height: 60px; + padding: 0 20px; + background: #26a0d7; + font-size: 19px; + line-height: 60px; + color: #ffffff; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; } + +.sidebar_widget__collections .list_links { + margin: 0; } + +.sidebar_widget__collections .widget_header:before { + content: '\f0c9'; + margin: 0 10px 0 0; + font: 21px 'FontAwesome'; } + +/* SIDEBAR PRODUCT LISTING */ +.list_products .product { + overflow: hidden; + margin: 30px 0 0 0; + padding: 20px; + background: #ffffff; } + +.list_products .product_img { + width: 80px; + float: left; } + +.list_products .product_info { + margin: 0 0 0 95px; } + +.list_products .product_price { + font-size: 19px; + color: #26a0d7; } + +.list_products .product_price .compare-at-price { + font-weight: 300; + font-size: 14px; + color: #888888; } + +.list_products .product_name { + padding: 3px 0 0 0; } + +.list_products .product_links { + padding: 10px 0 0 0; } + +.list_products .product_links .btn { + width: 38px; + height: 38px; + margin: 0 6px 0 0; + padding: 0; + -webkit-border-radius: 50%; + border-radius: 50%; } + +.list_products .product_links .btn i { + display: block; + font-size: 18px; + line-height: 35px; } + +/* 9.3 SIDEBAR BLOG WIDGETS */ +.list_articles li { + margin: 30px 0 0 0; } + +.list_articles .item_title { + margin: 0; + font-size: 14px; } + +.list_articles .item_content { + margin: 10px 0 0 0; } + +.list_articles .article_comments__link { + margin: 10px 0 0 0; } + +.list_comments li { + margin: 30px 0 0 0; } + +.list_comments a { + display: block; + overflow: hidden; + padding: 15px 15px 15px 0; + background: #f2f2f2; } + +.list_comments .item_quot { + width: 50px; + vertical-align: top; + float: left; + font-size: 60px; + line-height: 1em; + color: #26a0d7; + text-align: center; } + +.list_comments .item_content { + display: block; + margin: 0 0 0 50px; + color: #888888; + -webkit-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -moz-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -ms-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -o-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; } + +.list_comments a:hover .item_content { + color: #26a0d7; } + +.list_comments .item_author { + display: block; + overflow: hidden; + padding: 7px 0 0 0; + color: #888888; } + +.list_comments .item_author:before { + content: '\f007'; + margin: 0 5px 0 0; + font: 13px 'FontAwesome'; + color: #26a0d7; } + +.list_comments .item_author span { + float: right; + margin: 0 0 0 15px; } + +.list_comments .item_author span:before { + content: '\f017'; + margin: 0 5px 0 0; + font: 13px 'FontAwesome'; + color: #26a0d7; } + +.filter-checkboxlist { + margin: 0; + padding: 0; + list-style-type: none; + columns: 2; + -webkit-columns: 2; } + .filter-checkboxlist label { + margin: 0; + padding: 0; + line-height: normal; } + .filter-checkboxlist label input { + margin: 0; + margin-right: 3px; } + .filter-checkboxlist label .filter_doc_count { + font-size: 8px; + margin-left: 2px; } + +.menu-title button { + display: block; + float: right; } + .menu-title button:before { + font-family: fontAwesome; + content: "\f002"; } + +/* < 1200px */ +@media (max-width: 1199px) { + /* SIDEBAR PRODUCT LISTING */ + .list_products .product_img { + width: 100%; + float: none; + text-align: center; } + + .list_products .product_info { + margin: 10px 0 0 0; } + + /* SIDEBAR BLOG WIDGETS */ + /*.list_comments .item_author span {display: block;float: none;margin: 5px 0 0 0;}*/ + .list_comments .item_author { + margin: 0 0 0 50px; } + + .list_comments .item_author span { + display: block; + float: none; + margin: 0; + padding: 7px 0 0 0; } } +/* < 767px */ +@media (max-width: 767px) { + /* LINKS LIST */ + .sidebar_widget__collections { + margin: 30px 0 0 0; } + + /* SIDEBAR PRODUCT LISTING */ + .list_products .product_img { + width: 100px; + float: left; } + + .list_products .product_info { + margin: 0 0 0 115px; } } +/* PRODUCT */ +.link-red { + color: red; } + .link-red:hover { + color: #8F0808; } + +.product_manage { + margin-top: 10px; + text-align: center; } + +.product_listing_main .product_wrapper { + margin: 30px 0 0 0; + padding: 20px; + background: #ffffff; + border: 1px solid #e7e7e7; } + +.product_listing_main .product_img a { + display: block; + position: relative; } + +.product_listing_main .product_img img { + background-color: #ffffff; + position: relative; + z-index: 1; } + +.product_listing_main .product_img .img__2 { + position: absolute; + left: 0; + top: 0; + z-index: 10; + opacity: 0; } + +.product_listing_main .product_img span.product_badge { + height: 20px; + display: inline-block; + vertical-align: top; + padding: 0 5px; + background: #292d39; + font-size: 12px; + line-height: 19px; + color: #ffffff; + text-transform: capitalize; + position: absolute; + top: -34px; + z-index: 10; } + +.product_listing_main .product_img span.product_badge:after { + content: ''; + width: 8px; + height: 8px; + display: block; + margin: 0 0 0 -4px; + border: 4px solid transparent; + border-top-color: #292d39; + position: absolute; + left: 50%; + bottom: -8px; } + +.product_listing_main .product_img span.new { + left: 0; } + +.product_listing_main .product_img span.sale { + background: #26a0d7; + right: 0; } + +.product_listing_main .product_img span.sale:after { + border-top-color: #26a0d7; } + +.product_listing_main .product_price { + padding: 15px 0 0 0; + font-size: 19px; + color: #26a0d7; } + +.product_listing_main .product_price .money { + margin: 0 3px 0 0; } + +.product_listing_main .product_price .money_sale { + font-size: 15px; + color: #888888; } + +.product_listing_main .product_desc { + padding: 3px 0 0 0; } + +.product_listing_main .product_desc_long { + display: none; } + +.product_listing_main .product_links { + padding: 10px 0 0 0; + font-size: 0; } + +.product_listing_main .product_links form { + display: inline-block; } + +.product_listing_main .product_links .btn { + width: 38px; + height: 38px; + margin: 0 6px 0 0; + padding: 0; + -webkit-border-radius: 50%; + border-radius: 50%; } + +.product_listing_main .product_links .btn i { + display: block; + font-size: 18px; + line-height: 35px; } + +/* HOMEPAGE PRODUCT LISTING (CAROUSEL) */ +.featured_products .bx-wrapper { + max-width: 100% !important; } + +.featured_products .bx-controls { + position: absolute; + right: 15px; + top: -32.5px; + z-index: 99; } + +.featured_products .bx-controls a { + text-decoration: none; + width: 20px; + height: 20px; + display: inline-block; + font-size: 0; + color: #292d39; + text-align: center; } + +.featured_products .bx-controls a:hover { + color: #26a0d7; } + +.featured_products .bx-controls a:before { + display: block; + font: 17px/18px 'FontAwesome'; } + +.featured_products .bx-prev:before { + content: '\f104'; + padding: 0 1px 0 0; } + +.featured_products .bx-next:before { + content: '\f105'; + padding: 0 0 0 1px; } + +.product_homepage { + width: 300px !important; + margin: 0; } + +/* COLLECTION PRODUCT LISTING (GRID/LIST) */ +.product_collection.item3_1 { + clear: left; } + +.view_list .product { + width: 100%; + float: none; + overflow: hidden; } + +.view_list .product_img { + width: 200px; + float: left; } + +.view_list .product_info { + margin: 0 0 0 215px; } + +.view_list .product_price { + padding: 0; } + +.view_list .product_name { + padding: 5px 0 0 0; } + +.view_list .product_desc { + display: none; } + +.view_list .product_desc_long { + display: block; + padding: 5px 0 0 0; } + +.money_sale, .compare-at-price { + color: #888888; + text-decoration: line-through; } + +/* PRODUCTS SORTING */ +.product_listing_controls { + overflow: hidden; + margin: 30px 0 0 0; + padding: 0 10px 10px 10px; + background: #ffffff; + border: 1px solid #f2f2f2; } + .product_listing_controls select { + padding: 2px !important; } + +.product_listing_toggle { + float: left; + font-size: 0; } + +.product_listing_toggle li { + width: 30px; + height: 30px; + display: inline-block; + margin: 10px 10px 0 0; + border: 1px solid transparent; + color: #888888; + text-align: center; + cursor: pointer; + -webkit-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -moz-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -ms-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -o-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; } + +.product_listing_toggle li.active { + background: #26a0d7; + border-color: #26a0d7; + color: #ffffff; + cursor: default; } + +.product_listing_toggle li i { + font-size: 18px; + line-height: 29px; } + +.sort_by { + float: right; + margin: 10px 0 0 10px; } + +.sort_by label { + margin: 0 4px 0 0; + line-height: 30px; } + +.sort_by select { + width: auto !important; + height: 30px; + display: inline-block; + padding: 5px 4px; + cursor: pointer; + -webkit-border-radius: 0; + border-radius: 0; } + +.show_products { + float: right; + margin: 10px 0 0 10px; } + +.show_products label { + margin: 0 4px 0 0; + line-height: 30px; } + +.show_products select { + width: auto !important; + height: 30px; + display: inline-block; + padding: 5px 4px; + cursor: pointer; + -webkit-border-radius: 0; + border-radius: 0; } + +#product_listing_preloader { + position: relative; } + +#product_listing_preloader p { + width: 100%; + height: 32px; + background: url(//cdn.shopify.com/s/files/1/0980/5368/t/2/assets/bx_loader.gif?6616382186379510295) 50% 0 no-repeat; + position: absolute; + left: 0; + top: 0; } + +.quantity_box { + display: inline-block; + margin: 10px 10px 0 0; } + +.quantity_box input { + width: 54px; + height: 24px; + display: block; + padding: 0; + background: #ffffff; + border: 2px solid #e7e7e7 !important; + font-size: 15px; + text-align: center; + -webkit-box-shadow: none !important; + box-shadow: none !important; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; } + +.quantity_box .quantity_modifier { + width: 26px; + height: 24px; + display: block; + float: left; + background: #ffffff; + border: 2px solid #e7e7e7; + text-align: center; + cursor: pointer; } + +.quantity_box .quantity_modifier:active { + color: #26a0d7; } + +.quantity_box .quantity_modifier i { + font-size: 14px; + line-height: 22px; } + +.quantity_box .quantity_down { + margin: 2px 0 0 0; + -webkit-border-radius: 0 0 0 5px; + border-radius: 0 0 0 5px; } + +.quantity_box .quantity_up { + margin: 2px 0 0 2px; + -webkit-border-radius: 0 0 5px 0; + border-radius: 0 0 5px 0; } + +#purchase #add-to-cart { + height: 50px; + margin: 10px 10px 0 0; + padding: 0 20px; + font-size: 18px; } + +/* < 1200px */ +@media (max-width: 1199px) { + product_listing_main .product_wrapper { + padding: 15px; } + + .product_listing_main .product_img span.product_badge { + top: -29px; } + + /* HOMEPAGE PRODUCT LISTING (CAROUSEL) */ + .product_homepage { + width: 250px !important; } } +/* < 991px */ +@media (max-width: 991px) { + /* HOMEPAGE PRODUCT LISTING (CAROUSEL) */ + .homepage_carousel .product { + width: 292px !important; } } +/* < 767px */ +@media (max-width: 767px) { + .product_listing_main .product_img { + width: 120px; + float: left; } + + .product_listing_main .product_info { + margin: 0 0 0 135px; } + + .product_listing_main .product_price { + padding: 0; } + + .product_listing_main .quick_view_btn { + display: none !important; } + + /* HOMEPAGE PRODUCT LISTING (CAROUSEL) */ + .featured_products .bx-wrapper { + max-width: 767px !important; } + + .featured_products .bx-viewport { + height: auto !important; } + + .featured_products .bx-controls { + display: none !important; } + + .homepage_carousel { + width: 100% !important; + max-width: 767px !important; + margin: 0; } + + .homepage_carousel .product { + width: 100% !important; + float: none; + padding: 0; } + + .homepage_carousel .product.bx-clone { + display: none; } + + /* COLLECTION PRODUCT LISTING (GRID/LIST) */ + .product_listing_toggle { + display: none !important; } + + .show_products { + float: left; + margin: 10px 10px 0 0; } } +/* < 480px */ +@media (max-width: 480px) { + .product_listing_main .product_desc { + display: none !important; } + + .product_listing_controls { + text-align: center; } + + .products_count { + float: none; + margin: 10px 0 0 0; } + + #pagination { + float: none; + margin: 10px 0 0 0; } } +/* FOOTER */ +footer { + margin: 30px 0 0 0; + background: #292d39; } + +footer h3 { + margin: 0; + font-weight: 300; + font-size: 13px; + color: #ffffff; } + +.footer_row__1 h3 { + padding: 40px 0 0 0; } + +.footer_block__1 p { + margin: 15px 0 0 0; + font-size: 12px; + line-height: 1.6em; } + +.footer_block__2 ul li { + margin: 15px 0 0 0; } + +.footer_block__2 ul li a { + color: #888888; } + +.footer_block__2 ul li i { + vertical-align: middle; + margin: 0 5px 0 0; + font-size: 14px; + color: #26a0d7; + -webkit-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -moz-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -ms-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -o-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; } + +.footer_block__2 ul li span { + color: #26a0d7; + -webkit-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -moz-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -ms-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + -o-transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; + transition: background .3s ease-in-out, border-color .3s ease-in-out, color .3s ease-in-out; } + +.footer_block__2 ul li a:hover, +.footer_block__2 ul li a:hover i, +.footer_block__2 ul li a:hover span { + color: #ffffff; } + +.footer_row__2 { + margin: 35px 0 0 0; + border-top: 1px solid rgba(255, 255, 255, 0.1); } + +.footer_row__2 h3 { + padding: 30px 0 0 0; } + +.footer_row__2 ul { + padding: 5px 0 0 0; } + +.footer_row__2 ul li { + padding: 9px 0 0 0; } + +.footer_row__2 ul li a { + color: #26a0d7; } + +.footer_row__2 ul li a:hover { + color: #ffffff; } + +.footer_block__6 a { + color: #888888; } + +.footer_block__6 a i { + width: 15px; + display: inline-block; + vertical-align: middle; + margin: 0 10px 0 0; + font-size: 14px; + color: #26a0d7; + text-align: center; } + +.footer_block__6 a:hover { + color: #ffffff; } + +footer .copyright { + margin: 30px 0 0 0; + padding: 20px 0 38px 0; + border-top: 1px solid rgba(255, 255, 255, 0.1); } + +footer .copyright p { + margin: 0; } + +footer .copyright a { + color: #888888; } + +footer .copyright a:hover { + color: #ffffff; } + +/* BACK TO TOP BUTTON */ +#back_top { + text-decoration: none; + width: 38px; + height: 38px; + display: block; + margin: 0 0 0 615px; + background: #26a0d7; + color: #ffffff; + text-align: center; + position: fixed; + left: 50%; + bottom: 50px; + z-index: 999; + -webkit-border-radius: 50%; + border-radius: 50%; } + +#back_top:before { + content: '\f106'; + font: 18px/37px 'FontAwesome'; } + +#back_top:hover { + background: #292d39; + -webkit-box-shadow: 0 0 7px 0 rgba(255, 255, 255, 0.25); + box-shadow: 0 0 7px 0 rgba(255, 255, 255, 0.25); } + +/* < 1200px */ +@media (max-width: 1199px) { + #back_top { + margin: 0 0 0 455px; } } +/* < 991px */ +@media (max-width: 991px) { + #back_top { + margin: 0 0 0 345px; } } +/* < 767px */ +@media (max-width: 767px) { + #back_top { + display: none !important; } + + .footer_row__1 h3, + .footer_row__2 h3 { + padding: 30px 0 0 0; } + + .footer_block__5 { + clear: left; } + + footer .container { + padding-left: 10px; + padding-right: 10px; } } +/* < 480px */ +@media (max-width: 480px) { + .footer_row__2 .footer_block { + width: 100%; + float: none; + clear: both; } } +/* BLOG */ +.article_date { + width: 70px; + float: left; + cursor: default; } + +.article_date .date_1 { + width: 70px; + height: 70px; + display: block; + background: #ffffff; + font-weight: bold; + font-size: 46px; + line-height: 69px; + color: #26a0d7; + text-align: center; + letter-spacing: -3px; } + +.article_date .date_2 { + width: 70px; + height: 30px; + display: block; + background: #26a0d7; + font-size: 11px; + line-height: 29px; + color: #ffffff; + text-align: center; + text-transform: uppercase; } + +.article_comments__link { + display: inline-block; } + +.article_comments__link:before { + content: '\f086'; + margin: 0 5px 0 0; + font: 13px 'FontAwesome'; + color: #26a0d7; } + +.article_body { + margin: 0 0 0 100px; } + +.blog_tags { + margin: 20px 0 0 0; + font-size: 0; } + +.blog_tags a { + text-decoration: none; + display: inline-block; + margin: 10px 10px 0 0; + padding: 5px 10px; + background: #ffffff; + font-size: 12px; + color: #888888; } + +.blog_tags a:before { + content: '\f02b'; + margin: 0 5px 0 0; + font: 13px 'FontAwesome'; + color: #26a0d7; } + +.blog_tags a:hover { + background: #26a0d7; + color: #ffffff; } + +.blog_tags a:hover:before { + color: #ffffff; } + +.blog_tags a.tag_active { + background: #26a0d7; + color: #ffffff !important; + cursor: default; } + +.blog_tags a.tag_active:before { + color: #ffffff; } + +/* POSTS LISTING */ +.blog_listing__article { + margin: 30px 0 0 0; } + +.blog_listing__article ~ .blog_listing__article { + margin: 50px 0 0 0; } + +.article_header h3 { + margin: 0; + font-size: 16px; } + +.article_header p { + margin: 10px 0 0 0; } + +.article_header .article_header__author { + margin: 0 15px 0 0; } + +.article_header .article_header__author:before { + content: '\f007'; + margin: 0 5px 0 0; + font: 13px 'FontAwesome'; + color: #26a0d7; } + +.article_content { + margin: 30px 0 0 0; } + +.article_footer .btn { + margin: 30px 0 0 0; } + +.blog_listing .product_listing_controls { + margin: 40px 0 0 0; } + +/* SINGLE POST */ +.blog_article { + padding: 30px 0 0 0; } + +.blog_article .article_footer .addthis_sharing_toolbox { + margin: 25px 0 0 0; } + +.blog_article .article_footer .addthis_sharing_toolbox a { + vertical-align: top; + margin: 5px 5px 0 0; } + +.blog_article .article_pagination { + overflow: hidden; + margin: 15px 0 0 0; } + +.blog_article .article_pagination .article_prev { + float: left; + margin: 15px 15px 0 0; } + +.blog_article .article_pagination .article_prev:before { + content: '\f060'; + margin: 0 10px 0 0; + font: 14px 'FontAwesome'; } + +.blog_article .article_pagination .article_next { + float: right; + margin: 15px 0 0 0; } + +.blog_article .article_pagination .article_next:after { + content: '\f061'; + margin: 0 0 0 10px; + font: 14px 'FontAwesome'; } + +.blog_article .article_comments { + margin: 30px 0 0 0; + border-top: 1px solid #e7e7e7; } + +.blog_article .article_comments h3 { + margin: 30px 0 0 0; } + +.article_comments__list li { + margin: 30px 0 0 0; + padding: 20px; + background: #f2f2f2; } + +.article_comments__list li ~ li { + margin: 20px 0 0 0; } + +.article_comments__list .comment_author { + overflow: hidden; + margin: 0; + color: #26a0d7; } + +.article_comments__list .comment_author:before { + content: '\f007'; + margin: 0 5px 0 0; + font: 13px 'FontAwesome'; } + +.article_comments__list .comment_author span { + float: right; + margin: 0 0 0 15px; } + +.article_comments__list .comment_content { + margin: 10px 0 0 0; } + +.article_comments__form { + margin: 30px 0 0 0; + border-top: 1px solid #e7e7e7; } + +.article_comments__form h3 { + margin: 30px 0 0 0; } + +.article_comments__form .btn { + margin: 15px 0 0 0; } + +.blog-posts-item { + margin: 20px 0; + padding: 20px 0; + border-top: 1px solid #eee; } + +#comments .comment-item .comment-reply { + color: #337ab7; + text-decoration: none; + border-bottom: 1px dotted #337ab7; + cursor: pointer; } + +#comments .margin { + margin-left: 40px; } + +#comments .comment-item .comment-item .comment-item .comment-item .comment-item .margin { + margin-left: 0; } + +.comment-user { + /*font-weight: bold;*/ } + +.comment-user:before { + content: '\f007'; + margin: 0 5px 0 0; + font: 13px 'FontAwesome'; + color: #26a0d7; } + +.comment-content { + font-size: 14px; } + +.blog_menu_image { + margin-top: 10px; + height: 170px; + background-position: center center; + background-size: cover; } + +/* < 768px */ +@media (max-width: 767px) { + /* POSTS LISTING */ + .article_header__title { + float: none; + margin: 0; } + + .article_header__comments { + float: none; } + + .article_footer__tags, + .article_footer__right { + float: none; + margin: 15px 0 0 0; } + + /* SINGLE POST */ + .article_comments__list .comment_author span { + display: block; + float: none; + margin: 5px 0 0 0; } } +/* < 480px */ +@media (max-width: 480px) { + /* POSTS LISTING */ + .blog_listing__article .article_body { + margin: 0; } + + .blog_listing__article .article_header { + margin: 0 0 0 100px; } + + .blog_listing__article .article_content { + clear: both; + padding: 15px 0 0 0; } } +/* RIBBON */ +/* PRODUCT LABELS */ +.ribbon { + position: absolute; + left: 10px; + top: 25px; + z-index: 20; + overflow: hidden; + width: 75px; + height: 75px; + text-align: right; } + +@media (max-width: 767px) { + .ribbon { + left: 10px; + top: -5px; } + + .view_list .ribbon { + left: 10px; + top: 25px; } } +.ribbon span { + font-size: 10px; + font-weight: bold; + text-transform: uppercase; + text-align: center; + line-height: 20px; + transform: rotate(-45deg); + -webkit-transform: rotate(-45deg); + width: 100px; + display: block; + position: absolute; + top: 19px; + left: -21px; } + +/* Discount Sale */ +.ribbon_3 span, .ribbon_2 span { + color: #FFF; + background: #79A70A; + background: linear-gradient(#F70505 0%, #8F0808 100%); + box-shadow: 0 3px 10px -5px black; } + +.ribbon_3 span::before, .ribbon_2 span::before { + content: ""; + position: absolute; + left: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid #8F0808; + border-right: 3px solid transparent; + border-bottom: 3px solid transparent; + border-top: 3px solid #8F0808; } + +.ribbon_3 span::after, .ribbon_2 span::after { + content: ""; + position: absolute; + right: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid transparent; + border-right: 3px solid #8F0808; + border-bottom: 3px solid transparent; + border-top: 3px solid #8F0808; } + +/* New */ +.ribbon_1 span { + color: #FFF; + background: #79A70A; + background: linear-gradient(#9BC90D 0%, #79A70A 100%); + box-shadow: 0 3px 10px -5px black; } + +.ribbon_1 span::before { + content: ""; + position: absolute; + left: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid #79A70A; + border-right: 3px solid transparent; + border-bottom: 3px solid transparent; + border-top: 3px solid #79A70A; } + +.ribbon_1 span::after { + content: ""; + position: absolute; + right: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid transparent; + border-right: 3px solid #79A70A; + border-bottom: 3px solid transparent; + border-top: 3px solid #79A70A; } + +/* Bestseller Best price */ +.ribbon_4 span, .ribbon_5 span { + color: #FFF; + background: #79A70A; + background: linear-gradient(#F79E05 0%, #8F5408 100%); + box-shadow: 0 3px 10px -5px black; } + +.ribbon_4 span::before, .ribbon_5 span::before { + content: ""; + position: absolute; + left: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid #8F5408; + border-right: 3px solid transparent; + border-bottom: 3px solid transparent; + border-top: 3px solid #8F5408; } + +.ribbon_4 span::after, .ribbon_5 span::after { + content: ""; + position: absolute; + right: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid transparent; + border-right: 3px solid #8F5408; + border-bottom: 3px solid transparent; + border-top: 3px solid #8F5408; } + +/* Product day, Popular */ +.ribbon_7 span, .ribbon_8 span { + color: #FFF; + background: #79A70A; + background: linear-gradient(#2989d8 0%, #1e5799 100%); + box-shadow: 0 3px 10px -5px black; } + +.ribbon_7 span::before, .ribbon_8 span::before { + content: ""; + position: absolute; + left: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid #1e5799; + border-right: 3px solid transparent; + border-bottom: 3px solid transparent; + border-top: 3px solid #1e5799; } + +.ribbon_7 span::after, .ribbon_8 span::after { + content: ""; + position: absolute; + right: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid transparent; + border-right: 3px solid #1e5799; + border-bottom: 3px solid transparent; + border-top: 3px solid #1e5799; } + +/* Hot deal, recommended */ +.ribbon_6 span, .ribbon_10 span { + color: #FFF; + background: #79A70A; + background: linear-gradient(#F7E64A 0%, #A7820A 100%); + box-shadow: 0 3px 10px -5px black; } + +.ribbon_6 span::before, .ribbon_10 span::before { + content: ""; + position: absolute; + left: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid #A7820A; + border-right: 3px solid transparent; + border-bottom: 3px solid transparent; + border-top: 3px solid #A7820A; } + +.ribbon_6 span::after, .ribbon_10 span::after { + content: ""; + position: absolute; + right: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid transparent; + border-right: 3px solid #A7820A; + border-bottom: 3px solid transparent; + border-top: 3px solid #A7820A; } + +/* Promo */ +.ribbon_9 span { + color: #FFF; + background: #79A70A; + background: linear-gradient(#F74ADA 0%, #9D0AA7 100%); + box-shadow: 0 3px 10px -5px black; } + +.ribbon_9 span::before { + content: ""; + position: absolute; + left: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid #9D0AA7; + border-right: 3px solid transparent; + border-bottom: 3px solid transparent; + border-top: 3px solid #9D0AA7; } + +.ribbon_9 span::after { + content: ""; + position: absolute; + right: 0px; + top: 100%; + z-index: -1; + border-left: 3px solid transparent; + border-right: 3px solid #9D0AA7; + border-bottom: 3px solid transparent; + border-top: 3px solid #9D0AA7; } + +/* TABLE TEMPLATE */ +.cart_list { + width: 100%; + max-width: 100%; + margin: 30px 0 0 0; + background: #ffffff; } + .cart_list th { + padding: 10px 10px; + background: #007ab2; + border: 1px solid #e7e7e7; + font-size: 14px; + color: #ffffff; + text-transform: uppercase; + text-align: center; } + .cart_list td { + padding: 20px; + border: 1px solid #e7e7e7; } + +/* CART */ +.cart_page .page_heading #cart_loader { + width: 44px; + height: 44px; + display: block; + margin: 0 0 0 -22px; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAYAAAAehFoBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAMhJREFUeNrs2TEKwkAUhOEXBSurQM5jo2AbyG2EgIfyCkKqXEDiGYI2QkBn5aXYYBqb7MAM/Ft/LNutWbwtqtEVDei9UIMbajf93A51CyLn6twWrUwQOq0csTl6EICDMV/jOKG9pb+Nv21rCW53rM1wvFzPsD5zOc1WRjaBBRZYYIEFFlhggQUWWGCBBRZYYIEFFvh/cE/kfQbwnQh8C+ALEfhrLYznU6YY5RUBuJpe98HS/Vg8zr2R8E16Rk0C0MYt0dftR4ABAFfva4h/thfHAAAAAElFTkSuQmCC") 0 0 no-repeat; + position: fixed; + left: 50%; + top: 0; + z-index: 1000; + opacity: 0; + -webkit-transition: .3s ease-in-out; + -moz-transition: .3s ease-in-out; + -ms-transition: .3s ease-in-out; + -o-transition: .3s ease-in-out; + transition: .3s ease-in-out; } + +.cart_page .page_heading #cart_loader:after { + content: ''; + width: 44px; + height: 44px; + display: block; + background: url("fancybox_loading.gif") 50% 50% no-repeat; } + +.cart_page .page_heading #cart_loader.loading { + top: 60px; + opacity: 1; } + +.cart_list .cart_price { + font-size: 16px; + text-align: right; } + +.cart_item__img { + width: 140px; + float: left; } + +.cart_item__info { + margin: 0 0 0 160px; } + +.cart_item__name { + margin: 0; } + +.cart_item__variant { + margin: 15px 0 0 0; + font-size: 12px; + color: #26a0d7; } + +.cart_item__details { + margin: 10px 0 0 0; } + +.cart_item__details p { + margin: 5px 0 0 0; + color: #26a0d7; } + +.cart_item__details p span { + color: #292d39; } + +.cart_item .quantity_box { + width: 88px; + height: 24px; + margin: 0; + position: relative; } + +.cart_item .quantity_box input { + width: 40px; + position: absolute; + left: 24px; + top: 0; } + +.cart_item .quantity_box .quantity_down { + margin: 0; + position: absolute; + left: 0; + top: 0; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; } + +.cart_item .quantity_box .quantity_up { + margin: 0; + position: absolute; + right: 0; + top: 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; } + +.cart_item .cart_update { + width: 88px; + display: block; + margin: 5px 0 0 0; } + +.cart_item__remove { + font-size: 14px; } + +.cart_item__remove i { + vertical-align: baseline; } + +.cart_list .cart_buttons .btn { + float: right; + margin: 0 0 0 20px; } + +.cart_list .cart_buttons .btn-alt { + float: none; + margin: 0; } + +.cart_list .cart_buttons .btn:before { + margin: 0 7px 0 0; + font: 14px 'FontAwesome'; } + +.cart_list .cart_buttons .cart_continue:before { + content: '\f060'; } + +.cart_list .cart_buttons .cart_update:before { + content: '\f021'; } + +.cart_list .cart_buttons #cart_clear:before { + content: '\f1f8'; } + +.cart_list .cart_summary .cart_summary__row { + margin: 0; + padding: 0 0 10px 0; + border-bottom: 1px solid #e7e7e7; + font-size: 18px; + color: #292d39; } + +.cart_list .cart_summary .cart_summary__row ~ .cart_summary__row { + padding: 10px 0; } + +.cart_list .cart_summary .cart_summary__row span { + float: right; } + +.cart_list .cart_summary .cart_summary__notification { + margin: 20px 0 0 0; } + +.cart_list .cart_summary .cart_summary__instructions { + margin: 15px 0 0 0; } + +.cart_list .cart_summary .cart_summary__instructions label { + display: block; + padding: 0 0 3px 0; + font-weight: normal; + color: #292d39; } + +.cart_list .cart_summary .cart_summary__instructions textarea { + width: auto !important; + height: 100px !important; + max-width: 100% !important; + resize: none; } + +.cart_list .cart_summary .cart_summary__checkout button { + float: right; + margin: 20px 0 0 10px; + padding: 10px 20px; + font-size: 16px; } + +.cart_list .cart_summary .cart_summary__checkout a.checkout_button { + float: right; + margin: 20px 0 0 10px; + padding: 10px 20px; + font-size: 16px; } + +.order_button { + float: right; + margin: 20px 0 0 10px; + padding: 10px 20px; + font-size: 16px; } + +.cart_list .cart_summary .cart_summary__methods { + float: left; } + +.cart_list .cart_summary .cart_summary__methods li { + float: left; + margin: 20px 10px 0 0; } + +/* EMPTY CART NOTIFICATION */ +.cart_empty h3 a { + font-weight: inherit; + text-decoration: underline; } + +.cart_empty h3 a:hover { + text-decoration: none; } + +/* < 767px */ +@media (max-width: 767px) { + .cart_list { + border: 1px solid #e7e7e7; + border-width: 0 1px 1px 1px; } + + .cart_list th { + display: none; } + + .cart_list tbody td { + display: block; + overflow: hidden; + padding: 0; + border-width: 0; + text-align: left !important; } + + .cart_list tbody td.cell_1 { + border-width: 1px 0; } + + .cart_list tbody td.cell_2 { + width: 140px; + float: left; + padding: 10px; } + + .cart_list tbody td.cell_3 { + width: 98px; + float: left; + padding: 10px 10px 10px 0; } + + .cart_list tbody td.cell_4 { + float: left; + padding: 10px 10px 10px 0; } + + .cart_list tbody td.cell_5 { + float: right; + padding: 10px 10px 10px 0; } + + .cart_item__img { + width: 140px; + padding: 10px; } + + .cart_item__info { + margin: 0 0 0 140px; + padding: 10px 10px 10px 0; } + + .cart_list .cart_buttons td { + padding: 0 20px 20px 20px; } + + .cart_list .cart_buttons .btn { + margin-top: 20px; } + + .cart_list .cart_summary .cart_summary__checkout { + text-align: center; } + + .cart_list .cart_summary .cart_summary__checkout button { + float: none; + margin: 20px 0 0 0; } + + .cart_list .cart_summary .cart_summary__methods { + float: none; + font-size: 0; } + + .cart_list .cart_summary .cart_summary__methods li { + display: inline-block; + float: none; + margin: 20px 10px 0 10px; } } +/* < 480px */ +@media (max-width: 480px) { + .cart_list tbody td.cell_2 { + width: 120px; } + + .cart_item__img { + width: 120px; } + + .cart_item__info { + margin: 0 0 0 120px; } + + .cart_list .cart_buttons td { + text-align: center; } + + .cart_list .cart_buttons .btn { + width: 100%; + display: block; + float: none; + margin: 20px 0 0 0; } } +/* ACCOUNT */ +.account_wrapper { + width: 100%; + height: 100%; + display: table; + margin: 30px 0 0 0; } + +.account_wrapper .account_left { + width: 50%; + height: 100%; + display: table-cell; + padding: 0 15px 0 0; } + +.account_wrapper .account_right { + width: 50%; + height: 100%; + display: table-cell; + padding: 0 0 0 15px; } + +.account_wrapper .account_section { + width: 100%; + height: 100%; + margin: 0; } + +#account_login .account_left ul { + margin: 10px 0 0 0; } + +#account_login .account_left .signup_feature ul li { + margin: 5px 0 0 0; + color: #292d39; + text-transform: uppercase; } + +#account_login .account_left .signup_feature ul li:before { + content: '\f00c'; + margin: 0 7px 0 0; + font: 14px 'FontAwesome'; + color: #26a0d7; } + +#account_login .account_left .btn { + margin-top: 15px; } + +#account_login .account_left .social_login { + margin-top: 10px; } + +#account_guest { + margin: 30px 0 0 0; } + +#account_guest .btn { + margin-top: 15px; } + +/* < 767px */ +@media (max-width: 767px) { + .account_wrapper { + display: block; + margin: 0; } + + .account_wrapper .account_left { + width: 100%; + height: auto; + display: block; + padding: 0; } + + .account_wrapper .account_right { + width: 100%; + height: auto; + display: block; + padding: 0; } + + .account_wrapper .account_section { + margin: 30px 0 0 0; } } +/* < 640px */ +@media (max-width: 640px) { + .account_wrapper .account_section { + margin: 15px 0 0 0; } } +/* CONTACTS */ +.contact-scope #google_map { + margin: 15px 0; } + +#contact_page #google_map { + width: 100%; + margin: 15px 0; + border: 1px solid #e7e7e7; } + +.contact-form textarea { + width: 100%; } + +/* COMPONENTS */ +label { + font-size: 13px; + color: #292d39; } + +select, +select.form-control, +textarea, +textarea.form-control, +input[type="text"], +input[type="email"], +input[type="number"], +input[type="password"], +input[type="telephone"] { + padding: 6px; + border: 1px solid #e7e7e7; + font-size: 13px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-border-radius: 5px; + border-radius: 5px; + box-shadow: none; } + +select, +select.form-control { + padding: 8px 3px; } + +textarea, +textarea.form-control { + min-width: 100%; + max-width: 100%; } + +select:focus, +select.form-control:focus, +textarea:focus, +textarea.form-control:focus, +input[type="text"]:focus, +input[type="email"]:focus, +input[type="number"]:focus, +input[type="password"]:focus, +input[type="telephone"]:focus { + border-color: #aaa; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #ddd; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #ddd; } + +input[type="radio"], +input[type="checkbox"], +.form-group { + vertical-align: top !important; + margin-top: 15px; + margin-bottom: 0; } + +.form-horizontal label { + padding-top: 0 !important; + text-align: right; + line-height: 34px; } + +.form-horizontal select { + width: 100%; } + +.action_bottom span.note { + margin-left: 5px; } + +.action_bottom span.note a { + margin-left: 5px; } + +/* 5.2 ALERTS & NOTIFICATIONS */ +.alert { + margin: 15px 0; + padding: 12px; + font-weight: normal; + font-size: 14px; + -webkit-border-radius: 0; + border-radius: 0; } + +.alert p { + margin: 0; } + +.alert a { + font-weight: bold; + text-decoration: underline; } + +.alert a:hover { + text-decoration: none; } + +.alert ul { + list-style-type: disc; + list-style-position: inside; + margin: 0; } + +.alert ol { + list-style-type: decimal; + list-style-position: inside; + margin: 0; } + +.alert > p + p, +.alert > ul + ul { + margin: 10px 0 0 0; } + +.alert-success { + background-color: #dff0d8; + color: #1e892a; } + +.alert-success a { + color: #1e892a; } + +.alert-info { + background-color: #cfedfc; + color: #267abe; } + +.alert-info a { + color: #267abe; } + +.alert-warning { + background-color: #fff5c7; + color: #c87100; } + +.alert-warning a { + color: #c87100; } + +.alert-danger, +.alert-error { + background-color: #ffcccc; + color: #d10300; } + +.alert-danger a, +.alert-error a { + color: #d10300; } + +.alert-form { + border-color: #d10300 !important; } + +.alert-form-info { + display: none; + margin: 5px 0 0 0; + font-size: 12px; + color: #d10300; } + +.notify_success { + color: #1e892a; } + +.notify_info { + color: #267abe; } + +.notify_warning { + color: #c87100; } + +.notify_danger { + color: #d10300; } + +/* HEADER TABLE */ +.header-table { + display: table; + width: 100%; + height: 90px; + margin: 0; + padding: 0; } + +.header-table .column { + display: table-cell; + vertical-align: top; + padding: 20px; } + +.header-table .left-box { + width: 270px; + text-align: left; + padding: 0; + vertical-align: middle; } + +.header-table .center-box { + width: auto; + padding: 0 10px; + vertical-align: middle; } + +.header-table .right-box { + width: 250px; + text-align: right; + padding: 0; + vertical-align: middle; } + .header-table .right-box .phone-number { + color: #0AA1F1; } + .header-table .right-box .phone-number span { + font-size: 20px; + color: #555555; } + +/* SOCIAL*/ +.social-channels { + margin: 12px 0; + padding-right: 10px; + text-align: right; + font-size: 12px; + float: right; + border-right: solid 1px #cccccc; } + .social-channels a { + display: inline-block; + margin-right: 3px; + text-decoration: none; } + +/* PRIVATE */ +.private-links { + margin: 10px 0; + text-align: right; + font-size: 12px; + float: right; } + .private-links a { + display: inline-block; + margin-left: 10px; + text-decoration: none; } + .private-links a i { + margin: 3px 5px; + color: #0AA1F1; } + +/* BUTTONS */ +.btn-blue { + background: #0AA1F1; + color: #FFFFFF; + border: none; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + /* !important tags aren't necessarily always bad */ } + .btn-blue:hover, .btn-blue:focus, .btn-blue:active { + background: #023F60; + color: #FFFFFF; } + +.btn-red { + background: red; + color: #FFFFFF; + border: none; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; + /* !important tags aren't necessarily always bad */ } + .btn-red:hover, .btn-red:focus, .btn-red:active { + background: #8F0808; + color: #FFFFFF; } + +/* LEFT MENU */ +.menu-title { + background-color: #0AA1F1; + color: #ffffff; + padding: 10px 15px; + margin-top: 10px; + -webkit-border-top-left-radius: 5px; + -webkit-border-top-right-radius: 5px; + -moz-border-radius-topleft: 5px; + -moz-border-radius-topright: 5px; + border-top-left-radius: 5px; + border-top-right-radius: 5px; } + +.left-box { + width: 250px; } + +.left-box li { + list-style: none; + padding: 0; + margin: 0; + background: #ffffff; } + .left-box li a { + text-decoration: none; + display: block; + line-height: 1.2em; } + .left-box li a span { + font-size: 8px; + color: #aaa; + font-family: "Play", "Helvetica Neue", Helvetica, Arial, sans-serif; } + .left-box li a:hover { + color: #023F60; } + +.left-box li.active a { + font-weight: bold; + color: #333333 !important; } + +.left-box li.active a:hover { + color: #0AA1F1 !important; + text-decoration: none; } + +.category_links li ~ li a, .types_links li ~ li a { + border-top: 1px solid rgba(0, 0, 0, 0.1); } + +.category_links li a, .types_links li a { + padding: 12px 20px; } + .category_links li a:after, .types_links li a:after { + content: '\f105'; + vertical-align: middle; + float: right; + margin: 0 0 0 7px; + font: 14px/1.2em 'FontAwesome'; + opacity: .3; } + +/* BREADCRUMBS */ +.breadcrumb_wrap { + margin: 0 0 30px 0; } + +.breadcrumb { + margin: 0; + padding: 7px 15px; + background: #ffffff; + -webkit-border-radius: 0; + border-radius: 0; + font-size: 11px; } + +.sub-category_list { + margin-top: 15px !important; + border: 0 !important; } + +/* > 768px */ +@media only screen and (min-width: 768px) { + .container-small { + width: 300px; } + + .container-large { + width: 970px; } } +/* > 992px */ +@media only screen and (min-width: 992px) { + .container-small { + width: 500px; } + + .container-large { + width: 1170px; } } +/* > 1200px */ +@media only screen and (min-width: 1200px) { + .container-small { + width: 700px; } + + .container-large { + width: 1500px; } } +/* < 1200px */ +@media only screen and (max-width: 1200px) { + .left-box, #main-menu > li:first-child > a { + width: 220px !important; } } +/* < 992px */ +@media only screen and (max-width: 992px) { + .left-box, #main-menu > li:first-child > a { + width: 160px !important; } + + .main-content { + padding-right: 25px; + padding-left: 25px; } } +/* < 768px */ +@media only screen and (max-width: 768px) { + .left-box { + display: none; } + + #main-menu > li:first-child > a { + width: 100% !important; } + + .header-table { + display: block !important; } + .header-table .column { + display: block !important; + text-align: center !important; } + + .header-bottom { + margin-top: 40px !important; } + + .phone-number { + margin-top: 20px; } + + .left-box { + width: 100% !important; } + + .money_sale { + display: block; } + + .private-links { + width: 100%; + margin-bottom: 0; + text-align: center; } + + .social-channels { + width: 100%; + border-right: 0; + border-top: solid 1px #cccccc; + text-align: center; + padding-top: 10px; } } + +/*# sourceMappingURL=main.css.map */ diff --git a/frontend/web/themes/sport/img/promobanner-bg.png b/frontend/web/themes/sport/img/promobanner-bg.png new file mode 100644 index 0000000..4b84856 Binary files /dev/null and b/frontend/web/themes/sport/img/promobanner-bg.png differ diff --git a/frontend/web/themes/sport/js/main.js b/frontend/web/themes/sport/js/main.js new file mode 100644 index 0000000..e64c36b --- /dev/null +++ b/frontend/web/themes/sport/js/main.js @@ -0,0 +1,158 @@ +// SmartMenus mobile menu toggle button +$(function() { + var $mainMenuState = $('#main-menu-state'); + if ($mainMenuState.length) { + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + if (this.checked) { + $menu.hide().slideDown(250, function() { $menu.css('display', ''); }); + } else { + $menu.show().slideUp(250, function() { $menu.css('display', ''); }); + } + }); + // hide mobile menu beforeunload + $(window).bind('beforeunload unload', function() { + if ($mainMenuState[0].checked) { + $mainMenuState[0].click(); + } + }); + } +}); + + +jQuery(document).ready(function () { + + $(function() { + $('#main-menu').smartmenus({ + subMenusSubOffsetX: 6, + subMenusSubOffsetY: -8 + }); + }); + + if ( $.cookie('promobanner_toggle') && $.cookie('promobanner_toggle') == 'disabled' ) { + $('#promobanner').hide(); + } + else { + $('#promobanner_close').on('click', function(e) { + e.preventDefault(); + $.cookie('promobanner_toggle', 'disabled'); + $('#promobanner').slideUp(); + }); + } + $(".promobanner-countdown").jCountdown({ + selector: "promobanner-countdown", + timeText: "2018/01/01 09:00:00", + dayTextNumber: 3, + style: "flip", + color: "black", + reflection: 0, + daysLabel: "Дни", + hoursLabel: "Часы", + minutesLabel: "Минуты", + secondsLabel: "Секунды", + labelsClass: "promobanner_countdown_labels" + }); + +}); + +jQuery(function($){ + $('html').removeClass('no-js'); + + // MAIN PRODUCT LISTING IMAGE CHANGE + if ( device.desktop() ) { + $(document).on({ + mouseenter: function(){ + $(this).find(".img__2").stop().animate({"opacity": 1}); + }, + mouseleave: function(){ + $(this).find(".img__2").stop().animate({"opacity": 0}); + } + }, '.img_change'); + } + + // BACK TO TOP BUTTON + $(document).ready(function(){ + $(document.body).append(''); + $('#back_top').hide(); + + $(window).scroll(function(){ + if ( $(this).scrollTop() > 300 ) { + $('#back_top').fadeIn("slow"); + } + else { + $('#back_top').fadeOut("slow"); + } + }); + + $('#back_top').on('click', function(e) { + e.preventDefault(); + $('html, body').animate({scrollTop : 0},800); + $('#back_top').fadeOut("slow").stop(); + }); + }); + + // SJAX // + $(document).unbind('ajaxComplete'); + $(document.body).on('click', '.sjax', function(e) { + e.preventDefault(); + var id = $(this).data('sjax-id'); + var message = $(this).data('sjax-message'); + var type = $(this).data('sjax-type'); + var ids = $(this).data('sjax-ids'); + var url = $(this).data('sjax-url'); + + var method = $(this).data('sjax-method') ? $(this).data('sjax-method') : 'get'; + if (id) { + $.ajax({ + url: $(this).attr('href'), + type: method + }).success(function(data) { + if (url) { + document.location.href = url; + } + else { + $("#" + id).html($(data).find('#' + id).html()); + if (ids) { + jQuery.each(ids, function (index, value) { + $("#" + value).html($(data).find('#' + value).html()); + }); + } + if ($(data).find("#sj_result_message").html()) + { + message = $(data).find("#sj_result_message").html(); + } + + if ($(data).find("#sj_result_type").html()) + { + type = $(data).find("#sj_result_type").html(); + } + + if (message && type) { + showNotify(type, message); + } + } + }); + } + return false; + }); + + $(document).on("focusout",".quantity_input",function(){var t=$(this).val();$(this).val(isNaN(parseFloat(t))&&!isFinite(t)||0==parseInt(t)||""==t?1:parseInt(t)<0?parseInt(t)-2*parseInt(t):parseInt(t))}),$(document).on("click",".quantity_up",function(){var t=$(this).parent().find(".quantity_input");t.val(!isNaN(parseFloat(t.val()))&&isFinite(t.val())?parseInt(t.val())+1:1)}),$(document).on("click",".quantity_down",function(){var t=$(this).parent().find(".quantity_input");t.val(!isNaN(parseFloat(t.val()))&&isFinite(t.val())&&t.val()>1?parseInt(t.val())-1:1)}); +}); + + +function showNotify(type, message) +{ + $.notify(message ? message : 'Notify',{ + // settings + delay: 5000, + timer: 1000, + element: 'body', + position: null, + type: type, + animate: { + enter: 'animated fadeInDown', + exit: 'animated fadeOutUp' + } + }); +} \ No newline at end of file diff --git a/frontend/web/themes/sport/js/modernizr-2.8.3-respond-1.4.2.min.js b/frontend/web/themes/sport/js/modernizr-2.8.3-respond-1.4.2.min.js new file mode 100644 index 0000000..69fb72a --- /dev/null +++ b/frontend/web/themes/sport/js/modernizr-2.8.3-respond-1.4.2.min.js @@ -0,0 +1,11 @@ +/* Modernizr 2.8.3 (Custom Build) | MIT & BSD + * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d',a,""].join(""),l.id=h,(m?l:n).innerHTML+=f,n.appendChild(l),m||(n.style.background="",n.style.overflow="hidden",k=g.style.overflow,g.style.overflow="hidden",g.appendChild(n)),i=c(l,a),m?l.parentNode.removeChild(l):(n.parentNode.removeChild(n),g.style.overflow=k),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b)&&c(b).matches||!1;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(["#",h,"{font:0/0 a}#",h,':after{content:"',l,'";visibility:hidden;font:3px/1 a}'].join(""),function(b){a=b.offsetHeight>=3}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,typeof f!="undefined"&&f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function l(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function m(){var a=s.elements;return typeof a=="string"?a.split(" "):a}function n(a){var b=j[a[h]];return b||(b={},i++,a[h]=i,j[i]=b),b}function o(a,c,d){c||(c=b);if(k)return c.createElement(a);d||(d=n(c));var g;return d.cache[a]?g=d.cache[a].cloneNode():f.test(a)?g=(d.cache[a]=d.createElem(a)).cloneNode():g=d.createElem(a),g.canHaveChildren&&!e.test(a)&&!g.tagUrn?d.frag.appendChild(g):g}function p(a,c){a||(a=b);if(k)return a.createDocumentFragment();c=c||n(a);var d=c.frag.cloneNode(),e=0,f=m(),g=f.length;for(;e",g="hidden"in a,k=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){g=!0,k=!0}})();var s={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:c,shivCSS:d.shivCSS!==!1,supportsUnknownElements:k,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:r,createElement:o,createDocumentFragment:p};a.html5=s,r(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f #mq-test-1 { width: 42px; }',c.insertBefore(e,d),b=42===f.offsetWidth,c.removeChild(e),{matches:b,media:a}}}(a.document)}(this),function(a){"use strict";function b(){v(!0)}var c={};a.respond=c,c.update=function(){};var d=[],e=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}(),f=function(a,b){var c=e();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},g=function(a){return a.replace(c.regex.minmaxwh,"").match(c.regex.other)};if(c.ajax=f,c.queue=d,c.unsupportedmq=g,c.regex={media:/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi,keyframes:/@(?:\-(?:o|moz|webkit)\-)?keyframes[^\{]+\{(?:[^\{\}]*\{[^\}\{]*\})+[^\}]*\}/gi,comments:/\/\*[^*]*\*+([^/][^*]*\*+)*\//gi,urls:/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,findStyles:/@media *([^\{]+)\{([\S\s]+?)$/,only:/(only\s+)?([a-zA-Z]+)\s?/,minw:/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,maxw:/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/,minmaxwh:/\(\s*m(in|ax)\-(height|width)\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/gi,other:/\([^\)]*\)/g},c.mediaQueriesSupported=a.matchMedia&&null!==a.matchMedia("only all")&&a.matchMedia("only all").matches,!c.mediaQueriesSupported){var h,i,j,k=a.document,l=k.documentElement,m=[],n=[],o=[],p={},q=30,r=k.getElementsByTagName("head")[0]||l,s=k.getElementsByTagName("base")[0],t=r.getElementsByTagName("link"),u=function(){var a,b=k.createElement("div"),c=k.body,d=l.style.fontSize,e=c&&c.style.fontSize,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",c||(c=f=k.createElement("body"),c.style.background="none"),l.style.fontSize="100%",c.style.fontSize="100%",c.appendChild(b),f&&l.insertBefore(c,l.firstChild),a=b.offsetWidth,f?l.removeChild(c):c.removeChild(b),l.style.fontSize=d,e&&(c.style.fontSize=e),a=j=parseFloat(a)},v=function(b){var c="clientWidth",d=l[c],e="CSS1Compat"===k.compatMode&&d||k.body[c]||d,f={},g=t[t.length-1],p=(new Date).getTime();if(b&&h&&q>p-h)return a.clearTimeout(i),i=a.setTimeout(v,q),void 0;h=p;for(var s in m)if(m.hasOwnProperty(s)){var w=m[s],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?j||u():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?j||u():1)),w.hasquery&&(z&&A||!(z||e>=x)||!(A||y>=e))||(f[w.media]||(f[w.media]=[]),f[w.media].push(n[w.rules]))}for(var C in o)o.hasOwnProperty(C)&&o[C]&&o[C].parentNode===r&&r.removeChild(o[C]);o.length=0;for(var D in f)if(f.hasOwnProperty(D)){var E=k.createElement("style"),F=f[D].join("\n");E.type="text/css",E.media=D,r.insertBefore(E,g.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(k.createTextNode(F)),o.push(E)}},w=function(a,b,d){var e=a.replace(c.regex.comments,"").replace(c.regex.keyframes,"").match(c.regex.media),f=e&&e.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(c.regex.urls,"$1"+b+"$2$3")},i=!f&&d;b.length&&(b+="/"),i&&(f=1);for(var j=0;f>j;j++){var k,l,o,p;i?(k=d,n.push(h(a))):(k=e[j].match(c.regex.findStyles)&&RegExp.$1,n.push(RegExp.$2&&h(RegExp.$2))),o=k.split(","),p=o.length;for(var q=0;p>q;q++)l=o[q],g(l)||m.push({media:l.split("(")[0].match(c.regex.only)&&RegExp.$2||"all",rules:n.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(c.regex.minw)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(c.regex.maxw)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}v()},x=function(){if(d.length){var b=d.shift();f(b.href,function(c){w(c,b.href,b.media),p[b.href]=!0,a.setTimeout(function(){x()},0)})}},y=function(){for(var b=0;btitle = 'Oldenburger Shop'; +?> + +beginContent('@frontend/web/themes/sport/template/layouts/main.php') ?> + +
+
+ +
+
+ + + + + + + +
+
+ +endContent() ?> + + diff --git a/frontend/web/themes/sport/plugins/countdown/css/countdown.css b/frontend/web/themes/sport/plugins/countdown/css/countdown.css new file mode 100644 index 0000000..1ab1d61 --- /dev/null +++ b/frontend/web/themes/sport/plugins/countdown/css/countdown.css @@ -0,0 +1,394 @@ +/* size */ +.jCountdownContainer{ + position:relative; + padding:0px; + margin:0px; + display:inline-block; + *zoom:1; /* IE */ + *display:inline; /* IE */ +} + +/* scale */ +.jCountdownScale{ + position:absolute; + padding:0px; + margin:0px; +} + +/* countdown */ +.jCountdown{ + padding:0px; + margin:0px; + white-space:nowrap; +} + +/* group */ +.jCountdown .group{ + padding:0px; + margin:0px; + display:inline-block; + *zoom:1; /* IE */ + *display:inline; /* IE */ +} + +/* label */ +.jCountdown .group>.label{ + position:relative; + left:50%; + padding:0px; + margin:0px 0px 0px -40px; + width:80px; +} + +.jCountdown.flip .group>.label{ + height:13px; +} +.jCountdown.flip.black .group>.label{ + background-image:url(../images/jcountdown_flip_black.png); +} +.jCountdown.flip.white .group>.label{ + background-image:url(../images/jcountdown_flip_white.png); +} +.jCountdown.flip .group.day>.label{ + background-position:-60px -970px; +} +.jCountdown.flip .group.hour>.label{ + background-position:-60px -995px; +} +.jCountdown.flip .group.minute>.label{ + background-position:-60px -1020px; +} +.jCountdown.flip .group.second>.label{ + background-position:-60px -1045px; +} + +.jCountdown.slide .group>.label{ + height:15px; +} +.jCountdown.slide.black .group>.label{ + background-image:url(../images/jcountdown_slide_black.png); +} +.jCountdown.slide.white .group>.label{ + background-image:url(../images/jcountdown_slide_white.png); +} +.jCountdown.slide .group.day>.label{ + background-position:-60px -150px; +} +.jCountdown.slide .group.hour>.label{ + background-position:-60px -175px; +} +.jCountdown.slide .group.minute>.label{ + background-position:-60px -200px; +} +.jCountdown.slide .group.second>.label{ + background-position:-60px -225px; +} + +.jCountdown.crystal .group>.label{ + height:12px; +} +.jCountdown.crystal.black .group>.label{ + background-image:url(../images/jcountdown_crystal_black.png); +} +.jCountdown.crystal.white .group>.label{ + background-image:url(../images/jcountdown_crystal_white.png); +} +.jCountdown.crystal .group.day>.label{ + background-position:-60px -153px; +} +.jCountdown.crystal .group.hour>.label{ + background-position:-60px -178px; +} +.jCountdown.crystal .group.minute>.label{ + background-position:-60px -203px; +} +.jCountdown.crystal .group.second>.label{ + background-position:-60px -228px; +} + +.jCountdown.metal .group>.label{ + height:15px; +} +.jCountdown.metal.black .group>.label{ + background-image:url(../images/jcountdown_metal_black.png); +} +.jCountdown.metal.white .group>.label{ + background-image:url(../images/jcountdown_metal_white.png); +} +.jCountdown.metal .group.day>.label{ + background-position:-60px -153px; +} +.jCountdown.metal .group.hour>.label{ + background-position:-60px -178px; +} +.jCountdown.metal .group.minute>.label{ + background-position:-60px -203px; +} +.jCountdown.metal .group.second>.label{ + background-position:-60px -228px; +} + +/* container */ +.jCountdown .group>.container{ + position:relative; + padding:0px; + margin:0px; + display:inline-block; + *zoom:1; /* IE */ + *display:inline; /* IE */ +} + +.jCountdown.flip .group>.container{ + width:50px; + height:64px; + padding:6px 2px 2px 2px; + margin:0px 0px 0px 1px; + background-position:0px -960px; +} +.jCountdown.flip .group>.container:first-child{ + margin:0px; +} +.jCountdown.flip.black .group>.container{ + background-image:url(../images/jcountdown_flip_black.png); +} +.jCountdown.flip.white .group>.container{ + background-image:url(../images/jcountdown_flip_white.png); +} + +.jCountdown.slide .group>.container{ + width:50px; + height:64px; + padding:1px 0px 1px 0px; + background-position:-111px 0px; +} +.jCountdown.slide .group>.container:first-child{ + padding:1px 0px 1px 1px; + background-position:-60px 0px; +} +.jCountdown.slide .group>.container.lastItem{ + padding:1px 1px 1px 0px; + background-position:-161px 0px; +} +.jCountdown.slide.black .group>.container{ + background-image:url(../images/jcountdown_slide_black.png); +} +.jCountdown.slide.white .group>.container{ + background-image:url(../images/jcountdown_slide_white.png); +} + +.jCountdown.crystal .group>.container{ + width:60px; + height:60px; + padding:0px 1px 3px 1px; + margin:0px 0px 0px 1px; + background-position:-60px 0px; +} +.jCountdown.crystal .group>.container:first-child{ + margin:0px; +} +.jCountdown.crystal.black .group>.container{ + background-image:url(../images/jcountdown_crystal_black.png); +} +.jCountdown.crystal.white .group>.container{ + background-image:url(../images/jcountdown_crystal_white.png); +} + +.jCountdown.metal .group>.container{ + width:60px; + height:60px; + padding:3px 1px 4px 1px; + background-position:-124px 0px; +} +.jCountdown.metal .group>.container:first-child{ + width:60px; + padding:3px 1px 4px 3px; + background-position:-60px 0px; +} +.jCountdown.metal .group>.container.lastItem{ + width:60px; + padding:3px 3px 4px 1px; + background-position:-186px 0px; +} +.jCountdown.metal.black .group>.container{ + background-image:url(../images/jcountdown_metal_black.png); +} +.jCountdown.metal.white .group>.container{ + background-image:url(../images/jcountdown_metal_white.png); +} + +/* cover */ +.jCountdown .group>.container>.cover{ + position:absolute; + z-index:1; + padding:0px; + margin:0px; +} + +.jCountdown.slide .group>.container>.cover{ + left:0px; + top:1px; + width:50px; + height:64px; + background-position:-110px -70px; +} +.jCountdown.slide .group>.container:first-child>.cover{ + left:1px; + background-position:-60px -70px; +} +.jCountdown.slide .group>.container.lastItem>.cover{ + right:1px; + background-position:-160px -70px; +} +.jCountdown.slide.black .group>.container>.cover{ + background-image:url(../images/jcountdown_slide_black.png); +} +.jCountdown.slide.white .group>.container>.cover{ + background-image:url(../images/jcountdown_slide_white.png); +} + +.jCountdown.crystal .group>.container>.cover{ + left:1px; + top:0px; + width:60px; + height:60px; + background-position:-60px -70px; +} +.jCountdown.crystal.black .group>.container>.cover{ + background-image:url(../images/jcountdown_crystal_black.png); +} +.jCountdown.crystal.white .group>.container>.cover{ + background-image:url(../images/jcountdown_crystal_white.png); +} + +.jCountdown.metal .group>.container>.cover{ + top:3px; + left:0px; + width:62px; + height:66px; + background-position:-122px -70px; +} +.jCountdown.metal .group>.container:first-child>.cover{ + left:2px; + background-position:-60px -70px; +} +.jCountdown.metal .group>.container.lastItem>.cover{ + right:2px; + background-position:-184px -70px; +} +.jCountdown.metal.black .group>.container>.cover{ + background-image:url(../images/jcountdown_metal_black.png); +} +.jCountdown.metal.white .group>.container>.cover{ + background-image:url(../images/jcountdown_metal_white.png); +} + +/* text */ +.jCountdown .group>.container>.text{ + padding:0px; + margin:0px; +} + +.jCountdown.flip .group>.container>.text{ + width:50px; + height:64px; +} +.jCountdown.flip.black .group>.container>.text{ + background-image:url(../images/jcountdown_flip_black.png); +} +.jCountdown.flip.white .group>.container>.text{ + background-image:url(../images/jcountdown_flip_white.png); +} + +.jCountdown.slide .group>.container>.text{ + width:50px; + height:64px; +} +.jCountdown.slide.black .group>.container>.text{ + background-image:url(../images/jcountdown_slide_black.png); +} +.jCountdown.slide.white .group>.container>.text{ + background-image:url(../images/jcountdown_slide_white.png); +} + +.jCountdown.crystal .group>.container>.text{ + width:60px; + height:60px; +} +.jCountdown.crystal.black .group>.container>.text{ + background-image:url(../images/jcountdown_crystal_black.png); +} +.jCountdown.crystal.white .group>.container>.text{ + background-image:url(../images/jcountdown_crystal_white.png); +} + +.jCountdown.metal .group>.container>.text{ + position:relative; + z-index:2; + width:60px; + height:60px; +} +.jCountdown.metal.black .group>.container>.text{ + background-image:url(../images/jcountdown_metal_black.png); +} +.jCountdown.metal.white .group>.container>.text{ + background-image:url(../images/jcountdown_metal_white.png); +} + +/* reflection */ +.jCountdown.reflection{ + transform:scaleY(-1); + -moz-transform:scaleY(-1); /* Firefox */ + -webkit-transform:scaleY(-1); /* Webkit */ + -o-transform:scaleY(-1); /* Opera */ +} +.jCountdown.reflection.displayLabel{ + margin-top:-3px; +} +.jCountdown.reflection.blur1{ + -webkit-filter:blur(1px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur1); /* Firefox Opera */ +} +.jCountdown.reflection.blur2{ + -webkit-filter:blur(2px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur2); /* Firefox Opera */ +} +.jCountdown.reflection.blur3{ + -webkit-filter:blur(3px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur3); /* Firefox Opera */ +} +.jCountdown.reflection.blur4{ + -webkit-filter:blur(4px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur4); /* Firefox Opera */ +} +.jCountdown.reflection.blur5{ + -webkit-filter:blur(5px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur5); /* Firefox Opera */ +} +.jCountdown.reflection.blur6{ + -webkit-filter:blur(6px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur6); /* Firefox Opera */ +} +.jCountdown.reflection.blur7{ + -webkit-filter:blur(7px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur7); /* Firefox Opera */ +} +.jCountdown.reflection.blur8{ + -webkit-filter:blur(8px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur8); /* Firefox Opera */ +} +.jCountdown.reflection.blur9{ + -webkit-filter:blur(9px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur9); /* Firefox Opera */ +} +.jCountdown.reflection.blur10{ + -webkit-filter:blur(10px); /* Webkit */ + filter:url(../images/jcountdown.svg#blur10); /* Firefox Opera */ +} + +.Jc-white{ + color: white; +} + +.Jc-black{ + color: black; +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown.svg b/frontend/web/themes/sport/plugins/countdown/images/jcountdown.svg new file mode 100644 index 0000000..c6e4203 --- /dev/null +++ b/frontend/web/themes/sport/plugins/countdown/images/jcountdown.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown_crystal_black.png b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_crystal_black.png new file mode 100644 index 0000000..b9faead Binary files /dev/null and b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_crystal_black.png differ diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown_crystal_white.png b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_crystal_white.png new file mode 100644 index 0000000..dae794c Binary files /dev/null and b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_crystal_white.png differ diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown_flip_black.png b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_flip_black.png new file mode 100644 index 0000000..b1e6f52 Binary files /dev/null and b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_flip_black.png differ diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown_flip_white.png b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_flip_white.png new file mode 100644 index 0000000..1dd6a22 Binary files /dev/null and b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_flip_white.png differ diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown_metal_black.png b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_metal_black.png new file mode 100644 index 0000000..9b845d8 Binary files /dev/null and b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_metal_black.png differ diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown_metal_white.png b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_metal_white.png new file mode 100644 index 0000000..d2ac32b Binary files /dev/null and b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_metal_white.png differ diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown_slide_black.png b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_slide_black.png new file mode 100644 index 0000000..d97b4d0 Binary files /dev/null and b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_slide_black.png differ diff --git a/frontend/web/themes/sport/plugins/countdown/images/jcountdown_slide_white.png b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_slide_white.png new file mode 100644 index 0000000..ad41ae4 Binary files /dev/null and b/frontend/web/themes/sport/plugins/countdown/images/jcountdown_slide_white.png differ diff --git a/frontend/web/themes/sport/plugins/countdown/js/countdown.js b/frontend/web/themes/sport/plugins/countdown/js/countdown.js new file mode 100644 index 0000000..6ea18b0 --- /dev/null +++ b/frontend/web/themes/sport/plugins/countdown/js/countdown.js @@ -0,0 +1,519 @@ +jQuery.fn.extend({ + jCountdown: function(options) { + var B = function(b) { + this._target = b; + this._width = 50; + this._height = 64; + this._frame = 1; + this._totalFrames = 15; + this._fps = 24; + this._intervalId = -1; + this._value = 0; + this.stop = function() { + clearInterval(this._intervalId) + }; + this.update = function(a) { + if (a) { + this.frame(1); + this.stop(); + var b = this; + this._intervalId = setInterval(function() { + b.frame() == b.totalFrames() ? (clearInterval(b._intervalId), b.onFinish()) : b.frame(b.frame() + 1) + }, Math.ceil(1E3 / this.fps())) + } else this.frame(this.totalFrames()) + }; + this.value = function(a, b) { + if (void 0 == a) return this._value; + this._value = a; + this.update(b) + }; + this.onFinish = function() {}; + this.destroy = function() { + this.stop(); + this._target = null + }; + this.width = function(a) { + if (void 0 == a) return this._width; + this._width = a + }; + this.height = function(a) { + if (void 0 == a) return this._height; + this._height = a + }; + this.frame = function(a) { + if (void 0 == a) return this._frame; + this._frame = a; + var a = -(9 - this.value()) * this.width(), + b = -(this.frame() - 1) * this.height(); + this._target.children(".text").css("background-position", a + "px " + b + "px") + }; + this.totalFrames = function(a) { + if (void 0 == a) return this._totalFrames; + this._totalFrames = a + }; + this.fps = function(a) { + if (void 0 == a) return this._fps; + this._fps = a + }; + this.update(!1) + }, + C = function(b) { + this._target = b; + this._width = 50; + this._height = 64; + this._frame = 1; + this._totalFrames = 15; + this._fps = 24; + this._intervalId = -1; + this._value = 0; + this.stop = function() { + clearInterval(this._intervalId) + }; + this.update = function(a) { + if (a) { + this.frame(1); + this.stop(); + var b = this; + this._intervalId = setInterval(function() { + b.frame() == b.totalFrames() ? (clearInterval(b._intervalId), b.onFinish()) : b.frame(b.frame() + 1) + }, Math.ceil(1E3 / this.fps())) + } else this.frame(this.totalFrames()) + }; + this.value = function(a, b) { + if (void 0 == a) return this._value; + this._value = a; + this.update(b) + }; + this.onFinish = function() {}; + this.destroy = function() { + this.stop(); + this._target = null + }; + this.width = function(a) { + if (void 0 == a) return this._width; + this._width = a + }; + this.height = function(a) { + if (void 0 == a) return this._height; + this._height = a + }; + this.frame = function(a) { + if (void 0 == a) return this._frame; + this._frame = a; + a = -((1 + this.value()) * this.height()) + Math.sin((this.frame() - 1) / (this.totalFrames() - 1) * Math.PI / 2) * this.height(); + this._target.children(".text").css("background-position", "0px " + a + "px") + }; + this.totalFrames = function(a) { + if (void 0 == a) return this._totalFrames; + this._totalFrames = a + }; + this.fps = function(a) { + if (void 0 == a) return this._fps; + this._fps = a + }; + this.update(!1) + }, + D = function(b) { + this._target = b; + this._height = this._width = 60; + this._frame = 1; + this._totalFrames = 15; + this._fps = 24; + this._intervalId = -1; + this._value = 0; + this.stop = function() { + clearInterval(this._intervalId) + }; + this.update = function(a) { + if (a) { + this.frame(1); + this.stop(); + var b = this; + this._intervalId = setInterval(function() { + b.frame() == b.totalFrames() ? (clearInterval(b._intervalId), b.onFinish()) : b.frame(b.frame() + 1) + }, Math.ceil(1E3 / this.fps())) + } else this.frame(this.totalFrames()) + }; + this.value = function(a, b) { + if (void 0 == a) return this._value; + this._value = a; + this.update(b) + }; + this.onFinish = function() {}; + this.destroy = function() { + this.stop(); + this._target = null + }; + this.width = function(a) { + if (void 0 == a) return this._width; + this._width = a + }; + this.height = function(a) { + if (void 0 == a) return this._height; + this._height = a + }; + this.frame = function(a) { + if (void 0 == a) return this._frame; + this._frame = a; + a = this.value() + 1; + 9 < a && (a = 0); + var b = this.frame() / this.totalFrames(), + c; + 0.4 <= b && 0.6 >= b ? c = 0 : 0.4 >= b ? c = 1 - b / 0.4 : 0.6 <= b && (c = (b - 0.6) / 0.4); + a = -(0.5 < b ? this.value() : a) * this.height(); + a -= 3 * (1 - c); + this._target.children(".text").css("background-position", "0px " + a + "px").css("opacity", c); + this._target.children(".cover").css("opacity", c) + }; + this.totalFrames = function(a) { + if (void 0 == a) return this._totalFrames; + this._totalFrames = a + }; + this.fps = function(a) { + if (void 0 == a) return this._fps; + this._fps = a + }; + this.update(!1) + }, + E = function(b) { + this._target = b; + this._height = this._width = 60; + this._heightSmall = this._widthSmall = 42; + this._frame = 1; + this._totalFrames = 15; + this._fps = 24; + this._intervalId = -1; + this._value = 0; + this.stop = function() { + clearInterval(this._intervalId) + }; + this.update = function(a) { + if (a) { + this.frame(1); + this.stop(); + var b = this; + this._intervalId = setInterval(function() { + b.frame() == b.totalFrames() ? (clearInterval(b._intervalId), b.onFinish()) : b.frame(b.frame() + 1) + }, Math.ceil(1E3 / this.fps())) + } else this.frame(this.totalFrames()) + }; + this.value = function(a, b) { + if (void 0 == a) return this._value; + this._value = a; + this.update(b) + }; + this.onFinish = function() {}; + this.destroy = function() { + this.stop(); + this._target = null + }; + this.width = function(a) { + if (void 0 == a) return this._width; + this._width = a + }; + this.height = function(a) { + if (void 0 == a) return this._height; + this._height = a + }; + this.frame = function(a) { + if (void 0 == a) return this._frame; + this._frame = a; + var a = -this.value() * this.height(), + b = Math.sin((this.frame() - 1) / (this.totalFrames() - 1) * Math.PI / 2); + 0 < b && 0.001 > b ? b = 0 : 0 > b && -0.001 < b && (b = 0); + this._target.children(".text").css("background-position", "0px " + a + "px").css("opacity", b) + }; + this.totalFrames = function(a) { + if (void 0 == a) return this._totalFrames; + this._totalFrames = a + }; + this.fps = function(a) { + if (void 0 == a) return this._fps; + this._fps = a + }; + this.update(!1) + }, + y = function() { + this._days = []; + this._hours = []; + this._minutes = []; + this._seconds = []; + this._tickId = -1; + this._tickDelay = 100; + this._timeText = ""; + this._timeZone = 0; + this._time = null; + this.checkTime = function(b) { + var a = new Date; + if (this._time.getTime() < a.getTime() + 6E4 * a.getTimezoneOffset()) { + for (a = 0; a < this._days.length; a++) this._days[a].value(0); + for (a = 0; a < this._hours.length; a++) this._hours[a].value(0); + for (a = 0; a < this._minutes.length; a++) this._minutes[a].value(0); + for (a = 0; a < this._seconds.length; a++) this._seconds[a].value(0); + this.stop(); + this.onFinish(); + return !0 + } + var c = this.timeFormat(this._time.getTime() - (a.getTime() + 6E4 * a.getTimezoneOffset()), this._days.length, this._hours.length, this._minutes.length, this._seconds.length).split(""); + if (!isNaN(this._time)) { + for (a = 0; a < this._days.length; a++) { + var d = parseInt(c.shift(), 10); + d != this._days[a].value() && this._days[a].value(d, b) + } + for (a = 0; a < this._hours.length; a++) d = parseInt(c.shift(), 10), d != this._hours[a].value() && this._hours[a].value(d, b); + for (a = 0; a < this._minutes.length; a++) d = parseInt(c.shift(), 10), d != this._minutes[a].value() && this._minutes[a].value(d, b); + for (a = 0; a < this._seconds.length; a++) d = parseInt(c.shift(), 10), d != this._seconds[a].value() && this._seconds[a].value(d, b) + } + return !1 + }; + this.textFormat = function(b, a, c) { + for (b = b.toString(); b.length < a;) b = c + b; + b.length > a && (b = b.substr(b.length - a, a)); + return b + }; + this.timeFormat = function(b, a, c, d, e) { + var b = Math.floor(b / 1E3), + f = b % 60, + g = Math.floor(b % 3600 / 60), + h = Math.floor(b % 86400 / 3600); + return this.textFormat(Math.floor(b / 86400), a, "0") + this.textFormat(h, c, "0") + this.textFormat(g, d, "0") + this.textFormat(f, e, "0") + }; + this.start = function() { + this.stop(); + for (var b = 0; b < this._days.length; b++) this._days[b].update(); + for (b = 0; b < this._hours.length; b++) this._hours[b].update(); + for (b = 0; b < this._minutes.length; b++) this._minutes[b].update(); + for (b = 0; b < this._seconds.length; b++) this._seconds[b].update(); + if (!this.checkTime(!1)) { + var a = this; + this._tickId = setInterval(function() { + a.checkTime(!0) + }, this._tickDelay) + } + }; + this.stop = function() { + for (var b = 0; b < this._days.length; b++) this._days[b].stop(); + for (b = 0; b < this._hours.length; b++) this._hours[b].stop(); + for (b = 0; b < this._minutes.length; b++) this._minutes[b].stop(); + for (b = 0; b < this._seconds.length; b++) this._seconds[b].stop(); + clearInterval(this._tickId) + }; + this.onFinish = function() {}; + this.destroy = function() { + for (var b = 0; b < this._days.length; b++) this._days[b].destroy(); + for (b = 0; b < this._hours.length; b++) this._hours[b].destroy(); + for (b = 0; b < this._minutes.length; b++) this._minutes[b].destroy(); + for (b = 0; b < this._seconds.length; b++) this._seconds[b].destroy(); + this._days = []; + this._hours = []; + this._minutes = []; + this._seconds = []; + this.stop() + }; + this.items = function(b, a, c, d) { + this._days = b; + this._hours = a; + this._minutes = c; + this._seconds = d + }; + this.timeText = function(b) { + if (void 0 == b) return this._timeText; + this._timeText = b; + this.time(this.timeText(), this.timeZone()) + }; + this.timeZone = function(b) { + if (void 0 == b) return this._timeZone; + this._timeZone = b; + this.time(this.timeText(), this.timeZone()) + }; + this.time = function(b, a) { + this._timeText = b; + this._timeZone = a; + var c = this._timeText.split("/").join(" ").split(":").join(" ").split(" "), + d = parseInt(c[0], 10), + e = parseInt(c[1], 10) - 1, + f = parseInt(c[2], 10), + g = parseInt(c[3], 10), + h = parseInt(c[4], 10) - 60 * this._timeZone, + c = parseInt(c[5], 10); + this._time = new Date(d, e, f, g, h, c, 0); + this.start() + } + }, + v = function() { + //return q.data(options.selector) + return q.data("countdown") + }, + t = function() { + void 0 != v() && (v().destroy(), q.removeData("countdown")) + //void 0 != v() && (v().destroy(), q.removeData(options.selector)) + }; + if (0 < arguments.length) { + var q = this, + m = v(); + if (1 == arguments.length && "object" == typeof arguments[0]) { + void 0 != m && (t(), q.children().remove()); + var e = arguments[0]; + void 0 == v() ? (m = new y, q.data("countdown", m), m = v()) : m = void 0; + var j = parseInt(jQuery.browser.version, 10), + y = "string" == typeof e.timeText ? e.timeText : "", + t = parseFloat(e.timeZone); + isNaN(t) && (t = 0); + var i = "string" == typeof e.style ? e.style.toLowerCase() : ""; + switch (i) { + case "flip": + break; + case "slide": + break; + case "crystal": + break; + case "metal": + break; + default: + i = "flip" + } + var k = "string" == typeof e.color ? e.color.toLowerCase() : ""; + switch (k) { + case "black": + break; + case "white": + break; + default: + k = "black" + } + var d = parseInt(e.width, 10); + 10 <= d || (d = 0); + var n = parseInt(e.textGroupSpace, 10); + 0 <= n || (n = 15); + var p = parseInt(e.textSpace, 10); + 0 < p || (p = 0); + var u = !1 != e.reflection, + r = parseFloat(e.reflectionOpacity); + 0 < r ? 100 < r && (r = 100) : r = 10; + var l = parseInt(e.reflectionBlur, 10); + 0 < l ? 10 < l && (l = 10) : l = 0; + var g = 2 < parseInt(e.dayTextNumber, 10) ? parseInt(e.dayTextNumber, 10) : 2, + h = !1 != e.displayDay, + A = !1 != e.displayHour, + z = !1 != e.displayMinute, + x = !1 != e.displaySecond, + w = !1 != e.displayLabel, + daysLabel = e.daysLabel, + hoursLabel = e.hoursLabel, + minutesLabel = e.minutesLabel, + secondsLabel = e.secondsLabel, + labelsClass = e.labelsClass, + e = "function" == typeof e.onFinish ? e.onFinish : function() {}, + c, f = "", + s = ""; + c = '
'; + if (h) { + c += '
'; + for (h = 0; h < g; h++) { + f = " item" + (h + 1); + s = h == g - 1 ? " lastItem" : ""; + c += '
'; + if ("slide" == i || "crystal" == i || "metal" == i) c += '
'; + c += '
'; + c += "
" + } + w && (c += '
' + daysLabel + '
'); + c += "
" + } + if (A) { + c += '
'; + for (h = 0; 2 > h; h++) { + f = " item" + (h + 1); + s = 1 == h ? " lastItem" : ""; + c += '
'; + if ("slide" == i || "crystal" == i || "metal" == i) c += '
'; + c += '
'; + c += "
" + } + w && (c += '
' + hoursLabel + '
'); + c += "
" + } + if (z) { + c += '
'; + for (h = 0; 2 > h; h++) { + f = " item" + (h + 1); + s = 1 == h ? " lastItem" : ""; + c += '
'; + if ("slide" == i || "crystal" == i || "metal" == i) c += '
'; + c += '
'; + c += "
" + } + w && (c += '
' + minutesLabel + '
'); + c += "
" + } + if (x) { + c += '
'; + for (h = 0; 2 > h; h++) { + f = " item" + (h + 1); + s = 1 == h ? " lastItem" : ""; + c += '
'; + if ("slide" == i || "crystal" == i || "metal" == i) c += '
'; + c += '
'; + c += "
" + } + w && (c += '
' + secondsLabel + '
'); + c += "
" + } + q.html(c + "
"); + g = q.children(".jCountdown"); + g.addClass(i); + g.addClass(k); + g.children(".group").css("margin-right", n + "px"); + g.children(".group.lastItem").css("margin-right", "0px"); + g.children(".group").children(".container").css("margin-right", p + "px"); + g.children(".group").children(".container.lastItem").css("margin-right", "0px"); + u && !(jQuery.browser.msie && 10 > j) && (reflectionObject = g.clone(), reflectionObject.addClass("reflection"), w && reflectionObject.addClass("displayLabel"), 100 != r && reflectionObject.css("opacity", r / 100), 0 != l && reflectionObject.addClass("blur" + l), g = g.add(reflectionObject)); + f = jQuery('
'); + f.append(g); + q.append(f); + 0 != d && (k = jQuery('
'), k.append(g), f.append(k), n = k.width(), p = k.height(), d /= n, u = -(1 - d) * n / 2, r = -(1 - d) * p / 2, l = "scale(" + d + ")", f.width(n * d), f.height(p * d), jQuery.browser.msie && 8 >= j ? k.css("zoom", d) : (k.css("transform", l).css("-moz-transform", l).css("-webkit-transform", l).css("-o-transform", l).css("-ms-transform", l), k.css("left", u).css("top", r))); + j = ""; + d = 0; + k = []; + n = []; + p = []; + u = []; + f = function() {}; + switch (i) { + case "flip": + f = B; + break; + case "slide": + f = C; + break; + case "crystal": + f = E; + break; + case "metal": + f = D + } + d = 1; + for (j = ".group.day>.container.item"; g.find(j + d).length;) k.push(new f(g.find(j + d))), d++; + d = 1; + for (j = ".group.hour>.container.item"; g.find(j + d).length;) n.push(new f(g.find(j + d))), d++; + d = 1; + for (j = ".group.minute>.container.item"; g.find(j + d).length;) p.push(new f(g.find(j + d))), d++; + d = 1; + for (j = ".group.second>.container.item"; g.find(j + d).length;) u.push(new f(g.find(j + d))), d++; + m.items(k, n, p, u); + m.onFinish = e; + m.time(y, t) + } else if ("string" == typeof arguments[0] && void 0 != m) switch (arguments[0]) { + case "stop": + m.stop(); + break; + case "start": + m.start(); + break; + case "destroy": + t(), q.children().remove() + } + } + return this + } +}); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/countdown/js/init.html b/frontend/web/themes/sport/plugins/countdown/js/init.html new file mode 100644 index 0000000..9aef2a0 --- /dev/null +++ b/frontend/web/themes/sport/plugins/countdown/js/init.html @@ -0,0 +1,1052 @@ +
+
Time Text
+
+
+ +
+
Time Zone
+
+
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
    +
  • +
    +
    Time Text
    +
    +
    +
    +
    Time Zone
    +
    +
    +
  • +
  • +
    +
    Style
    +
    +
     Flip
    +
     Slide
    +
    +
    +
    +
     Metal
    +
     Crystal
    +
    +
    +
    +
    Color
    +
    +
     Black
    +
     White
    +
    +
    +
  • +
  • +
    +
    Width
    +
    +
     Auto
    +
     Fixed
    +
    +
    + +
  • +
  • +
    +
    Text Group Space
    +
    15
    +
    +
    +
    Text Space
    +
    0
    +
    +
  • +
  • +
    +
    Reflection
    +
    +
    +
    +
    Reflection Opacity
    +
    10
    +
    +
    +
    Reflection Blur
    +
    0
    +
    +
  • +
  • +
    +
    Day Text number
    +
    3
    +
    +
  • +
  • +
    +
    Display Day
    + +
    +
    +
    Display Hour
    + +
    +
    +
    Display Minute
    + +
    +
    +
    Display Second
    + +
    +
  • +
  • +
    +
    Display Label
    + +
    +
  • +
  • +
    On Finish Event
    +
  • +
  • +
    Stop
    +
    Start
    +
  • +
  • +
    Destroy
    +
    Create
    +
  • +
+
+
+
+
+
+
+
+
+
+
+
    +
  • +
    +
    Time Text
    +
    +
    +
    +
    Time Zone
    +
    +
    +
  • +
  • +
    +
    Style
    +
    +
     Flip
    +
     Slide
    +
    +
    +
    +
     Metal
    +
     Crystal
    +
    +
    +
    +
    Color
    +
    +
     Black
    +
     White
    +
    +
    +
  • +
  • +
    +
    Width
    +
    +
     Auto
    +
     Fixed
    +
    +
    + +
  • +
  • +
    +
    Text Group Space
    +
    15
    +
    +
    +
    Text Space
    +
    0
    +
    +
  • +
  • +
    +
    Reflection
    +
    +
    + + +
  • +
  • +
    +
    Day Text number
    +
    3
    +
    +
  • +
  • +
    +
    Display Day
    + +
    +
    +
    Display Hour
    + +
    +
    +
    Display Minute
    + +
    +
    +
    Display Second
    + +
    +
  • +
  • +
    +
    Display Label
    + +
    +
  • +
  • +
    On Finish Event
    +
  • +
  • +
    Stop
    +
    Start
    +
  • +
  • +
    Destroy
    +
    Create
    +
  • +
+
+
+
+
+
+
+
+
+
+
    +
  • +
    +
    Time Text
    +
    +
    +
    +
    Time Zone
    +
    +
    +
  • +
  • +
    +
    Style
    +
    +
     Flip
    +
     Slide
    +
    +
    +
    +
     Metal
    +
     Crystal
    +
    +
    +
    +
    Color
    +
    +
     Black
    +
     White
    +
    +
    +
  • +
  • +
    +
    Width
    +
    +
     Auto
    +
     Fixed
    +
    +
    + +
  • +
  • +
    +
    Text Group Space
    +
    15
    +
    +
    +
    Text Space
    +
    0
    +
    +
  • +
  • +
    +
    Reflection
    +
    +
    + + +
  • +
  • +
    +
    Day Text number
    +
    3
    +
    +
  • +
  • +
    +
    Display Day
    + +
    +
    +
    Display Hour
    + +
    +
    +
    Display Minute
    + +
    +
    +
    Display Second
    + +
    +
  • +
  • +
    +
    Display Label
    + +
    +
  • +
  • +
    On Finish Event
    +
  • +
  • +
    Stop
    +
    Start
    +
  • +
  • +
    Destroy
    +
    Create
    +
  • +
+
+
+
+
+
+
+
+
+
+
    +
  • +
    +
    Time Text
    +
    +
    +
    +
    Time Zone
    +
    +
    +
  • +
  • +
    +
    Style
    +
    +
     Flip
    +
     Slide
    +
    +
    +
    +
     Metal
    +
     Crystal
    +
    +
    +
    +
    Color
    +
    +
     Black
    +
     White
    +
    +
    +
  • +
  • +
    +
    Width
    +
    +
     Auto
    +
     Fixed
    +
    +
    + +
  • +
  • +
    +
    Text Group Space
    +
    15
    +
    +
    +
    Text Space
    +
    0
    +
    +
  • +
  • +
    +
    Reflection
    +
    +
    +
    +
    Reflection Opacity
    +
    5
    +
    +
    +
    Reflection Blur
    +
    0
    +
    +
  • +
  • +
    +
    Day Text number
    +
    8
    +
    +
  • +
  • +
    +
    Display Day
    + +
    +
    +
    Display Hour
    + +
    +
    +
    Display Minute
    + +
    +
    +
    Display Second
    + +
    +
  • +
  • +
    +
    Display Label
    + +
    +
  • +
  • +
    On Finish Event
    +
  • +
  • +
    Stop
    +
    Start
    +
  • +
  • +
    Destroy
    +
    Create
    +
  • +
+
+
+
+
+
+
+
+
+
+
    +
  • +
    +
    Time Text
    +
    +
    +
    +
    Time Zone
    +
    +
    +
  • +
  • +
    +
    Style
    +
    +
     Flip
    +
     Slide
    +
    +
    +
    +
     Metal
    +
     Crystal
    +
    +
    +
    +
    Color
    +
    +
     Black
    +
     White
    +
    +
    +
  • +
  • +
    +
    Width
    +
    +
     Auto
    +
     Fixed
    +
    +
    + +
  • +
  • +
    +
    Text Group Space
    +
    15
    +
    +
    +
    Text Space
    +
    0
    +
    +
  • +
  • +
    +
    Reflection
    +
    +
    + + +
  • +
  • +
    +
    Day Text number
    +
    3
    +
    +
  • +
  • +
    +
    Display Day
    + +
    +
    +
    Display Hour
    + +
    +
    +
    Display Minute
    + +
    +
    +
    Display Second
    + +
    +
  • +
  • +
    +
    Display Label
    + +
    +
  • +
  • +
    On Finish Event
    +
  • +
  • +
    Stop
    +
    Start
    +
  • +
  • +
    Destroy
    +
    Create
    +
  • +
+
+
+
+
+
+
+
+
+
+
    +
  • +
    +
    Time Text
    +
    +
    +
    +
    Time Zone
    +
    +
    +
  • +
  • +
    +
    Style
    +
    +
     Flip
    +
     Slide
    +
    +
    +
    +
     Metal
    +
     Crystal
    +
    +
    +
    +
    Color
    +
    +
     Black
    +
     White
    +
    +
    +
  • +
  • +
    +
    Width
    +
    +
     Auto
    +
     Fixed
    +
    +
    + +
  • +
  • +
    +
    Text Group Space
    +
    15
    +
    +
    +
    Text Space
    +
    0
    +
    +
  • +
  • +
    +
    Reflection
    +
    +
    + + +
  • +
  • +
    +
    Day Text number
    +
    3
    +
    +
  • +
  • +
    +
    Display Day
    + +
    +
    +
    Display Hour
    + +
    +
    +
    Display Minute
    + +
    +
    +
    Display Second
    + +
    +
  • +
  • +
    +
    Display Label
    + +
    +
  • +
  • +
    On Finish Event
    +
  • +
  • +
    Stop
    +
    Start
    +
  • +
  • +
    Destroy
    +
    Create
    +
  • +
+
+
+
+
+
+
+
+
+
+
    +
  • +
    +
    Time Text
    +
    +
    +
    +
    Time Zone
    +
    +
    +
  • +
  • +
    +
    Style
    +
    +
     Flip
    +
     Slide
    +
    +
    +
    +
     Metal
    +
     Crystal
    +
    +
    +
    +
    Color
    +
    +
     Black
    +
     White
    +
    +
    +
  • +
  • +
    +
    Width
    +
    +
     Auto
    +
     Fixed
    +
    +
    + +
  • +
  • +
    +
    Text Group Space
    +
    15
    +
    +
    +
    Text Space
    +
    0
    +
    +
  • +
  • +
    +
    Reflection
    +
    +
    +
    +
    Reflection Opacity
    +
    10
    +
    +
    +
    Reflection Blur
    +
    3
    +
    +
  • +
  • +
    +
    Day Text number
    +
    3
    +
    +
  • +
  • +
    +
    Display Day
    + +
    +
    +
    Display Hour
    + +
    +
    +
    Display Minute
    + +
    +
    +
    Display Second
    + +
    +
  • +
  • +
    +
    Display Label
    + +
    +
  • +
  • +
    On Finish Event
    +
  • +
  • +
    Stop
    +
    Start
    +
  • +
  • +
    Destroy
    +
    Create
    +
  • +
+
+
+
+
+
+
+
+
+
+
    +
  • +
    +
    Time Text
    +
    +
    +
    +
    Time Zone
    +
    +
    +
  • +
  • +
    +
    Style
    +
    +
     Flip
    +
     Slide
    +
    +
    +
    +
     Metal
    +
     Crystal
    +
    +
    +
    +
    Color
    +
    +
     Black
    +
     White
    +
    +
    +
  • +
  • +
    +
    Width
    +
    +
     Auto
    +
     Fixed
    +
    +
    + +
  • +
  • +
    +
    Text Group Space
    +
    15
    +
    +
    +
    Text Space
    +
    0
    +
    +
  • +
  • +
    +
    Reflection
    +
    +
    + + +
  • +
  • +
    +
    Day Text number
    +
    3
    +
    +
  • +
  • +
    +
    Display Day
    + +
    +
    +
    Display Hour
    + +
    +
    +
    Display Minute
    + +
    +
    +
    Display Second
    + +
    +
  • +
  • +
    +
    Display Label
    + +
    +
  • +
  • +
    On Finish Event
    +
  • +
  • +
    Stop
    +
    Start
    +
  • +
  • +
    Destroy
    +
    Create
    +
  • +
+
\ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/countdown/js/init.js b/frontend/web/themes/sport/plugins/countdown/js/init.js new file mode 100644 index 0000000..bafb5a4 --- /dev/null +++ b/frontend/web/themes/sport/plugins/countdown/js/init.js @@ -0,0 +1,348 @@ +jQuery(function() { + for (var b = new Date, i = b.getFullYear() + "/" + (b.getMonth() + 1) + "/" + (b.getDate() + 1) + " " + b.getHours() + ":" + b.getMinutes() + ":" + b.getSeconds(), e = b.getFullYear() + 1 + "/" + (b.getMonth() + 1) + "/" + b.getDate() + " " + b.getHours() + ":" + b.getMinutes() + ":" + b.getSeconds(), h = b.getFullYear() + 1E4 + "/" + (b.getMonth() + 1) + "/" + b.getDate() + " " + b.getHours() + ":" + b.getMinutes() + ":" + b.getSeconds(), b = -b.getTimezoneOffset() / 60, j = [{ + timeText: e, + timeZone: b, + style: "flip", + color: "black", + width: 0, + textGroupSpace: 15, + textSpace: 0, + reflection: !0, + reflectionOpacity: 10, + reflectionBlur: 0, + dayTextNumber: 3, + displayDay: !0, + displayHour: !0, + displayMinute: !0, + displaySecond: !0, + displayLabel: !0, + onFinish: function() {} + }, { + timeText: i, + timeZone: b, + style: "flip", + color: "white", + width: 0, + textGroupSpace: 15, + textSpace: 0, + reflection: !1, + reflectionOpacity: 10, + reflectionBlur: 0, + dayTextNumber: 3, + displayDay: !1, + displayHour: !0, + displayMinute: !0, + displaySecond: !0, + displayLabel: !0, + onFinish: function() {} + }, { + timeText: e, + timeZone: b, + style: "slide", + color: "black", + width: 0, + textGroupSpace: 15, + textSpace: 0, + reflection: !1, + reflectionOpacity: 10, + reflectionBlur: 0, + dayTextNumber: 3, + displayDay: !0, + displayHour: !0, + displayMinute: !0, + displaySecond: !0, + displayLabel: !0, + onFinish: function() {} + }, { + timeText: h, + timeZone: b, + style: "slide", + color: "white", + width: 0, + textGroupSpace: 15, + textSpace: 0, + reflection: !0, + reflectionOpacity: 5, + reflectionBlur: 0, + dayTextNumber: 8, + displayDay: !0, + displayHour: !1, + displayMinute: !1, + displaySecond: !0, + displayLabel: !0, + onFinish: function() {} + }, { + timeText: e, + timeZone: b, + style: "metal", + color: "black", + width: 0, + textGroupSpace: 15, + textSpace: 0, + reflection: !1, + reflectionOpacity: 10, + reflectionBlur: 0, + dayTextNumber: 3, + displayDay: !0, + displayHour: !0, + displayMinute: !0, + displaySecond: !0, + displayLabel: !0, + onFinish: function() {} + }, { + timeText: e, + timeZone: b, + style: "metal", + color: "white", + width: 0, + textGroupSpace: 15, + textSpace: 0, + reflection: !1, + reflectionOpacity: 10, + reflectionBlur: 0, + dayTextNumber: 3, + displayDay: !0, + displayHour: !0, + displayMinute: !0, + displaySecond: !0, + displayLabel: !0, + onFinish: function() {} + }, { + timeText: e, + timeZone: b, + style: "crystal", + color: "black", + width: 0, + textGroupSpace: 15, + textSpace: 0, + reflection: !0, + reflectionOpacity: 10, + reflectionBlur: 3, + dayTextNumber: 3, + displayDay: !0, + displayHour: !0, + displayMinute: !0, + displaySecond: !0, + displayLabel: !0, + onFinish: function() {} + }, { + timeText: e, + timeZone: b, + style: "crystal", + color: "white", + width: 0, + textGroupSpace: 15, + textSpace: 0, + reflection: !1, + reflectionOpacity: 10, + reflectionBlur: 0, + dayTextNumber: 3, + displayDay: !0, + displayHour: !0, + displayMinute: !0, + displaySecond: !0, + displayLabel: !0, + onFinish: function() {} + }], i = jQuery("#content"), e = jQuery("#content>.page"), h = 0; h < j.length - 1; h++) { + var b = j[h], + k = e.clone(); + k.children(".countdown").jCountdown(b); + i.append(k) + } + + + var g = function(b) { + var c = b.children(".panel"), + b = b.children(".countdown"), + d = c.find(".timeText").val(), + f = parseFloat(c.find(".timeZone").val()), + a = c.find(".style[checked]").val(), + l = c.find(".color[checked]").val(), + m = "auto" == c.find(".widthType[checked]").val() ? 0 : c.find(".width").slider("value"), + n = c.find(".textGroupSpace").slider("value"), + e = c.find(".textSpace").slider("value"), + g = "checked" == c.find(".reflection").attr("checked"), + h = c.find(".reflectionOpacity").slider("value"), + i = c.find(".reflectionBlur").slider("value"), + j = c.find(".dayTextNumber").slider("value"), + k = "checked" == c.find(".displayDay").attr("checked"), + p = "checked" == c.find(".displayHour").attr("checked"), + q = "checked" == c.find(".displayMinute").attr("checked"), + r = "checked" == c.find(".displaySecond").attr("checked"), + s = "checked" == c.find(".displayLabel").attr("checked"); + 6 != d.split("/").join(" ").split(":").join(" ").split(" ").length ? c.find(".timeText").addClass("error") : c.find(".timeText").removeClass("error"); + isNaN(f) ? c.find(".timeZone").addClass("error") : c.find(".timeZone").removeClass("error"); + g ? c.find(".reflectionOpacity").parents(".group").show() : c.find(".reflectionOpacity").parents(".group").hide(); + g ? c.find(".reflectionBlur").parents(".group").show() : c.find(".reflectionBlur").parents(".group").hide(); + b.jCountdown({ + timeText: d, + timeZone: f, + style: a, + color: l, + width: m, + textGroupSpace: n, + textSpace: e, + reflection: g, + reflectionOpacity: h, + reflectionBlur: i, + dayTextNumber: j, + displayDay: k, + displayHour: p, + displayMinute: q, + displaySecond: r, + displayLabel: s + }); + c.find(".width").slider("value", b.children().width()); + c.find(".width").parents(".group").find(".value").html(b.children().width()) + }; + jQuery(".page").each(function(b, c) { + var d = jQuery(c), + f = d.children(".countdown"), + a = d.children(".panel"), + d = j[b]; + f.jCountdown(d); + a.find("input").removeAttr("disabled"); + a.find(".timeText").val(d.timeText); + a.find(".timeZone").val(d.timeZone); + a.find(".style").removeAttr("checked"); + a.find(".style[value=" + d.style + "]").attr("checked", "checked"); + a.find(".color").removeAttr("checked"); + a.find(".color[value=" + d.color + "]").attr("checked", "checked"); + a.find(".widthType").removeAttr("checked"); + 0 == d.width ? a.find(".widthType[value=auto]").attr("checked", "checked") : a.find(".widthType[value=fixed]").attr("checked", "checked"); + 0 == d.width ? a.find(".width").parents(".group").hide() : a.find(".width").parents(".group").find(".value").html(d.width); + a.find(".width").slider({ + min: 50, + max: 900, + step: 1, + value: f.children().width() + }); + a.find(".textGroupSpace").slider({ + min: 0, + max: 100, + step: 1, + value: d.textGroupSpace + }); + a.find(".textSpace").slider({ + min: 0, + max: 50, + step: 1, + value: d.textSpace + }); + a.find(".reflection").attr("checked", d.reflection); + a.find(".reflectionOpacity").slider({ + min: 0, + max: 100, + step: 1, + value: d.reflectionOpacity + }); + d.reflection ? a.find(".reflectionOpacity").parents(".group").show() : a.find(".reflectionOpacity").parents(".group").hide(); + a.find(".reflectionBlur").slider({ + min: 0, + max: 10, + step: 1, + value: d.reflectionBlur + }); + d.reflection ? a.find(".reflectionBlur").parents(".group").show() : a.find(".reflectionBlur").parents(".group").hide(); + a.find(".dayTextNumber").slider({ + min: 2, + max: 8, + step: 1, + value: d.dayTextNumber + }); + a.find(".displayDay").attr("checked", d.displayDay); + a.find(".displayHour").attr("checked", d.displayHour); + a.find(".displayMinute").attr("checked", d.displayMinute); + a.find(".displaySecond").attr("checked", d.displaySecond); + a.find(".displayLabel").attr("checked", d.displayLabel); + a.find(".textGroupSpace").parent().find(".value").html(d.textGroupSpace); + a.find(".textSpace").parent().find(".value").html(d.textSpace); + a.find(".reflectionOpacity").parent().find(".value").html(d.reflectionOpacity); + a.find(".reflectionBlur").parent().find(".value").html(d.reflectionBlur); + a.find(".dayTextNumber").parent().find(".value").html(d.dayTextNumber); + a.find("input[type=text]").keyup(function() { + g(jQuery(this).parents(".page")) + }).change(function() { + g(jQuery(this).parents(".page")) + }); + a.find("input[type=checkbox]").change(function() { + g(jQuery(this).parents(".page")) + }); + a.find("input[type=radio]").click(function() { + var a = jQuery(this), + c = a.parents(".page"); + c.find("." + a.attr("class")).removeAttr("checked"); + a.attr("checked", "checked"); + g(c) + }); + f = function() { + var a = jQuery(this), + c = a.parents(".page"); + a.parent().find(".value").html(a.slider("value")); + g(c) + }; + a.find(".slider").slider({ + start: f, + slide: f, + stop: f + }); + a.find(".widthType").click(function() { + var a = jQuery(this).parents(".page"); + "auto" == a.find(".widthType[checked]").val() ? a.find(".width").parents(".group").hide() : a.find(".width").parents(".group").show() + }); + a.find(".stop").click(function() { + var c = jQuery(this); + c.parents(".page").children(".countdown").jCountdown("stop"); + c.hasClass("disable") || (a.find(".slider").slider("disable"), a.find("input").attr("disabled", "disabled"), a.find("*").addClass("disable"), a.find(".start").parent().removeClass("disable"), a.find(".start").removeClass("disable"), c.addClass("disable")) + }); + a.find(".start").click(function() { + var c = jQuery(this), + b = c.parents(".page").children(".countdown"); + c.hasClass("disable") || (b.jCountdown("start"), a.find(".slider").slider("enable"), a.find("input").removeAttr("disabled", "disabled"), a.find("*").removeClass("disable"), a.find(".stop").parent().removeClass("disable"), a.find(".stop").removeClass("disable"), c.addClass("disable"), a.find(".create").addClass("disable")) + }).addClass("disable"); + a.find(".destroy").click(function() { + var a = jQuery(this), + c = a.parents(".page"), + b = c.children(".panel"), + c = c.children(".countdown"); + a.hasClass("disable") || (c.jCountdown("destroy"), b.find(".slider").slider("disable"), b.find("input").attr("disabled", "disabled"), b.find("*").addClass("disable"), b.find(".create").parent().removeClass("disable"), b.find(".create").removeClass("disable"), a.addClass("disable")) + }); + a.find(".create").click(function() { + var a = jQuery(this), + c = a.parents(".page"), + b = c.children(".panel"); + c.children(".countdown"); + a.hasClass("disable") || (g(c), b.find(".slider").slider("enable"), b.find("input").removeAttr("disabled", "disabled"), b.find("*").removeClass("disable"), b.find(".destroy").parent().removeClass("disable"), b.find(".destroy").removeClass("disable"), a.addClass("disable"), b.find(".start").addClass("disable")) + }).addClass("disable") + }); + jQuery(".backgroundPicker .button").click(function() { + for (var b = jQuery(this), c = b.parents(".page"), d = c.children(".countdown"), f = c.children(".backgroundPicker"), a = ["background1", "background2", "background3", "background4", "background5"], c = c.find(".backgroundPicker .button").index(b), e = 0; e < a.length; e++) d.removeClass(a[e]); + d.addClass(a[c]); + f.children(".button").removeClass("selected"); + b.addClass("selected") + }); + jQuery(".backgroundPicker .button:first-child").trigger("click"); + jQuery("[tip]").mouseenter(function() { + var b = jQuery(this), + c = jQuery("#tip"), + d = b.attr("tip"), + e = b.innerWidth() - 10, + a = b.offset().left + 5 + "px"; + b.hasClass("disable") || (c.children(".content").html(d), c.outerWidth(e), b = b.offset().top - c.outerHeight() - 5, c.stop(!0, !0).show().css("opacity", "0").css("left", a).css("top", b + 3).animate({ + opacity: 1, + top: "-=3" + }, 150)) + }).mouseleave(function() { + var b = jQuery(this), + c = jQuery("#tip"); + b.attr("tip"); + b = b.offset().top - c.outerHeight() - 5; + c.stop(!0, !0).css("opacity", "1").css("top", b); + c.animate({ + opacity: 0, + top: "+=3" + }, 150, function() { + jQuery(this).hide() + }) + }) +}); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/countdown/views/countdown.php b/frontend/web/themes/sport/plugins/countdown/views/countdown.php new file mode 100644 index 0000000..a1174e1 --- /dev/null +++ b/frontend/web/themes/sport/plugins/countdown/views/countdown.php @@ -0,0 +1,32 @@ +registerJs($js, $this::POS_READY); +?> + +
+
+
+
+
diff --git a/frontend/web/themes/sport/plugins/smartmenus/LICENSE-MIT b/frontend/web/themes/sport/plugins/smartmenus/LICENSE-MIT new file mode 100644 index 0000000..314d100 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/LICENSE-MIT @@ -0,0 +1,22 @@ +Copyright (c) Vasil Dinkov, Vadikom Web Ltd. + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. diff --git a/frontend/web/themes/sport/plugins/smartmenus/README.md b/frontend/web/themes/sport/plugins/smartmenus/README.md new file mode 100644 index 0000000..fce08be --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/README.md @@ -0,0 +1,88 @@ +# SmartMenus + +Advanced jQuery website menu plugin. Mobile first, responsive and accessible list-based website menus that work on all devices. +Check out [the demo page](http://vadikom.github.io/smartmenus/src/demo/). + +## Quick start + +- [Download the latest release](http://www.smartmenus.org/download/). +- Install with [Bower](http://bower.io): `bower install smartmenus`. +- Install with [npm](https://www.npmjs.com): `npm install smartmenus`. +- Clone the repo: `git clone https://github.com/vadikom/smartmenus.git`. + +Check out the [project documentation](http://www.smartmenus.org/docs/) for quick setup instructions, API reference, tutorials and more. + +## Addons usage as modules +If you need to use any of the addons from the "addons" directory as an AMD or CommonJS module: + +### AMD +Make sure your SmartMenus jQuery plugin module is named `smartmenus` since the addons require that name. For example, in RequireJS you may need to add this in your config: +```javascript +requirejs.config({ + "paths": { + 'smartmenus': 'jquery.smartmenus.min' + } + // ... +``` + +### CommonJS (npm) +The addons are available as separate npm packages so you could properly install/require them in your project in addition to `jquery` and `smartmenus`: + +- Bootstrap 4 Addon: `npm install smartmenus-bootstrap-4` + +- Bootstrap Addon: `npm install smartmenus-bootstrap` + +- Keyboard Addon: `npm install smartmenus-keyboard` + +#### Example with npm + Browserify + +package.json: +```javascript +{ + "name": "myapp-using-smartmenus", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "jquery": ">=2.1.3", + "smartmenus": ">=1.1.0", + "smartmenus-keyboard": ">=0.4.0" + }, + "devDependencies": { + "browserify": ">=9.0.3" + } +} +``` + +entry.js: +```javascript +var jQuery = require('jquery'); +require('smartmenus'); +require('smartmenus-keyboard'); + +jQuery(function() { + jQuery('#main-menu').smartmenus(); +}); +``` + +Run browserify to create bundle.js: `browserify entry.js > bundle.js` + +## Homepage + + + +## Documentation + + + +## Community and support + +- Visit the [Community forums](http://www.smartmenus.org/forums/) for free support. +- [Premium support](http://www.smartmenus.org/support/premium-support/) is also available. +- Read and subscribe to [the project blog](http://www.smartmenus.org/blog/). +- Follow [@vadikom on Twitter](http://twitter.com/vadikom). + +## Bugs and issues + +For bugs and issues only please. For support requests please use the [Community forums](http://www.smartmenus.org/forums/) or contact us directly via our [Premium support](http://www.smartmenus.org/support/premium-support/). + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.css b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.css new file mode 100644 index 0000000..f4ae564 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.css @@ -0,0 +1,128 @@ +/* + You probably do not need to edit this at all. + + Add some SmartMenus required styles not covered in Bootstrap 4's default CSS. + These are theme independent and should work with any Bootstrap 4 theme mod. +*/ + + +/* Carets in collapsible mode (make them look like +/- buttons) */ +.navbar-nav.sm-collapsible .sub-arrow { + position: absolute; + top: 50%; + right: 0; + margin: -0.7em 0.5em 0 0; + border: 1px solid rgba(0, 0, 0, .1); + border-radius: .25rem; + padding: 0; + width: 2em; + height: 1.4em; + font-size: 1.25rem; + line-height: 1.2em; + text-align: center; +} +.navbar-nav.sm-collapsible .sub-arrow::before { + content: '+'; +} +.navbar-nav.sm-collapsible .show > a > .sub-arrow::before { + content: '-'; +} +.navbar-dark .navbar-nav.sm-collapsible .nav-link .sub-arrow { + border-color: rgba(255, 255, 255, .1); +} +/* make sure there's room for the carets */ +.navbar-nav.sm-collapsible .has-submenu { + padding-right: 3em; +} +/* keep the carets properly positioned */ +.navbar-nav.sm-collapsible .nav-link, +.navbar-nav.sm-collapsible .dropdown-item { + position: relative; +} + + +/* Nav carets in expanded mode */ +.navbar-nav:not(.sm-collapsible) .nav-link .sub-arrow { + display: inline-block; + width: 0; + height: 0; + margin-left: .255em; + vertical-align: .255em; + border-top: .3em solid; + border-right: .3em solid transparent; + border-left: .3em solid transparent; +} +/* point the arrows up for .fixed-bottom navbars */ +.fixed-bottom .navbar-nav:not(.sm-collapsible) .nav-link .sub-arrow, +.fixed-bottom .navbar-nav:not(.sm-collapsible):not([data-sm-skip]) .dropdown-toggle::after { + border-top: 0; + border-bottom: .3em solid; +} + + +/* Dropdown carets in expanded mode */ +.navbar-nav:not(.sm-collapsible) .dropdown-item .sub-arrow, +.navbar-nav:not(.sm-collapsible):not([data-sm-skip]) .dropdown-menu .dropdown-toggle::after { + position: absolute; + top: 50%; + right: 0; + width: 0; + height: 0; + margin-top: -.3em; + margin-right: 1em; + border-top: .3em solid transparent; + border-bottom: .3em solid transparent; + border-left: .3em solid; +} +/* make sure there's room for the carets */ +.navbar-nav:not(.sm-collapsible) .dropdown-item.has-submenu { + padding-right: 2em; +} + + +/* Scrolling arrows for tall menus */ +.navbar-nav .scroll-up, +.navbar-nav .scroll-down { + position: absolute; + display: none; + visibility: hidden; + height: 20px; + overflow: hidden; + text-align: center; +} +.navbar-nav .scroll-up-arrow, +.navbar-nav .scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-top: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 7px solid; + border-left: 7px solid transparent; +} +.navbar-nav .scroll-down-arrow { + top: 6px; + border-top: 7px solid; + border-right: 7px solid transparent; + border-bottom: 7px solid transparent; + border-left: 7px solid transparent; +} + + +/* Add some spacing for 2+ level sub menus in collapsible mode */ +.navbar-nav.sm-collapsible .dropdown-menu .dropdown-menu { + margin: .5em; +} + + +/* Fix SmartMenus sub menus auto width (subMenusMinWidth/subMenusMaxWidth options) */ +.navbar-nav:not([data-sm-skip]) .dropdown-item { + white-space: normal; +} +.navbar-nav:not(.sm-collapsible) .sm-nowrap > li > .dropdown-item { + white-space: nowrap; +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.js b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.js new file mode 100644 index 0000000..8d507bb --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.js @@ -0,0 +1,166 @@ +/*! + * SmartMenus jQuery Plugin Bootstrap 4 Addon - v0.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * + * Copyright Vasil Dinkov, Vadikom Web Ltd. + * http://vadikom.com + * + * Licensed MIT + */ + +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery', 'smartmenus'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + // CommonJS + module.exports = factory(require('jquery')); + } else { + // Global jQuery + factory(jQuery); + } +} (function($) { + + $.extend($.SmartMenus.Bootstrap = {}, { + keydownFix: false, + init: function() { + // init all navbars that don't have the "data-sm-skip" attribute set + var $navbars = $('ul.navbar-nav:not([data-sm-skip])'); + $navbars.each(function() { + var $this = $(this), + obj = $this.data('smartmenus'); + // if this navbar is not initialized + if (!obj) { + var skipBehavior = $this.is('[data-sm-skip-collapsible-behavior]'), + rightAligned = $this.hasClass('ml-auto') || $this.prevAll('.mr-auto').length > 0; + + $this.smartmenus({ + // these are some good default options that should work for all + subMenusSubOffsetX: 2, + subMenusSubOffsetY: -9, + subIndicators: !skipBehavior, + collapsibleShowFunction: null, + collapsibleHideFunction: null, + rightToLeftSubMenus: rightAligned, + bottomToTopSubMenus: $this.closest('.fixed-bottom').length > 0, + // custom option(s) for the Bootstrap 4 addon + bootstrapHighlightClasses: 'text-dark bg-light' + }) + .on({ + // set/unset proper Bootstrap classes for some menu elements + 'show.smapi': function(e, menu) { + var $menu = $(menu), + $scrollArrows = $menu.dataSM('scroll-arrows'); + if ($scrollArrows) { + $scrollArrows.css('background-color', $menu.css('background-color')); + } + $menu.parent().addClass('show'); + if (obj.opts.keepHighlighted && $menu.dataSM('level') > 2) { + $menu.prevAll('a').addClass(obj.opts.bootstrapHighlightClasses); + } + }, + 'hide.smapi': function(e, menu) { + var $menu = $(menu); + $menu.parent().removeClass('show'); + if (obj.opts.keepHighlighted && $menu.dataSM('level') > 2) { + $menu.prevAll('a').removeClass(obj.opts.bootstrapHighlightClasses); + } + } + }); + + obj = $this.data('smartmenus'); + + function onInit() { + // set Bootstrap's "active" class to SmartMenus "current" items (should someone decide to enable markCurrentItem: true) + $this.find('a.current').each(function() { + var $this = $(this); + // dropdown items require the class to be set to the A's while for nav items it should be set to the parent LI's + ($this.hasClass('dropdown-item') ? $this : $this.parent()).addClass('active'); + }); + // parent items fixes + $this.find('a.has-submenu').each(function() { + var $this = $(this); + // remove Bootstrap required attributes that might cause conflicting issues with the SmartMenus script + if ($this.is('[data-toggle="dropdown"]')) { + $this.dataSM('bs-data-toggle-dropdown', true).removeAttr('data-toggle'); + } + // remove Bootstrap's carets generating class + if (!skipBehavior && $this.hasClass('dropdown-toggle')) { + $this.dataSM('bs-dropdown-toggle', true).removeClass('dropdown-toggle'); + } + }); + } + + onInit(); + + function onBeforeDestroy() { + $this.find('a.current').each(function() { + var $this = $(this); + ($this.hasClass('active') ? $this : $this.parent()).removeClass('active'); + }); + $this.find('a.has-submenu').each(function() { + var $this = $(this); + if ($this.dataSM('bs-dropdown-toggle')) { + $this.addClass('dropdown-toggle').removeDataSM('bs-dropdown-toggle'); + } + if ($this.dataSM('bs-data-toggle-dropdown')) { + $this.attr('data-toggle', 'dropdown').removeDataSM('bs-data-toggle-dropdown'); + } + }); + } + + // custom "refresh" method for Bootstrap + obj.refresh = function() { + $.SmartMenus.prototype.refresh.call(this); + onInit(); + // update collapsible detection + detectCollapsible(true); + }; + + // custom "destroy" method for Bootstrap + obj.destroy = function(refresh) { + onBeforeDestroy(); + $.SmartMenus.prototype.destroy.call(this, refresh); + }; + + // keep Bootstrap's default behavior (i.e. use the whole item area just as a sub menu toggle) + if (skipBehavior) { + obj.opts.collapsibleBehavior = 'toggle'; + } + + // onresize detect when the navbar becomes collapsible and add it the "sm-collapsible" class + var winW; + function detectCollapsible(force) { + var newW = obj.getViewportWidth(); + if (newW != winW || force) { + if (obj.isCollapsible()) { + $this.addClass('sm-collapsible'); + } else { + $this.removeClass('sm-collapsible'); + } + winW = newW; + } + } + detectCollapsible(); + $(window).on('resize.smartmenus' + obj.rootId, detectCollapsible); + } + }); + // keydown fix for Bootstrap 4 conflict + if ($navbars.length && !$.SmartMenus.Bootstrap.keydownFix) { + // unhook BS keydown handler for all dropdowns + $(document).off('keydown.bs.dropdown.data-api', '.dropdown-menu'); + // restore BS keydown handler for dropdowns that are not inside SmartMenus navbars + // SmartMenus won't add the "show" class so it's handy here + if ($.fn.dropdown && $.fn.dropdown.Constructor) { + $(document).on('keydown.bs.dropdown.data-api', '.dropdown-menu.show', $.fn.dropdown.Constructor._dataApiKeydownHandler); + } + $.SmartMenus.Bootstrap.keydownFix = true; + } + } + }); + + // init ondomready + $($.SmartMenus.Bootstrap.init); + + return $; +})); diff --git a/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.min.js b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.min.js new file mode 100644 index 0000000..504940f --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap-4/jquery.smartmenus.bootstrap-4.min.js @@ -0,0 +1,3 @@ +/*! SmartMenus jQuery Plugin Bootstrap 4 Addon - v0.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery","smartmenus"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function(t){return t.extend(t.SmartMenus.Bootstrap={},{keydownFix:!1,init:function(){var e=t("ul.navbar-nav:not([data-sm-skip])");e.each(function(){function e(){o.find("a.current").each(function(){var e=t(this);(e.hasClass("dropdown-item")?e:e.parent()).addClass("active")}),o.find("a.has-submenu").each(function(){var e=t(this);e.is('[data-toggle="dropdown"]')&&e.dataSM("bs-data-toggle-dropdown",!0).removeAttr("data-toggle"),!n&&e.hasClass("dropdown-toggle")&&e.dataSM("bs-dropdown-toggle",!0).removeClass("dropdown-toggle")})}function s(){o.find("a.current").each(function(){var e=t(this);(e.hasClass("active")?e:e.parent()).removeClass("active")}),o.find("a.has-submenu").each(function(){var e=t(this);e.dataSM("bs-dropdown-toggle")&&e.addClass("dropdown-toggle").removeDataSM("bs-dropdown-toggle"),e.dataSM("bs-data-toggle-dropdown")&&e.attr("data-toggle","dropdown").removeDataSM("bs-data-toggle-dropdown")})}function i(t){var e=a.getViewportWidth();(e!=u||t)&&(a.isCollapsible()?o.addClass("sm-collapsible"):o.removeClass("sm-collapsible"),u=e)}var o=t(this),a=o.data("smartmenus");if(!a){var n=o.is("[data-sm-skip-collapsible-behavior]"),r=o.hasClass("ml-auto")||o.prevAll(".mr-auto").length>0;o.smartmenus({subMenusSubOffsetX:2,subMenusSubOffsetY:-9,subIndicators:!n,collapsibleShowFunction:null,collapsibleHideFunction:null,rightToLeftSubMenus:r,bottomToTopSubMenus:o.closest(".fixed-bottom").length>0,bootstrapHighlightClasses:"text-dark bg-light"}).on({"show.smapi":function(e,s){var i=t(s),o=i.dataSM("scroll-arrows");o&&o.css("background-color",i.css("background-color")),i.parent().addClass("show"),a.opts.keepHighlighted&&i.dataSM("level")>2&&i.prevAll("a").addClass(a.opts.bootstrapHighlightClasses)},"hide.smapi":function(e,s){var i=t(s);i.parent().removeClass("show"),a.opts.keepHighlighted&&i.dataSM("level")>2&&i.prevAll("a").removeClass(a.opts.bootstrapHighlightClasses)}}),a=o.data("smartmenus"),e(),a.refresh=function(){t.SmartMenus.prototype.refresh.call(this),e(),i(!0)},a.destroy=function(e){s(),t.SmartMenus.prototype.destroy.call(this,e)},n&&(a.opts.collapsibleBehavior="toggle");var u;i(),t(window).on("resize.smartmenus"+a.rootId,i)}}),e.length&&!t.SmartMenus.Bootstrap.keydownFix&&(t(document).off("keydown.bs.dropdown.data-api",".dropdown-menu"),t.fn.dropdown&&t.fn.dropdown.Constructor&&t(document).on("keydown.bs.dropdown.data-api",".dropdown-menu.show",t.fn.dropdown.Constructor._dataApiKeydownHandler),t.SmartMenus.Bootstrap.keydownFix=!0)}}),t(t.SmartMenus.Bootstrap.init),t}); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.css b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.css new file mode 100644 index 0000000..8407ce1 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.css @@ -0,0 +1,122 @@ +/* + You probably do not need to edit this at all. + + Add some SmartMenus required styles not covered in Bootstrap 3's default CSS. + These are theme independent and should work with any Bootstrap 3 theme mod. +*/ +/* sub menus arrows on desktop */ +.navbar-nav:not(.sm-collapsible) ul .caret { + position: absolute; + right: 0; + margin-top: 6px; + margin-right: 15px; + border-top: 4px solid transparent; + border-bottom: 4px solid transparent; + border-left: 4px dashed; +} +.navbar-nav:not(.sm-collapsible) ul a.has-submenu { + padding-right: 30px; +} +/* make sub menu arrows look like +/- buttons in collapsible mode */ +.navbar-nav.sm-collapsible .caret, .navbar-nav.sm-collapsible ul .caret { + position: absolute; + right: 0; + margin: -3px 15px 0 0; + padding: 0; + width: 32px; + height: 26px; + line-height: 24px; + text-align: center; + border-width: 1px; + border-style: solid; +} +.navbar-nav.sm-collapsible .caret:before { + content: '+'; + font-family: monospace; + font-weight: bold; +} +.navbar-nav.sm-collapsible .open > a > .caret:before { + content: '-'; +} +.navbar-nav.sm-collapsible a.has-submenu { + padding-right: 50px; +} +/* revert to Bootstrap's default carets in collapsible mode when the "data-sm-skip-collapsible-behavior" attribute is set to the ul.navbar-nav */ +.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] .caret, .navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] ul .caret { + position: static; + margin: 0 0 0 2px; + padding: 0; + width: 0; + height: 0; + border-top: 4px dashed; + border-right: 4px solid transparent; + border-bottom: 0; + border-left: 4px solid transparent; +} +.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] .caret:before { + content: '' !important; +} +.navbar-nav.sm-collapsible[data-sm-skip-collapsible-behavior] a.has-submenu { + padding-right: 15px; +} +/* scrolling arrows for tall menus */ +.navbar-nav span.scroll-up, .navbar-nav span.scroll-down { + position: absolute; + display: none; + visibility: hidden; + height: 20px; + overflow: hidden; + text-align: center; +} +.navbar-nav span.scroll-up-arrow, .navbar-nav span.scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-top: 7px dashed transparent; + border-right: 7px dashed transparent; + border-bottom: 7px solid; + border-left: 7px dashed transparent; +} +.navbar-nav span.scroll-down-arrow { + top: 6px; + border-top: 7px solid; + border-right: 7px dashed transparent; + border-bottom: 7px dashed transparent; + border-left: 7px dashed transparent; +} +/* add more indentation for 2+ level sub in collapsible mode - Bootstrap normally supports just 1 level sub menus */ +.navbar-nav.sm-collapsible ul .dropdown-menu > li > a, +.navbar-nav.sm-collapsible ul .dropdown-menu .dropdown-header { + padding-left: 35px; +} +.navbar-nav.sm-collapsible ul ul .dropdown-menu > li > a, +.navbar-nav.sm-collapsible ul ul .dropdown-menu .dropdown-header { + padding-left: 45px; +} +.navbar-nav.sm-collapsible ul ul ul .dropdown-menu > li > a, +.navbar-nav.sm-collapsible ul ul ul .dropdown-menu .dropdown-header { + padding-left: 55px; +} +.navbar-nav.sm-collapsible ul ul ul ul .dropdown-menu > li > a, +.navbar-nav.sm-collapsible ul ul ul ul .dropdown-menu .dropdown-header { + padding-left: 65px; +} +/* fix SmartMenus sub menus auto width (subMenusMinWidth and subMenusMaxWidth options) */ +.navbar-nav .dropdown-menu > li > a { + white-space: normal; +} +.navbar-nav ul.sm-nowrap > li > a { + white-space: nowrap; +} +.navbar-nav.sm-collapsible ul.sm-nowrap > li > a { + white-space: normal; +} +/* fix .navbar-right subs alignment */ +.navbar-right ul.dropdown-menu { + left: 0; + right: auto; +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.js b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.js new file mode 100644 index 0000000..c3381d6 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.js @@ -0,0 +1,159 @@ +/*! + * SmartMenus jQuery Plugin Bootstrap Addon - v0.4.1 - September 17, 2017 + * http://www.smartmenus.org/ + * + * Copyright Vasil Dinkov, Vadikom Web Ltd. + * http://vadikom.com + * + * Licensed MIT + */ + +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery', 'smartmenus'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + // CommonJS + module.exports = factory(require('jquery')); + } else { + // Global jQuery + factory(jQuery); + } +} (function($) { + + $.extend($.SmartMenus.Bootstrap = {}, { + keydownFix: false, + init: function() { + // init all navbars that don't have the "data-sm-skip" attribute set + var $navbars = $('ul.navbar-nav:not([data-sm-skip])'); + $navbars.each(function() { + var $this = $(this), + obj = $this.data('smartmenus'); + // if this navbar is not initialized + if (!obj) { + $this.smartmenus({ + // these are some good default options that should work for all + subMenusSubOffsetX: 2, + subMenusSubOffsetY: -6, + subIndicators: false, + collapsibleShowFunction: null, + collapsibleHideFunction: null, + rightToLeftSubMenus: $this.hasClass('navbar-right'), + bottomToTopSubMenus: $this.closest('.navbar').hasClass('navbar-fixed-bottom') + }) + .on({ + // set/unset proper Bootstrap classes for some menu elements + 'show.smapi': function(e, menu) { + var $menu = $(menu), + $scrollArrows = $menu.dataSM('scroll-arrows'); + if ($scrollArrows) { + // they inherit border-color from body, so we can use its background-color too + $scrollArrows.css('background-color', $(document.body).css('background-color')); + } + $menu.parent().addClass('open'); + }, + 'hide.smapi': function(e, menu) { + $(menu).parent().removeClass('open'); + } + }); + + function onInit() { + // set Bootstrap's "active" class to SmartMenus "current" items (should someone decide to enable markCurrentItem: true) + $this.find('a.current').parent().addClass('active'); + // remove any Bootstrap required attributes that might cause conflicting issues with the SmartMenus script + $this.find('a.has-submenu').each(function() { + var $this = $(this); + if ($this.is('[data-toggle="dropdown"]')) { + $this.dataSM('bs-data-toggle-dropdown', true).removeAttr('data-toggle'); + } + if ($this.is('[role="button"]')) { + $this.dataSM('bs-role-button', true).removeAttr('role'); + } + }); + } + + onInit(); + + function onBeforeDestroy() { + $this.find('a.current').parent().removeClass('active'); + $this.find('a.has-submenu').each(function() { + var $this = $(this); + if ($this.dataSM('bs-data-toggle-dropdown')) { + $this.attr('data-toggle', 'dropdown').removeDataSM('bs-data-toggle-dropdown'); + } + if ($this.dataSM('bs-role-button')) { + $this.attr('role', 'button').removeDataSM('bs-role-button'); + } + }); + } + + obj = $this.data('smartmenus'); + + // custom "isCollapsible" method for Bootstrap + obj.isCollapsible = function() { + return !/^(left|right)$/.test(this.$firstLink.parent().css('float')) && this.$root.css('display') == 'block'; + }; + + // custom "refresh" method for Bootstrap + obj.refresh = function() { + $.SmartMenus.prototype.refresh.call(this); + onInit(); + // update collapsible detection + detectCollapsible(true); + }; + + // custom "destroy" method for Bootstrap + obj.destroy = function(refresh) { + onBeforeDestroy(); + $.SmartMenus.prototype.destroy.call(this, refresh); + }; + + // keep Bootstrap's default behavior for parent items when the "data-sm-skip-collapsible-behavior" attribute is set to the ul.navbar-nav + // i.e. use the whole item area just as a sub menu toggle and don't customize the carets + if ($this.is('[data-sm-skip-collapsible-behavior]')) { + obj.opts.collapsibleBehavior = 'toggle'; + } + + // onresize detect when the navbar becomes collapsible and add it the "sm-collapsible" class + var winW; + function detectCollapsible(force) { + var newW = obj.getViewportWidth(); + if (newW != winW || force) { + var $carets = $this.find('.caret'); + if (obj.isCollapsible()) { + $this.addClass('sm-collapsible'); + // set "navbar-toggle" class to carets (so they look like a button) if the "data-sm-skip-collapsible-behavior" attribute is not set to the ul.navbar-nav + if (!$this.is('[data-sm-skip-collapsible-behavior]')) { + $carets.addClass('navbar-toggle sub-arrow'); + } + } else { + $this.removeClass('sm-collapsible'); + if (!$this.is('[data-sm-skip-collapsible-behavior]')) { + $carets.removeClass('navbar-toggle sub-arrow'); + } + } + winW = newW; + } + } + detectCollapsible(); + $(window).on('resize.smartmenus' + obj.rootId, detectCollapsible); + } + }); + // keydown fix for Bootstrap 3.3.5+ conflict + if ($navbars.length && !$.SmartMenus.Bootstrap.keydownFix) { + // unhook BS keydown handler for all dropdowns + $(document).off('keydown.bs.dropdown.data-api', '.dropdown-menu'); + // restore BS keydown handler for dropdowns that are not inside SmartMenus navbars + if ($.fn.dropdown && $.fn.dropdown.Constructor) { + $(document).on('keydown.bs.dropdown.data-api', '.dropdown-menu:not([id^="sm-"])', $.fn.dropdown.Constructor.prototype.keydown); + } + $.SmartMenus.Bootstrap.keydownFix = true; + } + } + }); + + // init ondomready + $($.SmartMenus.Bootstrap.init); + + return $; +})); diff --git a/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.min.js b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.min.js new file mode 100644 index 0000000..3cad4e3 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/addons/bootstrap/jquery.smartmenus.bootstrap.min.js @@ -0,0 +1,3 @@ +/*! SmartMenus jQuery Plugin Bootstrap Addon - v0.4.1 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery","smartmenus"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function(t){return t.extend(t.SmartMenus.Bootstrap={},{keydownFix:!1,init:function(){var e=t("ul.navbar-nav:not([data-sm-skip])");e.each(function(){function e(){o.find("a.current").parent().addClass("active"),o.find("a.has-submenu").each(function(){var e=t(this);e.is('[data-toggle="dropdown"]')&&e.dataSM("bs-data-toggle-dropdown",!0).removeAttr("data-toggle"),e.is('[role="button"]')&&e.dataSM("bs-role-button",!0).removeAttr("role")})}function s(){o.find("a.current").parent().removeClass("active"),o.find("a.has-submenu").each(function(){var e=t(this);e.dataSM("bs-data-toggle-dropdown")&&e.attr("data-toggle","dropdown").removeDataSM("bs-data-toggle-dropdown"),e.dataSM("bs-role-button")&&e.attr("role","button").removeDataSM("bs-role-button")})}function i(t){var e=a.getViewportWidth();if(e!=n||t){var s=o.find(".caret");a.isCollapsible()?(o.addClass("sm-collapsible"),o.is("[data-sm-skip-collapsible-behavior]")||s.addClass("navbar-toggle sub-arrow")):(o.removeClass("sm-collapsible"),o.is("[data-sm-skip-collapsible-behavior]")||s.removeClass("navbar-toggle sub-arrow")),n=e}}var o=t(this),a=o.data("smartmenus");if(!a){o.smartmenus({subMenusSubOffsetX:2,subMenusSubOffsetY:-6,subIndicators:!1,collapsibleShowFunction:null,collapsibleHideFunction:null,rightToLeftSubMenus:o.hasClass("navbar-right"),bottomToTopSubMenus:o.closest(".navbar").hasClass("navbar-fixed-bottom")}).on({"show.smapi":function(e,s){var i=t(s),o=i.dataSM("scroll-arrows");o&&o.css("background-color",t(document.body).css("background-color")),i.parent().addClass("open")},"hide.smapi":function(e,s){t(s).parent().removeClass("open")}}),e(),a=o.data("smartmenus"),a.isCollapsible=function(){return!/^(left|right)$/.test(this.$firstLink.parent().css("float"))&&"block"==this.$root.css("display")},a.refresh=function(){t.SmartMenus.prototype.refresh.call(this),e(),i(!0)},a.destroy=function(e){s(),t.SmartMenus.prototype.destroy.call(this,e)},o.is("[data-sm-skip-collapsible-behavior]")&&(a.opts.collapsibleBehavior="toggle");var n;i(),t(window).on("resize.smartmenus"+a.rootId,i)}}),e.length&&!t.SmartMenus.Bootstrap.keydownFix&&(t(document).off("keydown.bs.dropdown.data-api",".dropdown-menu"),t.fn.dropdown&&t.fn.dropdown.Constructor&&t(document).on("keydown.bs.dropdown.data-api",'.dropdown-menu:not([id^="sm-"])',t.fn.dropdown.Constructor.prototype.keydown),t.SmartMenus.Bootstrap.keydownFix=!0)}}),t(t.SmartMenus.Bootstrap.init),t}); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/addons/keyboard/jquery.smartmenus.keyboard.js b/frontend/web/themes/sport/plugins/smartmenus/addons/keyboard/jquery.smartmenus.keyboard.js new file mode 100644 index 0000000..03d7098 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/addons/keyboard/jquery.smartmenus.keyboard.js @@ -0,0 +1,215 @@ +/*! + * SmartMenus jQuery Plugin Keyboard Addon - v0.4.0 - September 17, 2017 + * http://www.smartmenus.org/ + * + * Copyright Vasil Dinkov, Vadikom Web Ltd. + * http://vadikom.com + * + * Licensed MIT + */ + +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery', 'smartmenus'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + // CommonJS + module.exports = factory(require('jquery')); + } else { + // Global jQuery + factory(jQuery); + } +} (function($) { + + function getFirstItemLink($ul) { + // make sure we also allow the link to be nested deeper inside the LI's (e.g. in a heading) + return $ul.find('> li > a:not(.disabled), > li > :not(ul) a:not(.disabled)').eq(0); + } + function getLastItemLink($ul) { + return $ul.find('> li > a:not(.disabled), > li > :not(ul) a:not(.disabled)').eq(-1); + } + function getNextItemLink($li, noLoop) { + var $a = $li.nextAll('li').find('> a:not(.disabled), > :not(ul) a:not(.disabled)').eq(0); + return noLoop || $a.length ? $a : getFirstItemLink($li.parent()); + } + function getPreviousItemLink($li, noLoop) { + // bug workaround: elements are returned in reverse order just in jQuery 1.8.x + var $a = $li.prevAll('li').find('> a:not(.disabled), > :not(ul) a:not(.disabled)').eq(/^1\.8\./.test($.fn.jquery) ? 0 : -1); + return noLoop || $a.length ? $a : getLastItemLink($li.parent()); + } + + // jQuery's .focus() is unreliable in some versions, so we're going to call the links' native JS focus method + $.fn.focusSM = function() { + if (this.length && this[0].focus) { + this[0].focus(); + } + return this; + }; + + $.extend($.SmartMenus.Keyboard = {}, { + docKeydown: function(e) { + var keyCode = e.keyCode; + if (!/^(37|38|39|40)$/.test(keyCode)) { + return; + } + var $root = $(this), + obj = $root.data('smartmenus'), + $target = $(e.target); + // exit if this is an A inside a mega drop-down + if (!obj || !$target.is('a') || !obj.handleItemEvents($target)) { + return; + } + var $li = $target.closest('li'), + $ul = $li.parent(), + level = $ul.dataSM('level'); + // swap left & right keys + if ($root.hasClass('sm-rtl')) { + if (keyCode == 37) { + keyCode = 39; + } else if (keyCode == 39) { + keyCode = 37; + } + } + switch (keyCode) { + case 37: // Left + if (obj.isCollapsible()) { + break; + } + if (level > 2 || level == 2 && $root.hasClass('sm-vertical')) { + obj.activatedItems[level - 2].focusSM(); + // move to previous non-disabled parent item (make sure we cycle so it might be the last item) + } else if (!$root.hasClass('sm-vertical')) { + getPreviousItemLink((obj.activatedItems[0] || $target).closest('li')).focusSM(); + } + break; + case 38: // Up + if (obj.isCollapsible()) { + var $firstItem; + // if this is the first item of a sub menu, move to the parent item + if (level > 1 && ($firstItem = getFirstItemLink($ul)).length && $target[0] == $firstItem[0]) { + obj.activatedItems[level - 2].focusSM(); + } else { + getPreviousItemLink($li).focusSM(); + } + } else { + if (level == 1 && !$root.hasClass('sm-vertical') && obj.opts.bottomToTopSubMenus) { + if (!obj.activatedItems[0] && $target.dataSM('sub')) { + if (obj.opts.showOnClick) { + obj.clickActivated = true; + } + obj.itemActivate($target); + if ($target.dataSM('sub').is(':visible')) { + obj.focusActivated = true; + } + } + if (obj.activatedItems[0] && obj.activatedItems[0].dataSM('sub') && obj.activatedItems[0].dataSM('sub').is(':visible') && !obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')) { + getLastItemLink(obj.activatedItems[0].dataSM('sub')).focusSM(); + } + } else if (level > 1 || $root.hasClass('sm-vertical')) { + getPreviousItemLink($li).focusSM(); + } + } + break; + case 39: // Right + if (obj.isCollapsible()) { + break; + } + if (level == 1 && $root.hasClass('sm-vertical')) { + if (!obj.activatedItems[0] && $target.dataSM('sub')) { + if (obj.opts.showOnClick) { + obj.clickActivated = true; + } + obj.itemActivate($target); + if ($target.dataSM('sub').is(':visible')) { + obj.focusActivated = true; + } + } + if (obj.activatedItems[0] && obj.activatedItems[0].dataSM('sub') && obj.activatedItems[0].dataSM('sub').is(':visible') && !obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')) { + getFirstItemLink(obj.activatedItems[0].dataSM('sub')).focusSM(); + } + // move to next non-disabled parent item (make sure we cycle so it might be the last item) + } else if ((level == 1 || obj.activatedItems[level - 1] && (!obj.activatedItems[level - 1].dataSM('sub') || !obj.activatedItems[level - 1].dataSM('sub').is(':visible') || obj.activatedItems[level - 1].dataSM('sub').hasClass('mega-menu'))) && !$root.hasClass('sm-vertical')) { + getNextItemLink((obj.activatedItems[0] || $target).closest('li')).focusSM(); + } else if (obj.activatedItems[level - 1] && obj.activatedItems[level - 1].dataSM('sub') && obj.activatedItems[level - 1].dataSM('sub').is(':visible') && !obj.activatedItems[level - 1].dataSM('sub').hasClass('mega-menu')) { + getFirstItemLink(obj.activatedItems[level - 1].dataSM('sub')).focusSM(); + } + break; + case 40: // Down + if (obj.isCollapsible()) { + var $firstSubItem, + $lastItem; + // move to sub menu if appropriate + if (obj.activatedItems[level - 1] && obj.activatedItems[level - 1].dataSM('sub') && obj.activatedItems[level - 1].dataSM('sub').is(':visible') && !obj.activatedItems[level - 1].dataSM('sub').hasClass('mega-menu') && ($firstSubItem = getFirstItemLink(obj.activatedItems[level - 1].dataSM('sub'))).length) { + $firstSubItem.focusSM(); + // if this is the last item of a sub menu, move to the next parent item + } else if (level > 1 && ($lastItem = getLastItemLink($ul)).length && $target[0] == $lastItem[0]) { + var $parentItem = obj.activatedItems[level - 2].closest('li'), + $nextParentItem = null; + while ($parentItem.is('li') && !($nextParentItem = getNextItemLink($parentItem, true)).length) { + $parentItem = $parentItem.parent().parent(); + } + if ($nextParentItem.length) { + $nextParentItem.focusSM(); + } else { + getFirstItemLink($root).focusSM(); + } + } else { + getNextItemLink($li).focusSM(); + } + } else { + if (level == 1 && !$root.hasClass('sm-vertical') && !obj.opts.bottomToTopSubMenus) { + if (!obj.activatedItems[0] && $target.dataSM('sub')) { + if (obj.opts.showOnClick) { + obj.clickActivated = true; + } + obj.itemActivate($target); + if ($target.dataSM('sub').is(':visible')) { + obj.focusActivated = true; + } + } + if (obj.activatedItems[0] && obj.activatedItems[0].dataSM('sub') && obj.activatedItems[0].dataSM('sub').is(':visible') && !obj.activatedItems[0].dataSM('sub').hasClass('mega-menu')) { + getFirstItemLink(obj.activatedItems[0].dataSM('sub')).focusSM(); + } + } else if (level > 1 || $root.hasClass('sm-vertical')) { + getNextItemLink($li).focusSM(); + } + } + break; + } + e.stopPropagation(); + e.preventDefault(); + } + }); + + // hook it + $(document).on('keydown.smartmenus', 'ul.sm, ul.navbar-nav:not([data-sm-skip])', $.SmartMenus.Keyboard.docKeydown); + + $.extend($.SmartMenus.prototype, { + keyboardSetHotkey: function(keyCode, modifiers) { + var self = this; + $(document).on('keydown.smartmenus' + this.rootId, function(e) { + if (keyCode == e.keyCode) { + var procede = true; + if (modifiers) { + if (typeof modifiers == 'string') { + modifiers = [modifiers]; + } + $.each(['ctrlKey', 'shiftKey', 'altKey', 'metaKey'], function(index, value) { + if ($.inArray(value, modifiers) >= 0 && !e[value] || $.inArray(value, modifiers) < 0 && e[value]) { + procede = false; + return false; + } + }); + } + if (procede) { + getFirstItemLink(self.$root).focusSM(); + e.stopPropagation(); + e.preventDefault(); + } + } + }); + } + }); + + return $; +})); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/addons/keyboard/jquery.smartmenus.keyboard.min.js b/frontend/web/themes/sport/plugins/smartmenus/addons/keyboard/jquery.smartmenus.keyboard.min.js new file mode 100644 index 0000000..70edbf1 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/addons/keyboard/jquery.smartmenus.keyboard.min.js @@ -0,0 +1,3 @@ +/*! SmartMenus jQuery Plugin Keyboard Addon - v0.4.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery","smartmenus"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function(t){function e(t){return t.find("> li > a:not(.disabled), > li > :not(ul) a:not(.disabled)").eq(0)}function s(t){return t.find("> li > a:not(.disabled), > li > :not(ul) a:not(.disabled)").eq(-1)}function i(t,s){var i=t.nextAll("li").find("> a:not(.disabled), > :not(ul) a:not(.disabled)").eq(0);return s||i.length?i:e(t.parent())}function o(e,i){var o=e.prevAll("li").find("> a:not(.disabled), > :not(ul) a:not(.disabled)").eq(/^1\.8\./.test(t.fn.jquery)?0:-1);return i||o.length?o:s(e.parent())}return t.fn.focusSM=function(){return this.length&&this[0].focus&&this[0].focus(),this},t.extend(t.SmartMenus.Keyboard={},{docKeydown:function(a){var n=a.keyCode;if(/^(37|38|39|40)$/.test(n)){var r=t(this),u=r.data("smartmenus"),h=t(a.target);if(u&&h.is("a")&&u.handleItemEvents(h)){var l=h.closest("li"),c=l.parent(),d=c.dataSM("level");switch(r.hasClass("sm-rtl")&&(37==n?n=39:39==n&&(n=37)),n){case 37:if(u.isCollapsible())break;d>2||2==d&&r.hasClass("sm-vertical")?u.activatedItems[d-2].focusSM():r.hasClass("sm-vertical")||o((u.activatedItems[0]||h).closest("li")).focusSM();break;case 38:if(u.isCollapsible()){var m;d>1&&(m=e(c)).length&&h[0]==m[0]?u.activatedItems[d-2].focusSM():o(l).focusSM()}else 1==d&&!r.hasClass("sm-vertical")&&u.opts.bottomToTopSubMenus?(!u.activatedItems[0]&&h.dataSM("sub")&&(u.opts.showOnClick&&(u.clickActivated=!0),u.itemActivate(h),h.dataSM("sub").is(":visible")&&(u.focusActivated=!0)),u.activatedItems[0]&&u.activatedItems[0].dataSM("sub")&&u.activatedItems[0].dataSM("sub").is(":visible")&&!u.activatedItems[0].dataSM("sub").hasClass("mega-menu")&&s(u.activatedItems[0].dataSM("sub")).focusSM()):(d>1||r.hasClass("sm-vertical"))&&o(l).focusSM();break;case 39:if(u.isCollapsible())break;1==d&&r.hasClass("sm-vertical")?(!u.activatedItems[0]&&h.dataSM("sub")&&(u.opts.showOnClick&&(u.clickActivated=!0),u.itemActivate(h),h.dataSM("sub").is(":visible")&&(u.focusActivated=!0)),u.activatedItems[0]&&u.activatedItems[0].dataSM("sub")&&u.activatedItems[0].dataSM("sub").is(":visible")&&!u.activatedItems[0].dataSM("sub").hasClass("mega-menu")&&e(u.activatedItems[0].dataSM("sub")).focusSM()):1!=d&&(!u.activatedItems[d-1]||u.activatedItems[d-1].dataSM("sub")&&u.activatedItems[d-1].dataSM("sub").is(":visible")&&!u.activatedItems[d-1].dataSM("sub").hasClass("mega-menu"))||r.hasClass("sm-vertical")?u.activatedItems[d-1]&&u.activatedItems[d-1].dataSM("sub")&&u.activatedItems[d-1].dataSM("sub").is(":visible")&&!u.activatedItems[d-1].dataSM("sub").hasClass("mega-menu")&&e(u.activatedItems[d-1].dataSM("sub")).focusSM():i((u.activatedItems[0]||h).closest("li")).focusSM();break;case 40:if(u.isCollapsible()){var p,f;if(u.activatedItems[d-1]&&u.activatedItems[d-1].dataSM("sub")&&u.activatedItems[d-1].dataSM("sub").is(":visible")&&!u.activatedItems[d-1].dataSM("sub").hasClass("mega-menu")&&(p=e(u.activatedItems[d-1].dataSM("sub"))).length)p.focusSM();else if(d>1&&(f=s(c)).length&&h[0]==f[0]){for(var v=u.activatedItems[d-2].closest("li"),b=null;v.is("li")&&!(b=i(v,!0)).length;)v=v.parent().parent();b.length?b.focusSM():e(r).focusSM()}else i(l).focusSM()}else 1!=d||r.hasClass("sm-vertical")||u.opts.bottomToTopSubMenus?(d>1||r.hasClass("sm-vertical"))&&i(l).focusSM():(!u.activatedItems[0]&&h.dataSM("sub")&&(u.opts.showOnClick&&(u.clickActivated=!0),u.itemActivate(h),h.dataSM("sub").is(":visible")&&(u.focusActivated=!0)),u.activatedItems[0]&&u.activatedItems[0].dataSM("sub")&&u.activatedItems[0].dataSM("sub").is(":visible")&&!u.activatedItems[0].dataSM("sub").hasClass("mega-menu")&&e(u.activatedItems[0].dataSM("sub")).focusSM())}a.stopPropagation(),a.preventDefault()}}}}),t(document).on("keydown.smartmenus","ul.sm, ul.navbar-nav:not([data-sm-skip])",t.SmartMenus.Keyboard.docKeydown),t.extend(t.SmartMenus.prototype,{keyboardSetHotkey:function(s,i){var o=this;t(document).on("keydown.smartmenus"+this.rootId,function(a){if(s==a.keyCode){var n=!0;i&&("string"==typeof i&&(i=[i]),t.each(["ctrlKey","shiftKey","altKey","metaKey"],function(e,s){return t.inArray(s,i)>=0&&!a[s]||0>t.inArray(s,i)&&a[s]?(n=!1,!1):void 0})),n&&(e(o.$root).focusSM(),a.stopPropagation(),a.preventDefault())}})}}),t}); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-blue.css b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-blue.css new file mode 100644 index 0000000..d21a3ca --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-blue.css @@ -0,0 +1,268 @@ +@import url(https://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700); +.sm-blue { + background: transparent; + border-radius: 8px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); } + .sm-blue a, .sm-blue a:hover, .sm-blue a:focus, .sm-blue a:active { + padding: 10px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + color: #fff; + font-family: "PT Sans Narrow", "Arial Narrow", Arial, Helvetica, sans-serif; + font-size: 18px; + font-weight: bold; + line-height: 23px; + text-decoration: none; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); } + .sm-blue a.current { + background: #006892; + background-image: linear-gradient(to bottom, #006188, #006f9c); + color: #fff; } + .sm-blue a.disabled { + color: #a1d1e8; } + .sm-blue a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 16px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(0, 0, 0, 0.1); + border-radius: 4px; } + .sm-blue a .sub-arrow::before { + content: '+'; } + .sm-blue a.highlighted .sub-arrow::before { + content: '-'; } + .sm-blue > li:first-child > a, .sm-blue > li:first-child > :not(ul) a { + border-radius: 8px 8px 0 0; } + .sm-blue > li:last-child > a, .sm-blue > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul, .sm-blue > li:last-child > ul > li:last-child > a, .sm-blue > li:last-child > ul > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul > li:last-child > ul, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul { + border-radius: 0 0 8px 8px; } + .sm-blue > li:last-child > a.highlighted, .sm-blue > li:last-child > *:not(ul) a.highlighted, .sm-blue > li:last-child > ul > li:last-child > a.highlighted, .sm-blue > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted { + border-radius: 0; } + .sm-blue ul { + background: #fff; } + .sm-blue ul ul { + background: rgba(102, 102, 102, 0.1); } + .sm-blue ul a, .sm-blue ul a:hover, .sm-blue ul a:focus, .sm-blue ul a:active { + background: transparent; + color: #2b82ac; + font-size: 16px; + text-shadow: none; + border-left: 8px solid transparent; } + .sm-blue ul a.current { + background: #006892; + background-image: linear-gradient(to bottom, #006188, #006f9c); + color: #fff; } + .sm-blue ul a.disabled { + color: #b3b3b3; } + .sm-blue ul ul a, + .sm-blue ul ul a:hover, + .sm-blue ul ul a:focus, + .sm-blue ul ul a:active { + border-left: 16px solid transparent; } + .sm-blue ul ul ul a, + .sm-blue ul ul ul a:hover, + .sm-blue ul ul ul a:focus, + .sm-blue ul ul ul a:active { + border-left: 24px solid transparent; } + .sm-blue ul ul ul ul a, + .sm-blue ul ul ul ul a:hover, + .sm-blue ul ul ul ul a:focus, + .sm-blue ul ul ul ul a:active { + border-left: 32px solid transparent; } + .sm-blue ul ul ul ul ul a, + .sm-blue ul ul ul ul ul a:hover, + .sm-blue ul ul ul ul ul a:focus, + .sm-blue ul ul ul ul ul a:active { + border-left: 40px solid transparent; } + .sm-blue ul li { + border-top: 1px solid rgba(0, 0, 0, 0.05); } + .sm-blue ul li:first-child { + border-top: 0; } + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-blue ul { + position: absolute; + width: 12em; } + + .sm-blue li { + float: left; } + + .sm-blue.sm-rtl li { + float: right; } + + .sm-blue ul li, .sm-blue.sm-rtl ul li, .sm-blue.sm-vertical li { + float: none; } + + .sm-blue a { + white-space: nowrap; } + + .sm-blue ul a, .sm-blue.sm-vertical a { + white-space: normal; } + + .sm-blue .sm-nowrap > li > a, .sm-blue .sm-nowrap > li > :not(ul) a { + white-space: nowrap; } + + /* ...end */ + .sm-blue { + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + border-radius: 8px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); } + .sm-blue a, .sm-blue a:hover, .sm-blue a:focus, .sm-blue a:active, .sm-blue a.highlighted { + padding: 13px 24px; + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + color: #fff; } + .sm-blue a:hover, .sm-blue a:focus, .sm-blue a:active, .sm-blue a.highlighted { + background: #2b82ac; + background-image: linear-gradient(to bottom, #2d89b4, #297ca3); } + .sm-blue a.current { + background: #006892; + background-image: linear-gradient(to bottom, #006188, #006f9c); + color: #fff; } + .sm-blue a.disabled { + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + color: #a1d1e8; } + .sm-blue a .sub-arrow { + top: auto; + margin-top: 0; + bottom: 2px; + left: 50%; + margin-left: -5px; + right: auto; + width: 0; + height: 0; + border-width: 5px; + border-style: solid dashed dashed dashed; + border-color: #a1d1e8 transparent transparent transparent; + background: transparent; + border-radius: 0; } + .sm-blue a .sub-arrow::before { + display: none; } + .sm-blue > li:first-child > a, .sm-blue > li:first-child > :not(ul) a { + border-radius: 8px 0 0 8px; } + .sm-blue > li:last-child > a, .sm-blue > li:last-child > :not(ul) a { + border-radius: 0 8px 8px 0 !important; } + .sm-blue > li { + border-left: 1px solid #2b82ac; } + .sm-blue > li:first-child { + border-left: 0; } + .sm-blue ul { + border: 1px solid #a8a8a8; + padding: 7px 0; + background: #fff; + border-radius: 0 0 4px 4px !important; + box-shadow: 0 5px 12px rgba(0, 0, 0, 0.2); } + .sm-blue ul ul { + border-radius: 4px !important; + background: #fff; } + .sm-blue ul a, .sm-blue ul a:hover, .sm-blue ul a:focus, .sm-blue ul a:active, .sm-blue ul a.highlighted { + border: 0 !important; + padding: 9px 23px; + background: transparent; + color: #2b82ac; + border-radius: 0 !important; } + .sm-blue ul a:hover, .sm-blue ul a:focus, .sm-blue ul a:active, .sm-blue ul a.highlighted { + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + color: #fff; } + .sm-blue ul a.current { + background: #006892; + background-image: linear-gradient(to bottom, #006188, #006f9c); + color: #fff; } + .sm-blue ul a.disabled { + background: #fff; + color: #b3b3b3; } + .sm-blue ul a .sub-arrow { + top: 50%; + margin-top: -5px; + bottom: auto; + left: auto; + margin-left: 0; + right: 10px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #a1d1e8; } + .sm-blue ul li { + border: 0; } + .sm-blue .scroll-up, + .sm-blue .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #fff; + height: 20px; } + .sm-blue .scroll-up-arrow, + .sm-blue .scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-width: 8px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #2b82ac transparent; } + .sm-blue .scroll-down-arrow { + top: 6px; + border-style: solid dashed dashed dashed; + border-color: #2b82ac transparent transparent transparent; } + .sm-blue.sm-rtl.sm-vertical a .sub-arrow { + right: auto; + left: 10px; + border-style: dashed solid dashed dashed; + border-color: transparent #a1d1e8 transparent transparent; } + .sm-blue.sm-rtl > li:first-child > a, .sm-blue.sm-rtl > li:first-child > :not(ul) a { + border-radius: 0 8px 8px 0; } + .sm-blue.sm-rtl > li:last-child > a, .sm-blue.sm-rtl > li:last-child > :not(ul) a { + border-radius: 8px 0 0 8px !important; } + .sm-blue.sm-rtl > li:first-child { + border-left: 1px solid #2b82ac; } + .sm-blue.sm-rtl > li:last-child { + border-left: 0; } + .sm-blue.sm-rtl ul a .sub-arrow { + right: auto; + left: 10px; + border-style: dashed solid dashed dashed; + border-color: transparent #a1d1e8 transparent transparent; } + .sm-blue.sm-vertical { + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); } + .sm-blue.sm-vertical a { + padding: 9px 23px; } + .sm-blue.sm-vertical a .sub-arrow { + top: 50%; + margin-top: -5px; + bottom: auto; + left: auto; + margin-left: 0; + right: 10px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #a1d1e8; } + .sm-blue.sm-vertical > li:first-child > a, .sm-blue.sm-vertical > li:first-child > :not(ul) a { + border-radius: 8px 8px 0 0; } + .sm-blue.sm-vertical > li:last-child > a, .sm-blue.sm-vertical > li:last-child > :not(ul) a { + border-radius: 0 0 8px 8px !important; } + .sm-blue.sm-vertical > li { + border-left: 0 !important; } + .sm-blue.sm-vertical ul { + border-radius: 4px !important; } + .sm-blue.sm-vertical ul a { + padding: 9px 23px; } } + +/*# sourceMappingURL=sm-blue.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-blue.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-blue.css.map new file mode 100644 index 0000000..c415d3f --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-blue.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../sm-blue/_sm-blue-theme.scss","../sm-blue/mixins/_round-corners-last-item.scss","../sm-blue/mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-blue.css" +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-clean.css b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-clean.css new file mode 100644 index 0000000..ec8164c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-clean.css @@ -0,0 +1,260 @@ +.sm-clean { + background: #eeeeee; + border-radius: 5px; } + .sm-clean a, .sm-clean a:hover, .sm-clean a:focus, .sm-clean a:active { + padding: 13px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + color: #555555; + font-family: "Lucida Sans Unicode", "Lucida Sans", "Lucida Grande", Arial, sans-serif; + font-size: 18px; + font-weight: normal; + line-height: 17px; + text-decoration: none; } + .sm-clean a.current { + color: #D23600; } + .sm-clean a.disabled { + color: #bbbbbb; } + .sm-clean a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 16px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(255, 255, 255, 0.5); + border-radius: 5px; } + .sm-clean a .sub-arrow::before { + content: '+'; } + .sm-clean a.highlighted .sub-arrow::before { + content: '-'; } + .sm-clean > li:first-child > a, .sm-clean > li:first-child > :not(ul) a { + border-radius: 5px 5px 0 0; } + .sm-clean > li:last-child > a, .sm-clean > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul, .sm-clean > li:last-child > ul > li:last-child > a, .sm-clean > li:last-child > ul > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul > li:last-child > ul, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul { + border-radius: 0 0 5px 5px; } + .sm-clean > li:last-child > a.highlighted, .sm-clean > li:last-child > *:not(ul) a.highlighted, .sm-clean > li:last-child > ul > li:last-child > a.highlighted, .sm-clean > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted { + border-radius: 0; } + .sm-clean li { + border-top: 1px solid rgba(0, 0, 0, 0.05); } + .sm-clean > li:first-child { + border-top: 0; } + .sm-clean ul { + background: rgba(162, 162, 162, 0.1); } + .sm-clean ul a, .sm-clean ul a:hover, .sm-clean ul a:focus, .sm-clean ul a:active { + font-size: 16px; + border-left: 8px solid transparent; } + .sm-clean ul ul a, + .sm-clean ul ul a:hover, + .sm-clean ul ul a:focus, + .sm-clean ul ul a:active { + border-left: 16px solid transparent; } + .sm-clean ul ul ul a, + .sm-clean ul ul ul a:hover, + .sm-clean ul ul ul a:focus, + .sm-clean ul ul ul a:active { + border-left: 24px solid transparent; } + .sm-clean ul ul ul ul a, + .sm-clean ul ul ul ul a:hover, + .sm-clean ul ul ul ul a:focus, + .sm-clean ul ul ul ul a:active { + border-left: 32px solid transparent; } + .sm-clean ul ul ul ul ul a, + .sm-clean ul ul ul ul ul a:hover, + .sm-clean ul ul ul ul ul a:focus, + .sm-clean ul ul ul ul ul a:active { + border-left: 40px solid transparent; } + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-clean ul { + position: absolute; + width: 12em; } + + .sm-clean li { + float: left; } + + .sm-clean.sm-rtl li { + float: right; } + + .sm-clean ul li, .sm-clean.sm-rtl ul li, .sm-clean.sm-vertical li { + float: none; } + + .sm-clean a { + white-space: nowrap; } + + .sm-clean ul a, .sm-clean.sm-vertical a { + white-space: normal; } + + .sm-clean .sm-nowrap > li > a, .sm-clean .sm-nowrap > li > :not(ul) a { + white-space: nowrap; } + + /* ...end */ + .sm-clean { + padding: 0 10px; + background: #eeeeee; + border-radius: 100px; } + .sm-clean a, .sm-clean a:hover, .sm-clean a:focus, .sm-clean a:active, .sm-clean a.highlighted { + padding: 12px 12px; + color: #555555; + border-radius: 0 !important; } + .sm-clean a:hover, .sm-clean a:focus, .sm-clean a:active, .sm-clean a.highlighted { + color: #D23600; } + .sm-clean a.current { + color: #D23600; } + .sm-clean a.disabled { + color: #bbbbbb; } + .sm-clean a.has-submenu { + padding-right: 24px; } + .sm-clean a .sub-arrow { + top: 50%; + margin-top: -2px; + right: 12px; + width: 0; + height: 0; + border-width: 4px; + border-style: solid dashed dashed dashed; + border-color: #555555 transparent transparent transparent; + background: transparent; + border-radius: 0; } + .sm-clean a .sub-arrow::before { + display: none; } + .sm-clean li { + border-top: 0; } + .sm-clean > li > ul::before, + .sm-clean > li > ul::after { + content: ''; + position: absolute; + top: -18px; + left: 30px; + width: 0; + height: 0; + overflow: hidden; + border-width: 9px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #bbbbbb transparent; } + .sm-clean > li > ul::after { + top: -16px; + left: 31px; + border-width: 8px; + border-color: transparent transparent #fff transparent; } + .sm-clean ul { + border: 1px solid #bbbbbb; + padding: 5px 0; + background: #fff; + border-radius: 5px !important; + box-shadow: 0 5px 9px rgba(0, 0, 0, 0.2); } + .sm-clean ul a, .sm-clean ul a:hover, .sm-clean ul a:focus, .sm-clean ul a:active, .sm-clean ul a.highlighted { + border: 0 !important; + padding: 10px 20px; + color: #555555; } + .sm-clean ul a:hover, .sm-clean ul a:focus, .sm-clean ul a:active, .sm-clean ul a.highlighted { + background: #eeeeee; + color: #D23600; } + .sm-clean ul a.current { + color: #D23600; } + .sm-clean ul a.disabled { + background: #fff; + color: #cccccc; } + .sm-clean ul a.has-submenu { + padding-right: 20px; } + .sm-clean ul a .sub-arrow { + right: 8px; + top: 50%; + margin-top: -5px; + border-width: 5px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #555555; } + .sm-clean .scroll-up, + .sm-clean .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #fff; + height: 20px; } + .sm-clean .scroll-up:hover, + .sm-clean .scroll-down:hover { + background: #eeeeee; } + .sm-clean .scroll-up:hover .scroll-up-arrow { + border-color: transparent transparent #D23600 transparent; } + .sm-clean .scroll-down:hover .scroll-down-arrow { + border-color: #D23600 transparent transparent transparent; } + .sm-clean .scroll-up-arrow, + .sm-clean .scroll-down-arrow { + position: absolute; + top: 0; + left: 50%; + margin-left: -6px; + width: 0; + height: 0; + overflow: hidden; + border-width: 6px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #555555 transparent; } + .sm-clean .scroll-down-arrow { + top: 8px; + border-style: solid dashed dashed dashed; + border-color: #555555 transparent transparent transparent; } + .sm-clean.sm-rtl a.has-submenu { + padding-right: 12px; + padding-left: 24px; } + .sm-clean.sm-rtl a .sub-arrow { + right: auto; + left: 12px; } + .sm-clean.sm-rtl.sm-vertical a.has-submenu { + padding: 10px 20px; } + .sm-clean.sm-rtl.sm-vertical a .sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent #555555 transparent transparent; } + .sm-clean.sm-rtl > li > ul::before { + left: auto; + right: 30px; } + .sm-clean.sm-rtl > li > ul::after { + left: auto; + right: 31px; } + .sm-clean.sm-rtl ul a.has-submenu { + padding: 10px 20px !important; } + .sm-clean.sm-rtl ul a .sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent #555555 transparent transparent; } + .sm-clean.sm-vertical { + padding: 10px 0; + border-radius: 5px; } + .sm-clean.sm-vertical a { + padding: 10px 20px; } + .sm-clean.sm-vertical a:hover, .sm-clean.sm-vertical a:focus, .sm-clean.sm-vertical a:active, .sm-clean.sm-vertical a.highlighted { + background: #fff; } + .sm-clean.sm-vertical a.disabled { + background: #eeeeee; } + .sm-clean.sm-vertical a .sub-arrow { + right: 8px; + top: 50%; + margin-top: -5px; + border-width: 5px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #555555; } + .sm-clean.sm-vertical > li > ul::before, + .sm-clean.sm-vertical > li > ul::after { + display: none; } + .sm-clean.sm-vertical ul a { + padding: 10px 20px; } + .sm-clean.sm-vertical ul a:hover, .sm-clean.sm-vertical ul a:focus, .sm-clean.sm-vertical ul a:active, .sm-clean.sm-vertical ul a.highlighted { + background: #eeeeee; } + .sm-clean.sm-vertical ul a.disabled { + background: #fff; } } + +/*# sourceMappingURL=sm-clean.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-clean.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-clean.css.map new file mode 100644 index 0000000..9c63a9c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-clean.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AA6JA,SAAU;EACT,UAAU,EA/B+B,OAAe;EAgCxD,aAAa,EA1G4B,GAAwB;EA8GhE,qEAGS;IACR,OAAO,EAAE,SAA2F;IACpG,qDAAqD;IACrD,aAAa,EAAE,IAAmG;IAClH,KAAK,EA7CgC,OAAsB;IA8C3D,WAAW,EA1IkB,wEAAwE;IA2IrG,SAAS,EA1IsB,IAAI;IA2InC,WAAW,EAAE,MAAM;IACnB,WAAW,EA1IkB,IAAI;IA2IjC,eAAe,EAAE,IAAI;EAGtB,mBAAU;IACT,KAAK,EAnDsC,OAAc;EAsD1D,oBAAW;IACV,KAAK,EA7HuC,OAA4B;EAiIzE,sBAAW;IACV,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,GAAG;IACR,UAAU,EAAE,KAAmC;IAC/C,IAAI,EAAE,IAAI;IACV,KAAK,EAtCmB,GAAmC;IAuC3D,KAAK,EAxCgB,IAAmC;IAyCxD,MAAM,EAzCe,IAAmC;IA0CxD,QAAQ,EAAE,MAAM;IAChB,IAAI,EAAE,mCAAiF;IACvF,UAAU,EAAE,MAAM;IAClB,WAAW,EAAE,IAAI;IACjB,UAAU,EArI0B,wBAAwB;IAsI5D,aAAa,EA5JiB,GAAG;EA8JlC,8BAAmB;IAClB,OAAO,EAAE,GAAG;EAEb,0CAAiC;IAChC,OAAO,EAAE,GAAG;EAKd,uEAAoD;IACnD,aAAa,EAAE,WAA6E;EC1M7F,4nCAAa;IACZ,aAAa,EAAE,WAAmB;EAUnC,k4BAAa;IACZ,aAAa,EAAE,CAAC;EDoMjB,YAAG;IACF,UAAU,EAAE,6BAAiD;EAE9D,0BAAiB;IAChB,UAAU,EAAE,CAAC;EAId,YAAG;IACF,UAAU,EAzJyB,wBAAiD;IA6JnF,iFAGS;MACR,SAAS,EAxMsB,IAAI;MA0MnC,WAAW,EAAE,qBAA6D;IEtO5E;;;4BAGmB;MAClB,WAAW,EAAE,sBAAsC;IAJpD;;;+BAGmB;MAClB,WAAW,EAAE,sBAAsC;IAJpD;;;kCAGmB;MAClB,WAAW,EAAE,sBAAsC;IAJpD;;;qCAGmB;MAClB,WAAW,EAAE,sBAAsC;;AFgPtD,yBAA0C;EAEzC;;;;mDAIiD;EACjD,yDAAyD;EACzD,YAAY;IAAC,QAAQ,EAAC,QAAQ;IAAC,KAAK,EAAC,IAAI;;EACzC,YAAY;IAAC,KAAK,EAAC,IAAI;;EACvB,mBAAmB;IAAC,KAAK,EAAC,KAAK;;EAC/B,iEAA+D;IAAC,KAAK,EAAC,IAAI;;EAC1E,WAAW;IAAC,WAAW,EAAC,MAAM;;EAC9B,uCAAsC;IAAC,WAAW,EAAC,MAAM;;EACzD,qEAAoE;IAAC,WAAW,EAAC,MAAM;;EACvF,YAAY;EAGZ,SAAU;IACT,OAAO,EAAE,MAAuC;IAChD,UAAU,EAhJ8B,OAAe;IAiJvD,aAAa,EA1LwB,KAAK;IA8LzC,8FAIc;MACb,OAAO,EAAE,SAAmF;MAC5F,KAAK,EA7J+B,OAAsB;MA8J1D,aAAa,EAAE,YAAY;IAG5B,iFAGc;MACb,KAAK,EAlKqC,OAAc;IAqKzD,mBAAU;MACT,KAAK,EAtKqC,OAAc;IAyKzD,oBAAW;MACV,KAAK,EA7MmC,OAA4B;IAiNrE,uBAAc;MACb,aAAa,EAAE,IAAiH;IAIjI,sBAAW;MACV,GAAG,EAAE,GAAG;MACR,UAAU,EAAE,IAA0C;MACtD,KAAK,EAvNsC,IAAI;MAwN/C,KAAK,EAAE,CAAC;MACR,MAAM,EAAE,CAAC;MACT,YAAY,EAvNqB,GAAG;MAwNpC,YAAY,EAAE,0BAA0B;MACxC,YAAY,EAAE,2CAAkE;MAChF,UAAU,EAAE,WAAW;MACvB,aAAa,EAAE,CAAC;IAGjB,8BAAmB;MAClB,OAAO,EAAE,IAAI;IAKf,YAAG;MACF,UAAU,EAAE,CAAC;IAId;8BACkB;MACjB,OAAO,EAAE,EAAE;MACX,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,KAAsE;MAC3E,IAAI,EAtMiC,IAAI;MAuMzC,KAAK,EAAE,CAAC;MACR,MAAM,EAAE,CAAC;MACT,QAAQ,EAAE,MAAM;MAChB,YAAY,EAAE,GAA6D;MAC3E,YAAY,EAAE,0BAA0B;MACxC,YAAY,EAAE,2CAAuE;IAEtF,0BAAiB;MAChB,GAAG,EAAE,KAAwC;MAC7C,IAAI,EAAE,IAA6D;MACnE,YAAY,EAlNyB,GAAG;MAmNxC,YAAY,EAAE,wCAA6D;IAI5E,YAAG;MACF,MAAM,EAAE,iBAAiE;MACzE,OAAO,EAAE,KAAiF;MAC1F,UAAU,EA9OqB,IAAgB;MA+O/C,aAAa,EAAE,cAA+C;MAC9D,UAAU,EA7O2B,4BAAgC;MAiPpE,6GAIc;QACb,MAAM,EAAE,YAAY;QACpB,OAAO,EAAE,SAA2F;QACpG,KAAK,EAnP8B,OAAsB;MAsP1D,6FAGc;QACb,UAAU,EAxP2B,OAAe;QAyPpD,KAAK,EAxPoC,OAAc;MA2PxD,sBAAU;QACT,KAAK,EA5PoC,OAAc;MA+PxD,uBAAW;QACV,UAAU,EA3QmB,IAAgB;QA4Q7C,KAAK,EAhQqC,OAA6B;MAoQxE,0BAAc;QACb,aAAa,EAnQgC,IAAI;MAuQlD,yBAAW;QACV,KAAK,EAAE,GAAG;QACV,GAAG,EAAE,GAAG;QACR,UAAU,EAAE,IAAkC;QAC9C,YAAY,EAxQuB,GAAG;QAyQtC,YAAY,EAAE,0BAA0B;QACxC,YAAY,EAAE,2CAAkE;IAMnF;0BACc;MACb,QAAQ,EAAE,QAAQ;MAClB,OAAO,EAAE,IAAI;MACb,UAAU,EAAE,MAAM;MAClB,QAAQ,EAAE,MAAM;MAChB,UAAU,EAvSqB,IAAgB;MAwS/C,MAAM,EAAE,IAAI;MAGZ;kCAAQ;QACP,UAAU,EAlS4B,OAAe;IAqSvD,2CAAkC;MACjC,YAAY,EAAE,2CAA2E;IAE1F,+CAAsC;MACrC,YAAY,EAAE,2CAA2E;IAE1F;gCACmB;MAClB,QAAQ,EAAE,QAAQ;MAClB,GAAG,EAAE,CAAC;MACN,IAAI,EAAE,GAAG;MACT,WAAW,EAAE,IAAI;MAEjB,KAAK,EAAE,CAAC;MACR,MAAM,EAAE,CAAC;MACT,QAAQ,EAAE,MAAM;MAChB,YAAY,EAAE,GAAG;MACjB,YAAY,EAAE,0BAA0B;MACxC,YAAY,EAAE,2CAAqE;IAEpF,4BAAmB;MAClB,GAAG,EAAE,GAAG;MACR,YAAY,EAAE,0BAA0B;MACxC,YAAY,EAAE,2CAAqE;IAalF,8BAAc;MACb,aAAa,EA1W6B,IAAI;MA2W9C,YAAY,EAAE,IAAiH;IAIhI,6BAAW;MACV,KAAK,EAAE,IAAI;MACX,IAAI,EAjXsC,IAAI;IA0X9C,0CAAc;MACb,OAAO,EAAE,SAAqG;IAI/G,yCAAW;MACV,KAAK,EAAE,IAAI;MACX,IAAI,EAAE,GAAG;MACT,YAAY,EAAE,0BAA0B;MACxC,YAAY,EAAE,2CAAkE;IAMnF,kCAAkB;MACjB,IAAI,EAAE,IAAI;MACV,KAAK,EAhW+B,IAAI;IAkWzC,iCAAiB;MAChB,IAAI,EAAE,IAAI;MACV,KAAK,EAAE,IAA6D;IAQnE,iCAAc;MACb,OAAO,EAAE,oBAAsG;IAIhH,gCAAW;MACV,KAAK,EAAE,IAAI;MACX,IAAI,EAAE,GAAG;MACT,YAAY,EAAE,0BAA0B;MACxC,YAAY,EAAE,2CAAkE;IAUpF,qBAAc;MACb,OAAO,EAAE,MAA8C;MACvD,aAAa,EApa8B,GAAwB;MAuanE,uBAAE;QACD,OAAO,EAAE,SAAqG;QAE9G,iIAGc;UACb,UAAU,EAhamB,IAAgB;QAma9C,gCAAW;UACV,UAAU,EA1Z2B,OAAe;QA8ZrD,kCAAW;UACV,KAAK,EAAE,GAAG;UACV,GAAG,EAAE,GAAG;UACR,UAAU,EAAE,IAAkC;UAC9C,YAAY,EA3ZuB,GAAG;UA4ZtC,YAAY,EAAE,0BAA0B;UACxC,YAAY,EAAE,2CAAkE;MAKlF;4CACkB;QACjB,OAAO,EAAE,IAAI;MAOb,0BAAE;QACD,OAAO,EAAE,SAA2F;QAEpG,6IAGc;UACb,UAAU,EAzb0B,OAAe;QA4bpD,mCAAW;UACV,UAAU,EAvckB,IAAgB", +"sources": ["../sm-clean/_sm-clean-theme.scss","../sm-clean/mixins/_round-corners-last-item.scss","../sm-clean/mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-clean.css" +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-mint.css b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-mint.css new file mode 100644 index 0000000..211ab21 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-mint.css @@ -0,0 +1,261 @@ +.sm-mint { + border-top: 2px solid #8db863; + border-bottom: 2px solid #8db863; + background: #fff; } + .sm-mint a, .sm-mint a:hover, .sm-mint a:focus, .sm-mint a:active { + padding: 13px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + color: #333; + font-family: Arial, sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 17px; + text-decoration: none; } + .sm-mint a.current { + font-weight: bold; } + .sm-mint a.disabled { + color: #cccccc; } + .sm-mint a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 14px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(141, 184, 99, 0.2); + border-radius: 4px; } + .sm-mint a .sub-arrow::before { + content: '+'; } + .sm-mint a.highlighted .sub-arrow::before { + content: '-'; } + .sm-mint li { + border-top: 1px solid rgba(141, 184, 99, 0.2); } + .sm-mint > li:first-child { + border-top: 0; } + .sm-mint ul { + background: rgba(141, 184, 99, 0.2); } + .sm-mint ul a, .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active { + font-size: 14px; + border-left: 8px solid transparent; } + .sm-mint ul ul a, + .sm-mint ul ul a:hover, + .sm-mint ul ul a:focus, + .sm-mint ul ul a:active { + border-left: 16px solid transparent; } + .sm-mint ul ul ul a, + .sm-mint ul ul ul a:hover, + .sm-mint ul ul ul a:focus, + .sm-mint ul ul ul a:active { + border-left: 24px solid transparent; } + .sm-mint ul ul ul ul a, + .sm-mint ul ul ul ul a:hover, + .sm-mint ul ul ul ul a:focus, + .sm-mint ul ul ul ul a:active { + border-left: 32px solid transparent; } + .sm-mint ul ul ul ul ul a, + .sm-mint ul ul ul ul ul a:hover, + .sm-mint ul ul ul ul ul a:focus, + .sm-mint ul ul ul ul ul a:active { + border-left: 40px solid transparent; } + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-mint ul { + position: absolute; + width: 12em; } + + .sm-mint li { + float: left; } + + .sm-mint.sm-rtl li { + float: right; } + + .sm-mint ul li, .sm-mint.sm-rtl ul li, .sm-mint.sm-vertical li { + float: none; } + + .sm-mint a { + white-space: nowrap; } + + .sm-mint ul a, .sm-mint.sm-vertical a { + white-space: normal; } + + .sm-mint .sm-nowrap > li > a, .sm-mint .sm-nowrap > li > :not(ul) a { + white-space: nowrap; } + + /* ...end */ + .sm-mint { + border-top: 0; + background: transparent; } + .sm-mint a, .sm-mint a:hover, .sm-mint a:focus, .sm-mint a:active, .sm-mint a.highlighted { + padding: 11px 20px; + color: #333; + border-radius: 4px 4px 0 0; } + .sm-mint a:hover, .sm-mint a:focus, .sm-mint a:active { + background: #8db863; + color: #fff; } + .sm-mint a.highlighted { + background: #F6FFED; + color: #333; + box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25); } + .sm-mint a.disabled { + background: transparent; + color: #cccccc; + box-shadow: none; } + .sm-mint a.has-submenu { + padding-right: 34px; } + .sm-mint a .sub-arrow { + top: 50%; + margin-top: -3px; + right: 20px; + width: 0; + height: 0; + border-width: 6px 4.02px 0 4.02px; + border-style: solid dashed dashed dashed; + border-color: #8db863 transparent transparent transparent; + background: transparent; + border-radius: 0; } + .sm-mint a:hover .sub-arrow, .sm-mint a:focus .sub-arrow, .sm-mint a:active .sub-arrow { + border-color: #fff transparent transparent transparent; } + .sm-mint a.highlighted .sub-arrow { + border-color: #8db863 transparent transparent transparent; } + .sm-mint a.disabled .sub-arrow { + border-color: #8db863 transparent transparent transparent; } + .sm-mint a .sub-arrow::before { + display: none; } + .sm-mint li { + border-top: 0; } + .sm-mint ul { + border: 0; + padding: 8px 0; + background: #F6FFED; + border-radius: 0 4px 4px 4px; + box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25); } + .sm-mint ul ul { + border-radius: 4px; } + .sm-mint ul a, .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active, .sm-mint ul a.highlighted { + border: 0 !important; + padding: 10px 20px; + color: #333; + border-radius: 0; } + .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active, .sm-mint ul a.highlighted { + background: #8db863; + color: #fff; + box-shadow: none; } + .sm-mint ul a.disabled { + background: transparent; + color: #b3b3b3; } + .sm-mint ul a.has-submenu { + padding-right: 20px; } + .sm-mint ul a .sub-arrow { + right: 10px; + margin-top: -4.02px; + border-width: 4.02px 0 4.02px 6px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #8db863; } + .sm-mint ul a:hover .sub-arrow, .sm-mint ul a:focus .sub-arrow, .sm-mint ul a:active .sub-arrow, .sm-mint ul a.highlighted .sub-arrow { + border-color: transparent transparent transparent #fff; } + .sm-mint ul a.disabled .sub-arrow { + border-color: transparent transparent transparent #8db863; } + .sm-mint .scroll-up, + .sm-mint .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #F6FFED; + height: 20px; } + .sm-mint .scroll-up-arrow, + .sm-mint .scroll-down-arrow { + position: absolute; + top: 6px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-width: 0 6px 8px 6px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #8db863 transparent; } + .sm-mint .scroll-down-arrow { + border-width: 8px 6px 0 6px; + border-style: solid dashed dashed dashed; + border-color: #8db863 transparent transparent transparent; } + .sm-mint.sm-rtl a.has-submenu { + padding-right: 20px; + padding-left: 34px; } + .sm-mint.sm-rtl a .sub-arrow { + right: auto; + left: 20px; } + .sm-mint.sm-rtl.sm-vertical { + border-right: 0; + border-left: 2px solid #8db863; } + .sm-mint.sm-rtl.sm-vertical a { + border-radius: 0 4px 4px 0; } + .sm-mint.sm-rtl.sm-vertical a.has-submenu { + padding: 10px 20px; } + .sm-mint.sm-rtl.sm-vertical a .sub-arrow { + right: auto; + left: 10px; + border-width: 4.02px 6px 4.02px 0; + border-style: dashed solid dashed dashed; + border-color: transparent #8db863 transparent transparent; } + .sm-mint.sm-rtl.sm-vertical a:hover .sub-arrow, .sm-mint.sm-rtl.sm-vertical a:focus .sub-arrow, .sm-mint.sm-rtl.sm-vertical a:active .sub-arrow, .sm-mint.sm-rtl.sm-vertical a.highlighted .sub-arrow { + border-color: transparent #fff transparent transparent; } + .sm-mint.sm-rtl.sm-vertical a.disabled .sub-arrow { + border-color: transparent #8db863 transparent transparent; } + .sm-mint.sm-rtl ul { + border-radius: 4px 0 4px 4px; } + .sm-mint.sm-rtl ul a { + border-radius: 0 !important; } + .sm-mint.sm-rtl ul a.has-submenu { + padding: 10px 20px !important; } + .sm-mint.sm-rtl ul a .sub-arrow { + right: auto; + left: 10px; + border-width: 4.02px 6px 4.02px 0; + border-style: dashed solid dashed dashed; + border-color: transparent #8db863 transparent transparent; } + .sm-mint.sm-rtl ul a:hover .sub-arrow, .sm-mint.sm-rtl ul a:focus .sub-arrow, .sm-mint.sm-rtl ul a:active .sub-arrow, .sm-mint.sm-rtl ul a.highlighted .sub-arrow { + border-color: transparent #fff transparent transparent; } + .sm-mint.sm-rtl ul a.disabled .sub-arrow { + border-color: transparent #8db863 transparent transparent; } + .sm-mint.sm-vertical { + border-bottom: 0; + border-right: 2px solid #8db863; } + .sm-mint.sm-vertical a { + padding: 10px 20px; + border-radius: 4px 0 0 4px; } + .sm-mint.sm-vertical a:hover, .sm-mint.sm-vertical a:focus, .sm-mint.sm-vertical a:active, .sm-mint.sm-vertical a.highlighted { + background: #8db863; + color: #fff; + box-shadow: none; } + .sm-mint.sm-vertical a.disabled { + background: transparent; + color: #cccccc; } + .sm-mint.sm-vertical a .sub-arrow { + right: 10px; + margin-top: -4.02px; + border-width: 4.02px 0 4.02px 6px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #8db863; } + .sm-mint.sm-vertical a:hover .sub-arrow, .sm-mint.sm-vertical a:focus .sub-arrow, .sm-mint.sm-vertical a:active .sub-arrow, .sm-mint.sm-vertical a.highlighted .sub-arrow { + border-color: transparent transparent transparent #fff; } + .sm-mint.sm-vertical a.disabled .sub-arrow { + border-color: transparent transparent transparent #8db863; } + .sm-mint.sm-vertical ul { + border-radius: 4px !important; } + .sm-mint.sm-vertical ul a { + padding: 10px 20px; } } + +/*# sourceMappingURL=sm-mint.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-mint.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-mint.css.map new file mode 100644 index 0000000..8d9d316 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-mint.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../sm-mint/_sm-mint-theme.scss","../sm-mint/mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-mint.css" +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-simple.css b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-simple.css new file mode 100644 index 0000000..1c6c6e0 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-simple.css @@ -0,0 +1,196 @@ +.sm-simple { + border: 1px solid #bbbbbb; + background: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); } + .sm-simple a, .sm-simple a:hover, .sm-simple a:focus, .sm-simple a:active { + padding: 13px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + color: #555555; + font-family: "Lucida Sans Unicode", "Lucida Sans", "Lucida Grande", Arial, sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 17px; + text-decoration: none; } + .sm-simple a.current { + background: #555555; + color: #fff; } + .sm-simple a.disabled { + color: #cccccc; } + .sm-simple a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 14px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(0, 0, 0, 0.08); } + .sm-simple a .sub-arrow::before { + content: '+'; } + .sm-simple a.highlighted .sub-arrow::before { + content: '-'; } + .sm-simple li { + border-top: 1px solid rgba(0, 0, 0, 0.05); } + .sm-simple > li:first-child { + border-top: 0; } + .sm-simple ul { + background: rgba(179, 179, 179, 0.1); } + .sm-simple ul a, .sm-simple ul a:hover, .sm-simple ul a:focus, .sm-simple ul a:active { + font-size: 14px; + border-left: 8px solid transparent; } + .sm-simple ul ul a, + .sm-simple ul ul a:hover, + .sm-simple ul ul a:focus, + .sm-simple ul ul a:active { + border-left: 16px solid transparent; } + .sm-simple ul ul ul a, + .sm-simple ul ul ul a:hover, + .sm-simple ul ul ul a:focus, + .sm-simple ul ul ul a:active { + border-left: 24px solid transparent; } + .sm-simple ul ul ul ul a, + .sm-simple ul ul ul ul a:hover, + .sm-simple ul ul ul ul a:focus, + .sm-simple ul ul ul ul a:active { + border-left: 32px solid transparent; } + .sm-simple ul ul ul ul ul a, + .sm-simple ul ul ul ul ul a:hover, + .sm-simple ul ul ul ul ul a:focus, + .sm-simple ul ul ul ul ul a:active { + border-left: 40px solid transparent; } + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-simple ul { + position: absolute; + width: 12em; } + + .sm-simple li { + float: left; } + + .sm-simple.sm-rtl li { + float: right; } + + .sm-simple ul li, .sm-simple.sm-rtl ul li, .sm-simple.sm-vertical li { + float: none; } + + .sm-simple a { + white-space: nowrap; } + + .sm-simple ul a, .sm-simple.sm-vertical a { + white-space: normal; } + + .sm-simple .sm-nowrap > li > a, .sm-simple .sm-nowrap > li > :not(ul) a { + white-space: nowrap; } + + /* ...end */ + .sm-simple { + background: #fff; } + .sm-simple a, .sm-simple a:hover, .sm-simple a:focus, .sm-simple a:active, .sm-simple a.highlighted { + padding: 11px 20px; + color: #555555; } + .sm-simple a:hover, .sm-simple a:focus, .sm-simple a:active, .sm-simple a.highlighted { + background: #eeeeee; } + .sm-simple a.current { + background: #555555; + color: #fff; } + .sm-simple a.disabled { + background: #fff; + color: #cccccc; } + .sm-simple a.has-submenu { + padding-right: 32px; } + .sm-simple a .sub-arrow { + top: 50%; + margin-top: -8px; + right: 20px; + width: 8px; + height: 16px; + font: 14px/16px monospace !important; + background: transparent; } + .sm-simple a.highlighted .sub-arrow::before { + content: '+'; } + .sm-simple > li { + border-top: 0; + border-left: 1px solid #eeeeee; } + .sm-simple > li:first-child { + border-left: 0; } + .sm-simple ul { + border: 1px solid #bbbbbb; + background: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); } + .sm-simple ul a { + border: 0 !important; } + .sm-simple ul a.has-submenu { + padding-right: 20px; } + .sm-simple ul a .sub-arrow { + left: 8px; + right: auto; } + .sm-simple ul > li { + border-left: 0; + border-top: 1px solid #eeeeee; } + .sm-simple ul > li:first-child { + border-top: 0; } + .sm-simple .scroll-up, + .sm-simple .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #fff; + height: 20px; } + .sm-simple .scroll-up-arrow, + .sm-simple .scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-width: 8px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #555555 transparent; } + .sm-simple .scroll-down-arrow { + top: 6px; + border-style: solid dashed dashed dashed; + border-color: #555555 transparent transparent transparent; } + .sm-simple.sm-rtl a.has-submenu { + padding-right: 20px; + padding-left: 32px; } + .sm-simple.sm-rtl a .sub-arrow { + left: 20px; + right: auto; } + .sm-simple.sm-rtl.sm-vertical a.has-submenu { + padding: 11px 20px; } + .sm-simple.sm-rtl.sm-vertical a .sub-arrow { + left: auto; + right: 8px; } + .sm-simple.sm-rtl > li:first-child { + border-left: 1px solid #eeeeee; } + .sm-simple.sm-rtl > li:last-child { + border-left: 0; } + .sm-simple.sm-rtl ul a.has-submenu { + padding: 11px 20px; } + .sm-simple.sm-rtl ul a .sub-arrow { + left: auto; + right: 8px; } + .sm-simple.sm-vertical a .sub-arrow { + left: 8px; + right: auto; } + .sm-simple.sm-vertical li { + border-left: 0; + border-top: 1px solid #eeeeee; } + .sm-simple.sm-vertical > li:first-child { + border-top: 0; } } + +/*# sourceMappingURL=sm-simple.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-simple.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-simple.css.map new file mode 100644 index 0000000..e842e06 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-simple.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../sm-simple/_sm-simple-theme.scss","../sm-simple/mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-simple.css" +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-sport-blue.css b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-sport-blue.css new file mode 100644 index 0000000..443f002 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-sport-blue.css @@ -0,0 +1,261 @@ +.sm-sport-blue { + border-top: 2px solid #0AA1F1; + border-bottom: 2px solid #0AA1F1; + background: #fff; } + .sm-sport-blue a, .sm-sport-blue a:hover, .sm-sport-blue a:focus, .sm-sport-blue a:active { + padding: 13px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + color: #333; + font-family: "Play", Arial, sans-serif; + font-size: 14px; + font-weight: normal; + line-height: 17px; + text-decoration: none; } + .sm-sport-blue a.current { + font-weight: bold; } + .sm-sport-blue a.disabled { + color: #cccccc; } + .sm-sport-blue a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 13px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(10, 161, 241, 0.2); + border-radius: 4px; } + .sm-sport-blue a .sub-arrow::before { + content: '+'; } + .sm-sport-blue a.highlighted .sub-arrow::before { + content: '-'; } + .sm-sport-blue li { + border-top: 1px solid rgba(10, 161, 241, 0.2); } + .sm-sport-blue > li:first-child { + border-top: 0; } + .sm-sport-blue ul { + background: rgba(10, 161, 241, 0.2); } + .sm-sport-blue ul a, .sm-sport-blue ul a:hover, .sm-sport-blue ul a:focus, .sm-sport-blue ul a:active { + font-size: 13px; + border-left: 8px solid transparent; } + .sm-sport-blue ul ul a, + .sm-sport-blue ul ul a:hover, + .sm-sport-blue ul ul a:focus, + .sm-sport-blue ul ul a:active { + border-left: 16px solid transparent; } + .sm-sport-blue ul ul ul a, + .sm-sport-blue ul ul ul a:hover, + .sm-sport-blue ul ul ul a:focus, + .sm-sport-blue ul ul ul a:active { + border-left: 24px solid transparent; } + .sm-sport-blue ul ul ul ul a, + .sm-sport-blue ul ul ul ul a:hover, + .sm-sport-blue ul ul ul ul a:focus, + .sm-sport-blue ul ul ul ul a:active { + border-left: 32px solid transparent; } + .sm-sport-blue ul ul ul ul ul a, + .sm-sport-blue ul ul ul ul ul a:hover, + .sm-sport-blue ul ul ul ul ul a:focus, + .sm-sport-blue ul ul ul ul ul a:active { + border-left: 40px solid transparent; } + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-sport-blue ul { + position: absolute; + width: 12em; } + + .sm-sport-blue li { + float: left; } + + .sm-sport-blue.sm-rtl li { + float: right; } + + .sm-sport-blue ul li, .sm-sport-blue.sm-rtl ul li, .sm-sport-blue.sm-vertical li { + float: none; } + + .sm-sport-blue a { + white-space: nowrap; } + + .sm-sport-blue ul a, .sm-sport-blue.sm-vertical a { + white-space: normal; } + + .sm-sport-blue .sm-nowrap > li > a, .sm-sport-blue .sm-nowrap > li > :not(ul) a { + white-space: nowrap; } + + /* ...end */ + .sm-sport-blue { + border-top: 0; + background: transparent; } + .sm-sport-blue a, .sm-sport-blue a:hover, .sm-sport-blue a:focus, .sm-sport-blue a:active, .sm-sport-blue a.highlighted { + padding: 11px 20px; + color: #333; + border-radius: 4px 4px 0 0; } + .sm-sport-blue a:hover, .sm-sport-blue a:focus, .sm-sport-blue a:active { + background: #0AA1F1; + color: #fff; } + .sm-sport-blue a.highlighted { + background: #ceecfc; + color: #333; + box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25); } + .sm-sport-blue a.disabled { + background: transparent; + color: #cccccc; + box-shadow: none; } + .sm-sport-blue a.has-submenu { + padding-right: 34px; } + .sm-sport-blue a .sub-arrow { + top: 50%; + margin-top: -3px; + right: 20px; + width: 0; + height: 0; + border-width: 6px 4.02px 0 4.02px; + border-style: solid dashed dashed dashed; + border-color: #0AA1F1 transparent transparent transparent; + background: transparent; + border-radius: 0; } + .sm-sport-blue a:hover .sub-arrow, .sm-sport-blue a:focus .sub-arrow, .sm-sport-blue a:active .sub-arrow { + border-color: #fff transparent transparent transparent; } + .sm-sport-blue a.highlighted .sub-arrow { + border-color: #0AA1F1 transparent transparent transparent; } + .sm-sport-blue a.disabled .sub-arrow { + border-color: #0AA1F1 transparent transparent transparent; } + .sm-sport-blue a .sub-arrow::before { + display: none; } + .sm-sport-blue li { + border-top: 0; } + .sm-sport-blue ul { + border: 0; + padding: 8px 0; + background: #ceecfc; + border-radius: 0 4px 4px 4px; + box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25); } + .sm-sport-blue ul ul { + border-radius: 4px; } + .sm-sport-blue ul a, .sm-sport-blue ul a:hover, .sm-sport-blue ul a:focus, .sm-sport-blue ul a:active, .sm-sport-blue ul a.highlighted { + border: 0 !important; + padding: 10px 20px; + color: #333; + border-radius: 0; } + .sm-sport-blue ul a:hover, .sm-sport-blue ul a:focus, .sm-sport-blue ul a:active, .sm-sport-blue ul a.highlighted { + background: #0AA1F1; + color: #fff; + box-shadow: none; } + .sm-sport-blue ul a.disabled { + background: transparent; + color: #b3b3b3; } + .sm-sport-blue ul a.has-submenu { + padding-right: 20px; } + .sm-sport-blue ul a .sub-arrow { + right: 10px; + margin-top: -4.02px; + border-width: 4.02px 0 4.02px 6px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #0AA1F1; } + .sm-sport-blue ul a:hover .sub-arrow, .sm-sport-blue ul a:focus .sub-arrow, .sm-sport-blue ul a:active .sub-arrow, .sm-sport-blue ul a.highlighted .sub-arrow { + border-color: transparent transparent transparent #fff; } + .sm-sport-blue ul a.disabled .sub-arrow { + border-color: transparent transparent transparent #0AA1F1; } + .sm-sport-blue .scroll-up, + .sm-sport-blue .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #ceecfc; + height: 20px; } + .sm-sport-blue .scroll-up-arrow, + .sm-sport-blue .scroll-down-arrow { + position: absolute; + top: 6px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-width: 0 6px 8px 6px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #0AA1F1 transparent; } + .sm-sport-blue .scroll-down-arrow { + border-width: 8px 6px 0 6px; + border-style: solid dashed dashed dashed; + border-color: #0AA1F1 transparent transparent transparent; } + .sm-sport-blue.sm-rtl a.has-submenu { + padding-right: 20px; + padding-left: 34px; } + .sm-sport-blue.sm-rtl a .sub-arrow { + right: auto; + left: 20px; } + .sm-sport-blue.sm-rtl.sm-vertical { + border-right: 0; + border-left: 2px solid #0AA1F1; } + .sm-sport-blue.sm-rtl.sm-vertical a { + border-radius: 0 4px 4px 0; } + .sm-sport-blue.sm-rtl.sm-vertical a.has-submenu { + padding: 10px 20px; } + .sm-sport-blue.sm-rtl.sm-vertical a .sub-arrow { + right: auto; + left: 10px; + border-width: 4.02px 6px 4.02px 0; + border-style: dashed solid dashed dashed; + border-color: transparent #0AA1F1 transparent transparent; } + .sm-sport-blue.sm-rtl.sm-vertical a:hover .sub-arrow, .sm-sport-blue.sm-rtl.sm-vertical a:focus .sub-arrow, .sm-sport-blue.sm-rtl.sm-vertical a:active .sub-arrow, .sm-sport-blue.sm-rtl.sm-vertical a.highlighted .sub-arrow { + border-color: transparent #fff transparent transparent; } + .sm-sport-blue.sm-rtl.sm-vertical a.disabled .sub-arrow { + border-color: transparent #0AA1F1 transparent transparent; } + .sm-sport-blue.sm-rtl ul { + border-radius: 4px 0 4px 4px; } + .sm-sport-blue.sm-rtl ul a { + border-radius: 0 !important; } + .sm-sport-blue.sm-rtl ul a.has-submenu { + padding: 10px 20px !important; } + .sm-sport-blue.sm-rtl ul a .sub-arrow { + right: auto; + left: 10px; + border-width: 4.02px 6px 4.02px 0; + border-style: dashed solid dashed dashed; + border-color: transparent #0AA1F1 transparent transparent; } + .sm-sport-blue.sm-rtl ul a:hover .sub-arrow, .sm-sport-blue.sm-rtl ul a:focus .sub-arrow, .sm-sport-blue.sm-rtl ul a:active .sub-arrow, .sm-sport-blue.sm-rtl ul a.highlighted .sub-arrow { + border-color: transparent #fff transparent transparent; } + .sm-sport-blue.sm-rtl ul a.disabled .sub-arrow { + border-color: transparent #0AA1F1 transparent transparent; } + .sm-sport-blue.sm-vertical { + border-bottom: 0; + border-right: 2px solid #0AA1F1; } + .sm-sport-blue.sm-vertical a { + padding: 10px 20px; + border-radius: 4px 0 0 4px; } + .sm-sport-blue.sm-vertical a:hover, .sm-sport-blue.sm-vertical a:focus, .sm-sport-blue.sm-vertical a:active, .sm-sport-blue.sm-vertical a.highlighted { + background: #0AA1F1; + color: #fff; + box-shadow: none; } + .sm-sport-blue.sm-vertical a.disabled { + background: transparent; + color: #cccccc; } + .sm-sport-blue.sm-vertical a .sub-arrow { + right: 10px; + margin-top: -4.02px; + border-width: 4.02px 0 4.02px 6px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #0AA1F1; } + .sm-sport-blue.sm-vertical a:hover .sub-arrow, .sm-sport-blue.sm-vertical a:focus .sub-arrow, .sm-sport-blue.sm-vertical a:active .sub-arrow, .sm-sport-blue.sm-vertical a.highlighted .sub-arrow { + border-color: transparent transparent transparent #fff; } + .sm-sport-blue.sm-vertical a.disabled .sub-arrow { + border-color: transparent transparent transparent #0AA1F1; } + .sm-sport-blue.sm-vertical ul { + border-radius: 4px !important; } + .sm-sport-blue.sm-vertical ul a { + padding: 10px 20px; } } + +/*# sourceMappingURL=sm-sport-blue.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-sport-blue.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-sport-blue.css.map new file mode 100644 index 0000000..a36b048 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/css/sm-sport-blue.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../sm-sport-blue/_sm-sport-blue-theme.scss","../sm-sport-blue/mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-sport-blue.css" +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/_mixins.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/_mixins.scss new file mode 100644 index 0000000..0ed0650 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/_mixins.scss @@ -0,0 +1,2 @@ +@import 'mixins/_sub-items-indentation.scss'; +@import 'mixins/_round-corners-last-item.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/_sm-blue-theme.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/_sm-blue-theme.scss new file mode 100644 index 0000000..d7c2828 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/_sm-blue-theme.scss @@ -0,0 +1,586 @@ +// This file is best viewed with Tab size 4 code indentation + + +// ----------------------------------------------------------------------------------------------------------------- +// 1. Theme Quick Settings (Variables) +// (for further control, you will need to dig into the actual CSS in 2.) +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 1.1. Colors +// ---------------------------------------------------------- + +$sm-blue__blue: #3092c0 !default; +$sm-blue__blue-dark: darken($sm-blue__blue, 5%) !default; +$sm-blue__blue-darker: #006892 !default; +$sm-blue__blue-light: lighten($sm-blue__blue, 30%) !default; +$sm-blue__white: #fff !default; +$sm-blue__gray: darken($sm-blue__white, 34%) !default; + +$sm-blue__text-shadow: rgba(0, 0, 0, 0.2) !default; +$sm-blue__box-shadow: rgba(0, 0, 0, 0.2) !default; + +$sm-blue__gradients_amount: 2% !default; + + +// ---------------------------------------------------------- +// :: 1.2. Breakpoints +// ---------------------------------------------------------- + +$sm-blue__desktop-vp: 768px !default; // switch from collapsible to desktop + + +// ---------------------------------------------------------- +// :: 1.3. Typography +// ---------------------------------------------------------- + +// Import "PT Sans Narrow" font from Google fonts +@import url(https://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700); + +$sm-blue__font-family: "PT Sans Narrow", "Arial Narrow", Arial, Helvetica, sans-serif !default; +$sm-blue__font-size-base: 18px !default; +$sm-blue__font-size-small: 16px !default; +$sm-blue__line-height: 23px !default; + + +// ---------------------------------------------------------- +// :: 1.4. Borders +// ---------------------------------------------------------- + +$sm-blue__border-width: 1px !default; +$sm-blue__border-radius-base: 8px !default; +$sm-blue__border-radius-small: 4px !default; + + +// ---------------------------------------------------------- +// :: 1.5. Collapsible main menu +// ---------------------------------------------------------- + +// Menu box +$sm-blue__collapsible-bg: transparent !default; +$sm-blue__collapsible-border-radius: $sm-blue__border-radius-base !default; +$sm-blue__collapsible-box-shadow: 0 1px 4px $sm-blue__box-shadow !default; + +// Items +$sm-blue__collapsible-item-color: $sm-blue__white !default; +$sm-blue__collapsible-item-bg: $sm-blue__blue !default; +$sm-blue__collapsible-item-current-color: $sm-blue__white !default; +$sm-blue__collapsible-item-current-bg: $sm-blue__blue-darker !default; +$sm-blue__collapsible-item-disabled-color: lighten($sm-blue__blue, 30%) !default; +$sm-blue__collapsible-item-padding-vertical: 10px !default; +$sm-blue__collapsible-item-padding-horizontal: 20px !default; + +// Toggle button (sub menu indicators) +$sm-blue__collapsible-toggle-bg: rgba(0, 0, 0, 0.1) !default; + + +// ---------------------------------------------------------- +// :: 1.6. Collapsible sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-blue__collapsible-sub-bg: $sm-blue__white !default; + +// Items +$sm-blue__collapsible-sub-item-color: $sm-blue__blue-dark !default; +$sm-blue__collapsible-sub-item-bg: transparent !default; +$sm-blue__collapsible-sub-item-current-color: $sm-blue__white !default; +$sm-blue__collapsible-sub-item-current-bg: $sm-blue__blue-darker !default; +$sm-blue__collapsible-sub-item-disabled-color: darken($sm-blue__white, 30%) !default; + +// Items separators +$sm-blue__collapsible-sub-separators-color: rgba(0, 0, 0, 0.05) !default; + +// Items text indentation for deeper levels +$sm-blue__collapsible-sub-item-indentation: 8px !default; + + +// ---------------------------------------------------------- +// :: 1.7. Desktop main menu +// ---------------------------------------------------------- + +// Menu box +$sm-blue__desktop-bg: $sm-blue__blue !default; +$sm-blue__desktop-border-radius: $sm-blue__border-radius-base !default; +$sm-blue__desktop-box-shadow: 0 1px 1px $sm-blue__box-shadow !default; + +// Items +$sm-blue__desktop-item-color: $sm-blue__white !default; +$sm-blue__desktop-item-bg: $sm-blue__blue !default; +$sm-blue__desktop-item-hover-bg: darken($sm-blue__blue, 5%) !default; +$sm-blue__desktop-item-current-color: $sm-blue__white !default; +$sm-blue__desktop-item-current-bg: $sm-blue__blue-darker !default; +$sm-blue__desktop-item-disabled-color: lighten($sm-blue__blue, 30%) !default; +$sm-blue__desktop-item-padding-vertical: 13px !default; +$sm-blue__desktop-item-padding-horizontal: 24px !default; + +// Items separators +$sm-blue__desktop-separators-size: 1px !default; +$sm-blue__desktop-separators-color: darken($sm-blue__blue, 5%) !default; + +// Sub menu indicators +$sm-blue__desktop-arrow-size: 5px !default; // border-width +$sm-blue__desktop-arrow-color: $sm-blue__blue-light !default; + +// Vertical menu box +$sm-blue__desktop-vertical-box-shadow: 0 1px 4px $sm-blue__box-shadow !default; + +// Vertical items +$sm-blue__desktop-vertical-item-padding-vertical: 9px !default; +$sm-blue__desktop-vertical-item-padding-horizontal: 23px !default; + + +// ---------------------------------------------------------- +// :: 1.8. Desktop sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-blue__desktop-sub-bg: $sm-blue__white !default; +$sm-blue__desktop-sub-border-color: $sm-blue__gray !default; +$sm-blue__desktop-sub-border-radius: $sm-blue__border-radius-small !default; +$sm-blue__desktop-sub-box-shadow: 0 5px 12px $sm-blue__box-shadow !default; +$sm-blue__desktop-sub-padding-vertical: 7px !default; +$sm-blue__desktop-sub-padding-horizontal: 0 !default; + +// Items +$sm-blue__desktop-sub-item-color: $sm-blue__blue-dark !default; +$sm-blue__desktop-sub-item-bg: transparent !default; +$sm-blue__desktop-sub-item-hover-color: $sm-blue__white !default; +$sm-blue__desktop-sub-item-hover-bg: $sm-blue__blue !default; +$sm-blue__desktop-sub-item-current-color: $sm-blue__white !default; +$sm-blue__desktop-sub-item-current-bg: $sm-blue__blue-darker !default; +$sm-blue__desktop-sub-item-disabled-color: darken($sm-blue__white, 30%) !default; +$sm-blue__desktop-sub-item-padding-vertical: 9px !default; +$sm-blue__desktop-sub-item-padding-horizontal: 23px !default; + + +// ----------------------------------------------------------------------------------------------------------------- +// 2. Theme CSS +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 2.1. Collapsible mode (mobile first) +// ---------------------------------------------------------- + +// calc item height and sub menus toggle button size +$sm-blue__item-height: $sm-blue__line-height + $sm-blue__collapsible-item-padding-vertical * 2; +// set toggle button size to 80% of item height +$sm-blue__toggle-size: floor($sm-blue__item-height * 0.8); +$sm-blue__toggle-spacing: floor($sm-blue__item-height * 0.1); + +// Main menu box +.sm-blue { + background: $sm-blue__collapsible-bg; + border-radius: $sm-blue__collapsible-border-radius; + box-shadow: $sm-blue__collapsible-box-shadow; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active { + padding: $sm-blue__collapsible-item-padding-vertical $sm-blue__collapsible-item-padding-horizontal; + /* make room for the toggle button (sub indicator) */ + padding-right: $sm-blue__collapsible-item-padding-horizontal + $sm-blue__toggle-size + $sm-blue__toggle-spacing; + background: $sm-blue__collapsible-item-bg; + background-image: linear-gradient(to bottom, lighten($sm-blue__collapsible-item-bg, $sm-blue__gradients_amount), darken($sm-blue__collapsible-item-bg, $sm-blue__gradients_amount)); + color: $sm-blue__collapsible-item-color; + font-family: $sm-blue__font-family; + font-size: $sm-blue__font-size-base; + font-weight: bold; + line-height: $sm-blue__line-height; + text-decoration: none; + text-shadow: 0 1px 0 $sm-blue__text-shadow; + } + + &.current { + background: $sm-blue__collapsible-item-current-bg; + background-image: linear-gradient(to bottom, darken($sm-blue__collapsible-item-current-bg, $sm-blue__gradients_amount), lighten($sm-blue__collapsible-item-current-bg, $sm-blue__gradients_amount)); + color: $sm-blue__collapsible-item-current-color; + } + + &.disabled { + color: $sm-blue__collapsible-item-disabled-color; + } + + // Toggle buttons (sub menu indicators) + .sub-arrow { + position: absolute; + top: 50%; + margin-top: -(ceil($sm-blue__toggle-size / 2)); + left: auto; + right: $sm-blue__toggle-spacing; + width: $sm-blue__toggle-size; + height: $sm-blue__toggle-size; + overflow: hidden; + font: bold #{$sm-blue__font-size-small}/#{$sm-blue__toggle-size} monospace !important; + text-align: center; + text-shadow: none; + background: $sm-blue__collapsible-toggle-bg; + border-radius: $sm-blue__border-radius-small; + } + .sub-arrow::before { + content: '+'; + } + &.highlighted .sub-arrow::before { + content: '-'; + } + } + + // round the corners of the first item + > li:first-child > a, > li:first-child > :not(ul) a { + border-radius: $sm-blue__collapsible-border-radius $sm-blue__collapsible-border-radius 0 0; + } + // round the corners of the last item + @include sm-blue__round-corners-last-item($sm-blue__collapsible-border-radius); + + // Sub menus box + ul { + background: $sm-blue__collapsible-sub-bg; + + // darken the background of the 2+ level sub menus + ul { + background: rgba(darken($sm-blue__collapsible-sub-bg, 60%), 0.1); + } + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active { + background: $sm-blue__collapsible-sub-item-bg; + color: $sm-blue__collapsible-sub-item-color; + font-size: $sm-blue__font-size-small; + text-shadow: none; + // add indentation for sub menus text + border-left: $sm-blue__collapsible-sub-item-indentation solid transparent; + } + + &.current { + background: $sm-blue__collapsible-sub-item-current-bg; + background-image: linear-gradient(to bottom, darken($sm-blue__collapsible-sub-item-current-bg, $sm-blue__gradients_amount), lighten($sm-blue__collapsible-sub-item-current-bg, $sm-blue__gradients_amount)); + color: $sm-blue__collapsible-sub-item-current-color; + } + + &.disabled { + color: $sm-blue__collapsible-sub-item-disabled-color; + } + } + + // Add indentation for sub menus text for deeper levels + @include sm-blue__sub-items-indentation($sm-blue__collapsible-sub-item-indentation); + + // Sub menus items separators + li { + border-top: 1px solid $sm-blue__collapsible-sub-separators-color; + + &:first-child { + border-top: 0; + } + } + } +} + + +// ---------------------------------------------------------- +// :: 2.2. Desktop mode +// ---------------------------------------------------------- + +@media (min-width: $sm-blue__desktop-vp) { + + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-blue ul{position:absolute;width:12em;} + .sm-blue li{float:left;} + .sm-blue.sm-rtl li{float:right;} + .sm-blue ul li,.sm-blue.sm-rtl ul li,.sm-blue.sm-vertical li{float:none;} + .sm-blue a{white-space:nowrap;} + .sm-blue ul a,.sm-blue.sm-vertical a{white-space:normal;} + .sm-blue .sm-nowrap > li > a,.sm-blue .sm-nowrap > li > :not(ul) a{white-space:nowrap;} + /* ...end */ + + // Main menu box + .sm-blue { + background: $sm-blue__desktop-bg; + background-image: linear-gradient(to bottom, lighten($sm-blue__desktop-bg, $sm-blue__gradients_amount), darken($sm-blue__desktop-bg, $sm-blue__gradients_amount)); + border-radius: $sm-blue__desktop-border-radius; + box-shadow: $sm-blue__desktop-box-shadow; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + padding: $sm-blue__desktop-item-padding-vertical $sm-blue__desktop-item-padding-horizontal; + background: $sm-blue__desktop-item-bg; + background-image: linear-gradient(to bottom, lighten($sm-blue__desktop-item-bg, $sm-blue__gradients_amount), darken($sm-blue__desktop-item-bg, $sm-blue__gradients_amount)); + color: $sm-blue__desktop-item-color; + } + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-blue__desktop-item-hover-bg; + background-image: linear-gradient(to bottom, lighten($sm-blue__desktop-item-hover-bg, $sm-blue__gradients_amount), darken($sm-blue__desktop-item-hover-bg, $sm-blue__gradients_amount)); + } + + &.current { + background: $sm-blue__desktop-item-current-bg; + background-image: linear-gradient(to bottom, darken($sm-blue__desktop-item-current-bg, $sm-blue__gradients_amount), lighten($sm-blue__desktop-item-current-bg, $sm-blue__gradients_amount)); + color: $sm-blue__desktop-item-current-color; + } + + &.disabled { + background: $sm-blue__desktop-item-bg; + background-image: linear-gradient(to bottom, lighten($sm-blue__desktop-item-bg, $sm-blue__gradients_amount), darken($sm-blue__desktop-item-bg, $sm-blue__gradients_amount)); + color: $sm-blue__desktop-item-disabled-color; + } + + // Sub menu indicators + .sub-arrow { + top: auto; + margin-top: 0; + bottom: 2px; + left: 50%; + margin-left: -$sm-blue__desktop-arrow-size; + right: auto; + width: 0; + height: 0; + border-width: $sm-blue__desktop-arrow-size; + border-style: solid dashed dashed dashed; + border-color: $sm-blue__desktop-arrow-color transparent transparent transparent; + background: transparent; + border-radius: 0; + } + // reset mobile first style + .sub-arrow::before { + display: none; + } + } + + // round the corners of the first and last items + > li:first-child > a, > li:first-child > :not(ul) a { + border-radius: $sm-blue__desktop-border-radius 0 0 $sm-blue__desktop-border-radius; + } + > li:last-child > a, > li:last-child > :not(ul) a { + border-radius: 0 $sm-blue__desktop-border-radius $sm-blue__desktop-border-radius 0 !important; + } + + // Main menu items separators + > li { + border-left: $sm-blue__desktop-separators-size solid $sm-blue__desktop-separators-color; + + &:first-child { + border-left: 0; + } + } + + // Sub menus box + ul { + border: $sm-blue__border-width solid $sm-blue__desktop-sub-border-color; + padding: $sm-blue__desktop-sub-padding-vertical $sm-blue__desktop-sub-padding-horizontal; + background: $sm-blue__desktop-sub-bg; + border-radius: 0 0 $sm-blue__desktop-sub-border-radius $sm-blue__desktop-sub-border-radius !important; + box-shadow: $sm-blue__desktop-sub-box-shadow; + + // 2+ sub levels need rounding of all corners + ul { + border-radius: $sm-blue__desktop-sub-border-radius !important; + background: $sm-blue__desktop-sub-bg; + } + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + border: 0 !important; + padding: $sm-blue__desktop-sub-item-padding-vertical $sm-blue__desktop-sub-item-padding-horizontal; + background: $sm-blue__desktop-sub-item-bg; + color: $sm-blue__desktop-sub-item-color; + border-radius: 0 !important; + } + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-blue__desktop-sub-item-hover-bg; + background-image: linear-gradient(to bottom, lighten($sm-blue__desktop-sub-item-hover-bg, $sm-blue__gradients_amount), darken($sm-blue__desktop-sub-item-hover-bg, $sm-blue__gradients_amount)); + color: $sm-blue__desktop-sub-item-hover-color; + } + + &.current { + background: $sm-blue__desktop-sub-item-current-bg; + background-image: linear-gradient(to bottom, darken($sm-blue__desktop-sub-item-current-bg, $sm-blue__gradients_amount), lighten($sm-blue__desktop-sub-item-current-bg, $sm-blue__gradients_amount)); + color: $sm-blue__desktop-sub-item-current-color; + } + + &.disabled { + background: $sm-blue__desktop-sub-bg; + color: $sm-blue__desktop-sub-item-disabled-color; + } + + // Sub menu indicators + .sub-arrow { + top: 50%; + margin-top: -$sm-blue__desktop-arrow-size; + bottom: auto; + left: auto; + margin-left: 0; + right: 10px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-blue__desktop-arrow-color; + } + } + + // No sub menus items separators + li { + border: 0; + } + } + + // Scrolling arrows containers for tall sub menus - test sub menu: "Sub test" -> "more..." in the default download package + .scroll-up, + .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: $sm-blue__desktop-sub-bg; + height: 20px; + // width and position will be set automatically by the script + } + .scroll-up-arrow, + .scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + // we will use one-side border to create a triangle so that we don't use a real background image, of course, you can use a real image if you like too + width: 0; + height: 0; + overflow: hidden; + border-width: 8px; // tweak size of the arrow + border-style: dashed dashed solid dashed; + border-color: transparent transparent $sm-blue__desktop-sub-item-color transparent; + } + .scroll-down-arrow { + top: 6px; + border-style: solid dashed dashed dashed; + border-color: $sm-blue__desktop-sub-item-color transparent transparent transparent; + } + + + // Rigth-to-left + + // Main menu box + &.sm-rtl { + + // Vertical main menu items + &.sm-vertical { + a { + // Sub menu indicators + .sub-arrow { + right: auto; + left: 10px; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-blue__desktop-arrow-color transparent transparent; + } + } + } + + // round the corners of the first and last items + > li:first-child > a, > li:first-child > :not(ul) a { + border-radius: 0 $sm-blue__desktop-border-radius $sm-blue__desktop-border-radius 0; + } + > li:last-child > a, > li:last-child > :not(ul) a { + border-radius: $sm-blue__desktop-border-radius 0 0 $sm-blue__desktop-border-radius !important; + } + + // Main menu items separators + > li { + &:first-child { + border-left: $sm-blue__desktop-separators-size solid $sm-blue__desktop-separators-color; + } + &:last-child { + border-left: 0; + } + } + + // Sub menus box + ul { + a { + // Sub menu indicators + .sub-arrow { + right: auto; + left: 10px; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-blue__desktop-arrow-color transparent transparent; + } + } + } + } + + + // Vertical main menu + + // Main menu box + &.sm-vertical { + box-shadow: $sm-blue__desktop-vertical-box-shadow; + + // Main menu items + a { + padding: $sm-blue__desktop-vertical-item-padding-vertical $sm-blue__desktop-vertical-item-padding-horizontal; + + // Sub menu indicators + .sub-arrow { + top: 50%; + margin-top: -$sm-blue__desktop-arrow-size; + bottom: auto; + left: auto; + margin-left: 0; + right: 10px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-blue__desktop-arrow-color; + } + } + + // round the corners of the first and last items + > li:first-child > a, > li:first-child > :not(ul) a { + border-radius: $sm-blue__desktop-border-radius $sm-blue__desktop-border-radius 0 0; + } + > li:last-child > a, > li:last-child > :not(ul) a { + border-radius: 0 0 $sm-blue__desktop-border-radius $sm-blue__desktop-border-radius !important; + } + + // No main menu item separators + > li { + border-left: 0 !important; + } + + // Sub menus box + ul { + border-radius: $sm-blue__desktop-sub-border-radius !important; + + // Sub menus items + a { + padding: $sm-blue__desktop-sub-item-padding-vertical $sm-blue__desktop-sub-item-padding-horizontal; + } + } + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/mixins/_round-corners-last-item.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/mixins/_round-corners-last-item.scss new file mode 100644 index 0000000..9622771 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/mixins/_round-corners-last-item.scss @@ -0,0 +1,25 @@ +// Generate rules to round the corners of the last collapsible item + +@mixin sm-blue__round-corners-last-item($amount, $chainable: 'ul > li:last-child > ', $level: 4, $chain_prefix: '> li:last-child > ', $chain: '', $selector: '') { + $chain: $chain_prefix; + $selector: $chain + 'a, ' + $chain + '*:not(ul) a, ' + $chain + 'ul'; + @for $i from 1 through $level { + $chain: $chain + $chainable; + $selector: $selector + ', +' + $chain + ' a, ' + $chain + '*:not(ul) a, ' + $chain + ' ul'; + } + #{$selector} { + border-radius: 0 0 $amount $amount; + } + // highlighted items, don't need rounding since their sub is open + $chain: $chain_prefix; + $selector: $chain + 'a.highlighted, ' + $chain + '*:not(ul) a.highlighted'; + @for $i from 1 through $level { + $chain: $chain + $chainable; + $selector: $selector + ', +' + $chain + ' a.highlighted, ' + $chain + '*:not(ul) a.highlighted'; + } + #{$selector} { + border-radius: 0; + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/mixins/_sub-items-indentation.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/mixins/_sub-items-indentation.scss new file mode 100644 index 0000000..30cd01b --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/mixins/_sub-items-indentation.scss @@ -0,0 +1,15 @@ +// Generate rules to indent sub menus text +// +// We'll use left border to avoid messing with the padding. + +@mixin sm-blue__sub-items-indentation($amount, $chainable: 'ul ', $level: 4, $chain: '') { + @for $i from 1 through $level { + $chain: $chain + $chainable; + #{$chain} a, + #{$chain} a:hover, + #{$chain} a:focus, + #{$chain} a:active { + border-left: ($amount * ($i + 1)) solid transparent; + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.css b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.css new file mode 100644 index 0000000..4cff3bb --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.css @@ -0,0 +1,333 @@ +@import url(https://fonts.googleapis.com/css?family=PT+Sans+Narrow:400,700); +.sm-blue { + background: transparent; + border-radius: 8px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); +} +.sm-blue a, .sm-blue a:hover, .sm-blue a:focus, .sm-blue a:active { + padding: 10px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + color: #fff; + font-family: "PT Sans Narrow", "Arial Narrow", Arial, Helvetica, sans-serif; + font-size: 18px; + font-weight: bold; + line-height: 23px; + text-decoration: none; + text-shadow: 0 1px 0 rgba(0, 0, 0, 0.2); +} +.sm-blue a.current { + background: #006892; + background-image: linear-gradient(to bottom, #006188, #006f9c); + color: #fff; +} +.sm-blue a.disabled { + color: #a1d1e8; +} +.sm-blue a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 16px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(0, 0, 0, 0.1); + border-radius: 4px; +} +.sm-blue a .sub-arrow::before { + content: '+'; +} +.sm-blue a.highlighted .sub-arrow::before { + content: '-'; +} +.sm-blue > li:first-child > a, .sm-blue > li:first-child > :not(ul) a { + border-radius: 8px 8px 0 0; +} +.sm-blue > li:last-child > a, .sm-blue > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul, .sm-blue > li:last-child > ul > li:last-child > a, .sm-blue > li:last-child > ul > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul > li:last-child > ul, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul { + border-radius: 0 0 8px 8px; +} +.sm-blue > li:last-child > a.highlighted, .sm-blue > li:last-child > *:not(ul) a.highlighted, .sm-blue > li:last-child > ul > li:last-child > a.highlighted, .sm-blue > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-blue > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted { + border-radius: 0; +} +.sm-blue ul { + background: #fff; +} +.sm-blue ul ul { + background: rgba(102, 102, 102, 0.1); +} +.sm-blue ul a, .sm-blue ul a:hover, .sm-blue ul a:focus, .sm-blue ul a:active { + background: transparent; + color: #2b82ac; + font-size: 16px; + text-shadow: none; + border-left: 8px solid transparent; +} +.sm-blue ul a.current { + background: #006892; + background-image: linear-gradient(to bottom, #006188, #006f9c); + color: #fff; +} +.sm-blue ul a.disabled { + color: #b3b3b3; +} +.sm-blue ul ul a, +.sm-blue ul ul a:hover, +.sm-blue ul ul a:focus, +.sm-blue ul ul a:active { + border-left: 16px solid transparent; +} +.sm-blue ul ul ul a, +.sm-blue ul ul ul a:hover, +.sm-blue ul ul ul a:focus, +.sm-blue ul ul ul a:active { + border-left: 24px solid transparent; +} +.sm-blue ul ul ul ul a, +.sm-blue ul ul ul ul a:hover, +.sm-blue ul ul ul ul a:focus, +.sm-blue ul ul ul ul a:active { + border-left: 32px solid transparent; +} +.sm-blue ul ul ul ul ul a, +.sm-blue ul ul ul ul ul a:hover, +.sm-blue ul ul ul ul ul a:focus, +.sm-blue ul ul ul ul ul a:active { + border-left: 40px solid transparent; +} +.sm-blue ul li { + border-top: 1px solid rgba(0, 0, 0, 0.05); +} +.sm-blue ul li:first-child { + border-top: 0; +} + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-blue ul { + position: absolute; + width: 12em; + } + + .sm-blue li { + float: left; + } + + .sm-blue.sm-rtl li { + float: right; + } + + .sm-blue ul li, .sm-blue.sm-rtl ul li, .sm-blue.sm-vertical li { + float: none; + } + + .sm-blue a { + white-space: nowrap; + } + + .sm-blue ul a, .sm-blue.sm-vertical a { + white-space: normal; + } + + .sm-blue .sm-nowrap > li > a, .sm-blue .sm-nowrap > li > :not(ul) a { + white-space: nowrap; + } + + /* ...end */ + .sm-blue { + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + border-radius: 8px; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + } + .sm-blue a, .sm-blue a:hover, .sm-blue a:focus, .sm-blue a:active, .sm-blue a.highlighted { + padding: 13px 24px; + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + color: #fff; + } + .sm-blue a:hover, .sm-blue a:focus, .sm-blue a:active, .sm-blue a.highlighted { + background: #2b82ac; + background-image: linear-gradient(to bottom, #2d89b4, #297ca3); + } + .sm-blue a.current { + background: #006892; + background-image: linear-gradient(to bottom, #006188, #006f9c); + color: #fff; + } + .sm-blue a.disabled { + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + color: #a1d1e8; + } + .sm-blue a .sub-arrow { + top: auto; + margin-top: 0; + bottom: 2px; + left: 50%; + margin-left: -5px; + right: auto; + width: 0; + height: 0; + border-width: 5px; + border-style: solid dashed dashed dashed; + border-color: #a1d1e8 transparent transparent transparent; + background: transparent; + border-radius: 0; + } + .sm-blue a .sub-arrow::before { + display: none; + } + .sm-blue > li:first-child > a, .sm-blue > li:first-child > :not(ul) a { + border-radius: 8px 0 0 8px; + } + .sm-blue > li:last-child > a, .sm-blue > li:last-child > :not(ul) a { + border-radius: 0 8px 8px 0 !important; + } + .sm-blue > li { + border-left: 1px solid #2b82ac; + } + .sm-blue > li:first-child { + border-left: 0; + } + .sm-blue ul { + border: 1px solid #a8a8a8; + padding: 7px 0; + background: #fff; + border-radius: 0 0 4px 4px !important; + box-shadow: 0 5px 12px rgba(0, 0, 0, 0.2); + } + .sm-blue ul ul { + border-radius: 4px !important; + background: #fff; + } + .sm-blue ul a, .sm-blue ul a:hover, .sm-blue ul a:focus, .sm-blue ul a:active, .sm-blue ul a.highlighted { + border: 0 !important; + padding: 9px 23px; + background: transparent; + color: #2b82ac; + border-radius: 0 !important; + } + .sm-blue ul a:hover, .sm-blue ul a:focus, .sm-blue ul a:active, .sm-blue ul a.highlighted { + background: #3092c0; + background-image: linear-gradient(to bottom, #3298c8, #2e8cb8); + color: #fff; + } + .sm-blue ul a.current { + background: #006892; + background-image: linear-gradient(to bottom, #006188, #006f9c); + color: #fff; + } + .sm-blue ul a.disabled { + background: #fff; + color: #b3b3b3; + } + .sm-blue ul a .sub-arrow { + top: 50%; + margin-top: -5px; + bottom: auto; + left: auto; + margin-left: 0; + right: 10px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #a1d1e8; + } + .sm-blue ul li { + border: 0; + } + .sm-blue .scroll-up, + .sm-blue .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #fff; + height: 20px; + } + .sm-blue .scroll-up-arrow, + .sm-blue .scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-width: 8px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #2b82ac transparent; + } + .sm-blue .scroll-down-arrow { + top: 6px; + border-style: solid dashed dashed dashed; + border-color: #2b82ac transparent transparent transparent; + } + .sm-blue.sm-rtl.sm-vertical a .sub-arrow { + right: auto; + left: 10px; + border-style: dashed solid dashed dashed; + border-color: transparent #a1d1e8 transparent transparent; + } + .sm-blue.sm-rtl > li:first-child > a, .sm-blue.sm-rtl > li:first-child > :not(ul) a { + border-radius: 0 8px 8px 0; + } + .sm-blue.sm-rtl > li:last-child > a, .sm-blue.sm-rtl > li:last-child > :not(ul) a { + border-radius: 8px 0 0 8px !important; + } + .sm-blue.sm-rtl > li:first-child { + border-left: 1px solid #2b82ac; + } + .sm-blue.sm-rtl > li:last-child { + border-left: 0; + } + .sm-blue.sm-rtl ul a .sub-arrow { + right: auto; + left: 10px; + border-style: dashed solid dashed dashed; + border-color: transparent #a1d1e8 transparent transparent; + } + .sm-blue.sm-vertical { + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2); + } + .sm-blue.sm-vertical a { + padding: 9px 23px; + } + .sm-blue.sm-vertical a .sub-arrow { + top: 50%; + margin-top: -5px; + bottom: auto; + left: auto; + margin-left: 0; + right: 10px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #a1d1e8; + } + .sm-blue.sm-vertical > li:first-child > a, .sm-blue.sm-vertical > li:first-child > :not(ul) a { + border-radius: 8px 8px 0 0; + } + .sm-blue.sm-vertical > li:last-child > a, .sm-blue.sm-vertical > li:last-child > :not(ul) a { + border-radius: 0 0 8px 8px !important; + } + .sm-blue.sm-vertical > li { + border-left: 0 !important; + } + .sm-blue.sm-vertical ul { + border-radius: 4px !important; + } + .sm-blue.sm-vertical ul a { + padding: 9px 23px; + } +} + +/*# sourceMappingURL=sm-blue.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.css.map new file mode 100644 index 0000000..b9c9d7e --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["_sm-blue-theme.scss","mixins/_round-corners-last-item.scss","mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-blue.css" +} diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.scss new file mode 100644 index 0000000..ddb9f1c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-blue/sm-blue.scss @@ -0,0 +1,4 @@ +@import '_mixins.scss'; + +// the variables + the CSS +@import '_sm-blue-theme.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/_mixins.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/_mixins.scss new file mode 100644 index 0000000..0ed0650 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/_mixins.scss @@ -0,0 +1,2 @@ +@import 'mixins/_sub-items-indentation.scss'; +@import 'mixins/_round-corners-last-item.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/_sm-clean-theme.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/_sm-clean-theme.scss new file mode 100644 index 0000000..14bd800 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/_sm-clean-theme.scss @@ -0,0 +1,579 @@ +// This file is best viewed with Tab size 4 code indentation + + +// ----------------------------------------------------------------------------------------------------------------- +// 1. Theme Quick Settings (Variables) +// (for further control, you will need to dig into the actual CSS in 2.) +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 1.1. Colors +// ---------------------------------------------------------- + +$sm-clean__white: #fff !default; +$sm-clean__gray: darken($sm-clean__white, 6.5%) !default; +$sm-clean__gray-dark: darken($sm-clean__white, 26.5%) !default; +$sm-clean__gray-darker: darken($sm-clean__white, 66.5%) !default; +$sm-clean__red: #D23600 !default; + +$sm-clean__box-shadow: rgba(0, 0, 0, 0.2) !default; + + +// ---------------------------------------------------------- +// :: 1.2. Breakpoints +// ---------------------------------------------------------- + +$sm-clean__desktop-vp: 768px !default; // switch from collapsible to desktop + + +// ---------------------------------------------------------- +// :: 1.3. Typography +// ---------------------------------------------------------- + +$sm-clean__font-family: "Lucida Sans Unicode", "Lucida Sans", "Lucida Grande", Arial, sans-serif !default; +$sm-clean__font-size-base: 18px !default; +$sm-clean__font-size-small: 16px !default; +$sm-clean__line-height: 17px !default; + + +// ---------------------------------------------------------- +// :: 1.4. Borders +// ---------------------------------------------------------- + +$sm-clean__border-width: 1px !default; +$sm-clean__border-radius: 5px !default; + + +// ---------------------------------------------------------- +// :: 1.5. Collapsible main menu +// ---------------------------------------------------------- + +// Menu box +$sm-clean__collapsible-bg: $sm-clean__gray !default; +$sm-clean__collapsible-border-radius: $sm-clean__border-radius !default; + +// Items +$sm-clean__collapsible-item-color: $sm-clean__gray-darker !default; +$sm-clean__collapsible-item-current-color: $sm-clean__red !default; +$sm-clean__collapsible-item-disabled-color: darken($sm-clean__gray, 20%) !default; +$sm-clean__collapsible-item-padding-vertical: 13px !default; +$sm-clean__collapsible-item-padding-horizontal: 20px !default; + +// Items separators +$sm-clean__collapsible-separators-color: rgba(0, 0, 0, 0.05) !default; + +// Toggle button (sub menu indicators) +$sm-clean__collapsible-toggle-bg: rgba(255, 255, 255, 0.5) !default; + + +// ---------------------------------------------------------- +// :: 1.6. Collapsible sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-clean__collapsible-sub-bg: rgba(darken($sm-clean__collapsible-bg, 30%), 0.1) !default; + +// Items text indentation for deeper levels +$sm-clean__collapsible-sub-item-indentation: 8px !default; + + +// ---------------------------------------------------------- +// :: 1.7. Desktop main menu +// ---------------------------------------------------------- + +// Menu box +$sm-clean__desktop-bg: $sm-clean__gray !default; +$sm-clean__desktop-border-radius: 100px !default; +$sm-clean__desktop-padding-horizontal: 10px !default; + +// Items +$sm-clean__desktop-item-color: $sm-clean__gray-darker !default; +$sm-clean__desktop-item-hover-color: $sm-clean__red !default; +$sm-clean__desktop-item-current-color: $sm-clean__red !default; +$sm-clean__desktop-item-disabled-color: darken($sm-clean__gray, 20%) !default; +$sm-clean__desktop-item-padding-vertical: 12px !default; +$sm-clean__desktop-item-padding-horizontal: 12px !default; + +// Sub menu indicators +$sm-clean__desktop-arrow-size: 4px !default; // border-width +$sm-clean__desktop-arrow-color: $sm-clean__gray-darker !default; +$sm-clean__desktop-arrow-spacing: 4px !default; + +// Vertical menu box +$sm-clean__desktop-vertical-border-radius: $sm-clean__border-radius !default; +$sm-clean__desktop-vertical-padding-vertical: 10px !default; + +// Vertical items +$sm-clean__desktop-vertical-item-hover-bg: $sm-clean__white !default; +$sm-clean__desktop-vertical-item-padding-vertical: 10px !default; +$sm-clean__desktop-vertical-item-padding-horizontal: 20px !default; + + +// ---------------------------------------------------------- +// :: 1.8. Desktop sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-clean__desktop-sub-bg: $sm-clean__white !default; +$sm-clean__desktop-sub-border-color: $sm-clean__gray-dark !default; +$sm-clean__desktop-sub-border-radius: $sm-clean__border-radius !default; +$sm-clean__desktop-sub-box-shadow: 0 5px 9px $sm-clean__box-shadow !default; +$sm-clean__desktop-sub-padding-vertical: 5px !default; +$sm-clean__desktop-sub-padding-horizontal: 0 !default; + +// Items +$sm-clean__desktop-sub-item-color: $sm-clean__gray-darker !default; +$sm-clean__desktop-sub-item-hover-color: $sm-clean__red !default; +$sm-clean__desktop-sub-item-hover-bg: $sm-clean__gray !default; +$sm-clean__desktop-sub-item-current-color: $sm-clean__red !default; +$sm-clean__desktop-sub-item-disabled-color: darken($sm-clean__white, 20%) !default; +$sm-clean__desktop-sub-item-padding-vertical: 10px !default; +$sm-clean__desktop-sub-item-padding-horizontal: 20px !default; + +// Sub menu indicators +$sm-clean__desktop-sub-arrow-size: 5px !default; // border-width + +// Sub menu carets +$sm-clean__desktop-sub-caret-size: 8px !default; // border-width +$sm-clean__desktop-sub-caret-left: 30px !default; + + +// ----------------------------------------------------------------------------------------------------------------- +// 2. Theme CSS +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 2.1. Collapsible mode (mobile first) +// ---------------------------------------------------------- + +// calc item height and sub menus toggle button size +$sm-clean__item-height: $sm-clean__line-height + $sm-clean__collapsible-item-padding-vertical * 2; +// set toggle button size to 80% of item height +$sm-clean__toggle-size: floor($sm-clean__item-height * 0.8); +$sm-clean__toggle-spacing: floor($sm-clean__item-height * 0.1); + +// Main menu box +.sm-clean { + background: $sm-clean__collapsible-bg; + border-radius: $sm-clean__collapsible-border-radius; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active { + padding: $sm-clean__collapsible-item-padding-vertical $sm-clean__collapsible-item-padding-horizontal; + /* make room for the toggle button (sub indicator) */ + padding-right: $sm-clean__collapsible-item-padding-horizontal + $sm-clean__toggle-size + $sm-clean__toggle-spacing; + color: $sm-clean__collapsible-item-color; + font-family: $sm-clean__font-family; + font-size: $sm-clean__font-size-base; + font-weight: normal; + line-height: $sm-clean__line-height; + text-decoration: none; + } + + &.current { + color: $sm-clean__collapsible-item-current-color; + } + + &.disabled { + color: $sm-clean__collapsible-item-disabled-color; + } + + // Toggle buttons (sub menu indicators) + .sub-arrow { + position: absolute; + top: 50%; + margin-top: -(ceil($sm-clean__toggle-size / 2)); + left: auto; + right: $sm-clean__toggle-spacing; + width: $sm-clean__toggle-size; + height: $sm-clean__toggle-size; + overflow: hidden; + font: bold #{$sm-clean__font-size-small}/#{$sm-clean__toggle-size} monospace !important; + text-align: center; + text-shadow: none; + background: $sm-clean__collapsible-toggle-bg; + border-radius: $sm-clean__border-radius; + } + .sub-arrow::before { + content: '+'; + } + &.highlighted .sub-arrow::before { + content: '-'; + } + } + + // round the corners of the first item + > li:first-child > a, > li:first-child > :not(ul) a { + border-radius: $sm-clean__collapsible-border-radius $sm-clean__collapsible-border-radius 0 0; + } + // round the corners of the last item + @include sm-clean__round-corners-last-item($sm-clean__collapsible-border-radius); + + // Main menu items separators + li { + border-top: 1px solid $sm-clean__collapsible-separators-color; + } + > li:first-child { + border-top: 0; + } + + // Sub menus box + ul { + background: $sm-clean__collapsible-sub-bg; + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active { + font-size: $sm-clean__font-size-small; + // add indentation for sub menus text + border-left: $sm-clean__collapsible-sub-item-indentation solid transparent; + } + } + + // Add indentation for sub menus text for deeper levels + @include sm-clean__sub-items-indentation($sm-clean__collapsible-sub-item-indentation); + } +} + + +// ---------------------------------------------------------- +// :: 2.2. Desktop mode +// ---------------------------------------------------------- + +@media (min-width: $sm-clean__desktop-vp) { + + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-clean ul{position:absolute;width:12em;} + .sm-clean li{float:left;} + .sm-clean.sm-rtl li{float:right;} + .sm-clean ul li,.sm-clean.sm-rtl ul li,.sm-clean.sm-vertical li{float:none;} + .sm-clean a{white-space:nowrap;} + .sm-clean ul a,.sm-clean.sm-vertical a{white-space:normal;} + .sm-clean .sm-nowrap > li > a,.sm-clean .sm-nowrap > li > :not(ul) a{white-space:nowrap;} + /* ...end */ + + // Main menu box + .sm-clean { + padding: 0 $sm-clean__desktop-padding-horizontal; + background: $sm-clean__desktop-bg; + border-radius: $sm-clean__desktop-border-radius; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + padding: $sm-clean__desktop-item-padding-vertical $sm-clean__desktop-item-padding-horizontal; + color: $sm-clean__desktop-item-color; + border-radius: 0 !important; + } + + &:hover, + &:focus, + &:active, + &.highlighted { + color: $sm-clean__desktop-item-hover-color; + } + + &.current { + color: $sm-clean__desktop-item-current-color; + } + + &.disabled { + color: $sm-clean__desktop-item-disabled-color; + } + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-clean__desktop-item-padding-horizontal + $sm-clean__desktop-arrow-size * 2 + $sm-clean__desktop-arrow-spacing; + } + + // Sub menu indicators + .sub-arrow { + top: 50%; + margin-top: -(ceil($sm-clean__desktop-arrow-size / 2)); + right: $sm-clean__desktop-item-padding-horizontal; + width: 0; + height: 0; + border-width: $sm-clean__desktop-arrow-size; + border-style: solid dashed dashed dashed; + border-color: $sm-clean__desktop-arrow-color transparent transparent transparent; + background: transparent; + border-radius: 0; + } + // reset mobile first style + .sub-arrow::before { + display: none; + } + } + + // No main menu items separators + li { + border-top: 0; + } + + // First sub level carets + > li > ul::before, + > li > ul::after { + content: ''; + position: absolute; + top: -($sm-clean__desktop-sub-caret-size * 2 + $sm-clean__border-width * 2); + left: $sm-clean__desktop-sub-caret-left; + width: 0; + height: 0; + overflow: hidden; + border-width: ($sm-clean__desktop-sub-caret-size + $sm-clean__border-width); + border-style: dashed dashed solid dashed; + border-color: transparent transparent $sm-clean__desktop-sub-border-color transparent; + } + > li > ul::after { + top: -($sm-clean__desktop-sub-caret-size * 2); + left: ($sm-clean__desktop-sub-caret-left + $sm-clean__border-width); + border-width: $sm-clean__desktop-sub-caret-size; + border-color: transparent transparent $sm-clean__desktop-sub-bg transparent; + } + + // Sub menus box + ul { + border: $sm-clean__border-width solid $sm-clean__desktop-sub-border-color; + padding: $sm-clean__desktop-sub-padding-vertical $sm-clean__desktop-sub-padding-horizontal; + background: $sm-clean__desktop-sub-bg; + border-radius: $sm-clean__desktop-sub-border-radius !important; + box-shadow: $sm-clean__desktop-sub-box-shadow; + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + border: 0 !important; + padding: $sm-clean__desktop-sub-item-padding-vertical $sm-clean__desktop-sub-item-padding-horizontal; + color: $sm-clean__desktop-sub-item-color; + } + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-clean__desktop-sub-item-hover-bg; + color: $sm-clean__desktop-sub-item-hover-color; + } + + &.current { + color: $sm-clean__desktop-sub-item-current-color; + } + + &.disabled { + background: $sm-clean__desktop-sub-bg; + color: $sm-clean__desktop-sub-item-disabled-color; + } + + // No need for additional room for the sub arrows + &.has-submenu { + padding-right: $sm-clean__desktop-sub-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + right: 8px; + top: 50%; + margin-top: -$sm-clean__desktop-sub-arrow-size; + border-width: $sm-clean__desktop-sub-arrow-size; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-clean__desktop-arrow-color; + } + } + } + + // Scrolling arrows containers for tall sub menus - test sub menu: "Sub test" -> "more..." in the default download package + .scroll-up, + .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: $sm-clean__desktop-sub-bg; + height: 20px; + // width and position will be set automatically by the script + + &:hover { + background: $sm-clean__desktop-sub-item-hover-bg; + } + } + .scroll-up:hover .scroll-up-arrow { + border-color: transparent transparent $sm-clean__desktop-sub-item-hover-color transparent; + } + .scroll-down:hover .scroll-down-arrow { + border-color: $sm-clean__desktop-sub-item-hover-color transparent transparent transparent; + } + .scroll-up-arrow, + .scroll-down-arrow { + position: absolute; + top: 0; + left: 50%; + margin-left: -6px; + // we will use one-side border to create a triangle so that we don't use a real background image, of course, you can use a real image if you like too + width: 0; + height: 0; + overflow: hidden; + border-width: 6px; // tweak size of the arrow + border-style: dashed dashed solid dashed; + border-color: transparent transparent $sm-clean__desktop-sub-item-color transparent; + } + .scroll-down-arrow { + top: 8px; + border-style: solid dashed dashed dashed; + border-color: $sm-clean__desktop-sub-item-color transparent transparent transparent; + } + + + // Rigth-to-left + + // Main menu box + &.sm-rtl { + + // Main menu items + a { + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-clean__desktop-item-padding-horizontal; + padding-left: $sm-clean__desktop-item-padding-horizontal + $sm-clean__desktop-arrow-size * 2 + $sm-clean__desktop-arrow-spacing; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: $sm-clean__desktop-item-padding-horizontal; + } + } + + // Vertical main menu items + &.sm-vertical { + a { + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-clean__desktop-vertical-item-padding-vertical $sm-clean__desktop-vertical-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-clean__desktop-arrow-color transparent transparent; + } + } + } + + // First sub level carets + > li > ul::before { + left: auto; + right: $sm-clean__desktop-sub-caret-left; + } + > li > ul::after { + left: auto; + right: ($sm-clean__desktop-sub-caret-left + $sm-clean__border-width); + } + + // Sub menus box + ul { + a { + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-clean__desktop-sub-item-padding-vertical $sm-clean__desktop-sub-item-padding-horizontal !important; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-clean__desktop-arrow-color transparent transparent; + } + } + } + } + + + // Vertical main menu + + // Main menu box + &.sm-vertical { + padding: $sm-clean__desktop-vertical-padding-vertical 0; + border-radius: $sm-clean__desktop-vertical-border-radius; + + // Main menu items + a { + padding: $sm-clean__desktop-vertical-item-padding-vertical $sm-clean__desktop-vertical-item-padding-horizontal; + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-clean__desktop-vertical-item-hover-bg; + } + + &.disabled { + background: $sm-clean__desktop-bg; + } + + // Sub menu indicators + .sub-arrow { + right: 8px; + top: 50%; + margin-top: -$sm-clean__desktop-sub-arrow-size; + border-width: $sm-clean__desktop-sub-arrow-size; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-clean__desktop-arrow-color; + } + } + + // No sub level carets + > li > ul::before, + > li > ul::after { + display: none; + } + + // Sub menus box + ul { + + // Sub menus items + a { + padding: $sm-clean__desktop-sub-item-padding-vertical $sm-clean__desktop-sub-item-padding-horizontal; + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-clean__desktop-sub-item-hover-bg; + } + + &.disabled { + background: $sm-clean__desktop-sub-bg; + } + } + } + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/mixins/_round-corners-last-item.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/mixins/_round-corners-last-item.scss new file mode 100644 index 0000000..3687ba4 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/mixins/_round-corners-last-item.scss @@ -0,0 +1,25 @@ +// Generate rules to round the corners of the last collapsible item + +@mixin sm-clean__round-corners-last-item($amount, $chainable: 'ul > li:last-child > ', $level: 4, $chain_prefix: '> li:last-child > ', $chain: '', $selector: '') { + $chain: $chain_prefix; + $selector: $chain + 'a, ' + $chain + '*:not(ul) a, ' + $chain + 'ul'; + @for $i from 1 through $level { + $chain: $chain + $chainable; + $selector: $selector + ', +' + $chain + ' a, ' + $chain + '*:not(ul) a, ' + $chain + ' ul'; + } + #{$selector} { + border-radius: 0 0 $amount $amount; + } + // highlighted items, don't need rounding since their sub is open + $chain: $chain_prefix; + $selector: $chain + 'a.highlighted, ' + $chain + '*:not(ul) a.highlighted'; + @for $i from 1 through $level { + $chain: $chain + $chainable; + $selector: $selector + ', +' + $chain + ' a.highlighted, ' + $chain + '*:not(ul) a.highlighted'; + } + #{$selector} { + border-radius: 0; + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/mixins/_sub-items-indentation.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/mixins/_sub-items-indentation.scss new file mode 100644 index 0000000..0225b65 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/mixins/_sub-items-indentation.scss @@ -0,0 +1,15 @@ +// Generate rules to indent sub menus text +// +// We'll use left border to avoid messing with the padding. + +@mixin sm-clean__sub-items-indentation($amount, $chainable: 'ul ', $level: 4, $chain: '') { + @for $i from 1 through $level { + $chain: $chain + $chainable; + #{$chain} a, + #{$chain} a:hover, + #{$chain} a:focus, + #{$chain} a:active { + border-left: ($amount * ($i + 1)) solid transparent; + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.css b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.css new file mode 100644 index 0000000..4fb39b7 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.css @@ -0,0 +1,327 @@ +.sm-clean { + background: #eeeeee; + border-radius: 5px; +} +.sm-clean a, .sm-clean a:hover, .sm-clean a:focus, .sm-clean a:active { + padding: 13px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + color: #555555; + font-family: "Lucida Sans Unicode", "Lucida Sans", "Lucida Grande", Arial, sans-serif; + font-size: 18px; + font-weight: normal; + line-height: 17px; + text-decoration: none; +} +.sm-clean a.current { + color: #D23600; +} +.sm-clean a.disabled { + color: #bbbbbb; +} +.sm-clean a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 16px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(255, 255, 255, 0.5); + border-radius: 5px; +} +.sm-clean a .sub-arrow::before { + content: '+'; +} +.sm-clean a.highlighted .sub-arrow::before { + content: '-'; +} +.sm-clean > li:first-child > a, .sm-clean > li:first-child > :not(ul) a { + border-radius: 5px 5px 0 0; +} +.sm-clean > li:last-child > a, .sm-clean > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul, .sm-clean > li:last-child > ul > li:last-child > a, .sm-clean > li:last-child > ul > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul > li:last-child > ul, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul { + border-radius: 0 0 5px 5px; +} +.sm-clean > li:last-child > a.highlighted, .sm-clean > li:last-child > *:not(ul) a.highlighted, .sm-clean > li:last-child > ul > li:last-child > a.highlighted, .sm-clean > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > a.highlighted, .sm-clean > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > ul > li:last-child > *:not(ul) a.highlighted { + border-radius: 0; +} +.sm-clean li { + border-top: 1px solid rgba(0, 0, 0, 0.05); +} +.sm-clean > li:first-child { + border-top: 0; +} +.sm-clean ul { + background: rgba(162, 162, 162, 0.1); +} +.sm-clean ul a, .sm-clean ul a:hover, .sm-clean ul a:focus, .sm-clean ul a:active { + font-size: 16px; + border-left: 8px solid transparent; +} +.sm-clean ul ul a, +.sm-clean ul ul a:hover, +.sm-clean ul ul a:focus, +.sm-clean ul ul a:active { + border-left: 16px solid transparent; +} +.sm-clean ul ul ul a, +.sm-clean ul ul ul a:hover, +.sm-clean ul ul ul a:focus, +.sm-clean ul ul ul a:active { + border-left: 24px solid transparent; +} +.sm-clean ul ul ul ul a, +.sm-clean ul ul ul ul a:hover, +.sm-clean ul ul ul ul a:focus, +.sm-clean ul ul ul ul a:active { + border-left: 32px solid transparent; +} +.sm-clean ul ul ul ul ul a, +.sm-clean ul ul ul ul ul a:hover, +.sm-clean ul ul ul ul ul a:focus, +.sm-clean ul ul ul ul ul a:active { + border-left: 40px solid transparent; +} + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-clean ul { + position: absolute; + width: 12em; + } + + .sm-clean li { + float: left; + } + + .sm-clean.sm-rtl li { + float: right; + } + + .sm-clean ul li, .sm-clean.sm-rtl ul li, .sm-clean.sm-vertical li { + float: none; + } + + .sm-clean a { + white-space: nowrap; + } + + .sm-clean ul a, .sm-clean.sm-vertical a { + white-space: normal; + } + + .sm-clean .sm-nowrap > li > a, .sm-clean .sm-nowrap > li > :not(ul) a { + white-space: nowrap; + } + + /* ...end */ + .sm-clean { + padding: 0 10px; + background: #eeeeee; + border-radius: 100px; + } + .sm-clean a, .sm-clean a:hover, .sm-clean a:focus, .sm-clean a:active, .sm-clean a.highlighted { + padding: 12px 12px; + color: #555555; + border-radius: 0 !important; + } + .sm-clean a:hover, .sm-clean a:focus, .sm-clean a:active, .sm-clean a.highlighted { + color: #D23600; + } + .sm-clean a.current { + color: #D23600; + } + .sm-clean a.disabled { + color: #bbbbbb; + } + .sm-clean a.has-submenu { + padding-right: 24px; + } + .sm-clean a .sub-arrow { + top: 50%; + margin-top: -2px; + right: 12px; + width: 0; + height: 0; + border-width: 4px; + border-style: solid dashed dashed dashed; + border-color: #555555 transparent transparent transparent; + background: transparent; + border-radius: 0; + } + .sm-clean a .sub-arrow::before { + display: none; + } + .sm-clean li { + border-top: 0; + } + .sm-clean > li > ul::before, + .sm-clean > li > ul::after { + content: ''; + position: absolute; + top: -18px; + left: 30px; + width: 0; + height: 0; + overflow: hidden; + border-width: 9px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #bbbbbb transparent; + } + .sm-clean > li > ul::after { + top: -16px; + left: 31px; + border-width: 8px; + border-color: transparent transparent #fff transparent; + } + .sm-clean ul { + border: 1px solid #bbbbbb; + padding: 5px 0; + background: #fff; + border-radius: 5px !important; + box-shadow: 0 5px 9px rgba(0, 0, 0, 0.2); + } + .sm-clean ul a, .sm-clean ul a:hover, .sm-clean ul a:focus, .sm-clean ul a:active, .sm-clean ul a.highlighted { + border: 0 !important; + padding: 10px 20px; + color: #555555; + } + .sm-clean ul a:hover, .sm-clean ul a:focus, .sm-clean ul a:active, .sm-clean ul a.highlighted { + background: #eeeeee; + color: #D23600; + } + .sm-clean ul a.current { + color: #D23600; + } + .sm-clean ul a.disabled { + background: #fff; + color: #cccccc; + } + .sm-clean ul a.has-submenu { + padding-right: 20px; + } + .sm-clean ul a .sub-arrow { + right: 8px; + top: 50%; + margin-top: -5px; + border-width: 5px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #555555; + } + .sm-clean .scroll-up, + .sm-clean .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #fff; + height: 20px; + } + .sm-clean .scroll-up:hover, + .sm-clean .scroll-down:hover { + background: #eeeeee; + } + .sm-clean .scroll-up:hover .scroll-up-arrow { + border-color: transparent transparent #D23600 transparent; + } + .sm-clean .scroll-down:hover .scroll-down-arrow { + border-color: #D23600 transparent transparent transparent; + } + .sm-clean .scroll-up-arrow, + .sm-clean .scroll-down-arrow { + position: absolute; + top: 0; + left: 50%; + margin-left: -6px; + width: 0; + height: 0; + overflow: hidden; + border-width: 6px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #555555 transparent; + } + .sm-clean .scroll-down-arrow { + top: 8px; + border-style: solid dashed dashed dashed; + border-color: #555555 transparent transparent transparent; + } + .sm-clean.sm-rtl a.has-submenu { + padding-right: 12px; + padding-left: 24px; + } + .sm-clean.sm-rtl a .sub-arrow { + right: auto; + left: 12px; + } + .sm-clean.sm-rtl.sm-vertical a.has-submenu { + padding: 10px 20px; + } + .sm-clean.sm-rtl.sm-vertical a .sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent #555555 transparent transparent; + } + .sm-clean.sm-rtl > li > ul::before { + left: auto; + right: 30px; + } + .sm-clean.sm-rtl > li > ul::after { + left: auto; + right: 31px; + } + .sm-clean.sm-rtl ul a.has-submenu { + padding: 10px 20px !important; + } + .sm-clean.sm-rtl ul a .sub-arrow { + right: auto; + left: 8px; + border-style: dashed solid dashed dashed; + border-color: transparent #555555 transparent transparent; + } + .sm-clean.sm-vertical { + padding: 10px 0; + border-radius: 5px; + } + .sm-clean.sm-vertical a { + padding: 10px 20px; + } + .sm-clean.sm-vertical a:hover, .sm-clean.sm-vertical a:focus, .sm-clean.sm-vertical a:active, .sm-clean.sm-vertical a.highlighted { + background: #fff; + } + .sm-clean.sm-vertical a.disabled { + background: #eeeeee; + } + .sm-clean.sm-vertical a .sub-arrow { + right: 8px; + top: 50%; + margin-top: -5px; + border-width: 5px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #555555; + } + .sm-clean.sm-vertical > li > ul::before, + .sm-clean.sm-vertical > li > ul::after { + display: none; + } + .sm-clean.sm-vertical ul a { + padding: 10px 20px; + } + .sm-clean.sm-vertical ul a:hover, .sm-clean.sm-vertical ul a:focus, .sm-clean.sm-vertical ul a:active, .sm-clean.sm-vertical ul a.highlighted { + background: #eeeeee; + } + .sm-clean.sm-vertical ul a.disabled { + background: #fff; + } +} + +/*# sourceMappingURL=sm-clean.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.css.map new file mode 100644 index 0000000..552d708 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "AA6JA,SAAU;EACT,UAAU,EA/B+B,OAAe;EAgCxD,aAAa,EA1G4B,GAAwB;;AA8GhE,qEAGS;EACR,OAAO,EAAE,SAA2F;EACpG,qDAAqD;EACrD,aAAa,EAAE,IAAmG;EAClH,KAAK,EA7CgC,OAAsB;EA8C3D,WAAW,EA1IkB,wEAAwE;EA2IrG,SAAS,EA1IsB,IAAI;EA2InC,WAAW,EAAE,MAAM;EACnB,WAAW,EA1IkB,IAAI;EA2IjC,eAAe,EAAE,IAAI;;AAGtB,mBAAU;EACT,KAAK,EAnDsC,OAAc;;AAsD1D,oBAAW;EACV,KAAK,EA7HuC,OAA4B;;AAiIzE,sBAAW;EACV,QAAQ,EAAE,QAAQ;EAClB,GAAG,EAAE,GAAG;EACR,UAAU,EAAE,KAAmC;EAC/C,IAAI,EAAE,IAAI;EACV,KAAK,EAtCmB,GAAmC;EAuC3D,KAAK,EAxCgB,IAAmC;EAyCxD,MAAM,EAzCe,IAAmC;EA0CxD,QAAQ,EAAE,MAAM;EAChB,IAAI,EAAE,mCAAiF;EACvF,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,IAAI;EACjB,UAAU,EArI0B,wBAAwB;EAsI5D,aAAa,EA5JiB,GAAG;;AA8JlC,8BAAmB;EAClB,OAAO,EAAE,GAAG;;AAEb,0CAAiC;EAChC,OAAO,EAAE,GAAG;;AAKd,uEAAoD;EACnD,aAAa,EAAE,WAA6E;;AC1M7F,4nCAAa;EACZ,aAAa,EAAE,WAAmB;;AAUnC,k4BAAa;EACZ,aAAa,EAAE,CAAC;;ADoMjB,YAAG;EACF,UAAU,EAAE,6BAAiD;;AAE9D,0BAAiB;EAChB,UAAU,EAAE,CAAC;;AAId,YAAG;EACF,UAAU,EAzJyB,wBAAiD;;AA6JnF,iFAGS;EACR,SAAS,EAxMsB,IAAI;EA0MnC,WAAW,EAAE,qBAA6D;;AEtO5E;;;wBAGmB;EAClB,WAAW,EAAE,sBAAsC;;AAJpD;;;2BAGmB;EAClB,WAAW,EAAE,sBAAsC;;AAJpD;;;8BAGmB;EAClB,WAAW,EAAE,sBAAsC;;AAJpD;;;iCAGmB;EAClB,WAAW,EAAE,sBAAsC;;;AFgPtD,yBAA0C;EAEzC;;;;mDAIiD;EACjD,yDAAyD;EACzD,YAAY;IAAC,QAAQ,EAAC,QAAQ;IAAC,KAAK,EAAC,IAAI;;;EACzC,YAAY;IAAC,KAAK,EAAC,IAAI;;;EACvB,mBAAmB;IAAC,KAAK,EAAC,KAAK;;;EAC/B,iEAA+D;IAAC,KAAK,EAAC,IAAI;;;EAC1E,WAAW;IAAC,WAAW,EAAC,MAAM;;;EAC9B,uCAAsC;IAAC,WAAW,EAAC,MAAM;;;EACzD,qEAAoE;IAAC,WAAW,EAAC,MAAM;;;EACvF,YAAY;EAGZ,SAAU;IACT,OAAO,EAAE,MAAuC;IAChD,UAAU,EAhJ8B,OAAe;IAiJvD,aAAa,EA1LwB,KAAK;;EA8LzC,8FAIc;IACb,OAAO,EAAE,SAAmF;IAC5F,KAAK,EA7J+B,OAAsB;IA8J1D,aAAa,EAAE,YAAY;;EAG5B,iFAGc;IACb,KAAK,EAlKqC,OAAc;;EAqKzD,mBAAU;IACT,KAAK,EAtKqC,OAAc;;EAyKzD,oBAAW;IACV,KAAK,EA7MmC,OAA4B;;EAiNrE,uBAAc;IACb,aAAa,EAAE,IAAiH;;EAIjI,sBAAW;IACV,GAAG,EAAE,GAAG;IACR,UAAU,EAAE,IAA0C;IACtD,KAAK,EAvNsC,IAAI;IAwN/C,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,YAAY,EAvNqB,GAAG;IAwNpC,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2CAAkE;IAChF,UAAU,EAAE,WAAW;IACvB,aAAa,EAAE,CAAC;;EAGjB,8BAAmB;IAClB,OAAO,EAAE,IAAI;;EAKf,YAAG;IACF,UAAU,EAAE,CAAC;;EAId;4BACkB;IACjB,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,KAAsE;IAC3E,IAAI,EAtMiC,IAAI;IAuMzC,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,GAA6D;IAC3E,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2CAAuE;;EAEtF,0BAAiB;IAChB,GAAG,EAAE,KAAwC;IAC7C,IAAI,EAAE,IAA6D;IACnE,YAAY,EAlNyB,GAAG;IAmNxC,YAAY,EAAE,wCAA6D;;EAI5E,YAAG;IACF,MAAM,EAAE,iBAAiE;IACzE,OAAO,EAAE,KAAiF;IAC1F,UAAU,EA9OqB,IAAgB;IA+O/C,aAAa,EAAE,cAA+C;IAC9D,UAAU,EA7O2B,4BAAgC;;EAiPpE,6GAIc;IACb,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,SAA2F;IACpG,KAAK,EAnP8B,OAAsB;;EAsP1D,6FAGc;IACb,UAAU,EAxP2B,OAAe;IAyPpD,KAAK,EAxPoC,OAAc;;EA2PxD,sBAAU;IACT,KAAK,EA5PoC,OAAc;;EA+PxD,uBAAW;IACV,UAAU,EA3QmB,IAAgB;IA4Q7C,KAAK,EAhQqC,OAA6B;;EAoQxE,0BAAc;IACb,aAAa,EAnQgC,IAAI;;EAuQlD,yBAAW;IACV,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,GAAG;IACR,UAAU,EAAE,IAAkC;IAC9C,YAAY,EAxQuB,GAAG;IAyQtC,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2CAAkE;;EAMnF;wBACc;IACb,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,MAAM;IAClB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAvSqB,IAAgB;IAwS/C,MAAM,EAAE,IAAI;;EAGZ;8BAAQ;IACP,UAAU,EAlS4B,OAAe;;EAqSvD,2CAAkC;IACjC,YAAY,EAAE,2CAA2E;;EAE1F,+CAAsC;IACrC,YAAY,EAAE,2CAA2E;;EAE1F;8BACmB;IAClB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,GAAG;IACT,WAAW,EAAE,IAAI;IAEjB,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,MAAM;IAChB,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2CAAqE;;EAEpF,4BAAmB;IAClB,GAAG,EAAE,GAAG;IACR,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2CAAqE;;EAalF,8BAAc;IACb,aAAa,EA1W6B,IAAI;IA2W9C,YAAY,EAAE,IAAiH;;EAIhI,6BAAW;IACV,KAAK,EAAE,IAAI;IACX,IAAI,EAjXsC,IAAI;;EA0X9C,0CAAc;IACb,OAAO,EAAE,SAAqG;;EAI/G,yCAAW;IACV,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,GAAG;IACT,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2CAAkE;;EAMnF,kCAAkB;IACjB,IAAI,EAAE,IAAI;IACV,KAAK,EAhW+B,IAAI;;EAkWzC,iCAAiB;IAChB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,IAA6D;;EAQnE,iCAAc;IACb,OAAO,EAAE,oBAAsG;;EAIhH,gCAAW;IACV,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,GAAG;IACT,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2CAAkE;;EAUpF,qBAAc;IACb,OAAO,EAAE,MAA8C;IACvD,aAAa,EApa8B,GAAwB;;EAuanE,uBAAE;IACD,OAAO,EAAE,SAAqG;;EAE9G,iIAGc;IACb,UAAU,EAhamB,IAAgB;;EAma9C,gCAAW;IACV,UAAU,EA1Z2B,OAAe;;EA8ZrD,kCAAW;IACV,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,GAAG;IACR,UAAU,EAAE,IAAkC;IAC9C,YAAY,EA3ZuB,GAAG;IA4ZtC,YAAY,EAAE,0BAA0B;IACxC,YAAY,EAAE,2CAAkE;;EAKlF;wCACkB;IACjB,OAAO,EAAE,IAAI;;EAOb,0BAAE;IACD,OAAO,EAAE,SAA2F;;EAEpG,6IAGc;IACb,UAAU,EAzb0B,OAAe;;EA4bpD,mCAAW;IACV,UAAU,EAvckB,IAAgB", +"sources": ["_sm-clean-theme.scss","mixins/_round-corners-last-item.scss","mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-clean.css" +} diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.scss new file mode 100644 index 0000000..109712c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-clean/sm-clean.scss @@ -0,0 +1,4 @@ +@import '_mixins.scss'; + +// the variables + the CSS +@import '_sm-clean-theme.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-core-css.css b/frontend/web/themes/sport/plugins/smartmenus/css/sm-core-css.css new file mode 100644 index 0000000..6130ae2 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-core-css.css @@ -0,0 +1,14 @@ +/* Mobile first layout SmartMenus Core CSS (it's not recommended editing these rules) + You need this once per page no matter how many menu trees or different themes you use. +-------------------------------------------------------------------------------------------*/ + +.sm{box-sizing:border-box;position:relative;z-index:9999;-webkit-tap-highlight-color:rgba(0,0,0,0);} +.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;} +.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right;} +.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0;} +.sm ul{display:none;} +.sm li,.sm a{position:relative;} +.sm a{display:block;} +.sm a.disabled{cursor:default;} +.sm::after{content:"";display:block;height:0;font:0px/0 serif;clear:both;overflow:hidden;} +.sm *,.sm *::before,.sm *::after{box-sizing:inherit;} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/_mixins.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/_mixins.scss new file mode 100644 index 0000000..dd6ff7c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/_mixins.scss @@ -0,0 +1 @@ +@import 'mixins/_sub-items-indentation.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/_sm-mint-theme.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/_sm-mint-theme.scss new file mode 100644 index 0000000..ab8b120 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/_sm-mint-theme.scss @@ -0,0 +1,569 @@ +// This file is best viewed with Tab size 4 code indentation + + +// ----------------------------------------------------------------------------------------------------------------- +// 1. Theme Quick Settings (Variables) +// (for further control, you will need to dig into the actual CSS in 2.) +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 1.1. Colors +// ---------------------------------------------------------- + +$sm-mint__white: #fff !default; +$sm-mint__black: #333 !default; +$sm-mint__green: #F6FFED !default; +$sm-mint__green-dark: #8db863 !default; + +$sm-mint__box-shadow: rgba(0, 0, 0, 0.25) !default; + + +// ---------------------------------------------------------- +// :: 1.2. Breakpoints +// ---------------------------------------------------------- + +$sm-mint__desktop-vp: 768px !default; // switch from collapsible to desktop + + +// ---------------------------------------------------------- +// :: 1.3. Typography +// ---------------------------------------------------------- + +$sm-mint__font-family: Arial, sans-serif !default; +$sm-mint__font-size-base: 16px !default; +$sm-mint__font-size-small: 14px !default; +$sm-mint__line-height: 17px !default; + + +// ---------------------------------------------------------- +// :: 1.4. Borders +// ---------------------------------------------------------- + +$sm-mint__border-width: 2px !default; +$sm-mint__border-radius-base: 4px !default; + + +// ---------------------------------------------------------- +// :: 1.5. Collapsible main menu +// ---------------------------------------------------------- + +// Menu box +$sm-mint__collapsible-bg: $sm-mint__white !default; +$sm-mint__collapsible-border-color: $sm-mint__green-dark !default; + +// Items +$sm-mint__collapsible-item-color: $sm-mint__black !default; +$sm-mint__collapsible-item-disabled-color: darken($sm-mint__white, 20%) !default; +$sm-mint__collapsible-item-padding-vertical: 13px !default; +$sm-mint__collapsible-item-padding-horizontal: 20px !default; + +// Items separators +$sm-mint__collapsible-separators-color: rgba($sm-mint__green-dark, 0.2) !default; + +// Toggle button (sub menu indicators) +$sm-mint__collapsible-toggle-bg: rgba($sm-mint__green-dark, 0.2) !default; + + +// ---------------------------------------------------------- +// :: 1.6. Collapsible sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-mint__collapsible-sub-bg: rgba($sm-mint__green-dark, 0.2) !default; + +// Items text indentation for deeper levels +$sm-mint__collapsible-sub-item-indentation: 8px !default; + + +// ---------------------------------------------------------- +// :: 1.7. Desktop main menu +// ---------------------------------------------------------- + +// Menu box +$sm-mint__desktop-bg: transparent !default; + +// Items +$sm-mint__desktop-item-color: $sm-mint__black !default; +$sm-mint__desktop-item-hover-color: $sm-mint__white !default; +$sm-mint__desktop-item-hover-bg: $sm-mint__green-dark !default; +$sm-mint__desktop-item-highlighted-color: $sm-mint__black !default; +$sm-mint__desktop-item-highlighted-bg: $sm-mint__green !default; +$sm-mint__desktop-item-highlighted-box-shadow: 0 4px 3px $sm-mint__box-shadow !default; +$sm-mint__desktop-item-disabled-color: darken($sm-mint__white, 20%) !default; +$sm-mint__desktop-item-padding-vertical: 11px !default; +$sm-mint__desktop-item-padding-horizontal: 20px !default; + +// Sub menu indicators +$sm-mint__desktop-arrow-size: 6px !default; // border-width +$sm-mint__desktop-arrow-color: $sm-mint__green-dark !default; +$sm-mint__desktop-arrow-hover-color: $sm-mint__white !default; +$sm-mint__desktop-arrow-highlighted-color: $sm-mint__green-dark !default; +$sm-mint__desktop-arrow-spacing: 6px !default; + +// Vertical items +$sm-mint__desktop-vertical-item-highlighted-color: $sm-mint__desktop-item-hover-color !default; +$sm-mint__desktop-vertical-item-highlighted-bg: $sm-mint__desktop-item-hover-bg !default; +$sm-mint__desktop-vertical-item-padding-vertical: 10px !default; +$sm-mint__desktop-vertical-item-padding-horizontal: 20px !default; + + +// ---------------------------------------------------------- +// :: 1.8. Desktop sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-mint__desktop-sub-bg: $sm-mint__green !default; +$sm-mint__desktop-sub-box-shadow: 0 4px 3px $sm-mint__box-shadow !default; +$sm-mint__desktop-sub-padding-vertical: 8px !default; +$sm-mint__desktop-sub-padding-horizontal: 0 !default; + +// Items +$sm-mint__desktop-sub-item-color: $sm-mint__black !default; +$sm-mint__desktop-sub-item-hover-color: $sm-mint__white !default; +$sm-mint__desktop-sub-item-hover-bg: $sm-mint__green-dark !default; +$sm-mint__desktop-sub-item-disabled-color: lighten($sm-mint__black, 50%) !default; +$sm-mint__desktop-sub-item-padding-vertical: 10px !default; +$sm-mint__desktop-sub-item-padding-horizontal: 20px !default; + + +// ----------------------------------------------------------------------------------------------------------------- +// 2. Theme CSS +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 2.1. Collapsible mode (mobile first) +// ---------------------------------------------------------- + +// calc item height and sub menus toggle button size +$sm-mint__item-height: $sm-mint__line-height + $sm-mint__collapsible-item-padding-vertical * 2; +// set toggle button size to 80% of item height +$sm-mint__toggle-size: floor($sm-mint__item-height * 0.8); +$sm-mint__toggle-spacing: floor($sm-mint__item-height * 0.1); + +// Main menu box +.sm-mint { + border-top: $sm-mint__border-width solid $sm-mint__collapsible-border-color; + border-bottom: $sm-mint__border-width solid $sm-mint__collapsible-border-color; + background: $sm-mint__collapsible-bg; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active { + padding: $sm-mint__collapsible-item-padding-vertical $sm-mint__collapsible-item-padding-horizontal; + /* make room for the toggle button (sub indicator) */ + padding-right: $sm-mint__collapsible-item-padding-horizontal + $sm-mint__toggle-size + $sm-mint__toggle-spacing; + color: $sm-mint__collapsible-item-color; + font-family: $sm-mint__font-family; + font-size: $sm-mint__font-size-base; + font-weight: normal; + line-height: $sm-mint__line-height; + text-decoration: none; + } + + &.current { + font-weight: bold; + } + + &.disabled { + color: $sm-mint__collapsible-item-disabled-color; + } + + // Toggle buttons (sub menu indicators) + .sub-arrow { + position: absolute; + top: 50%; + margin-top: -(ceil($sm-mint__toggle-size / 2)); + left: auto; + right: $sm-mint__toggle-spacing; + width: $sm-mint__toggle-size; + height: $sm-mint__toggle-size; + overflow: hidden; + font: bold #{$sm-mint__font-size-small}/#{$sm-mint__toggle-size} monospace !important; + text-align: center; + text-shadow: none; + background: $sm-mint__collapsible-toggle-bg; + border-radius: $sm-mint__border-radius-base; + } + .sub-arrow::before { + content: '+'; + } + &.highlighted .sub-arrow::before { + content: '-'; + } + } + + // Main menu items separators + li { + border-top: 1px solid $sm-mint__collapsible-separators-color; + } + > li:first-child { + border-top: 0; + } + + // Sub menus box + ul { + background: $sm-mint__collapsible-sub-bg; + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active { + font-size: $sm-mint__font-size-small; + // add indentation for sub menus text + border-left: $sm-mint__collapsible-sub-item-indentation solid transparent; + } + } + + // Add indentation for sub menus text for deeper levels + @include sm-mint__sub-items-indentation($sm-mint__collapsible-sub-item-indentation); + } +} + + +// ---------------------------------------------------------- +// :: 2.2. Desktop mode +// ---------------------------------------------------------- + +@media (min-width: $sm-mint__desktop-vp) { + + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-mint ul{position:absolute;width:12em;} + .sm-mint li{float:left;} + .sm-mint.sm-rtl li{float:right;} + .sm-mint ul li,.sm-mint.sm-rtl ul li,.sm-mint.sm-vertical li{float:none;} + .sm-mint a{white-space:nowrap;} + .sm-mint ul a,.sm-mint.sm-vertical a{white-space:normal;} + .sm-mint .sm-nowrap > li > a,.sm-mint .sm-nowrap > li > :not(ul) a{white-space:nowrap;} + /* ...end */ + + // Main menu box + .sm-mint { + border-top: 0; + background: $sm-mint__desktop-bg; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + padding: $sm-mint__desktop-item-padding-vertical $sm-mint__desktop-item-padding-horizontal; + color: $sm-mint__desktop-item-color; + border-radius: $sm-mint__border-radius-base $sm-mint__border-radius-base 0 0; + } + + &:hover, + &:focus, + &:active { + background: $sm-mint__desktop-item-hover-bg; + color: $sm-mint__desktop-item-hover-color; + } + + &.highlighted { + background: $sm-mint__desktop-item-highlighted-bg; + color: $sm-mint__desktop-item-highlighted-color; + box-shadow: $sm-mint__desktop-item-highlighted-box-shadow; + } + + &.disabled { + background: transparent; + color: $sm-mint__desktop-item-disabled-color; + box-shadow: none; + } + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-mint__desktop-item-padding-horizontal + 8px + $sm-mint__desktop-arrow-spacing; + } + + // Sub menu indicators + .sub-arrow { + top: 50%; + margin-top: -(ceil($sm-mint__desktop-arrow-size / 2)); + right: $sm-mint__desktop-item-padding-horizontal; + width: 0; + height: 0; + border-width: $sm-mint__desktop-arrow-size ($sm-mint__desktop-arrow-size * 0.67) 0 ($sm-mint__desktop-arrow-size * 0.67); + border-style: solid dashed dashed dashed; + border-color: $sm-mint__desktop-arrow-color transparent transparent transparent; + background: transparent; + border-radius: 0; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow { + border-color: $sm-mint__desktop-arrow-hover-color transparent transparent transparent; + } + &.highlighted .sub-arrow { + border-color: $sm-mint__desktop-arrow-highlighted-color transparent transparent transparent; + } + &.disabled .sub-arrow { + border-color: $sm-mint__desktop-arrow-color transparent transparent transparent; + } + // reset mobile first style + .sub-arrow::before { + display: none; + } + } + + // No main menu items separators + li { + border-top: 0; + } + + // Sub menus box + ul { + border: 0; + padding: $sm-mint__desktop-sub-padding-vertical $sm-mint__desktop-sub-padding-horizontal; + background: $sm-mint__desktop-sub-bg; + border-radius: 0 $sm-mint__border-radius-base $sm-mint__border-radius-base $sm-mint__border-radius-base; + box-shadow: $sm-mint__desktop-sub-box-shadow; + + // 2+ sub levels need rounding of all corners + ul { + border-radius: $sm-mint__border-radius-base; + } + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + border: 0 !important; + padding: $sm-mint__desktop-sub-item-padding-vertical $sm-mint__desktop-sub-item-padding-horizontal; + color: $sm-mint__desktop-sub-item-color; + border-radius: 0; + } + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-mint__desktop-sub-item-hover-bg; + color: $sm-mint__desktop-sub-item-hover-color; + box-shadow: none; + } + + &.disabled { + background: transparent; + color: $sm-mint__desktop-sub-item-disabled-color; + } + + // No need for additional room for the sub arrows + &.has-submenu { + padding-right: $sm-mint__desktop-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + right: 10px; + margin-top: -($sm-mint__desktop-arrow-size * 0.67); + border-width: ($sm-mint__desktop-arrow-size * 0.67) 0 ($sm-mint__desktop-arrow-size * 0.67) $sm-mint__desktop-arrow-size; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-mint__desktop-arrow-color; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow, + &.highlighted .sub-arrow { + border-color: transparent transparent transparent $sm-mint__desktop-arrow-hover-color; + } + &.disabled .sub-arrow { + border-color: transparent transparent transparent $sm-mint__desktop-arrow-color; + } + } + } + + // Scrolling arrows containers for tall sub menus - test sub menu: "Sub test" -> "more..." in the default download package + .scroll-up, + .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: $sm-mint__desktop-sub-bg; + height: 20px; + // width and position will be set automatically by the script + } + .scroll-up-arrow, + .scroll-down-arrow { + position: absolute; + top: 6px; + left: 50%; + margin-left: -8px; + // we will use one-side border to create a triangle so that we don't use a real background image, of course, you can use a real image if you like too + width: 0; + height: 0; + overflow: hidden; + border-width: 0 6px 8px 6px; // tweak size of the arrow + border-style: dashed dashed solid dashed; + border-color: transparent transparent $sm-mint__desktop-arrow-color transparent; + } + .scroll-down-arrow { + border-width: 8px 6px 0 6px; + border-style: solid dashed dashed dashed; + border-color: $sm-mint__desktop-arrow-color transparent transparent transparent; + } + + + // Rigth-to-left + + // Main menu box + &.sm-rtl { + + // Main menu items + a { + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-mint__desktop-item-padding-horizontal; + padding-left: $sm-mint__desktop-item-padding-horizontal + 8px + $sm-mint__desktop-arrow-spacing; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: $sm-mint__desktop-item-padding-horizontal; + } + } + + // Vertical main menu + &.sm-vertical { + border-right: 0; + border-left: $sm-mint__border-width solid $sm-mint__collapsible-border-color; + + // Vertical main menu items + a { + border-radius: 0 $sm-mint__border-radius-base $sm-mint__border-radius-base 0; + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-mint__desktop-vertical-item-padding-vertical $sm-mint__desktop-vertical-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: 10px; + border-width: ($sm-mint__desktop-arrow-size * 0.67) $sm-mint__desktop-arrow-size ($sm-mint__desktop-arrow-size * 0.67) 0; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-mint__desktop-arrow-color transparent transparent; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow, + &.highlighted .sub-arrow { + border-color: transparent $sm-mint__desktop-arrow-hover-color transparent transparent; + } + &.disabled .sub-arrow { + border-color: transparent $sm-mint__desktop-arrow-color transparent transparent; + } + } + } + + // Sub menus box + ul { + border-radius: $sm-mint__border-radius-base 0 $sm-mint__border-radius-base $sm-mint__border-radius-base; + + a { + border-radius: 0 !important; + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-mint__desktop-sub-item-padding-vertical $sm-mint__desktop-sub-item-padding-horizontal !important; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: 10px; + border-width: ($sm-mint__desktop-arrow-size * 0.67) $sm-mint__desktop-arrow-size ($sm-mint__desktop-arrow-size * 0.67) 0; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-mint__desktop-arrow-color transparent transparent; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow, + &.highlighted .sub-arrow { + border-color: transparent $sm-mint__desktop-arrow-hover-color transparent transparent; + } + &.disabled .sub-arrow { + border-color: transparent $sm-mint__desktop-arrow-color transparent transparent; + } + } + } + } + + + // Vertical main menu + + // Main menu box + &.sm-vertical { + border-bottom: 0; + border-right: $sm-mint__border-width solid $sm-mint__collapsible-border-color; + + // Main menu items + a { + padding: $sm-mint__desktop-vertical-item-padding-vertical $sm-mint__desktop-vertical-item-padding-horizontal; + border-radius: $sm-mint__border-radius-base 0 0 $sm-mint__border-radius-base; + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-mint__desktop-item-hover-bg; + color: $sm-mint__desktop-item-hover-color; + box-shadow: none; + } + + &.disabled { + background: transparent; + color: $sm-mint__desktop-item-disabled-color; + } + + // Sub menu indicators + .sub-arrow { + right: 10px; + margin-top: -($sm-mint__desktop-arrow-size * 0.67); + border-width: ($sm-mint__desktop-arrow-size * 0.67) 0 ($sm-mint__desktop-arrow-size * 0.67) $sm-mint__desktop-arrow-size; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-mint__desktop-arrow-color; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow, + &.highlighted .sub-arrow { + border-color: transparent transparent transparent $sm-mint__desktop-arrow-hover-color; + } + &.disabled .sub-arrow { + border-color: transparent transparent transparent $sm-mint__desktop-arrow-color; + } + } + + // Sub menus box + ul { + border-radius: $sm-mint__border-radius-base !important; + + // Sub menus items + a { + padding: $sm-mint__desktop-sub-item-padding-vertical $sm-mint__desktop-sub-item-padding-horizontal; + } + } + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/mixins/_sub-items-indentation.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/mixins/_sub-items-indentation.scss new file mode 100644 index 0000000..2873133 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/mixins/_sub-items-indentation.scss @@ -0,0 +1,15 @@ +// Generate rules to indent sub menus text +// +// We'll use left border to avoid messing with the padding. + +@mixin sm-mint__sub-items-indentation($amount, $chainable: 'ul ', $level: 4, $chain: '') { + @for $i from 1 through $level { + $chain: $chain + $chainable; + #{$chain} a, + #{$chain} a:hover, + #{$chain} a:focus, + #{$chain} a:active { + border-left: ($amount * ($i + 1)) solid transparent; + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.css b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.css new file mode 100644 index 0000000..1ab6555 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.css @@ -0,0 +1,331 @@ +.sm-mint { + border-top: 2px solid #8db863; + border-bottom: 2px solid #8db863; + background: #fff; +} +.sm-mint a, .sm-mint a:hover, .sm-mint a:focus, .sm-mint a:active { + padding: 13px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + color: #333; + font-family: Arial, sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 17px; + text-decoration: none; +} +.sm-mint a.current { + font-weight: bold; +} +.sm-mint a.disabled { + color: #cccccc; +} +.sm-mint a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 14px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(141, 184, 99, 0.2); + border-radius: 4px; +} +.sm-mint a .sub-arrow::before { + content: '+'; +} +.sm-mint a.highlighted .sub-arrow::before { + content: '-'; +} +.sm-mint li { + border-top: 1px solid rgba(141, 184, 99, 0.2); +} +.sm-mint > li:first-child { + border-top: 0; +} +.sm-mint ul { + background: rgba(141, 184, 99, 0.2); +} +.sm-mint ul a, .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active { + font-size: 14px; + border-left: 8px solid transparent; +} +.sm-mint ul ul a, +.sm-mint ul ul a:hover, +.sm-mint ul ul a:focus, +.sm-mint ul ul a:active { + border-left: 16px solid transparent; +} +.sm-mint ul ul ul a, +.sm-mint ul ul ul a:hover, +.sm-mint ul ul ul a:focus, +.sm-mint ul ul ul a:active { + border-left: 24px solid transparent; +} +.sm-mint ul ul ul ul a, +.sm-mint ul ul ul ul a:hover, +.sm-mint ul ul ul ul a:focus, +.sm-mint ul ul ul ul a:active { + border-left: 32px solid transparent; +} +.sm-mint ul ul ul ul ul a, +.sm-mint ul ul ul ul ul a:hover, +.sm-mint ul ul ul ul ul a:focus, +.sm-mint ul ul ul ul ul a:active { + border-left: 40px solid transparent; +} + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-mint ul { + position: absolute; + width: 12em; + } + + .sm-mint li { + float: left; + } + + .sm-mint.sm-rtl li { + float: right; + } + + .sm-mint ul li, .sm-mint.sm-rtl ul li, .sm-mint.sm-vertical li { + float: none; + } + + .sm-mint a { + white-space: nowrap; + } + + .sm-mint ul a, .sm-mint.sm-vertical a { + white-space: normal; + } + + .sm-mint .sm-nowrap > li > a, .sm-mint .sm-nowrap > li > :not(ul) a { + white-space: nowrap; + } + + /* ...end */ + .sm-mint { + border-top: 0; + background: transparent; + } + .sm-mint a, .sm-mint a:hover, .sm-mint a:focus, .sm-mint a:active, .sm-mint a.highlighted { + padding: 11px 20px; + color: #333; + border-radius: 4px 4px 0 0; + } + .sm-mint a:hover, .sm-mint a:focus, .sm-mint a:active { + background: #8db863; + color: #fff; + } + .sm-mint a.highlighted { + background: #F6FFED; + color: #333; + box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25); + } + .sm-mint a.disabled { + background: transparent; + color: #cccccc; + box-shadow: none; + } + .sm-mint a.has-submenu { + padding-right: 34px; + } + .sm-mint a .sub-arrow { + top: 50%; + margin-top: -3px; + right: 20px; + width: 0; + height: 0; + border-width: 6px 4.02px 0 4.02px; + border-style: solid dashed dashed dashed; + border-color: #8db863 transparent transparent transparent; + background: transparent; + border-radius: 0; + } + .sm-mint a:hover .sub-arrow, .sm-mint a:focus .sub-arrow, .sm-mint a:active .sub-arrow { + border-color: #fff transparent transparent transparent; + } + .sm-mint a.highlighted .sub-arrow { + border-color: #8db863 transparent transparent transparent; + } + .sm-mint a.disabled .sub-arrow { + border-color: #8db863 transparent transparent transparent; + } + .sm-mint a .sub-arrow::before { + display: none; + } + .sm-mint li { + border-top: 0; + } + .sm-mint ul { + border: 0; + padding: 8px 0; + background: #F6FFED; + border-radius: 0 4px 4px 4px; + box-shadow: 0 4px 3px rgba(0, 0, 0, 0.25); + } + .sm-mint ul ul { + border-radius: 4px; + } + .sm-mint ul a, .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active, .sm-mint ul a.highlighted { + border: 0 !important; + padding: 10px 20px; + color: #333; + border-radius: 0; + } + .sm-mint ul a:hover, .sm-mint ul a:focus, .sm-mint ul a:active, .sm-mint ul a.highlighted { + background: #8db863; + color: #fff; + box-shadow: none; + } + .sm-mint ul a.disabled { + background: transparent; + color: #b3b3b3; + } + .sm-mint ul a.has-submenu { + padding-right: 20px; + } + .sm-mint ul a .sub-arrow { + right: 10px; + margin-top: -4.02px; + border-width: 4.02px 0 4.02px 6px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #8db863; + } + .sm-mint ul a:hover .sub-arrow, .sm-mint ul a:focus .sub-arrow, .sm-mint ul a:active .sub-arrow, .sm-mint ul a.highlighted .sub-arrow { + border-color: transparent transparent transparent #fff; + } + .sm-mint ul a.disabled .sub-arrow { + border-color: transparent transparent transparent #8db863; + } + .sm-mint .scroll-up, + .sm-mint .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #F6FFED; + height: 20px; + } + .sm-mint .scroll-up-arrow, + .sm-mint .scroll-down-arrow { + position: absolute; + top: 6px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-width: 0 6px 8px 6px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #8db863 transparent; + } + .sm-mint .scroll-down-arrow { + border-width: 8px 6px 0 6px; + border-style: solid dashed dashed dashed; + border-color: #8db863 transparent transparent transparent; + } + .sm-mint.sm-rtl a.has-submenu { + padding-right: 20px; + padding-left: 34px; + } + .sm-mint.sm-rtl a .sub-arrow { + right: auto; + left: 20px; + } + .sm-mint.sm-rtl.sm-vertical { + border-right: 0; + border-left: 2px solid #8db863; + } + .sm-mint.sm-rtl.sm-vertical a { + border-radius: 0 4px 4px 0; + } + .sm-mint.sm-rtl.sm-vertical a.has-submenu { + padding: 10px 20px; + } + .sm-mint.sm-rtl.sm-vertical a .sub-arrow { + right: auto; + left: 10px; + border-width: 4.02px 6px 4.02px 0; + border-style: dashed solid dashed dashed; + border-color: transparent #8db863 transparent transparent; + } + .sm-mint.sm-rtl.sm-vertical a:hover .sub-arrow, .sm-mint.sm-rtl.sm-vertical a:focus .sub-arrow, .sm-mint.sm-rtl.sm-vertical a:active .sub-arrow, .sm-mint.sm-rtl.sm-vertical a.highlighted .sub-arrow { + border-color: transparent #fff transparent transparent; + } + .sm-mint.sm-rtl.sm-vertical a.disabled .sub-arrow { + border-color: transparent #8db863 transparent transparent; + } + .sm-mint.sm-rtl ul { + border-radius: 4px 0 4px 4px; + } + .sm-mint.sm-rtl ul a { + border-radius: 0 !important; + } + .sm-mint.sm-rtl ul a.has-submenu { + padding: 10px 20px !important; + } + .sm-mint.sm-rtl ul a .sub-arrow { + right: auto; + left: 10px; + border-width: 4.02px 6px 4.02px 0; + border-style: dashed solid dashed dashed; + border-color: transparent #8db863 transparent transparent; + } + .sm-mint.sm-rtl ul a:hover .sub-arrow, .sm-mint.sm-rtl ul a:focus .sub-arrow, .sm-mint.sm-rtl ul a:active .sub-arrow, .sm-mint.sm-rtl ul a.highlighted .sub-arrow { + border-color: transparent #fff transparent transparent; + } + .sm-mint.sm-rtl ul a.disabled .sub-arrow { + border-color: transparent #8db863 transparent transparent; + } + .sm-mint.sm-vertical { + border-bottom: 0; + border-right: 2px solid #8db863; + } + .sm-mint.sm-vertical a { + padding: 10px 20px; + border-radius: 4px 0 0 4px; + } + .sm-mint.sm-vertical a:hover, .sm-mint.sm-vertical a:focus, .sm-mint.sm-vertical a:active, .sm-mint.sm-vertical a.highlighted { + background: #8db863; + color: #fff; + box-shadow: none; + } + .sm-mint.sm-vertical a.disabled { + background: transparent; + color: #cccccc; + } + .sm-mint.sm-vertical a .sub-arrow { + right: 10px; + margin-top: -4.02px; + border-width: 4.02px 0 4.02px 6px; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent #8db863; + } + .sm-mint.sm-vertical a:hover .sub-arrow, .sm-mint.sm-vertical a:focus .sub-arrow, .sm-mint.sm-vertical a:active .sub-arrow, .sm-mint.sm-vertical a.highlighted .sub-arrow { + border-color: transparent transparent transparent #fff; + } + .sm-mint.sm-vertical a.disabled .sub-arrow { + border-color: transparent transparent transparent #8db863; + } + .sm-mint.sm-vertical ul { + border-radius: 4px !important; + } + .sm-mint.sm-vertical ul a { + padding: 10px 20px; + } +} + +/*# sourceMappingURL=sm-mint.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.css.map new file mode 100644 index 0000000..2220dbd --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["_sm-mint-theme.scss","mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-mint.css" +} diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.scss new file mode 100644 index 0000000..00dc267 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-mint/sm-mint.scss @@ -0,0 +1,4 @@ +@import '_mixins.scss'; + +// the variables + the CSS +@import '_sm-mint-theme.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/_mixins.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/_mixins.scss new file mode 100644 index 0000000..dd6ff7c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/_mixins.scss @@ -0,0 +1 @@ +@import 'mixins/_sub-items-indentation.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/_sm-simple-theme.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/_sm-simple-theme.scss new file mode 100644 index 0000000..e72e20b --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/_sm-simple-theme.scss @@ -0,0 +1,446 @@ +// This file is best viewed with Tab size 4 code indentation + + +// ----------------------------------------------------------------------------------------------------------------- +// 1. Theme Quick Settings (Variables) +// (for further control, you will need to dig into the actual CSS in 2.) +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 1.1. Colors +// ---------------------------------------------------------- + +$sm-simple__white: #fff !default; +$sm-simple__gray: darken($sm-simple__white, 6.5%) !default; +$sm-simple__gray-dark: darken($sm-simple__white, 26.5%) !default; +$sm-simple__gray-darker: darken($sm-simple__white, 66.5%) !default; + +$sm-simple__box-shadow: rgba(0, 0, 0, 0.2) !default; + + +// ---------------------------------------------------------- +// :: 1.2. Breakpoints +// ---------------------------------------------------------- + +$sm-simple__desktop-vp: 768px !default; // switch from collapsible to desktop + + +// ---------------------------------------------------------- +// :: 1.3. Typography +// ---------------------------------------------------------- + +$sm-simple__font-family: "Lucida Sans Unicode", "Lucida Sans", "Lucida Grande", Arial, sans-serif !default; +$sm-simple__font-size-base: 16px !default; +$sm-simple__font-size-small: 14px !default; +$sm-simple__line-height: 17px !default; + + +// ---------------------------------------------------------- +// :: 1.4. Borders +// ---------------------------------------------------------- + +$sm-simple__border-width: 1px !default; + + +// ---------------------------------------------------------- +// :: 1.5. Collapsible main menu +// ---------------------------------------------------------- + +// Menu box +$sm-simple__collapsible-bg: $sm-simple__white !default; +$sm-simple__collapsible-border-color: $sm-simple__gray-dark !default; +$sm-simple__collapsible-box-shadow: 0 1px 1px $sm-simple__box-shadow !default; + +// Items +$sm-simple__collapsible-item-color: $sm-simple__gray-darker !default; +$sm-simple__collapsible-item-current-color: $sm-simple__white !default; +$sm-simple__collapsible-item-current-bg: $sm-simple__gray-darker !default; +$sm-simple__collapsible-item-disabled-color: darken($sm-simple__white, 20%) !default; +$sm-simple__collapsible-item-padding-vertical: 13px !default; +$sm-simple__collapsible-item-padding-horizontal: 20px !default; + +// Items separators +$sm-simple__collapsible-separators-color: rgba(0, 0, 0, 0.05) !default; + +// Toggle button (sub menu indicators) +$sm-simple__collapsible-toggle-bg: rgba(0, 0, 0, 0.08) !default; + + +// ---------------------------------------------------------- +// :: 1.6. Collapsible sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-simple__collapsible-sub-bg: rgba(darken($sm-simple__collapsible-bg, 30%), 0.1) !default; + +// Items text indentation for deeper levels +$sm-simple__collapsible-sub-item-indentation: 8px !default; + + +// ---------------------------------------------------------- +// :: 1.7. Desktop main menu and sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-simple__desktop-bg: $sm-simple__white !default; + +// Items +$sm-simple__desktop-item-color: $sm-simple__gray-darker !default; +$sm-simple__desktop-item-hover-bg: $sm-simple__gray !default; +$sm-simple__desktop-item-current-color: $sm-simple__white !default; +$sm-simple__desktop-item-current-bg: $sm-simple__gray-darker !default; +$sm-simple__desktop-item-disabled-color: darken($sm-simple__white, 20%) !default; +$sm-simple__desktop-item-padding-vertical: 11px !default; +$sm-simple__desktop-item-padding-horizontal: 20px !default; + +// Items separators +$sm-simple__desktop-separators-size: 1px !default; +$sm-simple__desktop-separators-color: $sm-simple__gray !default; + +// Sub menu indicators +$sm-simple__desktop-arrow-spacing: 4px !default; + + +// ----------------------------------------------------------------------------------------------------------------- +// 2. Theme CSS +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 2.1. Collapsible mode (mobile first) +// ---------------------------------------------------------- + +// calc item height and sub menus toggle button size +$sm-simple__item-height: $sm-simple__line-height + $sm-simple__collapsible-item-padding-vertical * 2; +// set toggle button size to 80% of item height +$sm-simple__toggle-size: floor($sm-simple__item-height * 0.8); +$sm-simple__toggle-spacing: floor($sm-simple__item-height * 0.1); + +// Main menu box +.sm-simple { + border: $sm-simple__border-width solid $sm-simple__collapsible-border-color; + background: $sm-simple__collapsible-bg; + box-shadow: $sm-simple__collapsible-box-shadow; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active { + padding: $sm-simple__collapsible-item-padding-vertical $sm-simple__collapsible-item-padding-horizontal; + /* make room for the toggle button (sub indicator) */ + padding-right: $sm-simple__collapsible-item-padding-horizontal + $sm-simple__toggle-size + $sm-simple__toggle-spacing; + color: $sm-simple__collapsible-item-color; + font-family: $sm-simple__font-family; + font-size: $sm-simple__font-size-base; + font-weight: normal; + line-height: $sm-simple__line-height; + text-decoration: none; + } + + &.current { + background: $sm-simple__collapsible-item-current-bg; + color: $sm-simple__collapsible-item-current-color; + } + + &.disabled { + color: $sm-simple__collapsible-item-disabled-color; + } + + // Toggle buttons (sub menu indicators) + .sub-arrow { + position: absolute; + top: 50%; + margin-top: -(ceil($sm-simple__toggle-size / 2)); + left: auto; + right: $sm-simple__toggle-spacing; + width: $sm-simple__toggle-size; + height: $sm-simple__toggle-size; + overflow: hidden; + font: bold #{$sm-simple__font-size-small}/#{$sm-simple__toggle-size} monospace !important; + text-align: center; + text-shadow: none; + background: $sm-simple__collapsible-toggle-bg; + } + .sub-arrow::before { + content: '+'; + } + &.highlighted .sub-arrow::before { + content: '-'; + } + } + + // Main menu items separators + li { + border-top: 1px solid $sm-simple__collapsible-separators-color; + } + > li:first-child { + border-top: 0; + } + + // Sub menus box + ul { + background: $sm-simple__collapsible-sub-bg; + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active { + font-size: $sm-simple__font-size-small; + // add indentation for sub menus text + border-left: $sm-simple__collapsible-sub-item-indentation solid transparent; + } + } + + // Add indentation for sub menus text for deeper levels + @include sm-simple__sub-items-indentation($sm-simple__collapsible-sub-item-indentation); + } +} + + +// ---------------------------------------------------------- +// :: 2.2. Desktop mode +// ---------------------------------------------------------- + +@media (min-width: $sm-simple__desktop-vp) { + + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-simple ul{position:absolute;width:12em;} + .sm-simple li{float:left;} + .sm-simple.sm-rtl li{float:right;} + .sm-simple ul li,.sm-simple.sm-rtl ul li,.sm-simple.sm-vertical li{float:none;} + .sm-simple a{white-space:nowrap;} + .sm-simple ul a,.sm-simple.sm-vertical a{white-space:normal;} + .sm-simple .sm-nowrap > li > a,.sm-simple .sm-nowrap > li > :not(ul) a{white-space:nowrap;} + /* ...end */ + + // Main menu box + .sm-simple { + background: $sm-simple__desktop-bg; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + padding: $sm-simple__desktop-item-padding-vertical $sm-simple__desktop-item-padding-horizontal; + color: $sm-simple__desktop-item-color; + } + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-simple__desktop-item-hover-bg; + } + + &.current { + background: $sm-simple__desktop-item-current-bg; + color: $sm-simple__desktop-item-current-color; + } + + &.disabled { + background: $sm-simple__desktop-bg; + color: $sm-simple__desktop-item-disabled-color; + } + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-simple__desktop-item-padding-horizontal + 8px + $sm-simple__desktop-arrow-spacing; + } + + // Sub menu indicators + .sub-arrow { + top: 50%; + margin-top: -8px; + right: $sm-simple__desktop-item-padding-horizontal; + width: 8px; + height: 16px; + font: #{$sm-simple__font-size-small}/16px monospace !important; + background: transparent; + } + // reset mobile first style + &.highlighted .sub-arrow::before { + content: '+'; + } + } + + // Main menu items separators + > li { + border-top: 0; + border-left: $sm-simple__desktop-separators-size solid $sm-simple__desktop-separators-color; + + &:first-child { + border-left: 0; + } + } + + // Sub menus box + ul { + border: $sm-simple__border-width solid $sm-simple__collapsible-border-color; + background: $sm-simple__desktop-bg; + box-shadow: $sm-simple__collapsible-box-shadow; + + // Sub menus items + a { + border: 0 !important; + + // No need for additional room for the sub arrows + &.has-submenu { + padding-right: $sm-simple__desktop-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + left: $sm-simple__desktop-item-padding-horizontal - 8px - $sm-simple__desktop-arrow-spacing; + right: auto; + } + } + + // Sub menus items separators + > li { + border-left: 0; + border-top: $sm-simple__desktop-separators-size solid $sm-simple__desktop-separators-color; + + &:first-child { + border-top: 0; + } + } + } + + // Scrolling arrows containers for tall sub menus - test sub menu: "Sub test" -> "more..." in the default download package + .scroll-up, + .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: $sm-simple__desktop-bg; + height: 20px; + // width and position will be set automatically by the script + } + .scroll-up-arrow, + .scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + // we will use one-side border to create a triangle so that we don't use a real background image, of course, you can use a real image if you like too + width: 0; + height: 0; + overflow: hidden; + border-width: 8px; // tweak size of the arrow + border-style: dashed dashed solid dashed; + border-color: transparent transparent $sm-simple__desktop-item-color transparent; + } + .scroll-down-arrow { + top: 6px; + border-style: solid dashed dashed dashed; + border-color: $sm-simple__desktop-item-color transparent transparent transparent; + } + + + // Rigth-to-left + + // Main menu box + &.sm-rtl { + + // Main menu items + a { + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-simple__desktop-item-padding-horizontal; + padding-left: $sm-simple__desktop-item-padding-horizontal + 8px + $sm-simple__desktop-arrow-spacing; + } + + // Sub menu indicators + .sub-arrow { + left: $sm-simple__desktop-item-padding-horizontal; + right: auto; + } + } + + // Vertical main menu items + &.sm-vertical { + a { + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-simple__desktop-item-padding-vertical $sm-simple__desktop-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + left: auto; + right: $sm-simple__desktop-item-padding-horizontal - 8px - $sm-simple__desktop-arrow-spacing; + } + } + } + + // Main menu items separators + > li { + &:first-child { + border-left: $sm-simple__desktop-separators-size solid $sm-simple__desktop-separators-color; + } + &:last-child { + border-left: 0; + } + } + + // Sub menus box + ul { + a { + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-simple__desktop-item-padding-vertical $sm-simple__desktop-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + left: auto; + right: $sm-simple__desktop-item-padding-horizontal - 8px - $sm-simple__desktop-arrow-spacing; + } + } + } + } + + + // Vertical main menu + + // Main menu box + &.sm-vertical { + + // Main menu items + a { + + // Sub menu indicators + .sub-arrow { + left: $sm-simple__desktop-item-padding-horizontal - 8px - $sm-simple__desktop-arrow-spacing; + right: auto; + } + } + + // Main menu items separators + li { + border-left: 0; + border-top: $sm-simple__desktop-separators-size solid $sm-simple__desktop-separators-color; + } + > li:first-child { + border-top: 0; + } + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/mixins/_sub-items-indentation.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/mixins/_sub-items-indentation.scss new file mode 100644 index 0000000..966e7c6 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/mixins/_sub-items-indentation.scss @@ -0,0 +1,15 @@ +// Generate rules to indent sub menus text +// +// We'll use left border to avoid messing with the padding. + +@mixin sm-simple__sub-items-indentation($amount, $chainable: 'ul ', $level: 4, $chain: '') { + @for $i from 1 through $level { + $chain: $chain + $chainable; + #{$chain} a, + #{$chain} a:hover, + #{$chain} a:focus, + #{$chain} a:active { + border-left: ($amount * ($i + 1)) solid transparent; + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.css b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.css new file mode 100644 index 0000000..8fcf0c1 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.css @@ -0,0 +1,249 @@ +.sm-simple { + border: 1px solid #bbbbbb; + background: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); +} +.sm-simple a, .sm-simple a:hover, .sm-simple a:focus, .sm-simple a:active { + padding: 13px 20px; + /* make room for the toggle button (sub indicator) */ + padding-right: 58px; + color: #555555; + font-family: "Lucida Sans Unicode", "Lucida Sans", "Lucida Grande", Arial, sans-serif; + font-size: 16px; + font-weight: normal; + line-height: 17px; + text-decoration: none; +} +.sm-simple a.current { + background: #555555; + color: #fff; +} +.sm-simple a.disabled { + color: #cccccc; +} +.sm-simple a .sub-arrow { + position: absolute; + top: 50%; + margin-top: -17px; + left: auto; + right: 4px; + width: 34px; + height: 34px; + overflow: hidden; + font: bold 14px/34px monospace !important; + text-align: center; + text-shadow: none; + background: rgba(0, 0, 0, 0.08); +} +.sm-simple a .sub-arrow::before { + content: '+'; +} +.sm-simple a.highlighted .sub-arrow::before { + content: '-'; +} +.sm-simple li { + border-top: 1px solid rgba(0, 0, 0, 0.05); +} +.sm-simple > li:first-child { + border-top: 0; +} +.sm-simple ul { + background: rgba(179, 179, 179, 0.1); +} +.sm-simple ul a, .sm-simple ul a:hover, .sm-simple ul a:focus, .sm-simple ul a:active { + font-size: 14px; + border-left: 8px solid transparent; +} +.sm-simple ul ul a, +.sm-simple ul ul a:hover, +.sm-simple ul ul a:focus, +.sm-simple ul ul a:active { + border-left: 16px solid transparent; +} +.sm-simple ul ul ul a, +.sm-simple ul ul ul a:hover, +.sm-simple ul ul ul a:focus, +.sm-simple ul ul ul a:active { + border-left: 24px solid transparent; +} +.sm-simple ul ul ul ul a, +.sm-simple ul ul ul ul a:hover, +.sm-simple ul ul ul ul a:focus, +.sm-simple ul ul ul ul a:active { + border-left: 32px solid transparent; +} +.sm-simple ul ul ul ul ul a, +.sm-simple ul ul ul ul ul a:hover, +.sm-simple ul ul ul ul ul a:focus, +.sm-simple ul ul ul ul ul a:active { + border-left: 40px solid transparent; +} + +@media (min-width: 768px) { + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-simple ul { + position: absolute; + width: 12em; + } + + .sm-simple li { + float: left; + } + + .sm-simple.sm-rtl li { + float: right; + } + + .sm-simple ul li, .sm-simple.sm-rtl ul li, .sm-simple.sm-vertical li { + float: none; + } + + .sm-simple a { + white-space: nowrap; + } + + .sm-simple ul a, .sm-simple.sm-vertical a { + white-space: normal; + } + + .sm-simple .sm-nowrap > li > a, .sm-simple .sm-nowrap > li > :not(ul) a { + white-space: nowrap; + } + + /* ...end */ + .sm-simple { + background: #fff; + } + .sm-simple a, .sm-simple a:hover, .sm-simple a:focus, .sm-simple a:active, .sm-simple a.highlighted { + padding: 11px 20px; + color: #555555; + } + .sm-simple a:hover, .sm-simple a:focus, .sm-simple a:active, .sm-simple a.highlighted { + background: #eeeeee; + } + .sm-simple a.current { + background: #555555; + color: #fff; + } + .sm-simple a.disabled { + background: #fff; + color: #cccccc; + } + .sm-simple a.has-submenu { + padding-right: 32px; + } + .sm-simple a .sub-arrow { + top: 50%; + margin-top: -8px; + right: 20px; + width: 8px; + height: 16px; + font: 14px/16px monospace !important; + background: transparent; + } + .sm-simple a.highlighted .sub-arrow::before { + content: '+'; + } + .sm-simple > li { + border-top: 0; + border-left: 1px solid #eeeeee; + } + .sm-simple > li:first-child { + border-left: 0; + } + .sm-simple ul { + border: 1px solid #bbbbbb; + background: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + } + .sm-simple ul a { + border: 0 !important; + } + .sm-simple ul a.has-submenu { + padding-right: 20px; + } + .sm-simple ul a .sub-arrow { + left: 8px; + right: auto; + } + .sm-simple ul > li { + border-left: 0; + border-top: 1px solid #eeeeee; + } + .sm-simple ul > li:first-child { + border-top: 0; + } + .sm-simple .scroll-up, + .sm-simple .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: #fff; + height: 20px; + } + .sm-simple .scroll-up-arrow, + .sm-simple .scroll-down-arrow { + position: absolute; + top: -2px; + left: 50%; + margin-left: -8px; + width: 0; + height: 0; + overflow: hidden; + border-width: 8px; + border-style: dashed dashed solid dashed; + border-color: transparent transparent #555555 transparent; + } + .sm-simple .scroll-down-arrow { + top: 6px; + border-style: solid dashed dashed dashed; + border-color: #555555 transparent transparent transparent; + } + .sm-simple.sm-rtl a.has-submenu { + padding-right: 20px; + padding-left: 32px; + } + .sm-simple.sm-rtl a .sub-arrow { + left: 20px; + right: auto; + } + .sm-simple.sm-rtl.sm-vertical a.has-submenu { + padding: 11px 20px; + } + .sm-simple.sm-rtl.sm-vertical a .sub-arrow { + left: auto; + right: 8px; + } + .sm-simple.sm-rtl > li:first-child { + border-left: 1px solid #eeeeee; + } + .sm-simple.sm-rtl > li:last-child { + border-left: 0; + } + .sm-simple.sm-rtl ul a.has-submenu { + padding: 11px 20px; + } + .sm-simple.sm-rtl ul a .sub-arrow { + left: auto; + right: 8px; + } + .sm-simple.sm-vertical a .sub-arrow { + left: 8px; + right: auto; + } + .sm-simple.sm-vertical li { + border-left: 0; + border-top: 1px solid #eeeeee; + } + .sm-simple.sm-vertical > li:first-child { + border-top: 0; + } +} + +/*# sourceMappingURL=sm-simple.css.map */ diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.css.map b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.css.map new file mode 100644 index 0000000..88f0476 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["_sm-simple-theme.scss","mixins/_sub-items-indentation.scss"], +"names": [], +"file": "sm-simple.css" +} diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.scss new file mode 100644 index 0000000..5415dbf --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-simple/sm-simple.scss @@ -0,0 +1,4 @@ +@import '_mixins.scss'; + +// the variables + the CSS +@import '_sm-simple-theme.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/_mixins.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/_mixins.scss new file mode 100644 index 0000000..dd6ff7c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/_mixins.scss @@ -0,0 +1 @@ +@import 'mixins/_sub-items-indentation.scss'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/_sm-sport-blue-theme.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/_sm-sport-blue-theme.scss new file mode 100644 index 0000000..2a3d582 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/_sm-sport-blue-theme.scss @@ -0,0 +1,569 @@ +// This file is best viewed with Tab size 4 code indentation + + +// ----------------------------------------------------------------------------------------------------------------- +// 1. Theme Quick Settings (Variables) +// (for further control, you will need to dig into the actual CSS in 2.) +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 1.1. Colors +// ---------------------------------------------------------- + +$sm-sport-blue__white: #fff !default; +$sm-sport-blue__black: #333 !default; +$sm-sport-blue__green: #ceecfc !default; +$sm-sport-blue__green-dark: #0AA1F1 !default; + +$sm-sport-blue__box-shadow: rgba(0, 0, 0, 0.25) !default; + + +// ---------------------------------------------------------- +// :: 1.2. Breakpoints +// ---------------------------------------------------------- + +$sm-sport-blue__desktop-vp: 768px !default; // switch from collapsible to desktop + + +// ---------------------------------------------------------- +// :: 1.3. Typography +// ---------------------------------------------------------- + +$sm-sport-blue__font-family: "Play", Arial, sans-serif !default; +$sm-sport-blue__font-size-base: 14px !default; +$sm-sport-blue__font-size-small: 13px !default; +$sm-sport-blue__line-height: 17px !default; + + +// ---------------------------------------------------------- +// :: 1.4. Borders +// ---------------------------------------------------------- + +$sm-sport-blue__border-width: 2px !default; +$sm-sport-blue__border-radius-base: 4px !default; + + +// ---------------------------------------------------------- +// :: 1.5. Collapsible main menu +// ---------------------------------------------------------- + +// Menu box +$sm-sport-blue__collapsible-bg: $sm-sport-blue__white !default; +$sm-sport-blue__collapsible-border-color: $sm-sport-blue__green-dark !default; + +// Items +$sm-sport-blue__collapsible-item-color: $sm-sport-blue__black !default; +$sm-sport-blue__collapsible-item-disabled-color: darken($sm-sport-blue__white, 20%) !default; +$sm-sport-blue__collapsible-item-padding-vertical: 13px !default; +$sm-sport-blue__collapsible-item-padding-horizontal: 20px !default; + +// Items separators +$sm-sport-blue__collapsible-separators-color: rgba($sm-sport-blue__green-dark, 0.2) !default; + +// Toggle button (sub menu indicators) +$sm-sport-blue__collapsible-toggle-bg: rgba($sm-sport-blue__green-dark, 0.2) !default; + + +// ---------------------------------------------------------- +// :: 1.6. Collapsible sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-sport-blue__collapsible-sub-bg: rgba($sm-sport-blue__green-dark, 0.2) !default; + +// Items text indentation for deeper levels +$sm-sport-blue__collapsible-sub-item-indentation: 8px !default; + + +// ---------------------------------------------------------- +// :: 1.7. Desktop main menu +// ---------------------------------------------------------- + +// Menu box +$sm-sport-blue__desktop-bg: transparent !default; + +// Items +$sm-sport-blue__desktop-item-color: $sm-sport-blue__black !default; +$sm-sport-blue__desktop-item-hover-color: $sm-sport-blue__white !default; +$sm-sport-blue__desktop-item-hover-bg: $sm-sport-blue__green-dark !default; +$sm-sport-blue__desktop-item-highlighted-color: $sm-sport-blue__black !default; +$sm-sport-blue__desktop-item-highlighted-bg: $sm-sport-blue__green !default; +$sm-sport-blue__desktop-item-highlighted-box-shadow: 0 4px 3px $sm-sport-blue__box-shadow !default; +$sm-sport-blue__desktop-item-disabled-color: darken($sm-sport-blue__white, 20%) !default; +$sm-sport-blue__desktop-item-padding-vertical: 11px !default; +$sm-sport-blue__desktop-item-padding-horizontal: 20px !default; + +// Sub menu indicators +$sm-sport-blue__desktop-arrow-size: 6px !default; // border-width +$sm-sport-blue__desktop-arrow-color: $sm-sport-blue__green-dark !default; +$sm-sport-blue__desktop-arrow-hover-color: $sm-sport-blue__white !default; +$sm-sport-blue__desktop-arrow-highlighted-color: $sm-sport-blue__green-dark !default; +$sm-sport-blue__desktop-arrow-spacing: 6px !default; + +// Vertical items +$sm-sport-blue__desktop-vertical-item-highlighted-color: $sm-sport-blue__desktop-item-hover-color !default; +$sm-sport-blue__desktop-vertical-item-highlighted-bg: $sm-sport-blue__desktop-item-hover-bg !default; +$sm-sport-blue__desktop-vertical-item-padding-vertical: 10px !default; +$sm-sport-blue__desktop-vertical-item-padding-horizontal: 20px !default; + + +// ---------------------------------------------------------- +// :: 1.8. Desktop sub menus +// ---------------------------------------------------------- + +// Menu box +$sm-sport-blue__desktop-sub-bg: $sm-sport-blue__green !default; +$sm-sport-blue__desktop-sub-box-shadow: 0 4px 3px $sm-sport-blue__box-shadow !default; +$sm-sport-blue__desktop-sub-padding-vertical: 8px !default; +$sm-sport-blue__desktop-sub-padding-horizontal: 0 !default; + +// Items +$sm-sport-blue__desktop-sub-item-color: $sm-sport-blue__black !default; +$sm-sport-blue__desktop-sub-item-hover-color: $sm-sport-blue__white !default; +$sm-sport-blue__desktop-sub-item-hover-bg: $sm-sport-blue__green-dark !default; +$sm-sport-blue__desktop-sub-item-disabled-color: lighten($sm-sport-blue__black, 50%) !default; +$sm-sport-blue__desktop-sub-item-padding-vertical: 10px !default; +$sm-sport-blue__desktop-sub-item-padding-horizontal: 20px !default; + + +// ----------------------------------------------------------------------------------------------------------------- +// 2. Theme CSS +// ----------------------------------------------------------------------------------------------------------------- + + +// ---------------------------------------------------------- +// :: 2.1. Collapsible mode (mobile first) +// ---------------------------------------------------------- + +// calc item height and sub menus toggle button size +$sm-sport-blue__item-height: $sm-sport-blue__line-height + $sm-sport-blue__collapsible-item-padding-vertical * 2; +// set toggle button size to 80% of item height +$sm-sport-blue__toggle-size: floor($sm-sport-blue__item-height * 0.8); +$sm-sport-blue__toggle-spacing: floor($sm-sport-blue__item-height * 0.1); + +// Main menu box +.sm-sport-blue { + border-top: $sm-sport-blue__border-width solid $sm-sport-blue__collapsible-border-color; + border-bottom: $sm-sport-blue__border-width solid $sm-sport-blue__collapsible-border-color; + background: $sm-sport-blue__collapsible-bg; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active { + padding: $sm-sport-blue__collapsible-item-padding-vertical $sm-sport-blue__collapsible-item-padding-horizontal; + /* make room for the toggle button (sub indicator) */ + padding-right: $sm-sport-blue__collapsible-item-padding-horizontal + $sm-sport-blue__toggle-size + $sm-sport-blue__toggle-spacing; + color: $sm-sport-blue__collapsible-item-color; + font-family: $sm-sport-blue__font-family; + font-size: $sm-sport-blue__font-size-base; + font-weight: normal; + line-height: $sm-sport-blue__line-height; + text-decoration: none; + } + + &.current { + font-weight: bold; + } + + &.disabled { + color: $sm-sport-blue__collapsible-item-disabled-color; + } + + // Toggle buttons (sub menu indicators) + .sub-arrow { + position: absolute; + top: 50%; + margin-top: -(ceil($sm-sport-blue__toggle-size / 2)); + left: auto; + right: $sm-sport-blue__toggle-spacing; + width: $sm-sport-blue__toggle-size; + height: $sm-sport-blue__toggle-size; + overflow: hidden; + font: bold #{$sm-sport-blue__font-size-small}/#{$sm-sport-blue__toggle-size} monospace !important; + text-align: center; + text-shadow: none; + background: $sm-sport-blue__collapsible-toggle-bg; + border-radius: $sm-sport-blue__border-radius-base; + } + .sub-arrow::before { + content: '+'; + } + &.highlighted .sub-arrow::before { + content: '-'; + } + } + + // Main menu items separators + li { + border-top: 1px solid $sm-sport-blue__collapsible-separators-color; + } + > li:first-child { + border-top: 0; + } + + // Sub menus box + ul { + background: $sm-sport-blue__collapsible-sub-bg; + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active { + font-size: $sm-sport-blue__font-size-small; + // add indentation for sub menus text + border-left: $sm-sport-blue__collapsible-sub-item-indentation solid transparent; + } + } + + // Add indentation for sub menus text for deeper levels + @include sm-sport-blue__sub-items-indentation($sm-sport-blue__collapsible-sub-item-indentation); + } +} + + +// ---------------------------------------------------------- +// :: 2.2. Desktop mode +// ---------------------------------------------------------- + +@media (min-width: $sm-sport-blue__desktop-vp) { + + /* Switch to desktop layout + ----------------------------------------------- + These transform the menu tree from + collapsible to desktop (navbar + dropdowns) + -----------------------------------------------*/ + /* start... (it's not recommended editing these rules) */ + .sm-sport-blue ul{position:absolute;width:12em;} + .sm-sport-blue li{float:left;} + .sm-sport-blue.sm-rtl li{float:right;} + .sm-sport-blue ul li,.sm-sport-blue.sm-rtl ul li,.sm-sport-blue.sm-vertical li{float:none;} + .sm-sport-blue a{white-space:nowrap;} + .sm-sport-blue ul a,.sm-sport-blue.sm-vertical a{white-space:normal;} + .sm-sport-blue .sm-nowrap > li > a,.sm-sport-blue .sm-nowrap > li > :not(ul) a{white-space:nowrap;} + /* ...end */ + + // Main menu box + .sm-sport-blue { + border-top: 0; + background: $sm-sport-blue__desktop-bg; + + // Main menu items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + padding: $sm-sport-blue__desktop-item-padding-vertical $sm-sport-blue__desktop-item-padding-horizontal; + color: $sm-sport-blue__desktop-item-color; + border-radius: $sm-sport-blue__border-radius-base $sm-sport-blue__border-radius-base 0 0; + } + + &:hover, + &:focus, + &:active { + background: $sm-sport-blue__desktop-item-hover-bg; + color: $sm-sport-blue__desktop-item-hover-color; + } + + &.highlighted { + background: $sm-sport-blue__desktop-item-highlighted-bg; + color: $sm-sport-blue__desktop-item-highlighted-color; + box-shadow: $sm-sport-blue__desktop-item-highlighted-box-shadow; + } + + &.disabled { + background: transparent; + color: $sm-sport-blue__desktop-item-disabled-color; + box-shadow: none; + } + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-sport-blue__desktop-item-padding-horizontal + 8px + $sm-sport-blue__desktop-arrow-spacing; + } + + // Sub menu indicators + .sub-arrow { + top: 50%; + margin-top: -(ceil($sm-sport-blue__desktop-arrow-size / 2)); + right: $sm-sport-blue__desktop-item-padding-horizontal; + width: 0; + height: 0; + border-width: $sm-sport-blue__desktop-arrow-size ($sm-sport-blue__desktop-arrow-size * 0.67) 0 ($sm-sport-blue__desktop-arrow-size * 0.67); + border-style: solid dashed dashed dashed; + border-color: $sm-sport-blue__desktop-arrow-color transparent transparent transparent; + background: transparent; + border-radius: 0; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow { + border-color: $sm-sport-blue__desktop-arrow-hover-color transparent transparent transparent; + } + &.highlighted .sub-arrow { + border-color: $sm-sport-blue__desktop-arrow-highlighted-color transparent transparent transparent; + } + &.disabled .sub-arrow { + border-color: $sm-sport-blue__desktop-arrow-color transparent transparent transparent; + } + // reset mobile first style + .sub-arrow::before { + display: none; + } + } + + // No main menu items separators + li { + border-top: 0; + } + + // Sub menus box + ul { + border: 0; + padding: $sm-sport-blue__desktop-sub-padding-vertical $sm-sport-blue__desktop-sub-padding-horizontal; + background: $sm-sport-blue__desktop-sub-bg; + border-radius: 0 $sm-sport-blue__border-radius-base $sm-sport-blue__border-radius-base $sm-sport-blue__border-radius-base; + box-shadow: $sm-sport-blue__desktop-sub-box-shadow; + + // 2+ sub levels need rounding of all corners + ul { + border-radius: $sm-sport-blue__border-radius-base; + } + + // Sub menus items + a { + &, + &:hover, + &:focus, + &:active, + &.highlighted { + border: 0 !important; + padding: $sm-sport-blue__desktop-sub-item-padding-vertical $sm-sport-blue__desktop-sub-item-padding-horizontal; + color: $sm-sport-blue__desktop-sub-item-color; + border-radius: 0; + } + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-sport-blue__desktop-sub-item-hover-bg; + color: $sm-sport-blue__desktop-sub-item-hover-color; + box-shadow: none; + } + + &.disabled { + background: transparent; + color: $sm-sport-blue__desktop-sub-item-disabled-color; + } + + // No need for additional room for the sub arrows + &.has-submenu { + padding-right: $sm-sport-blue__desktop-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + right: 10px; + margin-top: -($sm-sport-blue__desktop-arrow-size * 0.67); + border-width: ($sm-sport-blue__desktop-arrow-size * 0.67) 0 ($sm-sport-blue__desktop-arrow-size * 0.67) $sm-sport-blue__desktop-arrow-size; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-sport-blue__desktop-arrow-color; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow, + &.highlighted .sub-arrow { + border-color: transparent transparent transparent $sm-sport-blue__desktop-arrow-hover-color; + } + &.disabled .sub-arrow { + border-color: transparent transparent transparent $sm-sport-blue__desktop-arrow-color; + } + } + } + + // Scrolling arrows containers for tall sub menus - test sub menu: "Sub test" -> "more..." in the default download package + .scroll-up, + .scroll-down { + position: absolute; + display: none; + visibility: hidden; + overflow: hidden; + background: $sm-sport-blue__desktop-sub-bg; + height: 20px; + // width and position will be set automatically by the script + } + .scroll-up-arrow, + .scroll-down-arrow { + position: absolute; + top: 6px; + left: 50%; + margin-left: -8px; + // we will use one-side border to create a triangle so that we don't use a real background image, of course, you can use a real image if you like too + width: 0; + height: 0; + overflow: hidden; + border-width: 0 6px 8px 6px; // tweak size of the arrow + border-style: dashed dashed solid dashed; + border-color: transparent transparent $sm-sport-blue__desktop-arrow-color transparent; + } + .scroll-down-arrow { + border-width: 8px 6px 0 6px; + border-style: solid dashed dashed dashed; + border-color: $sm-sport-blue__desktop-arrow-color transparent transparent transparent; + } + + + // Rigth-to-left + + // Main menu box + &.sm-rtl { + + // Main menu items + a { + + // Make room for the sub arrows + &.has-submenu { + padding-right: $sm-sport-blue__desktop-item-padding-horizontal; + padding-left: $sm-sport-blue__desktop-item-padding-horizontal + 8px + $sm-sport-blue__desktop-arrow-spacing; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: $sm-sport-blue__desktop-item-padding-horizontal; + } + } + + // Vertical main menu + &.sm-vertical { + border-right: 0; + border-left: $sm-sport-blue__border-width solid $sm-sport-blue__collapsible-border-color; + + // Vertical main menu items + a { + border-radius: 0 $sm-sport-blue__border-radius-base $sm-sport-blue__border-radius-base 0; + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-sport-blue__desktop-vertical-item-padding-vertical $sm-sport-blue__desktop-vertical-item-padding-horizontal; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: 10px; + border-width: ($sm-sport-blue__desktop-arrow-size * 0.67) $sm-sport-blue__desktop-arrow-size ($sm-sport-blue__desktop-arrow-size * 0.67) 0; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-sport-blue__desktop-arrow-color transparent transparent; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow, + &.highlighted .sub-arrow { + border-color: transparent $sm-sport-blue__desktop-arrow-hover-color transparent transparent; + } + &.disabled .sub-arrow { + border-color: transparent $sm-sport-blue__desktop-arrow-color transparent transparent; + } + } + } + + // Sub menus box + ul { + border-radius: $sm-sport-blue__border-radius-base 0 $sm-sport-blue__border-radius-base $sm-sport-blue__border-radius-base; + + a { + border-radius: 0 !important; + + // No need for additional room for the sub arrows + &.has-submenu { + padding: $sm-sport-blue__desktop-sub-item-padding-vertical $sm-sport-blue__desktop-sub-item-padding-horizontal !important; + } + + // Sub menu indicators + .sub-arrow { + right: auto; + left: 10px; + border-width: ($sm-sport-blue__desktop-arrow-size * 0.67) $sm-sport-blue__desktop-arrow-size ($sm-sport-blue__desktop-arrow-size * 0.67) 0; + border-style: dashed solid dashed dashed; + border-color: transparent $sm-sport-blue__desktop-arrow-color transparent transparent; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow, + &.highlighted .sub-arrow { + border-color: transparent $sm-sport-blue__desktop-arrow-hover-color transparent transparent; + } + &.disabled .sub-arrow { + border-color: transparent $sm-sport-blue__desktop-arrow-color transparent transparent; + } + } + } + } + + + // Vertical main menu + + // Main menu box + &.sm-vertical { + border-bottom: 0; + border-right: $sm-sport-blue__border-width solid $sm-sport-blue__collapsible-border-color; + + // Main menu items + a { + padding: $sm-sport-blue__desktop-vertical-item-padding-vertical $sm-sport-blue__desktop-vertical-item-padding-horizontal; + border-radius: $sm-sport-blue__border-radius-base 0 0 $sm-sport-blue__border-radius-base; + + &:hover, + &:focus, + &:active, + &.highlighted { + background: $sm-sport-blue__desktop-item-hover-bg; + color: $sm-sport-blue__desktop-item-hover-color; + box-shadow: none; + } + + &.disabled { + background: transparent; + color: $sm-sport-blue__desktop-item-disabled-color; + } + + // Sub menu indicators + .sub-arrow { + right: 10px; + margin-top: -($sm-sport-blue__desktop-arrow-size * 0.67); + border-width: ($sm-sport-blue__desktop-arrow-size * 0.67) 0 ($sm-sport-blue__desktop-arrow-size * 0.67) $sm-sport-blue__desktop-arrow-size; + border-style: dashed dashed dashed solid; + border-color: transparent transparent transparent $sm-sport-blue__desktop-arrow-color; + } + &:hover .sub-arrow, + &:focus .sub-arrow, + &:active .sub-arrow, + &.highlighted .sub-arrow { + border-color: transparent transparent transparent $sm-sport-blue__desktop-arrow-hover-color; + } + &.disabled .sub-arrow { + border-color: transparent transparent transparent $sm-sport-blue__desktop-arrow-color; + } + } + + // Sub menus box + ul { + border-radius: $sm-sport-blue__border-radius-base !important; + + // Sub menus items + a { + padding: $sm-sport-blue__desktop-sub-item-padding-vertical $sm-sport-blue__desktop-sub-item-padding-horizontal; + } + } + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/mixins/_sub-items-indentation.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/mixins/_sub-items-indentation.scss new file mode 100644 index 0000000..df1665c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/mixins/_sub-items-indentation.scss @@ -0,0 +1,15 @@ +// Generate rules to indent sub menus text +// +// We'll use left border to avoid messing with the padding. + +@mixin sm-sport-blue__sub-items-indentation($amount, $chainable: 'ul ', $level: 4, $chain: '') { + @for $i from 1 through $level { + $chain: $chain + $chainable; + #{$chain} a, + #{$chain} a:hover, + #{$chain} a:focus, + #{$chain} a:active { + border-left: ($amount * ($i + 1)) solid transparent; + } + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/sm-sport-blue.scss b/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/sm-sport-blue.scss new file mode 100644 index 0000000..d82fb84 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/css/sm-sport-blue/sm-sport-blue.scss @@ -0,0 +1,4 @@ +@import '_mixins.scss'; + +// the variables + the CSS +@import '_sm-sport-blue-theme'; \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-fixed-bottom.html b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-fixed-bottom.html new file mode 100644 index 0000000..1e83090 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-fixed-bottom.html @@ -0,0 +1,377 @@ + + + + + + + SmartMenus jQuery Website Menu - Bootstrap 4 Addon - Navbar fixed bottom + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

SmartMenus Bootstrap 4 Addon (Navbar fixed bottom)

+

Zero config advanced Bootstrap navbars with SmartMenus jQuery and the SmartMenus jQuery Bootstrap 4 Addon.

+
+ +

You just need to include the JS/CSS files on your Bootstrap 4 powered pages and everything should work automatically including full support for your Bootstrap 4 theme. And you also have the power and flexibility of SmartMenus jQuery at hand should you need to tweak or customize anything.

+ +

Source Code

+ +

CSS

+

In addition to Bootstrap's CSS just include the SmartMenus jQuery Bootstrap 4 Addon CSS. It's just static CSS code you don't need to edit at all (and probably shouldn't try to).

+
<!-- Bootstrap core CSS -->
+<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
+
+<!-- SmartMenus jQuery Bootstrap 4 Addon CSS -->
+<link href="../addons/bootstrap-4/jquery.smartmenus.bootstrap-4.css" rel="stylesheet">
+ +

HTML

+

Note: Bootstrap 4 normally uses <div> elements as .dropdown-menu containers. But since we are building a multi-level menu tree, we need to replace them with nested <ul>/<li> elements.

+
<!-- Navbar -->
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark mb-4">
+  <div class="container">
+    <a class="navbar-brand" href="#">Navbar</a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+      <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="collapse navbar-collapse" id="navbarNavDropdown">
+  
+      <!-- Left nav -->
+      <ul class="nav navbar-nav mr-auto">
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#">Dropdown</a>
+          <ul class="dropdown-menu">
+            <li><a class="dropdown-item" href="#">Action</a></li>
+            <li><a class="dropdown-item disabled" href="#">Disabled link</a></li>
+            <li><a class="dropdown-item" href="#">Something else here</a></li>
+            <li class="dropdown-divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a class="dropdown-item" href="#">Separated link</a></li>
+            <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">One more separated link</a>
+              <ul class="dropdown-menu">
+                <li><a class="dropdown-item" href="#">Action</a></li>
+                <li><a class="dropdown-item" href="#">Another action</a></li>
+                <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">A long sub menu</a>
+                  <ul class="dropdown-menu">
+                    <li><a class="dropdown-item" href="#">Action</a></li>
+                    <li><a class="dropdown-item" href="#">Something else here</a></li>
+                    <li><a class="dropdown-item" href="#">One more link</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 1</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 2</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 3</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 4</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 5</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 6</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 7</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 8</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 9</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 10</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 11</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 12</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 13</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 14</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 15</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 16</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 17</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 18</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 19</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 20</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 21</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 22</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 23</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 24</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 25</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 26</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 27</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 28</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 29</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 30</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 31</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 32</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 33</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 34</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 35</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 36</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 37</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 38</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 39</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 40</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 41</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 42</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 43</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 44</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 45</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 46</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 47</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 48</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 49</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 50</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 51</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 52</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 53</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 54</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 55</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 56</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 57</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 58</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 59</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 60</a></li>
+                  </ul>
+                </li>
+                <li><a class="dropdown-item" href="#">Another link</a></li>
+                <li><a class="dropdown-item" href="#">One more link</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+      </ul>
+
+      <!-- Right nav -->
+      <ul class="nav navbar-nav">
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar.html">Default</a></li>
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-static-top.html">Static top</a></li>
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-fixed-top.html">Fixed top</a></li>
+        <li class="nav-item active"><a class="nav-link" href="bootstrap-4-navbar-fixed-bottom.html">Fixed bottom</a></li>
+        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#">Dropdown</a>
+          <ul class="dropdown-menu">
+            <li><a class="dropdown-item" href="#">Action</a></li>
+            <li><a class="dropdown-item" href="#">Another action</a></li>
+            <li><a class="dropdown-item" href="#">Something else here</a></li>
+            <li class="dropdown-divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">A sub menu</a>
+              <ul class="dropdown-menu">
+                <li><a class="dropdown-item" href="#">Action</a></li>
+                <li><a class="dropdown-item" href="#">Another action</a></li>
+                <li><a class="dropdown-item" href="#">Something else here</a></li>
+                <li><a class="dropdown-item disabled" href="#">Disabled item</a></li>
+                <li><a class="dropdown-item" href="#">One more link</a></li>
+              </ul>
+            </li>
+            <li><a class="dropdown-item" href="#">A separated link</a></li>
+          </ul>
+        </li>
+      </ul>
+  
+    </div>
+  </div>
+</nav>
+ +

JavaScript

+

In addition to Bootstrap's JavaScript just include SmartMenus jQuery and the SmartMenus jQuery Bootstrap 4 Addon. The default options used in jquery.smartmenus.bootstrap.js should work well for all. However, you can, of course, tweak them if you like.

+
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
+<script src="http://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
+
+<!-- SmartMenus jQuery plugin -->
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>
+
+<!-- SmartMenus jQuery Bootstrap 4 Addon -->
+<script type="text/javascript" src="../addons/bootstrap-4/jquery.smartmenus.bootstrap-4.js"></script>
+ +

Quick customization

+ +

data-* attributes

+

The Bootstrap 4 addon introduces the following additional data-* attributes which can be set to any .navbar-nav:

+
    +
  • data-sm-skip - this will tell the script to skip this navbar and not apply any SmartMenus features to it so it will behave like a regular Bootstrap navbar.
  • +
  • data-sm-skip-collapsible-behavior - this will tell the script to not apply SmartMenus' specific behavior to this navbar in collapsible mode (mobile view). Bootstrap's behavior for navbars in collapsible mode is to use the whole area of the parent items just as a toggle button for their sub menus and thus it's impossible to set a link to the parent items that can be followed on click/tap. SmartMenus' behavior is to add a separate +/- sub menus toggle button to parent items and thus allows the link of the parent items to be activated on the second click/tap (the first click/tap displays the sub menu if it's not visible). If you need even further control, you can check the collapsibleBehavior SmartMenus option which can be set in a data-sm-options attribute.
  • +
+ +

Options

+

The following additional option can be set in a data-sm-options attribute:

+
    +
  • bootstrapHighlightClasses: 'text-dark bg-light' - CSS class(es) for highlighting expanded parent dropdown items.
  • +
+

Check the docs for a complete list of all the available SmartMenus options.

+ +

API

+

The following methods are available:

+
    +
  • jQuery.SmartMenus.Bootstrap.init() - reinit the addon. Useful if you add any navbars dynamically on your page and need to init them at any time (all navbars are normally initialized ondomready).
  • +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-fixed-top.html b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-fixed-top.html new file mode 100644 index 0000000..da63b11 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-fixed-top.html @@ -0,0 +1,377 @@ + + + + + + + SmartMenus jQuery Website Menu - Bootstrap 4 Addon - Navbar fixed top + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

SmartMenus Bootstrap 4 Addon (Navbar fixed top)

+

Zero config advanced Bootstrap navbars with SmartMenus jQuery and the SmartMenus jQuery Bootstrap 4 Addon.

+
+ +

You just need to include the JS/CSS files on your Bootstrap 4 powered pages and everything should work automatically including full support for your Bootstrap 4 theme. And you also have the power and flexibility of SmartMenus jQuery at hand should you need to tweak or customize anything.

+ +

Source Code

+ +

CSS

+

In addition to Bootstrap's CSS just include the SmartMenus jQuery Bootstrap 4 Addon CSS. It's just static CSS code you don't need to edit at all (and probably shouldn't try to).

+
<!-- Bootstrap core CSS -->
+<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
+
+<!-- SmartMenus jQuery Bootstrap 4 Addon CSS -->
+<link href="../addons/bootstrap-4/jquery.smartmenus.bootstrap-4.css" rel="stylesheet">
+ +

HTML

+

Note: Bootstrap 4 normally uses <div> elements as .dropdown-menu containers. But since we are building a multi-level menu tree, we need to replace them with nested <ul>/<li> elements.

+
<!-- Navbar -->
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark mb-4">
+  <div class="container">
+    <a class="navbar-brand" href="#">Navbar</a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+      <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="collapse navbar-collapse" id="navbarNavDropdown">
+  
+      <!-- Left nav -->
+      <ul class="nav navbar-nav mr-auto">
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#">Dropdown</a>
+          <ul class="dropdown-menu">
+            <li><a class="dropdown-item" href="#">Action</a></li>
+            <li><a class="dropdown-item disabled" href="#">Disabled link</a></li>
+            <li><a class="dropdown-item" href="#">Something else here</a></li>
+            <li class="dropdown-divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a class="dropdown-item" href="#">Separated link</a></li>
+            <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">One more separated link</a>
+              <ul class="dropdown-menu">
+                <li><a class="dropdown-item" href="#">Action</a></li>
+                <li><a class="dropdown-item" href="#">Another action</a></li>
+                <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">A long sub menu</a>
+                  <ul class="dropdown-menu">
+                    <li><a class="dropdown-item" href="#">Action</a></li>
+                    <li><a class="dropdown-item" href="#">Something else here</a></li>
+                    <li><a class="dropdown-item" href="#">One more link</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 1</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 2</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 3</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 4</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 5</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 6</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 7</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 8</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 9</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 10</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 11</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 12</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 13</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 14</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 15</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 16</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 17</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 18</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 19</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 20</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 21</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 22</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 23</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 24</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 25</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 26</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 27</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 28</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 29</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 30</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 31</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 32</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 33</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 34</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 35</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 36</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 37</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 38</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 39</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 40</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 41</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 42</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 43</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 44</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 45</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 46</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 47</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 48</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 49</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 50</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 51</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 52</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 53</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 54</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 55</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 56</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 57</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 58</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 59</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 60</a></li>
+                  </ul>
+                </li>
+                <li><a class="dropdown-item" href="#">Another link</a></li>
+                <li><a class="dropdown-item" href="#">One more link</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+      </ul>
+
+      <!-- Right nav -->
+      <ul class="nav navbar-nav">
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar.html">Default</a></li>
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-static-top.html">Static top</a></li>
+        <li class="nav-item active"><a class="nav-link" href="bootstrap-4-navbar-fixed-top.html">Fixed top</a></li>
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-fixed-bottom.html">Fixed bottom</a></li>
+        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#">Dropdown</a>
+          <ul class="dropdown-menu">
+            <li><a class="dropdown-item" href="#">Action</a></li>
+            <li><a class="dropdown-item" href="#">Another action</a></li>
+            <li><a class="dropdown-item" href="#">Something else here</a></li>
+            <li class="dropdown-divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">A sub menu</a>
+              <ul class="dropdown-menu">
+                <li><a class="dropdown-item" href="#">Action</a></li>
+                <li><a class="dropdown-item" href="#">Another action</a></li>
+                <li><a class="dropdown-item" href="#">Something else here</a></li>
+                <li><a class="dropdown-item disabled" href="#">Disabled item</a></li>
+                <li><a class="dropdown-item" href="#">One more link</a></li>
+              </ul>
+            </li>
+            <li><a class="dropdown-item" href="#">A separated link</a></li>
+          </ul>
+        </li>
+      </ul>
+  
+    </div>
+  </div>
+</nav>
+ +

JavaScript

+

In addition to Bootstrap's JavaScript just include SmartMenus jQuery and the SmartMenus jQuery Bootstrap 4 Addon. The default options used in jquery.smartmenus.bootstrap.js should work well for all. However, you can, of course, tweak them if you like.

+
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
+<script src="http://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
+
+<!-- SmartMenus jQuery plugin -->
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>
+
+<!-- SmartMenus jQuery Bootstrap 4 Addon -->
+<script type="text/javascript" src="../addons/bootstrap-4/jquery.smartmenus.bootstrap-4.js"></script>
+ +

Quick customization

+ +

data-* attributes

+

The Bootstrap 4 addon introduces the following additional data-* attributes which can be set to any .navbar-nav:

+
    +
  • data-sm-skip - this will tell the script to skip this navbar and not apply any SmartMenus features to it so it will behave like a regular Bootstrap navbar.
  • +
  • data-sm-skip-collapsible-behavior - this will tell the script to not apply SmartMenus' specific behavior to this navbar in collapsible mode (mobile view). Bootstrap's behavior for navbars in collapsible mode is to use the whole area of the parent items just as a toggle button for their sub menus and thus it's impossible to set a link to the parent items that can be followed on click/tap. SmartMenus' behavior is to add a separate +/- sub menus toggle button to parent items and thus allows the link of the parent items to be activated on the second click/tap (the first click/tap displays the sub menu if it's not visible). If you need even further control, you can check the collapsibleBehavior SmartMenus option which can be set in a data-sm-options attribute.
  • +
+ +

Options

+

The following additional option can be set in a data-sm-options attribute:

+
    +
  • bootstrapHighlightClasses: 'text-dark bg-light' - CSS class(es) for highlighting expanded parent dropdown items.
  • +
+

Check the docs for a complete list of all the available SmartMenus options.

+ +

API

+

The following methods are available:

+
    +
  • jQuery.SmartMenus.Bootstrap.init() - reinit the addon. Useful if you add any navbars dynamically on your page and need to init them at any time (all navbars are normally initialized ondomready).
  • +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-static-top.html b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-static-top.html new file mode 100644 index 0000000..5ee83c8 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar-static-top.html @@ -0,0 +1,377 @@ + + + + + + + SmartMenus jQuery Website Menu - Bootstrap 4 Addon - Navbar static top + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+

SmartMenus Bootstrap 4 Addon (Navbar static top)

+

Zero config advanced Bootstrap navbars with SmartMenus jQuery and the SmartMenus jQuery Bootstrap 4 Addon.

+
+ +

You just need to include the JS/CSS files on your Bootstrap 4 powered pages and everything should work automatically including full support for your Bootstrap 4 theme. And you also have the power and flexibility of SmartMenus jQuery at hand should you need to tweak or customize anything.

+ +

Source Code

+ +

CSS

+

In addition to Bootstrap's CSS just include the SmartMenus jQuery Bootstrap 4 Addon CSS. It's just static CSS code you don't need to edit at all (and probably shouldn't try to).

+
<!-- Bootstrap core CSS -->
+<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
+
+<!-- SmartMenus jQuery Bootstrap 4 Addon CSS -->
+<link href="../addons/bootstrap-4/jquery.smartmenus.bootstrap-4.css" rel="stylesheet">
+ +

HTML

+

Note: Bootstrap 4 normally uses <div> elements as .dropdown-menu containers. But since we are building a multi-level menu tree, we need to replace them with nested <ul>/<li> elements.

+
<!-- Navbar -->
+<nav class="navbar navbar-expand-lg navbar-dark bg-dark mb-4">
+  <div class="container">
+    <a class="navbar-brand" href="#">Navbar</a>
+    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+      <span class="navbar-toggler-icon"></span>
+    </button>
+
+    <div class="collapse navbar-collapse" id="navbarNavDropdown">
+  
+      <!-- Left nav -->
+      <ul class="nav navbar-nav mr-auto">
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#">Dropdown</a>
+          <ul class="dropdown-menu">
+            <li><a class="dropdown-item" href="#">Action</a></li>
+            <li><a class="dropdown-item disabled" href="#">Disabled link</a></li>
+            <li><a class="dropdown-item" href="#">Something else here</a></li>
+            <li class="dropdown-divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a class="dropdown-item" href="#">Separated link</a></li>
+            <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">One more separated link</a>
+              <ul class="dropdown-menu">
+                <li><a class="dropdown-item" href="#">Action</a></li>
+                <li><a class="dropdown-item" href="#">Another action</a></li>
+                <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">A long sub menu</a>
+                  <ul class="dropdown-menu">
+                    <li><a class="dropdown-item" href="#">Action</a></li>
+                    <li><a class="dropdown-item" href="#">Something else here</a></li>
+                    <li><a class="dropdown-item" href="#">One more link</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 1</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 2</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 3</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 4</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 5</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 6</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 7</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 8</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 9</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 10</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 11</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 12</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 13</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 14</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 15</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 16</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 17</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 18</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 19</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 20</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 21</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 22</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 23</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 24</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 25</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 26</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 27</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 28</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 29</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 30</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 31</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 32</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 33</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 34</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 35</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 36</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 37</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 38</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 39</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 40</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 41</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 42</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 43</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 44</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 45</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 46</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 47</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 48</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 49</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 50</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 51</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 52</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 53</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 54</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 55</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 56</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 57</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 58</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 59</a></li>
+                    <li><a class="dropdown-item" href="#">Menu item 60</a></li>
+                  </ul>
+                </li>
+                <li><a class="dropdown-item" href="#">Another link</a></li>
+                <li><a class="dropdown-item" href="#">One more link</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+      </ul>
+
+      <!-- Right nav -->
+      <ul class="nav navbar-nav">
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar.html">Default</a></li>
+        <li class="nav-item active"><a class="nav-link" href="bootstrap-4-navbar-static-top.html">Static top</a></li>
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-fixed-top.html">Fixed top</a></li>
+        <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-fixed-bottom.html">Fixed bottom</a></li>
+        <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#">Dropdown</a>
+          <ul class="dropdown-menu">
+            <li><a class="dropdown-item" href="#">Action</a></li>
+            <li><a class="dropdown-item" href="#">Another action</a></li>
+            <li><a class="dropdown-item" href="#">Something else here</a></li>
+            <li class="dropdown-divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">A sub menu</a>
+              <ul class="dropdown-menu">
+                <li><a class="dropdown-item" href="#">Action</a></li>
+                <li><a class="dropdown-item" href="#">Another action</a></li>
+                <li><a class="dropdown-item" href="#">Something else here</a></li>
+                <li><a class="dropdown-item disabled" href="#">Disabled item</a></li>
+                <li><a class="dropdown-item" href="#">One more link</a></li>
+              </ul>
+            </li>
+            <li><a class="dropdown-item" href="#">A separated link</a></li>
+          </ul>
+        </li>
+      </ul>
+  
+    </div>
+  </div>
+</nav>
+ +

JavaScript

+

In addition to Bootstrap's JavaScript just include SmartMenus jQuery and the SmartMenus jQuery Bootstrap 4 Addon. The default options used in jquery.smartmenus.bootstrap.js should work well for all. However, you can, of course, tweak them if you like.

+
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
+<script src="http://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
+
+<!-- SmartMenus jQuery plugin -->
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>
+
+<!-- SmartMenus jQuery Bootstrap 4 Addon -->
+<script type="text/javascript" src="../addons/bootstrap-4/jquery.smartmenus.bootstrap-4.js"></script>
+ +

Quick customization

+ +

data-* attributes

+

The Bootstrap 4 addon introduces the following additional data-* attributes which can be set to any .navbar-nav:

+
    +
  • data-sm-skip - this will tell the script to skip this navbar and not apply any SmartMenus features to it so it will behave like a regular Bootstrap navbar.
  • +
  • data-sm-skip-collapsible-behavior - this will tell the script to not apply SmartMenus' specific behavior to this navbar in collapsible mode (mobile view). Bootstrap's behavior for navbars in collapsible mode is to use the whole area of the parent items just as a toggle button for their sub menus and thus it's impossible to set a link to the parent items that can be followed on click/tap. SmartMenus' behavior is to add a separate +/- sub menus toggle button to parent items and thus allows the link of the parent items to be activated on the second click/tap (the first click/tap displays the sub menu if it's not visible). If you need even further control, you can check the collapsibleBehavior SmartMenus option which can be set in a data-sm-options attribute.
  • +
+ +

Options

+

The following additional option can be set in a data-sm-options attribute:

+
    +
  • bootstrapHighlightClasses: 'text-dark bg-light' - CSS class(es) for highlighting expanded parent dropdown items.
  • +
+

Check the docs for a complete list of all the available SmartMenus options.

+ +

API

+

The following methods are available:

+
    +
  • jQuery.SmartMenus.Bootstrap.init() - reinit the addon. Useful if you add any navbars dynamically on your page and need to init them at any time (all navbars are normally initialized ondomready).
  • +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar.html b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar.html new file mode 100644 index 0000000..a92cf20 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-4-navbar.html @@ -0,0 +1,373 @@ + + + + + + + SmartMenus jQuery Website Menu - Bootstrap 4 Addon - Navbar + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+

SmartMenus Bootstrap 4 Addon (Navbar)

+

Zero config advanced Bootstrap navbars with SmartMenus jQuery and the SmartMenus jQuery Bootstrap 4 Addon.

+
+ +

You just need to include the JS/CSS files on your Bootstrap 4 powered pages and everything should work automatically including full support for your Bootstrap 4 theme. And you also have the power and flexibility of SmartMenus jQuery at hand should you need to tweak or customize anything.

+ +

Source Code

+ +

CSS

+

In addition to Bootstrap's CSS just include the SmartMenus jQuery Bootstrap 4 Addon CSS. It's just static CSS code you don't need to edit at all (and probably shouldn't try to).

+
<!-- Bootstrap core CSS -->
+<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
+
+<!-- SmartMenus jQuery Bootstrap 4 Addon CSS -->
+<link href="../addons/bootstrap-4/jquery.smartmenus.bootstrap-4.css" rel="stylesheet">
+ +

HTML

+

Note: Bootstrap 4 normally uses <div> elements as .dropdown-menu containers. But since we are building a multi-level menu tree, we need to replace them with nested <ul>/<li> elements.

+
<!-- Navbar -->
+<nav class="navbar navbar-expand-lg navbar-light bg-light rounded mb-4">
+  <a class="navbar-brand" href="#">Navbar</a>
+  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
+    <span class="navbar-toggler-icon"></span>
+  </button>
+
+  <div class="collapse navbar-collapse" id="navbarNavDropdown">
+
+    <!-- Left nav -->
+    <ul class="nav navbar-nav mr-auto">
+      <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+      <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+      <li class="nav-item"><a class="nav-link" href="#">Link</a></li>
+      <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#">Dropdown</a>
+        <ul class="dropdown-menu">
+          <li><a class="dropdown-item" href="#">Action</a></li>
+          <li><a class="dropdown-item disabled" href="#">Disabled link</a></li>
+          <li><a class="dropdown-item" href="#">Something else here</a></li>
+          <li class="dropdown-divider"></li>
+          <li class="dropdown-header">Nav header</li>
+          <li><a class="dropdown-item" href="#">Separated link</a></li>
+          <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">One more separated link</a>
+            <ul class="dropdown-menu">
+              <li><a class="dropdown-item" href="#">Action</a></li>
+              <li><a class="dropdown-item" href="#">Another action</a></li>
+              <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">A long sub menu</a>
+                <ul class="dropdown-menu">
+                  <li><a class="dropdown-item" href="#">Action</a></li>
+                  <li><a class="dropdown-item" href="#">Something else here</a></li>
+                  <li><a class="dropdown-item" href="#">One more link</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 1</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 2</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 3</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 4</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 5</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 6</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 7</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 8</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 9</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 10</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 11</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 12</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 13</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 14</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 15</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 16</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 17</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 18</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 19</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 20</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 21</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 22</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 23</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 24</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 25</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 26</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 27</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 28</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 29</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 30</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 31</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 32</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 33</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 34</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 35</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 36</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 37</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 38</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 39</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 40</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 41</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 42</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 43</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 44</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 45</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 46</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 47</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 48</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 49</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 50</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 51</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 52</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 53</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 54</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 55</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 56</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 57</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 58</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 59</a></li>
+                  <li><a class="dropdown-item" href="#">Menu item 60</a></li>
+                </ul>
+              </li>
+              <li><a class="dropdown-item" href="#">Another link</a></li>
+              <li><a class="dropdown-item" href="#">One more link</a></li>
+            </ul>
+          </li>
+        </ul>
+      </li>
+    </ul>
+
+    <!-- Right nav -->
+    <ul class="nav navbar-nav">
+      <li class="nav-item active"><a class="nav-link" href="bootstrap-4-navbar.html">Default</a></li>
+      <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-static-top.html">Static top</a></li>
+      <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-fixed-top.html">Fixed top</a></li>
+      <li class="nav-item"><a class="nav-link" href="bootstrap-4-navbar-fixed-bottom.html">Fixed bottom</a></li>
+      <li class="nav-item dropdown"><a class="nav-link dropdown-toggle" href="#">Dropdown</a>
+        <ul class="dropdown-menu">
+          <li><a class="dropdown-item" href="#">Action</a></li>
+          <li><a class="dropdown-item" href="#">Another action</a></li>
+          <li><a class="dropdown-item" href="#">Something else here</a></li>
+          <li class="dropdown-divider"></li>
+          <li class="dropdown-header">Nav header</li>
+          <li class="dropdown"><a class="dropdown-item dropdown-toggle" href="#">A sub menu</a>
+            <ul class="dropdown-menu">
+              <li><a class="dropdown-item" href="#">Action</a></li>
+              <li><a class="dropdown-item" href="#">Another action</a></li>
+              <li><a class="dropdown-item" href="#">Something else here</a></li>
+              <li><a class="dropdown-item disabled" href="#">Disabled item</a></li>
+              <li><a class="dropdown-item" href="#">One more link</a></li>
+            </ul>
+          </li>
+          <li><a class="dropdown-item" href="#">A separated link</a></li>
+        </ul>
+      </li>
+    </ul>
+
+  </div>
+</nav>
+ +

JavaScript

+

In addition to Bootstrap's JavaScript just include SmartMenus jQuery and the SmartMenus jQuery Bootstrap 4 Addon. The default options used in jquery.smartmenus.bootstrap.js should work well for all. However, you can, of course, tweak them if you like.

+
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
+<script src="http://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
+<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script>
+
+<!-- SmartMenus jQuery plugin -->
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>
+
+<!-- SmartMenus jQuery Bootstrap 4 Addon -->
+<script type="text/javascript" src="../addons/bootstrap-4/jquery.smartmenus.bootstrap-4.js"></script>
+ +

Quick customization

+ +

data-* attributes

+

The Bootstrap 4 addon introduces the following additional data-* attributes which can be set to any .navbar-nav:

+
    +
  • data-sm-skip - this will tell the script to skip this navbar and not apply any SmartMenus features to it so it will behave like a regular Bootstrap navbar.
  • +
  • data-sm-skip-collapsible-behavior - this will tell the script to not apply SmartMenus' specific behavior to this navbar in collapsible mode (mobile view). Bootstrap's behavior for navbars in collapsible mode is to use the whole area of the parent items just as a toggle button for their sub menus and thus it's impossible to set a link to the parent items that can be followed on click/tap. SmartMenus' behavior is to add a separate +/- sub menus toggle button to parent items and thus allows the link of the parent items to be activated on the second click/tap (the first click/tap displays the sub menu if it's not visible). If you need even further control, you can check the collapsibleBehavior SmartMenus option which can be set in a data-sm-options attribute.
  • +
+ +

Options

+

The following additional option can be set in a data-sm-options attribute:

+
    +
  • bootstrapHighlightClasses: 'text-dark bg-light' - CSS class(es) for highlighting expanded parent dropdown items.
  • +
+

Check the docs for a complete list of all the available SmartMenus options.

+ +

API

+

The following methods are available:

+
    +
  • jQuery.SmartMenus.Bootstrap.init() - reinit the addon. Useful if you add any navbars dynamically on your page and need to init them at any time (all navbars are normally initialized ondomready).
  • +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-fixed-bottom.html b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-fixed-bottom.html new file mode 100644 index 0000000..4b9f4b0 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-fixed-bottom.html @@ -0,0 +1,391 @@ + + + + + + + + SmartMenus jQuery Website Menu - Bootstrap Addon - Navbar fixed bottom + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

You basically just need to include the JS/CSS files on your Bootstrap 3 powered pages and everything should work automatically including full support for whatever Bootstrap theme you already use. And, of course, you still have the full power and flexibility of SmartMenus jQuery at hand should you need to tweak or customize anything.

+ +

Source Code

+ +

CSS

+

In addition to Bootstrap's CSS just include the SmartMenus jQuery Bootstrap Addon CSS. It's just static CSS code you don't need to edit at all (and probably shouldn't try to).

+
<!-- Bootstrap core CSS -->
+<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
+
+<!-- SmartMenus jQuery Bootstrap Addon CSS -->
+<link href="../addons/bootstrap/jquery.smartmenus.bootstrap.css" rel="stylesheet">
+ +

HTML

+
<!-- Navbar fixed bottom -->
+<div class="navbar navbar-default navbar-fixed-bottom" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="#">Project name</a>
+    </div>
+    <div class="navbar-collapse collapse">
+  
+      <!-- Left nav -->
+      <ul class="nav navbar-nav">
+        <li><a href="#">Link</a></li>
+        <li><a href="#">Link</a></li>
+        <li><a href="#">Link</a></li>
+        <li><a href="#" class="dropup">Dropdown <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="#">Action</a></li>
+            <li><a href="#">Another action</a></li>
+            <li><a href="#">Something else here</a></li>
+            <li class="divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a href="#">Separated link</a></li>
+            <li><a href="#">One more separated link <span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">A long sub menu <span class="caret"></span></a>
+                  <ul class="dropdown-menu">
+                    <li><a href="#">Action</a></li>
+                    <li><a href="#">Something else here</a></li>
+                    <li class="disabled"><a class="disabled" href="#">Disabled item</a></li>
+                    <li><a href="#">One more link</a></li>
+                    <li><a href="#">Menu item 1</a></li>
+                    <li><a href="#">Menu item 2</a></li>
+                    <li><a href="#">Menu item 3</a></li>
+                    <li><a href="#">Menu item 4</a></li>
+                    <li><a href="#">Menu item 5</a></li>
+                    <li><a href="#">Menu item 6</a></li>
+                    <li><a href="#">Menu item 7</a></li>
+                    <li><a href="#">Menu item 8</a></li>
+                    <li><a href="#">Menu item 9</a></li>
+                    <li><a href="#">Menu item 10</a></li>
+                    <li><a href="#">Menu item 11</a></li>
+                    <li><a href="#">Menu item 12</a></li>
+                    <li><a href="#">Menu item 13</a></li>
+                    <li><a href="#">Menu item 14</a></li>
+                    <li><a href="#">Menu item 15</a></li>
+                    <li><a href="#">Menu item 16</a></li>
+                    <li><a href="#">Menu item 17</a></li>
+                    <li><a href="#">Menu item 18</a></li>
+                    <li><a href="#">Menu item 19</a></li>
+                    <li><a href="#">Menu item 20</a></li>
+                    <li><a href="#">Menu item 21</a></li>
+                    <li><a href="#">Menu item 22</a></li>
+                    <li><a href="#">Menu item 23</a></li>
+                    <li><a href="#">Menu item 24</a></li>
+                    <li><a href="#">Menu item 25</a></li>
+                    <li><a href="#">Menu item 26</a></li>
+                    <li><a href="#">Menu item 27</a></li>
+                    <li><a href="#">Menu item 28</a></li>
+                    <li><a href="#">Menu item 29</a></li>
+                    <li><a href="#">Menu item 30</a></li>
+                    <li><a href="#">Menu item 31</a></li>
+                    <li><a href="#">Menu item 32</a></li>
+                    <li><a href="#">Menu item 33</a></li>
+                    <li><a href="#">Menu item 34</a></li>
+                    <li><a href="#">Menu item 35</a></li>
+                    <li><a href="#">Menu item 36</a></li>
+                    <li><a href="#">Menu item 37</a></li>
+                    <li><a href="#">Menu item 38</a></li>
+                    <li><a href="#">Menu item 39</a></li>
+                    <li><a href="#">Menu item 40</a></li>
+                    <li><a href="#">Menu item 41</a></li>
+                    <li><a href="#">Menu item 42</a></li>
+                    <li><a href="#">Menu item 43</a></li>
+                    <li><a href="#">Menu item 44</a></li>
+                    <li><a href="#">Menu item 45</a></li>
+                    <li><a href="#">Menu item 46</a></li>
+                    <li><a href="#">Menu item 47</a></li>
+                    <li><a href="#">Menu item 48</a></li>
+                    <li><a href="#">Menu item 49</a></li>
+                    <li><a href="#">Menu item 50</a></li>
+                    <li><a href="#">Menu item 51</a></li>
+                    <li><a href="#">Menu item 52</a></li>
+                    <li><a href="#">Menu item 53</a></li>
+                    <li><a href="#">Menu item 54</a></li>
+                    <li><a href="#">Menu item 55</a></li>
+                    <li><a href="#">Menu item 56</a></li>
+                    <li><a href="#">Menu item 57</a></li>
+                    <li><a href="#">Menu item 58</a></li>
+                    <li><a href="#">Menu item 59</a></li>
+                    <li><a href="#">Menu item 60</a></li>
+                  </ul>
+                </li>
+                <li><a href="#">Another link</a></li>
+                <li><a href="#">One more link</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+      </ul>
+  
+      <!-- Right nav -->
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="bootstrap-navbar.html">Default</a></li>
+        <li><a href="bootstrap-navbar-static-top.html">Static top</a></li>
+        <li><a href="bootstrap-navbar-fixed-top.html">Fixed top</a></li>
+        <li class="active"><a href="bootstrap-navbar-fixed-bottom.html">Fixed bottom</a></li>
+        <li><a href="#" class="dropup">Dropdown <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="#">Action</a></li>
+            <li><a href="#">Another action</a></li>
+            <li><a href="#">Something else here</a></li>
+            <li class="divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a href="#">A sub menu <span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">Something else here</a></li>
+                <li class="disabled"><a class="disabled" href="#">Disabled item</a></li>
+                <li><a href="#">One more link</a></li>
+              </ul>
+            </li>
+            <li><a href="#">A separated link</a></li>
+          </ul>
+        </li>
+      </ul>
+  
+    </div><!--/.nav-collapse -->
+  </div><!--/.container -->
+</div>
+ +

JavaScript

+

In addition to Bootstrap's JavaScript just include SmartMenus jQuery and the SmartMenus jQuery Bootstrap Addon. The default options used in jquery.smartmenus.bootstrap.js should work well for all. However, you can, of course, tweak them if you like.

+
<!-- Bootstrap core JavaScript
+================================================== -->
+<!-- Placed at the end of the document so the pages load faster -->
+<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
+
+<!-- SmartMenus jQuery plugin -->
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>
+
+<!-- SmartMenus jQuery Bootstrap Addon -->
+<script type="text/javascript" src="../addons/bootstrap/jquery.smartmenus.bootstrap.js"></script>
+ +

Quick customization

+ +

data-* attributes

+

The following data-* attributes can be set to any ul.navbar-nav:

+
    +
  • data-sm-options - set any custom options for the SmartMenus jQuery plugin (check the docs for details).
  • +
  • data-sm-skip - this will tell the script to skip this navbar and not apply any SmartMenus features to it so it will behave like a regular Bootstrap navbar.
  • +
  • data-sm-skip-collapsible-behavior - this will tell the script to not apply SmartMenus' specific behavior to this navbar in collapsible mode (mobile view). Bootstrap's behavior for navbars in collapsible mode is to use the whole area of the parent items just as a toggle button for their sub menus and thus it's impossible to set a link to the parent items that can be followed on click/tap. SmartMenus' behavior is to add a separate dedicated +/- sub menus toggle button to parent items and thus allows the link of the parent items to be activated on the second click/tap (the first click/tap displays the sub menu if it's not visible).
  • +
+ +

API

+

The following methods are available:

+
    +
  • jQuery.SmartMenus.Bootstrap.init() - reinit the addon. Useful if you add any navbars dynamically on your page and need to init them (all navbars are normally initialized ondomready).
  • +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-fixed-top.html b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-fixed-top.html new file mode 100644 index 0000000..709c92c --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-fixed-top.html @@ -0,0 +1,391 @@ + + + + + + + + SmartMenus jQuery Website Menu - Bootstrap Addon - Navbar fixed top + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

You basically just need to include the JS/CSS files on your Bootstrap 3 powered pages and everything should work automatically including full support for whatever Bootstrap theme you already use. And, of course, you still have the full power and flexibility of SmartMenus jQuery at hand should you need to tweak or customize anything.

+ +

Source Code

+ +

CSS

+

In addition to Bootstrap's CSS just include the SmartMenus jQuery Bootstrap Addon CSS. It's just static CSS code you don't need to edit at all (and probably shouldn't try to).

+
<!-- Bootstrap core CSS -->
+<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
+
+<!-- SmartMenus jQuery Bootstrap Addon CSS -->
+<link href="../addons/bootstrap/jquery.smartmenus.bootstrap.css" rel="stylesheet">
+ +

HTML

+
<!-- Navbar fixed top -->
+<div class="navbar navbar-default navbar-fixed-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="#">Project name</a>
+    </div>
+    <div class="navbar-collapse collapse">
+  
+      <!-- Left nav -->
+      <ul class="nav navbar-nav">
+        <li><a href="#">Link</a></li>
+        <li><a href="#">Link</a></li>
+        <li><a href="#">Link</a></li>
+        <li><a href="#">Dropdown <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="#">Action</a></li>
+            <li><a href="#">Another action</a></li>
+            <li><a href="#">Something else here</a></li>
+            <li class="divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a href="#">Separated link</a></li>
+            <li><a href="#">One more separated link <span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">A long sub menu <span class="caret"></span></a>
+                  <ul class="dropdown-menu">
+                    <li><a href="#">Action</a></li>
+                    <li><a href="#">Something else here</a></li>
+                    <li class="disabled"><a class="disabled" href="#">Disabled item</a></li>
+                    <li><a href="#">One more link</a></li>
+                    <li><a href="#">Menu item 1</a></li>
+                    <li><a href="#">Menu item 2</a></li>
+                    <li><a href="#">Menu item 3</a></li>
+                    <li><a href="#">Menu item 4</a></li>
+                    <li><a href="#">Menu item 5</a></li>
+                    <li><a href="#">Menu item 6</a></li>
+                    <li><a href="#">Menu item 7</a></li>
+                    <li><a href="#">Menu item 8</a></li>
+                    <li><a href="#">Menu item 9</a></li>
+                    <li><a href="#">Menu item 10</a></li>
+                    <li><a href="#">Menu item 11</a></li>
+                    <li><a href="#">Menu item 12</a></li>
+                    <li><a href="#">Menu item 13</a></li>
+                    <li><a href="#">Menu item 14</a></li>
+                    <li><a href="#">Menu item 15</a></li>
+                    <li><a href="#">Menu item 16</a></li>
+                    <li><a href="#">Menu item 17</a></li>
+                    <li><a href="#">Menu item 18</a></li>
+                    <li><a href="#">Menu item 19</a></li>
+                    <li><a href="#">Menu item 20</a></li>
+                    <li><a href="#">Menu item 21</a></li>
+                    <li><a href="#">Menu item 22</a></li>
+                    <li><a href="#">Menu item 23</a></li>
+                    <li><a href="#">Menu item 24</a></li>
+                    <li><a href="#">Menu item 25</a></li>
+                    <li><a href="#">Menu item 26</a></li>
+                    <li><a href="#">Menu item 27</a></li>
+                    <li><a href="#">Menu item 28</a></li>
+                    <li><a href="#">Menu item 29</a></li>
+                    <li><a href="#">Menu item 30</a></li>
+                    <li><a href="#">Menu item 31</a></li>
+                    <li><a href="#">Menu item 32</a></li>
+                    <li><a href="#">Menu item 33</a></li>
+                    <li><a href="#">Menu item 34</a></li>
+                    <li><a href="#">Menu item 35</a></li>
+                    <li><a href="#">Menu item 36</a></li>
+                    <li><a href="#">Menu item 37</a></li>
+                    <li><a href="#">Menu item 38</a></li>
+                    <li><a href="#">Menu item 39</a></li>
+                    <li><a href="#">Menu item 40</a></li>
+                    <li><a href="#">Menu item 41</a></li>
+                    <li><a href="#">Menu item 42</a></li>
+                    <li><a href="#">Menu item 43</a></li>
+                    <li><a href="#">Menu item 44</a></li>
+                    <li><a href="#">Menu item 45</a></li>
+                    <li><a href="#">Menu item 46</a></li>
+                    <li><a href="#">Menu item 47</a></li>
+                    <li><a href="#">Menu item 48</a></li>
+                    <li><a href="#">Menu item 49</a></li>
+                    <li><a href="#">Menu item 50</a></li>
+                    <li><a href="#">Menu item 51</a></li>
+                    <li><a href="#">Menu item 52</a></li>
+                    <li><a href="#">Menu item 53</a></li>
+                    <li><a href="#">Menu item 54</a></li>
+                    <li><a href="#">Menu item 55</a></li>
+                    <li><a href="#">Menu item 56</a></li>
+                    <li><a href="#">Menu item 57</a></li>
+                    <li><a href="#">Menu item 58</a></li>
+                    <li><a href="#">Menu item 59</a></li>
+                    <li><a href="#">Menu item 60</a></li>
+                  </ul>
+                </li>
+                <li><a href="#">Another link</a></li>
+                <li><a href="#">One more link</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+      </ul>
+  
+      <!-- Right nav -->
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="bootstrap-navbar.html">Default</a></li>
+        <li><a href="bootstrap-navbar-static-top.html">Static top</a></li>
+        <li class="active"><a href="bootstrap-navbar-fixed-top.html">Fixed top</a></li>
+        <li><a href="bootstrap-navbar-fixed-bottom.html">Fixed bottom</a></li>
+        <li><a href="#">Dropdown <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="#">Action</a></li>
+            <li><a href="#">Another action</a></li>
+            <li><a href="#">Something else here</a></li>
+            <li class="divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a href="#">A sub menu <span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">Something else here</a></li>
+                <li class="disabled"><a class="disabled" href="#">Disabled item</a></li>
+                <li><a href="#">One more link</a></li>
+              </ul>
+            </li>
+            <li><a href="#">A separated link</a></li>
+          </ul>
+        </li>
+      </ul>
+  
+    </div><!--/.nav-collapse -->
+  </div><!--/.container -->
+</div>
+ +

JavaScript

+

In addition to Bootstrap's JavaScript just include SmartMenus jQuery and the SmartMenus jQuery Bootstrap Addon. The default options used in jquery.smartmenus.bootstrap.js should work well for all. However, you can, of course, tweak them if you like.

+
<!-- Bootstrap core JavaScript
+================================================== -->
+<!-- Placed at the end of the document so the pages load faster -->
+<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
+
+<!-- SmartMenus jQuery plugin -->
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>
+
+<!-- SmartMenus jQuery Bootstrap Addon -->
+<script type="text/javascript" src="../addons/bootstrap/jquery.smartmenus.bootstrap.js"></script>
+ +

Quick customization

+ +

data-* attributes

+

The following data-* attributes can be set to any ul.navbar-nav:

+
    +
  • data-sm-options - set any custom options for the SmartMenus jQuery plugin (check the docs for details).
  • +
  • data-sm-skip - this will tell the script to skip this navbar and not apply any SmartMenus features to it so it will behave like a regular Bootstrap navbar.
  • +
  • data-sm-skip-collapsible-behavior - this will tell the script to not apply SmartMenus' specific behavior to this navbar in collapsible mode (mobile view). Bootstrap's behavior for navbars in collapsible mode is to use the whole area of the parent items just as a toggle button for their sub menus and thus it's impossible to set a link to the parent items that can be followed on click/tap. SmartMenus' behavior is to add a separate dedicated +/- sub menus toggle button to parent items and thus allows the link of the parent items to be activated on the second click/tap (the first click/tap displays the sub menu if it's not visible).
  • +
+ +

API

+

The following methods are available:

+
    +
  • jQuery.SmartMenus.Bootstrap.init() - reinit the addon. Useful if you add any navbars dynamically on your page and need to init them (all navbars are normally initialized ondomready).
  • +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-static-top.html b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-static-top.html new file mode 100644 index 0000000..4bf8b37 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar-static-top.html @@ -0,0 +1,390 @@ + + + + + + + + SmartMenus jQuery Website Menu - Bootstrap Addon - Navbar static top + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

You basically just need to include the JS/CSS files on your Bootstrap 3 powered pages and everything should work automatically including full support for whatever Bootstrap theme you already use. And, of course, you still have the full power and flexibility of SmartMenus jQuery at hand should you need to tweak or customize anything.

+ +

Source Code

+ +

CSS

+

In addition to Bootstrap's CSS just include the SmartMenus jQuery Bootstrap Addon CSS. It's just static CSS code you don't need to edit at all (and probably shouldn't try to).

+
<!-- Bootstrap core CSS -->
+<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
+
+<!-- SmartMenus jQuery Bootstrap Addon CSS -->
+<link href="../addons/bootstrap/jquery.smartmenus.bootstrap.css" rel="stylesheet">
+ +

HTML

+
<!-- Navbar static top -->
+<div class="navbar navbar-default navbar-static-top" role="navigation">
+  <div class="container">
+    <div class="navbar-header">
+      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+        <span class="sr-only">Toggle navigation</span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+        <span class="icon-bar"></span>
+      </button>
+      <a class="navbar-brand" href="#">Project name</a>
+    </div>
+    <div class="navbar-collapse collapse">
+  
+      <!-- Left nav -->
+      <ul class="nav navbar-nav">
+        <li><a href="#">Link</a></li>
+        <li><a href="#">Link</a></li>
+        <li><a href="#">Link</a></li>
+        <li><a href="#">Dropdown <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="#">Action</a></li>
+            <li><a href="#">Another action</a></li>
+            <li><a href="#">Something else here</a></li>
+            <li class="divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a href="#">Separated link</a></li>
+            <li><a href="#">One more separated link <span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">A long sub menu <span class="caret"></span></a>
+                  <ul class="dropdown-menu">
+                    <li><a href="#">Action</a></li>
+                    <li><a href="#">Something else here</a></li>
+                    <li class="disabled"><a class="disabled" href="#">Disabled item</a></li>
+                    <li><a href="#">One more link</a></li>
+                    <li><a href="#">Menu item 1</a></li>
+                    <li><a href="#">Menu item 2</a></li>
+                    <li><a href="#">Menu item 3</a></li>
+                    <li><a href="#">Menu item 4</a></li>
+                    <li><a href="#">Menu item 5</a></li>
+                    <li><a href="#">Menu item 6</a></li>
+                    <li><a href="#">Menu item 7</a></li>
+                    <li><a href="#">Menu item 8</a></li>
+                    <li><a href="#">Menu item 9</a></li>
+                    <li><a href="#">Menu item 10</a></li>
+                    <li><a href="#">Menu item 11</a></li>
+                    <li><a href="#">Menu item 12</a></li>
+                    <li><a href="#">Menu item 13</a></li>
+                    <li><a href="#">Menu item 14</a></li>
+                    <li><a href="#">Menu item 15</a></li>
+                    <li><a href="#">Menu item 16</a></li>
+                    <li><a href="#">Menu item 17</a></li>
+                    <li><a href="#">Menu item 18</a></li>
+                    <li><a href="#">Menu item 19</a></li>
+                    <li><a href="#">Menu item 20</a></li>
+                    <li><a href="#">Menu item 21</a></li>
+                    <li><a href="#">Menu item 22</a></li>
+                    <li><a href="#">Menu item 23</a></li>
+                    <li><a href="#">Menu item 24</a></li>
+                    <li><a href="#">Menu item 25</a></li>
+                    <li><a href="#">Menu item 26</a></li>
+                    <li><a href="#">Menu item 27</a></li>
+                    <li><a href="#">Menu item 28</a></li>
+                    <li><a href="#">Menu item 29</a></li>
+                    <li><a href="#">Menu item 30</a></li>
+                    <li><a href="#">Menu item 31</a></li>
+                    <li><a href="#">Menu item 32</a></li>
+                    <li><a href="#">Menu item 33</a></li>
+                    <li><a href="#">Menu item 34</a></li>
+                    <li><a href="#">Menu item 35</a></li>
+                    <li><a href="#">Menu item 36</a></li>
+                    <li><a href="#">Menu item 37</a></li>
+                    <li><a href="#">Menu item 38</a></li>
+                    <li><a href="#">Menu item 39</a></li>
+                    <li><a href="#">Menu item 40</a></li>
+                    <li><a href="#">Menu item 41</a></li>
+                    <li><a href="#">Menu item 42</a></li>
+                    <li><a href="#">Menu item 43</a></li>
+                    <li><a href="#">Menu item 44</a></li>
+                    <li><a href="#">Menu item 45</a></li>
+                    <li><a href="#">Menu item 46</a></li>
+                    <li><a href="#">Menu item 47</a></li>
+                    <li><a href="#">Menu item 48</a></li>
+                    <li><a href="#">Menu item 49</a></li>
+                    <li><a href="#">Menu item 50</a></li>
+                    <li><a href="#">Menu item 51</a></li>
+                    <li><a href="#">Menu item 52</a></li>
+                    <li><a href="#">Menu item 53</a></li>
+                    <li><a href="#">Menu item 54</a></li>
+                    <li><a href="#">Menu item 55</a></li>
+                    <li><a href="#">Menu item 56</a></li>
+                    <li><a href="#">Menu item 57</a></li>
+                    <li><a href="#">Menu item 58</a></li>
+                    <li><a href="#">Menu item 59</a></li>
+                    <li><a href="#">Menu item 60</a></li>
+                  </ul>
+                </li>
+                <li><a href="#">Another link</a></li>
+                <li><a href="#">One more link</a></li>
+              </ul>
+            </li>
+          </ul>
+        </li>
+      </ul>
+  
+      <!-- Right nav -->
+      <ul class="nav navbar-nav navbar-right">
+        <li><a href="bootstrap-navbar.html">Default</a></li>
+        <li class="active"><a href="bootstrap-navbar-static-top.html">Static top</a></li>
+        <li><a href="bootstrap-navbar-fixed-top.html">Fixed top</a></li>
+        <li><a href="bootstrap-navbar-fixed-bottom.html">Fixed bottom</a></li>
+        <li><a href="#">Dropdown <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a href="#">Action</a></li>
+            <li><a href="#">Another action</a></li>
+            <li><a href="#">Something else here</a></li>
+            <li class="divider"></li>
+            <li class="dropdown-header">Nav header</li>
+            <li><a href="#">A sub menu <span class="caret"></span></a>
+              <ul class="dropdown-menu">
+                <li><a href="#">Action</a></li>
+                <li><a href="#">Another action</a></li>
+                <li><a href="#">Something else here</a></li>
+                <li class="disabled"><a class="disabled" href="#">Disabled item</a></li>
+                <li><a href="#">One more link</a></li>
+              </ul>
+            </li>
+            <li><a href="#">A separated link</a></li>
+          </ul>
+        </li>
+      </ul>
+  
+    </div><!--/.nav-collapse -->
+  </div><!--/.container -->
+</div>
+ +

JavaScript

+

In addition to Bootstrap's JavaScript just include SmartMenus jQuery and the SmartMenus jQuery Bootstrap Addon. The default options used in jquery.smartmenus.bootstrap.js should work well for all. However, you can, of course, tweak them if you like.

+
<!-- Bootstrap core JavaScript
+================================================== -->
+<!-- Placed at the end of the document so the pages load faster -->
+<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
+
+<!-- SmartMenus jQuery plugin -->
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>
+
+<!-- SmartMenus jQuery Bootstrap Addon -->
+<script type="text/javascript" src="../addons/bootstrap/jquery.smartmenus.bootstrap.js"></script>
+ +

Quick customization

+ +

data-* attributes

+

The following data-* attributes can be set to any ul.navbar-nav:

+
    +
  • data-sm-options - set any custom options for the SmartMenus jQuery plugin (check the docs for details).
  • +
  • data-sm-skip - this will tell the script to skip this navbar and not apply any SmartMenus features to it so it will behave like a regular Bootstrap navbar.
  • +
  • data-sm-skip-collapsible-behavior - this will tell the script to not apply SmartMenus' specific behavior to this navbar in collapsible mode (mobile view). Bootstrap's behavior for navbars in collapsible mode is to use the whole area of the parent items just as a toggle button for their sub menus and thus it's impossible to set a link to the parent items that can be followed on click/tap. SmartMenus' behavior is to add a separate dedicated +/- sub menus toggle button to parent items and thus allows the link of the parent items to be activated on the second click/tap (the first click/tap displays the sub menu if it's not visible).
  • +
+ +

API

+

The following methods are available:

+
    +
  • jQuery.SmartMenus.Bootstrap.init() - reinit the addon. Useful if you add any navbars dynamically on your page and need to init them (all navbars are normally initialized ondomready).
  • +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar.html b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar.html new file mode 100644 index 0000000..fad489d --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/bootstrap-navbar.html @@ -0,0 +1,386 @@ + + + + + + + + SmartMenus jQuery Website Menu - Bootstrap Addon - Navbar + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + +

You basically just need to include the JS/CSS files on your Bootstrap 3 powered pages and everything should work automatically including full support for whatever Bootstrap theme you already use. And, of course, you still have the full power and flexibility of SmartMenus jQuery at hand should you need to tweak or customize anything.

+ +

Source Code

+ +

CSS

+

In addition to Bootstrap's CSS just include the SmartMenus jQuery Bootstrap Addon CSS. It's just static CSS code you don't need to edit at all (and probably shouldn't try to).

+
<!-- Bootstrap core CSS -->
+<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
+
+<!-- SmartMenus jQuery Bootstrap Addon CSS -->
+<link href="../addons/bootstrap/jquery.smartmenus.bootstrap.css" rel="stylesheet">
+ +

HTML

+
<!-- Navbar -->
+<div class="navbar navbar-default" role="navigation">
+  <div class="navbar-header">
+    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
+      <span class="sr-only">Toggle navigation</span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+      <span class="icon-bar"></span>
+    </button>
+    <a class="navbar-brand" href="#">Project name</a>
+  </div>
+  <div class="navbar-collapse collapse">
+
+    <!-- Left nav -->
+    <ul class="nav navbar-nav">
+      <li><a href="#">Link</a></li>
+      <li><a href="#">Link</a></li>
+      <li><a href="#">Link</a></li>
+      <li><a href="#">Dropdown <span class="caret"></span></a>
+        <ul class="dropdown-menu">
+          <li><a href="#">Action</a></li>
+          <li><a href="#">Another action</a></li>
+          <li><a href="#">Something else here</a></li>
+          <li class="divider"></li>
+          <li class="dropdown-header">Nav header</li>
+          <li><a href="#">Separated link</a></li>
+          <li><a href="#">One more separated link <span class="caret"></span></a>
+            <ul class="dropdown-menu">
+              <li><a href="#">Action</a></li>
+              <li><a href="#">Another action</a></li>
+              <li><a href="#">A long sub menu <span class="caret"></span></a>
+                <ul class="dropdown-menu">
+                  <li><a href="#">Action</a></li>
+                  <li><a href="#">Something else here</a></li>
+                  <li class="disabled"><a class="disabled" href="#">Disabled item</a></li>
+                  <li><a href="#">One more link</a></li>
+                  <li><a href="#">Menu item 1</a></li>
+                  <li><a href="#">Menu item 2</a></li>
+                  <li><a href="#">Menu item 3</a></li>
+                  <li><a href="#">Menu item 4</a></li>
+                  <li><a href="#">Menu item 5</a></li>
+                  <li><a href="#">Menu item 6</a></li>
+                  <li><a href="#">Menu item 7</a></li>
+                  <li><a href="#">Menu item 8</a></li>
+                  <li><a href="#">Menu item 9</a></li>
+                  <li><a href="#">Menu item 10</a></li>
+                  <li><a href="#">Menu item 11</a></li>
+                  <li><a href="#">Menu item 12</a></li>
+                  <li><a href="#">Menu item 13</a></li>
+                  <li><a href="#">Menu item 14</a></li>
+                  <li><a href="#">Menu item 15</a></li>
+                  <li><a href="#">Menu item 16</a></li>
+                  <li><a href="#">Menu item 17</a></li>
+                  <li><a href="#">Menu item 18</a></li>
+                  <li><a href="#">Menu item 19</a></li>
+                  <li><a href="#">Menu item 20</a></li>
+                  <li><a href="#">Menu item 21</a></li>
+                  <li><a href="#">Menu item 22</a></li>
+                  <li><a href="#">Menu item 23</a></li>
+                  <li><a href="#">Menu item 24</a></li>
+                  <li><a href="#">Menu item 25</a></li>
+                  <li><a href="#">Menu item 26</a></li>
+                  <li><a href="#">Menu item 27</a></li>
+                  <li><a href="#">Menu item 28</a></li>
+                  <li><a href="#">Menu item 29</a></li>
+                  <li><a href="#">Menu item 30</a></li>
+                  <li><a href="#">Menu item 31</a></li>
+                  <li><a href="#">Menu item 32</a></li>
+                  <li><a href="#">Menu item 33</a></li>
+                  <li><a href="#">Menu item 34</a></li>
+                  <li><a href="#">Menu item 35</a></li>
+                  <li><a href="#">Menu item 36</a></li>
+                  <li><a href="#">Menu item 37</a></li>
+                  <li><a href="#">Menu item 38</a></li>
+                  <li><a href="#">Menu item 39</a></li>
+                  <li><a href="#">Menu item 40</a></li>
+                  <li><a href="#">Menu item 41</a></li>
+                  <li><a href="#">Menu item 42</a></li>
+                  <li><a href="#">Menu item 43</a></li>
+                  <li><a href="#">Menu item 44</a></li>
+                  <li><a href="#">Menu item 45</a></li>
+                  <li><a href="#">Menu item 46</a></li>
+                  <li><a href="#">Menu item 47</a></li>
+                  <li><a href="#">Menu item 48</a></li>
+                  <li><a href="#">Menu item 49</a></li>
+                  <li><a href="#">Menu item 50</a></li>
+                  <li><a href="#">Menu item 51</a></li>
+                  <li><a href="#">Menu item 52</a></li>
+                  <li><a href="#">Menu item 53</a></li>
+                  <li><a href="#">Menu item 54</a></li>
+                  <li><a href="#">Menu item 55</a></li>
+                  <li><a href="#">Menu item 56</a></li>
+                  <li><a href="#">Menu item 57</a></li>
+                  <li><a href="#">Menu item 58</a></li>
+                  <li><a href="#">Menu item 59</a></li>
+                  <li><a href="#">Menu item 60</a></li>
+                </ul>
+              </li>
+              <li><a href="#">Another link</a></li>
+              <li><a href="#">One more link</a></li>
+            </ul>
+          </li>
+        </ul>
+      </li>
+    </ul>
+
+    <!-- Right nav -->
+    <ul class="nav navbar-nav navbar-right">
+      <li class="active"><a href="bootstrap-navbar.html">Default</a></li>
+      <li><a href="bootstrap-navbar-static-top.html">Static top</a></li>
+      <li><a href="bootstrap-navbar-fixed-top.html">Fixed top</a></li>
+      <li><a href="bootstrap-navbar-fixed-bottom.html">Fixed bottom</a></li>
+      <li><a href="#">Dropdown <span class="caret"></span></a>
+        <ul class="dropdown-menu">
+          <li><a href="#">Action</a></li>
+          <li><a href="#">Another action</a></li>
+          <li><a href="#">Something else here</a></li>
+          <li class="divider"></li>
+          <li class="dropdown-header">Nav header</li>
+          <li><a href="#">A sub menu <span class="caret"></span></a>
+            <ul class="dropdown-menu">
+              <li><a href="#">Action</a></li>
+              <li><a href="#">Another action</a></li>
+              <li><a href="#">Something else here</a></li>
+              <li class="disabled"><a class="disabled" href="#">Disabled item</a></li>
+              <li><a href="#">One more link</a></li>
+            </ul>
+          </li>
+          <li><a href="#">A separated link</a></li>
+        </ul>
+      </li>
+    </ul>
+
+  </div><!--/.nav-collapse -->
+</div>
+ +

JavaScript

+

In addition to Bootstrap's JavaScript just include SmartMenus jQuery and the SmartMenus jQuery Bootstrap Addon. The default options used in jquery.smartmenus.bootstrap.js should work well for all. However, you can, of course, tweak them if you like.

+
<!-- Bootstrap core JavaScript
+================================================== -->
+<!-- Placed at the end of the document so the pages load faster -->
+<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
+<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
+
+<!-- SmartMenus jQuery plugin -->
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>
+
+<!-- SmartMenus jQuery Bootstrap Addon -->
+<script type="text/javascript" src="../addons/bootstrap/jquery.smartmenus.bootstrap.js"></script>
+ +

Quick customization

+ +

data-* attributes

+

The following data-* attributes can be set to any ul.navbar-nav:

+
    +
  • data-sm-options - set any custom options for the SmartMenus jQuery plugin (check the docs for details).
  • +
  • data-sm-skip - this will tell the script to skip this navbar and not apply any SmartMenus features to it so it will behave like a regular Bootstrap navbar.
  • +
  • data-sm-skip-collapsible-behavior - this will tell the script to not apply SmartMenus' specific behavior to this navbar in collapsible mode (mobile view). Bootstrap's behavior for navbars in collapsible mode is to use the whole area of the parent items just as a toggle button for their sub menus and thus it's impossible to set a link to the parent items that can be followed on click/tap. SmartMenus' behavior is to add a separate dedicated +/- sub menus toggle button to parent items and thus allows the link of the parent items to be activated on the second click/tap (the first click/tap displays the sub menu if it's not visible).
  • +
+ +

API

+

The following methods are available:

+
    +
  • jQuery.SmartMenus.Bootstrap.init() - reinit the addon. Useful if you add any navbars dynamically on your page and need to init them (all navbars are normally initialized ondomready).
  • +
+ +
+ + + +
+ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/index.html b/frontend/web/themes/sport/plugins/smartmenus/demo/index.html new file mode 100644 index 0000000..6d0e97a --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/index.html @@ -0,0 +1,226 @@ + + + + SmartMenus jQuery Website Menu - jQuery Plugin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/demo/keyboard-navigation.html b/frontend/web/themes/sport/plugins/smartmenus/demo/keyboard-navigation.html new file mode 100644 index 0000000..069e6fc --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/demo/keyboard-navigation.html @@ -0,0 +1,243 @@ + + + + SmartMenus jQuery Website Menu - Keyboard Addon + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

SmartMenus Keyboard Addon

+

This is a demo of the SmartMenus jQuery Keyboard Addon which you can optionally include on your pages in addition to the SmartMenus jQuery plugin. It brings advanced keyboard navigation for all menu trees you may have on your pages.

+

By default without this addon the SmartMenus plugin includes basic keyboard navigation support - a user can use the Tab key to cycle through all main menu links, the Enter or Space key to activate the sub menus and also include their links in the tab order and the Esc key to deactivate the sub menus.

+

This addon takes keyboard navigation to a more advanced level by allowing the use of the keyboard arrow keys to browse the menu tree conveniently. Additionally a hotkey can be set too if needed - i.e. a keyboard shortcut that will send focus to any menu tree.

+

Improving further accessibility

+

You can consider improving even further accessibility for users of screen readers or text mode browsers by wrapping the main menu item links in headings - e.g. on this demo page <h2> tags are used. This would allow such users to skip from branch to branch more easily in certain scenarios.

+

Demo

+

Press Shift + F12 to send focus to the first link in the main menu above (or press Tab as many times as need to focus some of the menu items). Then press Enter, Space or to activate some sub menu and then you can use the arrow keys to move the focus to other menu items. The script will automatically show/hide the sub menus as needed. You can press Esc at any time to deactivate the sub menus.

+

Methods

+

This addon introduces the following API method:

+
+
keyboardSetHotkey
+
+
Sets a hotkey combination that will send focus to the menu tree.
+
Arguments:
+
+
keyCode
+
Type: Integer
The key code for the hotkey (a good char code reference).
+
modifiers
+
Type: String, Array
The hotkey modifier key. None, one or multiple of 'ctrlKey', 'shiftKey', 'altKey', 'metaKey'.
+
+
Code sample:
+
// set Shift + F12 hotkey
+    $('#main-menu').smartmenus('keyboardSetHotkey', 123, 'shiftKey');
+
+    // set Ctrl + Alt + Shift + F12 hotkey
+    $('#main-menu').smartmenus('keyboardSetHotkey', 123, ['ctrlKey', 'altKey', 'shiftKey']);
+
Note: It is recommended to always use a combination (i.e. modifier + key) rather than use just a single key to avoid preventing important default browser features from working. 'shiftKey' is best supported and probably the safest modifier you could use. 'ctrlKey' and 'altKey' generally work well too, there were just some issues with older Opera versions. 'metaKey' is the Mac key and it only works on Macs so, unless you know what you are doing, you probably shouldn't use it.
+
+
+

« Back to main demo

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/jquery.smartmenus.js b/frontend/web/themes/sport/plugins/smartmenus/jquery.smartmenus.js new file mode 100644 index 0000000..d6b7a47 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/jquery.smartmenus.js @@ -0,0 +1,1216 @@ +/*! + * SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * + * Copyright Vasil Dinkov, Vadikom Web Ltd. + * http://vadikom.com + * + * Licensed MIT + */ + +(function(factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery'], factory); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + // CommonJS + module.exports = factory(require('jquery')); + } else { + // Global jQuery + factory(jQuery); + } +} (function($) { + + var menuTrees = [], + mouse = false, // optimize for touch by default - we will detect for mouse input + touchEvents = 'ontouchstart' in window, // we use this just to choose between toucn and pointer events, not for touch screen detection + mouseDetectionEnabled = false, + requestAnimationFrame = window.requestAnimationFrame || function(callback) { return setTimeout(callback, 1000 / 60); }, + cancelAnimationFrame = window.cancelAnimationFrame || function(id) { clearTimeout(id); }, + canAnimate = !!$.fn.animate; + + // Handle detection for mouse input (i.e. desktop browsers, tablets with a mouse, etc.) + function initMouseDetection(disable) { + var eNS = '.smartmenus_mouse'; + if (!mouseDetectionEnabled && !disable) { + // if we get two consecutive mousemoves within 2 pixels from each other and within 300ms, we assume a real mouse/cursor is present + // in practice, this seems like impossible to trick unintentianally with a real mouse and a pretty safe detection on touch devices (even with older browsers that do not support touch events) + var firstTime = true, + lastMove = null, + events = { + 'mousemove': function(e) { + var thisMove = { x: e.pageX, y: e.pageY, timeStamp: new Date().getTime() }; + if (lastMove) { + var deltaX = Math.abs(lastMove.x - thisMove.x), + deltaY = Math.abs(lastMove.y - thisMove.y); + if ((deltaX > 0 || deltaY > 0) && deltaX <= 2 && deltaY <= 2 && thisMove.timeStamp - lastMove.timeStamp <= 300) { + mouse = true; + // if this is the first check after page load, check if we are not over some item by chance and call the mouseenter handler if yes + if (firstTime) { + var $a = $(e.target).closest('a'); + if ($a.is('a')) { + $.each(menuTrees, function() { + if ($.contains(this.$root[0], $a[0])) { + this.itemEnter({ currentTarget: $a[0] }); + return false; + } + }); + } + firstTime = false; + } + } + } + lastMove = thisMove; + } + }; + events[touchEvents ? 'touchstart' : 'pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut'] = function(e) { + if (isTouchEvent(e.originalEvent)) { + mouse = false; + } + }; + $(document).on(getEventsNS(events, eNS)); + mouseDetectionEnabled = true; + } else if (mouseDetectionEnabled && disable) { + $(document).off(eNS); + mouseDetectionEnabled = false; + } + } + + function isTouchEvent(e) { + return !/^(4|mouse)$/.test(e.pointerType); + } + + // returns a jQuery on() ready object + function getEventsNS(events, eNS) { + if (!eNS) { + eNS = ''; + } + var eventsNS = {}; + for (var i in events) { + eventsNS[i.split(' ').join(eNS + ' ') + eNS] = events[i]; + } + return eventsNS; + } + + $.SmartMenus = function(elm, options) { + this.$root = $(elm); + this.opts = options; + this.rootId = ''; // internal + this.accessIdPrefix = ''; + this.$subArrow = null; + this.activatedItems = []; // stores last activated A's for each level + this.visibleSubMenus = []; // stores visible sub menus UL's (might be in no particular order) + this.showTimeout = 0; + this.hideTimeout = 0; + this.scrollTimeout = 0; + this.clickActivated = false; + this.focusActivated = false; + this.zIndexInc = 0; + this.idInc = 0; + this.$firstLink = null; // we'll use these for some tests + this.$firstSub = null; // at runtime so we'll cache them + this.disabled = false; + this.$disableOverlay = null; + this.$touchScrollingSub = null; + this.cssTransforms3d = 'perspective' in elm.style || 'webkitPerspective' in elm.style; + this.wasCollapsible = false; + this.init(); + }; + + $.extend($.SmartMenus, { + hideAll: function() { + $.each(menuTrees, function() { + this.menuHideAll(); + }); + }, + destroy: function() { + while (menuTrees.length) { + menuTrees[0].destroy(); + } + initMouseDetection(true); + }, + prototype: { + init: function(refresh) { + var self = this; + + if (!refresh) { + menuTrees.push(this); + + this.rootId = (new Date().getTime() + Math.random() + '').replace(/\D/g, ''); + this.accessIdPrefix = 'sm-' + this.rootId + '-'; + + if (this.$root.hasClass('sm-rtl')) { + this.opts.rightToLeftSubMenus = true; + } + + // init root (main menu) + var eNS = '.smartmenus'; + this.$root + .data('smartmenus', this) + .attr('data-smartmenus-id', this.rootId) + .dataSM('level', 1) + .on(getEventsNS({ + 'mouseover focusin': $.proxy(this.rootOver, this), + 'mouseout focusout': $.proxy(this.rootOut, this), + 'keydown': $.proxy(this.rootKeyDown, this) + }, eNS)) + .on(getEventsNS({ + 'mouseenter': $.proxy(this.itemEnter, this), + 'mouseleave': $.proxy(this.itemLeave, this), + 'mousedown': $.proxy(this.itemDown, this), + 'focus': $.proxy(this.itemFocus, this), + 'blur': $.proxy(this.itemBlur, this), + 'click': $.proxy(this.itemClick, this) + }, eNS), 'a'); + + // hide menus on tap or click outside the root UL + eNS += this.rootId; + if (this.opts.hideOnClick) { + $(document).on(getEventsNS({ + 'touchstart': $.proxy(this.docTouchStart, this), + 'touchmove': $.proxy(this.docTouchMove, this), + 'touchend': $.proxy(this.docTouchEnd, this), + // for Opera Mobile < 11.5, webOS browser, etc. we'll check click too + 'click': $.proxy(this.docClick, this) + }, eNS)); + } + // hide sub menus on resize + $(window).on(getEventsNS({ 'resize orientationchange': $.proxy(this.winResize, this) }, eNS)); + + if (this.opts.subIndicators) { + this.$subArrow = $('').addClass('sub-arrow'); + if (this.opts.subIndicatorsText) { + this.$subArrow.html(this.opts.subIndicatorsText); + } + } + + // make sure mouse detection is enabled + initMouseDetection(); + } + + // init sub menus + this.$firstSub = this.$root.find('ul').each(function() { self.menuInit($(this)); }).eq(0); + + this.$firstLink = this.$root.find('a').eq(0); + + // find current item + if (this.opts.markCurrentItem) { + var reDefaultDoc = /(index|default)\.[^#\?\/]*/i, + reHash = /#.*/, + locHref = window.location.href.replace(reDefaultDoc, ''), + locHrefNoHash = locHref.replace(reHash, ''); + this.$root.find('a').each(function() { + var href = this.href.replace(reDefaultDoc, ''), + $this = $(this); + if (href == locHref || href == locHrefNoHash) { + $this.addClass('current'); + if (self.opts.markCurrentTree) { + $this.parentsUntil('[data-smartmenus-id]', 'ul').each(function() { + $(this).dataSM('parent-a').addClass('current'); + }); + } + } + }); + } + + // save initial state + this.wasCollapsible = this.isCollapsible(); + }, + destroy: function(refresh) { + if (!refresh) { + var eNS = '.smartmenus'; + this.$root + .removeData('smartmenus') + .removeAttr('data-smartmenus-id') + .removeDataSM('level') + .off(eNS); + eNS += this.rootId; + $(document).off(eNS); + $(window).off(eNS); + if (this.opts.subIndicators) { + this.$subArrow = null; + } + } + this.menuHideAll(); + var self = this; + this.$root.find('ul').each(function() { + var $this = $(this); + if ($this.dataSM('scroll-arrows')) { + $this.dataSM('scroll-arrows').remove(); + } + if ($this.dataSM('shown-before')) { + if (self.opts.subMenusMinWidth || self.opts.subMenusMaxWidth) { + $this.css({ width: '', minWidth: '', maxWidth: '' }).removeClass('sm-nowrap'); + } + if ($this.dataSM('scroll-arrows')) { + $this.dataSM('scroll-arrows').remove(); + } + $this.css({ zIndex: '', top: '', left: '', marginLeft: '', marginTop: '', display: '' }); + } + if (($this.attr('id') || '').indexOf(self.accessIdPrefix) == 0) { + $this.removeAttr('id'); + } + }) + .removeDataSM('in-mega') + .removeDataSM('shown-before') + .removeDataSM('scroll-arrows') + .removeDataSM('parent-a') + .removeDataSM('level') + .removeDataSM('beforefirstshowfired') + .removeAttr('role') + .removeAttr('aria-hidden') + .removeAttr('aria-labelledby') + .removeAttr('aria-expanded'); + this.$root.find('a.has-submenu').each(function() { + var $this = $(this); + if ($this.attr('id').indexOf(self.accessIdPrefix) == 0) { + $this.removeAttr('id'); + } + }) + .removeClass('has-submenu') + .removeDataSM('sub') + .removeAttr('aria-haspopup') + .removeAttr('aria-controls') + .removeAttr('aria-expanded') + .closest('li').removeDataSM('sub'); + if (this.opts.subIndicators) { + this.$root.find('span.sub-arrow').remove(); + } + if (this.opts.markCurrentItem) { + this.$root.find('a.current').removeClass('current'); + } + if (!refresh) { + this.$root = null; + this.$firstLink = null; + this.$firstSub = null; + if (this.$disableOverlay) { + this.$disableOverlay.remove(); + this.$disableOverlay = null; + } + menuTrees.splice($.inArray(this, menuTrees), 1); + } + }, + disable: function(noOverlay) { + if (!this.disabled) { + this.menuHideAll(); + // display overlay over the menu to prevent interaction + if (!noOverlay && !this.opts.isPopup && this.$root.is(':visible')) { + var pos = this.$root.offset(); + this.$disableOverlay = $('
').css({ + position: 'absolute', + top: pos.top, + left: pos.left, + width: this.$root.outerWidth(), + height: this.$root.outerHeight(), + zIndex: this.getStartZIndex(true), + opacity: 0 + }).appendTo(document.body); + } + this.disabled = true; + } + }, + docClick: function(e) { + if (this.$touchScrollingSub) { + this.$touchScrollingSub = null; + return; + } + // hide on any click outside the menu or on a menu link + if (this.visibleSubMenus.length && !$.contains(this.$root[0], e.target) || $(e.target).closest('a').length) { + this.menuHideAll(); + } + }, + docTouchEnd: function(e) { + if (!this.lastTouch) { + return; + } + if (this.visibleSubMenus.length && (this.lastTouch.x2 === undefined || this.lastTouch.x1 == this.lastTouch.x2) && (this.lastTouch.y2 === undefined || this.lastTouch.y1 == this.lastTouch.y2) && (!this.lastTouch.target || !$.contains(this.$root[0], this.lastTouch.target))) { + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout = 0; + } + // hide with a delay to prevent triggering accidental unwanted click on some page element + var self = this; + this.hideTimeout = setTimeout(function() { self.menuHideAll(); }, 350); + } + this.lastTouch = null; + }, + docTouchMove: function(e) { + if (!this.lastTouch) { + return; + } + var touchPoint = e.originalEvent.touches[0]; + this.lastTouch.x2 = touchPoint.pageX; + this.lastTouch.y2 = touchPoint.pageY; + }, + docTouchStart: function(e) { + var touchPoint = e.originalEvent.touches[0]; + this.lastTouch = { x1: touchPoint.pageX, y1: touchPoint.pageY, target: touchPoint.target }; + }, + enable: function() { + if (this.disabled) { + if (this.$disableOverlay) { + this.$disableOverlay.remove(); + this.$disableOverlay = null; + } + this.disabled = false; + } + }, + getClosestMenu: function(elm) { + var $closestMenu = $(elm).closest('ul'); + while ($closestMenu.dataSM('in-mega')) { + $closestMenu = $closestMenu.parent().closest('ul'); + } + return $closestMenu[0] || null; + }, + getHeight: function($elm) { + return this.getOffset($elm, true); + }, + // returns precise width/height float values + getOffset: function($elm, height) { + var old; + if ($elm.css('display') == 'none') { + old = { position: $elm[0].style.position, visibility: $elm[0].style.visibility }; + $elm.css({ position: 'absolute', visibility: 'hidden' }).show(); + } + var box = $elm[0].getBoundingClientRect && $elm[0].getBoundingClientRect(), + val = box && (height ? box.height || box.bottom - box.top : box.width || box.right - box.left); + if (!val && val !== 0) { + val = height ? $elm[0].offsetHeight : $elm[0].offsetWidth; + } + if (old) { + $elm.hide().css(old); + } + return val; + }, + getStartZIndex: function(root) { + var zIndex = parseInt(this[root ? '$root' : '$firstSub'].css('z-index')); + if (!root && isNaN(zIndex)) { + zIndex = parseInt(this.$root.css('z-index')); + } + return !isNaN(zIndex) ? zIndex : 1; + }, + getTouchPoint: function(e) { + return e.touches && e.touches[0] || e.changedTouches && e.changedTouches[0] || e; + }, + getViewport: function(height) { + var name = height ? 'Height' : 'Width', + val = document.documentElement['client' + name], + val2 = window['inner' + name]; + if (val2) { + val = Math.min(val, val2); + } + return val; + }, + getViewportHeight: function() { + return this.getViewport(true); + }, + getViewportWidth: function() { + return this.getViewport(); + }, + getWidth: function($elm) { + return this.getOffset($elm); + }, + handleEvents: function() { + return !this.disabled && this.isCSSOn(); + }, + handleItemEvents: function($a) { + return this.handleEvents() && !this.isLinkInMegaMenu($a); + }, + isCollapsible: function() { + return this.$firstSub.css('position') == 'static'; + }, + isCSSOn: function() { + return this.$firstLink.css('display') != 'inline'; + }, + isFixed: function() { + var isFixed = this.$root.css('position') == 'fixed'; + if (!isFixed) { + this.$root.parentsUntil('body').each(function() { + if ($(this).css('position') == 'fixed') { + isFixed = true; + return false; + } + }); + } + return isFixed; + }, + isLinkInMegaMenu: function($a) { + return $(this.getClosestMenu($a[0])).hasClass('mega-menu'); + }, + isTouchMode: function() { + return !mouse || this.opts.noMouseOver || this.isCollapsible(); + }, + itemActivate: function($a, hideDeeperSubs) { + var $ul = $a.closest('ul'), + level = $ul.dataSM('level'); + // if for some reason the parent item is not activated (e.g. this is an API call to activate the item), activate all parent items first + if (level > 1 && (!this.activatedItems[level - 2] || this.activatedItems[level - 2][0] != $ul.dataSM('parent-a')[0])) { + var self = this; + $($ul.parentsUntil('[data-smartmenus-id]', 'ul').get().reverse()).add($ul).each(function() { + self.itemActivate($(this).dataSM('parent-a')); + }); + } + // hide any visible deeper level sub menus + if (!this.isCollapsible() || hideDeeperSubs) { + this.menuHideSubMenus(!this.activatedItems[level - 1] || this.activatedItems[level - 1][0] != $a[0] ? level - 1 : level); + } + // save new active item for this level + this.activatedItems[level - 1] = $a; + if (this.$root.triggerHandler('activate.smapi', $a[0]) === false) { + return; + } + // show the sub menu if this item has one + var $sub = $a.dataSM('sub'); + if ($sub && (this.isTouchMode() || (!this.opts.showOnClick || this.clickActivated))) { + this.menuShow($sub); + } + }, + itemBlur: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + this.$root.triggerHandler('blur.smapi', $a[0]); + }, + itemClick: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + if (this.$touchScrollingSub && this.$touchScrollingSub[0] == $a.closest('ul')[0]) { + this.$touchScrollingSub = null; + e.stopPropagation(); + return false; + } + if (this.$root.triggerHandler('click.smapi', $a[0]) === false) { + return false; + } + var subArrowClicked = $(e.target).is('.sub-arrow'), + $sub = $a.dataSM('sub'), + firstLevelSub = $sub ? $sub.dataSM('level') == 2 : false, + collapsible = this.isCollapsible(), + behaviorToggle = /toggle$/.test(this.opts.collapsibleBehavior), + behaviorLink = /link$/.test(this.opts.collapsibleBehavior), + behaviorAccordion = /^accordion/.test(this.opts.collapsibleBehavior); + // if the sub is hidden, try to show it + if ($sub && !$sub.is(':visible')) { + if (!behaviorLink || !collapsible || subArrowClicked) { + if (this.opts.showOnClick && firstLevelSub) { + this.clickActivated = true; + } + // try to activate the item and show the sub + this.itemActivate($a, behaviorAccordion); + // if "itemActivate" showed the sub, prevent the click so that the link is not loaded + // if it couldn't show it, then the sub menus are disabled with an !important declaration (e.g. via mobile styles) so let the link get loaded + if ($sub.is(':visible')) { + this.focusActivated = true; + return false; + } + } + // if the sub is visible and we are in collapsible mode + } else if (collapsible && (behaviorToggle || subArrowClicked)) { + this.itemActivate($a, behaviorAccordion); + this.menuHide($sub); + if (behaviorToggle) { + this.focusActivated = false; + } + return false; + } + if (this.opts.showOnClick && firstLevelSub || $a.hasClass('disabled') || this.$root.triggerHandler('select.smapi', $a[0]) === false) { + return false; + } + }, + itemDown: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + $a.dataSM('mousedown', true); + }, + itemEnter: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + if (!this.isTouchMode()) { + if (this.showTimeout) { + clearTimeout(this.showTimeout); + this.showTimeout = 0; + } + var self = this; + this.showTimeout = setTimeout(function() { self.itemActivate($a); }, this.opts.showOnClick && $a.closest('ul').dataSM('level') == 1 ? 1 : this.opts.showTimeout); + } + this.$root.triggerHandler('mouseenter.smapi', $a[0]); + }, + itemFocus: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + // fix (the mousedown check): in some browsers a tap/click produces consecutive focus + click events so we don't need to activate the item on focus + if (this.focusActivated && (!this.isTouchMode() || !$a.dataSM('mousedown')) && (!this.activatedItems.length || this.activatedItems[this.activatedItems.length - 1][0] != $a[0])) { + this.itemActivate($a, true); + } + this.$root.triggerHandler('focus.smapi', $a[0]); + }, + itemLeave: function(e) { + var $a = $(e.currentTarget); + if (!this.handleItemEvents($a)) { + return; + } + if (!this.isTouchMode()) { + $a[0].blur(); + if (this.showTimeout) { + clearTimeout(this.showTimeout); + this.showTimeout = 0; + } + } + $a.removeDataSM('mousedown'); + this.$root.triggerHandler('mouseleave.smapi', $a[0]); + }, + menuHide: function($sub) { + if (this.$root.triggerHandler('beforehide.smapi', $sub[0]) === false) { + return; + } + if (canAnimate) { + $sub.stop(true, true); + } + if ($sub.css('display') != 'none') { + var complete = function() { + // unset z-index + $sub.css('z-index', ''); + }; + // if sub is collapsible (mobile view) + if (this.isCollapsible()) { + if (canAnimate && this.opts.collapsibleHideFunction) { + this.opts.collapsibleHideFunction.call(this, $sub, complete); + } else { + $sub.hide(this.opts.collapsibleHideDuration, complete); + } + } else { + if (canAnimate && this.opts.hideFunction) { + this.opts.hideFunction.call(this, $sub, complete); + } else { + $sub.hide(this.opts.hideDuration, complete); + } + } + // deactivate scrolling if it is activated for this sub + if ($sub.dataSM('scroll')) { + this.menuScrollStop($sub); + $sub.css({ 'touch-action': '', '-ms-touch-action': '', '-webkit-transform': '', transform: '' }) + .off('.smartmenus_scroll').removeDataSM('scroll').dataSM('scroll-arrows').hide(); + } + // unhighlight parent item + accessibility + $sub.dataSM('parent-a').removeClass('highlighted').attr('aria-expanded', 'false'); + $sub.attr({ + 'aria-expanded': 'false', + 'aria-hidden': 'true' + }); + var level = $sub.dataSM('level'); + this.activatedItems.splice(level - 1, 1); + this.visibleSubMenus.splice($.inArray($sub, this.visibleSubMenus), 1); + this.$root.triggerHandler('hide.smapi', $sub[0]); + } + }, + menuHideAll: function() { + if (this.showTimeout) { + clearTimeout(this.showTimeout); + this.showTimeout = 0; + } + // hide all subs + // if it's a popup, this.visibleSubMenus[0] is the root UL + var level = this.opts.isPopup ? 1 : 0; + for (var i = this.visibleSubMenus.length - 1; i >= level; i--) { + this.menuHide(this.visibleSubMenus[i]); + } + // hide root if it's popup + if (this.opts.isPopup) { + if (canAnimate) { + this.$root.stop(true, true); + } + if (this.$root.is(':visible')) { + if (canAnimate && this.opts.hideFunction) { + this.opts.hideFunction.call(this, this.$root); + } else { + this.$root.hide(this.opts.hideDuration); + } + } + } + this.activatedItems = []; + this.visibleSubMenus = []; + this.clickActivated = false; + this.focusActivated = false; + // reset z-index increment + this.zIndexInc = 0; + this.$root.triggerHandler('hideAll.smapi'); + }, + menuHideSubMenus: function(level) { + for (var i = this.activatedItems.length - 1; i >= level; i--) { + var $sub = this.activatedItems[i].dataSM('sub'); + if ($sub) { + this.menuHide($sub); + } + } + }, + menuInit: function($ul) { + if (!$ul.dataSM('in-mega')) { + // mark UL's in mega drop downs (if any) so we can neglect them + if ($ul.hasClass('mega-menu')) { + $ul.find('ul').dataSM('in-mega', true); + } + // get level (much faster than, for example, using parentsUntil) + var level = 2, + par = $ul[0]; + while ((par = par.parentNode.parentNode) != this.$root[0]) { + level++; + } + // cache stuff for quick access + var $a = $ul.prevAll('a').eq(-1); + // if the link is nested (e.g. in a heading) + if (!$a.length) { + $a = $ul.prevAll().find('a').eq(-1); + } + $a.addClass('has-submenu').dataSM('sub', $ul); + $ul.dataSM('parent-a', $a) + .dataSM('level', level) + .parent().dataSM('sub', $ul); + // accessibility + var aId = $a.attr('id') || this.accessIdPrefix + (++this.idInc), + ulId = $ul.attr('id') || this.accessIdPrefix + (++this.idInc); + $a.attr({ + id: aId, + 'aria-haspopup': 'true', + 'aria-controls': ulId, + 'aria-expanded': 'false' + }); + $ul.attr({ + id: ulId, + 'role': 'group', + 'aria-hidden': 'true', + 'aria-labelledby': aId, + 'aria-expanded': 'false' + }); + // add sub indicator to parent item + if (this.opts.subIndicators) { + $a[this.opts.subIndicatorsPos](this.$subArrow.clone()); + } + } + }, + menuPosition: function($sub) { + var $a = $sub.dataSM('parent-a'), + $li = $a.closest('li'), + $ul = $li.parent(), + level = $sub.dataSM('level'), + subW = this.getWidth($sub), + subH = this.getHeight($sub), + itemOffset = $a.offset(), + itemX = itemOffset.left, + itemY = itemOffset.top, + itemW = this.getWidth($a), + itemH = this.getHeight($a), + $win = $(window), + winX = $win.scrollLeft(), + winY = $win.scrollTop(), + winW = this.getViewportWidth(), + winH = this.getViewportHeight(), + horizontalParent = $ul.parent().is('[data-sm-horizontal-sub]') || level == 2 && !$ul.hasClass('sm-vertical'), + rightToLeft = this.opts.rightToLeftSubMenus && !$li.is('[data-sm-reverse]') || !this.opts.rightToLeftSubMenus && $li.is('[data-sm-reverse]'), + subOffsetX = level == 2 ? this.opts.mainMenuSubOffsetX : this.opts.subMenusSubOffsetX, + subOffsetY = level == 2 ? this.opts.mainMenuSubOffsetY : this.opts.subMenusSubOffsetY, + x, y; + if (horizontalParent) { + x = rightToLeft ? itemW - subW - subOffsetX : subOffsetX; + y = this.opts.bottomToTopSubMenus ? -subH - subOffsetY : itemH + subOffsetY; + } else { + x = rightToLeft ? subOffsetX - subW : itemW - subOffsetX; + y = this.opts.bottomToTopSubMenus ? itemH - subOffsetY - subH : subOffsetY; + } + if (this.opts.keepInViewport) { + var absX = itemX + x, + absY = itemY + y; + if (rightToLeft && absX < winX) { + x = horizontalParent ? winX - absX + x : itemW - subOffsetX; + } else if (!rightToLeft && absX + subW > winX + winW) { + x = horizontalParent ? winX + winW - subW - absX + x : subOffsetX - subW; + } + if (!horizontalParent) { + if (subH < winH && absY + subH > winY + winH) { + y += winY + winH - subH - absY; + } else if (subH >= winH || absY < winY) { + y += winY - absY; + } + } + // do we need scrolling? + // 0.49 used for better precision when dealing with float values + if (horizontalParent && (absY + subH > winY + winH + 0.49 || absY < winY) || !horizontalParent && subH > winH + 0.49) { + var self = this; + if (!$sub.dataSM('scroll-arrows')) { + $sub.dataSM('scroll-arrows', $([$('')[0], $('')[0]]) + .on({ + mouseenter: function() { + $sub.dataSM('scroll').up = $(this).hasClass('scroll-up'); + self.menuScroll($sub); + }, + mouseleave: function(e) { + self.menuScrollStop($sub); + self.menuScrollOut($sub, e); + }, + 'mousewheel DOMMouseScroll': function(e) { e.preventDefault(); } + }) + .insertAfter($sub) + ); + } + // bind scroll events and save scroll data for this sub + var eNS = '.smartmenus_scroll'; + $sub.dataSM('scroll', { + y: this.cssTransforms3d ? 0 : y - itemH, + step: 1, + // cache stuff for faster recalcs later + itemH: itemH, + subH: subH, + arrowDownH: this.getHeight($sub.dataSM('scroll-arrows').eq(1)) + }) + .on(getEventsNS({ + 'mouseover': function(e) { self.menuScrollOver($sub, e); }, + 'mouseout': function(e) { self.menuScrollOut($sub, e); }, + 'mousewheel DOMMouseScroll': function(e) { self.menuScrollMousewheel($sub, e); } + }, eNS)) + .dataSM('scroll-arrows').css({ top: 'auto', left: '0', marginLeft: x + (parseInt($sub.css('border-left-width')) || 0), width: subW - (parseInt($sub.css('border-left-width')) || 0) - (parseInt($sub.css('border-right-width')) || 0), zIndex: $sub.css('z-index') }) + .eq(horizontalParent && this.opts.bottomToTopSubMenus ? 0 : 1).show(); + // when a menu tree is fixed positioned we allow scrolling via touch too + // since there is no other way to access such long sub menus if no mouse is present + if (this.isFixed()) { + var events = {}; + events[touchEvents ? 'touchstart touchmove touchend' : 'pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp'] = function(e) { + self.menuScrollTouch($sub, e); + }; + $sub.css({ 'touch-action': 'none', '-ms-touch-action': 'none' }).on(getEventsNS(events, eNS)); + } + } + } + $sub.css({ top: 'auto', left: '0', marginLeft: x, marginTop: y - itemH }); + }, + menuScroll: function($sub, once, step) { + var data = $sub.dataSM('scroll'), + $arrows = $sub.dataSM('scroll-arrows'), + end = data.up ? data.upEnd : data.downEnd, + diff; + if (!once && data.momentum) { + data.momentum *= 0.92; + diff = data.momentum; + if (diff < 0.5) { + this.menuScrollStop($sub); + return; + } + } else { + diff = step || (once || !this.opts.scrollAccelerate ? this.opts.scrollStep : Math.floor(data.step)); + } + // hide any visible deeper level sub menus + var level = $sub.dataSM('level'); + if (this.activatedItems[level - 1] && this.activatedItems[level - 1].dataSM('sub') && this.activatedItems[level - 1].dataSM('sub').is(':visible')) { + this.menuHideSubMenus(level - 1); + } + data.y = data.up && end <= data.y || !data.up && end >= data.y ? data.y : (Math.abs(end - data.y) > diff ? data.y + (data.up ? diff : -diff) : end); + $sub.css(this.cssTransforms3d ? { '-webkit-transform': 'translate3d(0, ' + data.y + 'px, 0)', transform: 'translate3d(0, ' + data.y + 'px, 0)' } : { marginTop: data.y }); + // show opposite arrow if appropriate + if (mouse && (data.up && data.y > data.downEnd || !data.up && data.y < data.upEnd)) { + $arrows.eq(data.up ? 1 : 0).show(); + } + // if we've reached the end + if (data.y == end) { + if (mouse) { + $arrows.eq(data.up ? 0 : 1).hide(); + } + this.menuScrollStop($sub); + } else if (!once) { + if (this.opts.scrollAccelerate && data.step < this.opts.scrollStep) { + data.step += 0.2; + } + var self = this; + this.scrollTimeout = requestAnimationFrame(function() { self.menuScroll($sub); }); + } + }, + menuScrollMousewheel: function($sub, e) { + if (this.getClosestMenu(e.target) == $sub[0]) { + e = e.originalEvent; + var up = (e.wheelDelta || -e.detail) > 0; + if ($sub.dataSM('scroll-arrows').eq(up ? 0 : 1).is(':visible')) { + $sub.dataSM('scroll').up = up; + this.menuScroll($sub, true); + } + } + e.preventDefault(); + }, + menuScrollOut: function($sub, e) { + if (mouse) { + if (!/^scroll-(up|down)/.test((e.relatedTarget || '').className) && ($sub[0] != e.relatedTarget && !$.contains($sub[0], e.relatedTarget) || this.getClosestMenu(e.relatedTarget) != $sub[0])) { + $sub.dataSM('scroll-arrows').css('visibility', 'hidden'); + } + } + }, + menuScrollOver: function($sub, e) { + if (mouse) { + if (!/^scroll-(up|down)/.test(e.target.className) && this.getClosestMenu(e.target) == $sub[0]) { + this.menuScrollRefreshData($sub); + var data = $sub.dataSM('scroll'), + upEnd = $(window).scrollTop() - $sub.dataSM('parent-a').offset().top - data.itemH; + $sub.dataSM('scroll-arrows').eq(0).css('margin-top', upEnd).end() + .eq(1).css('margin-top', upEnd + this.getViewportHeight() - data.arrowDownH).end() + .css('visibility', 'visible'); + } + } + }, + menuScrollRefreshData: function($sub) { + var data = $sub.dataSM('scroll'), + upEnd = $(window).scrollTop() - $sub.dataSM('parent-a').offset().top - data.itemH; + if (this.cssTransforms3d) { + upEnd = -(parseFloat($sub.css('margin-top')) - upEnd); + } + $.extend(data, { + upEnd: upEnd, + downEnd: upEnd + this.getViewportHeight() - data.subH + }); + }, + menuScrollStop: function($sub) { + if (this.scrollTimeout) { + cancelAnimationFrame(this.scrollTimeout); + this.scrollTimeout = 0; + $sub.dataSM('scroll').step = 1; + return true; + } + }, + menuScrollTouch: function($sub, e) { + e = e.originalEvent; + if (isTouchEvent(e)) { + var touchPoint = this.getTouchPoint(e); + // neglect event if we touched a visible deeper level sub menu + if (this.getClosestMenu(touchPoint.target) == $sub[0]) { + var data = $sub.dataSM('scroll'); + if (/(start|down)$/i.test(e.type)) { + if (this.menuScrollStop($sub)) { + // if we were scrolling, just stop and don't activate any link on the first touch + e.preventDefault(); + this.$touchScrollingSub = $sub; + } else { + this.$touchScrollingSub = null; + } + // update scroll data since the user might have zoomed, etc. + this.menuScrollRefreshData($sub); + // extend it with the touch properties + $.extend(data, { + touchStartY: touchPoint.pageY, + touchStartTime: e.timeStamp + }); + } else if (/move$/i.test(e.type)) { + var prevY = data.touchY !== undefined ? data.touchY : data.touchStartY; + if (prevY !== undefined && prevY != touchPoint.pageY) { + this.$touchScrollingSub = $sub; + var up = prevY < touchPoint.pageY; + // changed direction? reset... + if (data.up !== undefined && data.up != up) { + $.extend(data, { + touchStartY: touchPoint.pageY, + touchStartTime: e.timeStamp + }); + } + $.extend(data, { + up: up, + touchY: touchPoint.pageY + }); + this.menuScroll($sub, true, Math.abs(touchPoint.pageY - prevY)); + } + e.preventDefault(); + } else { // touchend/pointerup + if (data.touchY !== undefined) { + if (data.momentum = Math.pow(Math.abs(touchPoint.pageY - data.touchStartY) / (e.timeStamp - data.touchStartTime), 2) * 15) { + this.menuScrollStop($sub); + this.menuScroll($sub); + e.preventDefault(); + } + delete data.touchY; + } + } + } + } + }, + menuShow: function($sub) { + if (!$sub.dataSM('beforefirstshowfired')) { + $sub.dataSM('beforefirstshowfired', true); + if (this.$root.triggerHandler('beforefirstshow.smapi', $sub[0]) === false) { + return; + } + } + if (this.$root.triggerHandler('beforeshow.smapi', $sub[0]) === false) { + return; + } + $sub.dataSM('shown-before', true); + if (canAnimate) { + $sub.stop(true, true); + } + if (!$sub.is(':visible')) { + // highlight parent item + var $a = $sub.dataSM('parent-a'), + collapsible = this.isCollapsible(); + if (this.opts.keepHighlighted || collapsible) { + $a.addClass('highlighted'); + } + if (collapsible) { + $sub.removeClass('sm-nowrap').css({ zIndex: '', width: 'auto', minWidth: '', maxWidth: '', top: '', left: '', marginLeft: '', marginTop: '' }); + } else { + // set z-index + $sub.css('z-index', this.zIndexInc = (this.zIndexInc || this.getStartZIndex()) + 1); + // min/max-width fix - no way to rely purely on CSS as all UL's are nested + if (this.opts.subMenusMinWidth || this.opts.subMenusMaxWidth) { + $sub.css({ width: 'auto', minWidth: '', maxWidth: '' }).addClass('sm-nowrap'); + if (this.opts.subMenusMinWidth) { + $sub.css('min-width', this.opts.subMenusMinWidth); + } + if (this.opts.subMenusMaxWidth) { + var noMaxWidth = this.getWidth($sub); + $sub.css('max-width', this.opts.subMenusMaxWidth); + if (noMaxWidth > this.getWidth($sub)) { + $sub.removeClass('sm-nowrap').css('width', this.opts.subMenusMaxWidth); + } + } + } + this.menuPosition($sub); + } + var complete = function() { + // fix: "overflow: hidden;" is not reset on animation complete in jQuery < 1.9.0 in Chrome when global "box-sizing: border-box;" is used + $sub.css('overflow', ''); + }; + // if sub is collapsible (mobile view) + if (collapsible) { + if (canAnimate && this.opts.collapsibleShowFunction) { + this.opts.collapsibleShowFunction.call(this, $sub, complete); + } else { + $sub.show(this.opts.collapsibleShowDuration, complete); + } + } else { + if (canAnimate && this.opts.showFunction) { + this.opts.showFunction.call(this, $sub, complete); + } else { + $sub.show(this.opts.showDuration, complete); + } + } + // accessibility + $a.attr('aria-expanded', 'true'); + $sub.attr({ + 'aria-expanded': 'true', + 'aria-hidden': 'false' + }); + // store sub menu in visible array + this.visibleSubMenus.push($sub); + this.$root.triggerHandler('show.smapi', $sub[0]); + } + }, + popupHide: function(noHideTimeout) { + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout = 0; + } + var self = this; + this.hideTimeout = setTimeout(function() { + self.menuHideAll(); + }, noHideTimeout ? 1 : this.opts.hideTimeout); + }, + popupShow: function(left, top) { + if (!this.opts.isPopup) { + alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'); + return; + } + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout = 0; + } + this.$root.dataSM('shown-before', true); + if (canAnimate) { + this.$root.stop(true, true); + } + if (!this.$root.is(':visible')) { + this.$root.css({ left: left, top: top }); + // show menu + var self = this, + complete = function() { + self.$root.css('overflow', ''); + }; + if (canAnimate && this.opts.showFunction) { + this.opts.showFunction.call(this, this.$root, complete); + } else { + this.$root.show(this.opts.showDuration, complete); + } + this.visibleSubMenus[0] = this.$root; + } + }, + refresh: function() { + this.destroy(true); + this.init(true); + }, + rootKeyDown: function(e) { + if (!this.handleEvents()) { + return; + } + switch (e.keyCode) { + case 27: // reset on Esc + var $activeTopItem = this.activatedItems[0]; + if ($activeTopItem) { + this.menuHideAll(); + $activeTopItem[0].focus(); + var $sub = $activeTopItem.dataSM('sub'); + if ($sub) { + this.menuHide($sub); + } + } + break; + case 32: // activate item's sub on Space + var $target = $(e.target); + if ($target.is('a') && this.handleItemEvents($target)) { + var $sub = $target.dataSM('sub'); + if ($sub && !$sub.is(':visible')) { + this.itemClick({ currentTarget: e.target }); + e.preventDefault(); + } + } + break; + } + }, + rootOut: function(e) { + if (!this.handleEvents() || this.isTouchMode() || e.target == this.$root[0]) { + return; + } + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout = 0; + } + if (!this.opts.showOnClick || !this.opts.hideOnClick) { + var self = this; + this.hideTimeout = setTimeout(function() { self.menuHideAll(); }, this.opts.hideTimeout); + } + }, + rootOver: function(e) { + if (!this.handleEvents() || this.isTouchMode() || e.target == this.$root[0]) { + return; + } + if (this.hideTimeout) { + clearTimeout(this.hideTimeout); + this.hideTimeout = 0; + } + }, + winResize: function(e) { + if (!this.handleEvents()) { + // we still need to resize the disable overlay if it's visible + if (this.$disableOverlay) { + var pos = this.$root.offset(); + this.$disableOverlay.css({ + top: pos.top, + left: pos.left, + width: this.$root.outerWidth(), + height: this.$root.outerHeight() + }); + } + return; + } + // hide sub menus on resize - on mobile do it only on orientation change + if (!('onorientationchange' in window) || e.type == 'orientationchange') { + var collapsible = this.isCollapsible(); + // if it was collapsible before resize and still is, don't do it + if (!(this.wasCollapsible && collapsible)) { + if (this.activatedItems.length) { + this.activatedItems[this.activatedItems.length - 1][0].blur(); + } + this.menuHideAll(); + } + this.wasCollapsible = collapsible; + } + } + } + }); + + $.fn.dataSM = function(key, val) { + if (val) { + return this.data(key + '_smartmenus', val); + } + return this.data(key + '_smartmenus'); + }; + + $.fn.removeDataSM = function(key) { + return this.removeData(key + '_smartmenus'); + }; + + $.fn.smartmenus = function(options) { + if (typeof options == 'string') { + var args = arguments, + method = options; + Array.prototype.shift.call(args); + return this.each(function() { + var smartmenus = $(this).data('smartmenus'); + if (smartmenus && smartmenus[method]) { + smartmenus[method].apply(smartmenus, args); + } + }); + } + return this.each(function() { + // [data-sm-options] attribute on the root UL + var dataOpts = $(this).data('sm-options') || null; + if (dataOpts) { + try { + dataOpts = eval('(' + dataOpts + ')'); + } catch(e) { + dataOpts = null; + alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.'); + }; + } + new $.SmartMenus(this, $.extend({}, $.fn.smartmenus.defaults, options, dataOpts)); + }); + }; + + // default settings + $.fn.smartmenus.defaults = { + isPopup: false, // is this a popup menu (can be shown via the popupShow/popupHide methods) or a permanent menu bar + mainMenuSubOffsetX: 0, // pixels offset from default position + mainMenuSubOffsetY: 0, // pixels offset from default position + subMenusSubOffsetX: 0, // pixels offset from default position + subMenusSubOffsetY: 0, // pixels offset from default position + subMenusMinWidth: '10em', // min-width for the sub menus (any CSS unit) - if set, the fixed width set in CSS will be ignored + subMenusMaxWidth: '20em', // max-width for the sub menus (any CSS unit) - if set, the fixed width set in CSS will be ignored + subIndicators: true, // create sub menu indicators - creates a SPAN and inserts it in the A + subIndicatorsPos: 'append', // position of the SPAN relative to the menu item content ('append', 'prepend') + subIndicatorsText: '', // [optionally] add text in the SPAN (e.g. '+') (you may want to check the CSS for the sub indicators too) + scrollStep: 30, // pixels step when scrolling long sub menus that do not fit in the viewport height + scrollAccelerate: true, // accelerate scrolling or use a fixed step + showTimeout: 250, // timeout before showing the sub menus + hideTimeout: 500, // timeout before hiding the sub menus + showDuration: 0, // duration for show animation - set to 0 for no animation - matters only if showFunction:null + showFunction: null, // custom function to use when showing a sub menu (the default is the jQuery 'show') + // don't forget to call complete() at the end of whatever you do + // e.g.: function($ul, complete) { $ul.fadeIn(250, complete); } + hideDuration: 0, // duration for hide animation - set to 0 for no animation - matters only if hideFunction:null + hideFunction: function($ul, complete) { $ul.fadeOut(200, complete); }, // custom function to use when hiding a sub menu (the default is the jQuery 'hide') + // don't forget to call complete() at the end of whatever you do + // e.g.: function($ul, complete) { $ul.fadeOut(250, complete); } + collapsibleShowDuration:0, // duration for show animation for collapsible sub menus - matters only if collapsibleShowFunction:null + collapsibleShowFunction:function($ul, complete) { $ul.slideDown(200, complete); }, // custom function to use when showing a collapsible sub menu + // (i.e. when mobile styles are used to make the sub menus collapsible) + collapsibleHideDuration:0, // duration for hide animation for collapsible sub menus - matters only if collapsibleHideFunction:null + collapsibleHideFunction:function($ul, complete) { $ul.slideUp(200, complete); }, // custom function to use when hiding a collapsible sub menu + // (i.e. when mobile styles are used to make the sub menus collapsible) + showOnClick: false, // show the first-level sub menus onclick instead of onmouseover (i.e. mimic desktop app menus) (matters only for mouse input) + hideOnClick: true, // hide the sub menus on click/tap anywhere on the page + noMouseOver: false, // disable sub menus activation onmouseover (i.e. behave like in touch mode - use just mouse clicks) (matters only for mouse input) + keepInViewport: true, // reposition the sub menus if needed to make sure they always appear inside the viewport + keepHighlighted: true, // keep all ancestor items of the current sub menu highlighted (adds the 'highlighted' class to the A's) + markCurrentItem: false, // automatically add the 'current' class to the A element of the item linking to the current URL + markCurrentTree: true, // add the 'current' class also to the A elements of all ancestor items of the current item + rightToLeftSubMenus: false, // right to left display of the sub menus (check the CSS for the sub indicators' position) + bottomToTopSubMenus: false, // bottom to top display of the sub menus + collapsibleBehavior: 'default' // parent items behavior in collapsible (mobile) view ('default', 'toggle', 'link', 'accordion', 'accordion-toggle', 'accordion-link') + // 'default' - first tap on parent item expands sub, second tap loads its link + // 'toggle' - the whole parent item acts just as a toggle button for its sub menu (expands/collapses on each tap) + // 'link' - the parent item acts as a regular item (first tap loads its link), the sub menu can be expanded only via the +/- button + // 'accordion' - like 'default' but on expand also resets any visible sub menus from deeper levels or other branches + // 'accordion-toggle' - like 'toggle' but on expand also resets any visible sub menus from deeper levels or other branches + // 'accordion-link' - like 'link' but on expand also resets any visible sub menus from deeper levels or other branches + }; + + return $; +})); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/jquery.smartmenus.min.js b/frontend/web/themes/sport/plugins/smartmenus/jquery.smartmenus.min.js new file mode 100644 index 0000000..4f98566 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/jquery.smartmenus.min.js @@ -0,0 +1,3 @@ +/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/demo.css b/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/demo.css new file mode 100644 index 0000000..b5425a5 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/demo.css @@ -0,0 +1,209 @@ +/* Import "Lora" font from Google fonts */ +@import url(http://fonts.googleapis.com/css?family=Lora:400,700); + +html, body { + background:#fbf3e8; +} +body { + margin:0; + padding:2em 5px; + font:100% Lora,Georgia,'Times New Roman',Times,serif; + color:#222; +} +#content { + padding:0 5px; +} +#content p a { + word-wrap:break-word; +} +h1, h2, h3 { + font-family:"PT Sans Narrow","Arial Narrow",Arial,Helvetica,sans-serif; + font-weight:bold; + color:#1675A1; +} +h1 { + margin-top:1em; + margin-bottom:0.36em; + font-size:2.26em; +} +h2 { + font-size:1.667em; +} +h2, h3, h4 { + margin-top:0; + margin-bottom:0.416em; +} +p, ul, dl { + margin-bottom:1.5em; + line-height:1.625em; +} +ul { + list-style:circle; + padding-left:1.3em; +} +a { + color:#D23600; + text-decoration:none; +} +a:hover, a:focus, a:active { + color:#980000; +} +small { + font-size:0.8em; +} +#themes { + margin:2.5625em 0 2em 0; + border:1px solid; + border-color:#ebe3d9; + border-color:rgba(0,0,0,0.04); + padding:2.5%; + background:#f4ece1; + background:rgba(0,0,0,0.03); + -moz-border-radius:8px; + -webkit-border-radius:8px; + border-radius:8px; +} +#themes p:last-child { + margin-bottom:0; +} +#themes select { + display:block; + width:100%; + height:24px; + line-height:24px; + background:#fff; +} +#themes label { + margin-left:0.3em; +} +.right-column h2 { + margin-top:0; +} +.right-column h4 { + font-size:1em; + font-weight:normal; +} +dl.docs-terms dt { + margin:0 0 0.5em 0; + font-weight:bold; +} +dl.docs-terms dd { + margin:0 0 1.5em 1.3em; +} +dl.docs-arguments { + margin:0 0 0 1.3em; +} +dl.docs-arguments dt, dl.docs-arguments dd { + margin:0; +} +pre.sh_sourceCode { + border:1px solid; + border-color:#e1ddd8; + border-color:rgba(0,0,0,0.10); + padding:0.5em; + background:#f9f5f0; + background:rgba(255,255,255,0.5); + overflow:auto; + min-width:0; + font:0.89em Consolas,'Lucida Console',Monaco,'Courier New',Courier,monospace; + -moz-border-radius:3px; + -webkit-border-radius:3px; + border-radius:3px; +} +code { + background:#f9f5f0; + background:rgba(255,255,255,0.5); + -moz-border-radius:3px; + -webkit-border-radius:3px; + border-radius:3px; +} +kbd { + /* Thanks to: https://github.com/michaelhue/keyscss */ + display: inline; + display: inline-block; + min-width: 1em; + padding: .2em .3em; + font: normal .85em/1 "Arial Unicode MS", "Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif; + text-align: center; + -moz-border-radius: .3em; + -webkit-border-radius: .3em; + border-radius: .3em; + cursor: default; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; + background: #555; + background-image:-moz-linear-gradient(top,rgb(70,70,70) 0%,rgb(90,90,90) 100%); + background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0%,rgb(70,70,70)),color-stop(100%,rgb(90,90,90))); + background-image:-webkit-linear-gradient(top,rgb(70,70,70) 0%,rgb(90,90,90) 100%); + background-image:-o-linear-gradient(top,rgb(70,70,70) 0%,rgb(90,90,90) 100%); + background-image:-ms-linear-gradient(top,rgb(70,70,70) 0%,rgb(90,90,90) 100%); + background-image:linear-gradient(top,rgb(70,70,70) 0%,rgb(90,90,90) 100%); + color: #fff; + text-shadow: -1px -1px 0 rgb(70, 70, 70); + -moz-box-shadow: inset 0 0 1px rgb(150, 150, 150), inset 0 -.05em .4em rgb(80, 80, 80), 0 .1em 0 rgb(30, 30, 30), 0 .1em .1em rgba(0, 0, 0, .3); + -webkit-box-shadow: inset 0 0 1px rgb(150, 150, 150), inset 0 -.05em .4em rgb(80, 80, 80), 0 .1em 0 rgb(30, 30, 30), 0 .1em .1em rgba(0, 0, 0, .3); + box-shadow: inset 0 0 1px rgb(150, 150, 150), inset 0 -.05em .4em rgb(80, 80, 80), 0 .1em 0 rgb(30, 30, 30), 0 .1em .1em rgba(0, 0, 0, .3); +} +.pagination { + text-align:center; +} +.pagination a { + margin:1em 0.5em 0 0.5em; + display:inline-block; + border:1px solid #dad3c9; + border-color:rgba(0,0,0,0.10); + padding:0.111em 0.666em; + text-decoration:none; + color:#1675A1; + -moz-border-radius:50px; + -webkit-border-radius:50px; + border-radius:50px; +} +.pagination a:hover, .pagination a:focus, .pagination a:active { + color:#d23600; +} +.gray-button { + display:inline-block; + border:1px solid #dad3c9; + padding:0.111em 0.666em; + text-decoration:none; + background:transparent; + color:#1675A1; + white-space:nowrap; + font-family:inherit; + font-size:1em; + font-weight:bold; + line-height:1.61em; + -moz-border-radius:50px; + -webkit-border-radius:50px; + border-radius:50px; + cursor:pointer; + outline:none; +} +.gray-button:hover, .gray-button:focus, .gray-button:active { + color:#d23600; +} +@media (min-width: 640px) { + body { + padding:2em; + font-size:112.5%; + } + .columns { + overflow:hidden; + } + .left-column, .right-column { + float:left; + width:50%; + } + .right-column { + float:right; + } + #content { + margin:0 24px; + padding:0; + } + #themes { + margin:2.5625em 24px 2em 24px; + } +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/readme.txt b/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/readme.txt new file mode 100644 index 0000000..c2f006e --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/readme.txt @@ -0,0 +1,3 @@ +SmartMenus jQuery DOES NOT depend on any file in this folder. + +This folder and its sub folders contain JavaScript and CSS files that are used just for the demo pages' layout and styling. \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/shjs/shjs.css b/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/shjs/shjs.css new file mode 100644 index 0000000..9e08d43 --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/shjs/shjs.css @@ -0,0 +1,110 @@ +pre.sh_sourceCode .sh_keyword { + color: #aa0d91; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_type { + color: #008000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_string { + color: #c80000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_regexp { + color: #008000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_specialchar { + color: #ff00ff; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_comment { + color: #007400; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_number { + color: #3200ff; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_preproc { + color: #008200; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_function { + color: #000000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_url { + color: #008000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_date { + color: #000000; + font-weight: bold; + font-style: normal; +} +pre.sh_sourceCode .sh_time { + color: #000000; + font-weight: bold; + font-style: normal; +} +pre.sh_sourceCode .sh_file { + color: #000000; + font-weight: bold; + font-style: normal; +} +pre.sh_sourceCode .sh_ip { + color: #008000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_name { + color: #008000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_variable { + color: #000000; + font-weight: bold; + font-style: normal; +} +pre.sh_sourceCode .sh_oldfile { + color: #ff00ff; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_newfile { + color: #008000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_difflines { + color: #000000; + font-weight: bold; + font-style: normal; +} +pre.sh_sourceCode .sh_selector { + color: #000000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_property { + color: #c80000; + font-weight: normal; + font-style: normal; +} +pre.sh_sourceCode .sh_value { + color: #3200ff; + font-weight: normal; + font-style: normal; +} \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/shjs/shjs.js b/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/shjs/shjs.js new file mode 100644 index 0000000..ecd5bfe --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/libs/demo-assets/shjs/shjs.js @@ -0,0 +1,20 @@ +/* Copyright (C) 2007, 2008 gnombat@users.sourceforge.net */ +/* License: http://shjs.sourceforge.net/doc/gplv3.html */ + +if(!this.sh_languages){this.sh_languages={}}var sh_requests={};function sh_isEmailAddress(a){if(/^mailto:/.test(a)){return false}return a.indexOf("@")!==-1}function sh_setHref(b,c,d){var a=d.substring(b[c-2].pos,b[c-1].pos);if(a.length>=2&&a.charAt(0)==="<"&&a.charAt(a.length-1)===">"){a=a.substr(1,a.length-2)}if(sh_isEmailAddress(a)){a="mailto:"+a}b[c-2].node.href=a}function sh_konquerorExec(b){var a=[""];a.index=b.length;a.input=b;return a}function sh_highlightString(B,o){if(/Konqueror/.test(navigator.userAgent)){if(!o.konquered){for(var F=0;FI){x(g.substring(I,E.index),null)}var e=O[u];var J=e[1];var b;if(J instanceof Array){for(var L=0;L0){var e=b.split(" ");for(var c=0;c0){a.push(e[c])}}}return a}function sh_addClass(c,a){var d=sh_getClasses(c);for(var b=0;b element with class="'+h+'", but no such language exists'}}break}}}}; + + +// JavaScript syntax module +if(!this.sh_languages){this.sh_languages={}}sh_languages.javascript=[[[/\/\/\//g,"sh_comment",1],[/\/\//g,"sh_comment",7],[/\/\*\*/g,"sh_comment",8],[/\/\*/g,"sh_comment",9],[/\b(?:abstract|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|final|finally|for|function|goto|if|implements|in|instanceof|interface|native|new|null|private|protected|public|return|static|super|switch|synchronized|throw|throws|this|transient|true|try|typeof|var|volatile|while|with)\b/g,"sh_keyword",-1],[/(\+\+|--|\)|\])(\s*)(\/=?(?![*\/]))/g,["sh_symbol","sh_normal","sh_symbol"],-1],[/(0x[A-Fa-f0-9]+|(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?)(\s*)(\/(?![*\/]))/g,["sh_number","sh_normal","sh_symbol"],-1],[/([A-Za-z$_][A-Za-z0-9$_]*\s*)(\/=?(?![*\/]))/g,["sh_normal","sh_symbol"],-1],[/\/(?:\\.|[^*\\\/])(?:\\.|[^\\\/])*\/[gim]*/g,"sh_regexp",-1],[/\b[+-]?(?:(?:0x[A-Fa-f0-9]+)|(?:(?:[\d]*\.)?[\d]+(?:[eE][+-]?[\d]+)?))u?(?:(?:int(?:8|16|32|64))|L)?\b/g,"sh_number",-1],[/"/g,"sh_string",10],[/'/g,"sh_string",11],[/~|!|%|\^|\*|\(|\)|-|\+|=|\[|\]|\\|:|;|,|\.|\/|\?|&|<|>|\|/g,"sh_symbol",-1],[/\{|\}/g,"sh_cbracket",-1],[/\b(?:Math|Infinity|NaN|undefined|arguments)\b/g,"sh_predef_var",-1],[/\b(?:Array|Boolean|Date|Error|EvalError|Function|Number|Object|RangeError|ReferenceError|RegExp|String|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt)\b/g,"sh_predef_func",-1],[/\b(?:applicationCache|closed|Components|content|controllers|crypto|defaultStatus|dialogArguments|directories|document|frameElement|frames|fullScreen|globalStorage|history|innerHeight|innerWidth|length|location|locationbar|menubar|name|navigator|opener|outerHeight|outerWidth|pageXOffset|pageYOffset|parent|personalbar|pkcs11|returnValue|screen|availTop|availLeft|availHeight|availWidth|colorDepth|height|left|pixelDepth|top|width|screenX|screenY|scrollbars|scrollMaxX|scrollMaxY|scrollX|scrollY|self|sessionStorage|sidebar|status|statusbar|toolbar|top|window)\b/g,"sh_predef_var",-1],[/\b(?:alert|addEventListener|atob|back|blur|btoa|captureEvents|clearInterval|clearTimeout|close|confirm|dump|escape|find|focus|forward|getAttention|getComputedStyle|getSelection|home|moveBy|moveTo|open|openDialog|postMessage|print|prompt|releaseEvents|removeEventListener|resizeBy|resizeTo|scroll|scrollBy|scrollByLines|scrollByPages|scrollTo|setInterval|setTimeout|showModalDialog|sizeToContent|stop|unescape|updateCommands|onabort|onbeforeunload|onblur|onchange|onclick|onclose|oncontextmenu|ondragdrop|onerror|onfocus|onkeydown|onkeypress|onkeyup|onload|onmousedown|onmousemove|onmouseout|onmouseover|onmouseup|onpaint|onreset|onresize|onscroll|onselect|onsubmit|onunload)\b/g,"sh_predef_func",-1],[/(?:[A-Za-z]|_)[A-Za-z0-9_]*(?=[ \t]*\()/g,"sh_function",-1]],[[/$/g,null,-2],[/(?:?)|(?:?)/g,"sh_url",-1],[/<\?xml/g,"sh_preproc",2,1],[//g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z](?:[A-Za-z0-9_:.-]*)/g,"sh_keyword",6,1],[/&(?:[A-Za-z0-9]+);/g,"sh_preproc",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*(?:\/)?>/g,"sh_keyword",-1],[/<(?:\/)?[A-Za-z][A-Za-z0-9]*/g,"sh_keyword",6,1],[/@[A-Za-z]+/g,"sh_type",-1],[/(?:TODO|FIXME|BUG)(?:[:]?)/g,"sh_todo",-1]],[[/\?>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/\\(?:\\|")/g,null,-1],[/"/g,"sh_string",-2]],[[/>/g,"sh_preproc",-2],[/([^=" \t>]+)([ \t]*)(=?)/g,["sh_type","sh_normal","sh_symbol"],-1],[/"/g,"sh_string",3]],[[/-->/g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[//g,"sh_comment",-2],[/\ +\ +\ + \ + \ + \ + \ + \ + Customize "sm-blue" on Codepen
\ + \ +
\ + \ +
\ +
\ +
\ + \ +   \ +   \ +
\ +
\ +
\ +
\ +

\ +

Source code

\ +

CSS:

\ +
<!-- SmartMenus core CSS (required) -->\n\
+<link href="../css/sm-core-css.css" rel="stylesheet" type="text/css" />\n\
+\n\
+<!-- "sm-blue" menu theme (optional, you can use your own CSS, too) -->\n\
+<link href="../css/sm-blue/sm-blue.css" rel="stylesheet" type="text/css" />\
+
\ +

HTML:

\ +
' + (window.addonHTMLBefore ? window.addonHTMLBefore : '') + '\<nav id="main-nav">\n\
+	<ul id="main-menu" class="' + $menu[0].className + '">\n\
+		...\n\
+	</ul>\n\
+</nav>' + (window.addonHTMLAfter ? window.addonHTMLAfter : '') + '
\ +

JavaScript:

\ +
<!-- jQuery -->\n\
+<script type="text/javascript" src="../libs/jquery/jquery.js"></script>\n\
+\n\
+<!-- SmartMenus jQuery plugin -->\n\
+<script type="text/javascript" src="../jquery.smartmenus.js"></script>\n' + (window.addonScriptSrc ? $.map(window.addonScriptSrc, function(arr) {
+	return '\n<!-- ' + arr[0] + ' -->\n<script type="text/javascript" src="' + arr[1] + '"></script>\n';
+}).join('') : '') + '\
+\n\
+<!-- SmartMenus jQuery init -->\n\
+<script type="text/javascript">\n\
+	$(function() {\n\
+		$(\'#main-menu\').smartmenus({\n\
+			subMenusSubOffsetX: 1,\n\
+			subMenusSubOffsetY: -8\n\
+		});\n' + (window.addonScriptInit ? window.addonScriptInit : '') + '\
+	});\n\
+</script>
\ +
\ +'); + + // hide sub options + $('#themes-horizontal-align-holder').hide(); + + // load additional themes + $('#themes-classes option').not(':first').each(function() { + var className = $(this).attr('value'); + $('').appendTo('head'); + }); + + // update Respond.js to parse all themes loaded dynamically + if (window.respond) { + respond.update(); + } + + // define the styles for the different main menu configurations + var mainMenuConfigs = { + horizontalLeft: ' @media (min-width: 768px) {\n\ + #main-nav {\n\ + line-height: 0;\n\ + text-align: left;\n\ + }\n\ + #main-menu {\n\ + display: inline-block;\n\ + }\n\ + }\n', + horizontalCenter: ' @media (min-width: 768px) {\n\ + #main-nav {\n\ + line-height: 0;\n\ + text-align: center;\n\ + }\n\ + #main-menu {\n\ + display: inline-block;\n\ + }\n\ + }\n', + horizontalRight: ' @media (min-width: 768px) {\n\ + #main-nav {\n\ + line-height: 0;\n\ + text-align: right;\n\ + }\n\ + #main-menu {\n\ + display: inline-block;\n\ + }\n\ + }\n', + horizontalFullwidthLeft: '', + horizontalFullwidthJustified: ' @media (min-width: 768px) {\n\ + #main-menu > li {\n\ + float: none;\n\ + display: table-cell;\n\ + width: 1%;\n\ + text-align: center;\n\ + }\n\ + }\n', + vertical: ' @media (min-width: 768px) {\n\ + #main-menu {\n\ + float: left;\n\ + width: 12em;\n\ + }\n\ + }\n', + verticalRTL: ' @media (min-width: 768px) {\n\ + #main-menu {\n\ + float: right;\n\ + width: 12em;\n\ + }\n\ + }\n' + }; + + // hook theme switcher + $('#themes-classes, #themes-horizontal, #themes-horizontal-align-left, #themes-horizontal-align-center, #themes-horizontal-align-right, #themes-horizontal-fullwidth, #themes-horizontal-fullwidth-align-justified, #themes-vertical, #themes-rtl').change(function() { + var $select = $('#themes-classes'), + $mainMenuCSS = $('#main-menu-css'), + mainMenuCSS, + className = $select.val(), + horizontal = $('#themes-horizontal')[0].checked, + horizontalLeft = horizontal && $('#themes-horizontal-align-left')[0].checked, + horizontalCenter = horizontal && $('#themes-horizontal-align-center')[0].checked, + horizontalRight = horizontal && $('#themes-horizontal-align-right')[0].checked, + horizontalFullwidth = $('#themes-horizontal-fullwidth')[0].checked, + horizontalFullwidthLeft = horizontalFullwidth && !$('#themes-horizontal-fullwidth-align-justified')[0].checked, + horizontalFullwidthJustified = horizontalFullwidth && $('#themes-horizontal-fullwidth-align-justified')[0].checked, + vertical = $('#themes-vertical')[0].checked, + rtl = $('#themes-rtl')[0].checked, + $optionElm = $select.children().eq($select[0].selectedIndex), + initOptions = $optionElm.data('init-options' + (vertical ? '-vertical' : '')), + mainMenuClass = 'sm ' + (rtl ? 'sm-rtl ' : '') + (vertical ? 'sm-vertical ' : '') + className; + + if ($mainMenuCSS.length) { + $mainMenuCSS.remove(); + $mainMenuCSS = null; + } else { + // remove the inline style on init + $('style').eq(0).remove(); + } + mainMenuCSS = (horizontalLeft ? mainMenuConfigs['horizontalLeft'] : + horizontalCenter ? mainMenuConfigs['horizontalCenter'] : + horizontalRight ? mainMenuConfigs['horizontalRight'] : + horizontalFullwidthLeft ? mainMenuConfigs['horizontalFullwidthLeft'] : + horizontalFullwidthJustified ? mainMenuConfigs['horizontalFullwidthJustified'] : + // vertical + !rtl ? mainMenuConfigs['vertical'] : mainMenuConfigs['verticalRTL']); + $('').appendTo('head'); + + // show/hide sub options + $('#themes-horizontal-align-holder')[horizontal ? 'slideDown' : 'slideUp'](250); + $('#themes-horizontal-fullwidth-align-holder')[horizontalFullwidth ? 'slideDown' : 'slideUp'](250); + + // switch #main-menu theme + $menu.smartmenus('destroy')[0].className = mainMenuClass; + $menu.smartmenus(eval('(' + initOptions + ')')); + $('html, body').css('background', $optionElm.data('page-bg')); + + // update code samples + $('span.themes-code-class span, #themes-codepen-theme-name').text(className); + $('#themes-codepen-url').attr('href', $optionElm.data('codepen-url')); + $('span.themes-code-main-class span').text(mainMenuClass); + $('span.themes-code-main-menu-css').text(mainMenuCSS); + $('span.themes-code-main-menu-css-holder')[mainMenuCSS ? 'show' : 'hide'](); + $('span.themes-code-init-options').text(initOptions); + + // display horizontal justified note if needed + if ($(this).is('#themes-horizontal-fullwidth-align-justified')) { + $('label[for="themes-horizontal-fullwidth-align-justified"] small')[this.checked ? 'show' : 'hide'](); + } + + // call any addon init code + if (window.addonScriptInit) { + try { eval(window.addonScriptInit); } catch(e) {}; + } + }); + + // init SHJS syntax highlighter + $('').appendTo('head'); + sh_highlightDocument(); + +}); + +// load SHJS syntax highlighter synchronously +document.write(''); \ No newline at end of file diff --git a/frontend/web/themes/sport/plugins/smartmenus/libs/jquery/jquery.js b/frontend/web/themes/sport/plugins/smartmenus/libs/jquery/jquery.js new file mode 100644 index 0000000..b0ecadd --- /dev/null +++ b/frontend/web/themes/sport/plugins/smartmenus/libs/jquery/jquery.js @@ -0,0 +1,5 @@ +/*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"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){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="1.12.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(!l.ownFirst)for(b in a)return k.call(a,b);for(b in a);return void 0===b||k.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(h)return h.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=e.call(arguments,2),d=function(){return a.apply(b||this,c.concat(e.call(arguments)))},d.guid=a.guid=a.guid||n.guid++,d):void 0},now:function(){return+new Date},support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=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=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(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 oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.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),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(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(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),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){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.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?J(k,a)-J(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?J(k,a)-J(k,b):0;if(e===f)return ka(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?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$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 fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.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},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.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=fa.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=fa.selectors={cacheLength:50,createPseudo:ha,match:W,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(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===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]||fa.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]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.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(ba,ca).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("(^|"+L+")"+a+"("+L+"|$)"))&&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=fa.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(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},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()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(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:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).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:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!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 Y.test(a.nodeName)},input:function(a){return X.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:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(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}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,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]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:B.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 n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}if(f=d.getElementById(e[2]),f&&f.parentNode){if(f.id!==e[2])return A.find(a);this.length=1,this[0]=f}return this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||(e=n.uniqueSort(e)),D.test(a)&&(e=e.reverse())),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.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=!0,c||j.disable(),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},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.addEventListener?(d.removeEventListener("DOMContentLoaded",K),a.removeEventListener("load",K)):(d.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(d.addEventListener||"load"===a.event.type||"complete"===d.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll)a.setTimeout(n.ready);else if(d.addEventListener)d.addEventListener("DOMContentLoaded",K),a.addEventListener("load",K);else{d.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&d.documentElement}catch(e){}c&&c.doScroll&&!function f(){if(!n.isReady){try{c.doScroll("left")}catch(b){return a.setTimeout(f,50)}J(),n.ready()}}()}return I.promise(b)},n.ready.promise();var L;for(L in n(l))break;l.ownFirst="0"===L,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c,e;c=d.getElementsByTagName("body")[0],c&&c.style&&(b=d.createElement("div"),e=d.createElement("div"),e.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(e).appendChild(b),"undefined"!=typeof b.style.zoom&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(e))}),function(){var a=d.createElement("div");l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}a=null}();var M=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b},N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0; +}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(M(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),"object"!=typeof b&&"function"!=typeof b||(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f}}function S(a,b,c){if(M(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=void 0)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.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 n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Z=/^(?:checkbox|radio)$/i,$=/<([\w:-]+)/,_=/^$|\/(?:java|ecma)script/i,aa=/^\s+/,ba="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";function ca(a){var b=ba.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}!function(){var a=d.createElement("div"),b=d.createDocumentFragment(),c=d.createElement("input");a.innerHTML="
a",l.leadingWhitespace=3===a.firstChild.nodeType,l.tbody=!a.getElementsByTagName("tbody").length,l.htmlSerialize=!!a.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==d.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,b.appendChild(c),l.appendChecked=c.checked,a.innerHTML="",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"
","
"],area:[1,"",""],param:[1,"",""],thead:[1,"","
"],tr:[2,"","
"],col:[2,"","
"],td:[3,"","
"],_default:l.htmlSerialize?[0,"",""]:[1,"X
","
"]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(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)sa(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=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(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&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("