PluginProbe ʕ •ᴥ•ʔ
VK Blocks / trunk
VK Blocks vtrunk
1.123.0 1.122.0 1.121.0 1.120.0 1.119.2 1.119.1 1.119.0 1.118.7 1.82.0.0 1.82.0.1 1.83.0.0 1.83.0.1 1.84.0.0 1.84.0.1 1.85.0.2 1.85.0.3 1.85.1.0 1.85.1.1 1.86.0.0 1.86.0.1 1.86.1.0 1.87.0.0 1.87.0.1 1.88.0.1 1.88.0.2 1.89.0.0 1.9.2 1.90.0.0 1.90.0.1 1.90.1.1 1.91.0.0 1.91.1.1 1.92.0.0 1.92.0.1 1.92.1.0 1.92.1.1 1.93.0.0 trunk 1.93.0.1 0.1.1 1.93.1.0 0.10.3 1.93.1.1 0.11.0 1.94.0.0 0.12.6 1.94.0.1 0.15.1 1.94.1.0 0.16.2 1.94.2.1 0.17.6 1.94.2.2 0.2.2 1.95.0.3 0.22.4 1.95.0.4 0.26.7 1.96.2.0 0.3.2 1.96.2.1 0.31.0 1.97.0.1 0.35.5 1.97.0.2 0.37.5 1.99.0.0 0.38.8 1.99.0.1 0.39.4 0.4.7 0.41.0 0.42.0 0.44.13 0.45.2 0.46.1 0.47.0 0.48.0 0.49.8 0.5.2 0.50.3 0.51.0 0.52.2 0.53.2 0.54.0 0.55.0 0.56.2 0.56.3 0.57.6 0.58.10 0.59.0 0.6.0 0.60.1 0.61.2 0.7.1 0.8.2 1.0.16 1.10.0 1.100.0.0 1.100.0.1 1.102.0.0 1.102.0.1 1.103.0.0 1.104.0.0 1.104.0.1 1.105.1.0 1.105.1.1 1.106.0.0 1.106.0.1 1.107.0.0 1.107.0.1 1.107.0.2 1.108.0.0 1.108.0.1 1.109.0.0 1.109.0.1 1.11.4 1.110.0.0 1.110.0.1 1.111.0.0 1.111.0.1 1.111.0.2 1.112.0.0 1.112.0.1 1.113.0.0 1.113.0.1 1.114.0.0 1.114.0.1 1.114.2.0 1.114.2.1 1.115.0.0 1.115.0.1 1.115.1.0 1.115.1.1 1.115.2.0 1.115.2.1 1.116.0.0 1.116.0.1 1.116.1.0 1.116.1.1 1.116.2.0 1.117.0.0 1.117.0.1 1.117.1.0 1.118.2 1.118.5 1.12.0 1.13.2 1.14.1 1.15.1 1.16.11 1.17.0 1.18.6 1.19.0 1.19.1 1.2.3 1.20.7 1.21.0 1.22.4 1.23.0 1.24.5 1.25.1 1.26.2 1.27.7.2 1.28.0.1 1.29.2.0 1.3.9 1.30.0.1 1.31.0.1 1.32.0.2 1.33.2.1 1.36.1.5 1.37.0.0 1.39.2.1 1.4.6 1.40.0.1 1.40.1.0 1.40.1.1 1.41.0.0 1.41.0.1 1.41.2.2 1.41.2.3 1.43.0.0 1.43.0.1 1.43.0.2 1.44.0.0 1.44.0.1 1.45.0.0 1.45.0.1 1.46.0.0 1.46.0.1 1.47.0.0 1.47.0.1 1.47.1.0 1.48.0.0 1.48.0.1 1.48.0.2 1.48.1.0 1.48.1.1 1.5.0 1.50.0.0 1.50.0.1 1.51.0.0 1.51.0.1 1.52.0.0 1.52.0.1 1.53.0.0 1.53.0.1 1.54.0.0 1.54.0.1 1.55.0.0 1.55.0.1 1.56.0.0 1.56.0.1 1.57.0.0 1.57.0.2 1.57.0.3 1.57.0.4 1.57.0.5 1.57.1.0 1.57.1.1 1.57.1.2 1.58.0.0 1.58.0.1 1.59.0.0 1.59.0.1 1.6.0 1.60.0.0 1.60.0.1 1.63.0.0 1.63.0.1 1.64.0.0 1.64.0.1 1.64.1.0 1.64.1.2 1.67.0.0 1.67.0.1 1.68.0.0 1.68.0.1 1.69.0.0 1.69.0.1 1.69.1.1 1.69.1.2 1.7.1 1.70.0.0 1.70.0.1 1.71.0.0 1.71.0.1 1.72.0.0 1.72.1.0 1.72.1.1 1.73.0.0 1.73.0.1 1.74.0.0 1.74.0.1 1.75.0.0 1.75.1.0 1.75.1.1 1.76.0.0 1.76.0.1 1.76.1.0 1.76.1.1 1.76.2.0 1.76.2.1 1.77.0.0 1.77.0.1 1.78.0.0 1.78.0.1 1.79.0.0 1.79.0.1 1.79.0.2 1.79.0.3 1.79.1.0 1.79.1.1 1.8.2 1.80.1.0 1.80.1.1 1.80.1.2 1.81.0.1 1.81.0.2
vk-blocks / src / blocks / slider / save.js
vk-blocks / src / blocks / slider Last commit date
deprecated 2 weeks ago _swiper._scss 2 months ago block.json 2 weeks ago edit-multiItem.js 2 weeks ago edit-slider.js 2 weeks ago edit.js 1 day ago icon.svg 2 months ago index.js 2 months ago index.php 2 months ago loop-min-slides.js 2 months ago pause-button.js 1 day ago save.js 1 day ago style.scss 2 months ago view.js 1 day ago
save.js
111 lines
1 import { InnerBlocks, useBlockProps } from '@wordpress/block-editor';
2 import { PauseButton } from './pause-button';
3
4 export default function save({ attributes }) {
5 const {
6 pagination,
7 blockId,
8 width,
9 autoPlay,
10 autoPlayStop,
11 autoPlayDelay,
12 pauseButton,
13 loop,
14 effect,
15 speed,
16 slidesPerViewMobile,
17 slidesPerViewTablet,
18 slidesPerViewPC,
19 slidesPerGroup,
20 navigationPosition,
21 centeredSlides,
22 zoomAnimation,
23 zoomInitialScale,
24 zoomFinalScale,
25 direction,
26 } = attributes;
27
28 const sliderData = {
29 autoPlay,
30 autoPlayStop,
31 autoPlayDelay,
32 pauseButton,
33 pagination,
34 width,
35 loop,
36 effect,
37 speed,
38 direction,
39 slidesPerViewMobile,
40 slidesPerViewTablet,
41 slidesPerViewPC,
42 slidesPerGroup,
43 centeredSlides,
44 zoomAnimation,
45 zoomInitialScale,
46 zoomFinalScale,
47 blockId,
48 };
49
50 let alignClass = '';
51 if ('full' === width) {
52 alignClass = ' alignfull';
53 } else if ('wide' === width) {
54 alignClass = ' alignwide';
55 }
56
57 // ページネーションの HTML
58 let pagination_html = '';
59 if (pagination !== 'hide') {
60 pagination_html = (
61 <div
62 className={`swiper-pagination swiper-pagination-${pagination}`}
63 ></div>
64 );
65 }
66
67 // ナビゲーションの HTML
68 let navigation_next_html = '';
69 let navigation_prev_html = '';
70 if (navigationPosition !== 'hide') {
71 navigation_next_html = (
72 <div
73 className={`swiper-button-next swiper-button-${navigationPosition}`}
74 ></div>
75 );
76 navigation_prev_html = (
77 <div
78 className={`swiper-button-prev swiper-button-${navigationPosition}`}
79 ></div>
80 );
81 }
82
83 const blockProps = useBlockProps.save({
84 className: `swiper swiper-container vk_slider vk_slider_${blockId}${alignClass}`,
85 });
86
87 // 停止/再生ボタンの HTML(自動再生が有効かつ表示設定が ON の時のみ出力)。
88 // ⚠️ ボタンはスライダーのルート直下に置くこと。view.js が
89 // :scope > .swiper-pause-button で直下のみを検索するため、ラッパーで囲むと
90 // 停止/再生ボタンと「視差効果を減らす」対応が機能しなくなる
91 // (保存出力の変更になるため deprecation も�
92 要になる)。
93 // ⚠️ Keep this button a DIRECT CHILD of the slider root: view.js locates it
94 // with ':scope > .swiper-pause-button', so wrapping it breaks the pause/play
95 // button and the reduced-motion handling (changing the saved markup would
96 // also require a block deprecation).
97 const pause_button_html = autoPlay && pauseButton ? <PauseButton /> : '';
98
99 return (
100 <div {...blockProps} data-vkb-slider={JSON.stringify(sliderData)}>
101 <div className={`swiper-wrapper`}>
102 <InnerBlocks.Content />
103 </div>
104 {navigation_next_html}
105 {navigation_prev_html}
106 {pagination_html}
107 {pause_button_html}
108 </div>
109 );
110 }
111