j1-template 2023.4.1 → 2023.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/layout_metadata_generator.html +8 -0
  3. data/assets/data/masterslider.html +1 -1
  4. data/assets/error_pages/HTTP204.html +2 -2
  5. data/assets/error_pages/HTTP400.html +2 -2
  6. data/assets/error_pages/HTTP401.html +2 -2
  7. data/assets/error_pages/HTTP403.html +2 -2
  8. data/assets/error_pages/HTTP404.html +2 -2
  9. data/assets/error_pages/HTTP444.html +2 -2
  10. data/assets/error_pages/HTTP500.html +2 -2
  11. data/assets/error_pages/HTTP501.html +2 -2
  12. data/assets/error_pages/HTTP502.html +2 -2
  13. data/assets/error_pages/HTTP503.html +2 -2
  14. data/assets/themes/j1/adapter/js/advertising.js +1 -0
  15. data/assets/themes/j1/adapter/js/algolia.js +1 -0
  16. data/assets/themes/j1/adapter/js/analytics.js +3 -2
  17. data/assets/themes/j1/adapter/js/asciidoctor.js +1 -0
  18. data/assets/themes/j1/adapter/js/bmd.js +1 -0
  19. data/assets/themes/j1/adapter/js/carousel.js +1 -0
  20. data/assets/themes/j1/adapter/js/clipboard.js +1 -0
  21. data/assets/themes/j1/adapter/js/comments.js +1 -0
  22. data/assets/themes/j1/adapter/js/cookieConsent.js +6 -5
  23. data/assets/themes/j1/adapter/js/customFunctions.js +1 -0
  24. data/assets/themes/j1/adapter/js/customModule.js +1 -0
  25. data/assets/themes/j1/adapter/js/dropdowns.js +1 -0
  26. data/assets/themes/j1/adapter/js/fab.js +1 -0
  27. data/assets/themes/j1/adapter/js/framer.js +1 -0
  28. data/assets/themes/j1/adapter/js/justifiedGallery.js +1 -0
  29. data/assets/themes/j1/adapter/js/justifiedGalleryCustomizer.js +1 -1
  30. data/assets/themes/j1/adapter/js/lazyLoader.js +1 -0
  31. data/assets/themes/j1/adapter/js/lightbox.js +1 -0
  32. data/assets/themes/j1/adapter/js/logger.js +1 -0
  33. data/assets/themes/j1/adapter/js/lunr.js +1 -0
  34. data/assets/themes/j1/adapter/js/masonry.js +1 -0
  35. data/assets/themes/j1/adapter/js/masterslider.js +1 -0
  36. data/assets/themes/j1/adapter/js/mmenu.js +1 -0
  37. data/assets/themes/j1/adapter/js/navigator.js +1 -0
  38. data/assets/themes/j1/adapter/js/particles.js +1 -0
  39. data/assets/themes/j1/adapter/js/rangeSlider.js +1 -0
  40. data/assets/themes/j1/adapter/js/rouge.js +2 -1
  41. data/assets/themes/j1/adapter/js/rtable.js +1 -0
  42. data/assets/themes/j1/adapter/js/rtextResizer.js +2 -1
  43. data/assets/themes/j1/adapter/js/scroller.js +1 -0
  44. data/assets/themes/j1/adapter/js/slick.js +3 -2
  45. data/assets/themes/j1/adapter/js/themeToggler.js +1 -0
  46. data/assets/themes/j1/adapter/js/themer.js +1 -0
  47. data/assets/themes/j1/adapter/js/toccer.js +1 -0
  48. data/assets/themes/j1/adapter/js/translator.js +1 -0
  49. data/assets/themes/j1/adapter/js/waves.js +1 -0
  50. data/assets/themes/j1/core/js/template.js +16 -6
  51. data/assets/themes/j1/core/js/template.min.js +1 -1
  52. data/assets/themes/j1/core/js/template.min.js.map +1 -1
  53. data/assets/themes/j1/modules/backstretch/LICENSE-MIT +22 -0
  54. data/assets/themes/j1/modules/backstretch/README.md +411 -0
  55. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.js +1 -3
  56. data/assets/themes/j1/modules/backstretch/js/v2.1.16/backstretch.min.js +1 -2
  57. data/assets/themes/j1/modules/clipboard/js/clipboard.js +0 -1
  58. data/assets/themes/j1/modules/clipboard/js/clipboard.min.js +3 -2
  59. data/assets/themes/j1/modules/dropdowns/js/cash.js +4 -5
  60. data/assets/themes/j1/modules/dropdowns/js/cash.min.js +19 -0
  61. data/assets/themes/j1/modules/dropdowns/js/dropdowns.min.js +20 -0
  62. data/assets/themes/j1/modules/fab/js/cash.js +0 -2
  63. data/assets/themes/j1/modules/fab/js/cash.min.js +20 -0
  64. data/assets/themes/j1/modules/fab/js/fab.min.js +20 -0
  65. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.json +0 -22
  66. data/assets/themes/j1/modules/iconPicker/icons-libraries/mdi-icons-light.min.json +1 -1
  67. data/assets/themes/j1/modules/iconifyAPI/js/iconify.js +13 -0
  68. data/assets/themes/j1/modules/msDropdown/css/themes/uno/msDropdown.css +2 -14
  69. data/assets/themes/j1/modules/msDropdown/css/themes/uno/msDropdown.min.css +3 -2
  70. data/assets/themes/j1/modules/rouge/css/base16/theme.min.css +19 -0
  71. data/assets/themes/j1/modules/rouge/css/base16.dark/theme.min.css +19 -0
  72. data/assets/themes/j1/modules/rouge/css/base16.light/theme.min.css +19 -0
  73. data/assets/themes/j1/modules/rouge/css/base16.monokai/theme.min.css +19 -0
  74. data/assets/themes/j1/modules/rouge/css/base16.monokai.dark/theme.min.css +19 -0
  75. data/assets/themes/j1/modules/rouge/css/base16.monokai.light/theme.min.css +19 -0
  76. data/assets/themes/j1/modules/rouge/css/base16.solarized/theme.min.css +19 -0
  77. data/assets/themes/j1/modules/rouge/css/base16.solarized.dark/theme.min.css +19 -0
  78. data/assets/themes/j1/modules/rouge/css/base16.solarized.light/theme.min.css +19 -0
  79. data/assets/themes/j1/modules/rouge/css/colorful/theme.min.css +19 -0
  80. data/assets/themes/j1/modules/rouge/css/github/theme.min.css +19 -0
  81. data/assets/themes/j1/modules/rouge/css/gruvbox/theme.min.css +19 -0
  82. data/assets/themes/j1/modules/rouge/css/gruvbox.dark/theme.min.css +19 -0
  83. data/assets/themes/j1/modules/rouge/css/gruvbox.light/theme.min.css +19 -0
  84. data/assets/themes/j1/modules/rouge/css/igorpro/theme.min.css +19 -0
  85. data/assets/themes/j1/modules/rouge/css/molokai/theme.min.css +19 -0
  86. data/assets/themes/j1/modules/rouge/css/monokai/theme.min.css +19 -0
  87. data/assets/themes/j1/modules/rouge/css/monokai.sublime/theme.min.css +19 -0
  88. data/assets/themes/j1/modules/rouge/css/pastie/theme.min.css +19 -0
  89. data/assets/themes/j1/modules/rouge/css/thankful_eyes/theme.min.css +19 -0
  90. data/assets/themes/j1/modules/rouge/css/tulip/theme.min.css +19 -0
  91. data/assets/themes/j1/modules/rouge/css/uno.dark/theme.min.css +19 -0
  92. data/assets/themes/j1/modules/rouge/css/uno.light/theme.min.css +19 -0
  93. data/assets/themes/j1/modules/slimSelect/css/select.css +486 -479
  94. data/assets/themes/j1/modules/slimSelect/css/select.min.css +8 -0
  95. data/assets/themes/j1/modules/slimSelect/js/select.js +1834 -1827
  96. data/assets/themes/j1/modules/slimSelect/js/select.min.js +8 -0
  97. data/assets/themes/j1/modules/vimeo/froogaloop/js/froogaloop2.js +4 -0
  98. data/lib/j1/version.rb +1 -1
  99. data/lib/starter_web/README.md +5 -5
  100. data/lib/starter_web/_config.yml +1 -1
  101. data/lib/starter_web/_data/modules/defaults/iconPicker.yml +3 -7
  102. data/lib/starter_web/_data/modules/lazyLoader.yml +5 -5
  103. data/lib/starter_web/_data/modules/navigator_menu.yml +7 -4
  104. data/lib/starter_web/_data/resources.yml +23 -28
  105. data/lib/starter_web/_data/templates/feed.xml +1 -1
  106. data/lib/starter_web/_plugins/index/lunr.rb +1 -1
  107. data/lib/starter_web/package.json +1 -1
  108. data/lib/starter_web/pages/public/learn/bs_sass_variables/bs_sass_variables.adoc +1 -1
  109. data/lib/starter_web/pages/public/learn/core_web_vitals/core_web_vitals.adoc +1 -1
  110. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.asciidoc +1 -0
  111. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_rouge.asciidoc +49 -40
  112. data/lib/starter_web/pages/public/learn/roundtrip/asciidoc_extensions.adoc +0 -1
  113. data/lib/starter_web/pages/public/learn/roundtrip/bootstrap_themes.adoc +20 -16
  114. data/lib/starter_web/pages/public/learn/roundtrip/highlghter_rouge.adoc +205 -0
  115. data/lib/starter_web/pages/public/learn/roundtrip/typography.adoc +3 -3
  116. data/lib/starter_web/pages/public/tools/cheatsheet/gem.adoc +4 -4
  117. data/lib/starter_web/pages/public/tools/cheatsheet/git.adoc +13 -13
  118. data/lib/starter_web/pages/public/tools/cheatsheet/j1.adoc +113 -3
  119. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  120. data/lib/starter_web/utilsrv/package.json +1 -1
  121. metadata +38 -9
  122. data/assets/themes/j1/adapter/js/translator.0.js +0 -498
  123. data/assets/themes/j1/adapter/js/translator.10.js +0 -510
  124. data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.js +0 -1627
  125. data/assets/themes/j1/modules/backstretch/js/v2.1.18/backstretch.min.js +0 -20
  126. data/lib/starter_web/pages/public/learn/roundtrip/_includes/attributes.0.asciidoc +0 -112
  127. /data/assets/themes/j1/modules/masonry/js/{masonry.pkgd.js → masonry.js} +0 -0
  128. /data/assets/themes/j1/modules/masonry/js/{masonry.pkgd.min.js → masonry.min.js} +0 -0
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Scott Robbin
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,411 @@
1
+ Note: This repo is currently looking for maintainers: https://github.com/jquery-backstretch/jquery-backstretch/issues/464
2
+
3
+ # Backstretch
4
+
5
+ Backstretch is a simple jQuery plugin that allows you to add a dynamically-resized, slideshow-capable background image to any page or element. The image will stretch to fit the page/element, and will automatically resize as the window/element size changes.
6
+
7
+ ** We're back in business! Merged `danielgindi/jquery-backstretch`, and all eyes please get back here! **
8
+
9
+ ## Demo
10
+
11
+ There are a couple of examples included with this package, or feel free to check it out live [on the project page itself](http://srobbin.com/jquery-plugins/backstretch/).
12
+
13
+ ## Installation
14
+
15
+ 1. Download/save the JS file from GitHub.
16
+ 2. Install via Bower with the following command.
17
+
18
+ ```
19
+ bower install jquery-backstretch
20
+ ```
21
+
22
+ ## Setup
23
+
24
+ Include the jQuery library (version 1.7 or newer) and Backstretch plugin files in your webpage (preferably at the bottom of the page, before the closing BODY tag):
25
+
26
+ ```html
27
+ <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
28
+ <script src="jquery.backstretch.min.js"></script>
29
+ <script>
30
+ // To attach Backstrech as the body's background
31
+ $.backstretch("path/to/image.jpg");
32
+
33
+ // You may also attach Backstretch to a block-level element
34
+ $(".foo").backstretch("path/to/image.jpg");
35
+
36
+ // If your element defines a background image with CSS, you can omit the argement altogether
37
+ $(".foo").backstretch();
38
+
39
+ // Or, to start a slideshow, just pass in an array of images
40
+ $(".foo").backstretch([
41
+ "path/to/image.jpg",
42
+ "path/to/image2.jpg",
43
+ "path/to/image3.jpg"
44
+ ], {duration: 4000});
45
+
46
+ // Or, to load from a url that can accept a resolution and provide the best image for that resolution
47
+ $(".foo").backstretch([
48
+ "path/to/image.jpg?width={width}&height={height}"
49
+ ]);
50
+
51
+ // Or, to automatically choose from a set of resolutions.
52
+ // The width is the width of the image, and the algorithm chooses the best fit.
53
+ $(".foo").backstretch([
54
+ [
55
+ { width: 1080, url: "path/to/image1_1080.jpg" },
56
+ { width: 720, url: "path/to/image1_720.jpg" },
57
+ { width: 320, url: "path/to/image1_320.jpg" }
58
+ ],
59
+ [
60
+ { width: 1080, url: "path/to/image2_1080.jpg" },
61
+ { width: 720, url: "path/to/image2_720.jpg" },
62
+ { width: 320, url: "path/to/image2_320.jpg" }
63
+ ]
64
+ ]);
65
+
66
+ // If we wanted to specify different images for different pixel-ratios:
67
+ $(".foo").backstretch([
68
+ [
69
+ // Will only be chosed for a @2x device
70
+ { width: 1080, url: "path/to/image1_1080@2x.jpg", pixelRatio: 2 },
71
+
72
+ // Will only be chosed for a @1x device
73
+ { width: 1080, url: "path/to/image1_1080.jpg", pixelRatio: 1 },
74
+
75
+ { width: 720, url: "path/to/image1_720@2x.jpg", pixelRatio: 2 },
76
+ { width: 720, url: "path/to/image1_720.jpg", pixelRatio: 1 },
77
+ { width: 320, url: "path/to/image1_320@2x.jpg", pixelRatio: 2 },
78
+ { width: 320, url: "path/to/image1_320.jpg", pixelRatio: 1 }
79
+ ]
80
+ ]);
81
+
82
+ // If we wanted the browser to automatically choose from a set of resolutions,
83
+ // While considering the pixel-ratio of the device
84
+ $(".foo").backstretch([
85
+ [
86
+ // Will be chosen for a 2160 device or a 1080*2 device
87
+ { width: 2160, url: "path/to/image1_2160.jpg", pixelRatio: "auto" },
88
+
89
+ // Will be chosen for a 1080 device or a 540*2 device
90
+ { width: 1080, url: "path/to/image1_1080.jpg", pixelRatio: "auto" },
91
+
92
+ // Will be chosen for a 1440 device or a 720*2 device
93
+ { width: 1440, url: "path/to/image1_1440.jpg", pixelRatio: "auto" },
94
+ { width: 720, url: "path/to/image1_720.jpg", pixelRatio: "auto" },
95
+ { width: 640, url: "path/to/image1_640.jpg", pixelRatio: "auto" },
96
+ { width: 320, url: "path/to/image1_320.jpg", pixelRatio: "auto" }
97
+ ]
98
+ ]);
99
+ </script>
100
+ ```
101
+
102
+ ## Automatic resolution selection
103
+
104
+ The automatic resolution selection algorithm has multiple options to choose from.
105
+ The default behaviour is that it matches the logical width of the element against the specified image sizes. Which means that an element with a 320px width on a @2x device is still considered as 320px.
106
+ If you want 320px on a @2x device to be considered as 640px, then you can specify `pixelRatio: "auto"` on the specific image resolution.
107
+ However if you want to limit specific images to only be chosen if the device has a certain pixel ratio - you can specify that pixel ratio i.e `pixelRatio: 2.5`.
108
+
109
+ ## Options
110
+
111
+ | Name | Description | Type | Default |
112
+ |------|-------------|------|---------|
113
+ | `alignX` * | This parameter controls the horizontal alignment of the image. Can be 'center'/'left'/'right' or any number between 0.0 and 1.0. | Integer or String | 0.5 |
114
+ | `alignY` * | This parameter controls the vertical alignment of the image. Can be 'center'/'top'/'bottom' or any number between 0.0 and 1.0. | Integer or String | 0.5 |
115
+ | `scale` * | Controls the scaling mode. Can be 'cover'/'fit'/'fit-smaller'/'fill' | String | 'cover' |
116
+ | `transition` * | Type of transition to use. If multiple are specified, then it will be chosed randomly | String or Array<String> | 'fade' |
117
+ | `transitionDuration` * | This is the duration at which the image will transition in. Integers in milliseconds are accepted, as well as standard jQuery speed strings (slow, normal, fast). | Integer or String | 0 |
118
+ | `transitionEasing` * | The easing function that will be used for animations. | Any supported jQuery easing value | *jQuery default* |
119
+ | `animateFirst` | If `true`, the first image will transition in like all the others. | Boolean | true |
120
+ | `fade` * | Sets `transition` to `'fade'` and `transitionDuration` to whatever value was specified. | Integer or String | |
121
+ | `fadeFirst` | Synonym for `animateFirst` | Boolean | true |
122
+ | `duration` * | The amount of time in between slides, when using Backstretch as a slideshow, expressed as the number of milliseconds. | Integer | 5000 |
123
+ | `paused` | For slideshows: Disables the change between slides | Boolean | false |
124
+ | `start` | The index of the image in the array you want to start your slideshow with. | Integer | 0 |
125
+ | `preload` | How many images to preload at once? I.e. Lazy-loading can be enabled by specifying 0. | Integer | 2 |
126
+ | `preloadSize` | How many images to preload in parallel? If we are preloading 5 images for the next slides, we might want to still limit it to only preload 2 or 3 at once, according to the expected available bandwidth. | Integer | 1 |
127
+ | `bypassCss` | Avoid adding any CSS to the IMG element. I.e if you want a dynamic IMG tag that is laid out with the content. | Boolean | false |
128
+ | `alwaysTestWindowResolution` | Always test against window's width instead of the element's width. | Boolean | false |
129
+ | `resolutionRefreshRate` | Threshold for how long to wait before the image resolution will be switched? | Integer | 2500 |
130
+ | `resolutionChangeRatioThreshold` | Threshold for how much should the different in the resolution be before switch image | Number | 0.1 (10%) |
131
+ | `centeredX` | Deprecated. Still works but please do not use it. | Boolean | true |
132
+ | `centeredY` | Deprecated. Still works but please do not use it. | Boolean | true |
133
+
134
+ * Options marked with an `*` can be specified for individual images
135
+
136
+ ## Image definition
137
+
138
+ Each image in the set can be a String specifying the URL for the image, *or* an object with the following options, *or* an array of images for different resolutions to choose between.
139
+ A url can be a url to a video also.
140
+ Currently the plugin will automatically recognize a *youtube* url. If you pass urls to raw videos, you have to specify `isVideo: true`.
141
+
142
+ | Name | Description | Type | Default |
143
+ |------|-------------|------|---------|
144
+ | `url` | The url of the image or video | String | |
145
+ | `alt` | The alternative text for this image (If you want to play along with screen readers) | String | '' |
146
+ | `alignX` | This parameter controls the horizontal alignment of the image. Can be 'center'/'left'/'right' or any number between 0.0 and 1.0. | Integer or String | 0.5 |
147
+ | `alignY` | This parameter controls the vertical alignment of the image. Can be 'center'/'top'/'bottom' or any number between 0.0 and 1.0. | Integer or String | 0.5 |
148
+ | `scale` | Controls the scaling mode. Can be 'cover'/'fit'/'fit-smaller'/'fill' | String | 'cover' |
149
+ | `transition` | Type of transition to use. If multiple are specified, then it will be chosed randomly | String or Array<String> | 'fade' |
150
+ | `transitionDuration` | This is the duration at which the image will transition in. Integers in milliseconds are accepted, as well as standard jQuery speed strings (slow, normal, fast). | Integer or String | 0 |
151
+ | `transitionEasing` | The easing function that will be used for animations. | Any supported jQuery easing value | *jQuery default* |
152
+ | `fade` | Sets `transition` to `'fade'` and `transitionDuration` to whatever value was specified. | Integer or String | |
153
+ | `duration` | The amount of time in between slides, when using Backstretch as a slideshow, expressed as the number of milliseconds. | Integer | 5000 |
154
+ | `isVideo` | Tell the plugin the this is a video (if cannot be recognized automatically) | Boolean | false |
155
+ | `loop` | Should the video be looped? If yes, then the duration will be used to determine when to stop. | Boolean | false |
156
+ | `mute` | Should the video be muted? | Boolean | true |
157
+ | `poster` | This is for specifying the `poster` attribute in standard <video> tags | String | |
158
+
159
+ ## Per-resolution-image definition
160
+
161
+ If you have specified an array of resolutions for a single image, then these are the available options:
162
+
163
+ | Name | Description | Type | Default |
164
+ |------|-------------|------|---------|
165
+ | `url` | The url of the image | String | |
166
+ | `url` for `<video>` | Instead of a single `url`, an array of sources can be specified. Each source has a `src` and `type` attributes. | Array of `{ src, type }` | |
167
+ | `alt` | The alternative text for this image (If you want to play along with screen readers) | String | '' |
168
+ | `width` | The width of the image | Integer | |
169
+ | `pixelRatio` | A strict rule to only choose for the specified device pixel ratio. If set to 'auto', then the element's width will first be multiplied by the device's pixel ratio before evaluating. | Number or "auto" | undefined |
170
+ | `deviceOrientation` | Restrict image selection to specific device orientation | `'landscape'` or `'portrait'` | undefined |
171
+ | `windowOrientation` | Restrict image selection to specific window orientation (based on current window's inner width/height) | `'landscape'` / `'portrait'` / `'square'` | undefined |
172
+ | `orientation` | Restrict image selection to the element's orientation based on the element's current inner width/height) | `'landscape'` / `'portrait'` / `'square'` | undefined |
173
+ | `alignX` | This parameter controls the horizontal alignment of the image. Can be 'center'/'left'/'right' or any number between 0.0 and 1.0. | Integer or String | 0.5 |
174
+ | `alignY` | This parameter controls the vertical alignment of the image. Can be 'center'/'top'/'bottom' or any number between 0.0 and 1.0. | Integer or String | 0.5 |
175
+ | `scale` | Controls the scaling mode. Can be 'cover'/'fit'/'fit-smaller'/'fill' | String | 'cover' |
176
+ | `fade` | This is the speed at which the image will fade in. Integers in milliseconds are accepted, as well as standard jQuery speed strings (slow, normal, fast). | Integer or String | 0 |
177
+ | `duration` | The amount of time in between slides, when using Backstretch as a slideshow, expressed as the number of milliseconds. | Integer | 5000 |
178
+
179
+ ## Transitions
180
+
181
+ * `'fade'`
182
+ * `'fade_in_out'` / `'fadeInOut'`
183
+ * `'push_left'` / `'pushLeft'`
184
+ * `'push_right'` / `'pushRight'`
185
+ * `'push_up'` / `'pushUp'`
186
+ * `'push_down'` / `'pushDown'`
187
+ * `'cover_left'` / `'coverLeft'`
188
+ * `'cover_right'` / `'coverRight'`
189
+ * `'cover_up'` / `'coverUp'`
190
+ * `'cover_down'` / `'coverDown'`
191
+
192
+ ## Notes about video support:
193
+
194
+ * If the video is not in `loop` mode, then it will play until the end. You have to specify a duration for the specific video in order to limit its playing duration.
195
+ * Mobile browsers do not allow playback of videos without the users tapping a play button... So you may want to detect those and supply different media arrays for those browsers.
196
+
197
+ ## Slideshow API
198
+
199
+ Once you've instantiated a Backstretch slideshow, there are many actions that you can perform it:
200
+
201
+ ```javascript
202
+ // Start a slideshow
203
+ $('.foo').backstretch([
204
+ 'path/to/image.jpg',
205
+ 'path/to/image2.jpg',
206
+ 'path/to/image3.jpg'
207
+ ]);
208
+
209
+ // Slideshow with granular control
210
+ $('.foo').backstretch([
211
+ { url: 'path/to/image.jpg', duration: 3000 }
212
+ { url: 'path/to/image2.jpg', fade: 250 },
213
+ { url: 'path/to/image3.jpg', alignY: 0.2 }
214
+ ]);
215
+
216
+ // Pause the slideshow
217
+ $('.foo').backstretch("pause");
218
+
219
+ // Advance to the next slide
220
+ $('.foo').backstretch("next");
221
+ ```
222
+
223
+ | Method | Description |
224
+ |------|-------------|
225
+ | `.backstretch("show", n)` | Jump to the slide at a given index, where n is the number of the image that you'd like to display. Slide number starts at 0. |
226
+ | `.backstretch("prev")` | Display the previous image in a slideshow. |
227
+ | `.backstretch("next")` | Advance to the next image in a slideshow. |
228
+ | `.backstretch("pause")` | Pause the slideshow. |
229
+ | `.backstretch("resume")` | Resume a paused slideshow. |
230
+ | `.backstretch("destroy", preserveBackground)` | Destroy the Backstretch instance. Optionally, you can pass in a Boolean parameter, preserveBackground, to determine whether or not you'd like to keep the current image stretched as the background image. |
231
+ | `.backstretch("resize")` | This method is called automatically when the container (window or block-level element) is resized, however you can always call this manually if needed. |
232
+ | `.backstretch("current")` | This function returns the index of the current slide |
233
+
234
+ ## Public Variables
235
+
236
+ Sometimes, you'll want to access Backstretch's images after you've instantiated the plugin. For example, perhaps you'd like to be able add more images to a slideshow. Doing so is easy. You can access the images array as follows:
237
+
238
+ ```javascript
239
+ $('.foo').backstretch([
240
+ 'path/to/image.jpg',
241
+ 'path/to/image2.jpg',
242
+ 'path/to/image3.jpg'
243
+ ]);
244
+
245
+ // Access the instance
246
+ var instance = $('.foo').data('backstretch');
247
+
248
+ // Then, you can manipulate the images array directly
249
+ instance.images.push('path/to/image4.jpg')
250
+ ```
251
+
252
+ Additionally, the current index of a slideshow is available through the instance as well:
253
+
254
+ ```javascript
255
+ $("body").data("backstretch").index;
256
+ ```
257
+
258
+ ## Events
259
+
260
+ ### backstretch.before
261
+
262
+ Backstretch will fire a "backstretch.before" event before a new image loads, triggering a function that is passed the event, Backstretch instance, and index of the image that will be displayed. If you listen for that event, you can, for example, coordinate other changes to coincide with your slideshow.
263
+
264
+ ```javascript
265
+ $(window).on("backstretch.before", function (e, instance, index) {
266
+ // If we wanted to stop the slideshow after it reached the end
267
+ if (index === instance.images.length - 1) {
268
+ instance.pause();
269
+ };
270
+ });
271
+ ```
272
+
273
+ ### backstretch.after
274
+
275
+ Backstretch will also fire a "backstretch.after" event after the new images has completed loading.
276
+
277
+ ```javascript
278
+ $(window).on("backstretch.after", function (e, instance, index) {
279
+ // Do something
280
+ });
281
+ ```
282
+
283
+ ## Changelog
284
+
285
+ ### Version 2.1.16
286
+
287
+ * New: Added `scale` feature.
288
+
289
+ ### Version 2.1.15
290
+
291
+ * Improvement: Not modifying `background` property, but `background-image`, to allow CSS to play with colors. (@philsbury)
292
+
293
+ ### Version 2.1.14
294
+
295
+ * New: Added `'deviceOrientation'`, `'windowOrientation'` and `'orientation'` options
296
+
297
+ ### Version 2.1.13
298
+
299
+ * Bugfix: Native video source tags were misspelled
300
+ * Bugfix: Youtube matching regex was not constrained to `youtube.com`/`youtu.be` domain
301
+
302
+ ### Version 2.1.12
303
+
304
+ * New: Added `'fade_in_out'` transition
305
+
306
+ ### Version 2.1.11
307
+
308
+ * Bugfix: Resolution detection routine failed to properly match current url - and cause an additional replace of the image. This affected video urls in a way that caused them to being played from the start.
309
+
310
+ ### Version 2.1.10
311
+
312
+ * Bugfix: `pixelRatio == 'auto'` was ignored due to a missing rule.
313
+
314
+ ### Version 2.1.9
315
+
316
+ * Allow overriding transition options for a single `show(...)` call
317
+ * Bugfix: Next transition can go wrong because of css leftover of previous transition
318
+
319
+ ### Version 2.1.8
320
+
321
+ * Improved method calling through `.backstretch('method', ...)` to pass all arguments, and return value.
322
+ * Added `current()` function to return current slide index.
323
+
324
+ ### Version 2.1.7
325
+
326
+ * Minor documentation improvements. Version release for updated docs in NPM etc.
327
+
328
+ ### Version 2.1.6
329
+
330
+ * Minor fix: `background` css on the target element was sometimes cleared prematurely. (Issue #18)
331
+
332
+ ### Version 2.1.5
333
+
334
+ * Minor fix: `resolutionChangeRatioTreshold` was a typo. Changed to `resolutionChangeRatioThreshold`, but keeping backwards compatibility.
335
+
336
+ ### Version 2.1.4
337
+
338
+ * New: Added more transitions beside fade
339
+ * Bugfix: Youtube Iframe API's `destroy` was not being called
340
+ * Minor documentation updates
341
+
342
+ ### Version 2.1.3
343
+
344
+ * New: Youtube and `<video>` support!
345
+
346
+ ### Version 2.1.2
347
+
348
+ * Bugfix: Executing backstretch methods on already backstretched elements failed
349
+
350
+ ### Version 2.1.1
351
+
352
+ * Published to bower under "jquery-backstretch-2"
353
+
354
+ ### Version 2.1.0
355
+
356
+ * New `alwaysTestWindowResolution` option
357
+ * New `resolutionRefreshRate` option
358
+ * New `resolutionChangeRatioTreshold` option
359
+ * Minor bugfix: If there was no `fade` duration, the new image was still being removed asynchronously. Possibly causing a glitch if custom CSS is used.
360
+
361
+ ### Version 2.0.9
362
+
363
+ * New `alt` image property
364
+ * New `bypassCss` option
365
+
366
+ ### Version 2.0.8
367
+
368
+ * Changed multi-res feature `width`'s meaning. `width` now means the actual width of the image to match against.
369
+ * Added `pixelRatio` option for multires.
370
+
371
+ ### Version 2.0.7
372
+
373
+ * More granular control over options
374
+ * 1. Now you can specify `alignX`/`alignY`/`duration`/`fade` on an image basis
375
+ * 2. Minor bugfixes
376
+ * 3. Deprecated `centeredX`/`centeredY`
377
+
378
+ ### Version 2.0.6
379
+
380
+ * Minor bug fixes due to latest PRs
381
+
382
+ ### Version 2.0.5
383
+
384
+ * New `fadeFirst` feature
385
+ * New `alignX` feature
386
+ * New `alignY` feature
387
+ * New `paused` feature
388
+ * New `start` feature
389
+ * New `preload` feature
390
+ * New `preloadSize` feature
391
+ * New feature: url templates
392
+ * New feature: automatic resolution selection
393
+ * Minor bug fixes
394
+
395
+ ### Version 2.0
396
+
397
+ * Now accepts an array of images to create a slideshow
398
+ * Can attach Backstretch to any block-level element, not just the body
399
+ * Deprecated "speed" option in favor of "fade" for fadeIn timing
400
+ * Added "duration" option, and Slideshow API
401
+
402
+ ### Version 1.2
403
+
404
+ * You can now called backstretch twice, and it will replace the existing image.
405
+
406
+ ### Version 1.1
407
+
408
+ * Added 'centeredX' and 'centeredY' options.
409
+ * Removed 'hideUntilReady' option. It looks pretty bad if you don't hide the image until it's fully loaded.
410
+ * Fixed IE img onload bug.
411
+ * Now supports iPhone/iPad orientation changes.
@@ -8,13 +8,12 @@
8
8
  # http://srobbin.com/jquery-plugins/backstretch/
9
9
  #
10
10
  # Copyright (C) 2023 Juergen Adams
11
- # Copyright (C) 2017 Daniel Cohen Gindi
12
11
  # Copyright (C) 2012 Scott Robbin
13
12
  #
14
13
  # J1 Theme is licensed under the MIT License.
15
14
  # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
16
15
  # Backstretch is licensed under the MIT License.
17
- # See: https://github.com/danielgindi/jquery-backstretch
16
+ # See: https://github.com/jquery-backstretch/jquery-backstretch/blob/2.1.16/LICENSE-MIT
18
17
  # -----------------------------------------------------------------------------
19
18
  */
20
19
 
@@ -28,7 +27,6 @@
28
27
  /* eslint no-prototype-builtins: "off" */
29
28
  /* eslint no-shadow-restricted-names: "off" */
30
29
  // -----------------------------------------------------------------------------
31
- // Version 2.1.16
32
30
 
33
31
  'use strict';
34
32
  (function ($, window, undefined) {
@@ -8,13 +8,12 @@
8
8
  # http://srobbin.com/jquery-plugins/backstretch/
9
9
  #
10
10
  # Copyright (C) 2023 Juergen Adams
11
- # Copyright (C) 2017 Daniel Cohen Gindi
12
11
  # Copyright (C) 2012 Scott Robbin
13
12
  #
14
13
  # J1 Theme is licensed under the MIT License.
15
14
  # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
16
15
  # Backstretch is licensed under the MIT License.
17
- # See: https://github.com/danielgindi/jquery-backstretch
16
+ # See: https://github.com/jquery-backstretch/jquery-backstretch/blob/2.1.16/LICENSE-MIT
18
17
  # -----------------------------------------------------------------------------
19
18
  */
20
19
  "use strict";!function(t,e,i){var o,r=/^.*(youtu\.be\/|youtube\.com\/v\/|youtube\.com\/embed\/|youtube\.com\/watch\?v=|youtube\.com\/watch\?.*\&v=)([^#\&\?]*).*/i;t.fn.backstretch=function(i,o){var r,a=arguments;return 0===t(e).scrollTop()&&e.scrollTo(0,0),this.each(function(e){var n=t(this),s=n.data("backstretch");if(s){if("string"==typeof a[0]&&"function"==typeof s[a[0]]){var h=s[a[0]].apply(s,Array.prototype.slice.call(a,1));return h===s&&(h=void 0),void(void 0!==h&&((r=r||[])[e]=h))}o=t.extend(s.options,o),s.hasOwnProperty("destroy")&&s.destroy(!0)}if(!i||i&&0===i.length){var c=n.css("background-image");c&&"none"!==c?i=[{url:n.css("backgroundImage").replace(/url\(|\)|"|'/g,"")}]:t.error("No images were supplied for Backstretch, or element must have a CSS-defined background image.")}s=new w(this,i,o||{}),n.data("backstretch",s)}),r?1===r.length?r[0]:r:this},t.backstretch=function(e,i){return t("body").backstretch(e,i).data("backstretch")},t.expr[":"].backstretch=function(e){return void 0!==t(e).data("backstretch")},t.fn.backstretch.defaults={debug:!1,duration:5e3,transition:"fade",transitionDuration:0,animateFirst:!0,alignX:.5,alignY:.5,paused:!1,start:0,preload:2,preloadSize:1,resolutionRefreshRate:2500,resolutionChangeRatioThreshold:.1};var a,n,s,h,c,d,l={wrap:{left:0,top:0,overflow:"hidden",margin:0,padding:0,height:"100%",width:"100%",zIndex:-999999},itemWrapper:{position:"absolute",display:"none",margin:0,padding:0,border:"none",width:"100%",height:"100%",zIndex:-999999},item:{position:"absolute",margin:0,padding:0,border:"none",width:"100%",height:"100%",maxWidth:"none"}},u=(a=function(t){for(var e=1;e<t.length;e++){for(var i=t[e],o=e;t[o-1]&&parseInt(t[o-1].width,10)>parseInt(i.width,10);)t[o]=t[o-1],--o;t[o]=i}return t},n=function(t,i,o){for(var r,a,n=e.devicePixelRatio||1,s=S(),h=(z(),i>t?"portrait":t>i?"landscape":"square"),c=0,d=0;d<o.length&&("string"==typeof(a=o[d])&&(a=o[d]={url:a}),a.pixelRatio&&"auto"!==a.pixelRatio&&parseFloat(a.pixelRatio)!==n||a.deviceOrientation&&a.deviceOrientation!==s||a.windowOrientation&&a.windowOrientation!==s||a.orientation&&a.orientation!==h||(c=d,r=t,"auto"===a.pixelRatio&&(t*=n),!(a.width>=r)));d++);return o[Math.min(d,c)]},s=function(t,e){if("string"==typeof t)t=t.replace(/{{(width|height)}}/g,e);else if(t instanceof Array)for(var i=0;i<t.length;i++)t[i].src?t[i].src=s(t[i].src,e):t[i]=s(t[i],e);return t},function(e,i){for(var o=e.width(),r=e.height(),h=[],c=function(t,e){return"width"===e?o:"height"===e?r:t},d=0;d<i.length;d++)if(t.isArray(i[d])){i[d]=a(i[d]);var l=n(o,r,i[d]);h.push(l)}else{"string"==typeof i[d]&&(i[d]={url:i[d]});var u=t.extend({},i[d]);u.url=s(u.url,c),h.push(u)}return h}),p=function(t){return r.test(t.url)||t.isVideo},g=(h=[],c=function(t){for(var e=0;e<h.length;e++)if(h[e].src===t.src)return h[e];return h.push(t),t},d=function(t,e,i){"function"==typeof e&&e.call(t,i)},function e(i,o,r,a,n){if(void 0!==i){t.isArray(i)||(i=[i]),arguments.length<5&&"function"==typeof arguments[arguments.length-1]&&(n=arguments[arguments.length-1]),o="function"!=typeof o&&o?o:0,r="function"==typeof r||!r||r<0?i.length:Math.min(r,i.length),a="function"!=typeof a&&a?a:1,o>=i.length&&(o=0,r=0),a<0&&(a=r),a=Math.min(a,r);var s=i.slice(o+a,r-a);if(i=i.slice(o,a),r=i.length)for(var h,l=0,u=function(){++l===r&&(d(i,n,!s),e(s,0,0,a,n))},g=0;g<i.length;g++)p(i[g])||((h=new Image).src=i[g].url,(h=c(h)).complete?u():t(h).on("load error",u));else d(i,n,!0)}}),f=function(e){for(var i=[],o=0;o<e.length;o++)"string"==typeof e[o]?i.push({url:e[o]}):t.isArray(e[o])?i.push(f(e[o])):i.push(y(e[o]));return i},y=function(t,i){return(t.centeredX||t.centeredY)&&(e.console&&e.console.log&&e.console.log("jquery.backstretch: `centeredX`/`centeredY` is deprecated, please use `alignX`/`alignY`"),t.centeredX&&(t.alignX=.5),t.centeredY&&(t.alignY=.5)),void 0!==t.speed&&(e.console&&e.console.log&&e.console.log("jquery.backstretch: `speed` is deprecated, please use `transitionDuration`"),t.transitionDuration=t.speed,t.transition="fade"),void 0!==t.resolutionChangeRatioTreshold&&(e.console.log("jquery.backstretch: `treshold` is a typo!"),t.resolutionChangeRatioThreshold=t.resolutionChangeRatioTreshold),void 0!==t.fadeFirst&&(t.animateFirst=t.fadeFirst),void 0!==t.fade&&(t.transitionDuration=t.fade,t.transition="fade"),t.scale&&(t.scale=b(t.scale)),v(t)},v=function(t,e){return"left"===t.alignX?t.alignX=0:"center"===t.alignX?t.alignX=.5:"right"===t.alignX?t.alignX=1:(void 0!==t.alignX||e)&&(t.alignX=parseFloat(t.alignX),isNaN(t.alignX)&&(t.alignX=.5)),"top"===t.alignY?t.alignY=0:"center"===t.alignY?t.alignY=.5:"bottom"===t.alignY?t.alignY=1:(void 0!==t.alignX||e)&&(t.alignY=parseFloat(t.alignY),isNaN(t.alignY)&&(t.alignY=.5)),t},m={cover:"cover",fit:"fit","fit-smaller":"fit-smaller",fill:"fill"};function b(t){return m.hasOwnProperty(t)?t:"cover"}var w=function(i,o,r){this.options=t.extend({},t.fn.backstretch.defaults,r||{}),this.firstShow=!0,y(this.options,!0),this.images=f(t.isArray(o)?o:[o]),this.options.paused&&(this.paused=!0),this.options.start>=this.images.length&&(this.options.start=this.images.length-1),this.options.start<0&&(this.options.start=0),this.isBody=i===document.body;var a=t(e);this.$container=t(i),this.$root=this.isBody?A?a:t(document):this.$container,this.originalImages=this.images,this.images=u(this.options.alwaysTestWindowResolution?a:this.$root,this.originalImages),g(this.images,this.options.start||0,this.options.preload||1);var n=this.$container.children(".backstretch").first();if(this.$wrap=n.length?n:t('<div class="backstretch"></div>').css(this.options.bypassCss?{}:l.wrap).appendTo(this.$container),!this.options.bypassCss){if(!this.isBody){var s=this.$container.css("position"),h=this.$container.css("zIndex");this.$container.css({position:"static"===s?"relative":s,zIndex:"auto"===h?0:h}),this.$wrap.css({zIndex:-999998})}this.$wrap.css({position:this.isBody&&A?"fixed":"absolute"})}this.index=this.options.start,this.show(this.index),a.on("resize.backstretch",t.proxy(this.resize,this)).on("orientationchange.backstretch",t.proxy(function(){this.isBody&&0===e.pageYOffset&&(e.scrollTo(0,1),this.resize())},this))};w.prototype={resize:function(){try{var i=log4javascript.getLogger("j1.core.attic"),r=this.options.alwaysTestWindowResolution?t(e):this.$root,a=r.width(),n=r.height(),s=a/(this._lastResizeContainerWidth||0),h=n/(this._lastResizeContainerHeight||0),c=this.options.resolutionChangeRatioThreshold||0;if((a!==this._lastResizeContainerWidth||n!==this._lastResizeContainerHeight)&&(Math.abs(s-1)>=c||isNaN(s)||Math.abs(h-1)>=c||isNaN(h))&&(this._lastResizeContainerWidth=a,this._lastResizeContainerHeight=n,this.images=u(r,this.originalImages),this.options.preload&&g(this.images,(this.index+1)%this.images.length,this.options.preload),1===this.images.length&&this._currentImage.url!==this.images[0].url)){var d=this;clearTimeout(d._selectAnotherResolutionTimeout),d._selectAnotherResolutionTimeout=setTimeout(function(){d.show(0)},this.options.resolutionRefreshRate)}var l,p,f={left:0,top:0,right:"auto",bottom:"auto"},y=this.isBody?this.$root.width():this.$root.innerWidth(),v=this.isBody?e.innerHeight?e.innerHeight:this.$root.height():this.$root.innerHeight(),m=this.$itemWrapper.data("width"),w=this.$itemWrapper.data("height"),_=m/w||1,$=void 0===this._currentImage.alignX?this.options.alignX:this._currentImage.alignX,k=void 0===this._currentImage.alignY?this.options.alignY:this._currentImage.alignY,x=b(this._currentImage.scale||this.options.scale);if(this.options.debug&&(o="\nresize: boxHeight x boxWidth: "+v+" x "+y,i.debug(o)),0!=v&&0!=y||(o="\nKacke am Schuh",i.warn(o)),"fit"===x||"fit-smaller"===x){if(p=w,(l=m)>y||p>v||"fit-smaller"===x){var T=y/v;T>_?(l=Math.floor(v*_),p=v):T<_?(l=y,p=Math.floor(y/_)):(l=y,p=v)}}else"fill"===x?(l=y,p=v):(l=Math.max(v*_,y),p=Math.max(l/_,v));f.top=-(p-v)*k,f.left=-(l-y)*$,f.width=l,f.height=p,this.options.bypassCss||this.$wrap.css({width:y,height:v}).find(">.backstretch-item").not(".deleteable").each(function(){t(this).find("img,video,iframe").css(f)});var W=t.Event("backstretch.resize",{relatedTarget:this.$container[0]});this.$container.trigger(W,this)}catch(t){o="resize: jadams, IE7 hack to let it fail gracefully: "+t,i.warn(o)}return this},show:function(e,i){var o=log4javascript.getLogger("j1.core.attic");if(!(Math.abs(e)>this.images.length-1)){var r=this,a=r.$wrap.find(">.backstretch-item").addClass("deleteable"),n=r.videoWrapper,s={relatedTarget:r.$container[0]};r.$container.trigger(t.Event("backstretch.before",s),[r,e]),this.index=e;var h=r.images[e];clearTimeout(r._cycleTimeout),delete r.videoWrapper;var c=p(h);return c?(r.videoWrapper=new _(h),r.$item=r.videoWrapper.$video.css("pointer-events","none")):r.$item=t("<img />"),r.$itemWrapper=t('<div class="backstretch-item">').append(r.$item),this.options.bypassCss?r.$itemWrapper.css({display:"none"}):(r.$itemWrapper.css(l.itemWrapper),r.$item.css(l.item)),r.$item.bind(c?"canplay":"load",function(h){var d=t(this).parent(),l=d.data("options");i&&(l=t.extend({},l,i));var u=this.naturalWidth||this.videoWidth||this.width,p=this.naturalHeight||this.videoHeight||this.height;d.data("width",u).data("height",p);var g=function(t){return void 0!==l[t]?l[t]:r.options[t]},f=g("transition"),y=g("transitionEasing"),v=g("transitionDuration"),m=function(){n&&(n.stop(),n.destroy()),a.remove(),!r.paused&&r.images.length>1&&r.cycle(),!r.options.bypassCss&&r.isBody,t(["before","after","show"]).each(function(){r.$container.trigger(t.Event("backstretch."+this,s),[r,e])}),c&&r.videoWrapper.play()};r.firstShow&&!r.options.animateFirst||!v||!f?(d.show(),m()):function(e){var i=e.transition||"fade";"string"==typeof i&&i.indexOf("|")>-1&&(i=i.split("|")),i instanceof Array&&(i=i[Math.round(Math.random()*(i.length-1))]);var o=e.new,r=e.old?e.old:t([]);switch(i.toString().toLowerCase()){default:case"fade":o.fadeIn({duration:e.duration,complete:e.complete,easing:e.easing||void 0});break;case"fadeinout":case"fade_in_out":var a=function(){o.fadeIn({duration:e.duration/2,complete:e.complete,easing:e.easing||void 0})};r.length?r.fadeOut({duration:e.duration/2,complete:a,easing:e.easing||void 0}):a();break;case"pushleft":case"push_left":case"pushright":case"push_right":case"pushup":case"push_up":case"pushdown":case"push_down":case"coverleft":case"cover_left":case"coverright":case"cover_right":case"coverup":case"cover_up":case"coverdown":case"cover_down":var n=i.match(/^(cover|push)_?(.*)$/),s="left"===n[2]?"right":"right"===n[2]?"left":"down"===n[2]?"top":"up"===n[2]?"bottom":"right",h={display:""},c={};if(h[s]="-100%",c[s]=0,o.css(h).animate(c,{duration:e.duration,complete:function(){o.css(s,""),e.complete.apply(this,arguments)},easing:e.easing||void 0}),"push"===n[1]&&r.length){var d={};d[s]="100%",r.animate(d,{duration:e.duration,complete:function(){r.css("display","none")},easing:e.easing||void 0})}}}({new:d,old:a,transition:f,duration:v,easing:y,complete:m}),r.firstShow=!1;var b=this.naturalWidth||this.videoWidth||this.width,w="show: imageHeight x imageWidth: "+(this.naturalHeight||this.videoHeight||this.height)+" x "+b;r.options.debug&&o.debug(w);var _="#"+r.$container[0].id,$=setInterval(function(){t(_).is(":visible")&&(clearInterval($),o.info("\ncontainer visible on id: "+_),r.resize())},50)}),r.$itemWrapper.appendTo(r.$wrap),r.$item.attr("alt",h.alt||""),r.$itemWrapper.data("options",h),c||r.$item.attr("src",h.url),r._currentImage=h,r}},current:function(){return this.index},next:function(){var t=Array.prototype.slice.call(arguments,0);return t.unshift(this.index<this.images.length-1?this.index+1:0),this.show.apply(this,t)},prev:function(){var t=Array.prototype.slice.call(arguments,0);return t.unshift(0===this.index?this.images.length-1:this.index-1),this.show.apply(this,t)},pause:function(){return this.paused=!0,this.videoWrapper&&this.videoWrapper.pause(),this},resume:function(){return this.paused=!1,this.videoWrapper&&this.videoWrapper.play(),this.cycle(),this},cycle:function(){if(this.images.length>1){clearTimeout(this._cycleTimeout);var e=this._currentImage&&this._currentImage.duration||this.options.duration,i=p(this._currentImage),o=function(){this.$item.off(".cycle"),this.paused||this.next()};if(i){if(!this._currentImage.loop){var r=0;this.$item.on("playing.cycle",function(){var e=t(this).data("player");clearTimeout(r),void 0!==e&&(r=setTimeout(function(){e.pause(),e.$video.trigger("ended")},1e3*(e.getDuration()-e.getCurrentTime())))}).on("ended.cycle",function(){clearTimeout(r)})}this.$item.on("error.cycle initerror.cycle",t.proxy(o,this))}i&&!this._currentImage.duration?this.$item.on("ended.cycle",t.proxy(o,this)):this._cycleTimeout=setTimeout(t.proxy(o,this),e)}return this},destroy:function(i){t(e).off("resize.backstretch orientationchange.backstretch"),this.videoWrapper&&this.videoWrapper.destroy(),clearTimeout(this._cycleTimeout),i||this.$wrap.remove(),this.$container.removeData("backstretch")}};var _=function(){this.init.apply(this,arguments)};_.prototype.init=function(i){var o,a=this,n=function(){a.$video=o,a.video=o[0]},s="video";if(i.url instanceof Array||!r.test(i.url)||(s="youtube"),a.type=s,"youtube"===s){_.loadYoutubeAPI(),a.ytId=i.url.match(r)[2];var h="https://www.youtube.com/embed/"+a.ytId+"?rel=0&autoplay=0&showinfo=0&controls=0&modestbranding=1&cc_load_policy=0&disablekb=1&iv_load_policy=3&loop=0&enablejsapi=1&origin="+encodeURIComponent(e.location.origin);a.__ytStartMuted=!!i.mute||void 0===i.mute,o=t("<iframe />").attr({src_to_load:h}).css({border:0,margin:0,padding:0}).data("player",a),i.loop&&o.on("ended.loop",function(){a.__manuallyStopped||a.play()}),a.ytReady=!1,n(),e.YT?(a._initYoutube(),o.trigger("initsuccess")):t(e).one("youtube_api_load",function(){a._initYoutube(),o.trigger("initsuccess")})}else{o=t("<video>").prop("autoplay",!1).prop("controls",!1).prop("loop",!!i.loop).prop("muted",!!i.mute||void 0===i.mute).prop("preload","auto").prop("poster",i.poster||"");for(var c=i.url instanceof Array?i.url:[i.url],d=0;d<c.length;d++){var l=c[d];"string"==typeof l&&(l={src:l}),t("<source>").attr("src",l.src).attr("type",l.type||null).appendTo(o)}o[0].canPlayType&&c.length?o.trigger("initsuccess"):o.trigger("initerror"),n()}},_.prototype._initYoutube=function(){var i=this,o=e.YT;i.$video.attr("src",i.$video.attr("src_to_load")).removeAttr("src_to_load");var r=!!i.$video[0].parentNode;if(!r){var a=t("<div>").css("display","none !important").appendTo(document.body);i.$video.appendTo(a)}var n=new o.Player(i.video,{events:{onReady:function(){i.__ytStartMuted&&n.mute(),r||(i.$video[0].parentNode===a[0]&&i.$video.detach(),a.remove()),i.ytReady=!0,i._updateYoutubeSize(),i.$video.trigger("canplay")},onStateChange:function(t){switch(t.data){case o.PlayerState.PLAYING:i.$video.trigger("playing");break;case o.PlayerState.ENDED:i.$video.trigger("ended");break;case o.PlayerState.PAUSED:i.$video.trigger("pause");break;case o.PlayerState.BUFFERING:i.$video.trigger("waiting");break;case o.PlayerState.CUED:i.$video.trigger("canplay")}},onPlaybackQualityChange:function(){i._updateYoutubeSize(),i.$video.trigger("resize")},onError:function(t){i.hasError=!0,i.$video.trigger({type:"error",error:t})}}});return i.ytPlayer=n,i},_.prototype._updateYoutubeSize=function(){switch(this.ytPlayer.getPlaybackQuality()||"medium"){case"small":this.video.videoWidth=426,this.video.videoHeight=240;break;case"medium":this.video.videoWidth=640,this.video.videoHeight=360;break;default:case"large":this.video.videoWidth=854,this.video.videoHeight=480;break;case"hd720":this.video.videoWidth=1280,this.video.videoHeight=720;break;case"hd1080":this.video.videoWidth=1920,this.video.videoHeight=1080;break;case"highres":this.video.videoWidth=2560,this.video.videoHeight=1440}return this},_.prototype.play=function(){return this.__manuallyStopped=!1,"youtube"===this.type?this.ytReady&&(this.$video.trigger("play"),this.ytPlayer.playVideo()):this.video.play(),this},_.prototype.pause=function(){return this.__manuallyStopped=!1,"youtube"===this.type?this.ytReady&&this.ytPlayer.pauseVideo():this.video.pause(),this},_.prototype.stop=function(){return this.__manuallyStopped=!0,"youtube"===this.type?this.ytReady&&(this.ytPlayer.pauseVideo(),this.ytPlayer.seekTo(0)):(this.video.pause(),this.video.currentTime=0),this},_.prototype.destroy=function(){return this.ytPlayer&&this.ytPlayer.destroy(),this.$video.remove(),this},_.prototype.getCurrentTime=function(t){return"youtube"!==this.type?this.video.currentTime:this.ytReady?this.ytPlayer.getCurrentTime():0},_.prototype.setCurrentTime=function(t){return"youtube"===this.type?this.ytReady&&this.ytPlayer.seekTo(t,!0):this.video.currentTime=t,this},_.prototype.getDuration=function(){return"youtube"!==this.type?this.video.duration:this.ytReady?this.ytPlayer.getDuration():0},_.loadYoutubeAPI=function(){if(!e.YT){t("script[src*=www\\.youtube\\.com\\/iframe_api]").length||t('<script type="text/javascript" src="https://www.youtube.com/iframe_api">').appendTo("body");var i=setInterval(function(){e.YT&&e.YT.loaded&&(t(e).trigger("youtube_api_load"),clearTimeout(i))},50)}};var $,k,x,T,W,I,R,Y,P,C,S=function(){if("matchMedia"in e){if(e.matchMedia("(orientation: portrait)").matches)return"portrait";if(e.matchMedia("(orientation: landscape)").matches)return"landscape"}return screen.height>screen.width?"portrait":"landscape"},z=function(){return e.innerHeight>e.innerWidth?"portrait":e.innerWidth>e.innerHeight?"landscape":"square"},A=($=navigator.userAgent,k=navigator.platform,x=$.match(/AppleWebKit\/([0-9]+)/),T=!!x&&x[1],W=$.match(/Fennec\/([0-9]+)/),I=!!W&&W[1],R=$.match(/Opera Mobi\/([0-9]+)/),Y=!!R&&R[1],P=$.match(/MSIE ([0-9]+)/),C=!!P&&P[1],!((k.indexOf("iPhone")>-1||k.indexOf("iPad")>-1||k.indexOf("iPod")>-1)&&T&&T<534||e.operamini&&"[object OperaMini]"==={}.toString.call(e.operamini)||R&&Y<7458||$.indexOf("Android")>-1&&T&&T<533||I&&I<6||"palmGetResource"in e&&T&&T<534||$.indexOf("MeeGo")>-1&&$.indexOf("NokiaBrowser/8.5.0")>-1||C&&C<=6))}(jQuery,window);
@@ -5,7 +5,6 @@
5
5
  * Licensed MIT © Zeno Rocha
6
6
  * https://github.com/zenorocha/clipboard.js/blob/master/LICENSE
7
7
  */
8
-
9
8
  (function webpackUniversalModuleDefinition(root, factory) {
10
9
  if(typeof exports === 'object' && typeof module === 'object')
11
10
  module.exports = factory();
@@ -1,7 +1,8 @@
1
1
  /*!
2
- * clipboard.js v2.0.6
2
+ * clipboard.min.js v2.0.6
3
3
  * https://clipboardjs.com/
4
4
  *
5
5
  * Licensed MIT © Zeno Rocha
6
- */
6
+ * https://github.com/zenorocha/clipboard.js/blob/master/LICENSE
7
+ */
7
8
  !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return o={},r.m=n=[function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n,t.exports.TinyEmitter=n},function(t,e,n){var d=n(3),h=n(4);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!d.string(e))throw new TypeError("Second argument must be a String");if(!d.fn(n))throw new TypeError("Third argument must be a Function");if(d.node(t))return s=e,f=n,(u=t).addEventListener(s,f),{destroy:function(){u.removeEventListener(s,f)}};if(d.nodeList(t))return a=t,c=e,l=n,Array.prototype.forEach.call(a,function(t){t.addEventListener(c,l)}),{destroy:function(){Array.prototype.forEach.call(a,function(t){t.removeEventListener(c,l)})}};if(d.string(t))return o=t,r=e,i=n,h(document.body,o,r,i);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,a,c,l,u,s,f}},function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var a=n(5);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=a(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}},function(t,e,n){"use strict";n.r(e);var o=n(0),r=n.n(o),i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};function a(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}function c(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,c),this.resolveOptions(t),this.initSelection()}var l=(function(t,e,n){return e&&a(t.prototype,e),n&&a(t,n),t}(c,[{key:"resolveOptions",value:function(t){var e=0<arguments.length&&void 0!==t?t:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=r()(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=r()(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),document.activeElement.blur(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(t){var e=0<arguments.length&&void 0!==t?t:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),c),u=n(1),s=n.n(u),f=n(2),d=n.n(f),h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=function(t,e,n){return e&&y(t.prototype,e),n&&y(t,n),t};function y(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}var m=(function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(v,s.a),p(v,[{key:"resolveOptions",value:function(t){var e=0<arguments.length&&void 0!==t?t:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===h(e.container)?e.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=d()(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new l({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return b("action",t)}},{key:"defaultTarget",value:function(t){var e=b("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return b("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(t){var e=0<arguments.length&&void 0!==t?t:["copy","cut"],n="string"==typeof e?[e]:e,o=!!document.queryCommandSupported;return n.forEach(function(t){o=o&&!!document.queryCommandSupported(t)}),o}}]),v);function v(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,v);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(v.__proto__||Object.getPrototypeOf(v)).call(this));return n.resolveOptions(e),n.listenClick(t),n}function b(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}e.default=m}],r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=6).default;function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}var n,o});
@@ -1,20 +1,19 @@
1
1
  /*
2
2
  # -----------------------------------------------------------------------------
3
3
  # ~/assets/themes/j1/modules/fam/js/cash.js
4
- # MODIFIED old Cash version 1.3.5 from Materialize used by J1 Module FAM
4
+ # MODIFIED old Cash version v1.3.5 from Materialize used by J1 Module FAMs
5
5
  #
6
6
  # Product/Info:
7
7
  # https://jekyll.one
8
- # https://github.com/fabiospampinato/cash
8
+ * https://github.com/fabiospampinato/cash/tree/1.3.5
9
9
  #
10
+ # Copyright (c) 2014 Ken Wheeler
10
11
  # Copyright (C) 2023 Juergen Adams
11
12
  #
12
13
  # Cash is licensed under the MIT License.
13
14
  # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
14
15
  # J1 Theme is licensed under the MIT License.
15
- # See: https://github.com/fabiospampinato/cash/blob/master/LICENSE.md
16
- # -----------------------------------------------------------------------------
17
- # NOTE: cash-dom 1.3.5, https://github.com/kenwheeler/cash
16
+ # See: https://github.com/fabiospampinato/cash/blob/1.3.5/LICENSE.md
18
17
  # -----------------------------------------------------------------------------
19
18
  */
20
19
  (function (factory) {
@@ -0,0 +1,19 @@
1
+ /*
2
+ # -----------------------------------------------------------------------------
3
+ # ~/assets/themes/j1/modules/fam/js/cash.min.js
4
+ # MODIFIED old Cash version v1.3.5 from Materialize used by J1 Module FAMs
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ * https://github.com/fabiospampinato/cash/tree/1.3.5
9
+ #
10
+ # Copyright (c) 2014 Ken Wheeler
11
+ # Copyright (C) 2023 Juergen Adams
12
+ #
13
+ # Cash is licensed under the MIT License.
14
+ # See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE.md
15
+ # J1 Theme is licensed under the MIT License.
16
+ # See: https://github.com/fabiospampinato/cash/blob/1.3.5/LICENSE.md
17
+ # -----------------------------------------------------------------------------
18
+ */
19
+ window.cash=function(){var t,e=document,n=window,r=Array.prototype,i=r.slice,u=r.filter,o=r.push,s=function(){},c=function(t){return"function"==typeof t&&t.call},a=function(t){return"string"==typeof t},f=/^#[\w-]*$/,h=/^\.[\w-]*$/,l=/<.+>/,d=/^\w+$/;function v(t,n){n=n||e;var r=h.test(t)?n.getElementsByClassName(t.slice(1)):d.test(t)?n.getElementsByTagName(t):n.querySelectorAll(t);return r}function p(n){if(!t){var r=(t=e.implementation.createHTMLDocument(null)).createElement("base");r.href=e.location.href,t.head.appendChild(r)}return t.body.innerHTML=n,t.body.childNodes}function m(t){"loading"!==e.readyState?t():e.addEventListener("DOMContentLoaded",t)}function g(t,r){if(!t)return this;if(t.cash&&t!==n)return t;var i,u=t,o=0;if(a(t))u=f.test(t)?e.getElementById(t.slice(1)):l.test(t)?p(t):v(t,r);else if(c(t))return m(t),this;if(!u)return this;if(u.nodeType||u===n)this[0]=u,this.length=1;else for(i=this.length=u.length;o<i;o++)this[o]=u[o];return this}function y(t,e){return new g(t,e)}var b=y.fn=y.prototype=g.prototype={cash:!0,length:0,push:o,splice:r.splice,map:r.map,init:g};function x(t,e){for(var n=t.length,r=0;r<n&&!1!==e.call(t[r],t[r],r,t);r++);}function N(t,e){var n=t&&(t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector||t.oMatchesSelector);return!!n&&n.call(t,e)}function L(t){return a(t)?N:t.cash?function(e){return t.is(e)}:function(t,e){return t===e}}function C(t){return y(i.call(t).filter(function(t,e,n){return n.indexOf(t)===e}))}Object.defineProperty(b,"constructor",{value:y}),y.parseHTML=p,y.noop=s,y.isFunction=c,y.isString=a,y.extend=b.extend=function(t){t=t||{};var e=i.call(arguments),n=e.length,r=1;for(1===e.length&&(t=this,r=0);r<n;r++)if(e[r])for(var u in e[r])e[r].hasOwnProperty(u)&&(t[u]=e[r][u]);return t},y.extend({merge:function(t,e){for(var n=+e.length,r=t.length,i=0;i<n;r++,i++)t[r]=e[i];return t.length=r,t},each:x,matches:N,unique:C,isArray:Array.isArray,isNumeric:function(t){return!isNaN(parseFloat(t))&&isFinite(t)}});var E=y.uid="_cash"+Date.now();function w(t){return t[E]=t[E]||{}}function A(t,e,n){return w(t)[e]=n}function T(t,e){var n=w(t);return void 0===n[e]&&(n[e]=t.dataset?t.dataset[e]:y(t).attr("data-"+e)),n[e]}b.extend({data:function(t,e){if(a(t))return void 0===e?T(this[0],t):this.each(function(n){return A(n,t,e)});for(var n in t)this.data(n,t[n]);return this},removeData:function(t){return this.each(function(e){return function(t,e){var n=w(t);n?delete n[e]:t.dataset?delete t.dataset[e]:y(t).removeAttr("data-"+name)}(e,t)})}});var S=/\S+/g;function M(t){return a(t)&&t.match(S)}function B(t,e){return t.classList?t.classList.contains(e):new RegExp("(^| )"+e+"( |$)","gi").test(t.className)}function H(t,e,n){t.classList?t.classList.add(e):n.indexOf(" "+e+" ")&&(t.className+=" "+e)}function O(t,e){t.classList?t.classList.remove(e):t.className=t.className.replace(e,"")}b.extend({addClass:function(t){var e=M(t);return e?this.each(function(t){var n=" "+t.className+" ";x(e,function(e){H(t,e,n)})}):this},attr:function(t,e){if(t){if(a(t))return void 0===e?this[0]?this[0].getAttribute?this[0].getAttribute(t):this[0][t]:void 0:this.each(function(n){n.setAttribute?n.setAttribute(t,e):n[t]=e});for(var n in t)this.attr(n,t[n]);return this}},hasClass:function(t){var e=!1,n=M(t);return n&&n.length&&this.each(function(t){return!(e=B(t,n[0]))}),e},prop:function(t,e){if(a(t))return void 0===e?this[0][t]:this.each(function(n){n[t]=e});for(var n in t)this.prop(n,t[n]);return this},removeAttr:function(t){return this.each(function(e){e.removeAttribute?e.removeAttribute(t):delete e[t]})},removeClass:function(t){if(!arguments.length)return this.attr("class","");var e=M(t);return e?this.each(function(t){x(e,function(e){O(t,e)})}):this},removeProp:function(t){return this.each(function(e){delete e[t]})},toggleClass:function(t,e){if(void 0!==e)return this[e?"addClass":"removeClass"](t);var n=M(t);return n?this.each(function(t){var e=" "+t.className+" ";x(n,function(n){B(t,n)?O(t,n):H(t,n,e)})}):this}}),b.extend({add:function(t,e){return C(y.merge(this,y(t,e)))},each:function(t){return x(this,t),this},eq:function(t){return y(this.get(t))},filter:function(t){if(!t)return this;var e=c(t)?t:L(t);return y(u.call(this,function(n){return e(n,t)}))},first:function(){return this.eq(0)},get:function(t){return void 0===t?i.call(this):t<0?this[t+this.length]:this[t]},index:function(t){var e=t?y(t)[0]:this[0],n=t?this:y(e).parent().children();return i.call(n).indexOf(e)},last:function(){return this.eq(-1)}});var k,I,P=(k=/(?:^\w|[A-Z]|\b\w)/g,I=/[\s-_]+/g,function(t){return t.replace(k,function(t,e){return t[0===e?"toLowerCase":"toUpperCase"]()}).replace(I,"")}),R=function(){var t={},e=document,n=e.createElement("div"),r=n.style;return function(e){if(e=P(e),t[e])return t[e];var n=e.charAt(0).toUpperCase()+e.slice(1),i=(e+" "+["webkit","moz","ms","o"].join(n+" ")+n).split(" ");return x(i,function(n){if(n in r)return t[n]=e=t[e]=n,!1}),t[e]}}();function q(t,e){return parseInt(n.getComputedStyle(t[0],null)[e],10)||0}function D(t,e,n){var r,i=T(t,"_cashEvents"),u=i&&i[e];u&&(n?(t.removeEventListener(e,n),(r=u.indexOf(n))>=0&&u.splice(r,1)):(x(u,function(n){t.removeEventListener(e,n)}),u=[]))}function _(t,e){return"&"+encodeURIComponent(t)+"="+encodeURIComponent(e).replace(/%20/g,"+")}function F(t){var e=t.type;if(!e)return null;switch(e.toLowerCase()){case"select-one":return function(t){var e=t.selectedIndex;return e>=0?t.options[e].value:null}(t);case"select-multiple":return function(t){var e=[];return x(t.options,function(t){t.selected&&e.push(t.value)}),e.length?e:null}(t);case"radio":case"checkbox":return t.checked?t.value:null;default:return t.value?t.value:null}}function U(t,e,n){var r=a(e);r||!e.length?x(t,r?function(t){return t.insertAdjacentHTML(n?"afterbegin":"beforeend",e)}:function(t,r){return function(t,e,n){if(n){var r=t.childNodes[0];t.insertBefore(e,r)}else t.appendChild(e)}(t,0===r?e:e.cloneNode(!0),n)}):x(e,function(e){return U(t,e,n)})}y.prefixedProp=R,y.camelCase=P,b.extend({css:function(t,e){if(a(t))return t=R(t),arguments.length>1?this.each(function(n){return n.style[t]=e}):n.getComputedStyle(this[0])[t];for(var r in t)this.css(r,t[r]);return this}}),x(["Width","Height"],function(t){var e=t.toLowerCase();b[e]=function(){return this[0].getBoundingClientRect()[e]},b["inner"+t]=function(){return this[0]["client"+t]},b["outer"+t]=function(e){return this[0]["offset"+t]+(e?q(this,"margin"+("Width"===t?"Left":"Top"))+q(this,"margin"+("Width"===t?"Right":"Bottom")):0)}}),b.extend({off:function(t,e){return this.each(function(n){return D(n,t,e)})},on:function(t,e,n,r){var i;if(!a(t)){for(var u in t)this.on(u,e,t[u]);return this}return c(e)&&(n=e,e=null),"ready"===t?(m(n),this):(e&&(i=n,n=function(t){for(var n=t.target;!N(n,e);){if(n===this||null===n)return n=!1;n=n.parentNode}n&&i.call(n,t)}),this.each(function(e){var i=n;r&&(i=function(){n.apply(this,arguments),D(e,t,i)}),function(t,e,n){var r=T(t,"_cashEvents")||A(t,"_cashEvents",{});r[e]=r[e]||[],r[e].push(n),t.addEventListener(e,n)}(e,t,i)}))},one:function(t,e,n){return this.on(t,e,n,!0)},ready:m,trigger:function(t,e){if(document.createEvent){var n=document.createEvent("HTMLEvents");return n.initEvent(t,!0,!1),n=this.extend(n,e),this.each(function(t){return t.dispatchEvent(n)})}}}),b.extend({serialize:function(){var t="";return x(this[0].elements||this,function(e){if(!e.disabled&&"FIELDSET"!==e.tagName){var n=e.name;switch(e.type.toLowerCase()){case"file":case"reset":case"submit":case"button":break;case"select-multiple":var r=F(e);null!==r&&x(r,function(e){t+=_(n,e)});break;default:var i=F(e);null!==i&&(t+=_(n,i))}}}),t.substr(1)},val:function(t){return void 0===t?F(this[0]):this.each(function(e){return e.value=t})}}),b.extend({after:function(t){return y(t).insertAfter(this),this},append:function(t){return U(this,t),this},appendTo:function(t){return U(y(t),this),this},before:function(t){return y(t).insertBefore(this),this},clone:function(){return y(this.map(function(t){return t.cloneNode(!0)}))},empty:function(){return this.html(""),this},html:function(t){if(void 0===t)return this[0].innerHTML;var e=t.nodeType?t[0].outerHTML:t;return this.each(function(t){return t.innerHTML=e})},insertAfter:function(t){var e=this;return y(t).each(function(t,n){var r=t.parentNode,i=t.nextSibling;e.each(function(t){r.insertBefore(0===n?t:t.cloneNode(!0),i)})}),this},insertBefore:function(t){var e=this;return y(t).each(function(t,n){var r=t.parentNode;e.each(function(e){r.insertBefore(0===n?e:e.cloneNode(!0),t)})}),this},prepend:function(t){return U(this,t,!0),this},prependTo:function(t){return U(y(t),this,!0),this},remove:function(){return this.each(function(t){if(t.parentNode)return t.parentNode.removeChild(t)})},text:function(t){return void 0===t?this[0].textContent:this.each(function(e){return e.textContent=t})}});var $=e.documentElement;return b.extend({position:function(){var t=this[0];return{left:t.offsetLeft,top:t.offsetTop}},offset:function(){var t=this[0].getBoundingClientRect();return{top:t.top+n.pageYOffset-$.clientTop,left:t.left+n.pageXOffset-$.clientLeft}},offsetParent:function(){return y(this[0].offsetParent)}}),b.extend({children:function(t){var e=[];return this.each(function(t){o.apply(e,t.children)}),e=C(e),t?e.filter(function(e){return N(e,t)}):e},closest:function(t){return!t||this.length<1?y():this.is(t)?this.filter(t):this.parent().closest(t)},is:function(t){if(!t)return!1;var e=!1,n=L(t);return this.each(function(r){return!(e=n(r,t))}),e},find:function(t){if(!t||t.nodeType)return y(t&&this.has(t).length?t:null);var e=[];return this.each(function(n){o.apply(e,v(t,n))}),C(e)},has:function(t){var e=a(t)?function(e){return 0!==v(t,e).length}:function(e){return e.contains(t)};return this.filter(e)},next:function(){return y(this[0].nextElementSibling)},not:function(t){if(!t)return this;var e=L(t);return this.filter(function(n){return!e(n,t)})},parent:function(){var t=[];return this.each(function(e){e&&e.parentNode&&t.push(e.parentNode)}),C(t)},parents:function(t){var n,r=[];return this.each(function(i){for(n=i;n&&n.parentNode&&n!==e.body.parentNode;)n=n.parentNode,(!t||t&&N(n,t))&&r.push(n)}),C(r)},prev:function(){return y(this[0].previousElementSibling)},siblings:function(t){var e=this.parent().children(t),n=this[0];return e.filter(function(t){return t!==n})}}),y}();