@wordpress/block-library 8.20.1 → 8.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +12 -0
- package/build/block/index.js +2 -1
- package/build/block/index.js.map +1 -1
- package/build/code/edit.native.js +8 -2
- package/build/code/edit.native.js.map +1 -1
- package/build/cover/deprecated.js +110 -1
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/index.js +9 -3
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +1 -2
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/index.js +0 -3
- package/build/cover/index.js.map +1 -1
- package/build/cover/save.js +2 -1
- package/build/cover/save.js.map +1 -1
- package/build/cover/shared.js +1 -1
- package/build/cover/shared.js.map +1 -1
- package/build/footnotes/index.js +1 -0
- package/build/footnotes/index.js.map +1 -1
- package/build/form/edit.js +138 -0
- package/build/form/edit.js.map +1 -0
- package/build/form/index.js +92 -0
- package/build/form/index.js.map +1 -0
- package/build/form/init.js +13 -0
- package/build/form/init.js.map +1 -0
- package/build/form/save.js +28 -0
- package/build/form/save.js.map +1 -0
- package/build/form/utils.js +24 -0
- package/build/form/utils.js.map +1 -0
- package/build/form/variations.js +95 -0
- package/build/form/variations.js.map +1 -0
- package/build/form/view.js +42 -0
- package/build/form/view.js.map +1 -0
- package/build/form-input/edit.js +124 -0
- package/build/form-input/edit.js.map +1 -0
- package/build/form-input/index.js +105 -0
- package/build/form-input/index.js.map +1 -0
- package/build/form-input/init.js +13 -0
- package/build/form-input/init.js.map +1 -0
- package/build/form-input/save.js +87 -0
- package/build/form-input/save.js.map +1 -0
- package/build/form-input/variations.js +93 -0
- package/build/form-input/variations.js.map +1 -0
- package/build/form-submission-notification/edit.js +59 -0
- package/build/form-submission-notification/edit.js.map +1 -0
- package/build/form-submission-notification/index.js +56 -0
- package/build/form-submission-notification/index.js.map +1 -0
- package/build/form-submission-notification/init.js +13 -0
- package/build/form-submission-notification/init.js.map +1 -0
- package/build/form-submission-notification/save.js +33 -0
- package/build/form-submission-notification/save.js.map +1 -0
- package/build/form-submission-notification/variations.js +63 -0
- package/build/form-submission-notification/variations.js.map +1 -0
- package/build/form-submit-button/edit.js +32 -0
- package/build/form-submit-button/edit.js.map +1 -0
- package/build/form-submit-button/index.js +44 -0
- package/build/form-submit-button/index.js.map +1 -0
- package/build/form-submit-button/init.js +13 -0
- package/build/form-submit-button/init.js.map +1 -0
- package/build/form-submit-button/save.js +22 -0
- package/build/form-submit-button/save.js.map +1 -0
- package/build/group/index.js +0 -1
- package/build/group/index.js.map +1 -1
- package/build/heading/index.js +3 -2
- package/build/heading/index.js.map +1 -1
- package/build/image/image.js +4 -1
- package/build/image/image.js.map +1 -1
- package/build/image/view.js +82 -40
- package/build/image/view.js.map +1 -1
- package/build/index.js +10 -0
- package/build/index.js.map +1 -1
- package/build/latest-posts/edit.js +6 -2
- package/build/latest-posts/edit.js.map +1 -1
- package/build/list-item/hooks/use-merge.js +15 -15
- package/build/list-item/hooks/use-merge.js.map +1 -1
- package/build/lock-unlock.js +1 -1
- package/build/lock-unlock.js.map +1 -1
- package/build/missing/edit.native.js +14 -62
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/edit/index.js +0 -1
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/index.js +2 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/view.js +27 -5
- package/build/navigation/view.js.map +1 -1
- package/build/page-list-item/edit.js +3 -1
- package/build/page-list-item/edit.js.map +1 -1
- package/build/paragraph/index.js +7 -0
- package/build/paragraph/index.js.map +1 -1
- package/build/pattern/index.js +2 -1
- package/build/pattern/index.js.map +1 -1
- package/build/template-part/index.js +2 -1
- package/build/template-part/index.js.map +1 -1
- package/build-module/block/index.js +2 -1
- package/build-module/block/index.js.map +1 -1
- package/build-module/code/edit.native.js +8 -2
- package/build-module/code/edit.native.js.map +1 -1
- package/build-module/cover/deprecated.js +110 -1
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/index.js +9 -3
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +1 -2
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +0 -3
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/save.js +2 -1
- package/build-module/cover/save.js.map +1 -1
- package/build-module/cover/shared.js +1 -1
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/footnotes/index.js +1 -0
- package/build-module/footnotes/index.js.map +1 -1
- package/build-module/form/edit.js +130 -0
- package/build-module/form/edit.js.map +1 -0
- package/build-module/form/index.js +82 -0
- package/build-module/form/index.js.map +1 -0
- package/build-module/form/init.js +6 -0
- package/build-module/form/init.js.map +1 -0
- package/build-module/form/save.js +20 -0
- package/build-module/form/save.js.map +1 -0
- package/build-module/form/utils.js +15 -0
- package/build-module/form/utils.js.map +1 -0
- package/build-module/form/variations.js +86 -0
- package/build-module/form/variations.js.map +1 -0
- package/build-module/form/view.js +40 -0
- package/build-module/form/view.js.map +1 -0
- package/build-module/form-input/edit.js +115 -0
- package/build-module/form-input/edit.js.map +1 -0
- package/build-module/form-input/index.js +95 -0
- package/build-module/form-input/index.js.map +1 -0
- package/build-module/form-input/init.js +6 -0
- package/build-module/form-input/init.js.map +1 -0
- package/build-module/form-input/save.js +80 -0
- package/build-module/form-input/save.js.map +1 -0
- package/build-module/form-input/variations.js +85 -0
- package/build-module/form-input/variations.js.map +1 -0
- package/build-module/form-submission-notification/edit.js +50 -0
- package/build-module/form-submission-notification/edit.js.map +1 -0
- package/build-module/form-submission-notification/index.js +47 -0
- package/build-module/form-submission-notification/index.js.map +1 -0
- package/build-module/form-submission-notification/init.js +6 -0
- package/build-module/form-submission-notification/init.js.map +1 -0
- package/build-module/form-submission-notification/save.js +25 -0
- package/build-module/form-submission-notification/save.js.map +1 -0
- package/build-module/form-submission-notification/variations.js +55 -0
- package/build-module/form-submission-notification/variations.js.map +1 -0
- package/build-module/form-submit-button/edit.js +24 -0
- package/build-module/form-submit-button/edit.js.map +1 -0
- package/build-module/form-submit-button/index.js +34 -0
- package/build-module/form-submit-button/index.js.map +1 -0
- package/build-module/form-submit-button/init.js +6 -0
- package/build-module/form-submit-button/init.js.map +1 -0
- package/build-module/form-submit-button/save.js +14 -0
- package/build-module/form-submit-button/save.js.map +1 -0
- package/build-module/group/index.js +0 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/heading/index.js +3 -2
- package/build-module/heading/index.js.map +1 -1
- package/build-module/image/image.js +4 -1
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/view.js +82 -40
- package/build-module/image/view.js.map +1 -1
- package/build-module/index.js +10 -0
- package/build-module/index.js.map +1 -1
- package/build-module/latest-posts/edit.js +6 -2
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/list-item/hooks/use-merge.js +15 -15
- package/build-module/list-item/hooks/use-merge.js.map +1 -1
- package/build-module/lock-unlock.js +1 -1
- package/build-module/lock-unlock.js.map +1 -1
- package/build-module/missing/edit.native.js +17 -65
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/edit/index.js +0 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/index.js +2 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/view.js +27 -5
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/page-list-item/edit.js +3 -1
- package/build-module/page-list-item/edit.js.map +1 -1
- package/build-module/paragraph/index.js +7 -0
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/pattern/index.js +2 -1
- package/build-module/pattern/index.js.map +1 -1
- package/build-module/template-part/index.js +2 -1
- package/build-module/template-part/index.js.map +1 -1
- package/build-style/editor-rtl.css +50 -0
- package/build-style/editor.css +50 -0
- package/build-style/form-input/editor-rtl.css +106 -0
- package/build-style/form-input/editor.css +106 -0
- package/build-style/form-input/style-rtl.css +135 -0
- package/build-style/form-input/style.css +135 -0
- package/build-style/form-submission-notification/editor-rtl.css +118 -0
- package/build-style/form-submission-notification/editor.css +118 -0
- package/build-style/form-submit-button/style-rtl.css +91 -0
- package/build-style/form-submit-button/style.css +91 -0
- package/build-style/image/style-rtl.css +39 -5
- package/build-style/image/style.css +39 -5
- package/build-style/query/style-rtl.css +0 -10
- package/build-style/query/style.css +0 -10
- package/build-style/style-rtl.css +87 -5
- package/build-style/style.css +87 -5
- package/package.json +32 -32
- package/src/block/block.json +2 -1
- package/src/code/edit.native.js +15 -1
- package/src/cover/block.json +0 -3
- package/src/cover/deprecated.js +151 -1
- package/src/cover/edit/index.js +12 -3
- package/src/cover/edit/inspector-controls.js +19 -25
- package/src/cover/save.js +2 -1
- package/src/cover/shared.js +1 -1
- package/src/editor.scss +2 -0
- package/src/footnotes/block.json +1 -0
- package/src/form/block.json +60 -0
- package/src/form/edit.js +179 -0
- package/src/form/index.js +20 -0
- package/src/form/index.php +214 -0
- package/src/form/init.js +6 -0
- package/src/form/save.js +20 -0
- package/src/form/utils.js +39 -0
- package/src/form/variations.js +139 -0
- package/src/form/view.js +41 -0
- package/src/form-input/block.json +73 -0
- package/src/form-input/edit.js +151 -0
- package/src/form-input/editor.scss +24 -0
- package/src/form-input/index.js +20 -0
- package/src/form-input/index.php +45 -0
- package/src/form-input/init.js +6 -0
- package/src/form-input/save.js +83 -0
- package/src/form-input/style.scss +61 -0
- package/src/form-input/variations.js +82 -0
- package/src/form-submission-notification/block.json +19 -0
- package/src/form-submission-notification/edit.js +63 -0
- package/src/form-submission-notification/editor.scss +45 -0
- package/src/form-submission-notification/index.js +26 -0
- package/src/form-submission-notification/index.php +48 -0
- package/src/form-submission-notification/init.js +6 -0
- package/src/form-submission-notification/save.js +28 -0
- package/src/form-submission-notification/variations.js +59 -0
- package/src/form-submit-button/block.json +14 -0
- package/src/form-submit-button/edit.js +33 -0
- package/src/form-submit-button/index.js +18 -0
- package/src/form-submit-button/init.js +6 -0
- package/src/form-submit-button/save.js +14 -0
- package/src/form-submit-button/style.scss +3 -0
- package/src/group/block.json +0 -1
- package/src/heading/index.js +4 -2
- package/src/image/image.js +10 -0
- package/src/image/index.php +128 -82
- package/src/image/style.scss +49 -5
- package/src/image/view.js +100 -52
- package/src/index.js +10 -0
- package/src/latest-posts/edit.js +11 -2
- package/src/latest-posts/index.php +17 -8
- package/src/list-item/hooks/use-merge.js +20 -23
- package/src/lock-unlock.js +1 -1
- package/src/missing/edit.native.js +17 -115
- package/src/missing/style.native.scss +0 -67
- package/src/missing/test/edit-integration.native.js +135 -49
- package/src/missing/test/edit.native.js +0 -41
- package/src/navigation/block.json +2 -1
- package/src/navigation/edit/index.js +0 -1
- package/src/navigation/index.php +28 -8
- package/src/navigation/view.js +25 -6
- package/src/page-list-item/edit.js +2 -0
- package/src/paragraph/index.js +10 -0
- package/src/pattern/block.json +2 -1
- package/src/pattern/index.php +0 -3
- package/src/post-navigation-link/index.php +2 -1
- package/src/preformatted/test/edit.native.js +38 -0
- package/src/query/index.php +3 -2
- package/src/query/style.scss +0 -11
- package/src/search/index.php +0 -4
- package/src/style.scss +1 -0
- package/src/template-part/block.json +2 -1
- package/src/template-part/index.php +4 -7
- package/src/verse/test/edit.native.js +37 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
/**
|
|
6
|
+
* Internal dependencies
|
|
7
|
+
*/
|
|
8
|
+
import { formSubmissionNotificationSuccess, formSubmissionNotificationError } from './utils.js';
|
|
9
|
+
const variations = [{
|
|
10
|
+
name: 'comment-form',
|
|
11
|
+
title: __('Experimental Comment form'),
|
|
12
|
+
description: __('A comment form for posts and pages.'),
|
|
13
|
+
attributes: {
|
|
14
|
+
submissionMethod: 'custom',
|
|
15
|
+
action: '{SITE_URL}/wp-comments-post.php',
|
|
16
|
+
method: 'post',
|
|
17
|
+
anchor: 'comment-form'
|
|
18
|
+
},
|
|
19
|
+
isDefault: false,
|
|
20
|
+
innerBlocks: [['core/form-input', {
|
|
21
|
+
type: 'text',
|
|
22
|
+
name: 'author',
|
|
23
|
+
label: __('Name'),
|
|
24
|
+
required: true,
|
|
25
|
+
visibilityPermissions: 'logged-out'
|
|
26
|
+
}], ['core/form-input', {
|
|
27
|
+
type: 'email',
|
|
28
|
+
name: 'email',
|
|
29
|
+
label: __('Email'),
|
|
30
|
+
required: true,
|
|
31
|
+
visibilityPermissions: 'logged-out'
|
|
32
|
+
}], ['core/form-input', {
|
|
33
|
+
type: 'textarea',
|
|
34
|
+
name: 'comment',
|
|
35
|
+
label: __('Comment'),
|
|
36
|
+
required: true,
|
|
37
|
+
visibilityPermissions: 'all'
|
|
38
|
+
}], ['core/form-submit-button', {}]],
|
|
39
|
+
scope: ['inserter', 'transform'],
|
|
40
|
+
isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
|
|
41
|
+
}, {
|
|
42
|
+
name: 'wp-privacy-form',
|
|
43
|
+
title: __('Experimental privacy request form'),
|
|
44
|
+
keywords: ['GDPR'],
|
|
45
|
+
description: __('A form torequest data exports and/or deletion.'),
|
|
46
|
+
attributes: {
|
|
47
|
+
submissionMethod: 'custom',
|
|
48
|
+
action: '',
|
|
49
|
+
method: 'post',
|
|
50
|
+
anchor: 'gdpr-form'
|
|
51
|
+
},
|
|
52
|
+
isDefault: false,
|
|
53
|
+
innerBlocks: [formSubmissionNotificationSuccess, formSubmissionNotificationError, ['core/paragraph', {
|
|
54
|
+
content: __('To request an export or deletion of your personal data on this site, please fill-in the form below. You can define the type of request you wish to perform, and your email address. Once the form is submitted, you will receive a confirmation email with instructions on the next steps.')
|
|
55
|
+
}], ['core/form-input', {
|
|
56
|
+
type: 'email',
|
|
57
|
+
name: 'email',
|
|
58
|
+
label: __('Enter your email address.'),
|
|
59
|
+
required: true,
|
|
60
|
+
visibilityPermissions: 'all'
|
|
61
|
+
}], ['core/form-input', {
|
|
62
|
+
type: 'checkbox',
|
|
63
|
+
name: 'export_personal_data',
|
|
64
|
+
label: __('Request data export'),
|
|
65
|
+
required: false,
|
|
66
|
+
visibilityPermissions: 'all'
|
|
67
|
+
}], ['core/form-input', {
|
|
68
|
+
type: 'checkbox',
|
|
69
|
+
name: 'remove_personal_data',
|
|
70
|
+
label: __('Request data deletion'),
|
|
71
|
+
required: false,
|
|
72
|
+
visibilityPermissions: 'all'
|
|
73
|
+
}], ['core/form-submit-button', {}], ['core/form-input', {
|
|
74
|
+
type: 'hidden',
|
|
75
|
+
name: 'wp-action',
|
|
76
|
+
value: 'wp_privacy_send_request'
|
|
77
|
+
}], ['core/form-input', {
|
|
78
|
+
type: 'hidden',
|
|
79
|
+
name: 'wp-privacy-request',
|
|
80
|
+
value: '1'
|
|
81
|
+
}]],
|
|
82
|
+
scope: ['inserter', 'transform'],
|
|
83
|
+
isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
|
|
84
|
+
}];
|
|
85
|
+
export default variations;
|
|
86
|
+
//# sourceMappingURL=variations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","formSubmissionNotificationSuccess","formSubmissionNotificationError","variations","name","title","description","attributes","submissionMethod","action","method","anchor","isDefault","innerBlocks","type","label","required","visibilityPermissions","scope","isActive","blockAttributes","keywords","content","value"],"sources":["@wordpress/block-library/src/form/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n/**\n * Internal dependencies\n */\nimport {\n\tformSubmissionNotificationSuccess,\n\tformSubmissionNotificationError,\n} from './utils.js';\n\nconst variations = [\n\t{\n\t\tname: 'comment-form',\n\t\ttitle: __( 'Experimental Comment form' ),\n\t\tdescription: __( 'A comment form for posts and pages.' ),\n\t\tattributes: {\n\t\t\tsubmissionMethod: 'custom',\n\t\t\taction: '{SITE_URL}/wp-comments-post.php',\n\t\t\tmethod: 'post',\n\t\t\tanchor: 'comment-form',\n\t\t},\n\t\tisDefault: false,\n\t\tinnerBlocks: [\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tname: 'author',\n\t\t\t\t\tlabel: __( 'Name' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'logged-out',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\tlabel: __( 'Email' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'logged-out',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'textarea',\n\t\t\t\t\tname: 'comment',\n\t\t\t\t\tlabel: __( 'Comment' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'core/form-submit-button', {} ],\n\t\t],\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n\t{\n\t\tname: 'wp-privacy-form',\n\t\ttitle: __( 'Experimental privacy request form' ),\n\t\tkeywords: [ 'GDPR' ],\n\t\tdescription: __( 'A form torequest data exports and/or deletion.' ),\n\t\tattributes: {\n\t\t\tsubmissionMethod: 'custom',\n\t\t\taction: '',\n\t\t\tmethod: 'post',\n\t\t\tanchor: 'gdpr-form',\n\t\t},\n\t\tisDefault: false,\n\t\tinnerBlocks: [\n\t\t\tformSubmissionNotificationSuccess,\n\t\t\tformSubmissionNotificationError,\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tcontent: __(\n\t\t\t\t\t\t'To request an export or deletion of your personal data on this site, please fill-in the form below. You can define the type of request you wish to perform, and your email address. Once the form is submitted, you will receive a confirmation email with instructions on the next steps.'\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'email',\n\t\t\t\t\tname: 'email',\n\t\t\t\t\tlabel: __( 'Enter your email address.' ),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tname: 'export_personal_data',\n\t\t\t\t\tlabel: __( 'Request data export' ),\n\t\t\t\t\trequired: false,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'checkbox',\n\t\t\t\t\tname: 'remove_personal_data',\n\t\t\t\t\tlabel: __( 'Request data deletion' ),\n\t\t\t\t\trequired: false,\n\t\t\t\t\tvisibilityPermissions: 'all',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[ 'core/form-submit-button', {} ],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tname: 'wp-action',\n\t\t\t\t\tvalue: 'wp_privacy_send_request',\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/form-input',\n\t\t\t\t{\n\t\t\t\t\ttype: 'hidden',\n\t\t\t\t\tname: 'wp-privacy-request',\n\t\t\t\t\tvalue: '1',\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n];\n\nexport default variations;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// eslint-disable-next-line eslint-comments/disable-enable-pair
|
|
2
|
+
/* eslint-disable no-undef */
|
|
3
|
+
document.querySelectorAll('form.wp-block-form').forEach(function (form) {
|
|
4
|
+
// Bail If the form is not using the mailto: action.
|
|
5
|
+
if (!form.action || !form.action.startsWith('mailto:')) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
const redirectNotification = status => {
|
|
9
|
+
const urlParams = new URLSearchParams(window.location.search);
|
|
10
|
+
urlParams.append('wp-form-result', status);
|
|
11
|
+
window.location.search = urlParams.toString();
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
// Add an event listener for the form submission.
|
|
15
|
+
form.addEventListener('submit', async function (event) {
|
|
16
|
+
event.preventDefault();
|
|
17
|
+
// Get the form data and merge it with the form action and nonce.
|
|
18
|
+
const formData = Object.fromEntries(new FormData(form).entries());
|
|
19
|
+
formData.formAction = form.action;
|
|
20
|
+
formData._ajax_nonce = wpBlockFormSettings.nonce;
|
|
21
|
+
formData.action = wpBlockFormSettings.action;
|
|
22
|
+
try {
|
|
23
|
+
const response = await fetch(wpBlockFormSettings.ajaxUrl, {
|
|
24
|
+
method: 'POST',
|
|
25
|
+
headers: {
|
|
26
|
+
'Content-Type': 'application/x-www-form-urlencoded'
|
|
27
|
+
},
|
|
28
|
+
body: new URLSearchParams(formData).toString()
|
|
29
|
+
});
|
|
30
|
+
if (response.ok) {
|
|
31
|
+
redirectNotification('success');
|
|
32
|
+
} else {
|
|
33
|
+
redirectNotification('error');
|
|
34
|
+
}
|
|
35
|
+
} catch (error) {
|
|
36
|
+
redirectNotification('error');
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["document","querySelectorAll","forEach","form","action","startsWith","redirectNotification","status","urlParams","URLSearchParams","window","location","search","append","toString","addEventListener","event","preventDefault","formData","Object","fromEntries","FormData","entries","formAction","_ajax_nonce","wpBlockFormSettings","nonce","response","fetch","ajaxUrl","method","headers","body","ok","error"],"sources":["@wordpress/block-library/src/form/view.js"],"sourcesContent":["// eslint-disable-next-line eslint-comments/disable-enable-pair\n/* eslint-disable no-undef */\ndocument.querySelectorAll( 'form.wp-block-form' ).forEach( function ( form ) {\n\t// Bail If the form is not using the mailto: action.\n\tif ( ! form.action || ! form.action.startsWith( 'mailto:' ) ) {\n\t\treturn;\n\t}\n\n\tconst redirectNotification = ( status ) => {\n\t\tconst urlParams = new URLSearchParams( window.location.search );\n\t\turlParams.append( 'wp-form-result', status );\n\t\twindow.location.search = urlParams.toString();\n\t};\n\n\t// Add an event listener for the form submission.\n\tform.addEventListener( 'submit', async function ( event ) {\n\t\tevent.preventDefault();\n\t\t// Get the form data and merge it with the form action and nonce.\n\t\tconst formData = Object.fromEntries( new FormData( form ).entries() );\n\t\tformData.formAction = form.action;\n\t\tformData._ajax_nonce = wpBlockFormSettings.nonce;\n\t\tformData.action = wpBlockFormSettings.action;\n\n\t\ttry {\n\t\t\tconst response = await fetch( wpBlockFormSettings.ajaxUrl, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\n\t\t\t\t},\n\t\t\t\tbody: new URLSearchParams( formData ).toString(),\n\t\t\t} );\n\t\t\tif ( response.ok ) {\n\t\t\t\tredirectNotification( 'success' );\n\t\t\t} else {\n\t\t\t\tredirectNotification( 'error' );\n\t\t\t}\n\t\t} catch ( error ) {\n\t\t\tredirectNotification( 'error' );\n\t\t}\n\t} );\n} );\n"],"mappings":"AAAA;AACA;AACAA,QAAQ,CAACC,gBAAgB,CAAE,oBAAqB,CAAC,CAACC,OAAO,CAAE,UAAWC,IAAI,EAAG;EAC5E;EACA,IAAK,CAAEA,IAAI,CAACC,MAAM,IAAI,CAAED,IAAI,CAACC,MAAM,CAACC,UAAU,CAAE,SAAU,CAAC,EAAG;IAC7D;EACD;EAEA,MAAMC,oBAAoB,GAAKC,MAAM,IAAM;IAC1C,MAAMC,SAAS,GAAG,IAAIC,eAAe,CAAEC,MAAM,CAACC,QAAQ,CAACC,MAAO,CAAC;IAC/DJ,SAAS,CAACK,MAAM,CAAE,gBAAgB,EAAEN,MAAO,CAAC;IAC5CG,MAAM,CAACC,QAAQ,CAACC,MAAM,GAAGJ,SAAS,CAACM,QAAQ,CAAC,CAAC;EAC9C,CAAC;;EAED;EACAX,IAAI,CAACY,gBAAgB,CAAE,QAAQ,EAAE,gBAAiBC,KAAK,EAAG;IACzDA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtB;IACA,MAAMC,QAAQ,GAAGC,MAAM,CAACC,WAAW,CAAE,IAAIC,QAAQ,CAAElB,IAAK,CAAC,CAACmB,OAAO,CAAC,CAAE,CAAC;IACrEJ,QAAQ,CAACK,UAAU,GAAGpB,IAAI,CAACC,MAAM;IACjCc,QAAQ,CAACM,WAAW,GAAGC,mBAAmB,CAACC,KAAK;IAChDR,QAAQ,CAACd,MAAM,GAAGqB,mBAAmB,CAACrB,MAAM;IAE5C,IAAI;MACH,MAAMuB,QAAQ,GAAG,MAAMC,KAAK,CAAEH,mBAAmB,CAACI,OAAO,EAAE;QAC1DC,MAAM,EAAE,MAAM;QACdC,OAAO,EAAE;UACR,cAAc,EAAE;QACjB,CAAC;QACDC,IAAI,EAAE,IAAIvB,eAAe,CAAES,QAAS,CAAC,CAACJ,QAAQ,CAAC;MAChD,CAAE,CAAC;MACH,IAAKa,QAAQ,CAACM,EAAE,EAAG;QAClB3B,oBAAoB,CAAE,SAAU,CAAC;MAClC,CAAC,MAAM;QACNA,oBAAoB,CAAE,OAAQ,CAAC;MAChC;IACD,CAAC,CAAC,OAAQ4B,KAAK,EAAG;MACjB5B,oBAAoB,CAAE,OAAQ,CAAC;IAChC;EACD,CAAE,CAAC;AACJ,CAAE,CAAC"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { createElement, Fragment } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* External dependencies
|
|
4
|
+
*/
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { __ } from '@wordpress/i18n';
|
|
11
|
+
import { InspectorControls, RichText, useBlockProps, __experimentalUseBorderProps as useBorderProps, __experimentalUseColorProps as useColorProps } from '@wordpress/block-editor';
|
|
12
|
+
import { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';
|
|
13
|
+
import { useRef } from '@wordpress/element';
|
|
14
|
+
function InputFieldBlock({
|
|
15
|
+
attributes,
|
|
16
|
+
setAttributes,
|
|
17
|
+
className
|
|
18
|
+
}) {
|
|
19
|
+
const {
|
|
20
|
+
type,
|
|
21
|
+
name,
|
|
22
|
+
label,
|
|
23
|
+
inlineLabel,
|
|
24
|
+
required,
|
|
25
|
+
placeholder,
|
|
26
|
+
value
|
|
27
|
+
} = attributes;
|
|
28
|
+
const blockProps = useBlockProps();
|
|
29
|
+
const ref = useRef();
|
|
30
|
+
const TagName = type === 'textarea' ? 'textarea' : 'input';
|
|
31
|
+
const borderProps = useBorderProps(attributes);
|
|
32
|
+
const colorProps = useColorProps(attributes);
|
|
33
|
+
if (ref.current) {
|
|
34
|
+
ref.current.focus();
|
|
35
|
+
}
|
|
36
|
+
const controls = createElement(Fragment, null, 'hidden' !== type && createElement(InspectorControls, null, createElement(PanelBody, {
|
|
37
|
+
title: __('Input settings')
|
|
38
|
+
}, 'checkbox' !== type && createElement(CheckboxControl, {
|
|
39
|
+
label: __('Inline label'),
|
|
40
|
+
checked: inlineLabel,
|
|
41
|
+
onChange: newVal => {
|
|
42
|
+
setAttributes({
|
|
43
|
+
inlineLabel: newVal
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}), createElement(CheckboxControl, {
|
|
47
|
+
label: __('Required'),
|
|
48
|
+
checked: required,
|
|
49
|
+
onChange: newVal => {
|
|
50
|
+
setAttributes({
|
|
51
|
+
required: newVal
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}))), createElement(InspectorControls, {
|
|
55
|
+
__experimentalGroup: "advanced"
|
|
56
|
+
}, createElement(TextControl, {
|
|
57
|
+
autoComplete: "off",
|
|
58
|
+
label: __('Name'),
|
|
59
|
+
value: name,
|
|
60
|
+
onChange: newVal => {
|
|
61
|
+
setAttributes({
|
|
62
|
+
name: newVal
|
|
63
|
+
});
|
|
64
|
+
},
|
|
65
|
+
help: __('Affects the "name" atribute of the input element, and is used as a name for the form submission results.')
|
|
66
|
+
})));
|
|
67
|
+
if ('hidden' === type) {
|
|
68
|
+
return createElement(Fragment, null, controls, createElement("input", {
|
|
69
|
+
type: "hidden",
|
|
70
|
+
className: classNames(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
|
|
71
|
+
"aria-label": __('Value'),
|
|
72
|
+
value: value,
|
|
73
|
+
onChange: event => setAttributes({
|
|
74
|
+
value: event.target.value
|
|
75
|
+
})
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
return createElement("div", {
|
|
79
|
+
...blockProps
|
|
80
|
+
}, controls, createElement("span", {
|
|
81
|
+
className: classNames('wp-block-form-input__label', {
|
|
82
|
+
'is-label-inline': inlineLabel || 'checkbox' === type
|
|
83
|
+
})
|
|
84
|
+
}, createElement(RichText, {
|
|
85
|
+
tagName: "span",
|
|
86
|
+
className: "wp-block-form-input__label-content",
|
|
87
|
+
value: label,
|
|
88
|
+
onChange: newLabel => setAttributes({
|
|
89
|
+
label: newLabel
|
|
90
|
+
}),
|
|
91
|
+
"aria-label": label ? __('Label') : __('Empty label'),
|
|
92
|
+
"data-empty": label ? false : true,
|
|
93
|
+
placeholder: __('Type the label for this input')
|
|
94
|
+
}), createElement(TagName, {
|
|
95
|
+
type: 'textarea' === type ? undefined : type,
|
|
96
|
+
className: classNames(className, 'wp-block-form-input__input', colorProps.className, borderProps.className),
|
|
97
|
+
"aria-label": __('Optional placeholder text')
|
|
98
|
+
// We hide the placeholder field's placeholder when there is a value. This
|
|
99
|
+
// stops screen readers from reading the placeholder field's placeholder
|
|
100
|
+
// which is confusing.
|
|
101
|
+
,
|
|
102
|
+
placeholder: placeholder ? undefined : __('Optional placeholder…'),
|
|
103
|
+
value: placeholder,
|
|
104
|
+
onChange: event => setAttributes({
|
|
105
|
+
placeholder: event.target.value
|
|
106
|
+
}),
|
|
107
|
+
"aria-required": required,
|
|
108
|
+
style: {
|
|
109
|
+
...borderProps.style,
|
|
110
|
+
...colorProps.style
|
|
111
|
+
}
|
|
112
|
+
})));
|
|
113
|
+
}
|
|
114
|
+
export default InputFieldBlock;
|
|
115
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["classNames","__","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","PanelBody","TextControl","CheckboxControl","useRef","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","ref","TagName","borderProps","colorProps","current","focus","controls","createElement","Fragment","title","checked","onChange","newVal","__experimentalGroup","autoComplete","help","event","target","tagName","newLabel","undefined","style"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Input settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls __experimentalGroup=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import initBlock from '../utils/init-block';
|
|
5
|
+
import edit from './edit';
|
|
6
|
+
const metadata = {
|
|
7
|
+
$schema: "https://schemas.wp.org/trunk/block.json",
|
|
8
|
+
apiVersion: 3,
|
|
9
|
+
__experimental: true,
|
|
10
|
+
name: "core/form-input",
|
|
11
|
+
title: "Input field",
|
|
12
|
+
category: "common",
|
|
13
|
+
parent: ["core/form"],
|
|
14
|
+
description: "The basic building block for forms.",
|
|
15
|
+
keywords: ["input", "form"],
|
|
16
|
+
textdomain: "default",
|
|
17
|
+
icon: "forms",
|
|
18
|
+
attributes: {
|
|
19
|
+
type: {
|
|
20
|
+
type: "string",
|
|
21
|
+
"default": "text"
|
|
22
|
+
},
|
|
23
|
+
name: {
|
|
24
|
+
type: "string"
|
|
25
|
+
},
|
|
26
|
+
label: {
|
|
27
|
+
type: "string",
|
|
28
|
+
"default": "Label",
|
|
29
|
+
selector: ".wp-block-form-input__label-content",
|
|
30
|
+
source: "html",
|
|
31
|
+
__experimentalRole: "content"
|
|
32
|
+
},
|
|
33
|
+
inlineLabel: {
|
|
34
|
+
type: "boolean",
|
|
35
|
+
"default": false
|
|
36
|
+
},
|
|
37
|
+
required: {
|
|
38
|
+
type: "boolean",
|
|
39
|
+
"default": false,
|
|
40
|
+
selector: ".wp-block-form-input__input",
|
|
41
|
+
source: "attribute",
|
|
42
|
+
attribute: "required"
|
|
43
|
+
},
|
|
44
|
+
placeholder: {
|
|
45
|
+
type: "string",
|
|
46
|
+
selector: ".wp-block-form-input__input",
|
|
47
|
+
source: "attribute",
|
|
48
|
+
attribute: "placeholder",
|
|
49
|
+
__experimentalRole: "content"
|
|
50
|
+
},
|
|
51
|
+
value: {
|
|
52
|
+
type: "string",
|
|
53
|
+
"default": "",
|
|
54
|
+
selector: "input",
|
|
55
|
+
source: "attribute",
|
|
56
|
+
attribute: "value"
|
|
57
|
+
},
|
|
58
|
+
visibilityPermissions: {
|
|
59
|
+
type: "string",
|
|
60
|
+
"default": "all"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
supports: {
|
|
64
|
+
anchor: true,
|
|
65
|
+
reusable: false,
|
|
66
|
+
spacing: {
|
|
67
|
+
margin: ["top", "bottom"]
|
|
68
|
+
},
|
|
69
|
+
__experimentalBorder: {
|
|
70
|
+
radius: true,
|
|
71
|
+
__experimentalSkipSerialization: true,
|
|
72
|
+
__experimentalDefaultControls: {
|
|
73
|
+
radius: true
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
style: ["wp-block-form-input"]
|
|
78
|
+
};
|
|
79
|
+
import save from './save';
|
|
80
|
+
import variations from './variations';
|
|
81
|
+
const {
|
|
82
|
+
name
|
|
83
|
+
} = metadata;
|
|
84
|
+
export { metadata, name };
|
|
85
|
+
export const settings = {
|
|
86
|
+
edit,
|
|
87
|
+
save,
|
|
88
|
+
variations
|
|
89
|
+
};
|
|
90
|
+
export const init = () => initBlock({
|
|
91
|
+
name,
|
|
92
|
+
metadata,
|
|
93
|
+
settings
|
|
94
|
+
});
|
|
95
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["initBlock","edit","metadata","$schema","apiVersion","__experimental","name","title","category","parent","description","keywords","textdomain","icon","attributes","type","label","selector","source","__experimentalRole","inlineLabel","required","attribute","placeholder","value","visibilityPermissions","supports","anchor","reusable","spacing","margin","__experimentalBorder","radius","__experimentalSkipSerialization","__experimentalDefaultControls","style","save","variations","settings","init"],"sources":["@wordpress/block-library/src/form-input/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\tedit,\n\tsave,\n\tvariations,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,SAAS,MAAM,qBAAqB;AAC3C,OAAOC,IAAI,MAAM,QAAQ;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,MAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAA,IAAA;MAAA;IAAA;IAAAT,IAAA;MAAAS,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAC,kBAAA;IAAA;IAAAC,WAAA;MAAAL,IAAA;MAAA;IAAA;IAAAM,QAAA;MAAAN,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAC,WAAA;MAAAR,IAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;MAAAH,kBAAA;IAAA;IAAAK,KAAA;MAAAT,IAAA;MAAA;MAAAE,QAAA;MAAAC,MAAA;MAAAI,SAAA;IAAA;IAAAG,qBAAA;MAAAV,IAAA;MAAA;IAAA;EAAA;EAAAW,QAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC,OAAA;MAAAC,MAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAAC,+BAAA;MAAAC,6BAAA;QAAAF,MAAA;MAAA;IAAA;EAAA;EAAAG,KAAA;AAAA;AAE1B,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,UAAU,MAAM,cAAc;AAErC,MAAM;EAAE/B;AAAK,CAAC,GAAGJ,QAAQ;AAEzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAMgC,QAAQ,GAAG;EACvBrC,IAAI;EACJmC,IAAI;EACJC;AACD,CAAC;AAED,OAAO,MAAME,IAAI,GAAGA,CAAA,KAAMvC,SAAS,CAAE;EAAEM,IAAI;EAAEJ,QAAQ;EAAEoC;AAAS,CAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["init"],"sources":["@wordpress/block-library/src/form-input/init.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { init } from './';\n\nexport default init();\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,QAAQ,IAAI;AAEzB,eAAeA,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* External dependencies
|
|
4
|
+
*/
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import removeAccents from 'remove-accents';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* WordPress dependencies
|
|
10
|
+
*/
|
|
11
|
+
import { RichText, __experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles, __experimentalGetColorClassesAndStyles as getColorClassesAndStyles } from '@wordpress/block-editor';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Get the name attribute from a content string.
|
|
15
|
+
*
|
|
16
|
+
* @param {string} content The block content.
|
|
17
|
+
*
|
|
18
|
+
* @return {string} Returns the slug.
|
|
19
|
+
*/
|
|
20
|
+
const getNameFromLabel = content => {
|
|
21
|
+
const dummyElement = document.createElement('div');
|
|
22
|
+
dummyElement.innerHTML = content;
|
|
23
|
+
// Get the slug.
|
|
24
|
+
return removeAccents(dummyElement.innerText)
|
|
25
|
+
// Convert anything that's not a letter or number to a hyphen.
|
|
26
|
+
.replace(/[^\p{L}\p{N}]+/gu, '-')
|
|
27
|
+
// Convert to lowercase
|
|
28
|
+
.toLowerCase()
|
|
29
|
+
// Remove any remaining leading or trailing hyphens.
|
|
30
|
+
.replace(/(^-+)|(-+$)/g, '');
|
|
31
|
+
};
|
|
32
|
+
export default function save({
|
|
33
|
+
attributes
|
|
34
|
+
}) {
|
|
35
|
+
const {
|
|
36
|
+
type,
|
|
37
|
+
name,
|
|
38
|
+
label,
|
|
39
|
+
inlineLabel,
|
|
40
|
+
required,
|
|
41
|
+
placeholder,
|
|
42
|
+
value
|
|
43
|
+
} = attributes;
|
|
44
|
+
const borderProps = getBorderClassesAndStyles(attributes);
|
|
45
|
+
const colorProps = getColorClassesAndStyles(attributes);
|
|
46
|
+
const inputStyle = {
|
|
47
|
+
...borderProps.style,
|
|
48
|
+
...colorProps.style
|
|
49
|
+
};
|
|
50
|
+
const inputClasses = classNames('wp-block-form-input__input', colorProps.className, borderProps.className);
|
|
51
|
+
const TagName = type === 'textarea' ? 'textarea' : 'input';
|
|
52
|
+
if ('hidden' === type) {
|
|
53
|
+
return createElement("input", {
|
|
54
|
+
type: type,
|
|
55
|
+
name: name,
|
|
56
|
+
value: value
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* eslint-disable jsx-a11y/label-has-associated-control */
|
|
61
|
+
return createElement("label", {
|
|
62
|
+
className: classNames('wp-block-form-input__label', {
|
|
63
|
+
'is-label-inline': inlineLabel
|
|
64
|
+
})
|
|
65
|
+
}, createElement("span", {
|
|
66
|
+
className: "wp-block-form-input__label-content"
|
|
67
|
+
}, createElement(RichText.Content, {
|
|
68
|
+
value: label
|
|
69
|
+
})), createElement(TagName, {
|
|
70
|
+
className: inputClasses,
|
|
71
|
+
type: 'textarea' === type ? undefined : type,
|
|
72
|
+
name: name || getNameFromLabel(label),
|
|
73
|
+
required: required,
|
|
74
|
+
"aria-required": required,
|
|
75
|
+
placeholder: placeholder || undefined,
|
|
76
|
+
style: inputStyle
|
|
77
|
+
}));
|
|
78
|
+
/* eslint-enable jsx-a11y/label-has-associated-control */
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=save.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["classNames","removeAccents","RichText","__experimentalGetBorderClassesAndStyles","getBorderClassesAndStyles","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","getNameFromLabel","content","dummyElement","document","createElement","innerHTML","innerText","replace","toLowerCase","save","attributes","type","name","label","inlineLabel","required","placeholder","value","borderProps","colorProps","inputStyle","style","inputClasses","className","TagName","Content","undefined"],"sources":["@wordpress/block-library/src/form-input/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\t__experimentalGetBorderClassesAndStyles as getBorderClassesAndStyles,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n} from '@wordpress/block-editor';\n\n/**\n * Get the name attribute from a content string.\n *\n * @param {string} content The block content.\n *\n * @return {string} Returns the slug.\n */\nconst getNameFromLabel = ( content ) => {\n\tconst dummyElement = document.createElement( 'div' );\n\tdummyElement.innerHTML = content;\n\t// Get the slug.\n\treturn (\n\t\tremoveAccents( dummyElement.innerText )\n\t\t\t// Convert anything that's not a letter or number to a hyphen.\n\t\t\t.replace( /[^\\p{L}\\p{N}]+/gu, '-' )\n\t\t\t// Convert to lowercase\n\t\t\t.toLowerCase()\n\t\t\t// Remove any remaining leading or trailing hyphens.\n\t\t\t.replace( /(^-+)|(-+$)/g, '' )\n\t);\n};\n\nexport default function save( { attributes } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\n\tconst borderProps = getBorderClassesAndStyles( attributes );\n\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\tconst inputStyle = {\n\t\t...borderProps.style,\n\t\t...colorProps.style,\n\t};\n\n\tconst inputClasses = classNames(\n\t\t'wp-block-form-input__input',\n\t\tcolorProps.className,\n\t\tborderProps.className\n\t);\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tif ( 'hidden' === type ) {\n\t\treturn <input type={ type } name={ name } value={ value } />;\n\t}\n\n\t/* eslint-disable jsx-a11y/label-has-associated-control */\n\treturn (\n\t\t<label\n\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t'is-label-inline': inlineLabel,\n\t\t\t} ) }\n\t\t>\n\t\t\t<span className=\"wp-block-form-input__label-content\">\n\t\t\t\t<RichText.Content value={ label } />\n\t\t\t</span>\n\t\t\t<TagName\n\t\t\t\tclassName={ inputClasses }\n\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\tname={ name || getNameFromLabel( label ) }\n\t\t\t\trequired={ required }\n\t\t\t\taria-required={ required }\n\t\t\t\tplaceholder={ placeholder || undefined }\n\t\t\t\tstyle={ inputStyle }\n\t\t\t/>\n\t\t</label>\n\t);\n\t/* eslint-enable jsx-a11y/label-has-associated-control */\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;AACnC,OAAOC,aAAa,MAAM,gBAAgB;;AAE1C;AACA;AACA;AACA,SACCC,QAAQ,EACRC,uCAAuC,IAAIC,yBAAyB,EACpEC,sCAAsC,IAAIC,wBAAwB,QAC5D,yBAAyB;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAgB,GAAKC,OAAO,IAAM;EACvC,MAAMC,YAAY,GAAGC,QAAQ,CAACC,aAAa,CAAE,KAAM,CAAC;EACpDF,YAAY,CAACG,SAAS,GAAGJ,OAAO;EAChC;EACA,OACCP,aAAa,CAAEQ,YAAY,CAACI,SAAU;EACrC;EAAA,CACCC,OAAO,CAAE,kBAAkB,EAAE,GAAI;EAClC;EAAA,CACCC,WAAW,CAAC;EACb;EAAA,CACCD,OAAO,CAAE,cAAc,EAAE,EAAG,CAAC;AAEjC,CAAC;AAED,eAAe,SAASE,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IAAEC,IAAI;IAAEC,IAAI;IAAEC,KAAK;IAAEC,WAAW;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAM,CAAC,GACrEP,UAAU;EAEX,MAAMQ,WAAW,GAAGrB,yBAAyB,CAAEa,UAAW,CAAC;EAC3D,MAAMS,UAAU,GAAGpB,wBAAwB,CAAEW,UAAW,CAAC;EAEzD,MAAMU,UAAU,GAAG;IAClB,GAAGF,WAAW,CAACG,KAAK;IACpB,GAAGF,UAAU,CAACE;EACf,CAAC;EAED,MAAMC,YAAY,GAAG7B,UAAU,CAC9B,4BAA4B,EAC5B0B,UAAU,CAACI,SAAS,EACpBL,WAAW,CAACK,SACb,CAAC;EACD,MAAMC,OAAO,GAAGb,IAAI,KAAK,UAAU,GAAG,UAAU,GAAG,OAAO;EAE1D,IAAK,QAAQ,KAAKA,IAAI,EAAG;IACxB,OAAOP,aAAA;MAAOO,IAAI,EAAGA,IAAM;MAACC,IAAI,EAAGA,IAAM;MAACK,KAAK,EAAGA;IAAO,CAAE,CAAC;EAC7D;;EAEA;EACA,OACCb,aAAA;IACCmB,SAAS,EAAG9B,UAAU,CAAE,4BAA4B,EAAE;MACrD,iBAAiB,EAAEqB;IACpB,CAAE;EAAG,GAELV,aAAA;IAAMmB,SAAS,EAAC;EAAoC,GACnDnB,aAAA,CAACT,QAAQ,CAAC8B,OAAO;IAACR,KAAK,EAAGJ;EAAO,CAAE,CAC9B,CAAC,EACPT,aAAA,CAACoB,OAAO;IACPD,SAAS,EAAGD,YAAc;IAC1BX,IAAI,EAAG,UAAU,KAAKA,IAAI,GAAGe,SAAS,GAAGf,IAAM;IAC/CC,IAAI,EAAGA,IAAI,IAAIZ,gBAAgB,CAAEa,KAAM,CAAG;IAC1CE,QAAQ,EAAGA,QAAU;IACrB,iBAAgBA,QAAU;IAC1BC,WAAW,EAAGA,WAAW,IAAIU,SAAW;IACxCL,KAAK,EAAGD;EAAY,CACpB,CACK,CAAC;EAET;AACD"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
const variations = [{
|
|
6
|
+
name: 'text',
|
|
7
|
+
title: __('Text input'),
|
|
8
|
+
icon: 'edit-page',
|
|
9
|
+
description: __('A generic text input.'),
|
|
10
|
+
attributes: {
|
|
11
|
+
type: 'text'
|
|
12
|
+
},
|
|
13
|
+
isDefault: true,
|
|
14
|
+
scope: ['inserter', 'transform'],
|
|
15
|
+
isActive: blockAttributes => !blockAttributes?.type || blockAttributes?.type === 'text'
|
|
16
|
+
}, {
|
|
17
|
+
name: 'textarea',
|
|
18
|
+
title: __('Textarea input'),
|
|
19
|
+
icon: 'testimonial',
|
|
20
|
+
description: __('A textarea input to allow entering multiple lines of text.'),
|
|
21
|
+
attributes: {
|
|
22
|
+
type: 'textarea'
|
|
23
|
+
},
|
|
24
|
+
isDefault: true,
|
|
25
|
+
scope: ['inserter', 'transform'],
|
|
26
|
+
isActive: blockAttributes => blockAttributes?.type === 'textarea'
|
|
27
|
+
}, {
|
|
28
|
+
name: 'checkbox',
|
|
29
|
+
title: __('Checkbox input'),
|
|
30
|
+
description: __('A simple checkbox input.'),
|
|
31
|
+
icon: 'forms',
|
|
32
|
+
attributes: {
|
|
33
|
+
type: 'checkbox',
|
|
34
|
+
inlineLabel: true
|
|
35
|
+
},
|
|
36
|
+
isDefault: true,
|
|
37
|
+
scope: ['inserter', 'transform'],
|
|
38
|
+
isActive: blockAttributes => blockAttributes?.type === 'checkbox'
|
|
39
|
+
}, {
|
|
40
|
+
name: 'email',
|
|
41
|
+
title: __('Email input'),
|
|
42
|
+
icon: 'email',
|
|
43
|
+
description: __('Used for email addresses.'),
|
|
44
|
+
attributes: {
|
|
45
|
+
type: 'email'
|
|
46
|
+
},
|
|
47
|
+
isDefault: true,
|
|
48
|
+
scope: ['inserter', 'transform'],
|
|
49
|
+
isActive: blockAttributes => blockAttributes?.type === 'email'
|
|
50
|
+
}, {
|
|
51
|
+
name: 'url',
|
|
52
|
+
title: __('URL input'),
|
|
53
|
+
icon: 'admin-site',
|
|
54
|
+
description: __('Used for URLs.'),
|
|
55
|
+
attributes: {
|
|
56
|
+
type: 'url'
|
|
57
|
+
},
|
|
58
|
+
isDefault: true,
|
|
59
|
+
scope: ['inserter', 'transform'],
|
|
60
|
+
isActive: blockAttributes => blockAttributes?.type === 'url'
|
|
61
|
+
}, {
|
|
62
|
+
name: 'tel',
|
|
63
|
+
title: __('Telephone input'),
|
|
64
|
+
icon: 'phone',
|
|
65
|
+
description: __('Used for phone numbers.'),
|
|
66
|
+
attributes: {
|
|
67
|
+
type: 'tel'
|
|
68
|
+
},
|
|
69
|
+
isDefault: true,
|
|
70
|
+
scope: ['inserter', 'transform'],
|
|
71
|
+
isActive: blockAttributes => blockAttributes?.type === 'tel'
|
|
72
|
+
}, {
|
|
73
|
+
name: 'number',
|
|
74
|
+
title: __('Number input'),
|
|
75
|
+
icon: 'edit-page',
|
|
76
|
+
description: __('A numeric input.'),
|
|
77
|
+
attributes: {
|
|
78
|
+
type: 'number'
|
|
79
|
+
},
|
|
80
|
+
isDefault: true,
|
|
81
|
+
scope: ['inserter', 'transform'],
|
|
82
|
+
isActive: blockAttributes => blockAttributes?.type === 'number'
|
|
83
|
+
}];
|
|
84
|
+
export default variations;
|
|
85
|
+
//# sourceMappingURL=variations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","variations","name","title","icon","description","attributes","type","isDefault","scope","isActive","blockAttributes","inlineLabel"],"sources":["@wordpress/block-library/src/form-input/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nconst variations = [\n\t{\n\t\tname: 'text',\n\t\ttitle: __( 'Text input' ),\n\t\ticon: 'edit-page',\n\t\tdescription: __( 'A generic text input.' ),\n\t\tattributes: { type: 'text' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\t! blockAttributes?.type || blockAttributes?.type === 'text',\n\t},\n\t{\n\t\tname: 'textarea',\n\t\ttitle: __( 'Textarea input' ),\n\t\ticon: 'testimonial',\n\t\tdescription: __(\n\t\t\t'A textarea input to allow entering multiple lines of text.'\n\t\t),\n\t\tattributes: { type: 'textarea' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'textarea',\n\t},\n\t{\n\t\tname: 'checkbox',\n\t\ttitle: __( 'Checkbox input' ),\n\t\tdescription: __( 'A simple checkbox input.' ),\n\t\ticon: 'forms',\n\t\tattributes: { type: 'checkbox', inlineLabel: true },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'checkbox',\n\t},\n\t{\n\t\tname: 'email',\n\t\ttitle: __( 'Email input' ),\n\t\ticon: 'email',\n\t\tdescription: __( 'Used for email addresses.' ),\n\t\tattributes: { type: 'email' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'email',\n\t},\n\t{\n\t\tname: 'url',\n\t\ttitle: __( 'URL input' ),\n\t\ticon: 'admin-site',\n\t\tdescription: __( 'Used for URLs.' ),\n\t\tattributes: { type: 'url' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'url',\n\t},\n\t{\n\t\tname: 'tel',\n\t\ttitle: __( 'Telephone input' ),\n\t\ticon: 'phone',\n\t\tdescription: __( 'Used for phone numbers.' ),\n\t\tattributes: { type: 'tel' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'tel',\n\t},\n\t{\n\t\tname: 'number',\n\t\ttitle: __( 'Number input' ),\n\t\ticon: 'edit-page',\n\t\tdescription: __( 'A numeric input.' ),\n\t\tattributes: { type: 'number' },\n\t\tisDefault: true,\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) => blockAttributes?.type === 'number',\n\t},\n];\n\nexport default variations;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { createElement } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* WordPress dependencies
|
|
4
|
+
*/
|
|
5
|
+
import { __ } from '@wordpress/i18n';
|
|
6
|
+
import { InnerBlocks, useBlockProps, useInnerBlocksProps, store as blockEditorStore } from '@wordpress/block-editor';
|
|
7
|
+
import { useSelect } from '@wordpress/data';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* External dependencies
|
|
11
|
+
*/
|
|
12
|
+
import classnames from 'classnames';
|
|
13
|
+
const TEMPLATE = [['core/paragraph', {
|
|
14
|
+
content: __("Enter the message you wish displayed for form submission error/success, and select the type of the message (success/error) from the block's options.")
|
|
15
|
+
}]];
|
|
16
|
+
const Edit = ({
|
|
17
|
+
attributes,
|
|
18
|
+
clientId
|
|
19
|
+
}) => {
|
|
20
|
+
const {
|
|
21
|
+
type
|
|
22
|
+
} = attributes;
|
|
23
|
+
const blockProps = useBlockProps({
|
|
24
|
+
className: classnames('wp-block-form-submission-notification', {
|
|
25
|
+
[`form-notification-type-${type}`]: type
|
|
26
|
+
})
|
|
27
|
+
});
|
|
28
|
+
const {
|
|
29
|
+
hasInnerBlocks
|
|
30
|
+
} = useSelect(select => {
|
|
31
|
+
const {
|
|
32
|
+
getBlock
|
|
33
|
+
} = select(blockEditorStore);
|
|
34
|
+
const block = getBlock(clientId);
|
|
35
|
+
return {
|
|
36
|
+
hasInnerBlocks: !!(block && block.innerBlocks.length)
|
|
37
|
+
};
|
|
38
|
+
}, [clientId]);
|
|
39
|
+
const innerBlocksProps = useInnerBlocksProps(blockProps, {
|
|
40
|
+
template: TEMPLATE,
|
|
41
|
+
renderAppender: hasInnerBlocks ? undefined : InnerBlocks.ButtonBlockAppender
|
|
42
|
+
});
|
|
43
|
+
return createElement("div", {
|
|
44
|
+
...innerBlocksProps,
|
|
45
|
+
"data-message-success": __('Submission success notification'),
|
|
46
|
+
"data-message-error": __('Submission error notification')
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
export default Edit;
|
|
50
|
+
//# sourceMappingURL=edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","InnerBlocks","useBlockProps","useInnerBlocksProps","store","blockEditorStore","useSelect","classnames","TEMPLATE","content","Edit","attributes","clientId","type","blockProps","className","hasInnerBlocks","select","getBlock","block","innerBlocks","length","innerBlocksProps","template","renderAppender","undefined","ButtonBlockAppender","createElement"],"sources":["@wordpress/block-library/src/form-submission-notification/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInnerBlocks,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/paragraph',\n\t\t{\n\t\t\tcontent: __(\n\t\t\t\t\"Enter the message you wish displayed for form submission error/success, and select the type of the message (success/error) from the block's options.\"\n\t\t\t),\n\t\t},\n\t],\n];\n\nconst Edit = ( { attributes, clientId } ) => {\n\tconst { type } = attributes;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( 'wp-block-form-submission-notification', {\n\t\t\t[ `form-notification-type-${ type }` ]: type,\n\t\t} ),\n\t} );\n\n\tconst { hasInnerBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock } = select( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\t\t\treturn {\n\t\t\t\thasInnerBlocks: !! ( block && block.innerBlocks.length ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplate: TEMPLATE,\n\t\trenderAppender: hasInnerBlocks\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\t{ ...innerBlocksProps }\n\t\t\tdata-message-success={ __( 'Submission success notification' ) }\n\t\t\tdata-message-error={ __( 'Submission error notification' ) }\n\t\t/>\n\t);\n};\nexport default Edit;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,WAAW,EACXC,aAAa,EACbC,mBAAmB,EACnBC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,SAAS,QAAQ,iBAAiB;;AAE3C;AACA;AACA;AACA,OAAOC,UAAU,MAAM,YAAY;AAEnC,MAAMC,QAAQ,GAAG,CAChB,CACC,gBAAgB,EAChB;EACCC,OAAO,EAAET,EAAE,CACV,sJACD;AACD,CAAC,CACD,CACD;AAED,MAAMU,IAAI,GAAGA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,KAAM;EAC5C,MAAM;IAAEC;EAAK,CAAC,GAAGF,UAAU;EAC3B,MAAMG,UAAU,GAAGZ,aAAa,CAAE;IACjCa,SAAS,EAAER,UAAU,CAAE,uCAAuC,EAAE;MAC/D,CAAG,0BAA0BM,IAAM,EAAC,GAAIA;IACzC,CAAE;EACH,CAAE,CAAC;EAEH,MAAM;IAAEG;EAAe,CAAC,GAAGV,SAAS,CACjCW,MAAM,IAAM;IACb,MAAM;MAAEC;IAAS,CAAC,GAAGD,MAAM,CAAEZ,gBAAiB,CAAC;IAC/C,MAAMc,KAAK,GAAGD,QAAQ,CAAEN,QAAS,CAAC;IAClC,OAAO;MACNI,cAAc,EAAE,CAAC,EAAIG,KAAK,IAAIA,KAAK,CAACC,WAAW,CAACC,MAAM;IACvD,CAAC;EACF,CAAC,EACD,CAAET,QAAQ,CACX,CAAC;EAED,MAAMU,gBAAgB,GAAGnB,mBAAmB,CAAEW,UAAU,EAAE;IACzDS,QAAQ,EAAEf,QAAQ;IAClBgB,cAAc,EAAER,cAAc,GAC3BS,SAAS,GACTxB,WAAW,CAACyB;EAChB,CAAE,CAAC;EAEH,OACCC,aAAA;IAAA,GACML,gBAAgB;IACrB,wBAAuBtB,EAAE,CAAE,iCAAkC,CAAG;IAChE,sBAAqBA,EAAE,CAAE,+BAAgC;EAAG,CAC5D,CAAC;AAEJ,CAAC;AACD,eAAeU,IAAI"}
|