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 / utils / wrap-unwrap.js
vk-blocks / src / utils Last commit date
store 2 months ago GenerateBgImage.js 2 months ago block-duplicate-helper.js 2 months ago capitalize.js 2 months ago color-code-to-class.js 2 months ago color-slug-to-color-code.js 2 months ago common.scss 2 weeks ago convert-to-grid.js 2 months ago default-color-palette.js 2 months ago delete-from-array.js 2 months ago depModules.js 2 months ago disable-links.js 2 weeks ago empty-string-to-undefined.js 2 months ago example-data.js 2 months ago fixBrokenUnicode.js 2 months ago font-awesome-new.js 2 weeks ago font-awesome-version.js 2 months ago font-awesome.js 2 months ago formatNumCol.js 2 months ago gradient-slug-to-gradient-code.js 2 months ago heading-level-utils.js 2 months ago hex-to-rgba.js 2 months ago horizontal-scroll-controls.js 2 months ago icon-label.js 2 weeks ago is-excludes-blocks.js 2 months ago is-gradient-style.js 2 months ago is-hex-color.js 2 months ago is-not-json.js 2 months ago is-parent-reusable-block.js 16 hours ago merge-colors.js 2 months ago multi-array-flaten.js 2 months ago removeProperty.js 2 months ago replaceClientId.js 2 months ago sanitizeSlug.js 2 months ago settings-page-url.js 2 weeks ago strip-html.js 2 months ago taxonomy-utils.js 2 months ago to-number.js 2 months ago to-preset-spacing-var.js 2 months ago unit-options.js 2 months ago wrap-unwrap.js 2 months ago
wrap-unwrap.js
60 lines
1 import { createBlock, getBlockType } from '@wordpress/blocks';
2
3 /**
4 * ブロック登録済みチェック
5 * @param {string} blockName - チェックするブロックの名前
6 * @return {boolean} - ブロックが登録されているかどうか
7 */
8 const isRegisteredBlock = (blockName) => {
9 return !!getBlockType(blockName);
10 };
11
12 /**
13 * 汎用的なwrap-unwrapコンポーネント
14 *
15 * @param {string} blockName - ブロックの名前
16 * @return {Object} transformsオブジェクト - ブロックの変換設定
17 */
18 const createWrapUnwrapTransforms = (blockName) => {
19 if (!blockName) {
20 throw new Error(
21 'blockName is required for createWrapUnwrapTransforms.'
22 );
23 }
24
25 return {
26 from: [
27 {
28 type: 'block',
29 isMultiBlock: true,
30 blocks: ['*'],
31 __experimentalConvert(blocks) {
32 if (!isRegisteredBlock(blockName)) {
33 throw new Error(
34 `Block "${blockName}" is not registered.`
35 );
36 }
37
38 const groupInnerBlocks = blocks.map((block) =>
39 createBlock(
40 block.name,
41 block.attributes,
42 block.innerBlocks
43 )
44 );
45
46 return createBlock(blockName, {}, groupInnerBlocks);
47 },
48 },
49 ],
50 ungroup: (attributes, innerBlocks) => {
51 if (!isRegisteredBlock(blockName)) {
52 throw new Error(`Block "${blockName}" is not registered.`);
53 }
54 return innerBlocks;
55 },
56 };
57 };
58
59 export default createWrapUnwrapTransforms;
60