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 / spacer / transforms.js
vk-blocks / src / blocks / spacer Last commit date
deprecated 2 months ago advanced-spacer-control.js 2 months ago block.json 2 days ago edit.js 2 weeks ago icon.svg 2 months ago index.js 2 months ago index.php 2 months ago save.js 2 months ago spacers.js 2 months ago style.scss 2 months ago transforms.js 2 months ago
transforms.js
110 lines
1 import { createBlock } from '@wordpress/blocks';
2
3 // preset from
4 const SPACER_PRESET_FROM = {
5 20: 'xxs',
6 30: 'xs',
7 40: 'small',
8 50: 'medium',
9 60: 'large',
10 70: 'xl',
11 80: 'xxl',
12 };
13
14 // preset to
15 const SPACER_PRESET_TO = Object.entries(SPACER_PRESET_FROM).reduce(
16 (acc, [preset, label]) => {
17 acc[label] = preset;
18 return acc;
19 },
20 {}
21 );
22
23 const transforms = {
24 from: [
25 // Spacer -> Responsive Spacer
26 {
27 type: 'block',
28 blocks: ['core/spacer'],
29 transform: (attributes) => {
30 const { height } = attributes;
31 let toSize = 'medium';
32 let toValue = 40;
33 let toUnit = 'px';
34
35 // core classname
36 let toClassName = attributes.className;
37 if (toClassName !== undefined) {
38 toClassName = (toClassName || '')
39 .trim()
40 .split(/\s+/)
41 .filter((word) => word && !word.startsWith('is-style-'))
42 .join(' ');
43 }
44
45 if (!height.startsWith('var:preset|spacing|')) {
46 // custom
47 toSize = 'custom';
48 toValue = height.replace(/[^0-9]/g, '');
49 toUnit = height.replace(/\d/g, '');
50 } else {
51 // preset
52 const presetSize = height.replace(
53 'var:preset|spacing|',
54 ''
55 );
56 toSize = SPACER_PRESET_FROM[presetSize];
57 }
58
59 const transformAttributes = {
60 ...(toClassName ? { className: toClassName } : {}),
61 spaceSize: toSize,
62 pc: toValue,
63 unit: toUnit,
64 };
65
66 if (!toClassName) {
67 // クラスがひとつもないとき
68 delete attributes.className;
69 }
70
71 return createBlock('vk-blocks/spacer', transformAttributes);
72 },
73 },
74 ],
75 to: [
76 // Responsive Spacer -> Spacer
77 {
78 type: 'block',
79 blocks: ['core/spacer'],
80 transform: (attributes) => {
81 const { unit, pc, spaceSize } = attributes;
82
83 let toSize;
84 if ('custom' === spaceSize) {
85 // custom
86 toSize = pc + unit;
87 } else {
88 // preset
89 toSize =
90 'var:preset|spacing|' + SPACER_PRESET_TO[spaceSize];
91 }
92
93 const transformSpacerAttributes = {
94 ...attributes,
95 height: toSize,
96 };
97
98 const blockContent = [];
99
100 blockContent.push(
101 createBlock('core/spacer', transformSpacerAttributes)
102 );
103 return blockContent;
104 },
105 },
106 ],
107 };
108
109 export default transforms;
110