j1-template 2023.0.16 → 2023.0.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/assets/data/banner.html +2 -2
  3. data/assets/error_pages/HTTP204.html +9 -5
  4. data/assets/error_pages/HTTP400.html +18 -2
  5. data/assets/error_pages/HTTP401.html +18 -2
  6. data/assets/error_pages/HTTP403.html +18 -2
  7. data/assets/error_pages/HTTP404.html +10 -2
  8. data/assets/error_pages/HTTP444.html +18 -2
  9. data/assets/error_pages/HTTP445.html +18 -2
  10. data/assets/error_pages/HTTP446.html +18 -2
  11. data/assets/error_pages/HTTP447.html +18 -2
  12. data/assets/error_pages/HTTP448.html +18 -2
  13. data/assets/error_pages/HTTP500.html +18 -2
  14. data/assets/error_pages/HTTP501.html +18 -2
  15. data/assets/error_pages/HTTP502.html +18 -2
  16. data/assets/error_pages/HTTP503.html +18 -2
  17. data/assets/themes/j1/adapter/js/cookieConsent.js +41 -25
  18. data/assets/themes/j1/adapter/js/fab.js +3 -1
  19. data/assets/themes/j1/adapter/js/j1.js +39 -1
  20. data/assets/themes/j1/adapter/js/slick.js +221 -0
  21. data/assets/themes/j1/adapter/js/translator.js +45 -3
  22. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +4 -4
  23. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  24. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.js +10 -4
  25. data/assets/themes/j1/modules/cookieConsent/js/cookieConsent.min.js +1 -1
  26. data/assets/themes/j1/modules/slick/LICENSE +20 -0
  27. data/assets/themes/j1/modules/slick/README.md +292 -0
  28. data/assets/themes/j1/modules/slick/ajax-loader.gif +0 -0
  29. data/assets/themes/j1/modules/slick/css/slick.css +129 -0
  30. data/assets/themes/j1/modules/slick/css/slick.min.css +15 -0
  31. data/assets/themes/j1/modules/slick/fonts/slick.eot +0 -0
  32. data/assets/themes/j1/modules/slick/fonts/slick.svg +14 -0
  33. data/assets/themes/j1/modules/slick/fonts/slick.ttf +0 -0
  34. data/assets/themes/j1/modules/slick/fonts/slick.woff +0 -0
  35. data/assets/themes/j1/modules/slick/js/slick.js +2295 -0
  36. data/assets/themes/j1/modules/slick/js/slick.min.js +1 -0
  37. data/assets/themes/j1/modules/translator/css/translator.css +3 -3
  38. data/assets/themes/j1/modules/translator/css/translator.min.css +1 -1
  39. data/assets/themes/j1/modules/translator/js/translator.js +19 -7
  40. data/lib/j1/version.rb +1 -1
  41. data/lib/starter_web/Gemfile +2 -2
  42. data/lib/starter_web/README.md +5 -5
  43. data/lib/starter_web/_config.yml +4 -2
  44. data/lib/starter_web/_data/modules/defaults/cookies.yml +1 -1
  45. data/lib/starter_web/_data/modules/navigator_menu.yml +3 -0
  46. data/lib/starter_web/_data/resources.yml +26 -0
  47. data/lib/starter_web/_data/templates/feed.xml +1 -1
  48. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  49. data/lib/starter_web/package.json +2 -2
  50. data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +0 -1
  51. data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +1 -1
  52. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  53. data/lib/starter_web/utilsrv/package.json +1 -1
  54. metadata +14 -2
@@ -99,11 +99,17 @@ function CookieConsent(props) {
99
99
  //------------------------------------------------------------------------
100
100
 
101
101
  if (cookieSecure) {
102
- // document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + '; ' + 'Domain=' + cookieDomain + '; ' + 'Secure=' + cookieSecure + ';';
103
- document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + '; ' + 'Secure=' + cookieSecure + ';';
102
+ if (cookieDomain) {
103
+ document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + '; ' + 'Domain=' + cookieDomain + '; ' + 'Secure=' + cookieSecure + ';';
104
+ } else {
105
+ document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + '; ' + 'Secure=' + cookieSecure + ';';
106
+ }
104
107
  } else {
105
- // document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + ';' + 'Domain=' + cookieDomain + '; ';
106
- document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + ';';
108
+ if (cookieDomain) {
109
+ document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + ';' + 'Domain=' + cookieDomain + '; ';
110
+ } else {
111
+ document.cookie = name + "=" + (value_encoded || '') + expires + '; Path=/; SameSite=' + cookieSameSite + ';';
112
+ }
107
113
  }
108
114
  },
109
115
  get: function (name) {
@@ -24,4 +24,4 @@
24
24
  # outside of J1 Theme!
25
25
  # -----------------------------------------------------------------------------
26
26
  */
27
- "use strict";function CookieConsent(o){var e,t=log4javascript.getLogger("j1.core.CookieConsent"),n=this,i=!1,a=!!new liteURL(window.location.href).protocol.includes("https");for(var s in t.info("\ninitializing core module: started"),t.info("\nstate: started"),this.props={autoShowDialog:!0,dialogLanguage:"content",dialogLanguages:["en","de"],contentURL:"/assets/data/cookieconsent",postSelectionCallback:"",whitelisted:[],xhrDataElement:"consent-data",dialogContainerID:"consent-modal"},o)this.props[s]=o[s];-1!==this.props.dialogLanguage.indexOf("-")&&(this.props.dialogLanguage=this.props.dialogLanguage.split("-")[0]),this.props.dialogLanguages.includes(this.props.dialogLanguage)||(this.props.dialogLanguage=this.props.dialogLanguages[0]),this.props.xhrDataElement=this.props.xhrDataElement+"-"+this.props.dialogLanguage,this.props.cookieSecure=a;var l={set:function(o,e,t,n,i,a){var s=window.btoa(e),l="; expires=Thu, 01 Jan 1970 00:00:00 UTC";if(t>0){var r=new Date;r.setTime(r.getTime()+24*t*60*60*1e3),l="; expires="+r.toUTCString()}document.cookie=a?o+"="+(s||"")+l+"; Path=/; SameSite="+n+"; Secure="+a+";":o+"="+(s||"")+l+"; Path=/; SameSite="+n+";"},get:function(o){for(var e=o+"=",t=document.cookie.split(";"),n=0;n<t.length;n++){for(var i=t[n];" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(e)){var a=i.substring(e.length,i.length);return window.atob(a)}}}},r={documentReady:function(o){"loading"!==document.readyState?o():document.addEventListener("DOMContentLoaded",o)}};function d(o){r.documentReady(function(){if(n.modal=document.getElementById(n.props.dialogContainerID),n.modal)n.$modal.modal("show");else{t.info("\nload consent modal"),n.modal=document.createElement("div"),n.modal.id=n.props.dialogContainerID,n.modal.style.display="none",n.modal.setAttribute("class","modal fade"),n.modal.setAttribute("tabindex","-1"),n.modal.setAttribute("role","dialog"),n.modal.setAttribute("aria-labelledby",n.props.dialogContainerID),document.body.append(n.modal),n.$modal=$(n.modal),n.$modal.on("show.bs.modal",function(){}),n.$modal.on("hidden.bs.modal",function(){!function(o,e){for(var t=Array.prototype.slice.call(arguments,2),n=o.split("."),i=n.pop(),a=0;a<n.length;a++)e=e[n[a]];e[i].apply(e,t)}(n.props.postSelectionCallback,window)});var o=n.props.contentURL+"/index.html";$.get(o).done(function(o){t.info("\nloading consent modal: successfully"),n.modal.innerHTML=o,n.modal.innerHTML=$("#"+n.props.xhrDataElement).eq(0).html(),n.modal.style.display="block",$(n.modal).modal({backdrop:"static",keyboard:!1}),n.$buttonDoNotAgree=$("#bccs-buttonDoNotAgree"),n.$buttonAgree=$("#bccs-buttonAgree"),n.$buttonSave=$("#bccs-buttonSave"),n.$buttonAgreeAll=$("#bccs-buttonAgreeAll"),t.info("\nload/initialze options from cookie"),p(),c(),$("#bccs-options").on("hide.bs.collapse",function(){i=!1,p()}).on("show.bs.collapse",function(){i=!0,p()}),t.info("\ninitialze event handler"),n.$buttonDoNotAgree.click(function(){l.set(n.props.cookieName,JSON.stringify(g(!1)),0,n.props.cookieSameSite,n.props.cookieDomain,a),n.$modal.modal("hide"),window.location.href="/445.html"}),n.$buttonAgree.click(function(){u()}),n.$buttonSave.click(function(){$("#bccs-options").collapse("hide"),l.set(n.props.cookieName,JSON.stringify(g()),n.props.cookieStorageDays,n.props.cookieSameSite,n.props.cookieDomain,a),n.$modal.modal("hide"),c()}),n.$buttonAgreeAll.click(function(){$("#bccs-options").collapse("hide"),u(),c()}),n.$modal.modal("show")}).fail(function(){t.error("\nloading consent modal: failed"),t.warn("\nprobably no `contentURL` set")})}}.bind(this))}function c(){var o=n.getSettings();if(o)for(var e in o){n.$modal.find("#bccs-options .bccs-option[data-name='"+e+"'] input[type='checkbox']").prop("checked",o[e])}}function p(){i?(n.$buttonDoNotAgree.hide(),n.$buttonAgree.hide(),n.$buttonSave.show(),n.$buttonAgreeAll.show()):(n.$buttonDoNotAgree.show(),n.$buttonAgree.show(),n.$buttonSave.hide(),n.$buttonAgreeAll.hide())}function g(o){for(var e=n.$modal.find("#bccs-options .bccs-option"),t={},i=0;i<e.length;i++){var a=e[i],s=a.getAttribute("data-name");if("necessary"===s)t[s]=!0;else if(void 0===o){var l=$(a).find("input[type='checkbox']");t[s]=l.prop("checked")}else t[s]=!!o}return t}function u(){l.set(n.props.cookieName,JSON.stringify(g(!0)),n.props.cookieStorageDays,n.props.cookieSameSite,n.props.cookieDomain,a),n.$modal.modal("hide")}e=this.props.whitelisted.indexOf(window.location.pathname)>-1;var m=l.get(this.props.cookieName);void 0!==m&&"false"!==m||!this.props.autoShowDialog||e||d(),t.info("\ninitializing core module finished"),t.info("\nstate: finished"),this.showDialog=function(){(e=this.props.whitelisted.indexOf(window.location.pathname)>-1)||d()},this.getSettings=function(o){if(l.get(n.props.cookieName)){var e=JSON.parse(l.get(n.props.cookieName));return void 0===o?e:!!e&&e[o]}}}
27
+ "use strict";function CookieConsent(o){var e,t=log4javascript.getLogger("j1.core.CookieConsent"),n=this,i=!1,a=!!new liteURL(window.location.href).protocol.includes("https");for(var s in t.info("\ninitializing core module: started"),t.info("\nstate: started"),this.props={autoShowDialog:!0,dialogLanguage:"content",dialogLanguages:["en","de"],contentURL:"/assets/data/cookieconsent",postSelectionCallback:"",whitelisted:[],xhrDataElement:"consent-data",dialogContainerID:"consent-modal"},o)this.props[s]=o[s];-1!==this.props.dialogLanguage.indexOf("-")&&(this.props.dialogLanguage=this.props.dialogLanguage.split("-")[0]),this.props.dialogLanguages.includes(this.props.dialogLanguage)||(this.props.dialogLanguage=this.props.dialogLanguages[0]),this.props.xhrDataElement=this.props.xhrDataElement+"-"+this.props.dialogLanguage,this.props.cookieSecure=a;var l={set:function(o,e,t,n,i,a){var s=window.btoa(e),l="; expires=Thu, 01 Jan 1970 00:00:00 UTC";if(t>0){var r=new Date;r.setTime(r.getTime()+24*t*60*60*1e3),l="; expires="+r.toUTCString()}document.cookie=a?i?o+"="+(s||"")+l+"; Path=/; SameSite="+n+"; Domain="+i+"; Secure="+a+";":o+"="+(s||"")+l+"; Path=/; SameSite="+n+"; Secure="+a+";":i?o+"="+(s||"")+l+"; Path=/; SameSite="+n+";Domain="+i+"; ":o+"="+(s||"")+l+"; Path=/; SameSite="+n+";"},get:function(o){for(var e=o+"=",t=document.cookie.split(";"),n=0;n<t.length;n++){for(var i=t[n];" "===i.charAt(0);)i=i.substring(1,i.length);if(0===i.indexOf(e)){var a=i.substring(e.length,i.length);return window.atob(a)}}}},r={documentReady:function(o){"loading"!==document.readyState?o():document.addEventListener("DOMContentLoaded",o)}};function d(o){r.documentReady(function(){if(n.modal=document.getElementById(n.props.dialogContainerID),n.modal)n.$modal.modal("show");else{t.info("\nload consent modal"),n.modal=document.createElement("div"),n.modal.id=n.props.dialogContainerID,n.modal.style.display="none",n.modal.setAttribute("class","modal fade"),n.modal.setAttribute("tabindex","-1"),n.modal.setAttribute("role","dialog"),n.modal.setAttribute("aria-labelledby",n.props.dialogContainerID),document.body.append(n.modal),n.$modal=$(n.modal),n.$modal.on("show.bs.modal",function(){}),n.$modal.on("hidden.bs.modal",function(){!function(o,e){for(var t=Array.prototype.slice.call(arguments,2),n=o.split("."),i=n.pop(),a=0;a<n.length;a++)e=e[n[a]];e[i].apply(e,t)}(n.props.postSelectionCallback,window)});var o=n.props.contentURL+"/index.html";$.get(o).done(function(o){t.info("\nloading consent modal: successfully"),n.modal.innerHTML=o,n.modal.innerHTML=$("#"+n.props.xhrDataElement).eq(0).html(),n.modal.style.display="block",$(n.modal).modal({backdrop:"static",keyboard:!1}),n.$buttonDoNotAgree=$("#bccs-buttonDoNotAgree"),n.$buttonAgree=$("#bccs-buttonAgree"),n.$buttonSave=$("#bccs-buttonSave"),n.$buttonAgreeAll=$("#bccs-buttonAgreeAll"),t.info("\nload/initialze options from cookie"),p(),c(),$("#bccs-options").on("hide.bs.collapse",function(){i=!1,p()}).on("show.bs.collapse",function(){i=!0,p()}),t.info("\ninitialze event handler"),n.$buttonDoNotAgree.click(function(){l.set(n.props.cookieName,JSON.stringify(g(!1)),0,n.props.cookieSameSite,n.props.cookieDomain,a),n.$modal.modal("hide"),window.location.href="/445.html"}),n.$buttonAgree.click(function(){u()}),n.$buttonSave.click(function(){$("#bccs-options").collapse("hide"),l.set(n.props.cookieName,JSON.stringify(g()),n.props.cookieStorageDays,n.props.cookieSameSite,n.props.cookieDomain,a),n.$modal.modal("hide"),c()}),n.$buttonAgreeAll.click(function(){$("#bccs-options").collapse("hide"),u(),c()}),n.$modal.modal("show")}).fail(function(){t.error("\nloading consent modal: failed"),t.warn("\nprobably no `contentURL` set")})}}.bind(this))}function c(){var o=n.getSettings();if(o)for(var e in o){n.$modal.find("#bccs-options .bccs-option[data-name='"+e+"'] input[type='checkbox']").prop("checked",o[e])}}function p(){i?(n.$buttonDoNotAgree.hide(),n.$buttonAgree.hide(),n.$buttonSave.show(),n.$buttonAgreeAll.show()):(n.$buttonDoNotAgree.show(),n.$buttonAgree.show(),n.$buttonSave.hide(),n.$buttonAgreeAll.hide())}function g(o){for(var e=n.$modal.find("#bccs-options .bccs-option"),t={},i=0;i<e.length;i++){var a=e[i],s=a.getAttribute("data-name");if("necessary"===s)t[s]=!0;else if(void 0===o){var l=$(a).find("input[type='checkbox']");t[s]=l.prop("checked")}else t[s]=!!o}return t}function u(){l.set(n.props.cookieName,JSON.stringify(g(!0)),n.props.cookieStorageDays,n.props.cookieSameSite,n.props.cookieDomain,a),n.$modal.modal("hide")}e=this.props.whitelisted.indexOf(window.location.pathname)>-1;var m=l.get(this.props.cookieName);void 0!==m&&"false"!==m||!this.props.autoShowDialog||e||d(),t.info("\ninitializing core module finished"),t.info("\nstate: finished"),this.showDialog=function(){(e=this.props.whitelisted.indexOf(window.location.pathname)>-1)||d()},this.getSettings=function(o){if(l.get(n.props.cookieName)){var e=JSON.parse(l.get(n.props.cookieName));return void 0===o?e:!!e&&e[o]}}}
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2013-2016
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,292 @@
1
+ slick
2
+ -------
3
+
4
+ [1]: <https://github.com/kenwheeler/slick>
5
+
6
+ _the last carousel you'll ever need_
7
+
8
+ #### Demo
9
+
10
+ [http://kenwheeler.github.io/slick](http://kenwheeler.github.io/slick/)
11
+
12
+ #### CDN
13
+
14
+ To start working with Slick right away, there's a couple of CDN choices availabile
15
+ to serve the files as close, and fast as possible to your users:
16
+
17
+ - https://cdnjs.com/libraries/slick-carousel
18
+ - https://www.jsdelivr.com/projects/jquery.slick
19
+
20
+ ##### Example using jsDelivr
21
+
22
+ Just add a link to the css file in your `<head>`:
23
+
24
+ ```html
25
+ <!-- Add the slick-theme.css if you want default styling -->
26
+ <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/>
27
+ <!-- Add the slick-theme.css if you want default styling -->
28
+ <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick-theme.css"/>
29
+ ```
30
+
31
+ Then, before your closing ```<body>``` tag add:
32
+
33
+ ```html
34
+ <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script>
35
+ ```
36
+
37
+ #### Package Managers
38
+
39
+ ```sh
40
+ # Bower
41
+ bower install --save slick-carousel
42
+
43
+ # NPM
44
+ npm install slick-carousel
45
+ ```
46
+
47
+ #### Contributing
48
+
49
+ PLEASE review CONTRIBUTING.markdown prior to requesting a feature, filing a pull request or filing an issue.
50
+
51
+ ### Data Attribute Settings
52
+
53
+ In slick 1.5 you can now add settings using the data-slick attribute. You still need to call $(element).slick() to initialize slick on the element.
54
+
55
+ Example:
56
+
57
+ ```html
58
+ <div data-slick='{"slidesToShow": 4, "slidesToScroll": 4}'>
59
+ <div><h3>1</h3></div>
60
+ <div><h3>2</h3></div>
61
+ <div><h3>3</h3></div>
62
+ <div><h3>4</h3></div>
63
+ <div><h3>5</h3></div>
64
+ <div><h3>6</h3></div>
65
+ </div>
66
+ ```
67
+
68
+ ### Settings
69
+
70
+ Option | Type | Default | Description
71
+ ------ | ---- | ------- | -----------
72
+ accessibility | boolean | true | Enables tabbing and arrow key navigation. Unless `autoplay: true`, sets browser focus to current slide (or first of current slide set, if multiple `slidesToShow`) after slide change. For full a11y compliance enable focusOnChange in addition to this.
73
+ adaptiveHeight | boolean | false | Adapts slider height to the current slide
74
+ appendArrows | string | $(element) | Change where the navigation arrows are attached (Selector, htmlString, Array, Element, jQuery object)
75
+ appendDots | string | $(element) | Change where the navigation dots are attached (Selector, htmlString, Array, Element, jQuery object)
76
+ arrows | boolean | true | Enable Next/Prev arrows
77
+ asNavFor | string | $(element) | Enables syncing of multiple sliders
78
+ autoplay | boolean | false | Enables auto play of slides
79
+ autoplaySpeed | int | 3000 | Auto play change interval
80
+ centerMode | boolean | false | Enables centered view with partial prev/next slides. Use with odd numbered slidesToShow counts.
81
+ centerPadding | string | '50px' | Side padding when in center mode. (px or %)
82
+ cssEase | string | 'ease' | CSS3 easing
83
+ customPaging | function | n/a | Custom paging templates. See source for use example.
84
+ dots | boolean | false | Current slide indicator dots
85
+ dotsClass | string | 'slick-dots' | Class for slide indicator dots container
86
+ draggable | boolean | true | Enables desktop dragging
87
+ easing | string | 'linear' | animate() fallback easing
88
+ edgeFriction | integer | 0.15 | Resistance when swiping edges of non-infinite carousels
89
+ fade | boolean | false | Enables fade
90
+ focusOnSelect | boolean | false | Enable focus on selected element (click)
91
+ focusOnChange | boolean | false | Puts focus on slide after change
92
+ infinite | boolean | true | Infinite looping
93
+ initialSlide | integer | 0 | Slide to start on
94
+ lazyLoad | string | 'ondemand' | Accepts 'ondemand' or 'progressive' for lazy load technique. 'ondemand' will load the image as soon as you slide to it, 'progressive' loads one image after the other when the page loads.
95
+ mobileFirst | boolean | false | Responsive settings use mobile first calculation
96
+ nextArrow | string (html \| jQuery selector) \| object (DOM node \| jQuery object) | `<button type="button" class="slick-next">Next</button>` | Allows you to select a node or customize the HTML for the "Next" arrow.
97
+ pauseOnDotsHover | boolean | false | Pauses autoplay when a dot is hovered
98
+ pauseOnFocus | boolean | true | Pauses autoplay when slider is focussed
99
+ pauseOnHover | boolean | true | Pauses autoplay on hover
100
+ prevArrow | string (html \| jQuery selector) \| object (DOM node \| jQuery object) | `<button type="button" class="slick-prev">Previous</button>` | Allows you to select a node or customize the HTML for the "Previous" arrow.
101
+ respondTo | string | 'window' | Width that responsive object responds to. Can be 'window', 'slider' or 'min' (the smaller of the two).
102
+ responsive | array | null | Array of objects [containing breakpoints and settings objects (see example)](#responsive-option-example). Enables settings at given `breakpoint`. Set `settings` to "unslick" instead of an object to disable slick at a given breakpoint.
103
+ rows | int | 1 | Setting this to more than 1 initializes grid mode. Use slidesPerRow to set how many slides should be in each row.
104
+ rtl | boolean | false | Change the slider's direction to become right-to-left
105
+ slide | string | '' | Slide element query
106
+ slidesPerRow | int | 1 | With grid mode initialized via the rows option, this sets how many slides are in each grid row.
107
+ slidesToScroll | int | 1 | # of slides to scroll at a time
108
+ slidesToShow | int | 1 | # of slides to show at a time
109
+ speed | int | 300 | Transition speed
110
+ swipe | boolean | true | Enables touch swipe
111
+ swipeToSlide | boolean | false | Swipe to slide irrespective of slidesToScroll
112
+ touchMove | boolean | true | Enables slide moving with touch
113
+ touchThreshold | int | 5 | To advance slides, the user must swipe a length of (1/touchThreshold) * the width of the slider.
114
+ useCSS | boolean | true | Enable/Disable CSS Transitions
115
+ useTransform | boolean | true | Enable/Disable CSS Transforms
116
+ variableWidth | boolean | false | Disables automatic slide width calculation
117
+ vertical | boolean | false | Vertical slide direction
118
+ verticalSwiping | boolean | false | Changes swipe direction to vertical
119
+ waitForAnimate | boolean | true | Ignores requests to advance the slide while animating
120
+ zIndex | number | 1000 | Set the zIndex values for slides, useful for IE9 and lower
121
+
122
+ ##### Responsive Option Example
123
+ The responsive option, and value, is quite unique and powerful.
124
+ You can use it like so:
125
+
126
+ ```javascript
127
+ $(".slider").slick({
128
+
129
+ // normal options...
130
+ infinite: false,
131
+
132
+ // the magic
133
+ responsive: [{
134
+
135
+ breakpoint: 1024,
136
+ settings: {
137
+ slidesToShow: 3,
138
+ infinite: true
139
+ }
140
+
141
+ }, {
142
+
143
+ breakpoint: 600,
144
+ settings: {
145
+ slidesToShow: 2,
146
+ dots: true
147
+ }
148
+
149
+ }, {
150
+
151
+ breakpoint: 300,
152
+ settings: "unslick" // destroys slick
153
+
154
+ }]
155
+ });
156
+ ```
157
+
158
+
159
+
160
+
161
+ ### Events
162
+
163
+ In slick 1.4, callback methods were deprecated and replaced with events. Use them before the initialization of slick as shown below:
164
+
165
+ ```javascript
166
+ // On swipe event
167
+ $('.your-element').on('swipe', function(event, slick, direction){
168
+ console.log(direction);
169
+ // left
170
+ });
171
+
172
+ // On edge hit
173
+ $('.your-element').on('edge', function(event, slick, direction){
174
+ console.log('edge was hit')
175
+ });
176
+
177
+ // On before slide change
178
+ $('.your-element').on('beforeChange', function(event, slick, currentSlide, nextSlide){
179
+ console.log(nextSlide);
180
+ });
181
+ ```
182
+
183
+ Event | Params | Description
184
+ ------ | -------- | -----------
185
+ afterChange | event, slick, currentSlide | After slide change callback
186
+ beforeChange | event, slick, currentSlide, nextSlide | Before slide change callback
187
+ breakpoint | event, slick, breakpoint | Fires after a breakpoint is hit
188
+ destroy | event, slick | When slider is destroyed, or unslicked.
189
+ edge | event, slick, direction | Fires when an edge is overscrolled in non-infinite mode.
190
+ init | event, slick | When Slick initializes for the first time callback. Note that this event should be defined before initializing the slider.
191
+ reInit | event, slick | Every time Slick (re-)initializes callback
192
+ setPosition | event, slick | Every time Slick recalculates position
193
+ swipe | event, slick, direction | Fires after swipe/drag
194
+ lazyLoaded | event, slick, image, imageSource | Fires after image loads lazily
195
+ lazyLoadError | event, slick, image, imageSource | Fires after image fails to load
196
+
197
+
198
+ #### Methods
199
+
200
+ Methods are called on slick instances through the slick method itself in version 1.4, see below:
201
+
202
+ ```javascript
203
+ // Add a slide
204
+ $('.your-element').slick('slickAdd',"<div></div>");
205
+
206
+ // Get the current slide
207
+ var currentSlide = $('.your-element').slick('slickCurrentSlide');
208
+ ```
209
+
210
+ This new syntax allows you to call any internal slick method as well:
211
+
212
+ ```javascript
213
+ // Manually refresh positioning of slick
214
+ $('.your-element').slick('setPosition');
215
+ ```
216
+
217
+
218
+ Method | Argument | Description
219
+ ------ | -------- | -----------
220
+ `slick` | options : object | Initializes Slick
221
+ `unslick` | | Destroys Slick
222
+ `slickNext` | | Triggers next slide
223
+ `slickPrev` | | Triggers previous slide
224
+ `slickPause` | | Pause Autoplay
225
+ `slickPlay` | | Start Autoplay (_will also set `autoplay` option to `true`_)
226
+ `slickGoTo` | index : int, dontAnimate : bool | Goes to slide by index, skipping animation if second parameter is set to true
227
+ `slickCurrentSlide` | | Returns the current slide index
228
+ `slickAdd` | element : html or DOM object, index: int, addBefore: bool | Add a slide. If an index is provided, will add at that index, or before if addBefore is set. If no index is provided, add to the end or to the beginning if addBefore is set. Accepts HTML String || Object
229
+ `slickRemove` | index: int, removeBefore: bool | Remove slide by index. If removeBefore is set true, remove slide preceding index, or the first slide if no index is specified. If removeBefore is set to false, remove the slide following index, or the last slide if no index is set.
230
+ `slickFilter` | filter : selector or function | Filters slides using jQuery .filter syntax
231
+ `slickUnfilter` | | Removes applied filter
232
+ `slickGetOption` | option : string(option name) | Gets an option value.
233
+ `slickSetOption` | change an option, `refresh` is always `boolean` and will update UI changes...
234
+ | `option, value, refresh` | change a [single `option`](https://github.com/kenwheeler/slick#settings) to given `value`; `refresh` is optional.
235
+ | `"responsive", [{ breakpoint: n, settings: {} }, ... ], refresh` | change or add [whole sets of responsive options](#responsive-option-example)
236
+ | `{ option: value, option: value, ... }, refresh` | change [multiple `option`s](https://github.com/kenwheeler/slick#settings) to corresponding `value`s.
237
+
238
+
239
+ #### Example
240
+
241
+ Initialize with:
242
+
243
+ ```javascript
244
+ $(element).slick({
245
+ dots: true,
246
+ speed: 500
247
+ });
248
+ ```
249
+
250
+ Change the speed with:
251
+
252
+ ```javascript
253
+ $(element).slick('slickSetOption', 'speed', 5000, true);
254
+ ```
255
+
256
+ Destroy with:
257
+
258
+ ```javascript
259
+ $(element).slick('unslick');
260
+ ```
261
+
262
+
263
+ #### Sass Variables
264
+
265
+ Variable | Type | Default | Description
266
+ ------ | ---- | ------- | -----------
267
+ $slick-font-path | string | "./fonts/" | Directory path for the slick icon font
268
+ $slick-font-family | string | "slick" | Font-family for slick icon font
269
+ $slick-loader-path | string | "./" | Directory path for the loader image
270
+ $slick-arrow-color | color | white | Color of the left/right arrow icons
271
+ $slick-dot-color | color | black | Color of the navigation dots
272
+ $slick-dot-color-active | color | $slick-dot-color | Color of the active navigation dot
273
+ $slick-prev-character | string | '\2190' | Unicode character code for the previous arrow icon
274
+ $slick-next-character | string | '\2192' | Unicode character code for the next arrow icon
275
+ $slick-dot-character | string | '\2022' | Unicode character code for the navigation dot icon
276
+ $slick-dot-size | pixels | 6px | Size of the navigation dots
277
+
278
+ #### Browser support
279
+
280
+ Slick works on IE8+ in addition to other modern browsers such as Chrome, Firefox, and Safari.
281
+
282
+ #### Dependencies
283
+
284
+ jQuery 1.7
285
+
286
+ #### License
287
+
288
+ Copyright (c) 2017 Ken Wheeler
289
+
290
+ Licensed under the MIT license.
291
+
292
+ Free as in Bacon.
@@ -0,0 +1,129 @@
1
+ /*
2
+ _ _ _ _
3
+ ___| (_) ___| | __ (_)___
4
+ / __| | |/ __| |/ / | / __|
5
+ \__ \ | | (__| < _ | \__ \
6
+ |___/_|_|\___|_|\_(_)/ |___/
7
+ |__/
8
+ Version: 1.8.1
9
+ Author: Ken Wheeler
10
+ Website: http://kenwheeler.github.io
11
+ Docs: http://kenwheeler.github.io/slick
12
+ Repo: http://github.com/kenwheeler/slick
13
+ Issues: http://github.com/kenwheeler/slick/issues
14
+ */
15
+
16
+ .slick-slider {
17
+ position: relative;
18
+
19
+ display: block;
20
+ box-sizing: border-box;
21
+
22
+ -webkit-user-select: none;
23
+ -moz-user-select: none;
24
+ -ms-user-select: none;
25
+ user-select: none;
26
+
27
+ -webkit-touch-callout: none;
28
+ -khtml-user-select: none;
29
+ -ms-touch-action: pan-y;
30
+ touch-action: pan-y;
31
+ -webkit-tap-highlight-color: transparent;
32
+ }
33
+
34
+ .slick-list {
35
+ position: relative;
36
+
37
+ display: block;
38
+ overflow: hidden;
39
+
40
+ margin: 0;
41
+ padding: 0;
42
+ }
43
+
44
+ .slick-list:focus {
45
+ outline: none;
46
+ }
47
+
48
+ .slick-list.dragging {
49
+ cursor: pointer;
50
+ cursor: hand;
51
+ }
52
+
53
+ .slick-slider .slick-track,
54
+ .slick-slider .slick-list {
55
+ -webkit-transform: translate3d(0, 0, 0);
56
+ -moz-transform: translate3d(0, 0, 0);
57
+ -ms-transform: translate3d(0, 0, 0);
58
+ -o-transform: translate3d(0, 0, 0);
59
+ transform: translate3d(0, 0, 0);
60
+ }
61
+
62
+ .slick-track {
63
+ position: relative;
64
+ top: 0;
65
+ left: 0;
66
+
67
+ display: block;
68
+ margin-left: auto;
69
+ margin-right: auto;
70
+ }
71
+
72
+ .slick-track:before,
73
+ .slick-track:after {
74
+ display: table;
75
+
76
+ content: '';
77
+ }
78
+
79
+ .slick-track:after {
80
+ clear: both;
81
+ }
82
+
83
+ .slick-loading .slick-track {
84
+ visibility: hidden;
85
+ }
86
+
87
+ .slick-slide {
88
+ display: none;
89
+ float: left;
90
+
91
+ height: 100%;
92
+ min-height: 1px;
93
+ }
94
+
95
+ [dir='rtl'] .slick-slide {
96
+ float: right;
97
+ }
98
+
99
+ .slick-slide img {
100
+ display: block;
101
+ }
102
+
103
+ .slick-slide.slick-loading img {
104
+ display: none;
105
+ }
106
+
107
+ .slick-slide.dragging img {
108
+ pointer-events: none;
109
+ }
110
+
111
+ .slick-initialized .slick-slide {
112
+ display: block;
113
+ }
114
+
115
+ .slick-loading .slick-slide {
116
+ visibility: hidden;
117
+ }
118
+
119
+ .slick-vertical .slick-slide {
120
+ display: block;
121
+
122
+ height: auto;
123
+
124
+ border: 1px solid transparent;
125
+ }
126
+
127
+ .slick-arrow.slick-hidden {
128
+ display: none;
129
+ }
@@ -0,0 +1,15 @@
1
+ /*
2
+ _ _ _ _
3
+ ___| (_) ___| | __ (_)___
4
+ / __| | |/ __| |/ / | / __|
5
+ \__ \ | | (__| < _ | \__ \
6
+ |___/_|_|\___|_|\_(_)/ |___/
7
+ |__/
8
+ Version: 1.8.1
9
+ Author: Ken Wheeler
10
+ Website: http://kenwheeler.github.io
11
+ Docs: http://kenwheeler.github.io/slick
12
+ Repo: http://github.com/kenwheeler/slick
13
+ Issues: http://github.com/kenwheeler/slick/issues
14
+ */
15
+ .slick-slider{position:relative;display:block;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{position:relative;display:block;overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-track,.slick-slider .slick-list{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{position:relative;top:0;left:0;display:block;margin-left:auto;margin-right:auto}.slick-track:before,.slick-track:after{display:table;content:''}.slick-track:after{clear:both}.slick-loading .slick-track{visibility:hidden}.slick-slide{display:none;float:left;height:100%;min-height:1px}[dir='rtl'] .slick-slide{float:right}.slick-slide img{display:block}.slick-slide.slick-loading img{display:none}.slick-slide.dragging img{pointer-events:none}.slick-initialized .slick-slide{display:block}.slick-loading .slick-slide{visibility:hidden}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by Fontastic.me</metadata>
5
+ <defs>
6
+ <font id="slick" horiz-adv-x="512">
7
+ <font-face font-family="slick" units-per-em="512" ascent="480" descent="-32"/>
8
+ <missing-glyph horiz-adv-x="512" />
9
+
10
+ <glyph unicode="&#8594;" d="M241 113l130 130c4 4 6 8 6 13 0 5-2 9-6 13l-130 130c-3 3-7 5-12 5-5 0-10-2-13-5l-29-30c-4-3-6-7-6-12 0-5 2-10 6-13l87-88-87-88c-4-3-6-8-6-13 0-5 2-9 6-12l29-30c3-3 8-5 13-5 5 0 9 2 12 5z m234 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
11
+ <glyph unicode="&#8592;" d="M296 113l29 30c4 3 6 7 6 12 0 5-2 10-6 13l-87 88 87 88c4 3 6 8 6 13 0 5-2 9-6 12l-29 30c-3 3-8 5-13 5-5 0-9-2-12-5l-130-130c-4-4-6-8-6-13 0-5 2-9 6-13l130-130c3-3 7-5 12-5 5 0 10 2 13 5z m179 143c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
12
+ <glyph unicode="&#8226;" d="M475 256c0-40-9-77-29-110-20-34-46-60-80-80-33-20-70-29-110-29-40 0-77 9-110 29-34 20-60 46-80 80-20 33-29 70-29 110 0 40 9 77 29 110 20 34 46 60 80 80 33 20 70 29 110 29 40 0 77-9 110-29 34-20 60-46 80-80 20-33 29-70 29-110z"/>
13
+ <glyph unicode="&#97;" d="M475 439l0-128c0-5-1-9-5-13-4-4-8-5-13-5l-128 0c-8 0-13 3-17 11-3 7-2 14 4 20l40 39c-28 26-62 39-100 39-20 0-39-4-57-11-18-8-33-18-46-32-14-13-24-28-32-46-7-18-11-37-11-57 0-20 4-39 11-57 8-18 18-33 32-46 13-14 28-24 46-32 18-7 37-11 57-11 23 0 44 5 64 15 20 9 38 23 51 42 2 1 4 3 7 3 3 0 5-1 7-3l39-39c2-2 3-3 3-6 0-2-1-4-2-6-21-25-46-45-76-59-29-14-60-20-93-20-30 0-58 5-85 17-27 12-51 27-70 47-20 19-35 43-47 70-12 27-17 55-17 85 0 30 5 58 17 85 12 27 27 51 47 70 19 20 43 35 70 47 27 12 55 17 85 17 28 0 55-5 81-15 26-11 50-26 70-45l37 37c6 6 12 7 20 4 8-4 11-9 11-17z"/>
14
+ </font></defs></svg>