PluginProbe
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor / 4.0.3
User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor v4.0.3
4.0.3 4.0.2 4.0.1 4.0.0 3.16.6 3.16.5 3.16.4 3.16.3 3.16.2 3.16.1 3.16.0 3.15.9 3.9.9 3.9.5 3.9.6 3.9.7 3.9.8 1.1.7 1.1.8 1.1.9 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 All 341 releases
profile-builder / form-builder / blocks / src / register-blocks.js

register-blocks.js in User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor 4.0.3, at form-builder/blocks/src/register-blocks.js

53 lines 2.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Register every ./blocks/* folder via require.context.
3 * Imported as a module so filters in index.js install before first registerBlockType.
4 * BLOCK_ORDER sets the curated "New Fields" inserter order.
5 */
6 import { registerBlockType } from '@wordpress/blocks';
7 import nullSave from './lib/null-save';
8
9 const blockMeta = require.context( './blocks', true, /\/block\.json$/ );
10 const blockEdit = require.context( './blocks', true, /\/edit\.js$/ );
11 const blockSave = require.context( './blocks', true, /\/save\.js$/ );
12
13 const BLOCK_ORDER = [
14 'field-input', 'field-textarea', 'field-select', 'field-select-multiple', 'field-select2',
15 'field-select2-multiple', 'field-select-country', 'field-select-timezone', 'field-select-currency', 'field-select-cpt',
16 'field-select-taxonomy', 'field-checkbox', 'field-checkbox-toa', 'field-radio', 'field-number',
17 'field-phone', 'field-upload', 'field-avatar', 'field-colorpicker', 'field-datepicker',
18 'field-timepicker', 'field-wysiwyg', 'field-html', 'field-input-hidden', 'field-language',
19 'field-input-url', 'field-validation', 'field-gdpr-checkbox', 'field-gdpr-delete', 'field-gdpr-communication-preferences',
20 'field-mailchimp-subscribe', 'field-mailpoet-subscribe', 'field-campaign-monitor-subscribe', 'field-woo-billing-address', 'field-woo-shipping-address',
21 'field-pms-subscription-plans', 'field-pms-billing-fields',
22 'field-international-telephone-input', 'field-map', 'field-additional-map', 'field-email', 'field-honeypot',
23 'field-default-aim', 'field-default-yim', 'field-default-jabber', 'field-default-blog-details', 'field-recaptcha',
24 'field-turnstile', 'field-heading', 'field-repeater', 'field-default-username', 'field-default-email',
25 'field-default-password', 'field-default-first-name', 'field-default-last-name', 'field-default-nickname', 'field-default-biographical-info',
26 'field-default-display-name', 'field-default-website', 'field-default-name-heading', 'field-default-contact-info-heading', 'field-default-about-yourself-heading',
27 'field-default-repeat-password', 'field-email-confirmation', 'field-select-user-role', 'msf-step-break', 'ffc-columns',
28 'progress-bar',
29 ];
30
31 const dirOf = ( key ) => key.replace( /^\.\//, '' ).split( '/' )[ 0 ];
32 const def = ( mod ) => ( mod && mod.default !== undefined ? mod.default : mod );
33
34 const orderOf = ( dir ) => {
35 const i = BLOCK_ORDER.indexOf( dir );
36 return i === -1 ? BLOCK_ORDER.length : i;
37 };
38
39 const saveKeys = blockSave.keys();
40
41 blockMeta
42 .keys()
43 .sort( ( a, b ) => orderOf( dirOf( a ) ) - orderOf( dirOf( b ) ) )
44 .forEach( ( metaKey ) => {
45 const dir = dirOf( metaKey );
46 const metadata = def( blockMeta( metaKey ) );
47 const edit = def( blockEdit( `./${ dir }/edit.js` ) );
48 const saveKey = `./${ dir }/save.js`;
49 const save = saveKeys.includes( saveKey ) ? def( blockSave( saveKey ) ) : nullSave;
50
51 registerBlockType( metadata.name, { ...metadata, edit, save } );
52 } );
53