alert
2 weeks ago
ancestor-page-list
2 months ago
balloon
2 weeks ago
border-box
1 day ago
button
1 day ago
faq
1 day ago
faq2
1 day ago
faq2-a
1 month ago
faq2-q
1 month ago
flow
2 weeks ago
heading
1 day ago
icon
2 weeks ago
icon-outer
1 month ago
page-content
1 month ago
pr-blocks
1 month ago
pr-content
2 weeks ago
slider
1 day ago
slider-item
1 day ago
spacer
1 day ago
staff
2 weeks ago
visual-embed
2 weeks ago
bundle.js
2 weeks ago
index.js
2 months ago
bundle.js
144 lines
| 1 | /** |
| 2 | * WordPress dependencies |
| 3 | */ |
| 4 | import '@wordpress/core-data'; |
| 5 | import '@wordpress/notices'; |
| 6 | // import '@wordpress/block-editor'; |
| 7 | import { |
| 8 | registerBlockType, |
| 9 | unstable__bootstrapServerSideBlockDefinitions, |
| 10 | } from '@wordpress/blocks'; |
| 11 | import { compareVersions } from 'compare-versions'; |
| 12 | const vkblocksPro = []; |
| 13 | |
| 14 | /** |
| 15 | * Blocks |
| 16 | */ |
| 17 | import * as alert from './alert'; |
| 18 | import * as ancestorPageList from './ancestor-page-list'; |
| 19 | import * as balloon from './balloon'; |
| 20 | import * as borderBox from './border-box'; |
| 21 | import * as button from './button'; |
| 22 | import * as faq from './faq'; |
| 23 | import * as faq2 from './faq2'; |
| 24 | import * as faq2a from './faq2-a'; |
| 25 | import * as faq2q from './faq2-q'; |
| 26 | import * as flow from './flow'; |
| 27 | import * as heading from './heading'; |
| 28 | import * as icon from './icon'; |
| 29 | import * as iconOuter from './icon-outer'; |
| 30 | import * as pageContent from './page-content'; |
| 31 | import * as prBlocks from './pr-blocks'; |
| 32 | import * as prContent from './pr-content'; |
| 33 | import * as slider from './slider'; |
| 34 | import * as sliderItem from './slider-item'; |
| 35 | import * as spacer from './spacer'; |
| 36 | import * as staff from './staff'; |
| 37 | import * as visualEmbed from './visual-embed'; |
| 38 | |
| 39 | /** |
| 40 | * Store |
| 41 | */ |
| 42 | import '@vkblocks/utils/store'; |
| 43 | import '@vkblocks/utils/store/termColor'; |
| 44 | |
| 45 | /** |
| 46 | * Extensions |
| 47 | */ |
| 48 | import '@vkblocks/extensions/core/group/style'; |
| 49 | import '@vkblocks/extensions/core/list/style'; |
| 50 | import '@vkblocks/extensions/core/columns/style'; |
| 51 | import '@vkblocks/extensions/core/site-logo/style'; |
| 52 | import '@vkblocks/extensions/core/navigation/style'; |
| 53 | import '@vkblocks/extensions/core/table/style'; |
| 54 | import '@vkblocks/extensions/core/cover/style'; |
| 55 | import '@vkblocks/extensions/common/hidden-extension'; |
| 56 | import '@vkblocks/extensions/common/highlighter'; |
| 57 | import '@vkblocks/extensions/common/inline-font-size'; |
| 58 | import '@vkblocks/extensions/common/nowrap'; |
| 59 | import '@vkblocks/extensions/common/responsive-br'; |
| 60 | import '@vkblocks/extensions/common/margin-extension'; |
| 61 | import '@vkblocks/extensions/common/content-width-half'; |
| 62 | |
| 63 | const vkBlocks = [ |
| 64 | alert, |
| 65 | balloon, |
| 66 | borderBox, |
| 67 | button, |
| 68 | faq, |
| 69 | faq2, |
| 70 | faq2a, |
| 71 | faq2q, |
| 72 | flow, |
| 73 | heading, |
| 74 | icon, |
| 75 | iconOuter, |
| 76 | pageContent, |
| 77 | prBlocks, |
| 78 | prContent, |
| 79 | slider, |
| 80 | sliderItem, |
| 81 | spacer, |
| 82 | staff, |
| 83 | visualEmbed, |
| 84 | ancestorPageList, |
| 85 | ]; |
| 86 | |
| 87 | /** |
| 88 | * Function to get all the VK Blocks in an array. |
| 89 | */ |
| 90 | export const __getVKBlocks = () => vkBlocks.concat(vkblocksPro); |
| 91 | |
| 92 | /** |
| 93 | * Function to register an individual block. |
| 94 | * |
| 95 | * @param {Object} block The block to be registered. |
| 96 | */ |
| 97 | const registerBlock = (block) => { |
| 98 | if (!block) { |
| 99 | return; |
| 100 | } |
| 101 | |
| 102 | let { metadata, settings, name } = block; |
| 103 | |
| 104 | /* |
| 105 | そもそも Require at Least が 5.7 なので 5.5 以下の後方互換は不要ではあるが、現状影響が少ないので残しておく |
| 106 | window.wpVersion は外観 > カスタマイズ > ウィジェットでは undefined を返すので比較不可能 |
| 107 | ともかく最初から undefined が条件に当てはまらないように変更 |
| 108 | */ |
| 109 | |
| 110 | //WP5.5未満の場合 |
| 111 | if ( |
| 112 | window.wpVersion !== undefined && |
| 113 | window.wpVersion !== null && |
| 114 | compareVersions(window.wpVersion, '5.5') < 0 |
| 115 | ) { |
| 116 | //nameを削除 |
| 117 | delete metadata.name; |
| 118 | //カテゴリ等を追加 |
| 119 | settings = { |
| 120 | ...settings, |
| 121 | ...metadata, |
| 122 | }; |
| 123 | } else if (metadata) { |
| 124 | // ServerSideBlockの設定読み込み |
| 125 | unstable__bootstrapServerSideBlockDefinitions({ [name]: metadata }); |
| 126 | } |
| 127 | |
| 128 | // 5.8以前の場合はnameのみ渡す |
| 129 | if (typeof getBlockSettingsFromMetadata !== 'function') { |
| 130 | registerBlockType(name, settings); |
| 131 | } else if (metadata) { |
| 132 | registerBlockType(metadata, settings); |
| 133 | } |
| 134 | }; |
| 135 | |
| 136 | /** |
| 137 | * Function to register VK Blocks. |
| 138 | * |
| 139 | * @param {*} blocks |
| 140 | */ |
| 141 | export const registerVKBlocks = (blocks = __getVKBlocks()) => { |
| 142 | blocks.forEach(registerBlock); |
| 143 | }; |
| 144 |