j1-template 2024.3.19 → 2024.3.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/assets/data/amplitude_app.html +174 -150
- data/assets/data/swiper_app.2.html +757 -0
- data/assets/data/swiper_app.4.html +769 -0
- data/assets/data/swiper_app.html +171 -27
- data/assets/theme/j1/adapter/js/amplitude.js +817 -165
- data/assets/theme/j1/adapter/js/swiper.js +63 -15
- data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.css +111 -101
- data/assets/theme/j1/core/css/themes/bootstrap/bootstrap.min.css +1 -1
- data/assets/theme/j1/core/css/themes/unodark/bootstrap.css +111 -101
- data/assets/theme/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
- data/assets/theme/j1/core/css/themes/unolight/bootstrap.css +111 -101
- data/assets/theme/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.css +140 -219
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/amplitude.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.css +117 -23
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/compact.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.css +323 -493
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/large.min.css +1 -2
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.css +20 -73
- data/assets/theme/j1/modules/amplitudejs/css/theme/uno/dark/player/mini.min.css +1 -1
- data/assets/theme/j1/modules/amplitudejs/js/tech/ytp.js +2062 -843
- data/assets/theme/j1/modules/amplitudejs/scss/theme/uno/dark/player/large.scss +439 -264
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutBase.css +16 -0
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutBase.min.css +16 -0
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutExpanding.css +24 -24
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutExpanding.min.css +1 -235
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutNeighbor.min.css +2 -2
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutParallax.css +16 -0
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutParallax.min.css +16 -0
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutStacked.css +6 -7
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutStacked.min.css +1 -82
- data/assets/theme/j1/modules/swiperjs/css/modules/layoutThumbs.min.css +2 -29
- data/assets/theme/j1/modules/swiperjs/css/theme/uno.css +29 -12
- data/assets/theme/j1/modules/swiperjs/css/theme/uno.min.css +1 -1
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutBase.js +25 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutBase.min.js +25 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutExpanding.js +1 -5
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutExpanding.min.js +1 -5
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutNeighbor.js +12 -14
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutNeighbor.min.js +1 -17
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutPanorama.js +0 -1
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutParallax.js +25 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutParallax.min.js +25 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.0.js +114 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.1.js +93 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.js +42 -13
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutStacked.min.js +17 -0
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutThumbs.js +76 -25
- data/assets/theme/j1/modules/swiperjs/js/modules/layoutThumbs.min.js +1 -17
- data/assets/theme/j1/modules/swiperjs/js/swiper-bundle.js +9152 -9131
- data/assets/theme/j1/modules/swiperjs/js/swiper-bundle.min.js +1 -1
- data/lib/j1/version.rb +1 -1
- data/lib/starter_web/README.md +5 -5
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/modules/amplitude_app.yml +206 -23
- data/lib/starter_web/_data/modules/amplitude_playlists.yml +1122 -19
- data/lib/starter_web/_data/modules/defaults/{amplitude_app.yml → amplitude.yml} +70 -26
- data/lib/starter_web/_data/modules/swiper_app.yml +289 -155
- data/lib/starter_web/_data/modules/swiper_playlists.yml +51 -1
- data/lib/starter_web/_data/resources.yml +6 -2
- data/lib/starter_web/_data/templates/feed.xml +1 -1
- data/lib/starter_web/_plugins/filter/filters.rb +1 -11
- data/lib/starter_web/_plugins/index/lunr.rb +1 -1
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-1.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-2.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-3.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-4.png +0 -0
- data/lib/starter_web/assets/image/module/swiper/avatar/avatar-5.png +0 -0
- data/lib/starter_web/package.json +1 -1
- data/lib/starter_web/pages/public/tools/previewer/preview_amplitudejs.adoc +82 -34
- data/lib/starter_web/pages/public/tools/tester/app_tester_amplitudejs_yt.adoc +62 -15
- data/lib/starter_web/pages/public/tools/tester/app_tester_swiperjs.adoc +121 -36
- data/lib/starter_web/pages/public/tour/play_audio.adoc +60 -70
- data/lib/starter_web/pages/public/tour/play_video.adoc +1 -1
- metadata +29 -14
- data/assets/theme/j1/modules/swiperjs/js/highlightJS.js +0 -13376
- data/assets/theme/j1/modules/swiperjs/js/highlightJS.min.js +0 -1246
- data/assets/theme/j1/modules/swiperjs/js/modules/!readme +0 -3
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/!info/!readme +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/!readme +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/1.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/2.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/3.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/4.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/5.jpg +0 -0
- /data/lib/starter_web/assets/image/module/swiper/extended/{poster → stacked}/image/6.jpg +0 -0
@@ -25,6 +25,15 @@
|
|
25
25
|
--swiper-wrapper-transition-timing-function: initial;
|
26
26
|
}
|
27
27
|
|
28
|
+
/* Navigation styles
|
29
|
+
-------------------------------------------------------------------- */
|
30
|
+
:root {
|
31
|
+
--swiper-navigation-color: var(--bs-gray-100);
|
32
|
+
--swiper-navigation-size: 44px;
|
33
|
+
--swiper-navigation-top-offset: 50%;
|
34
|
+
--swiper-navigation-sides-offset: 20px;
|
35
|
+
}
|
36
|
+
|
28
37
|
/* Pagination styles
|
29
38
|
-------------------------------------------------------------------- */
|
30
39
|
:root {
|
@@ -34,7 +43,7 @@
|
|
34
43
|
--swiper-pagination-bottom: 8px;
|
35
44
|
--swiper-pagination-top: auto;
|
36
45
|
--swiper-pagination-fraction-color: inherit;
|
37
|
-
--swiper-pagination-progressbar-bg-color: rgba(0,0,0,0.25);
|
46
|
+
--swiper-pagination-progressbar-bg-color: rgba(0, 0, 0, 0.25);
|
38
47
|
--swiper-pagination-progressbar-size: 4px;
|
39
48
|
--swiper-pagination-bullet-size: 8px;
|
40
49
|
--swiper-pagination-bullet-width: 8px;
|
@@ -61,15 +70,6 @@
|
|
61
70
|
--swiper-scrollbar-size: 4px;
|
62
71
|
}
|
63
72
|
|
64
|
-
/* Navigation styles
|
65
|
-
-------------------------------------------------------------------- */
|
66
|
-
:root {
|
67
|
-
--swiper-navigation-color: var(--bs-gray-100);
|
68
|
-
--swiper-navigation-size: 44px;
|
69
|
-
--swiper-navigation-top-offset: 50%;
|
70
|
-
--swiper-navigation-sides-offset: 10px;
|
71
|
-
}
|
72
|
-
|
73
73
|
/* Titles and Captions
|
74
74
|
-------------------------------------------------------------------- */
|
75
75
|
.swiper-title {
|
@@ -82,6 +82,7 @@
|
|
82
82
|
font-weight: 500;
|
83
83
|
margin-bottom: .5rem;
|
84
84
|
}
|
85
|
+
|
85
86
|
.swp-caption-content {
|
86
87
|
display: none;
|
87
88
|
position: absolute;
|
@@ -149,8 +150,24 @@ ul.swiper-wrapper {
|
|
149
150
|
left: auto;
|
150
151
|
}
|
151
152
|
|
152
|
-
/*
|
153
|
+
/* Pagination, absolute (relative to the swiper container/parent)
|
153
154
|
-------------------------------------------------------------------------------- */
|
155
|
+
.swiper-pagination,
|
156
|
+
.swiper-pagination-inner {
|
157
|
+
position: absolute;
|
158
|
+
text-align: center;
|
159
|
+
transition: 300ms opacity;
|
160
|
+
transform: translate3d(0, 0, 0);
|
161
|
+
z-index: 10;
|
162
|
+
}
|
163
|
+
|
164
|
+
.swiper-pagination-outer {
|
165
|
+
padding-top: 12px;
|
166
|
+
bottom: unset !important;
|
167
|
+
text-align: center;
|
168
|
+
transition: 300ms opacity;
|
169
|
+
transform: translate3d(0, 0, 0);
|
170
|
+
}
|
154
171
|
|
155
172
|
.swiper-pagination-bullet {
|
156
173
|
width: 25px !important;
|
@@ -161,7 +178,7 @@ ul.swiper-wrapper {
|
|
161
178
|
font-weight: 400;
|
162
179
|
color: var(--bs-black) !important;
|
163
180
|
opacity: .6 !important;
|
164
|
-
background: rgba(0, 0, 0, 0.
|
181
|
+
background: rgba(0, 0, 0, 0.5) !important
|
165
182
|
}
|
166
183
|
|
167
184
|
.swiper-pagination-bullet-active {
|
@@ -14,4 +14,4 @@
|
|
14
14
|
# -----------------------------------------------------------------------------
|
15
15
|
*/
|
16
16
|
|
17
|
-
|
17
|
+
::root{--swiper-theme-color:var(--bs-primary);--swiper-preloader-color:var(--swiper-theme-color);--swiper-wrapper-transition-timing-function:initial}:root{--swiper-navigation-color:var(--bs-gray-100);--swiper-navigation-size:44px;--swiper-navigation-top-offset:50%;--swiper-navigation-sides-offset:20px}:root{--swiper-pagination-color:var(--swiper-theme-color);--swiper-pagination-left:auto;--swiper-pagination-right:8px;--swiper-pagination-bottom:8px;--swiper-pagination-top:auto;--swiper-pagination-fraction-color:inherit;--swiper-pagination-progressbar-bg-color:rgba(0,0,0,0.25);--swiper-pagination-progressbar-size:4px;--swiper-pagination-bullet-size:8px;--swiper-pagination-bullet-width:8px;--swiper-pagination-bullet-height:8px;--swiper-pagination-bullet-border-radius:50%;--swiper-pagination-bullet-inactive-color:#000;--swiper-pagination-bullet-inactive-opacity:.5;--swiper-pagination-bullet-opacity:1;--swiper-pagination-bullet-horizontal-gap:4px;--swiper-pagination-bullet-vertical-gap:6px}:root{--swiper-scrollbar-border-radius:10px;--swiper-scrollbar-top:auto;--swiper-scrollbar-bottom:4px;--swiper-scrollbar-left:auto;--swiper-scrollbar-right:4px;--swiper-scrollbar-sides-offset:1%;--swiper-scrollbar-bg-color:rgba(0,0,0,0.1);--swiper-scrollbar-drag-bg-color:rgba(0,0,0,0.5);--swiper-scrollbar-size:4px}.swiper-title{display:flex;align-items:center;text-rendering:optimizeLegibility;text-align:left;line-height:1.25;font-size:1.125rem;font-weight:500;margin-bottom:.5rem}.swp-caption-content{display:none;position:absolute;bottom:0;left:0;width:100%;padding:10px;background:rgba(0,0,0,0.5);color:#fff;font-size:14px;font-weight:400;text-align:left}.swiper-slide:hover .swp-caption-content{display:block}ul.swiper-wrapper{list-style-type:none;margin:0;padding:0;position:relative}.pswp__img{cursor:pointer !important}.swiper-slide{text-align:center;font-size:18px;background:#fff;display:flex;justify-content:center;align-items:center;background-size:cover;background-position:center}.swiper-slide img{display:block;width:100%;height:100%;object-fit:cover}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,20px) !important;right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,20px) !important;left:auto}.swiper-pagination,.swiper-pagination-inner{position:absolute;text-align:center;transition:300ms opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination-outer{padding-top:12px;bottom:unset !important;text-align:center;transition:300ms opacity;transform:translate3d(0,0,0)}.swiper-pagination-bullet{width:25px !important;height:25px !important;text-align:center;line-height:25px;font-size:14px;font-weight:400;color:var(--bs-black) !important;opacity:.6 !important;background:rgba(0,0,0,0.5) !important}.swiper-pagination-bullet-active{color:var(--bs-white) !important;background:var(--swiper-theme-color) !important;opacity:1 !important}.autoplay-progress{position:absolute;right:16px;bottom:16px;z-index:10;width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-weight:bold;color:var(--swiper-theme-color)}.autoplay-progress svg{--progress:0;position:absolute;left:0;top:0;z-index:10;width:100%;height:100%;stroke-width:4px;stroke:var(--swiper-theme-color);fill:none;stroke-dashoffset:calc(125.6px *(1 - var(--progress)));stroke-dasharray:125.6;transform:rotate(-90deg)}.swiper-text-base{padding:5px 0 5px 15px !important;border-left:5px solid var(--bs-primary)}.swiper-text-base .swiper-wrapper .swiper-slide p{margin-bottom:0 !important;font-size:1.5rem;font-weight:400;text-align:left;color:var(--md-gray-700);background:var(--md-gray-50);overflow-x:hidden}.swiper-text-parallax .swiper-wrapper .swiper-slide p{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;font-weight:500;text-align:left;color:rgba(255,255,255,.75);overflow-x:hidden}.swiper--multi{height:400px}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/swiper/js/modules/layoutBase.js
|
4
|
+
# J1 Module for SwiperJS v11 (layout)
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# http://jekyll.one
|
9
|
+
#
|
10
|
+
# Copyright (C) 2025 Juergen Adams
|
11
|
+
#
|
12
|
+
# J1 Theme is licensed under MIT License.
|
13
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
14
|
+
# -----------------------------------------------------------------------------
|
15
|
+
*/
|
16
|
+
"use strict";
|
17
|
+
function LayoutBase(_ref) {
|
18
|
+
var {
|
19
|
+
swiper,
|
20
|
+
extendParams,
|
21
|
+
params,
|
22
|
+
on
|
23
|
+
} = _ref;
|
24
|
+
|
25
|
+
} // END LayoutBase
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/swiper/js/modules/layoutBase.min.js
|
4
|
+
# J1 Module for SwiperJS v11 (layout)
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# http://jekyll.one
|
9
|
+
#
|
10
|
+
# Copyright (C) 2025 Juergen Adams
|
11
|
+
#
|
12
|
+
# J1 Theme is licensed under MIT License.
|
13
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
14
|
+
# -----------------------------------------------------------------------------
|
15
|
+
*/
|
16
|
+
"use strict";
|
17
|
+
function LayoutBase(_ref) {
|
18
|
+
var {
|
19
|
+
swiper,
|
20
|
+
extendParams,
|
21
|
+
params,
|
22
|
+
on
|
23
|
+
} = _ref;
|
24
|
+
|
25
|
+
} // END LayoutBase
|
@@ -14,9 +14,7 @@
|
|
14
14
|
# -----------------------------------------------------------------------------
|
15
15
|
*/
|
16
16
|
"use strict";
|
17
|
-
|
18
17
|
function LayoutExpanding(_ref) {
|
19
|
-
|
20
18
|
var {
|
21
19
|
swiper,
|
22
20
|
extendParams,
|
@@ -24,6 +22,4 @@ function LayoutExpanding(_ref) {
|
|
24
22
|
on
|
25
23
|
} = _ref;
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
} // END ayoutExpanding
|
25
|
+
} // END LayoutExpanding
|
@@ -14,9 +14,7 @@
|
|
14
14
|
# -----------------------------------------------------------------------------
|
15
15
|
*/
|
16
16
|
"use strict";
|
17
|
-
|
18
17
|
function LayoutExpanding(_ref) {
|
19
|
-
|
20
18
|
var {
|
21
19
|
swiper,
|
22
20
|
extendParams,
|
@@ -24,6 +22,4 @@ function LayoutExpanding(_ref) {
|
|
24
22
|
on
|
25
23
|
} = _ref;
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
} // END ayoutExpanding
|
25
|
+
} // END LayoutExpanding
|
@@ -14,30 +14,28 @@
|
|
14
14
|
# -----------------------------------------------------------------------------
|
15
15
|
*/
|
16
16
|
"use strict";
|
17
|
-
|
18
17
|
function LayoutNeighbor(_ref) {
|
19
|
-
var mainSwiper, tripleSwiper;
|
20
18
|
var {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
on
|
19
|
+
swiper,
|
20
|
+
params,
|
21
|
+
moduleFound = false
|
25
22
|
} = _ref;
|
26
23
|
|
27
|
-
// module
|
28
|
-
|
29
|
-
const
|
30
|
-
|
31
|
-
mainSwiper = document.querySelector(swiperID);
|
24
|
+
// collect module settings
|
25
|
+
// ---------------------------------------------------------------------------
|
26
|
+
const commonParameters = params.neighbor;
|
32
27
|
|
28
|
+
moduleFound = j1.adapter.swiper.findModuleByName(swiper.modules, LayoutNeighbor.name);
|
29
|
+
if (!moduleFound) { return; }
|
33
30
|
|
34
31
|
// ---------------------------------------------------------------------------
|
35
32
|
// effect initializer
|
36
33
|
// ---------------------------------------------------------------------------
|
37
|
-
|
34
|
+
|
38
35
|
// main swiper
|
39
36
|
//
|
40
|
-
const
|
37
|
+
const mainSwiper = document.querySelector(`#${params.neighbor.swiper_id}`);
|
38
|
+
const swiperEl = mainSwiper.querySelector('.swiper');
|
41
39
|
|
42
40
|
// create neighbor swiper PREV
|
43
41
|
//
|
@@ -91,7 +89,7 @@ function LayoutNeighbor(_ref) {
|
|
91
89
|
|
92
90
|
// init neighbor swiper MAIN
|
93
91
|
//
|
94
|
-
tripleSwiper = new Swiper(swiperEl, {
|
92
|
+
const tripleSwiper = new Swiper(swiperEl, {
|
95
93
|
...commonParameters,
|
96
94
|
grabCursor: true,
|
97
95
|
controller: {
|
@@ -13,21 +13,5 @@
|
|
13
13
|
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
14
14
|
# -----------------------------------------------------------------------------
|
15
15
|
*/
|
16
|
-
"use strict";
|
17
16
|
|
18
|
-
function
|
19
|
-
|
20
|
-
var {
|
21
|
-
swiper,
|
22
|
-
extendParams,
|
23
|
-
on
|
24
|
-
} = _ref;
|
25
|
-
|
26
|
-
extendParams({
|
27
|
-
panoramaEffect: {
|
28
|
-
depth: 200,
|
29
|
-
rotate: 30,
|
30
|
-
},
|
31
|
-
});
|
32
|
-
|
33
|
-
} // END LayoutNeighbor
|
17
|
+
"use strict";function LayoutNeighbor(e){var r,o,{swiper:s,extendParams:i,params:l,on:n}=e;const t=l.neighbor,c=`#${l.neighbor.swiper_id}`,d=(r=document.querySelector(c)).querySelector(".swiper"),a=d.cloneNode(!0);a.classList.add("neighbor-slider-prev"),r.insertBefore(a,d);const p=a.querySelectorAll(".swiper-slide"),w=p[p.length-1];a.querySelector(".swiper-wrapper").insertBefore(w,p[0]);const u=d.cloneNode(!0);u.classList.add("neighbor-slider-next"),r.appendChild(u);const h=u.querySelectorAll(".swiper-slide")[0];u.querySelector(".swiper-wrapper").appendChild(h),d.classList.add("neighbor-slider-main");const y=new Swiper(a,{...t,allowTouchMove:!1,on:{click(){o.slidePrev()}}}),S=new Swiper(u,{...t,allowTouchMove:!1,on:{click(){o.slideNext()}}});o=new Swiper(d,{...t,grabCursor:!0,controller:{control:[y,S]},on:{destroy(){y.destroy(),S.destroy()}}})}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/swiper/js/modules/layoutParallax.js
|
4
|
+
# J1 Module for SwiperJS v11 (layout)
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# http://jekyll.one
|
9
|
+
#
|
10
|
+
# Copyright (C) 2025 Juergen Adams
|
11
|
+
#
|
12
|
+
# J1 Theme is licensed under MIT License.
|
13
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
14
|
+
# -----------------------------------------------------------------------------
|
15
|
+
*/
|
16
|
+
"use strict";
|
17
|
+
function LayoutParallax(_ref) {
|
18
|
+
var {
|
19
|
+
swiper,
|
20
|
+
extendParams,
|
21
|
+
params,
|
22
|
+
on
|
23
|
+
} = _ref;
|
24
|
+
|
25
|
+
} // END LayoutParallax
|
@@ -0,0 +1,25 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/swiper/js/modules/layoutParallax.min.js
|
4
|
+
# J1 Module for SwiperJS v11 (layout)
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# http://jekyll.one
|
9
|
+
#
|
10
|
+
# Copyright (C) 2025 Juergen Adams
|
11
|
+
#
|
12
|
+
# J1 Theme is licensed under MIT License.
|
13
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
14
|
+
# -----------------------------------------------------------------------------
|
15
|
+
*/
|
16
|
+
"use strict";
|
17
|
+
function LayoutParallax(_ref) {
|
18
|
+
var {
|
19
|
+
swiper,
|
20
|
+
extendParams,
|
21
|
+
params,
|
22
|
+
on
|
23
|
+
} = _ref;
|
24
|
+
|
25
|
+
} // END LayoutParallax
|
@@ -0,0 +1,114 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/swiper/js/modules/layoutStacked.js
|
4
|
+
# J1 Module for SwiperJS v11 (layout)
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# http://jekyll.one
|
9
|
+
#
|
10
|
+
# Copyright (C) 2025 Juergen Adams
|
11
|
+
#
|
12
|
+
# J1 Theme is licensed under MIT License.
|
13
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
14
|
+
# -----------------------------------------------------------------------------
|
15
|
+
*/
|
16
|
+
"use strict";
|
17
|
+
|
18
|
+
function LayoutStacked(_ref) {
|
19
|
+
|
20
|
+
var {
|
21
|
+
swiper,
|
22
|
+
params,
|
23
|
+
moduleFound = false
|
24
|
+
} = _ref;
|
25
|
+
|
26
|
+
// collect module settings
|
27
|
+
// ---------------------------------------------------------------------------
|
28
|
+
const commonParameters = params.stacked;
|
29
|
+
|
30
|
+
moduleFound = j1.adapter.swiper.findModuleByName(swiper.modules, LayoutStacked.name);
|
31
|
+
if (!moduleFound) { return; }
|
32
|
+
|
33
|
+
// ---------------------------------------------------------------------------
|
34
|
+
// effect initializer
|
35
|
+
// ---------------------------------------------------------------------------
|
36
|
+
|
37
|
+
// main swiper
|
38
|
+
//
|
39
|
+
const mainSwiper = document.querySelector(`#${params.stacked.swiper_id}`);
|
40
|
+
const swiperEl = mainSwiper.querySelector('.swiper');
|
41
|
+
|
42
|
+
const calcNextOffset = () => {
|
43
|
+
const parentWidth = swiperEl.parentElement.offsetWidth;
|
44
|
+
const swiperWidth = swiperEl.offsetWidth;
|
45
|
+
var nextOffset = (parentWidth - (parentWidth - swiperWidth) / 2) / swiperWidth;
|
46
|
+
var nextOffsetVh = Math.max(nextOffset, 1) * 100;
|
47
|
+
|
48
|
+
return `${nextOffsetVh}%`;
|
49
|
+
};
|
50
|
+
|
51
|
+
const stackedSwiper = new Swiper(swiperEl, {
|
52
|
+
effect: 'creative',
|
53
|
+
speed: 600,
|
54
|
+
resistanceRatio: 0,
|
55
|
+
grabCursor: true,
|
56
|
+
parallax: true,
|
57
|
+
pagination: {
|
58
|
+
//el: '.swiper-pagination-outer',
|
59
|
+
el: '.swiper-pagination-inner',
|
60
|
+
type: 'bullets',
|
61
|
+
clickable: true
|
62
|
+
},
|
63
|
+
creativeEffect: {
|
64
|
+
limitProgress: 3,
|
65
|
+
perspective: true,
|
66
|
+
shadowPerProgress: true,
|
67
|
+
prev: {
|
68
|
+
shadow: true,
|
69
|
+
translate: ['-15%', 0, -200],
|
70
|
+
},
|
71
|
+
next: {
|
72
|
+
translate: [calcNextOffset(), 0, 0],
|
73
|
+
},
|
74
|
+
},
|
75
|
+
on: {
|
76
|
+
init: (swiper) => { var slideHeight = 600; swiper.slides.forEach(slide => { slide.style.height = `${slideHeight}px`; }); }
|
77
|
+
}
|
78
|
+
});
|
79
|
+
|
80
|
+
const onResize = () => {
|
81
|
+
if (!stackedSwiper || stackedSwiper.destroyed) return;
|
82
|
+
// prettier-ignore
|
83
|
+
stackedSwiper.params.creativeEffect.next.translate = [calcNextOffset(), 0, 0];
|
84
|
+
if (
|
85
|
+
stackedSwiper.params.resizeObserver &&
|
86
|
+
typeof window.ResizeObserver !== 'undefined'
|
87
|
+
) {
|
88
|
+
stackedSwiper.update();
|
89
|
+
}
|
90
|
+
};
|
91
|
+
window.addEventListener('resize', onResize);
|
92
|
+
|
93
|
+
|
94
|
+
// workaround for swiper pagination placed 'outer'
|
95
|
+
// -------------------------------------------------------------------------
|
96
|
+
var init_swiper_delay = 500;
|
97
|
+
|
98
|
+
// {% assign pagination_el = swiper.module_settings.pagination.el | split: '-' %}
|
99
|
+
// {% assign pagination_position = pagination_el[2] %}
|
100
|
+
|
101
|
+
setTimeout(() => {
|
102
|
+
// const sourceEl = document.getElementById('{{swiper.id}}_pagination');
|
103
|
+
// const targetEl = document.getElementById('{{swiper.id}}');
|
104
|
+
const sourceEl = document.getElementById('stacked_slider_pagination');
|
105
|
+
const targetEl = document.getElementById('stacked_slider_swiper_container');
|
106
|
+
// targetEl.appendChild(sourceEl);
|
107
|
+
|
108
|
+
// logger.debug('\n' + 'pagination elements (outer) moved');
|
109
|
+
}, init_swiper_delay);
|
110
|
+
// -------------------------------------------------------------------------
|
111
|
+
|
112
|
+
// return stackedSwiper;
|
113
|
+
|
114
|
+
} // END LayoutStacked
|
@@ -0,0 +1,93 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/swiper/js/modules/layoutStacked.js
|
4
|
+
# J1 Module for SwiperJS v11 (layout)
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# http://jekyll.one
|
9
|
+
#
|
10
|
+
# Copyright (C) 2025 Juergen Adams
|
11
|
+
#
|
12
|
+
# J1 Theme is licensed under MIT License.
|
13
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
14
|
+
# -----------------------------------------------------------------------------
|
15
|
+
*/
|
16
|
+
"use strict";
|
17
|
+
function LayoutStacked(_ref) {
|
18
|
+
var {
|
19
|
+
swiper,
|
20
|
+
params,
|
21
|
+
moduleFound = false
|
22
|
+
} = _ref;
|
23
|
+
|
24
|
+
// collect module settings
|
25
|
+
// ---------------------------------------------------------------------------
|
26
|
+
const commonParameters = params.stacked;
|
27
|
+
|
28
|
+
moduleFound = j1.adapter.swiper.findModuleByName(swiper.modules, LayoutStacked.name);
|
29
|
+
if (!moduleFound) { return; }
|
30
|
+
|
31
|
+
// ---------------------------------------------------------------------------
|
32
|
+
// effect initializer
|
33
|
+
// ---------------------------------------------------------------------------
|
34
|
+
|
35
|
+
// main swiper
|
36
|
+
//
|
37
|
+
// const mainSwiper = document.querySelector(`#${params.stacked.swiper_id}`);
|
38
|
+
const mainSwiper = document.querySelector('#swiper_image_stacked');
|
39
|
+
const swiperEl = mainSwiper.querySelector('.swiper');
|
40
|
+
|
41
|
+
const calcNextOffset = () => {
|
42
|
+
const parentWidth = swiperEl.parentElement.offsetWidth;
|
43
|
+
const swiperWidth = swiperEl.offsetWidth;
|
44
|
+
var nextOffset = (parentWidth - (parentWidth - swiperWidth) / 2) / swiperWidth;
|
45
|
+
var nextOffsetVh = Math.max(nextOffset, 1) * 100;
|
46
|
+
|
47
|
+
return `${nextOffsetVh}%`;
|
48
|
+
};
|
49
|
+
|
50
|
+
const stackedSwiper = new Swiper(swiperEl, {
|
51
|
+
effect: 'creative',
|
52
|
+
speed: 600,
|
53
|
+
resistanceRatio: 0,
|
54
|
+
grabCursor: true,
|
55
|
+
parallax: true,
|
56
|
+
pagination: {
|
57
|
+
el: '.swiper-pagination-inner',
|
58
|
+
type: 'bullets',
|
59
|
+
clickable: true
|
60
|
+
},
|
61
|
+
creativeEffect: {
|
62
|
+
limitProgress: 3,
|
63
|
+
perspective: true,
|
64
|
+
shadowPerProgress: true,
|
65
|
+
prev: {
|
66
|
+
shadow: true,
|
67
|
+
translate: ['-15%', 0, -200],
|
68
|
+
},
|
69
|
+
next: {
|
70
|
+
translate: [calcNextOffset(), 0, 0],
|
71
|
+
},
|
72
|
+
},
|
73
|
+
on: {
|
74
|
+
init: (swiper) => { var slideHeight = 600; swiper.slides.forEach(slide => { slide.style.height = `${slideHeight}px`; }); }
|
75
|
+
}
|
76
|
+
});
|
77
|
+
|
78
|
+
const onResize = () => {
|
79
|
+
if (!stackedSwiper || stackedSwiper.destroyed) return;
|
80
|
+
// prettier-ignore
|
81
|
+
stackedSwiper.params.creativeEffect.next.translate = [calcNextOffset(), 0, 0];
|
82
|
+
if (
|
83
|
+
stackedSwiper.params.resizeObserver &&
|
84
|
+
typeof window.ResizeObserver !== 'undefined'
|
85
|
+
) {
|
86
|
+
stackedSwiper.update();
|
87
|
+
}
|
88
|
+
};
|
89
|
+
window.addEventListener('resize', onResize);
|
90
|
+
|
91
|
+
return stackedSwiper;
|
92
|
+
|
93
|
+
} // END LayoutStacked
|
@@ -14,17 +14,29 @@
|
|
14
14
|
# -----------------------------------------------------------------------------
|
15
15
|
*/
|
16
16
|
"use strict";
|
17
|
-
|
18
17
|
function LayoutStacked(_ref) {
|
19
|
-
|
20
18
|
var {
|
21
19
|
swiper,
|
22
|
-
extendParams,
|
23
20
|
params,
|
24
|
-
|
21
|
+
moduleFound = false
|
25
22
|
} = _ref;
|
26
23
|
|
27
|
-
|
24
|
+
// collect module settings
|
25
|
+
// ---------------------------------------------------------------------------
|
26
|
+
const commonParameters = params.stacked;
|
27
|
+
|
28
|
+
moduleFound = j1.adapter.swiper.findModuleByName(swiper.modules, LayoutStacked.name);
|
29
|
+
if (!moduleFound) { return; }
|
30
|
+
|
31
|
+
// ---------------------------------------------------------------------------
|
32
|
+
// effect initializer
|
33
|
+
// ---------------------------------------------------------------------------
|
34
|
+
|
35
|
+
// main swiper
|
36
|
+
//
|
37
|
+
// const mainSwiper = document.querySelector(`#${params.stacked.swiper_id}`);
|
38
|
+
const mainSwiper = document.querySelector('#swiper_image_stacked');
|
39
|
+
const swiperEl = mainSwiper.querySelector('.swiper');
|
28
40
|
|
29
41
|
const calcNextOffset = () => {
|
30
42
|
const parentWidth = swiperEl.parentElement.offsetWidth;
|
@@ -35,12 +47,26 @@ function LayoutStacked(_ref) {
|
|
35
47
|
return `${nextOffsetVh}%`;
|
36
48
|
};
|
37
49
|
|
38
|
-
const
|
50
|
+
const onLastSlide = (swiper) => {
|
51
|
+
console.log ('\n' + 'LayoutStacked, Entered event: reachEnd');
|
52
|
+
// swiper.allowTouchMove = false;
|
53
|
+
// swiper.allowSlidePrev = false;
|
54
|
+
// swiper.allowSlideNext = false;
|
55
|
+
};
|
56
|
+
|
57
|
+
const stackedSwiper = new Swiper(swiperEl, {
|
58
|
+
loop: true,
|
39
59
|
effect: 'creative',
|
40
60
|
speed: 600,
|
41
61
|
resistanceRatio: 0,
|
42
62
|
grabCursor: true,
|
43
63
|
parallax: true,
|
64
|
+
pagination: {
|
65
|
+
//el: '.swiper-pagination-outer',
|
66
|
+
el: '.swiper-pagination-inner',
|
67
|
+
type: 'bullets',
|
68
|
+
clickable: true
|
69
|
+
},
|
44
70
|
creativeEffect: {
|
45
71
|
limitProgress: 3,
|
46
72
|
perspective: true,
|
@@ -54,22 +80,25 @@ function LayoutStacked(_ref) {
|
|
54
80
|
},
|
55
81
|
},
|
56
82
|
on: {
|
57
|
-
init: (swiper)
|
83
|
+
init: function (swiper) { var slideHeight = 600; swiper.slides.forEach(slide => { slide.style.height = `${slideHeight}px`; }); },
|
84
|
+
reachEnd: function (swiper) { onLastSlide(swiper) }
|
58
85
|
}
|
59
86
|
});
|
60
87
|
|
61
88
|
const onResize = () => {
|
62
|
-
if (!
|
89
|
+
if (!stackedSwiper || stackedSwiper.destroyed) return;
|
63
90
|
// prettier-ignore
|
64
|
-
|
91
|
+
stackedSwiper.params.creativeEffect.next.translate = [calcNextOffset(), 0, 0];
|
65
92
|
if (
|
66
|
-
|
93
|
+
stackedSwiper.params.resizeObserver &&
|
67
94
|
typeof window.ResizeObserver !== 'undefined'
|
68
95
|
) {
|
69
|
-
|
96
|
+
stackedSwiper.update();
|
70
97
|
}
|
71
98
|
};
|
72
99
|
window.addEventListener('resize', onResize);
|
73
|
-
|
74
100
|
|
75
|
-
} // END LayoutStacked
|
101
|
+
} // END LayoutStacked
|
102
|
+
|
103
|
+
// Disable touch move (swiping)
|
104
|
+
// swiper.allowTouchMove = false;
|
@@ -0,0 +1,17 @@
|
|
1
|
+
/*
|
2
|
+
# -----------------------------------------------------------------------------
|
3
|
+
# ~/assets/theme/j1/modules/swiper/js/modules/layoutStacked.min.js
|
4
|
+
# J1 Module for SwiperJS v11 (layout)
|
5
|
+
# -----------------------------------------------------------------------------
|
6
|
+
#
|
7
|
+
# Product/Info:
|
8
|
+
# http://jekyll.one
|
9
|
+
#
|
10
|
+
# Copyright (C) 2025 Juergen Adams
|
11
|
+
#
|
12
|
+
# J1 Theme is licensed under MIT License.
|
13
|
+
# See: https://github.com/jekyll-one-org/j1-template/blob/main/LICENSE
|
14
|
+
# -----------------------------------------------------------------------------
|
15
|
+
*/
|
16
|
+
|
17
|
+
"use strict";function LayoutStacked(e){var{swiper:r,extendParams:t,params:s,on:a}=e;const i=el.querySelector(".swiper"),n=()=>{const e=i.parentElement.offsetWidth,r=i.offsetWidth;var t=(e-(e-r)/2)/r;return`${100*Math.max(t,1)}%`},o=new Swiper(i,{effect:"creative",speed:600,resistanceRatio:0,grabCursor:!0,parallax:!0,creativeEffect:{limitProgress:3,perspective:!0,shadowPerProgress:!0,prev:{shadow:!0,translate:["-15%",0,-200]},next:{translate:[n(),0,0]}},on:{init:e=>{e.slides.forEach((e=>{e.style.height="600px"}))}}});window.addEventListener("resize",(()=>{o&&!o.destroyed&&(o.params.creativeEffect.next.translate=[n(),0,0],o.params.resizeObserver&&void 0!==window.ResizeObserver&&o.update())}))}
|