├── assets ├── fonts │ ├── lg.eot │ ├── lg.ttf │ ├── lg.woff │ └── lg.svg ├── img │ ├── loading.gif │ ├── video-play.png │ ├── vimeo-play.png │ └── youtube-play.png ├── plugins │ ├── owl │ │ ├── ajax-loader.gif │ │ ├── owl.video.play.png │ │ ├── owl.theme.default.min.css │ │ ├── owl.theme.green.min.css │ │ ├── owl.theme.green.css │ │ ├── owl.theme.default.css │ │ ├── owl.carousel.min.css │ │ └── owl.carousel.css │ ├── vegas │ │ ├── overlays │ │ │ ├── 01.png │ │ │ ├── 02.png │ │ │ ├── 03.png │ │ │ ├── 04.png │ │ │ ├── 05.png │ │ │ ├── 06.png │ │ │ ├── 07.png │ │ │ ├── 08.png │ │ │ └── 09.png │ │ ├── vegas.min.css │ │ └── vegas.min.js │ ├── awesome │ │ ├── fonts │ │ │ ├── FontAwesome.otf │ │ │ ├── fontawesome-webfont.eot │ │ │ ├── fontawesome-webfont.ttf │ │ │ ├── fontawesome-webfont.woff │ │ │ └── fontawesome-webfont.woff2 │ │ ├── less │ │ │ ├── fixed-width.less │ │ │ ├── screen-reader.less │ │ │ ├── larger.less │ │ │ ├── list.less │ │ │ ├── core.less │ │ │ ├── stacked.less │ │ │ ├── font-awesome.less │ │ │ ├── bordered-pulled.less │ │ │ ├── rotated-flipped.less │ │ │ ├── path.less │ │ │ ├── animated.less │ │ │ └── mixins.less │ │ ├── scss │ │ │ ├── _fixed-width.scss │ │ │ ├── _screen-reader.scss │ │ │ ├── _larger.scss │ │ │ ├── _list.scss │ │ │ ├── _core.scss │ │ │ ├── font-awesome.scss │ │ │ ├── _stacked.scss │ │ │ ├── _bordered-pulled.scss │ │ │ ├── _rotated-flipped.scss │ │ │ ├── _path.scss │ │ │ ├── _animated.scss │ │ │ └── _mixins.scss │ │ └── HELP-US-OUT.txt │ ├── bootstrap3 │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ ├── glyphicons-halflings-regular.woff2 │ │ ├── tether.min.css │ │ ├── tether.css │ │ ├── tether-theme-basic.min.css │ │ ├── npm.js │ │ ├── tether-theme-basic.css │ │ ├── normalize.min.css.map │ │ ├── normalize.min.css │ │ ├── tether-theme-arrows.min.css │ │ ├── tether-theme-arrows-dark.min.css │ │ ├── tether-theme-arrows-dark.css │ │ ├── tether-theme-arrows.css │ │ └── normalize.css │ ├── lazyload │ │ ├── jquery.scrollstop.min.js │ │ ├── jquery.scrollstop.js │ │ └── jquery.lazyload.min.js │ ├── aniview │ │ ├── aniview.min.js │ │ └── aniview.js │ ├── retina │ │ ├── retina.min.js │ │ ├── retina.less │ │ ├── retina.styl │ │ ├── _retina.sass │ │ ├── _retina.scss │ │ └── retina.js │ ├── modal │ │ ├── animatedModal.min.js │ │ └── animatedModal.js │ └── ismobile │ │ ├── isMobile.min.js │ │ └── isMobile.js ├── css │ ├── lg-fb-comment-box.min.css │ └── lg-fb-comment-box.css └── js │ ├── lg-hash.min.js │ ├── lg-fullscreen.min.js │ ├── lg-pager.min.js │ ├── lg-hash.js │ ├── lg-autoplay.min.js │ ├── lg-pager.js │ ├── lg-fullscreen.js │ ├── lg-video.min.js │ ├── lg-zoom.min.js │ ├── lg-autoplay.js │ └── lg-thumbnail.min.js ├── pages ├── help_template_install.php ├── info.php ├── license.php ├── changelog.php ├── help_template_install.inc ├── index.php ├── help_template.inc ├── config.php ├── help_modul.inc └── help_modul_install_output.inc ├── README.md ├── lightgallery.iml ├── CHANGELOG.md ├── package.yml ├── boot.php └── lang ├── de_de.lang └── en_gb.lang /assets/fonts/lg.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/fonts/lg.eot -------------------------------------------------------------------------------- /assets/fonts/lg.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/fonts/lg.ttf -------------------------------------------------------------------------------- /assets/fonts/lg.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/fonts/lg.woff -------------------------------------------------------------------------------- /assets/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/img/loading.gif -------------------------------------------------------------------------------- /assets/img/video-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/img/video-play.png -------------------------------------------------------------------------------- /assets/img/vimeo-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/img/vimeo-play.png -------------------------------------------------------------------------------- /assets/img/youtube-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/img/youtube-play.png -------------------------------------------------------------------------------- /assets/plugins/owl/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/owl/ajax-loader.gif -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/01.png -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/02.png -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/03.png -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/04.png -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/05.png -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/06.png -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/07.png -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/08.png -------------------------------------------------------------------------------- /assets/plugins/vegas/overlays/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/vegas/overlays/09.png -------------------------------------------------------------------------------- /assets/plugins/owl/owl.video.play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FriendsOfREDAXO/lightgallery/master/assets/plugins/owl/owl.video.play.png -------------------------------------------------------------------------------- /pages/help_template_install.php: -------------------------------------------------------------------------------- 1 | text($file); 6 | 7 | 8 | $fragment = new rex_fragment(); 9 | $fragment->setVar('class', 'info', false); 10 | $fragment->setVar('title', $this->i18n('info'), false); 11 | $fragment->setVar('body', $content, false); 12 | echo $fragment->parse('core/page/section.php'); 13 | -------------------------------------------------------------------------------- /pages/license.php: -------------------------------------------------------------------------------- 1 | text($file); 6 | 7 | 8 | $fragment = new rex_fragment(); 9 | $fragment->setVar('class', 'info', false); 10 | $fragment->setVar('title', $this->i18n('licence'), false); 11 | $fragment->setVar('body', $content, false); 12 | echo $fragment->parse('core/page/section.php'); 13 | -------------------------------------------------------------------------------- /pages/changelog.php: -------------------------------------------------------------------------------- 1 | text($file); 6 | 7 | 8 | $fragment = new rex_fragment(); 9 | $fragment->setVar('class', 'info', false); 10 | $fragment->setVar('title', $this->i18n('changelog'), false); 11 | $fragment->setVar('body', $content, false); 12 | echo $fragment->parse('core/page/section.php'); 13 | -------------------------------------------------------------------------------- /assets/plugins/awesome/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /assets/plugins/awesome/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LightGallery für Redaxo 5 2 | 3 | Das Addon ergänzt die Möglichkeit Bilder in einer anpassbaren, erweiterbaren Galerie im Frontend mit Hilfe des jQuery-Plugins darzustellen. 4 | 5 | ___ 6 | 7 | Schreibt doch bitte auftretende Fehler, Notices und Wünsche als Issue auf [Github](https://github.com/FriendsOfREDAXO/lightgallery/issues) 8 | 9 | ___ 10 | 11 | ### Credits 12 | 13 | - [Sachin N](https://github.com/sachinchoolur/lightGallery) 14 | - [FriendsOfREDAXO](https://github.com/FriendsOfREDAXO) 15 | -------------------------------------------------------------------------------- /assets/plugins/awesome/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/tether-theme-basic.min.css: -------------------------------------------------------------------------------- 1 | .tether-element,.tether-element *,.tether-element :after,.tether-element :before,.tether-element:after,.tether-element:before{box-sizing:border-box}.tether-element{position:absolute;display:none}.tether-element.tether-open{display:block}.tether-element.tether-theme-basic{max-width:100%;max-height:100%}.tether-element.tether-theme-basic .tether-content{border-radius:5px;box-shadow:0 2px 8px rgba(0,0,0,.2);font-family:inherit;background:#fff;color:inherit;padding:1em;font-size:1.1em;line-height:1.5em} -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | @import "screen-reader"; 19 | -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/npm.js: -------------------------------------------------------------------------------- 1 | // This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment. 2 | require('../../js/transition.js') 3 | require('../../js/alert.js') 4 | require('../../js/button.js') 5 | require('../../js/carousel.js') 6 | require('../../js/collapse.js') 7 | require('../../js/dropdown.js') 8 | require('../../js/modal.js') 9 | require('../../js/tooltip.js') 10 | require('../../js/popover.js') 11 | require('../../js/scrollspy.js') 12 | require('../../js/tab.js') 13 | require('../../js/affix.js') -------------------------------------------------------------------------------- /assets/plugins/awesome/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /assets/plugins/awesome/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | @import "screen-reader.less"; 19 | -------------------------------------------------------------------------------- /assets/plugins/awesome/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /assets/plugins/awesome/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /pages/help_template_install.inc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | // GALERIE - lightGallery 8 | function bs_lightgallery(obj) { 9 | 10 | if(!obj.length) return; 11 | 12 | obj.lightGallery({ 13 | thumbnail: true, 14 | selector: ".lightgallery__button" 15 | }); 16 | 17 | }//end function 18 | 19 | 20 | // READY - START 21 | jQuery(document).ready(function(){ 22 | 23 | "use strict"; 24 | 25 | // Call BS_LIGHTGALLERY 26 | bs_lightgallery($(".gallery")); 27 | 28 | }); 29 | // Ende ready function() 30 | 31 | 32 | -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/tether-theme-basic.css: -------------------------------------------------------------------------------- 1 | .tether-element, .tether-element:after, .tether-element:before, .tether-element *, .tether-element *:after, .tether-element *:before { 2 | box-sizing: border-box; } 3 | 4 | .tether-element { 5 | position: absolute; 6 | display: none; } 7 | .tether-element.tether-open { 8 | display: block; } 9 | 10 | .tether-element.tether-theme-basic { 11 | max-width: 100%; 12 | max-height: 100%; } 13 | .tether-element.tether-theme-basic .tether-content { 14 | border-radius: 5px; 15 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2); 16 | font-family: inherit; 17 | background: #fff; 18 | color: inherit; 19 | padding: 1em; 20 | font-size: 1.1em; 21 | line-height: 1.5em; } 22 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /assets/css/lg-fb-comment-box.min.css: -------------------------------------------------------------------------------- 1 | .lg-outer.fb-comments .fb-comments{height:100%;overflow-y:auto;position:absolute;right:0;top:0;width:420px;z-index:99999;background:url(../img/loading.gif) center center no-repeat #fff}.lg-outer.fb-comments .fb-comments.fb_iframe_widget{background-image:none}.lg-outer.fb-comments .fb-comments.fb_iframe_widget.fb_iframe_widget_loader{background:url(../img/loading.gif) center center no-repeat #fff}.lg-outer.fb-comments .lg-toolbar{right:420px;width:auto}.lg-outer.fb-comments .lg-actions .lg-next{right:420px}.lg-outer.fb-comments .lg-item,.lg-outer.fb-comments .lg-item.lg-complete .lg-img-wrap{background-image:none}.lg-outer.fb-comments .lg-img-wrap{padding-right:400px!important;background:url(../img/loading.gif) center center no-repeat}.lg-outer.fb-comments .lg-sub-html{padding:0;position:static} -------------------------------------------------------------------------------- /lightgallery.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /assets/plugins/lazyload/jquery.scrollstop.min.js: -------------------------------------------------------------------------------- 1 | /*! Lazy Load 1.9.7 - MIT license - Copyright 2010-2015 Mika Tuupola */ 2 | !function(){var a=jQuery.event.special,b="D"+ +new Date,c="D"+(+new Date+1);a.scrollstart={setup:function(){var c,d=function(b){var d=this,e=arguments;c?clearTimeout(c):(b.type="scrollstart",jQuery.event.dispatch.apply(d,e)),c=setTimeout(function(){c=null},a.scrollstop.latency)};jQuery(this).bind("scroll",d).data(b,d)},teardown:function(){jQuery(this).unbind("scroll",jQuery(this).data(b))}},a.scrollstop={latency:300,setup:function(){var b,d=function(c){var d=this,e=arguments;b&&clearTimeout(b),b=setTimeout(function(){b=null,c.type="scrollstop",jQuery.event.dispatch.apply(d,e)},a.scrollstop.latency)};jQuery(this).bind("scroll",d).data(c,d)},teardown:function(){jQuery(this).unbind("scroll",jQuery(this).data(c))}}}(); -------------------------------------------------------------------------------- /assets/plugins/awesome/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /pages/index.php: -------------------------------------------------------------------------------- 1 | i18n('title')); // $this->i18n('title') ist eine Kurzform für rex_i18n::msg('demo_addon_title') 9 | 10 | // Die Subpages werden nicht mehr über den "subpage"-Parameter gesteuert, sondern mit über "page" (getrennt mit einem Slash, z. B. page=demo_addon/config) 11 | // Die einzelnen Teile des page-Pfades können mit der folgenden Funktion ausgelesen werden. 12 | $subpage = rex_be_controller::getCurrentPagePart(2); 13 | 14 | // Subpages können über diese Methode eingebunden werden. So ist sichergestellt, dass auch Subpages funktionieren, 15 | // die von anderen Addons/Plugins hinzugefügt wurden 16 | rex_be_controller::includeCurrentPageSubPath(); 17 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | **02.09.2020 Version 0.4.4** 2 | 3 | - Fehlerhafte Dateienamen (README.md, LICENSE.md, CHANGELOG.md) korrigiert. 4 | 5 | 6 | **02.04.2017 Version 0.4.3** 7 | 8 | - Zusätzliche Metafelder aus der Installationsroutine entfernt 9 | 10 | **31.03.2017 Version 0.4.2** 11 | 12 | - inkl. Metafeldern Prioritäten für die Installation zugewiesen 13 | - neues art_title feld 14 | - sprachdateien ergänzt 15 | 16 | 17 | **31.03.2017 Version 0.4.1** 18 | 19 | - inkl. Metafeldern Prioritäten für die Installation zugewiesen 20 | 21 | **31.03.2017 Version 0.4.0** 22 | 23 | - inkl. Metafeldern und kleineren Korrekturen 24 | 25 | **31.03.2017 Version 0.3.0** 26 | 27 | - inkl. Templateinstallation und kleineren Korrekturen 28 | 29 | **29.03.2017 Version 0.2.0** 30 | 31 | - inkl. Modulinstallation und kleineren Korrekturen 32 | 33 | **05.03.2017 Version 0.1.0** 34 | 35 | - Alpha Redaxo 5 36 | -------------------------------------------------------------------------------- /assets/plugins/awesome/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /assets/plugins/aniview/aniview.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by GS on 08.11.16. 3 | */ 4 | 5 | !function(a){var b=0;a.fn.scrolled=function(c,d){"function"==typeof c&&(d=c,c=200);var e="scrollTimer"+b++;this.scroll(function(){var b=a(this),f=b.data(e);f&&clearTimeout(f),f=setTimeout(function(){b.removeData(e),d.call(b[0])},c),b.data(e,f)})},a.fn.AniView=function(b){function e(b){var d=a(b).offset(),e=d.top+a(b).scrollTop(),f=a(window).scrollTop()+a(window).height();return e'),a(c).css("opacity",0)}),f(d),a(window).scrolled(c.scrollPollInterval,function(){f(d)})}}(jQuery); 6 | 7 | -------------------------------------------------------------------------------- /assets/plugins/owl/owl.theme.default.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.0 3 | * Copyright 2013-2016 David Deutsch 4 | * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE) 5 | */ 6 | .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#869791;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#869791} -------------------------------------------------------------------------------- /assets/plugins/owl/owl.theme.green.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.0 3 | * Copyright 2013-2016 David Deutsch 4 | * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE) 5 | */ 6 | .owl-theme .owl-dots,.owl-theme .owl-nav{text-align:center;-webkit-tap-highlight-color:transparent}.owl-theme .owl-nav{margin-top:10px}.owl-theme .owl-nav [class*=owl-]{color:#FFF;font-size:14px;margin:5px;padding:4px 7px;background:#D6D6D6;display:inline-block;cursor:pointer;border-radius:3px}.owl-theme .owl-nav [class*=owl-]:hover{background:#4DC7A0;color:#FFF;text-decoration:none}.owl-theme .owl-nav .disabled{opacity:.5;cursor:default}.owl-theme .owl-nav.disabled+.owl-dots{margin-top:10px}.owl-theme .owl-dots .owl-dot{display:inline-block;zoom:1}.owl-theme .owl-dots .owl-dot span{width:10px;height:10px;margin:5px 7px;background:#D6D6D6;display:block;-webkit-backface-visibility:visible;transition:opacity .2s ease;border-radius:30px}.owl-theme .owl-dots .owl-dot.active span,.owl-theme .owl-dots .owl-dot:hover span{background:#4DC7A0} -------------------------------------------------------------------------------- /assets/js/lg-hash.min.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | !function(a,b,c,d){"use strict";var e={hash:!0},f=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.core.s.hash&&(this.oldHash=b.location.hash,this.init()),this};f.prototype.init=function(){var c,d=this;d.core.$el.on("onAfterSlide.lg.tm",function(a,c,e){b.location.hash="lg="+d.core.s.galleryId+"&slide="+e}),a(b).on("hashchange.lg.hash",function(){c=b.location.hash;var a=parseInt(c.split("&slide=")[1],10);c.indexOf("lg="+d.core.s.galleryId)>-1?d.core.slide(a,!1,!1):d.core.lGalleryOn&&d.core.destroy()})},f.prototype.destroy=function(){this.core.s.hash&&(this.oldHash&&this.oldHash.indexOf("lg="+this.core.s.galleryId)<0?b.location.hash=this.oldHash:history.pushState?history.pushState("",c.title,b.location.pathname+b.location.search):b.location.hash="",this.core.$el.off(".lg.hash"))},a.fn.lightGallery.modules.hash=f}(jQuery,window,document); -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/normalize.min.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["normalize.css"],"names":[],"mappings":"AAuEA,SA6GA,IACA,IAIE,eAAgB,SA+FlB,OApCA,GAqCA,MACE,SAAqB,QAlRvB,KACE,YAAa,WACb,YAAwB,KACxB,qBAAyC,KACzC,yBAAqD,KAOvD,KACE,OAAQ,EAcD,YAKH,MAPN,QACA,MACA,QAEA,OACA,OACA,OACA,KAEA,IACA,QACA,QACE,QAAoC,MAOtC,MACA,OACA,SACA,MACE,QAAS,aAOX,sBACE,QAAS,KACT,OAAQ,EAgBA,UAAV,SAEE,QAAS,KAWX,EACE,iBAAkB,YAClB,6BAAyC,QAQ3C,SACA,QACE,cAAe,EAWjB,YACE,cAAe,KACf,gBAA4B,UAC5B,gBAAoC,UAAU,OAOhD,EACA,OAUE,YAAa,OAOf,IACE,WAAY,OAQd,GACE,UAAW,IACX,OAAQ,MAAO,EAOjB,KACE,iBAAkB,KAClB,MAAO,KAOT,MACE,UAAW,IAQb,IACA,IACE,UAAW,IACX,YAAa,EACb,SAAU,SAIZ,IACE,OAAQ,OAGV,IACE,IAAK,MAUP,IACE,aAAc,KAOhB,eACE,SAAU,OAWZ,KACA,IACA,IACA,KACE,YAAa,UAAW,UACxB,UAAsB,IAOxB,OACE,OAAQ,IAAI,KAQd,GACE,WAAY,YACZ,OAAmB,EAYrB,OACA,MACA,SACA,OACA,SACE,KAAM,QACN,OAAmB,EAOrB,SACE,YAAa,IAQf,OACA,OASA,OACA,OACE,eAA2B,KAY7B,cAFsB,cADtB,OACA,mBAGE,mBAAoB,OAQtB,gCACA,+BACA,gCAHA,yBAIE,aAAc,KACd,QAAS,EAQX,6BACA,4BACA,6BAHA,sBAIE,QAAoB,WAAP,OAAJ,IAOX,SACE,OAAQ,IAAI,MAAM,OAClB,OAAQ,EAAE,IACV,QAAS,MAAO,OAAQ,MAU1B,OACE,WAAY,WACZ,MAAkB,QAClB,QAA4B,MAC5B,UAAsC,KACtC,QAA4C,EAC5C,YAAwD,OAO1D,SACE,SAAU,KAQZ,gBACA,aACE,WAAY,WACZ,QAAoB,EAOtB,yCACA,yCACE,OAAQ,KAQV,cACE,mBAAoB,UACpB,eAA2B,KAO7B,4CACA,yCACE,mBAAoB,KAOtB,4BACE,MAAO,QACP,QAAS,IAQX,6BACE,mBAAoB,OACpB,KAAiB"} -------------------------------------------------------------------------------- /assets/css/lg-fb-comment-box.css: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | .lg-outer.fb-comments .lg-img-wrap { 5 | padding-right: 400px !important; } 6 | .lg-outer.fb-comments .fb-comments { 7 | height: 100%; 8 | overflow-y: auto; 9 | position: absolute; 10 | right: 0; 11 | top: 0; 12 | width: 420px; 13 | z-index: 99999; 14 | background: #fff url("../img/loading.gif") no-repeat scroll center center; } 15 | .lg-outer.fb-comments .fb-comments.fb_iframe_widget { 16 | background-image: none; } 17 | .lg-outer.fb-comments .fb-comments.fb_iframe_widget.fb_iframe_widget_loader { 18 | background: #fff url("../img/loading.gif") no-repeat scroll center center; } 19 | .lg-outer.fb-comments .lg-toolbar { 20 | right: 420px; 21 | width: auto; } 22 | .lg-outer.fb-comments .lg-actions .lg-next { 23 | right: 420px; } 24 | .lg-outer.fb-comments .lg-item { 25 | background-image: none; } 26 | .lg-outer.fb-comments .lg-item.lg-complete .lg-img-wrap { 27 | background-image: none; } 28 | .lg-outer.fb-comments .lg-img-wrap { 29 | background: url(../img/loading.gif) no-repeat scroll center center transparent; } 30 | .lg-outer.fb-comments .lg-sub-html { 31 | padding: 0; 32 | position: static; } 33 | 34 | /*# sourceMappingURL=lg-fb-comment-box.css.map */ 35 | -------------------------------------------------------------------------------- /assets/plugins/retina/retina.min.js: -------------------------------------------------------------------------------- 1 | !function(){function t(t){return Array.prototype.slice.call(t)}function e(t){var e=parseInt(t,10);return e>f?f:e}function r(t){return t.hasAttribute("data-no-resize")||(0===t.offsetWidth&&0===t.offsetHeight?(t.setAttribute("width",t.naturalWidth),t.setAttribute("height",t.naturalHeight)):(t.setAttribute("width",t.offsetWidth),t.setAttribute("height",t.offsetHeight))),t}function n(t,e){var n=t.nodeName.toLowerCase(),i=document.createElement("img");i.addEventListener("load",function(){"img"===n?r(t).setAttribute("src",e):t.style.backgroundImage="url("+e+")"}),i.setAttribute("src",e),t.setAttribute(h,!0)}function i(t,r){var i=arguments.length<=2||void 0===arguments[2]?1:arguments[2],o=e(i);if(r&&o>1){var a=r.replace(c,"@"+o+"x$1");n(t,a)}}function o(t,e,r){f>1&&n(t,r)}function a(e){return e?"function"==typeof e.forEach?e:t(e):"undefined"!=typeof document?t(document.querySelectorAll(g)):[]}function u(t){return t.style.backgroundImage.replace(l,"$2")}function d(t){a(t).forEach(function(t){if(!t.getAttribute(h)){var e="img"===t.nodeName.toLowerCase(),r=e?t.getAttribute("src"):u(t),n=t.getAttribute("data-rjs"),a=!isNaN(parseInt(n,10));a?i(t,r,n):o(t,r,n)}})}"undefined"==typeof exports&&(exports={}),Object.defineProperty(exports,"__esModule",{value:!0});var s="undefined"!=typeof window,f=s?window.devicePixelRatio||1:1,c=/(\.[A-z]{3,4}\/?(\?.*)?)$/,l=/url\(('|")?([^\)'"]+)('|")?\)/i,g="[data-rjs]",h="data-rjs-processed";s&&(window.addEventListener("load",d),window.retinajs=d),exports["default"]=d}(); -------------------------------------------------------------------------------- /pages/help_template.inc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | REX_MINIFY[type=css set=resources_CSS] 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | ... 23 | 24 | 25 | 26 | 27 | 28 | // GALERIE - lightGallery 29 | function bs_lightgallery(obj) { 30 | 31 | if(!obj.length) return; 32 | 33 | obj.lightGallery({ 34 | thumbnail: true, 35 | selector: ".lightgallery__button" 36 | }); 37 | 38 | }//end function 39 | 40 | 41 | // READY - START 42 | jQuery(document).ready(function(){ 43 | 44 | "use strict"; 45 | 46 | // Call BS_LIGHTGALLERY 47 | bs_lightgallery($(".gallery")); 48 | 49 | }); 50 | // Ende ready function() 51 | 52 | 53 | -------------------------------------------------------------------------------- /package.yml: -------------------------------------------------------------------------------- 1 | # Alle hier gesetzten Werte können über $addon->getProperty($key) abgefragt werden 2 | 3 | package: lightgallery # Pflichtfeld 4 | version: '0.4.4' # Pflichtfeld 5 | author: Friends Of REDAXO 6 | supportpage: https://github.com/FriendsOfREDAXO/lightgallery 7 | 8 | page: 9 | title: 'translate:title' # Werte die mit "translate:" beginnen, werden anhand der Sprachdatei übersetzt. Der Addon-Präfix (hier "lightgallery_") kann weggelassen werden. 10 | perm: lightgallery[] 11 | icon: rex-icon rex-icon-media 12 | subpages: 13 | info: { title: 'translate:info'} 14 | help: { title: 'translate:help'} 15 | changelog: { title: 'translate:changelog'} 16 | license: { title: 'translate:license'} 17 | #main: { title: 'translate:main' } 18 | #config: { title: 'translate:config', perm: 'lightgallery[config]', icon: rex-icon fa-wrench } # config-Seite mit separaten Rechten 19 | 20 | requires: 21 | redaxo: '^5.1' # benötigt mindestens REDAXO 5.1 22 | packages: 23 | media_manager: '>=2.0.0' # benötigt mindestens das Addon Media Manager 2.3.0 24 | php: 25 | version: '>=5.6' # benötigt mindestens PHP 5.5 26 | #extensions: [gd, xml] # benötigt die PHP-Extensions GDlib und XML 27 | 28 | # define conflicts: prevents packages from update to avoid breaking changes 29 | # https://github.com/FriendsOfREDAXO/cache_warmup/pull/55#issuecomment-280906737 30 | conflicts: 31 | packages: 32 | media_manager: '>=3' 33 | metainfo: '>=3' 34 | -------------------------------------------------------------------------------- /assets/plugins/owl/owl.theme.green.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.0 3 | * Copyright 2013-2016 David Deutsch 4 | * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE) 5 | */ 6 | /* 7 | * Green theme - Owl Carousel CSS File 8 | */ 9 | .owl-theme .owl-nav { 10 | margin-top: 10px; 11 | text-align: center; 12 | -webkit-tap-highlight-color: transparent; } 13 | .owl-theme .owl-nav [class*='owl-'] { 14 | color: #FFF; 15 | font-size: 14px; 16 | margin: 5px; 17 | padding: 4px 7px; 18 | background: #D6D6D6; 19 | display: inline-block; 20 | cursor: pointer; 21 | border-radius: 3px; } 22 | .owl-theme .owl-nav [class*='owl-']:hover { 23 | background: #4DC7A0; 24 | color: #FFF; 25 | text-decoration: none; } 26 | .owl-theme .owl-nav .disabled { 27 | opacity: 0.5; 28 | cursor: default; } 29 | 30 | .owl-theme .owl-nav.disabled + .owl-dots { 31 | margin-top: 10px; } 32 | 33 | .owl-theme .owl-dots { 34 | text-align: center; 35 | -webkit-tap-highlight-color: transparent; } 36 | .owl-theme .owl-dots .owl-dot { 37 | display: inline-block; 38 | zoom: 1; 39 | *display: inline; } 40 | .owl-theme .owl-dots .owl-dot span { 41 | width: 10px; 42 | height: 10px; 43 | margin: 5px 7px; 44 | background: #D6D6D6; 45 | display: block; 46 | -webkit-backface-visibility: visible; 47 | transition: opacity 200ms ease; 48 | border-radius: 30px; } 49 | .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { 50 | background: #4DC7A0; } 51 | -------------------------------------------------------------------------------- /assets/plugins/owl/owl.theme.default.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.0 3 | * Copyright 2013-2016 David Deutsch 4 | * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE) 5 | */ 6 | /* 7 | * Default theme - Owl Carousel CSS File 8 | */ 9 | .owl-theme .owl-nav { 10 | margin-top: 10px; 11 | text-align: center; 12 | -webkit-tap-highlight-color: transparent; } 13 | .owl-theme .owl-nav [class*='owl-'] { 14 | color: #FFF; 15 | font-size: 14px; 16 | margin: 5px; 17 | padding: 4px 7px; 18 | background: #D6D6D6; 19 | display: inline-block; 20 | cursor: pointer; 21 | border-radius: 3px; } 22 | .owl-theme .owl-nav [class*='owl-']:hover { 23 | background: #869791; 24 | color: #FFF; 25 | text-decoration: none; } 26 | .owl-theme .owl-nav .disabled { 27 | opacity: 0.5; 28 | cursor: default; } 29 | 30 | .owl-theme .owl-nav.disabled + .owl-dots { 31 | margin-top: 10px; } 32 | 33 | .owl-theme .owl-dots { 34 | text-align: center; 35 | -webkit-tap-highlight-color: transparent; } 36 | .owl-theme .owl-dots .owl-dot { 37 | display: inline-block; 38 | zoom: 1; 39 | *display: inline; } 40 | .owl-theme .owl-dots .owl-dot span { 41 | width: 10px; 42 | height: 10px; 43 | margin: 5px 7px; 44 | background: #D6D6D6; 45 | display: block; 46 | -webkit-backface-visibility: visible; 47 | transition: opacity 200ms ease; 48 | border-radius: 30px; } 49 | .owl-theme .owl-dots .owl-dot.active span, .owl-theme .owl-dots .owl-dot:hover span { 50 | background: #869791; } 51 | -------------------------------------------------------------------------------- /assets/js/lg-fullscreen.min.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | !function(a,b,c,d){"use strict";var e={fullScreen:!0},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.init(),this};f.prototype.init=function(){var a="";if(this.core.s.fullScreen){if(!(c.fullscreenEnabled||c.webkitFullscreenEnabled||c.mozFullScreenEnabled||c.msFullscreenEnabled))return;a='',this.core.$outer.find(".lg-toolbar").append(a),this.fullScreen()}},f.prototype.requestFullscreen=function(){var a=c.documentElement;a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen()},f.prototype.exitFullscreen=function(){c.exitFullscreen?c.exitFullscreen():c.msExitFullscreen?c.msExitFullscreen():c.mozCancelFullScreen?c.mozCancelFullScreen():c.webkitExitFullscreen&&c.webkitExitFullscreen()},f.prototype.fullScreen=function(){var b=this;a(c).on("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg",function(){b.core.$outer.toggleClass("lg-fullscreen-on")}),this.core.$outer.find(".lg-fullscreen").on("click.lg",function(){c.fullscreenElement||c.mozFullScreenElement||c.webkitFullscreenElement||c.msFullscreenElement?b.exitFullscreen():b.requestFullscreen()})},f.prototype.destroy=function(){this.exitFullscreen(),a(c).off("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg")},a.fn.lightGallery.modules.fullscreen=f}(jQuery,window,document); -------------------------------------------------------------------------------- /boot.php: -------------------------------------------------------------------------------- 1 | setProperty('author', 'Friends Of REDAXO'); 10 | 11 | // Die Datei sollte keine veränderbare Konfigurationen mehr enthalten, um die Updatefähigkeit zu erhalten. 12 | // Stattdessen sollte dafür die rex_config verwendet werden (siehe install.php) 13 | 14 | // Klassen und lang-Dateien müssen hier nicht mehr eingebunden werden, sie werden nun automatisch gefunden. 15 | 16 | // Addonrechte (permissions) registieren 17 | if (rex::isBackend() && is_object(rex::getUser())) { 18 | rex_perm::register('lightgallery[]'); 19 | rex_perm::register('lightgallery[config]'); 20 | } 21 | 22 | // Assets werden bei der Installation des Addons in den assets-Ordner kopiert und stehen damit 23 | // öffentlich zur Verfügung. Sie müssen dann allerdings noch eingebunden werden: 24 | 25 | // Assets im Backend einbinden 26 | if (rex::isBackend() && rex::getUser()) { 27 | 28 | // Die style.css überall im Backend einbinden 29 | // Es wird eine Versionsangabe angehängt, damit nach einem neuen Release des Addons die Datei nicht 30 | // aus dem Browsercache verwendet, sondern frisch geladen wird 31 | rex_view::addCssFile($this->getAssetsUrl('css/style.css?v=' . $this->getVersion())); 32 | 33 | // Die script.js nur auf der Unterseite »config« des Addons einbinden 34 | if (rex_be_controller::getCurrentPagePart(2) == 'config') { 35 | rex_view::addJsFile($this->getAssetsUrl('js/script.js?v=' . $this->getVersion())); 36 | } 37 | } -------------------------------------------------------------------------------- /assets/plugins/modal/animatedModal.min.js: -------------------------------------------------------------------------------- 1 | !function(a){a.fn.animatedModal=function(o){function n(){l.css({"z-index":i.zIndexOut}),i.afterClose()}function t(){i.afterOpen()}var e=a(this),i=a.extend({modalTarget:"animatedModal",position:"fixed",width:"100%",height:"100%",top:"0px",left:"0px",zIndexIn:"9999",zIndexOut:"-9999",color:"#39BEB9",opacityIn:"1",opacityOut:"0",animatedIn:"zoomIn",animatedOut:"zoomOut",animationDuration:".6s",overflow:"auto",beforeOpen:function(){},afterOpen:function(){},beforeClose:function(){},afterClose:function(){}},o),d=a(".close-"+i.modalTarget),s=a(e).attr("href"),l=a("body").find("#"+i.modalTarget),m="#"+l.attr("id");l.addClass("animated"),l.addClass(i.modalTarget+"-off");var r={position:i.position,width:i.width,height:i.height,top:i.top,left:i.left,"background-color":i.color,"overflow-y":i.overflow,"z-index":i.zIndexOut,opacity:i.opacityOut,"-webkit-animation-duration":i.animationDuration};l.css(r),e.click(function(o){o.preventDefault(),a("body, html").css({overflow:"hidden"}),s==m&&(l.hasClass(i.modalTarget+"-off")&&(l.removeClass(i.animatedOut),l.removeClass(i.modalTarget+"-off"),l.addClass(i.modalTarget+"-on")),l.hasClass(i.modalTarget+"-on")&&(i.beforeOpen(),l.css({opacity:i.opacityIn,"z-index":i.zIndexIn}),l.addClass(i.animatedIn),l.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",t)))}),d.click(function(o){o.preventDefault(),a("body, html").css({overflow:"auto"}),i.beforeClose(),l.hasClass(i.modalTarget+"-on")&&(l.removeClass(i.modalTarget+"-on"),l.addClass(i.modalTarget+"-off")),l.hasClass(i.modalTarget+"-off")&&(l.removeClass(i.animatedIn),l.addClass(i.animatedOut),l.one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",n))})}}(jQuery); 2 | -------------------------------------------------------------------------------- /assets/js/lg-pager.min.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | !function(a,b,c,d){"use strict";var e={pager:!1},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.core.s.pager&&this.core.$items.length>1&&this.init(),this};f.prototype.init=function(){var b,c,d,e=this,f="";if(e.core.$outer.find(".lg").append('
'),e.core.s.dynamic)for(var g=0;g
';else e.core.$items.each(function(){f+=e.core.s.exThumbImage?'
':'
'});c=e.core.$outer.find(".lg-pager-outer"),c.html(f),b=e.core.$outer.find(".lg-pager-cont"),b.on("click.lg touchend.lg",function(){var b=a(this);e.core.index=b.index(),e.core.slide(e.core.index,!1,!1)}),c.on("mouseover.lg",function(){clearTimeout(d),c.addClass("lg-pager-hover")}),c.on("mouseout.lg",function(){d=setTimeout(function(){c.removeClass("lg-pager-hover")})}),e.core.$el.on("onBeforeSlide.lg.tm",function(a,c,d){b.removeClass("lg-pager-active"),b.eq(d).addClass("lg-pager-active")})},f.prototype.destroy=function(){},a.fn.lightGallery.modules.pager=f}(jQuery,window,document); -------------------------------------------------------------------------------- /assets/plugins/ismobile/isMobile.min.js: -------------------------------------------------------------------------------- 1 | !function(a){var b=/iPhone/i,c=/iPod/i,d=/iPad/i,e=/(?=.*\bAndroid\b)(?=.*\bMobile\b)/i,f=/Android/i,g=/(?=.*\bAndroid\b)(?=.*\bSD4930UR\b)/i,h=/(?=.*\bAndroid\b)(?=.*\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\b)/i,i=/Windows Phone/i,j=/(?=.*\bWindows\b)(?=.*\bARM\b)/i,k=/BlackBerry/i,l=/BB10/i,m=/Opera Mini/i,n=/(CriOS|Chrome)(?=.*\bMobile\b)/i,o=/(?=.*\bFirefox\b)(?=.*\bMobile\b)/i,p=new RegExp("(?:Nexus 7|BNTV250|Kindle Fire|Silk|GT-P1000)","i"),q=function(a,b){return a.test(b)},r=function(a){var r=a||navigator.userAgent,s=r.split("[FBAN");if("undefined"!=typeof s[1]&&(r=s[0]),s=r.split("Twitter"),"undefined"!=typeof s[1]&&(r=s[0]),this.apple={phone:q(b,r),ipod:q(c,r),tablet:!q(b,r)&&q(d,r),device:q(b,r)||q(c,r)||q(d,r)},this.amazon={phone:q(g,r),tablet:!q(g,r)&&q(h,r),device:q(g,r)||q(h,r)},this.android={phone:q(g,r)||q(e,r),tablet:!q(g,r)&&!q(e,r)&&(q(h,r)||q(f,r)),device:q(g,r)||q(h,r)||q(e,r)||q(f,r)},this.windows={phone:q(i,r),tablet:q(j,r),device:q(i,r)||q(j,r)},this.other={blackberry:q(k,r),blackberry10:q(l,r),opera:q(m,r),firefox:q(o,r),chrome:q(n,r),device:q(k,r)||q(l,r)||q(m,r)||q(o,r)||q(n,r)},this.seven_inch=q(p,r),this.any=this.apple.device||this.android.device||this.windows.device||this.other.device||this.seven_inch,this.phone=this.apple.phone||this.android.phone||this.windows.phone,this.tablet=this.apple.tablet||this.android.tablet||this.windows.tablet,"undefined"==typeof window)return this},s=function(){var a=new r;return a.Class=r,a};"undefined"!=typeof module&&module.exports&&"undefined"==typeof window?module.exports=r:"undefined"!=typeof module&&module.exports&&"undefined"!=typeof window?module.exports=s():"function"==typeof define&&define.amd?define("isMobile",[],a.isMobile=s()):a.isMobile=s()}(this); -------------------------------------------------------------------------------- /lang/de_de.lang: -------------------------------------------------------------------------------- 1 | # Da R5 nur noch mit UTF8 arbeitet, entfällt der "utf8"-Suffix 2 | # Die Keys sollten mit dem Addonnamen beginnen, da sie so innerhalb des Addons vereinfacht abgefragt werden können 3 | 4 | # Addon 5 | 6 | lightgallery_title = lightGallery 7 | 8 | 9 | # Pages (LINKS) 10 | 11 | lightgallery_info = Info 12 | lightgallery_help = Hilfe 13 | lightgallery_help_template = Hilfe (Template-Beispiel) 14 | lightgallery_help_modul = Hilfe (Modul-Beispiel) 15 | lightgallery_changelog = Anpassungen 16 | lightgallery_license = Lizenz 17 | 18 | lightgallery_modul_install_description = lightGallery Modul - Update / Installation 19 | lightgallery_modul_update = lightGallery Modul - Update 20 | lightgallery_modul_install = lightGallery Modul - Installation 21 | 22 | lightgallery_template_install_description = lightGallery Template - Update / Installation 23 | lightgallery_template_update = lightGallery Template - Update 24 | lightgallery_template_install = lightGallery Template - Installation 25 | 26 | lightgallery_metainfo_install_description = lightGallery Metafelder - Update / Installation 27 | lightgallery_metainfo_update = lightGallery Metafelder - Update 28 | lightgallery_metainfo_install = lightGallery Metafelder - Installation 29 | 30 | 31 | # Page:CONFIG (CONTENT) 32 | 33 | lightgallery_config = Einstellungen 34 | lightgallery_config_url = URL 35 | lightgallery_config_ids = IDs 36 | lightgallery_config_save = Einstellungen speichern 37 | lightgallery_config_saved = Einstellungen wurden gespeichert! 38 | 39 | 40 | # Benennung für die Addonrechte, sichtbar innerhalb der REDAXO-Administration unter Benutzer > Rollen > Allgemein 41 | 42 | perm_general_lightgallery[] = Rechte für LightGallery-Addon 43 | perm_general_lightgallery[config] = Rechte für LightGallery-Addon-Konfiguration 44 | -------------------------------------------------------------------------------- /lang/en_gb.lang: -------------------------------------------------------------------------------- 1 | # Da R5 nur noch mit UTF8 arbeitet, entfällt der "utf8"-Suffix 2 | # Die Keys sollten mit dem Addonnamen beginnen, da sie so innerhalb des Addons vereinfacht abgefragt werden können 3 | 4 | # Addon 5 | 6 | lightgallery_title = lightGallery 7 | 8 | 9 | # Pages (LINKS) 10 | 11 | lightgallery_info = Info 12 | lightgallery_help = Hilfe 13 | lightgallery_help_template = Hilfe (Template-Beispiel) 14 | lightgallery_help_modul = Hilfe (Modul-Beispiel) 15 | lightgallery_changelog = Anpassungen 16 | lightgallery_license = Lizenz 17 | 18 | lightgallery_modul_install_description = lightGallery Modul - Update / Installation 19 | lightgallery_modul_update = lightGallery Modul - Update 20 | lightgallery_modul_install = lightGallery Modul - Installation 21 | 22 | lightgallery_template_install_description = lightGallery Template - Update / Installation 23 | lightgallery_template_update = lightGallery Template - Update 24 | lightgallery_template_install = lightGallery Template - Installation 25 | 26 | lightgallery_metainfo_install_description = lightGallery Metafelder - Update / Installation 27 | lightgallery_metainfo_update = lightGallery Metafelder - Update 28 | lightgallery_metainfo_install = lightGallery Metafelder - Installation 29 | 30 | 31 | # Page:CONFIG (CONTENT) 32 | 33 | lightgallery_config = Einstellungen 34 | lightgallery_config_url = URL 35 | lightgallery_config_ids = IDs 36 | lightgallery_config_save = Einstellungen speichern 37 | lightgallery_config_saved = Einstellungen wurden gespeichert! 38 | 39 | 40 | # Benennung für die Addonrechte, sichtbar innerhalb der REDAXO-Administration unter Benutzer > Rollen > Allgemein 41 | 42 | perm_general_lightgallery[] = Rechte für LightGallery-Addon 43 | perm_general_lightgallery[config] = Rechte für LightGallery-Addon-Konfiguration 44 | -------------------------------------------------------------------------------- /assets/plugins/awesome/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | .sr-only() { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | .sr-only-focusable() { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /assets/plugins/awesome/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | @mixin sr-only { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | @mixin sr-only-focusable { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /assets/plugins/retina/retina.less: -------------------------------------------------------------------------------- 1 | // retina.less 2 | // A helper mixin for applying high-resolution background images (http://www.retinajs.com) 3 | 4 | // Updated by John Newman 5 | // github.com/jgnewman 6 | // http://axial.agency 7 | 8 | /** 9 | * Allows you to use retina images at various pixel densities. 10 | * Examples: 11 | * 12 | * .retina(/images/mypic.jpg, 2); 13 | * .retina(/images/mypic.jpg, 3, 100px 100px, left top no-repeat transparent); 14 | * 15 | * @param {String} $path The path to the file name minus extension. 16 | * @param {Number} $cap: 2 The highest pixel density level images exist for. 17 | * @param {Value} $size: auto auto The intended width of the rendered image. 18 | * @param {Value} $extras: null Any other `background` values to be added. 19 | */ 20 | .retina(@path, @cap: 2, @size: auto auto, @extras: ~'') { 21 | @lowretina: ~"(-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx)"; 22 | @2xpath: ~`@{path}.replace(/\.\w+$/, function(match) { return "@2x" + match; })`; 23 | 24 | /* 25 | * Set a base background for 1x environments. 26 | */ 27 | background: url(@path) @extras; 28 | background-size: @size; 29 | 30 | /* 31 | * Create an @2x-ish media query. 32 | */ 33 | @media @lowretina { 34 | background : url(@2xpath) @extras; 35 | background-size : @size; 36 | } 37 | 38 | /* 39 | * Create media queries for all environments that the user has 40 | * provided images for. 41 | */ 42 | .create-queries() when (@cap >= 2) { 43 | .loop(@env) when (@env <= @cap) { 44 | @retinapath: ~`@{path}.replace(/\.\w+$/, function(match) { return "@@{env}x" + match; })`; 45 | @media (-webkit-min-device-pixel-ratio: @env), 46 | (min-resolution: @env * 96dpi) { 47 | background : url(@retinapath) @extras; 48 | background-size : @size; 49 | } 50 | .loop((@env + 1)); // next iteration 51 | } 52 | .loop(2); 53 | } 54 | .create-queries(); 55 | 56 | } 57 | -------------------------------------------------------------------------------- /assets/plugins/retina/retina.styl: -------------------------------------------------------------------------------- 1 | // retina.styl 2 | // A helper mixin for applying high-resolution background images (http://www.retinajs.com) 3 | 4 | // Created by John Newman 5 | // github.com/jgnewman 6 | // http://axial.agency 7 | 8 | 9 | /** 10 | * Allows you to use retina images at various pixel densities. 11 | * Examples: 12 | * 13 | * retina(/images/mypic.jpg, 2) 14 | * retina(/images/mypic.jpg, 3, 100px 100px, left top no-repeat transparent) 15 | * 16 | * @param {Value} $path The path to the file name minus extension. 17 | * @param {Number} $cap: 2 The highest pixel density level images exist for. 18 | * @param {Value} $size: auto auto The intended width of the rendered image. 19 | * @param {Value} $extras: null Any other `background` values to be added. 20 | */ 21 | retina($path, $cap = 2, $size = auto auto, $extras = null) 22 | $dirname = dirname($path) 23 | $filename = basename($path) 24 | $at2xpath = pathjoin($dirname, replace('\.', '@2x.', $filename)) 25 | 26 | /* 27 | * Set a base background for 1x environments. 28 | */ 29 | background: url($path) $extras 30 | background-size: $size 31 | 32 | /* 33 | * Create an @2x-ish media query. 34 | */ 35 | @media all and (-webkit-min-device-pixel-ratio : 1.5), all and (-o-min-device-pixel-ratio: 3/2), all and (min--moz-device-pixel-ratio: 1.5), all and (min-device-pixel-ratio: 1.5) 36 | background: url($at2xpath) $extras 37 | background-size: $size 38 | 39 | /* 40 | * Create media queries for all environments that the user has 41 | * provided images for. 42 | */ 43 | if $cap >= 2 44 | for $env in (2..$cap) 45 | $newpath = pathjoin($dirname, replace('\.', '@' + $env + 'x.', $filename)) 46 | @media (-webkit-min-device-pixel-ratio: $env), (min-resolution: $env * 96dpi) 47 | background: url($newpath) $extras 48 | background-size: $size 49 | 50 | /* 51 | * If anything went wrong trying to separate the file from its 52 | * extension, set a background value without doing anything to it. 53 | */ 54 | else 55 | background: url($path) $extras 56 | background-size: $size 57 | -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/normalize.min.css: -------------------------------------------------------------------------------- 1 | progress,sub,sup{vertical-align:baseline}button,hr,input{overflow:visible}html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0} figcaption, menu,article,aside,details,figure,footer,header,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0} [hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}button,input,optgroup,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{}button,select{text-transform:none}[type=submit], [type=reset],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:ButtonText dotted 1px}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}/*# sourceMappingURL=normalize.min.css.map */ -------------------------------------------------------------------------------- /pages/config.php: -------------------------------------------------------------------------------- 1 | setConfig(rex_post('config', [ 9 | ['url', 'string'], 10 | ['ids', 'array[int]'], 11 | ])); 12 | 13 | $content .= rex_view::info($this->i18n('config_saved')); 14 | } 15 | 16 | $content .= ' 17 |
18 |
19 |
'; 20 | 21 | $formElements = []; 22 | 23 | $n = []; 24 | $n['label'] = ''; 25 | $n['field'] = ''; 26 | $formElements[] = $n; 27 | 28 | $n = []; 29 | $n['label'] = ''; 30 | $select = new rex_select(); 31 | $select->setId('rex-lightgallery-config-ids'); 32 | $select->setMultiple(); 33 | $select->setAttribute('class', 'form-control'); 34 | $select->setName('config[ids][]'); 35 | for ($i = 1; $i < 6; ++$i) { 36 | $select->addOption($i, $i); 37 | } 38 | $select->setSelected($this->getConfig('ids')); 39 | $n['field'] = $select->get(); 40 | $formElements[] = $n; 41 | 42 | $fragment = new rex_fragment(); 43 | $fragment->setVar('elements', $formElements, false); 44 | $content .= $fragment->parse('core/form/form.php'); 45 | 46 | $content .= ' 47 |
48 | 49 |
'; 50 | 51 | $formElements = []; 52 | 53 | $n = []; 54 | $n['field'] = 'i18n('config_save'), 'save') . ' />'; 55 | $formElements[] = $n; 56 | 57 | $fragment = new rex_fragment(); 58 | $fragment->setVar('elements', $formElements, false); 59 | $content .= $fragment->parse('core/form/submit.php'); 60 | 61 | $content .= ' 62 |
63 | 64 |
65 |
'; 66 | 67 | $fragment = new rex_fragment(); 68 | $fragment->setVar('class', 'edit'); 69 | $fragment->setVar('title', $this->i18n('config')); 70 | $fragment->setVar('body', $content, false); 71 | echo $fragment->parse('core/page/section.php'); 72 | -------------------------------------------------------------------------------- /assets/js/lg-hash.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | (function($, window, document, undefined) { 5 | 6 | 'use strict'; 7 | 8 | var defaults = { 9 | hash: true 10 | }; 11 | 12 | var Hash = function(element) { 13 | 14 | this.core = $(element).data('lightGallery'); 15 | 16 | this.core.s = $.extend({}, defaults, this.core.s); 17 | 18 | if (this.core.s.hash) { 19 | this.oldHash = window.location.hash; 20 | this.init(); 21 | } 22 | 23 | return this; 24 | }; 25 | 26 | Hash.prototype.init = function() { 27 | var _this = this; 28 | var _hash; 29 | 30 | // Change hash value on after each slide transition 31 | _this.core.$el.on('onAfterSlide.lg.tm', function(event, prevIndex, index) { 32 | window.location.hash = 'lg=' + _this.core.s.galleryId + '&slide=' + index; 33 | }); 34 | 35 | // Listen hash change and change the slide according to slide value 36 | $(window).on('hashchange.lg.hash', function() { 37 | _hash = window.location.hash; 38 | var _idx = parseInt(_hash.split('&slide=')[1], 10); 39 | 40 | // it galleryId doesn't exist in the url close the gallery 41 | if ((_hash.indexOf('lg=' + _this.core.s.galleryId) > -1)) { 42 | _this.core.slide(_idx, false, false); 43 | } else if (_this.core.lGalleryOn) { 44 | _this.core.destroy(); 45 | } 46 | 47 | }); 48 | }; 49 | 50 | Hash.prototype.destroy = function() { 51 | 52 | if (!this.core.s.hash) { 53 | return; 54 | } 55 | 56 | // Reset to old hash value 57 | if (this.oldHash && this.oldHash.indexOf('lg=' + this.core.s.galleryId) < 0) { 58 | window.location.hash = this.oldHash; 59 | } else { 60 | if (history.pushState) { 61 | history.pushState('', document.title, window.location.pathname + window.location.search); 62 | } else { 63 | window.location.hash = ''; 64 | } 65 | } 66 | 67 | this.core.$el.off('.lg.hash'); 68 | 69 | }; 70 | 71 | $.fn.lightGallery.modules.hash = Hash; 72 | 73 | })(jQuery, window, document); -------------------------------------------------------------------------------- /assets/plugins/lazyload/jquery.scrollstop.js: -------------------------------------------------------------------------------- 1 | /* http://james.padolsey.com/javascript/special-scroll-events-for-jquery/ */ 2 | 3 | (function(){ 4 | 5 | var special = jQuery.event.special, 6 | uid1 = "D" + (+new Date()), 7 | uid2 = "D" + (+new Date() + 1); 8 | 9 | special.scrollstart = { 10 | setup: function() { 11 | 12 | var timer, 13 | handler = function(evt) { 14 | 15 | var _self = this, 16 | _args = arguments; 17 | 18 | if (timer) { 19 | clearTimeout(timer); 20 | } else { 21 | evt.type = "scrollstart"; 22 | jQuery.event.dispatch.apply(_self, _args); 23 | } 24 | 25 | timer = setTimeout( function(){ 26 | timer = null; 27 | }, special.scrollstop.latency); 28 | 29 | }; 30 | 31 | jQuery(this).bind("scroll", handler).data(uid1, handler); 32 | 33 | }, 34 | teardown: function(){ 35 | jQuery(this).unbind( "scroll", jQuery(this).data(uid1) ); 36 | } 37 | }; 38 | 39 | special.scrollstop = { 40 | latency: 300, 41 | setup: function() { 42 | 43 | var timer, 44 | handler = function(evt) { 45 | 46 | var _self = this, 47 | _args = arguments; 48 | 49 | if (timer) { 50 | clearTimeout(timer); 51 | } 52 | 53 | timer = setTimeout( function(){ 54 | 55 | timer = null; 56 | evt.type = "scrollstop"; 57 | jQuery.event.dispatch.apply(_self, _args); 58 | 59 | 60 | }, special.scrollstop.latency); 61 | 62 | }; 63 | 64 | jQuery(this).bind("scroll", handler).data(uid2, handler); 65 | 66 | }, 67 | teardown: function() { 68 | jQuery(this).unbind( "scroll", jQuery(this).data(uid2) ); 69 | } 70 | }; 71 | 72 | })(); -------------------------------------------------------------------------------- /assets/js/lg-autoplay.min.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | !function(a,b,c,d){"use strict";var e={autoplay:!1,pause:5e3,progressBar:!0,fourceAutoplay:!1,autoplayControls:!0,appendAutoplayControlsTo:".lg-toolbar"},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.$items.length<2?!1:(this.core.s=a.extend({},e,this.core.s),this.interval=!1,this.fromAuto=!0,this.canceledOnTouch=!1,this.fourceAutoplayTemp=this.core.s.fourceAutoplay,this.core.doCss()||(this.core.s.progressBar=!1),this.init(),this)};f.prototype.init=function(){var a=this;a.core.s.autoplayControls&&a.controls(),a.core.s.progressBar&&a.core.$outer.find(".lg").append('
'),a.progress(),a.core.s.autoplay&&a.startlAuto(),a.$el.on("onDragstart.lg.tm touchstart.lg.tm",function(){a.interval&&(a.cancelAuto(),a.canceledOnTouch=!0)}),a.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm",function(){!a.interval&&a.canceledOnTouch&&(a.startlAuto(),a.canceledOnTouch=!1)})},f.prototype.progress=function(){var a,b,c=this;c.$el.on("onBeforeSlide.lg.tm",function(){c.core.s.progressBar&&c.fromAuto&&(a=c.core.$outer.find(".lg-progress-bar"),b=c.core.$outer.find(".lg-progress"),c.interval&&(b.removeAttr("style"),a.removeClass("lg-start"),setTimeout(function(){b.css("transition","width "+(c.core.s.speed+c.core.s.pause)+"ms ease 0s"),a.addClass("lg-start")},20))),c.fromAuto||c.core.s.fourceAutoplay||c.cancelAuto(),c.fromAuto=!1})},f.prototype.controls=function(){var b=this,c='';a(this.core.s.appendAutoplayControlsTo).append(c),b.core.$outer.find(".lg-autoplay-button").on("click.lg",function(){a(b.core.$outer).hasClass("lg-show-autoplay")?(b.cancelAuto(),b.core.s.fourceAutoplay=!1):b.interval||(b.startlAuto(),b.core.s.fourceAutoplay=b.fourceAutoplayTemp)})},f.prototype.startlAuto=function(){var a=this;a.core.$outer.find(".lg-progress").css("transition","width "+(a.core.s.speed+a.core.s.pause)+"ms ease 0s"),a.core.$outer.addClass("lg-show-autoplay"),a.core.$outer.find(".lg-progress-bar").addClass("lg-start"),a.interval=setInterval(function(){a.core.index+1= 2 60 | @for $env from 2 through $cap 61 | $suffix: "@#{$env}x" 62 | @media (-webkit-min-device-pixel-ratio: $env), (min-resolution: $env * 96dpi) 63 | background: url("#{$base}#{$suffix}.#{$ext}") $extras 64 | background-size: $size 65 | 66 | @else 67 | background: url("#{$path}") $extras 68 | background-size: $size 69 | -------------------------------------------------------------------------------- /assets/plugins/owl/owl.carousel.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.0 3 | * Copyright 2013-2016 David Deutsch 4 | * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE) 5 | */ 6 | .owl-carousel,.owl-carousel .owl-item{-webkit-tap-highlight-color:transparent;position:relative}.owl-carousel{display:none;width:100%;z-index:1}.owl-carousel .owl-stage{position:relative;-ms-touch-action:pan-Y}.owl-carousel .owl-stage:after{content:".";display:block;clear:both;visibility:hidden;line-height:0;height:0}.owl-carousel .owl-stage-outer{position:relative;overflow:hidden;-webkit-transform:translate3d(0,0,0)}.owl-carousel .owl-item{min-height:1px;float:left;-webkit-backface-visibility:hidden;-webkit-touch-callout:none}.owl-carousel .owl-item img{display:block;width:100%;-webkit-transform-style:preserve-3d}.owl-carousel .owl-dots.disabled,.owl-carousel .owl-nav.disabled{display:none}.no-js .owl-carousel,.owl-carousel.owl-loaded{display:block}.owl-carousel .owl-dot,.owl-carousel .owl-nav .owl-next,.owl-carousel .owl-nav .owl-prev{cursor:pointer;cursor:hand;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-loading{opacity:0;display:block}.owl-carousel.owl-hidden{opacity:0}.owl-carousel.owl-refresh .owl-item{visibility:hidden}.owl-carousel.owl-drag .owl-item{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.owl-carousel.owl-grab{cursor:move;cursor:grab}.owl-carousel.owl-rtl{direction:rtl}.owl-carousel.owl-rtl .owl-item{float:right}.owl-carousel .animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.owl-carousel .owl-animated-in{z-index:0}.owl-carousel .owl-animated-out{z-index:1}.owl-carousel .fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.owl-height{transition:height .5s ease-in-out}.owl-carousel .owl-item .owl-lazy{opacity:0;transition:opacity .4s ease}.owl-carousel .owl-item img.owl-lazy{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.owl-carousel .owl-video-wrapper{position:relative;height:100%;background:#000}.owl-carousel .owl-video-play-icon{position:absolute;height:80px;width:80px;left:50%;top:50%;margin-left:-40px;margin-top:-40px;background:url(owl.video.play.png) no-repeat;cursor:pointer;z-index:1;-webkit-backface-visibility:hidden;transition:-webkit-transform .1s ease;transition:transform .1s ease}.owl-carousel .owl-video-play-icon:hover{-webkit-transform:scale(1.3,1.3);-ms-transform:scale(1.3,1.3);transform:scale(1.3,1.3)}.owl-carousel .owl-video-playing .owl-video-play-icon,.owl-carousel .owl-video-playing .owl-video-tn{display:none}.owl-carousel .owl-video-tn{opacity:0;height:100%;background-position:center center;background-repeat:no-repeat;background-size:contain;transition:opacity .4s ease}.owl-carousel .owl-video-frame{position:relative;z-index:1;height:100%;width:100%} -------------------------------------------------------------------------------- /assets/js/lg-pager.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | (function($, window, document, undefined) { 5 | 6 | 'use strict'; 7 | 8 | var defaults = { 9 | pager: false 10 | }; 11 | 12 | var Pager = function(element) { 13 | 14 | this.core = $(element).data('lightGallery'); 15 | 16 | this.$el = $(element); 17 | this.core.s = $.extend({}, defaults, this.core.s); 18 | if (this.core.s.pager && this.core.$items.length > 1) { 19 | this.init(); 20 | } 21 | 22 | return this; 23 | }; 24 | 25 | Pager.prototype.init = function() { 26 | var _this = this; 27 | var pagerList = ''; 28 | var $pagerCont; 29 | var $pagerOuter; 30 | var timeout; 31 | 32 | _this.core.$outer.find('.lg').append('
'); 33 | 34 | if (_this.core.s.dynamic) { 35 | for (var i = 0; i < _this.core.s.dynamicEl.length; i++) { 36 | pagerList += '
'; 37 | } 38 | } else { 39 | _this.core.$items.each(function() { 40 | 41 | if (!_this.core.s.exThumbImage) { 42 | pagerList += '
'; 43 | } else { 44 | pagerList += '
'; 45 | } 46 | 47 | }); 48 | } 49 | 50 | $pagerOuter = _this.core.$outer.find('.lg-pager-outer'); 51 | 52 | $pagerOuter.html(pagerList); 53 | 54 | $pagerCont = _this.core.$outer.find('.lg-pager-cont'); 55 | $pagerCont.on('click.lg touchend.lg', function() { 56 | var _$this = $(this); 57 | _this.core.index = _$this.index(); 58 | _this.core.slide(_this.core.index, false, false); 59 | }); 60 | 61 | $pagerOuter.on('mouseover.lg', function() { 62 | clearTimeout(timeout); 63 | $pagerOuter.addClass('lg-pager-hover'); 64 | }); 65 | 66 | $pagerOuter.on('mouseout.lg', function() { 67 | timeout = setTimeout(function() { 68 | $pagerOuter.removeClass('lg-pager-hover'); 69 | }); 70 | }); 71 | 72 | _this.core.$el.on('onBeforeSlide.lg.tm', function(e, prevIndex, index) { 73 | $pagerCont.removeClass('lg-pager-active'); 74 | $pagerCont.eq(index).addClass('lg-pager-active'); 75 | }); 76 | 77 | }; 78 | 79 | Pager.prototype.destroy = function() { 80 | 81 | }; 82 | 83 | $.fn.lightGallery.modules.pager = Pager; 84 | 85 | })(jQuery, window, document); 86 | -------------------------------------------------------------------------------- /assets/plugins/lazyload/jquery.lazyload.min.js: -------------------------------------------------------------------------------- 1 | /*! Lazy Load 1.9.7 - MIT license - Copyright 2010-2015 Mika Tuupola */ 2 | !function(a,b,c,d){var e=a(b);a.fn.lazyload=function(f){function g(){var b=0;i.each(function(){var c=a(this);if(!j.skip_invisible||c.is(":visible"))if(a.abovethetop(this,j)||a.leftofbegin(this,j));else if(a.belowthefold(this,j)||a.rightoffold(this,j)){if(++b>j.failure_limit)return!1}else c.trigger("appear"),b=0})}var h,i=this,j={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:b,data_attribute:"original",skip_invisible:!1,appear:null,load:null,placeholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"};return f&&(d!==f.failurelimit&&(f.failure_limit=f.failurelimit,delete f.failurelimit),d!==f.effectspeed&&(f.effect_speed=f.effectspeed,delete f.effectspeed),a.extend(j,f)),h=j.container===d||j.container===b?e:a(j.container),0===j.event.indexOf("scroll")&&h.bind(j.event,function(){return g()}),this.each(function(){var b=this,c=a(b);b.loaded=!1,(c.attr("src")===d||c.attr("src")===!1)&&c.is("img")&&c.attr("src",j.placeholder),c.one("appear",function(){if(!this.loaded){if(j.appear){var d=i.length;j.appear.call(b,d,j)}a("").bind("load",function(){var d=c.attr("data-"+j.data_attribute);c.hide(),c.is("img")?c.attr("src",d):c.css("background-image","url('"+d+"')"),c[j.effect](j.effect_speed),b.loaded=!0;var e=a.grep(i,function(a){return!a.loaded});if(i=a(e),j.load){var f=i.length;j.load.call(b,f,j)}}).attr("src",c.attr("data-"+j.data_attribute))}}),0!==j.event.indexOf("scroll")&&c.bind(j.event,function(){b.loaded||c.trigger("appear")})}),e.bind("resize",function(){g()}),/(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion)&&e.bind("pageshow",function(b){b.originalEvent&&b.originalEvent.persisted&&i.each(function(){a(this).trigger("appear")})}),a(c).ready(function(){g()}),this},a.belowthefold=function(c,f){var g;return g=f.container===d||f.container===b?(b.innerHeight?b.innerHeight:e.height())+e.scrollTop():a(f.container).offset().top+a(f.container).height(),g<=a(c).offset().top-f.threshold},a.rightoffold=function(c,f){var g;return g=f.container===d||f.container===b?e.width()+e.scrollLeft():a(f.container).offset().left+a(f.container).width(),g<=a(c).offset().left-f.threshold},a.abovethetop=function(c,f){var g;return g=f.container===d||f.container===b?e.scrollTop():a(f.container).offset().top,g>=a(c).offset().top+f.threshold+a(c).height()},a.leftofbegin=function(c,f){var g;return g=f.container===d||f.container===b?e.scrollLeft():a(f.container).offset().left,g>=a(c).offset().left+f.threshold+a(c).width()},a.inviewport=function(b,c){return!(a.rightoffold(b,c)||a.leftofbegin(b,c)||a.belowthefold(b,c)||a.abovethetop(b,c))},a.extend(a.expr[":"],{"below-the-fold":function(b){return a.belowthefold(b,{threshold:0})},"above-the-top":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-screen":function(b){return a.rightoffold(b,{threshold:0})},"left-of-screen":function(b){return!a.rightoffold(b,{threshold:0})},"in-viewport":function(b){return a.inviewport(b,{threshold:0})},"above-the-fold":function(b){return!a.belowthefold(b,{threshold:0})},"right-of-fold":function(b){return a.rightoffold(b,{threshold:0})},"left-of-fold":function(b){return!a.rightoffold(b,{threshold:0})}})}(jQuery,window,document); -------------------------------------------------------------------------------- /assets/plugins/retina/_retina.scss: -------------------------------------------------------------------------------- 1 | // retina.scss 2 | // A helper mixin for applying high-resolution background images (http://www.retinajs.com) 3 | 4 | // Submitted by Nathan Crank 5 | // nathancrank.com 6 | 7 | // Updated by Gabriel R. Sezefredo 8 | // gabriel.sezefredo.com.br 9 | 10 | // Updated by John Newman 11 | // github.com/jgnewman 12 | // http://axial.agency 13 | 14 | 15 | /** 16 | * Allows you to use retina images at various pixel densities. 17 | * Examples: 18 | * 19 | * @include retina(/images/mypic.jpg, 2); 20 | * @include retina(/images/mypic.jpg, 3, 100px 100px, left top no-repeat transparent); 21 | * 22 | * @param {Value} $path The path to the file name minus extension. 23 | * @param {Number} $cap: 2 The highest pixel density level images exist for. 24 | * @param {Value} $size: auto auto The intended width of the rendered image. 25 | * @param {Value} $extras: null Any other `background` values to be added. 26 | */ 27 | @mixin retina($path, $cap: 2, $size: auto auto, $extras: null) { 28 | 29 | /* 30 | * Set a counter and get the length of the image path. 31 | */ 32 | $position: -1; 33 | $strpath: '#{$path}'; 34 | $length: str-length($strpath); 35 | 36 | /* 37 | * Loop ver the image path and figure out the 38 | * position of the dot where the extension begins. 39 | */ 40 | @for $i from $length through $length - 10{ 41 | @if $position == -1 { 42 | $char : str-slice($strpath, $i, $i); 43 | @if str-index($char, ".") == 1 { 44 | $position: $i; 45 | } 46 | } 47 | } 48 | 49 | /* 50 | * If we were able to figure out where the extension is, 51 | * slice the path into a base and an extension. Use that to 52 | * calculate urls for different density environments. Set 53 | * values for different environments. 54 | */ 55 | @if $position != -1 { 56 | $ext: str-slice($strpath, $position + 1, $length); 57 | $base: str-slice($strpath, 1, $position - 1); 58 | $at1x_path: "#{$base}.#{$ext}"; 59 | $at2x_path: "#{$base}@2x.#{$ext}"; 60 | 61 | /* 62 | * Set a base background for 1x environments. 63 | */ 64 | background: url("#{$at1x_path}") $extras; 65 | background-size: $size; 66 | 67 | /* 68 | * Create an @2x-ish media query. 69 | */ 70 | @media all and (-webkit-min-device-pixel-ratio : 1.5), 71 | all and (-o-min-device-pixel-ratio: 3/2), 72 | all and (min--moz-device-pixel-ratio: 1.5), 73 | all and (min-device-pixel-ratio: 1.5) { 74 | background : url("#{$at2x_path}") $extras; 75 | background-size : $size; 76 | } 77 | 78 | /* 79 | * Create media queries for all environments that the user has 80 | * provided images for. 81 | */ 82 | @if $cap >= 2 { 83 | @for $env from 2 through $cap { 84 | $suffix: "@#{$env}x"; 85 | @media (-webkit-min-device-pixel-ratio: $env), 86 | (min-resolution: $env * 96dpi) { 87 | background : url("#{$base}#{$suffix}.#{$ext}") $extras; 88 | background-size : $size; 89 | } 90 | } 91 | } 92 | 93 | /* 94 | * If anything went wrong trying to separate the file from its 95 | * extension, set a background value without doing anything to it. 96 | */ 97 | } @else { 98 | background: url("#{$path}") $extras; 99 | background-size: $size; 100 | } 101 | 102 | } 103 | -------------------------------------------------------------------------------- /assets/js/lg-fullscreen.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | (function($, window, document, undefined) { 5 | 6 | 'use strict'; 7 | 8 | var defaults = { 9 | fullScreen: true 10 | }; 11 | 12 | var Fullscreen = function(element) { 13 | 14 | // get lightGallery core plugin data 15 | this.core = $(element).data('lightGallery'); 16 | 17 | this.$el = $(element); 18 | 19 | // extend module defalut settings with lightGallery core settings 20 | this.core.s = $.extend({}, defaults, this.core.s); 21 | 22 | this.init(); 23 | 24 | return this; 25 | }; 26 | 27 | Fullscreen.prototype.init = function() { 28 | var fullScreen = ''; 29 | if (this.core.s.fullScreen) { 30 | 31 | // check for fullscreen browser support 32 | if (!document.fullscreenEnabled && !document.webkitFullscreenEnabled && 33 | !document.mozFullScreenEnabled && !document.msFullscreenEnabled) { 34 | return; 35 | } else { 36 | fullScreen = ''; 37 | this.core.$outer.find('.lg-toolbar').append(fullScreen); 38 | this.fullScreen(); 39 | } 40 | } 41 | }; 42 | 43 | Fullscreen.prototype.requestFullscreen = function() { 44 | var el = document.documentElement; 45 | if (el.requestFullscreen) { 46 | el.requestFullscreen(); 47 | } else if (el.msRequestFullscreen) { 48 | el.msRequestFullscreen(); 49 | } else if (el.mozRequestFullScreen) { 50 | el.mozRequestFullScreen(); 51 | } else if (el.webkitRequestFullscreen) { 52 | el.webkitRequestFullscreen(); 53 | } 54 | }; 55 | 56 | Fullscreen.prototype.exitFullscreen = function() { 57 | if (document.exitFullscreen) { 58 | document.exitFullscreen(); 59 | } else if (document.msExitFullscreen) { 60 | document.msExitFullscreen(); 61 | } else if (document.mozCancelFullScreen) { 62 | document.mozCancelFullScreen(); 63 | } else if (document.webkitExitFullscreen) { 64 | document.webkitExitFullscreen(); 65 | } 66 | }; 67 | 68 | // https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Using_full_screen_mode 69 | Fullscreen.prototype.fullScreen = function() { 70 | var _this = this; 71 | 72 | $(document).on('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg', function() { 73 | _this.core.$outer.toggleClass('lg-fullscreen-on'); 74 | }); 75 | 76 | this.core.$outer.find('.lg-fullscreen').on('click.lg', function() { 77 | if (!document.fullscreenElement && 78 | !document.mozFullScreenElement && !document.webkitFullscreenElement && !document.msFullscreenElement) { 79 | _this.requestFullscreen(); 80 | } else { 81 | _this.exitFullscreen(); 82 | } 83 | }); 84 | 85 | }; 86 | 87 | Fullscreen.prototype.destroy = function() { 88 | 89 | // exit from fullscreen if activated 90 | this.exitFullscreen(); 91 | 92 | $(document).off('fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg'); 93 | }; 94 | 95 | $.fn.lightGallery.modules.fullscreen = Fullscreen; 96 | 97 | })(jQuery, window, document); 98 | -------------------------------------------------------------------------------- /assets/plugins/aniview/aniview.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Created by GS on 08.11.16. 3 | */ 4 | (function($) { 5 | 6 | //custom scroll replacement to allow for interval-based 'polling' 7 | //rathar than checking on every pixel 8 | var uniqueCntr = 0; 9 | $.fn.scrolled = function(waitTime, fn) { 10 | if (typeof waitTime === 'function') { 11 | fn = waitTime; 12 | waitTime = 200; 13 | } 14 | var tag = 'scrollTimer' + uniqueCntr++; 15 | this.scroll(function() { 16 | var self = $(this); 17 | var timer = self.data(tag); 18 | if (timer) { 19 | clearTimeout(timer); 20 | } 21 | timer = setTimeout(function() { 22 | self.removeData(tag); 23 | fn.call(self[0]); 24 | }, waitTime); 25 | self.data(tag, timer); 26 | }); 27 | }; 28 | 29 | $.fn.AniView = function(options) { 30 | 31 | //some default settings. animateThreshold controls the trigger point 32 | //for animation and is subtracted from the bottom of the viewport. 33 | var settings = $.extend({ 34 | animateThreshold: 0, 35 | scrollPollInterval: 20 36 | }, options); 37 | 38 | //keep the matched elements in a variable for easy reference 39 | var collection = this; 40 | 41 | //cycle through each matched element and wrap it in a block/div 42 | //and then proceed to fade out the inner contents of each matched element 43 | $(collection).each(function(index, element) { 44 | $(element).wrap('
'); 45 | $(element).css('opacity', 0); 46 | }); 47 | 48 | /** 49 | * returns boolean representing whether element's top is coming into bottom of viewport 50 | * 51 | * @param HTMLDOMElement element the current element to check 52 | */ 53 | function EnteringViewport(element) { 54 | var elementOffset = $(element).offset(); 55 | var elementTop = elementOffset.top + $(element).scrollTop(); 56 | var viewportBottom = $(window).scrollTop() + $(window).height(); 57 | return (elementTop < (viewportBottom - settings.animateThreshold)) ? true : false; 58 | } 59 | 60 | /** 61 | * cycle through each element in the collection to make sure that any 62 | * elements which should be animated into view, are... 63 | * 64 | * @param collection of elements to check 65 | */ 66 | function RenderElementsCurrentlyInViewport(collection) { 67 | $(collection).each(function(index, element) { 68 | var elementParentContainer = $(element).parent('.av-container'); 69 | if ($(element).is('[data-av-animation]') && !$(elementParentContainer).hasClass('av-visible') && EnteringViewport(elementParentContainer)) { 70 | $(element).css('opacity', 1); 71 | $(elementParentContainer).addClass('av-visible'); 72 | $(element).addClass('animated ' + $(element).attr('data-av-animation')); 73 | } 74 | }); 75 | } 76 | 77 | //on page load, render any elements that are currently in view 78 | RenderElementsCurrentlyInViewport(collection); 79 | 80 | //enable the scrolled event timer to watch for elements coming into the viewport 81 | //from the bottom. default polling time is 20 ms. This can be changed using 82 | //'scrollPollInterval' from the user visible options 83 | $(window).scrolled(settings.scrollPollInterval, function() { 84 | RenderElementsCurrentlyInViewport(collection); 85 | }); 86 | }; 87 | })(jQuery); 88 | -------------------------------------------------------------------------------- /pages/help_modul.inc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | Bilder 7 |
8 | REX_MEDIALIST[id="1" widget="1"] 9 | Bilder in der Medienkategorie "Fotos" (ID 1) haben ein zusätzliches Linkfeld. 10 |
11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 | '; 29 | 30 | $frontend .= ' 31 | 96 | 97 | '; 98 | 99 | } 100 | 101 | // Different output for frontend and backend 102 | if (rex::isBackend()) { 103 | echo $backend; 104 | } else { 105 | echo $frontend; 106 | } 107 | 108 | ?> 109 | -------------------------------------------------------------------------------- /assets/plugins/modal/animatedModal.js: -------------------------------------------------------------------------------- 1 | /*========================================= 2 | * animatedModal.js: Version 1.0 3 | * author: João Pereira 4 | * website: http://www.joaopereira.pt 5 | * email: joaopereirawd@gmail.com 6 | * Licensed MIT 7 | =========================================*/ 8 | 9 | (function ($) { 10 | 11 | $.fn.animatedModal = function(options) { 12 | var modal = $(this); 13 | 14 | //Defaults 15 | var settings = $.extend({ 16 | modalTarget:'animatedModal', 17 | position:'fixed', 18 | width:'100%', 19 | height:'100%', 20 | top:'0px', 21 | left:'0px', 22 | zIndexIn: '9999', 23 | zIndexOut: '-9999', 24 | color: '#39BEB9', 25 | opacityIn:'1', 26 | opacityOut:'0', 27 | animatedIn:'zoomIn', 28 | animatedOut:'zoomOut', 29 | animationDuration:'.6s', 30 | overflow:'auto', 31 | // Callbacks 32 | beforeOpen: function() {}, 33 | afterOpen: function() {}, 34 | beforeClose: function() {}, 35 | afterClose: function() {} 36 | 37 | 38 | 39 | }, options); 40 | 41 | var closeBt = $('.close-'+settings.modalTarget); 42 | 43 | //console.log(closeBt) 44 | 45 | var href = $(modal).attr('href'), 46 | id = $('body').find('#'+settings.modalTarget), 47 | idConc = '#'+id.attr('id'); 48 | //console.log(idConc); 49 | // Default Classes 50 | id.addClass('animated'); 51 | id.addClass(settings.modalTarget+'-off'); 52 | 53 | //Init styles 54 | var initStyles = { 55 | 'position':settings.position, 56 | 'width':settings.width, 57 | 'height':settings.height, 58 | 'top':settings.top, 59 | 'left':settings.left, 60 | 'background-color':settings.color, 61 | 'overflow-y':settings.overflow, 62 | 'z-index':settings.zIndexOut, 63 | 'opacity':settings.opacityOut, 64 | '-webkit-animation-duration':settings.animationDuration 65 | }; 66 | //Apply stles 67 | id.css(initStyles); 68 | 69 | modal.click(function(event) { 70 | event.preventDefault(); 71 | $('body, html').css({'overflow':'hidden'}); 72 | if (href == idConc) { 73 | if (id.hasClass(settings.modalTarget+'-off')) { 74 | id.removeClass(settings.animatedOut); 75 | id.removeClass(settings.modalTarget+'-off'); 76 | id.addClass(settings.modalTarget+'-on'); 77 | } 78 | 79 | if (id.hasClass(settings.modalTarget+'-on')) { 80 | settings.beforeOpen(); 81 | id.css({'opacity':settings.opacityIn,'z-index':settings.zIndexIn}); 82 | id.addClass(settings.animatedIn); 83 | id.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', afterOpen); 84 | }; 85 | } 86 | }); 87 | 88 | 89 | 90 | closeBt.click(function(event) { 91 | event.preventDefault(); 92 | $('body, html').css({'overflow':'auto'}); 93 | 94 | settings.beforeClose(); //beforeClose 95 | if (id.hasClass(settings.modalTarget+'-on')) { 96 | id.removeClass(settings.modalTarget+'-on'); 97 | id.addClass(settings.modalTarget+'-off'); 98 | } 99 | 100 | if (id.hasClass(settings.modalTarget+'-off')) { 101 | id.removeClass(settings.animatedIn); 102 | id.addClass(settings.animatedOut); 103 | id.one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', afterClose); 104 | }; 105 | 106 | }); 107 | 108 | function afterClose () { 109 | id.css({'z-index':settings.zIndexOut}); 110 | settings.afterClose(); //afterClose 111 | } 112 | 113 | function afterOpen () { 114 | settings.afterOpen(); //afterOpen 115 | } 116 | 117 | }; // End animatedModal.js 118 | 119 | }(jQuery)); 120 | 121 | 122 | 123 | -------------------------------------------------------------------------------- /assets/fonts/lg.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | { 8 | "fontFamily": "lg", 9 | "majorVersion": 1, 10 | "minorVersion": 0, 11 | "fontURL": "https://github.com/sachinchoolur/lightGallery", 12 | "copyright": "sachin", 13 | "license": "MLT", 14 | "licenseURL": "http://opensource.org/licenses/MIT", 15 | "version": "Version 1.0", 16 | "fontId": "lg", 17 | "psName": "lg", 18 | "subFamily": "Regular", 19 | "fullName": "lg", 20 | "description": "Font generated by IcoMoon." 21 | } 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /assets/plugins/owl/owl.carousel.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Owl Carousel v2.2.0 3 | * Copyright 2013-2016 David Deutsch 4 | * Licensed under MIT (https://github.com/OwlCarousel2/OwlCarousel2/blob/master/LICENSE) 5 | */ 6 | /* 7 | * Owl Carousel - Core 8 | */ 9 | .owl-carousel { 10 | display: none; 11 | width: 100%; 12 | -webkit-tap-highlight-color: transparent; 13 | /* position relative and z-index fix webkit rendering fonts issue */ 14 | position: relative; 15 | z-index: 1; } 16 | .owl-carousel .owl-stage { 17 | position: relative; 18 | -ms-touch-action: pan-Y; } 19 | .owl-carousel .owl-stage:after { 20 | content: "."; 21 | display: block; 22 | clear: both; 23 | visibility: hidden; 24 | line-height: 0; 25 | height: 0; } 26 | .owl-carousel .owl-stage-outer { 27 | position: relative; 28 | overflow: hidden; 29 | /* fix for flashing background */ 30 | -webkit-transform: translate3d(0px, 0px, 0px); } 31 | .owl-carousel .owl-item { 32 | position: relative; 33 | min-height: 1px; 34 | float: left; 35 | -webkit-backface-visibility: hidden; 36 | -webkit-tap-highlight-color: transparent; 37 | -webkit-touch-callout: none; } 38 | .owl-carousel .owl-item img { 39 | display: block; 40 | width: 100%; 41 | -webkit-transform-style: preserve-3d; } 42 | .owl-carousel .owl-nav.disabled, 43 | .owl-carousel .owl-dots.disabled { 44 | display: none; } 45 | .owl-carousel .owl-nav .owl-prev, 46 | .owl-carousel .owl-nav .owl-next, 47 | .owl-carousel .owl-dot { 48 | cursor: pointer; 49 | cursor: hand; 50 | -webkit-user-select: none; 51 | -khtml-user-select: none; 52 | -moz-user-select: none; 53 | -ms-user-select: none; 54 | user-select: none; } 55 | .owl-carousel.owl-loaded { 56 | display: block; } 57 | .owl-carousel.owl-loading { 58 | opacity: 0; 59 | display: block; } 60 | .owl-carousel.owl-hidden { 61 | opacity: 0; } 62 | .owl-carousel.owl-refresh .owl-item { 63 | visibility: hidden; } 64 | .owl-carousel.owl-drag .owl-item { 65 | -webkit-user-select: none; 66 | -moz-user-select: none; 67 | -ms-user-select: none; 68 | user-select: none; } 69 | .owl-carousel.owl-grab { 70 | cursor: move; 71 | cursor: grab; } 72 | .owl-carousel.owl-rtl { 73 | direction: rtl; } 74 | .owl-carousel.owl-rtl .owl-item { 75 | float: right; } 76 | 77 | /* No Js */ 78 | .no-js .owl-carousel { 79 | display: block; } 80 | 81 | /* 82 | * Owl Carousel - Animate Plugin 83 | */ 84 | .owl-carousel .animated { 85 | -webkit-animation-duration: 1000ms; 86 | animation-duration: 1000ms; 87 | -webkit-animation-fill-mode: both; 88 | animation-fill-mode: both; } 89 | 90 | .owl-carousel .owl-animated-in { 91 | z-index: 0; } 92 | 93 | .owl-carousel .owl-animated-out { 94 | z-index: 1; } 95 | 96 | .owl-carousel .fadeOut { 97 | -webkit-animation-name: fadeOut; 98 | animation-name: fadeOut; } 99 | 100 | @-webkit-keyframes fadeOut { 101 | 0% { 102 | opacity: 1; } 103 | 100% { 104 | opacity: 0; } } 105 | 106 | @keyframes fadeOut { 107 | 0% { 108 | opacity: 1; } 109 | 100% { 110 | opacity: 0; } } 111 | 112 | /* 113 | * Owl Carousel - Auto Height Plugin 114 | */ 115 | .owl-height { 116 | transition: height 500ms ease-in-out; } 117 | 118 | /* 119 | * Owl Carousel - Lazy Load Plugin 120 | */ 121 | .owl-carousel .owl-item .owl-lazy { 122 | opacity: 0; 123 | transition: opacity 400ms ease; } 124 | 125 | .owl-carousel .owl-item img.owl-lazy { 126 | -webkit-transform-style: preserve-3d; 127 | transform-style: preserve-3d; } 128 | 129 | /* 130 | * Owl Carousel - Video Plugin 131 | */ 132 | .owl-carousel .owl-video-wrapper { 133 | position: relative; 134 | height: 100%; 135 | background: #000; } 136 | 137 | .owl-carousel .owl-video-play-icon { 138 | position: absolute; 139 | height: 80px; 140 | width: 80px; 141 | left: 50%; 142 | top: 50%; 143 | margin-left: -40px; 144 | margin-top: -40px; 145 | background: url("owl.video.play.png") no-repeat; 146 | cursor: pointer; 147 | z-index: 1; 148 | -webkit-backface-visibility: hidden; 149 | transition: -webkit-transform 100ms ease; 150 | transition: transform 100ms ease; } 151 | 152 | .owl-carousel .owl-video-play-icon:hover { 153 | -webkit-transform: scale(1.3, 1.3); 154 | -ms-transform: scale(1.3, 1.3); 155 | transform: scale(1.3, 1.3); } 156 | 157 | .owl-carousel .owl-video-playing .owl-video-tn, 158 | .owl-carousel .owl-video-playing .owl-video-play-icon { 159 | display: none; } 160 | 161 | .owl-carousel .owl-video-tn { 162 | opacity: 0; 163 | height: 100%; 164 | background-position: center center; 165 | background-repeat: no-repeat; 166 | background-size: contain; 167 | transition: opacity 400ms ease; } 168 | 169 | .owl-carousel .owl-video-frame { 170 | position: relative; 171 | z-index: 1; 172 | height: 100%; 173 | width: 100%; } 174 | -------------------------------------------------------------------------------- /assets/js/lg-video.min.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | !function(a,b,c,d){"use strict";var e={videoMaxWidth:"855px",youtubePlayerParams:!1,vimeoPlayerParams:!1,dailymotionPlayerParams:!1,vkPlayerParams:!1,videojs:!1,videojsOptions:{}},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.videoLoaded=!1,this.init(),this};f.prototype.init=function(){var b=this;b.core.$el.on("hasVideo.lg.tm",function(a,c,d,e){if(b.core.$slide.eq(c).find(".lg-video").append(b.loadVideo(d,"lg-object",!0,c,e)),e)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(c).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){b.videoLoaded||this.play()})}catch(f){console.error("Make sure you have included videojs")}else b.core.$slide.eq(c).find(".lg-html5").get(0).play()}),b.core.$el.on("onAferAppendSlide.lg.tm",function(a,c){b.core.$slide.eq(c).find(".lg-video-cont").css("max-width",b.core.s.videoMaxWidth),b.videoLoaded=!0});var c=function(a){if(a.find(".lg-object").hasClass("lg-has-poster")&&a.find(".lg-object").is(":visible"))if(a.hasClass("lg-has-video")){var c=a.find(".lg-youtube").get(0),d=a.find(".lg-vimeo").get(0),e=a.find(".lg-dailymotion").get(0),f=a.find(".lg-html5").get(0);if(c)c.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*");else if(d)try{$f(d).api("play")}catch(g){console.error("Make sure you have included froogaloop2 js")}else if(e)e.contentWindow.postMessage("play","*");else if(f)if(b.core.s.videojs)try{videojs(f).play()}catch(g){console.error("Make sure you have included videojs")}else f.play();a.addClass("lg-video-playing")}else{a.addClass("lg-video-playing lg-has-video");var h,i,j=function(c,d){if(a.find(".lg-video").append(b.loadVideo(c,"",!1,b.core.index,d)),d)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(b.core.index).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){this.play()})}catch(e){console.error("Make sure you have included videojs")}else b.core.$slide.eq(b.core.index).find(".lg-html5").get(0).play()};b.core.s.dynamic?(h=b.core.s.dynamicEl[b.core.index].src,i=b.core.s.dynamicEl[b.core.index].html,j(h,i)):(h=b.core.$items.eq(b.core.index).attr("href")||b.core.$items.eq(b.core.index).attr("data-src"),i=b.core.$items.eq(b.core.index).attr("data-html"),j(h,i));var k=a.find(".lg-object");a.find(".lg-video").append(k),a.find(".lg-video-object").hasClass("lg-html5")||(a.removeClass("lg-complete"),a.find(".lg-video-object").on("load.lg error.lg",function(){a.addClass("lg-complete")}))}};b.core.doCss()&&b.core.$items.length>1&&(b.core.s.enableSwipe&&b.core.isTouch||b.core.s.enableDrag&&!b.core.isTouch)?b.core.$el.on("onSlideClick.lg.tm",function(){var a=b.core.$slide.eq(b.core.index);c(a)}):b.core.$slide.on("click.lg",function(){c(a(this))}),b.core.$el.on("onBeforeSlide.lg.tm",function(c,d,e){var f=b.core.$slide.eq(d),g=f.find(".lg-youtube").get(0),h=f.find(".lg-vimeo").get(0),i=f.find(".lg-dailymotion").get(0),j=f.find(".lg-vk").get(0),k=f.find(".lg-html5").get(0);if(g)g.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*");else if(h)try{$f(h).api("pause")}catch(l){console.error("Make sure you have included froogaloop2 js")}else if(i)i.contentWindow.postMessage("pause","*");else if(k)if(b.core.s.videojs)try{videojs(k).pause()}catch(l){console.error("Make sure you have included videojs")}else k.pause();j&&a(j).attr("src",a(j).attr("src").replace("&autoplay","&noplay"));var m;m=b.core.s.dynamic?b.core.s.dynamicEl[e].src:b.core.$items.eq(e).attr("href")||b.core.$items.eq(e).attr("data-src");var n=b.core.isVideo(m,e)||{};(n.youtube||n.vimeo||n.dailymotion||n.vk)&&b.core.$outer.addClass("lg-hide-download")}),b.core.$el.on("onAfterSlide.lg.tm",function(a,c){b.core.$slide.eq(c).removeClass("lg-video-playing")})},f.prototype.loadVideo=function(b,c,d,e,f){var g="",h=1,i="",j=this.core.isVideo(b,e)||{};if(d&&(h=this.videoLoaded?0:1),j.youtube)i="?wmode=opaque&autoplay="+h+"&enablejsapi=1",this.core.s.youtubePlayerParams&&(i=i+"&"+a.param(this.core.s.youtubePlayerParams)),g='';else if(j.vimeo)i="?autoplay="+h+"&api=1",this.core.s.vimeoPlayerParams&&(i=i+"&"+a.param(this.core.s.vimeoPlayerParams)),g='';else if(j.dailymotion)i="?wmode=opaque&autoplay="+h+"&api=postMessage",this.core.s.dailymotionPlayerParams&&(i=i+"&"+a.param(this.core.s.dailymotionPlayerParams)),g='';else if(j.html5){var k=f.substring(0,1);"."!==k&&"#"!==k||(f=a(f).html()),g=f}else j.vk&&(i="&autoplay="+h,this.core.s.vkPlayerParams&&(i=i+"&"+a.param(this.core.s.vkPlayerParams)),g='');return g},f.prototype.destroy=function(){this.videoLoaded=!1},a.fn.lightGallery.modules.video=f}(jQuery,window,document); -------------------------------------------------------------------------------- /pages/help_modul_install_output.inc: -------------------------------------------------------------------------------- 1 | 2 | 3 | getTemplateId() == 3) ? ' container' : ''; 23 | $value1['set_margin'] = ($value1['set_margin'] != '') ? ' '.$value1['set_margin'] : ''; 24 | 25 | //--- PRESETS 26 | // Rahmen? 27 | $value2['data_frame'] = ($value2['data_frame'] != '') ? $value2['data_frame'] : 'gallery__item--framed'; 28 | 29 | // Language suffix 30 | $languageSuffix = ''; 31 | $languageSuffix = (rex_clang::getCurrentId() == 2) ? '_en' : ''; 32 | 33 | // frontend / backend 34 | $frontend = ''; 35 | $backend = ''; 36 | 37 | if ("REX_MEDIALIST[1]" != '') { 38 | $media_list = explode(',', "REX_MEDIALIST[1]"); 39 | 40 | $frontend .= ' 41 | '; 120 | 121 | } 122 | 123 | // Different output for frontend and backend 124 | if (rex::isBackend()) { 125 | echo $backend; 126 | } else { 127 | echo $frontend; 128 | } 129 | 130 | if ( rex::isBackend() && $value1['set_class'] != '' ) { 131 | echo 'Zusätzliche CSS-KLASSE: ' .$value1['set_class']. ''; 132 | } 133 | ?> -------------------------------------------------------------------------------- /assets/plugins/ismobile/isMobile.js: -------------------------------------------------------------------------------- 1 | /** 2 | * isMobile.js v0.4.1 3 | * 4 | * A simple library to detect Apple phones and tablets, 5 | * Android phones and tablets, other mobile devices (like blackberry, mini-opera and windows phone), 6 | * and any kind of seven inch device, via user agent sniffing. 7 | * 8 | * @author: Kai Mallea (kmallea@gmail.com) 9 | * 10 | * @license: http://creativecommons.org/publicdomain/zero/1.0/ 11 | */ 12 | (function (global) { 13 | 14 | var apple_phone = /iPhone/i, 15 | apple_ipod = /iPod/i, 16 | apple_tablet = /iPad/i, 17 | android_phone = /(?=.*\bAndroid\b)(?=.*\bMobile\b)/i, // Match 'Android' AND 'Mobile' 18 | android_tablet = /Android/i, 19 | amazon_phone = /(?=.*\bAndroid\b)(?=.*\bSD4930UR\b)/i, 20 | amazon_tablet = /(?=.*\bAndroid\b)(?=.*\b(?:KFOT|KFTT|KFJWI|KFJWA|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|KFARWI|KFASWI|KFSAWI|KFSAWA)\b)/i, 21 | windows_phone = /Windows Phone/i, 22 | windows_tablet = /(?=.*\bWindows\b)(?=.*\bARM\b)/i, // Match 'Windows' AND 'ARM' 23 | other_blackberry = /BlackBerry/i, 24 | other_blackberry_10 = /BB10/i, 25 | other_opera = /Opera Mini/i, 26 | other_chrome = /(CriOS|Chrome)(?=.*\bMobile\b)/i, 27 | other_firefox = /(?=.*\bFirefox\b)(?=.*\bMobile\b)/i, // Match 'Firefox' AND 'Mobile' 28 | seven_inch = new RegExp( 29 | '(?:' + // Non-capturing group 30 | 31 | 'Nexus 7' + // Nexus 7 32 | 33 | '|' + // OR 34 | 35 | 'BNTV250' + // B&N Nook Tablet 7 inch 36 | 37 | '|' + // OR 38 | 39 | 'Kindle Fire' + // Kindle Fire 40 | 41 | '|' + // OR 42 | 43 | 'Silk' + // Kindle Fire, Silk Accelerated 44 | 45 | '|' + // OR 46 | 47 | 'GT-P1000' + // Galaxy Tab 7 inch 48 | 49 | ')', // End non-capturing group 50 | 51 | 'i'); // Case-insensitive matching 52 | 53 | var match = function(regex, userAgent) { 54 | return regex.test(userAgent); 55 | }; 56 | 57 | var IsMobileClass = function(userAgent) { 58 | var ua = userAgent || navigator.userAgent; 59 | 60 | // Facebook mobile app's integrated browser adds a bunch of strings that 61 | // match everything. Strip it out if it exists. 62 | var tmp = ua.split('[FBAN'); 63 | if (typeof tmp[1] !== 'undefined') { 64 | ua = tmp[0]; 65 | } 66 | 67 | // Twitter mobile app's integrated browser on iPad adds a "Twitter for 68 | // iPhone" string. Same probable happens on other tablet platforms. 69 | // This will confuse detection so strip it out if it exists. 70 | tmp = ua.split('Twitter'); 71 | if (typeof tmp[1] !== 'undefined') { 72 | ua = tmp[0]; 73 | } 74 | 75 | this.apple = { 76 | phone: match(apple_phone, ua), 77 | ipod: match(apple_ipod, ua), 78 | tablet: !match(apple_phone, ua) && match(apple_tablet, ua), 79 | device: match(apple_phone, ua) || match(apple_ipod, ua) || match(apple_tablet, ua) 80 | }; 81 | this.amazon = { 82 | phone: match(amazon_phone, ua), 83 | tablet: !match(amazon_phone, ua) && match(amazon_tablet, ua), 84 | device: match(amazon_phone, ua) || match(amazon_tablet, ua) 85 | }; 86 | this.android = { 87 | phone: match(amazon_phone, ua) || match(android_phone, ua), 88 | tablet: !match(amazon_phone, ua) && !match(android_phone, ua) && (match(amazon_tablet, ua) || match(android_tablet, ua)), 89 | device: match(amazon_phone, ua) || match(amazon_tablet, ua) || match(android_phone, ua) || match(android_tablet, ua) 90 | }; 91 | this.windows = { 92 | phone: match(windows_phone, ua), 93 | tablet: match(windows_tablet, ua), 94 | device: match(windows_phone, ua) || match(windows_tablet, ua) 95 | }; 96 | this.other = { 97 | blackberry: match(other_blackberry, ua), 98 | blackberry10: match(other_blackberry_10, ua), 99 | opera: match(other_opera, ua), 100 | firefox: match(other_firefox, ua), 101 | chrome: match(other_chrome, ua), 102 | device: match(other_blackberry, ua) || match(other_blackberry_10, ua) || match(other_opera, ua) || match(other_firefox, ua) || match(other_chrome, ua) 103 | }; 104 | this.seven_inch = match(seven_inch, ua); 105 | this.any = this.apple.device || this.android.device || this.windows.device || this.other.device || this.seven_inch; 106 | 107 | // excludes 'other' devices and ipods, targeting touchscreen phones 108 | this.phone = this.apple.phone || this.android.phone || this.windows.phone; 109 | 110 | // excludes 7 inch devices, classifying as phone or tablet is left to the user 111 | this.tablet = this.apple.tablet || this.android.tablet || this.windows.tablet; 112 | 113 | if (typeof window === 'undefined') { 114 | return this; 115 | } 116 | }; 117 | 118 | var instantiate = function() { 119 | var IM = new IsMobileClass(); 120 | IM.Class = IsMobileClass; 121 | return IM; 122 | }; 123 | 124 | if (typeof module !== 'undefined' && module.exports && typeof window === 'undefined') { 125 | //node 126 | module.exports = IsMobileClass; 127 | } else if (typeof module !== 'undefined' && module.exports && typeof window !== 'undefined') { 128 | //browserify 129 | module.exports = instantiate(); 130 | } else if (typeof define === 'function' && define.amd) { 131 | //AMD 132 | define('isMobile', [], global.isMobile = instantiate()); 133 | } else { 134 | global.isMobile = instantiate(); 135 | } 136 | 137 | })(this); 138 | -------------------------------------------------------------------------------- /assets/js/lg-zoom.min.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | !function(a,b,c,d){"use strict";var e={scale:1,zoom:!0,actualSize:!0,enableZoomAfter:300},f=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.core.s.zoom&&this.core.doCss()&&(this.init(),this.zoomabletimeout=!1,this.pageX=a(b).width()/2,this.pageY=a(b).height()/2+a(b).scrollTop()),this};f.prototype.init=function(){var c=this,d='';c.core.s.actualSize&&(d+=''),this.core.$outer.find(".lg-toolbar").append(d),c.core.$el.on("onSlideItemLoad.lg.tm.zoom",function(b,d,e){var f=c.core.s.enableZoomAfter+e;a("body").hasClass("lg-from-hash")&&e?f=0:a("body").removeClass("lg-from-hash"),c.zoomabletimeout=setTimeout(function(){c.core.$slide.eq(d).addClass("lg-zoomable")},f+30)});var e=1,f=function(d){var e,f,g=c.core.$outer.find(".lg-current .lg-image"),h=(a(b).width()-g.width())/2,i=(a(b).height()-g.height())/2+a(b).scrollTop();e=c.pageX-h,f=c.pageY-i;var j=(d-1)*e,k=(d-1)*f;g.css("transform","scale3d("+d+", "+d+", 1)").attr("data-scale",d),g.parent().css({left:-j+"px",top:-k+"px"}).attr("data-x",j).attr("data-y",k)},g=function(){e>1?c.core.$outer.addClass("lg-zoomed"):c.resetZoom(),1>e&&(e=1),f(e)},h=function(d,f,h,i){var j,k=f.width();j=c.core.s.dynamic?c.core.s.dynamicEl[h].width||f[0].naturalWidth||k:c.core.$items.eq(h).attr("data-width")||f[0].naturalWidth||k;var l;c.core.$outer.hasClass("lg-zoomed")?e=1:j>k&&(l=j/k,e=l||2),i?(c.pageX=a(b).width()/2,c.pageY=a(b).height()/2+a(b).scrollTop()):(c.pageX=d.pageX||d.originalEvent.targetTouches[0].pageX,c.pageY=d.pageY||d.originalEvent.targetTouches[0].pageY),g(),setTimeout(function(){c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")},10)},i=!1;c.core.$el.on("onAferAppendSlide.lg.tm.zoom",function(a,b){var d=c.core.$slide.eq(b).find(".lg-image");d.on("dblclick",function(a){h(a,d,b)}),d.on("touchstart",function(a){i?(clearTimeout(i),i=null,h(a,d,b)):i=setTimeout(function(){i=null},300),a.preventDefault()})}),a(b).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom",function(){c.pageX=a(b).width()/2,c.pageY=a(b).height()/2+a(b).scrollTop(),f(e)}),a("#lg-zoom-out").on("click.lg",function(){c.core.$outer.find(".lg-current .lg-image").length&&(e-=c.core.s.scale,g())}),a("#lg-zoom-in").on("click.lg",function(){c.core.$outer.find(".lg-current .lg-image").length&&(e+=c.core.s.scale,g())}),a("#lg-actual-size").on("click.lg",function(a){h(a,c.core.$slide.eq(c.core.index).find(".lg-image"),c.core.index,!0)}),c.core.$el.on("onBeforeSlide.lg.tm",function(){e=1,c.resetZoom()}),c.core.isTouch||c.zoomDrag(),c.core.isTouch&&c.zoomSwipe()},f.prototype.resetZoom=function(){this.core.$outer.removeClass("lg-zoomed"),this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"),this.core.$slide.find(".lg-image").removeAttr("style data-scale"),this.pageX=a(b).width()/2,this.pageY=a(b).height()/2+a(b).scrollTop()},f.prototype.zoomSwipe=function(){var a=this,b={},c={},d=!1,e=!1,f=!1;a.core.$slide.on("touchstart.lg",function(c){if(a.core.$outer.hasClass("lg-zoomed")){var d=a.core.$slide.eq(a.core.index).find(".lg-object");f=d.outerHeight()*d.attr("data-scale")>a.core.$outer.find(".lg").height(),e=d.outerWidth()*d.attr("data-scale")>a.core.$outer.find(".lg").width(),(e||f)&&(c.preventDefault(),b={x:c.originalEvent.targetTouches[0].pageX,y:c.originalEvent.targetTouches[0].pageY})}}),a.core.$slide.on("touchmove.lg",function(g){if(a.core.$outer.hasClass("lg-zoomed")){var h,i,j=a.core.$slide.eq(a.core.index).find(".lg-img-wrap");g.preventDefault(),d=!0,c={x:g.originalEvent.targetTouches[0].pageX,y:g.originalEvent.targetTouches[0].pageY},a.core.$outer.addClass("lg-zoom-dragging"),i=f?-Math.abs(j.attr("data-y"))+(c.y-b.y):-Math.abs(j.attr("data-y")),h=e?-Math.abs(j.attr("data-x"))+(c.x-b.x):-Math.abs(j.attr("data-x")),(Math.abs(c.x-b.x)>15||Math.abs(c.y-b.y)>15)&&j.css({left:h+"px",top:i+"px"})}}),a.core.$slide.on("touchend.lg",function(){a.core.$outer.hasClass("lg-zoomed")&&d&&(d=!1,a.core.$outer.removeClass("lg-zoom-dragging"),a.touchendZoom(b,c,e,f))})},f.prototype.zoomDrag=function(){var c=this,d={},e={},f=!1,g=!1,h=!1,i=!1;c.core.$slide.on("mousedown.lg.zoom",function(b){var e=c.core.$slide.eq(c.core.index).find(".lg-object");i=e.outerHeight()*e.attr("data-scale")>c.core.$outer.find(".lg").height(),h=e.outerWidth()*e.attr("data-scale")>c.core.$outer.find(".lg").width(),c.core.$outer.hasClass("lg-zoomed")&&a(b.target).hasClass("lg-object")&&(h||i)&&(b.preventDefault(),d={x:b.pageX,y:b.pageY},f=!0,c.core.$outer.scrollLeft+=1,c.core.$outer.scrollLeft-=1,c.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))}),a(b).on("mousemove.lg.zoom",function(a){if(f){var b,j,k=c.core.$slide.eq(c.core.index).find(".lg-img-wrap");g=!0,e={x:a.pageX,y:a.pageY},c.core.$outer.addClass("lg-zoom-dragging"),j=i?-Math.abs(k.attr("data-y"))+(e.y-d.y):-Math.abs(k.attr("data-y")),b=h?-Math.abs(k.attr("data-x"))+(e.x-d.x):-Math.abs(k.attr("data-x")),k.css({left:b+"px",top:j+"px"})}}),a(b).on("mouseup.lg.zoom",function(a){f&&(f=!1,c.core.$outer.removeClass("lg-zoom-dragging"),!g||d.x===e.x&&d.y===e.y||(e={x:a.pageX,y:a.pageY},c.touchendZoom(d,e,h,i)),g=!1),c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")})},f.prototype.touchendZoom=function(a,b,c,d){var e=this,f=e.core.$slide.eq(e.core.index).find(".lg-img-wrap"),g=e.core.$slide.eq(e.core.index).find(".lg-object"),h=-Math.abs(f.attr("data-x"))+(b.x-a.x),i=-Math.abs(f.attr("data-y"))+(b.y-a.y),j=(e.core.$outer.find(".lg").height()-g.outerHeight())/2,k=Math.abs(g.outerHeight()*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").height()+j),l=(e.core.$outer.find(".lg").width()-g.outerWidth())/2,m=Math.abs(g.outerWidth()*Math.abs(g.attr("data-scale"))-e.core.$outer.find(".lg").width()+l);(Math.abs(b.x-a.x)>15||Math.abs(b.y-a.y)>15)&&(d&&(-k>=i?i=-k:i>=-j&&(i=-j)),c&&(-m>=h?h=-m:h>=-l&&(h=-l)),d?f.attr("data-y",Math.abs(i)):i=-Math.abs(f.attr("data-y")),c?f.attr("data-x",Math.abs(h)):h=-Math.abs(f.attr("data-x")),f.css({left:h+"px",top:i+"px"}))},f.prototype.destroy=function(){var c=this;c.core.$el.off(".lg.zoom"),a(b).off(".lg.zoom"),c.core.$slide.off(".lg.zoom"),c.core.$el.off(".lg.tm.zoom"),c.resetZoom(),clearTimeout(c.zoomabletimeout),c.zoomabletimeout=!1},a.fn.lightGallery.modules.zoom=f}(jQuery,window,document); -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/tether-theme-arrows.min.css: -------------------------------------------------------------------------------- 1 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-center .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-middle .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-top .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-middle .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-top .tether-content{margin-bottom:16px}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-left .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-right.tether-element-attached-middle .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-left .tether-content{margin-right:16px}.tether-element,.tether-element *,.tether-element :after,.tether-element :before,.tether-element:after,.tether-element:before{box-sizing:border-box}.tether-element{position:absolute;display:none}.tether-element.tether-open{display:block}.tether-element.tether-theme-arrows{max-width:100%;max-height:100%}.tether-element.tether-theme-arrows .tether-content{border-radius:5px;position:relative;font-family:inherit;background:#fff;color:inherit;padding:1em;font-size:1.1em;line-height:1.5em;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-filter:drop-shadow(0 1px 4px rgba(0, 0, 0, .2));filter:drop-shadow(0 1px 4px rgba(0, 0, 0, .2))}.tether-element.tether-theme-arrows .tether-content:before{content:"";display:block;position:absolute;width:0;height:0;border-color:transparent;border-width:16px;border-style:solid}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-center .tether-content:before{top:100%;left:50%;margin-left:-16px;border-top-color:#fff;border-bottom:0}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-center .tether-content{margin-top:16px}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-center .tether-content:before{bottom:100%;left:50%;margin-left:-16px;border-bottom-color:#fff;border-top:0}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-right .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-left.tether-element-attached-middle .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content{margin-left:16px}.tether-element.tether-theme-arrows.tether-element-attached-right.tether-element-attached-middle .tether-content:before{left:100%;top:50%;margin-top:-16px;border-left-color:#fff;border-right:0}.tether-element.tether-theme-arrows.tether-element-attached-left.tether-element-attached-middle .tether-content:before{right:100%;top:50%;margin-top:-16px;border-right-color:#fff;border-left:0}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-bottom .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-middle .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-bottom .tether-content,.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-middle .tether-content{margin-top:16px}.tether-element.tether-theme-arrows.tether-element-attached-left.tether-target-attached-center .tether-content{left:-32px}.tether-element.tether-theme-arrows.tether-element-attached-right.tether-target-attached-center .tether-content{left:32px}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-middle .tether-content:before{bottom:100%;left:16px;border-bottom-color:#fff;border-top:0}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-middle .tether-content:before{bottom:100%;right:16px;border-bottom-color:#fff;border-top:0}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-middle .tether-content:before{top:100%;left:16px;border-top-color:#fff;border-bottom:0}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-middle .tether-content:before{top:100%;right:16px;border-top-color:#fff;border-bottom:0}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-bottom .tether-content:before{bottom:100%;left:16px;border-bottom-color:#fff;border-top:0}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-bottom .tether-content:before{bottom:100%;right:16px;border-bottom-color:#fff;border-top:0}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-top .tether-content:before{top:100%;left:16px;border-top-color:#fff;border-bottom:0}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-top .tether-content:before{top:100%;right:16px;border-top-color:#fff;border-bottom:0}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-left .tether-content:before{top:16px;left:100%;border-left-color:#fff;border-right:0}.tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content:before{top:16px;right:100%;border-right-color:#fff;border-left:0}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-left .tether-content:before{bottom:16px;left:100%;border-left-color:#fff;border-right:0}.tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-right .tether-content:before{bottom:16px;right:100%;border-right-color:#fff;border-left:0} -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/tether-theme-arrows-dark.min.css: -------------------------------------------------------------------------------- 1 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-center .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-middle .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-top .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-middle .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-top .tether-content{margin-bottom:16px}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-left .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-right.tether-element-attached-middle .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-left .tether-content{margin-right:16px}.tether-element,.tether-element *,.tether-element :after,.tether-element :before,.tether-element:after,.tether-element:before{box-sizing:border-box}.tether-element{position:absolute;display:none}.tether-element.tether-open{display:block}.tether-element.tether-theme-arrows-dark{max-width:100%;max-height:100%}.tether-element.tether-theme-arrows-dark .tether-content{border-radius:5px;position:relative;font-family:inherit;background:#000;color:#fff;padding:1em;font-size:1.1em;line-height:1.5em}.tether-element.tether-theme-arrows-dark .tether-content:before{content:"";display:block;position:absolute;width:0;height:0;border-color:transparent;border-width:16px;border-style:solid}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-center .tether-content:before{top:100%;left:50%;margin-left:-16px;border-top-color:#000;border-bottom:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-center .tether-content{margin-top:16px}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-center .tether-content:before{bottom:100%;left:50%;margin-left:-16px;border-bottom-color:#000;border-top:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-right .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-left.tether-element-attached-middle .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content{margin-left:16px}.tether-element.tether-theme-arrows-dark.tether-element-attached-right.tether-element-attached-middle .tether-content:before{left:100%;top:50%;margin-top:-16px;border-left-color:#000;border-right:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-left.tether-element-attached-middle .tether-content:before{right:100%;top:50%;margin-top:-16px;border-right-color:#000;border-left:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-bottom .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-middle .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-bottom .tether-content,.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-middle .tether-content{margin-top:16px}.tether-element.tether-theme-arrows-dark.tether-element-attached-left.tether-target-attached-center .tether-content{left:-32px}.tether-element.tether-theme-arrows-dark.tether-element-attached-right.tether-target-attached-center .tether-content{left:32px}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-middle .tether-content:before{bottom:100%;left:16px;border-bottom-color:#000;border-top:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-middle .tether-content:before{bottom:100%;right:16px;border-bottom-color:#000;border-top:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-middle .tether-content:before{top:100%;left:16px;border-top-color:#000;border-bottom:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-middle .tether-content:before{top:100%;right:16px;border-top-color:#000;border-bottom:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-bottom .tether-content:before{bottom:100%;left:16px;border-bottom-color:#000;border-top:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-bottom .tether-content:before{bottom:100%;right:16px;border-bottom-color:#000;border-top:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-top .tether-content:before{top:100%;left:16px;border-top-color:#000;border-bottom:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-top .tether-content:before{top:100%;right:16px;border-top-color:#000;border-bottom:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-left .tether-content:before{top:16px;left:100%;border-left-color:#000;border-right:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content:before{top:16px;right:100%;border-right-color:#000;border-left:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-left .tether-content:before{bottom:16px;left:100%;border-left-color:#000;border-right:0}.tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-right .tether-content:before{bottom:16px;right:100%;border-right-color:#000;border-left:0} -------------------------------------------------------------------------------- /assets/js/lg-autoplay.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | /** 5 | * Autoplay Plugin 6 | * @version 1.2.0 7 | * @author Sachin N - @sachinchoolur 8 | * @license MIT License (MIT) 9 | */ 10 | 11 | (function($, window, document, undefined) { 12 | 13 | 'use strict'; 14 | 15 | var defaults = { 16 | autoplay: false, 17 | pause: 5000, 18 | progressBar: true, 19 | fourceAutoplay: false, 20 | autoplayControls: true, 21 | appendAutoplayControlsTo: '.lg-toolbar' 22 | }; 23 | 24 | /** 25 | * Creates the autoplay plugin. 26 | * @param {object} element - lightGallery element 27 | */ 28 | var Autoplay = function(element) { 29 | 30 | this.core = $(element).data('lightGallery'); 31 | 32 | this.$el = $(element); 33 | 34 | // Execute only if items are above 1 35 | if (this.core.$items.length < 2) { 36 | return false; 37 | } 38 | 39 | this.core.s = $.extend({}, defaults, this.core.s); 40 | this.interval = false; 41 | 42 | // Identify if slide happened from autoplay 43 | this.fromAuto = true; 44 | 45 | // Identify if autoplay canceled from touch/drag 46 | this.canceledOnTouch = false; 47 | 48 | // save fourceautoplay value 49 | this.fourceAutoplayTemp = this.core.s.fourceAutoplay; 50 | 51 | // do not allow progress bar if browser does not support css3 transitions 52 | if (!this.core.doCss()) { 53 | this.core.s.progressBar = false; 54 | } 55 | 56 | this.init(); 57 | 58 | return this; 59 | }; 60 | 61 | Autoplay.prototype.init = function() { 62 | var _this = this; 63 | 64 | // append autoplay controls 65 | if (_this.core.s.autoplayControls) { 66 | _this.controls(); 67 | } 68 | 69 | // Create progress bar 70 | if (_this.core.s.progressBar) { 71 | _this.core.$outer.find('.lg').append('
'); 72 | } 73 | 74 | // set progress 75 | _this.progress(); 76 | 77 | // Start autoplay 78 | if (_this.core.s.autoplay) { 79 | _this.startlAuto(); 80 | } 81 | 82 | // cancel interval on touchstart and dragstart 83 | _this.$el.on('onDragstart.lg.tm touchstart.lg.tm', function() { 84 | if (_this.interval) { 85 | _this.cancelAuto(); 86 | _this.canceledOnTouch = true; 87 | } 88 | }); 89 | 90 | // restore autoplay if autoplay canceled from touchstart / dragstart 91 | _this.$el.on('onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm', function() { 92 | if (!_this.interval && _this.canceledOnTouch) { 93 | _this.startlAuto(); 94 | _this.canceledOnTouch = false; 95 | } 96 | }); 97 | 98 | }; 99 | 100 | Autoplay.prototype.progress = function() { 101 | 102 | var _this = this; 103 | var _$progressBar; 104 | var _$progress; 105 | 106 | _this.$el.on('onBeforeSlide.lg.tm', function() { 107 | 108 | // start progress bar animation 109 | if (_this.core.s.progressBar && _this.fromAuto) { 110 | _$progressBar = _this.core.$outer.find('.lg-progress-bar'); 111 | _$progress = _this.core.$outer.find('.lg-progress'); 112 | if (_this.interval) { 113 | _$progress.removeAttr('style'); 114 | _$progressBar.removeClass('lg-start'); 115 | setTimeout(function() { 116 | _$progress.css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s'); 117 | _$progressBar.addClass('lg-start'); 118 | }, 20); 119 | } 120 | } 121 | 122 | // Remove setinterval if slide is triggered manually and fourceautoplay is false 123 | if (!_this.fromAuto && !_this.core.s.fourceAutoplay) { 124 | _this.cancelAuto(); 125 | } 126 | 127 | _this.fromAuto = false; 128 | 129 | }); 130 | }; 131 | 132 | // Manage autoplay via play/stop buttons 133 | Autoplay.prototype.controls = function() { 134 | var _this = this; 135 | var _html = ''; 136 | 137 | // Append autoplay controls 138 | $(this.core.s.appendAutoplayControlsTo).append(_html); 139 | 140 | _this.core.$outer.find('.lg-autoplay-button').on('click.lg', function() { 141 | if ($(_this.core.$outer).hasClass('lg-show-autoplay')) { 142 | _this.cancelAuto(); 143 | _this.core.s.fourceAutoplay = false; 144 | } else { 145 | if (!_this.interval) { 146 | _this.startlAuto(); 147 | _this.core.s.fourceAutoplay = _this.fourceAutoplayTemp; 148 | } 149 | } 150 | }); 151 | }; 152 | 153 | // Autostart gallery 154 | Autoplay.prototype.startlAuto = function() { 155 | var _this = this; 156 | 157 | _this.core.$outer.find('.lg-progress').css('transition', 'width ' + (_this.core.s.speed + _this.core.s.pause) + 'ms ease 0s'); 158 | _this.core.$outer.addClass('lg-show-autoplay'); 159 | _this.core.$outer.find('.lg-progress-bar').addClass('lg-start'); 160 | 161 | _this.interval = setInterval(function() { 162 | if (_this.core.index + 1 < _this.core.$items.length) { 163 | _this.core.index++; 164 | } else { 165 | _this.core.index = 0; 166 | } 167 | 168 | _this.fromAuto = true; 169 | _this.core.slide(_this.core.index, false, false); 170 | }, _this.core.s.speed + _this.core.s.pause); 171 | }; 172 | 173 | // cancel Autostart 174 | Autoplay.prototype.cancelAuto = function() { 175 | clearInterval(this.interval); 176 | this.interval = false; 177 | this.core.$outer.find('.lg-progress').removeAttr('style'); 178 | this.core.$outer.removeClass('lg-show-autoplay'); 179 | this.core.$outer.find('.lg-progress-bar').removeClass('lg-start'); 180 | }; 181 | 182 | Autoplay.prototype.destroy = function() { 183 | 184 | this.cancelAuto(); 185 | this.core.$outer.find('.lg-progress-bar').remove(); 186 | }; 187 | 188 | $.fn.lightGallery.modules.autoplay = Autoplay; 189 | 190 | })(jQuery, window, document); 191 | -------------------------------------------------------------------------------- /assets/js/lg-thumbnail.min.js: -------------------------------------------------------------------------------- 1 | /*! lightgallery - v1.2.21 - 2016-06-28 2 | * http://sachinchoolur.github.io/lightGallery/ 3 | * Copyright (c) 2016 Sachin N; Licensed Apache 2.0 */ 4 | !function(a,b,c,d){"use strict";var e={thumbnail:!0,animateThumb:!0,currentPagerPosition:"middle",thumbWidth:100,thumbContHeight:100,thumbMargin:5,exThumbImage:!1,showThumbByDefault:!0,toogleThumb:!0,pullCaptionUp:!0,enableThumbDrag:!0,enableThumbSwipe:!0,swipeThreshold:50,loadYoutubeThumbnail:!0,youtubeThumbSize:1,loadVimeoThumbnail:!0,vimeoThumbSize:"thumbnail_small",loadDailymotionThumbnail:!0},f=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.$el=a(b),this.$thumbOuter=null,this.thumbOuterWidth=0,this.thumbTotalWidth=this.core.$items.length*(this.core.s.thumbWidth+this.core.s.thumbMargin),this.thumbIndex=this.core.index,this.left=0,this.init(),this};f.prototype.init=function(){var a=this;this.core.s.thumbnail&&this.core.$items.length>1&&(this.core.s.showThumbByDefault&&setTimeout(function(){a.core.$outer.addClass("lg-thumb-open")},700),this.core.s.pullCaptionUp&&this.core.$outer.addClass("lg-pull-caption-up"),this.build(),this.core.s.animateThumb?(this.core.s.enableThumbDrag&&!this.core.isTouch&&this.core.doCss()&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.core.isTouch&&this.core.doCss()&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toogle(),this.thumbkeyPress())},f.prototype.build=function(){function c(a,b,c){var d,h=e.core.isVideo(a,c)||{},i="";h.youtube||h.vimeo||h.dailymotion?h.youtube?d=e.core.s.loadYoutubeThumbnail?"//img.youtube.com/vi/"+h.youtube[1]+"/"+e.core.s.youtubeThumbSize+".jpg":b:h.vimeo?e.core.s.loadVimeoThumbnail?(d="//i.vimeocdn.com/video/error_"+g+".jpg",i=h.vimeo[1]):d=b:h.dailymotion&&(d=e.core.s.loadDailymotionThumbnail?"//www.dailymotion.com/thumbnail/video/"+h.dailymotion[1]:b):d=b,f+='
',i=""}var d,e=this,f="",g="",h='
';switch(this.core.s.vimeoThumbSize){case"thumbnail_large":g="640";break;case"thumbnail_medium":g="200x150";break;case"thumbnail_small":g="100x75"}if(e.core.$outer.addClass("lg-has-thumb"),e.core.$outer.find(".lg").append(h),e.$thumbOuter=e.core.$outer.find(".lg-thumb-outer"),e.thumbOuterWidth=e.$thumbOuter.width(),e.core.s.animateThumb&&e.core.$outer.find(".lg-thumb").css({width:e.thumbTotalWidth+"px",position:"relative"}),this.core.s.animateThumb&&e.$thumbOuter.css("height",e.core.s.thumbContHeight+"px"),e.core.s.dynamic)for(var i=0;ithis.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(b.hasClass("on")||this.core.$outer.find(".lg-thumb").css("transition-duration",this.core.s.speed+"ms"),this.core.doCss()||b.animate({left:-this.left+"px"},this.core.s.speed)):this.core.doCss()||b.css("left",-this.left+"px"),this.setTranslate(this.left)}},f.prototype.enableThumbDrag=function(){var c=this,d=0,e=0,f=!1,g=!1,h=0;c.$thumbOuter.addClass("lg-grab"),c.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb",function(a){c.thumbTotalWidth>c.thumbOuterWidth&&(a.preventDefault(),d=a.pageX,f=!0,c.core.$outer.scrollLeft+=1,c.core.$outer.scrollLeft-=1,c.thumbClickable=!1,c.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))}),a(b).on("mousemove.lg.thumb",function(a){f&&(h=c.left,g=!0,e=a.pageX,c.$thumbOuter.addClass("lg-dragging"),h-=e-d,h>c.thumbTotalWidth-c.thumbOuterWidth&&(h=c.thumbTotalWidth-c.thumbOuterWidth),0>h&&(h=0),c.setTranslate(h))}),a(b).on("mouseup.lg.thumb",function(){g?(g=!1,c.$thumbOuter.removeClass("lg-dragging"),c.left=h,Math.abs(e-d)a.thumbOuterWidth&&(c.preventDefault(),b=c.originalEvent.targetTouches[0].pageX,a.thumbClickable=!1)}),a.core.$outer.find(".lg-thumb").on("touchmove.lg",function(f){a.thumbTotalWidth>a.thumbOuterWidth&&(f.preventDefault(),c=f.originalEvent.targetTouches[0].pageX,d=!0,a.$thumbOuter.addClass("lg-dragging"),e=a.left,e-=c-b,e>a.thumbTotalWidth-a.thumbOuterWidth&&(e=a.thumbTotalWidth-a.thumbOuterWidth),0>e&&(e=0),a.setTranslate(e))}),a.core.$outer.find(".lg-thumb").on("touchend.lg",function(){a.thumbTotalWidth>a.thumbOuterWidth&&d?(d=!1,a.$thumbOuter.removeClass("lg-dragging"),Math.abs(c-b)'),a.core.$outer.find(".lg-toogle-thumb").on("click.lg",function(){a.core.$outer.toggleClass("lg-thumb-open")}))},f.prototype.thumbkeyPress=function(){var c=this;a(b).on("keydown.lg.thumb",function(a){38===a.keyCode?(a.preventDefault(),c.core.$outer.addClass("lg-thumb-open")):40===a.keyCode&&(a.preventDefault(),c.core.$outer.removeClass("lg-thumb-open"))})},f.prototype.destroy=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(a(b).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"),this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},a.fn.lightGallery.modules.Thumbnail=f}(jQuery,window,document); -------------------------------------------------------------------------------- /assets/plugins/retina/retina.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Retina.js v2.1.0 3 | * 4 | * Copyright 2016 Axial, LLC 5 | * Released under the MIT license 6 | * 7 | * Retina.js is an open source script that makes it easy to serve 8 | * high-resolution images to devices with retina displays. 9 | */ 10 | 'use strict'; 11 | 12 | Object.defineProperty(exports, "__esModule", { 13 | value: true 14 | }); 15 | /* 16 | * Determine whether or not `window` is available. 17 | */ 18 | var hasWindow = typeof window !== 'undefined'; 19 | 20 | /* 21 | * Get the device pixel ratio per our environment. 22 | * Default to 1. 23 | */ 24 | var environment = hasWindow ? window.devicePixelRatio || 1 : 1; 25 | 26 | /* 27 | * Define a pattern for capturing src url suffixes. 28 | */ 29 | var srcReplace = /(\.[A-z]{3,4}\/?(\?.*)?)$/; 30 | var inlineReplace = /url\(('|")?([^\)'"]+)('|")?\)/i; 31 | 32 | /* 33 | * Define our selectors for elements to target. 34 | */ 35 | var selector = '[data-rjs]'; 36 | 37 | /* 38 | * Define the attribute we'll use to mark an image as having been processed. 39 | */ 40 | var processedAttr = 'data-rjs-processed'; 41 | 42 | /** 43 | * Shortcut for turning some iterable object into an array. 44 | * 45 | * @param {Iterable} object Any iterable object. 46 | * 47 | * @return {Array} 48 | */ 49 | function arrayify(object) { 50 | return Array.prototype.slice.call(object); 51 | } 52 | 53 | /** 54 | * Chooses the actual image size to fetch, (for example 2 or 3) that 55 | * will be used to create a suffix like "@2x" or "@3x". 56 | * 57 | * @param {String|Number} cap The number the user provided indicating that 58 | * they have prepared images up to this size. 59 | * 60 | * @return {Number} The number we'll be using to create a suffix. 61 | */ 62 | function chooseCap(cap) { 63 | var numericCap = parseInt(cap, 10); 64 | 65 | /* 66 | * If the environment's device pixel ratio is less than what the user 67 | * provided, we'll only grab images at that size. 68 | */ 69 | if (environment < numericCap) { 70 | return environment; 71 | 72 | /* 73 | * If the device pixel ratio is greater than or equal to what the 74 | * user provided, we'll use what the user provided. 75 | */ 76 | } else { 77 | return numericCap; 78 | } 79 | } 80 | 81 | /** 82 | * Makes sure that, since we are going to swap out the source of an image, 83 | * the image does not change size on the page. 84 | * 85 | * @param {Element} image An image element in the DOM. 86 | * 87 | * @return {Element} The same element that was passed in. 88 | */ 89 | function forceOriginalDimensions(image) { 90 | if (!image.hasAttribute('data-no-resize')) { 91 | if (image.offsetWidth === 0 && image.offsetHeight === 0) { 92 | image.setAttribute('width', image.naturalWidth); 93 | image.setAttribute('height', image.naturalHeight); 94 | } else { 95 | image.setAttribute('width', image.offsetWidth); 96 | image.setAttribute('height', image.offsetHeight); 97 | } 98 | } 99 | return image; 100 | } 101 | 102 | /** 103 | * Determines whether the retina image actually exists on the server. 104 | * If so, swaps out the retina image for the standard one. If not, 105 | * leaves the original image alone. 106 | * 107 | * @param {Element} image An image element in the DOM. 108 | * @param {String} newSrc The url to the retina image. 109 | * 110 | * @return {undefined} 111 | */ 112 | function setSourceIfAvailable(image, retinaURL) { 113 | var imgType = image.nodeName.toLowerCase(); 114 | 115 | /* 116 | * Create a new image element and give it a load listener. When the 117 | * load listener fires, it means the URL is correct and we will then 118 | * attach it to the user's image. 119 | */ 120 | var testImage = document.createElement('img'); 121 | testImage.addEventListener('load', function () { 122 | /* 123 | * If we're dealing with an image tag, force it's dimensions 124 | * and set the source attribute. If not, go after the background-image 125 | * inline style. 126 | */ 127 | if (imgType === 'img') { 128 | forceOriginalDimensions(image).setAttribute('src', retinaURL); 129 | } else { 130 | image.style.backgroundImage = 'url(' + retinaURL + ')'; 131 | } 132 | }); 133 | 134 | /* 135 | * Attach the retina URL to our proxy image to load in the new 136 | * image resource. 137 | */ 138 | testImage.setAttribute('src', retinaURL); 139 | 140 | /* 141 | * Mark our image as processed so that it won't be processed again. 142 | */ 143 | image.setAttribute(processedAttr, true); 144 | } 145 | 146 | /** 147 | * Attempts to do an image url swap on a given image. 148 | * 149 | * @param {Element} image An image in the DOM. 150 | * @param {String} src The original image source attribute. 151 | * @param {String|Number} rjs The pixel density cap for images provided. 152 | * 153 | * @return {undefined} 154 | */ 155 | function dynamicSwapImage(image, src) { 156 | var rjs = arguments.length <= 2 || arguments[2] === undefined ? 1 : arguments[2]; 157 | 158 | var cap = chooseCap(rjs); 159 | 160 | /* 161 | * Don't do anything if the cap is less than 2 or there is no src. 162 | */ 163 | if (src && cap > 1) { 164 | var newSrc = src.replace(srcReplace, '@' + cap + 'x$1'); 165 | setSourceIfAvailable(image, newSrc); 166 | } 167 | } 168 | 169 | /** 170 | * Performs an image url swap on a given image with a provided url. 171 | * 172 | * @param {Element} image An image in the DOM. 173 | * @param {String} src The original image source attribute. 174 | * @param {String} hdsrc The path for a 2x image. 175 | * 176 | * @return {undefined} 177 | */ 178 | function manualSwapImage(image, src, hdsrc) { 179 | if (environment > 1) { 180 | setSourceIfAvailable(image, hdsrc); 181 | } 182 | } 183 | 184 | /** 185 | * Collects all images matching our selector, and converts our 186 | * NodeList into an Array so that Array methods will be available to it. 187 | * 188 | * @param {Iterable} images Optional. An Array, jQuery selection, or NodeList 189 | * of elements to affect with retina.js. 190 | * 191 | * @return {Iterable} Contains all elements matching our selector. 192 | */ 193 | function getImages(images) { 194 | if (!images) { 195 | return typeof document !== 'undefined' ? arrayify(document.querySelectorAll(selector)) : []; 196 | } else { 197 | return typeof images.forEach === 'function' ? images : arrayify(images); 198 | } 199 | } 200 | 201 | /** 202 | * Converts a string like "url(hello.png)" into "hello.png". 203 | * 204 | * @param {Element} img An HTML element with a background image. 205 | * 206 | * @return {String} 207 | */ 208 | function cleanBgImg(img) { 209 | return img.style.backgroundImage.replace(inlineReplace, '$2'); 210 | } 211 | 212 | /** 213 | * Gets all participating images and dynamically swaps out each one for its 214 | * retina equivalent taking into account the environment capabilities and 215 | * the densities for which the user has provided images. 216 | * 217 | * @param {Iterable} images Optional. An Array, jQuery selection, or NodeList 218 | * of elements to affect with retina.js. If not 219 | * provided, retina.js will grab all images on the 220 | * page. 221 | * 222 | * @return {undefined} 223 | */ 224 | function retina(images) { 225 | getImages(images).forEach(function (img) { 226 | if (!img.getAttribute(processedAttr)) { 227 | var isImg = img.nodeName.toLowerCase() === 'img'; 228 | var src = isImg ? img.getAttribute('src') : cleanBgImg(img); 229 | var rjs = img.getAttribute('data-rjs'); 230 | var rjsIsNumber = !isNaN(parseInt(rjs, 10)); 231 | 232 | /* 233 | * If the user provided a number, dynamically swap out the image. 234 | * If the user provided a url, do it manually. 235 | */ 236 | if (rjsIsNumber) { 237 | dynamicSwapImage(img, src, rjs); 238 | } else { 239 | manualSwapImage(img, src, rjs); 240 | } 241 | } 242 | }); 243 | } 244 | 245 | /* 246 | * If this environment has `window`, activate the plugin. 247 | */ 248 | if (hasWindow) { 249 | window.addEventListener('load', retina); 250 | window.retinajs = retina; 251 | } 252 | 253 | exports.default = retina; -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/tether-theme-arrows-dark.css: -------------------------------------------------------------------------------- 1 | .tether-element, .tether-element:after, .tether-element:before, .tether-element *, .tether-element *:after, .tether-element *:before { 2 | box-sizing: border-box; } 3 | 4 | .tether-element { 5 | position: absolute; 6 | display: none; } 7 | .tether-element.tether-open { 8 | display: block; } 9 | 10 | .tether-element.tether-theme-arrows-dark { 11 | max-width: 100%; 12 | max-height: 100%; } 13 | .tether-element.tether-theme-arrows-dark .tether-content { 14 | border-radius: 5px; 15 | position: relative; 16 | font-family: inherit; 17 | background: #000; 18 | color: #fff; 19 | padding: 1em; 20 | font-size: 1.1em; 21 | line-height: 1.5em; } 22 | .tether-element.tether-theme-arrows-dark .tether-content:before { 23 | content: ""; 24 | display: block; 25 | position: absolute; 26 | width: 0; 27 | height: 0; 28 | border-color: transparent; 29 | border-width: 16px; 30 | border-style: solid; } 31 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-center .tether-content { 32 | margin-bottom: 16px; } 33 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-center .tether-content:before { 34 | top: 100%; 35 | left: 50%; 36 | margin-left: -16px; 37 | border-top-color: #000; 38 | border-bottom: 0; } 39 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-center .tether-content { 40 | margin-top: 16px; } 41 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-center .tether-content:before { 42 | bottom: 100%; 43 | left: 50%; 44 | margin-left: -16px; 45 | border-bottom-color: #000; 46 | border-top: 0; } 47 | .tether-element.tether-theme-arrows-dark.tether-element-attached-right.tether-element-attached-middle .tether-content { 48 | margin-right: 16px; } 49 | .tether-element.tether-theme-arrows-dark.tether-element-attached-right.tether-element-attached-middle .tether-content:before { 50 | left: 100%; 51 | top: 50%; 52 | margin-top: -16px; 53 | border-left-color: #000; 54 | border-right: 0; } 55 | .tether-element.tether-theme-arrows-dark.tether-element-attached-left.tether-element-attached-middle .tether-content { 56 | margin-left: 16px; } 57 | .tether-element.tether-theme-arrows-dark.tether-element-attached-left.tether-element-attached-middle .tether-content:before { 58 | right: 100%; 59 | top: 50%; 60 | margin-top: -16px; 61 | border-right-color: #000; 62 | border-left: 0; } 63 | .tether-element.tether-theme-arrows-dark.tether-element-attached-left.tether-target-attached-center .tether-content { 64 | left: -32px; } 65 | .tether-element.tether-theme-arrows-dark.tether-element-attached-right.tether-target-attached-center .tether-content { 66 | left: 32px; } 67 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-middle .tether-content { 68 | margin-top: 16px; } 69 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-middle .tether-content:before { 70 | bottom: 100%; 71 | left: 16px; 72 | border-bottom-color: #000; 73 | border-top: 0; } 74 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-middle .tether-content { 75 | margin-top: 16px; } 76 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-middle .tether-content:before { 77 | bottom: 100%; 78 | right: 16px; 79 | border-bottom-color: #000; 80 | border-top: 0; } 81 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-middle .tether-content { 82 | margin-bottom: 16px; } 83 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-middle .tether-content:before { 84 | top: 100%; 85 | left: 16px; 86 | border-top-color: #000; 87 | border-bottom: 0; } 88 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-middle .tether-content { 89 | margin-bottom: 16px; } 90 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-middle .tether-content:before { 91 | top: 100%; 92 | right: 16px; 93 | border-top-color: #000; 94 | border-bottom: 0; } 95 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-bottom .tether-content { 96 | margin-top: 16px; } 97 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-bottom .tether-content:before { 98 | bottom: 100%; 99 | left: 16px; 100 | border-bottom-color: #000; 101 | border-top: 0; } 102 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-bottom .tether-content { 103 | margin-top: 16px; } 104 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-bottom .tether-content:before { 105 | bottom: 100%; 106 | right: 16px; 107 | border-bottom-color: #000; 108 | border-top: 0; } 109 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-top .tether-content { 110 | margin-bottom: 16px; } 111 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-top .tether-content:before { 112 | top: 100%; 113 | left: 16px; 114 | border-top-color: #000; 115 | border-bottom: 0; } 116 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-top .tether-content { 117 | margin-bottom: 16px; } 118 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-top .tether-content:before { 119 | top: 100%; 120 | right: 16px; 121 | border-top-color: #000; 122 | border-bottom: 0; } 123 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-left .tether-content { 124 | margin-right: 16px; } 125 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-right.tether-target-attached-left .tether-content:before { 126 | top: 16px; 127 | left: 100%; 128 | border-left-color: #000; 129 | border-right: 0; } 130 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content { 131 | margin-left: 16px; } 132 | .tether-element.tether-theme-arrows-dark.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content:before { 133 | top: 16px; 134 | right: 100%; 135 | border-right-color: #000; 136 | border-left: 0; } 137 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-left .tether-content { 138 | margin-right: 16px; } 139 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-left .tether-content:before { 140 | bottom: 16px; 141 | left: 100%; 142 | border-left-color: #000; 143 | border-right: 0; } 144 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-right .tether-content { 145 | margin-left: 16px; } 146 | .tether-element.tether-theme-arrows-dark.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-right .tether-content:before { 147 | bottom: 16px; 148 | right: 100%; 149 | border-right-color: #000; 150 | border-left: 0; } 151 | -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/tether-theme-arrows.css: -------------------------------------------------------------------------------- 1 | .tether-element, .tether-element:after, .tether-element:before, .tether-element *, .tether-element *:after, .tether-element *:before { 2 | box-sizing: border-box; } 3 | 4 | .tether-element { 5 | position: absolute; 6 | display: none; } 7 | .tether-element.tether-open { 8 | display: block; } 9 | 10 | .tether-element.tether-theme-arrows { 11 | max-width: 100%; 12 | max-height: 100%; } 13 | .tether-element.tether-theme-arrows .tether-content { 14 | border-radius: 5px; 15 | position: relative; 16 | font-family: inherit; 17 | background: #fff; 18 | color: inherit; 19 | padding: 1em; 20 | font-size: 1.1em; 21 | line-height: 1.5em; 22 | -webkit-transform: translateZ(0); 23 | transform: translateZ(0); 24 | -webkit-filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2)); 25 | filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2)); } 26 | .tether-element.tether-theme-arrows .tether-content:before { 27 | content: ""; 28 | display: block; 29 | position: absolute; 30 | width: 0; 31 | height: 0; 32 | border-color: transparent; 33 | border-width: 16px; 34 | border-style: solid; } 35 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-center .tether-content { 36 | margin-bottom: 16px; } 37 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-center .tether-content:before { 38 | top: 100%; 39 | left: 50%; 40 | margin-left: -16px; 41 | border-top-color: #fff; 42 | border-bottom: 0; } 43 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-center .tether-content { 44 | margin-top: 16px; } 45 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-center .tether-content:before { 46 | bottom: 100%; 47 | left: 50%; 48 | margin-left: -16px; 49 | border-bottom-color: #fff; 50 | border-top: 0; } 51 | .tether-element.tether-theme-arrows.tether-element-attached-right.tether-element-attached-middle .tether-content { 52 | margin-right: 16px; } 53 | .tether-element.tether-theme-arrows.tether-element-attached-right.tether-element-attached-middle .tether-content:before { 54 | left: 100%; 55 | top: 50%; 56 | margin-top: -16px; 57 | border-left-color: #fff; 58 | border-right: 0; } 59 | .tether-element.tether-theme-arrows.tether-element-attached-left.tether-element-attached-middle .tether-content { 60 | margin-left: 16px; } 61 | .tether-element.tether-theme-arrows.tether-element-attached-left.tether-element-attached-middle .tether-content:before { 62 | right: 100%; 63 | top: 50%; 64 | margin-top: -16px; 65 | border-right-color: #fff; 66 | border-left: 0; } 67 | .tether-element.tether-theme-arrows.tether-element-attached-left.tether-target-attached-center .tether-content { 68 | left: -32px; } 69 | .tether-element.tether-theme-arrows.tether-element-attached-right.tether-target-attached-center .tether-content { 70 | left: 32px; } 71 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-middle .tether-content { 72 | margin-top: 16px; } 73 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-middle .tether-content:before { 74 | bottom: 100%; 75 | left: 16px; 76 | border-bottom-color: #fff; 77 | border-top: 0; } 78 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-middle .tether-content { 79 | margin-top: 16px; } 80 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-middle .tether-content:before { 81 | bottom: 100%; 82 | right: 16px; 83 | border-bottom-color: #fff; 84 | border-top: 0; } 85 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-middle .tether-content { 86 | margin-bottom: 16px; } 87 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-middle .tether-content:before { 88 | top: 100%; 89 | left: 16px; 90 | border-top-color: #fff; 91 | border-bottom: 0; } 92 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-middle .tether-content { 93 | margin-bottom: 16px; } 94 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-middle .tether-content:before { 95 | top: 100%; 96 | right: 16px; 97 | border-top-color: #fff; 98 | border-bottom: 0; } 99 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-bottom .tether-content { 100 | margin-top: 16px; } 101 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-bottom .tether-content:before { 102 | bottom: 100%; 103 | left: 16px; 104 | border-bottom-color: #fff; 105 | border-top: 0; } 106 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-bottom .tether-content { 107 | margin-top: 16px; } 108 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-bottom .tether-content:before { 109 | bottom: 100%; 110 | right: 16px; 111 | border-bottom-color: #fff; 112 | border-top: 0; } 113 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-top .tether-content { 114 | margin-bottom: 16px; } 115 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-top .tether-content:before { 116 | top: 100%; 117 | left: 16px; 118 | border-top-color: #fff; 119 | border-bottom: 0; } 120 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-top .tether-content { 121 | margin-bottom: 16px; } 122 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-top .tether-content:before { 123 | top: 100%; 124 | right: 16px; 125 | border-top-color: #fff; 126 | border-bottom: 0; } 127 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-left .tether-content { 128 | margin-right: 16px; } 129 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-right.tether-target-attached-left .tether-content:before { 130 | top: 16px; 131 | left: 100%; 132 | border-left-color: #fff; 133 | border-right: 0; } 134 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content { 135 | margin-left: 16px; } 136 | .tether-element.tether-theme-arrows.tether-element-attached-top.tether-element-attached-left.tether-target-attached-right .tether-content:before { 137 | top: 16px; 138 | right: 100%; 139 | border-right-color: #fff; 140 | border-left: 0; } 141 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-left .tether-content { 142 | margin-right: 16px; } 143 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-right.tether-target-attached-left .tether-content:before { 144 | bottom: 16px; 145 | left: 100%; 146 | border-left-color: #fff; 147 | border-right: 0; } 148 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-right .tether-content { 149 | margin-left: 16px; } 150 | .tether-element.tether-theme-arrows.tether-element-attached-bottom.tether-element-attached-left.tether-target-attached-right .tether-content:before { 151 | bottom: 16px; 152 | right: 100%; 153 | border-right-color: #fff; 154 | border-left: 0; } 155 | -------------------------------------------------------------------------------- /assets/plugins/vegas/vegas.min.css: -------------------------------------------------------------------------------- 1 | .vegas-overlay,.vegas-slide,.vegas-slide-inner,.vegas-timer,.vegas-wrapper{position:absolute;top:0;left:0;bottom:0;right:0;overflow:hidden;border:none;padding:0;margin:0}.vegas-overlay{opacity:.5;background:url(overlays/02.png) center center}.vegas-timer{top:auto;bottom:0;height:2px}.vegas-timer-progress{width:0;height:100%;background:#fff;-webkit-transition:width ease-out;transition:width ease-out}.vegas-timer-running .vegas-timer-progress{width:100%}.vegas-slide,.vegas-slide-inner{margin:0;padding:0;background:center center no-repeat;-webkit-transform:translateZ(0);transform:translateZ(0)}body .vegas-container{overflow:hidden!important;position:relative}.vegas-video{min-width:100%;min-height:100%;width:auto;height:auto}body.vegas-container{overflow:auto;position:static;z-index:-2}body.vegas-container>.vegas-overlay,body.vegas-container>.vegas-slide,body.vegas-container>.vegas-timer{position:fixed;z-index:-1}:root body.vegas-container>.vegas-overlay,:root body.vegas-container>.vegas-slide,_::full-page-media,_:future{bottom:-76px}.vegas-transition-blur,.vegas-transition-blur2{opacity:0;-webkit-filter:blur(32px);filter:blur(32px)}.vegas-transition-blur-in,.vegas-transition-blur2-in{opacity:1;-webkit-filter:blur(0);filter:blur(0)}.vegas-transition-blur2-out{opacity:0}.vegas-transition-burn,.vegas-transition-burn2{opacity:0;-webkit-filter:contrast(1000%) saturate(1000%);filter:contrast(1000%) saturate(1000%)}.vegas-transition-burn-in,.vegas-transition-burn2-in{opacity:1;-webkit-filter:contrast(100%) saturate(100%);filter:contrast(100%) saturate(100%)}.vegas-transition-burn2-out{opacity:0;-webkit-filter:contrast(1000%) saturate(1000%);filter:contrast(1000%) saturate(1000%)}.vegas-transition-fade,.vegas-transition-fade2{opacity:0}.vegas-transition-fade-in,.vegas-transition-fade2-in{opacity:1}.vegas-transition-fade2-out{opacity:0}.vegas-transition-flash,.vegas-transition-flash2{opacity:0;-webkit-filter:brightness(25);filter:brightness(25)}.vegas-transition-flash-in,.vegas-transition-flash2-in{opacity:1;-webkit-filter:brightness(1);filter:brightness(1)}.vegas-transition-flash2-out{opacity:0;-webkit-filter:brightness(25);filter:brightness(25)}.vegas-transition-negative,.vegas-transition-negative2{opacity:0;-webkit-filter:invert(100%);filter:invert(100%)}.vegas-transition-negative-in,.vegas-transition-negative2-in{opacity:1;-webkit-filter:invert(0);filter:invert(0)}.vegas-transition-negative2-out{opacity:0;-webkit-filter:invert(100%);filter:invert(100%)}.vegas-transition-slideDown,.vegas-transition-slideDown2{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.vegas-transition-slideDown-in,.vegas-transition-slideDown2-in{-webkit-transform:translateY(0);transform:translateY(0)}.vegas-transition-slideDown2-out{-webkit-transform:translateY(100%);transform:translateY(100%)}.vegas-transition-slideLeft,.vegas-transition-slideLeft2{-webkit-transform:translateX(100%);transform:translateX(100%)}.vegas-transition-slideLeft-in,.vegas-transition-slideLeft2-in{-webkit-transform:translateX(0);transform:translateX(0)}.vegas-transition-slideLeft2-out,.vegas-transition-slideRight,.vegas-transition-slideRight2{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.vegas-transition-slideRight-in,.vegas-transition-slideRight2-in{-webkit-transform:translateX(0);transform:translateX(0)}.vegas-transition-slideRight2-out{-webkit-transform:translateX(100%);transform:translateX(100%)}.vegas-transition-slideUp,.vegas-transition-slideUp2{-webkit-transform:translateY(100%);transform:translateY(100%)}.vegas-transition-slideUp-in,.vegas-transition-slideUp2-in{-webkit-transform:translateY(0);transform:translateY(0)}.vegas-transition-slideUp2-out{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.vegas-transition-swirlLeft,.vegas-transition-swirlLeft2{-webkit-transform:scale(2) rotate(35deg);transform:scale(2) rotate(35deg);opacity:0}.vegas-transition-swirlLeft-in,.vegas-transition-swirlLeft2-in{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0);opacity:1}.vegas-transition-swirlLeft2-out,.vegas-transition-swirlRight,.vegas-transition-swirlRight2{-webkit-transform:scale(2) rotate(-35deg);transform:scale(2) rotate(-35deg);opacity:0}.vegas-transition-swirlRight-in,.vegas-transition-swirlRight2-in{-webkit-transform:scale(1) rotate(0);transform:scale(1) rotate(0);opacity:1}.vegas-transition-swirlRight2-out{-webkit-transform:scale(2) rotate(35deg);transform:scale(2) rotate(35deg);opacity:0}.vegas-transition-zoomIn,.vegas-transition-zoomIn2{-webkit-transform:scale(0);transform:scale(0);opacity:0}.vegas-transition-zoomIn-in,.vegas-transition-zoomIn2-in{-webkit-transform:scale(1);transform:scale(1);opacity:1}.vegas-transition-zoomIn2-out,.vegas-transition-zoomOut,.vegas-transition-zoomOut2{-webkit-transform:scale(2);transform:scale(2);opacity:0}.vegas-transition-zoomOut-in,.vegas-transition-zoomOut2-in{-webkit-transform:scale(1);transform:scale(1);opacity:1}.vegas-transition-zoomOut2-out{-webkit-transform:scale(0);transform:scale(0);opacity:0}.vegas-animation-kenburns{-webkit-animation:kenburns ease-out;animation:kenburns ease-out}@-webkit-keyframes kenburns{0%{-webkit-transform:scale(1.5);transform:scale(1.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes kenburns{0%{-webkit-transform:scale(1.5);transform:scale(1.5)}100%{-webkit-transform:scale(1);transform:scale(1)}}.vegas-animation-kenburnsDownLeft{-webkit-animation:kenburnsDownLeft ease-out;animation:kenburnsDownLeft ease-out}@-webkit-keyframes kenburnsDownLeft{0%{-webkit-transform:scale(1.5) translate(10%,-10%);transform:scale(1.5) translate(10%,-10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}@keyframes kenburnsDownLeft{0%{-webkit-transform:scale(1.5) translate(10%,-10%);transform:scale(1.5) translate(10%,-10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}.vegas-animation-kenburnsDownRight{-webkit-animation:kenburnsDownRight ease-out;animation:kenburnsDownRight ease-out}@-webkit-keyframes kenburnsDownRight{0%{-webkit-transform:scale(1.5) translate(-10%,-10%);transform:scale(1.5) translate(-10%,-10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}@keyframes kenburnsDownRight{0%{-webkit-transform:scale(1.5) translate(-10%,-10%);transform:scale(1.5) translate(-10%,-10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}.vegas-animation-kenburnsDown{-webkit-animation:kenburnsDown ease-out;animation:kenburnsDown ease-out}@-webkit-keyframes kenburnsDown{0%{-webkit-transform:scale(1.5) translate(0,-10%);transform:scale(1.5) translate(0,-10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}@keyframes kenburnsDown{0%{-webkit-transform:scale(1.5) translate(0,-10%);transform:scale(1.5) translate(0,-10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}.vegas-animation-kenburnsLeft{-webkit-animation:kenburnsLeft ease-out;animation:kenburnsLeft ease-out}@-webkit-keyframes kenburnsLeft{0%{-webkit-transform:scale(1.5) translate(10%,0);transform:scale(1.5) translate(10%,0)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}@keyframes kenburnsLeft{0%{-webkit-transform:scale(1.5) translate(10%,0);transform:scale(1.5) translate(10%,0)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}.vegas-animation-kenburnsRight{-webkit-animation:kenburnsRight ease-out;animation:kenburnsRight ease-out}@-webkit-keyframes kenburnsRight{0%{-webkit-transform:scale(1.5) translate(-10%,0);transform:scale(1.5) translate(-10%,0)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}@keyframes kenburnsRight{0%{-webkit-transform:scale(1.5) translate(-10%,0);transform:scale(1.5) translate(-10%,0)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}.vegas-animation-kenburnsUpLeft{-webkit-animation:kenburnsUpLeft ease-out;animation:kenburnsUpLeft ease-out}@-webkit-keyframes kenburnsUpLeft{0%{-webkit-transform:scale(1.5) translate(10%,10%);transform:scale(1.5) translate(10%,10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}@keyframes kenburnsUpLeft{0%{-webkit-transform:scale(1.5) translate(10%,10%);transform:scale(1.5) translate(10%,10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}.vegas-animation-kenburnsUpRight{-webkit-animation:kenburnsUpRight ease-out;animation:kenburnsUpRight ease-out}@-webkit-keyframes kenburnsUpRight{0%{-webkit-transform:scale(1.5) translate(-10%,10%);transform:scale(1.5) translate(-10%,10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}@keyframes kenburnsUpRight{0%{-webkit-transform:scale(1.5) translate(-10%,10%);transform:scale(1.5) translate(-10%,10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}.vegas-animation-kenburnsUp{-webkit-animation:kenburnsUp ease-out;animation:kenburnsUp ease-out}@-webkit-keyframes kenburnsUp{0%{-webkit-transform:scale(1.5) translate(0,10%);transform:scale(1.5) translate(0,10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}}@keyframes kenburnsUp{0%{-webkit-transform:scale(1.5) translate(0,10%);transform:scale(1.5) translate(0,10%)}100%{-webkit-transform:scale(1) translate(0,0);transform:scale(1) translate(0,0)}} 2 | /*# sourceMappingURL=vegas.min.css.map */ 3 | -------------------------------------------------------------------------------- /assets/plugins/bootstrap3/normalize.css: -------------------------------------------------------------------------------- 1 | /*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */ 2 | 3 | /** 4 | * 1. Change the default font family in all browsers (opinionated). 5 | * 2. Prevent adjustments of font size after orientation changes in IE and iOS. 6 | */ 7 | 8 | html { 9 | font-family: sans-serif; /* 1 */ 10 | -ms-text-size-adjust: 100%; /* 2 */ 11 | -webkit-text-size-adjust: 100%; /* 2 */ 12 | } 13 | 14 | /** 15 | * Remove the margin in all browsers (opinionated). 16 | */ 17 | 18 | body { 19 | margin: 0; 20 | } 21 | 22 | /* HTML5 display definitions 23 | ========================================================================== */ 24 | 25 | /** 26 | * Add the correct display in IE 9-. 27 | * 1. Add the correct display in Edge, IE, and Firefox. 28 | * 2. Add the correct display in IE. 29 | */ 30 | 31 | article, 32 | aside, 33 | details, /* 1 */ 34 | figcaption, 35 | figure, 36 | footer, 37 | header, 38 | main, /* 2 */ 39 | menu, 40 | nav, 41 | section, 42 | summary { /* 1 */ 43 | display: block; 44 | } 45 | 46 | /** 47 | * Add the correct display in IE 9-. 48 | */ 49 | 50 | audio, 51 | canvas, 52 | progress, 53 | video { 54 | display: inline-block; 55 | } 56 | 57 | /** 58 | * Add the correct display in iOS 4-7. 59 | */ 60 | 61 | audio:not([controls]) { 62 | display: none; 63 | height: 0; 64 | } 65 | 66 | /** 67 | * Add the correct vertical alignment in Chrome, Firefox, and Opera. 68 | */ 69 | 70 | progress { 71 | vertical-align: baseline; 72 | } 73 | 74 | /** 75 | * Add the correct display in IE 10-. 76 | * 1. Add the correct display in IE. 77 | */ 78 | 79 | template, /* 1 */ 80 | [hidden] { 81 | display: none; 82 | } 83 | 84 | /* Links 85 | ========================================================================== */ 86 | 87 | /** 88 | * 1. Remove the gray background on active links in IE 10. 89 | * 2. Remove gaps in links underline in iOS 8+ and Safari 8+. 90 | */ 91 | 92 | a { 93 | background-color: transparent; /* 1 */ 94 | -webkit-text-decoration-skip: objects; /* 2 */ 95 | } 96 | 97 | /** 98 | * Remove the outline on focused links when they are also active or hovered 99 | * in all browsers (opinionated). 100 | */ 101 | 102 | a:active, 103 | a:hover { 104 | outline-width: 0; 105 | } 106 | 107 | /* Text-level semantics 108 | ========================================================================== */ 109 | 110 | /** 111 | * 1. Remove the bottom border in Firefox 39-. 112 | * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. 113 | */ 114 | 115 | abbr[title] { 116 | border-bottom: none; /* 1 */ 117 | text-decoration: underline; /* 2 */ 118 | text-decoration: underline dotted; /* 2 */ 119 | } 120 | 121 | /** 122 | * Prevent the duplicate application of `bolder` by the next rule in Safari 6. 123 | */ 124 | 125 | b, 126 | strong { 127 | font-weight: inherit; 128 | } 129 | 130 | /** 131 | * Add the correct font weight in Chrome, Edge, and Safari. 132 | */ 133 | 134 | b, 135 | strong { 136 | font-weight: bolder; 137 | } 138 | 139 | /** 140 | * Add the correct font style in Android 4.3-. 141 | */ 142 | 143 | dfn { 144 | font-style: italic; 145 | } 146 | 147 | /** 148 | * Correct the font size and margin on `h1` elements within `section` and 149 | * `article` contexts in Chrome, Firefox, and Safari. 150 | */ 151 | 152 | h1 { 153 | font-size: 2em; 154 | margin: 0.67em 0; 155 | } 156 | 157 | /** 158 | * Add the correct background and color in IE 9-. 159 | */ 160 | 161 | mark { 162 | background-color: #ff0; 163 | color: #000; 164 | } 165 | 166 | /** 167 | * Add the correct font size in all browsers. 168 | */ 169 | 170 | small { 171 | font-size: 80%; 172 | } 173 | 174 | /** 175 | * Prevent `sub` and `sup` elements from affecting the line height in 176 | * all browsers. 177 | */ 178 | 179 | sub, 180 | sup { 181 | font-size: 75%; 182 | line-height: 0; 183 | position: relative; 184 | vertical-align: baseline; 185 | } 186 | 187 | sub { 188 | bottom: -0.25em; 189 | } 190 | 191 | sup { 192 | top: -0.5em; 193 | } 194 | 195 | /* Embedded content 196 | ========================================================================== */ 197 | 198 | /** 199 | * Remove the border on images inside links in IE 10-. 200 | */ 201 | 202 | img { 203 | border-style: none; 204 | } 205 | 206 | /** 207 | * Hide the overflow in IE. 208 | */ 209 | 210 | svg:not(:root) { 211 | overflow: hidden; 212 | } 213 | 214 | /* Grouping content 215 | ========================================================================== */ 216 | 217 | /** 218 | * 1. Correct the inheritance and scaling of font size in all browsers. 219 | * 2. Correct the odd `em` font sizing in all browsers. 220 | */ 221 | 222 | code, 223 | kbd, 224 | pre, 225 | samp { 226 | font-family: monospace, monospace; /* 1 */ 227 | font-size: 1em; /* 2 */ 228 | } 229 | 230 | /** 231 | * Add the correct margin in IE 8. 232 | */ 233 | 234 | figure { 235 | margin: 1em 40px; 236 | } 237 | 238 | /** 239 | * 1. Add the correct box sizing in Firefox. 240 | * 2. Show the overflow in Edge and IE. 241 | */ 242 | 243 | hr { 244 | box-sizing: content-box; /* 1 */ 245 | height: 0; /* 1 */ 246 | overflow: visible; /* 2 */ 247 | } 248 | 249 | /* Forms 250 | ========================================================================== */ 251 | 252 | /** 253 | * 1. Change font properties to `inherit` in all browsers (opinionated). 254 | * 2. Remove the margin in Firefox and Safari. 255 | */ 256 | 257 | button, 258 | input, 259 | select, 260 | textarea { 261 | font: inherit; /* 1 */ 262 | margin: 0; /* 2 */ 263 | } 264 | 265 | /** 266 | * Restore the font weight unset by the previous rule. 267 | */ 268 | 269 | optgroup { 270 | font-weight: bold; 271 | } 272 | 273 | /** 274 | * Show the overflow in IE. 275 | * 1. Show the overflow in Edge. 276 | */ 277 | 278 | button, 279 | input { /* 1 */ 280 | overflow: visible; 281 | } 282 | 283 | /** 284 | * Remove the inheritance of text transform in Edge, Firefox, and IE. 285 | * 1. Remove the inheritance of text transform in Firefox. 286 | */ 287 | 288 | button, 289 | select { /* 1 */ 290 | text-transform: none; 291 | } 292 | 293 | /** 294 | * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` 295 | * controls in Android 4. 296 | * 2. Correct the inability to style clickable types in iOS and Safari. 297 | */ 298 | 299 | button, 300 | html [type="button"], /* 1 */ 301 | [type="reset"], 302 | [type="submit"] { 303 | -webkit-appearance: button; /* 2 */ 304 | } 305 | 306 | /** 307 | * Remove the inner border and padding in Firefox. 308 | */ 309 | 310 | button::-moz-focus-inner, 311 | [type="button"]::-moz-focus-inner, 312 | [type="reset"]::-moz-focus-inner, 313 | [type="submit"]::-moz-focus-inner { 314 | border-style: none; 315 | padding: 0; 316 | } 317 | 318 | /** 319 | * Restore the focus styles unset by the previous rule. 320 | */ 321 | 322 | button:-moz-focusring, 323 | [type="button"]:-moz-focusring, 324 | [type="reset"]:-moz-focusring, 325 | [type="submit"]:-moz-focusring { 326 | outline: 1px dotted ButtonText; 327 | } 328 | 329 | /** 330 | * Change the border, margin, and padding in all browsers (opinionated). 331 | */ 332 | 333 | fieldset { 334 | border: 1px solid #c0c0c0; 335 | margin: 0 2px; 336 | padding: 0.35em 0.625em 0.75em; 337 | } 338 | 339 | /** 340 | * 1. Correct the text wrapping in Edge and IE. 341 | * 2. Correct the color inheritance from `fieldset` elements in IE. 342 | * 3. Remove the padding so developers are not caught out when they zero out 343 | * `fieldset` elements in all browsers. 344 | */ 345 | 346 | legend { 347 | box-sizing: border-box; /* 1 */ 348 | color: inherit; /* 2 */ 349 | display: table; /* 1 */ 350 | max-width: 100%; /* 1 */ 351 | padding: 0; /* 3 */ 352 | white-space: normal; /* 1 */ 353 | } 354 | 355 | /** 356 | * Remove the default vertical scrollbar in IE. 357 | */ 358 | 359 | textarea { 360 | overflow: auto; 361 | } 362 | 363 | /** 364 | * 1. Add the correct box sizing in IE 10-. 365 | * 2. Remove the padding in IE 10-. 366 | */ 367 | 368 | [type="checkbox"], 369 | [type="radio"] { 370 | box-sizing: border-box; /* 1 */ 371 | padding: 0; /* 2 */ 372 | } 373 | 374 | /** 375 | * Correct the cursor style of increment and decrement buttons in Chrome. 376 | */ 377 | 378 | [type="number"]::-webkit-inner-spin-button, 379 | [type="number"]::-webkit-outer-spin-button { 380 | height: auto; 381 | } 382 | 383 | /** 384 | * 1. Correct the odd appearance in Chrome and Safari. 385 | * 2. Correct the outline style in Safari. 386 | */ 387 | 388 | [type="search"] { 389 | -webkit-appearance: textfield; /* 1 */ 390 | outline-offset: -2px; /* 2 */ 391 | } 392 | 393 | /** 394 | * Remove the inner padding and cancel buttons in Chrome and Safari on OS X. 395 | */ 396 | 397 | [type="search"]::-webkit-search-cancel-button, 398 | [type="search"]::-webkit-search-decoration { 399 | -webkit-appearance: none; 400 | } 401 | 402 | /** 403 | * Correct the text style of placeholders in Chrome, Edge, and Safari. 404 | */ 405 | 406 | ::-webkit-input-placeholder { 407 | color: inherit; 408 | opacity: 0.54; 409 | } 410 | 411 | /** 412 | * 1. Correct the inability to style clickable types in iOS and Safari. 413 | * 2. Change font properties to `inherit` in Safari. 414 | */ 415 | 416 | ::-webkit-file-upload-button { 417 | -webkit-appearance: button; /* 1 */ 418 | font: inherit; /* 2 */ 419 | } 420 | -------------------------------------------------------------------------------- /assets/plugins/vegas/vegas.min.js: -------------------------------------------------------------------------------- 1 | /*!----------------------------------------------------------------------------- 2 | * Vegas - Fullscreen Backgrounds and Slideshows. 3 | * v2.3.1 - built 2016-09-18 4 | * Licensed under the MIT License. 5 | * http://vegas.jaysalvat.com/ 6 | * ---------------------------------------------------------------------------- 7 | * Copyright (C) 2010-2016 Jay Salvat 8 | * http://jaysalvat.com/ 9 | * --------------------------------------------------------------------------*/ 10 | !function(t){"use strict";var s={slide:0,delay:5e3,loop:!0,preload:!1,preloadImage:!1,preloadVideo:!1,timer:!0,overlay:!1,autoplay:!0,shuffle:!1,cover:!0,color:null,align:"center",valign:"center",firstTransition:null,firstTransitionDuration:null,transition:"fade",transitionDuration:1e3,transitionRegister:[],animation:null,animationDuration:"auto",animationRegister:[],init:function(){},play:function(){},pause:function(){},walk:function(){},slides:[]},i={},e=function(i,e){this.elmt=i,this.settings=t.extend({},s,t.vegas.defaults,e),this.slide=this.settings.slide,this.total=this.settings.slides.length,this.noshow=this.total<2,this.paused=!this.settings.autoplay||this.noshow,this.ended=!1,this.$elmt=t(i),this.$timer=null,this.$overlay=null,this.$slide=null,this.timeout=null,this.first=!0,this.transitions=["fade","fade2","blur","blur2","flash","flash2","negative","negative2","burn","burn2","slideLeft","slideLeft2","slideRight","slideRight2","slideUp","slideUp2","slideDown","slideDown2","zoomIn","zoomIn2","zoomOut","zoomOut2","swirlLeft","swirlLeft2","swirlRight","swirlRight2"],this.animations=["kenburns","kenburnsLeft","kenburnsRight","kenburnsUp","kenburnsUpLeft","kenburnsUpRight","kenburnsDown","kenburnsDownLeft","kenburnsDownRight"],this.settings.transitionRegister instanceof Array==!1&&(this.settings.transitionRegister=[this.settings.transitionRegister]),this.settings.animationRegister instanceof Array==!1&&(this.settings.animationRegister=[this.settings.animationRegister]),this.transitions=this.transitions.concat(this.settings.transitionRegister),this.animations=this.animations.concat(this.settings.animationRegister),this.support={objectFit:"objectFit"in document.body.style,transition:"transition"in document.body.style||"WebkitTransition"in document.body.style,video:t.vegas.isVideoCompatible()},this.settings.shuffle===!0&&this.shuffle(),this._init()};e.prototype={_init:function(){var s,i,e,n="BODY"===this.elmt.tagName,o=this.settings.timer,a=this.settings.overlay,r=this;this._preload(),n||(this.$elmt.css("height",this.$elmt.css("height")),s=t('
').css("overflow",this.$elmt.css("overflow")).css("padding",this.$elmt.css("padding")),this.$elmt.css("padding")||s.css("padding-top",this.$elmt.css("padding-top")).css("padding-bottom",this.$elmt.css("padding-bottom")).css("padding-left",this.$elmt.css("padding-left")).css("padding-right",this.$elmt.css("padding-right")),this.$elmt.clone(!0).children().appendTo(s),this.elmt.innerHTML=""),o&&this.support.transition&&(e=t('
'),this.$timer=e,this.$elmt.prepend(e)),a&&(i=t('
'),"string"==typeof a&&i.css("background-image","url("+a+")"),this.$overlay=i,this.$elmt.prepend(i)),this.$elmt.addClass("vegas-container"),n||this.$elmt.append(s),setTimeout(function(){r.trigger("init"),r._goto(r.slide),r.settings.autoplay&&r.trigger("play")},1)},_preload:function(){var t,s;for(s=0;s1&&!this.ended&&!this.paused&&!this.noshow&&(this.timeout=setTimeout(function(){t.next()},this._options("delay")))},_timer:function(t){var s=this;clearTimeout(this.timeout),this.$timer&&(this.$timer.removeClass("vegas-timer-running").find("div").css("transition-duration","0ms"),this.ended||this.paused||this.noshow||t&&setTimeout(function(){s.$timer.addClass("vegas-timer-running").find("div").css("transition-duration",s._options("delay")-100+"ms")},100))},_video:function(t){var s,e,n=t.toString();return i[n]?i[n]:(t instanceof Array==!1&&(t=[t]),s=document.createElement("video"),s.preload=!0,t.forEach(function(t){e=document.createElement("source"),e.src=t,s.appendChild(e)}),i[n]=s,s)},_fadeOutSound:function(t,s){var i=this,e=s/10,n=t.volume-.09;n>0?(t.volume=n,setTimeout(function(){i._fadeOutSound(t,s)},e)):t.pause()},_fadeInSound:function(t,s){var i=this,e=s/10,n=t.volume+.09;1>n&&(t.volume=n,setTimeout(function(){i._fadeInSound(t,s)},e))},_options:function(t,s){return void 0===s&&(s=this.slide),void 0!==this.settings.slides[s][t]?this.settings.slides[s][t]:this.settings[t]},_goto:function(s){function i(){f._timer(!0),setTimeout(function(){y&&(f.support.transition?(h.css("transition","all "+_+"ms").addClass("vegas-transition-"+y+"-out"),h.each(function(){var t=h.find("video").get(0);t&&(t.volume=1,f._fadeOutSound(t,_))}),e.css("transition","all "+_+"ms").addClass("vegas-transition-"+y+"-in")):e.fadeIn(_));for(var t=0;tg)&&(_=g),"auto"===b&&(b=g),e=t('
'),this.support.transition&&y&&e.addClass("vegas-transition-"+y),this.support.video&&l?(a=l instanceof Array?this._video(l):this._video(l.src),a.loop=void 0!==l.loop?l.loop:!0,a.muted=void 0!==l.mute?l.mute:!0,a.muted===!1?(a.volume=0,this._fadeInSound(a,_)):a.pause(),o=t(a).addClass("vegas-video").css("background-color",m),this.support.objectFit?o.css("object-position",u+" "+c).css("object-fit",p).css("width","100%").css("height","100%"):"contain"===p&&o.css("width","100%").css("height","100%"),e.append(o)):(r=new Image,n=t('
').css("background-image",'url("'+d+'")').css("background-color",m).css("background-position",u+" "+c),"repeat"===p?n.css("background-repeat","repeat"):n.css("background-size",p),this.support.transition&&w&&n.addClass("vegas-animation-"+w).css("animation-duration",b+"ms"),e.append(n)),this.support.transition||e.css("display","none"),v?h.eq(v-1).after(e):this.$elmt.prepend(e),h.css("transition","all 0ms").each(function(){this.className="vegas-slide","VIDEO"===this.tagName&&(this.className+=" vegas-video"),y&&(this.className+=" vegas-transition-"+y,this.className+=" vegas-transition-"+y+"-in")}),f._timer(!1),a?(4===a.readyState&&(a.currentTime=0),a.play(),i()):(r.src=d,r.complete?i():r.onload=i)},_end:function(){this.ended=!0,this._timer(!1),this.trigger("end")},shuffle:function(){for(var t,s,i=this.total-1;i>0;i--)s=Math.floor(Math.random()*(i+1)),t=this.settings.slides[i],this.settings.slides[i]=this.settings.slides[s],this.settings.slides[s]=t},play:function(){this.paused&&(this.paused=!1,this.next(),this.trigger("play"))},pause:function(){this._timer(!1),this.paused=!0,this.trigger("pause")},toggle:function(){this.paused?this.play():this.pause()},playing:function(){return!this.paused&&!this.noshow},current:function(t){return t?{slide:this.slide,data:this.settings.slides[this.slide]}:this.slide},jump:function(t){0>t||t>this.total-1||t===this.slide||(this.slide=t,this._goto(this.slide))},next:function(){if(this.slide++,this.slide>=this.total){if(!this.settings.loop)return this._end();this.slide=0}this._goto(this.slide)},previous:function(){if(this.slide--,this.slide<0){if(!this.settings.loop)return void this.slide++;this.slide=this.total-1}this._goto(this.slide)},trigger:function(t){var s=[];s="init"===t?[this.settings]:[this.slide,this.settings.slides[this.slide]],this.$elmt.trigger("vegas"+t,s),"function"==typeof this.settings[t]&&this.settings[t].apply(this.$elmt,s)},options:function(i,e){var n=this.settings.slides.slice();if("object"==typeof i)this.settings=t.extend({},s,t.vegas.defaults,i);else{if("string"!=typeof i)return this.settings;if(void 0===e)return this.settings[i];this.settings[i]=e}this.settings.slides!==n&&(this.total=this.settings.slides.length,this.noshow=this.total<2,this._preload())},destroy:function(){clearTimeout(this.timeout),this.$elmt.removeClass("vegas-container"),this.$elmt.find("> .vegas-slide").remove(),this.$elmt.find("> .vegas-wrapper").clone(!0).children().appendTo(this.$elmt),this.$elmt.find("> .vegas-wrapper").remove(),this.settings.timer&&this.$timer.remove(),this.settings.overlay&&this.$overlay.remove(),this.elmt._vegas=null}},t.fn.vegas=function(t){var s,i=arguments,n=!1;if(void 0===t||"object"==typeof t)return this.each(function(){this._vegas||(this._vegas=new e(this,t))});if("string"==typeof t){if(this.each(function(){var e=this._vegas;if(!e)throw new Error("No Vegas applied to this element.");"function"==typeof e[t]&&"_"!==t[0]?s=e[t].apply(e,[].slice.call(i,1)):n=!0}),n)throw new Error('No method "'+t+'" in Vegas.');return void 0!==s?s:this}},t.vegas={},t.vegas.defaults=s,t.vegas.isVideoCompatible=function(){return!/(Android|webOS|Phone|iPad|iPod|BlackBerry|Windows Phone)/i.test(navigator.userAgent)}}(window.jQuery||window.Zepto); 11 | //# sourceMappingURL=vegas.min.js.map 12 | --------------------------------------------------------------------------------