@wordpress/block-library 8.28.3 → 8.28.5
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/build/block/deprecated.js +71 -11
- package/build/block/deprecated.js.map +1 -1
- package/build/block/edit.js +49 -24
- package/build/block/edit.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/buttons/transforms.js +16 -2
- package/build/buttons/transforms.js.map +1 -1
- package/build/code/transforms.js +17 -6
- package/build/code/transforms.js.map +1 -1
- package/build/cover/edit/block-controls.js +14 -3
- package/build/cover/edit/block-controls.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/heading/transforms.js +17 -4
- package/build/heading/transforms.js.map +1 -1
- package/build/image/edit.js +8 -4
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +22 -8
- package/build/image/image.js.map +1 -1
- package/build/list-item/edit.js +1 -3
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/index.js +0 -7
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/list-item/index.js +4 -1
- package/build/list-item/index.js.map +1 -1
- package/build/post-featured-image/edit.js +8 -11
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-title/edit.js +2 -2
- package/build/post-title/edit.js.map +1 -1
- package/build/site-logo/edit.js +7 -2
- package/build/site-logo/edit.js.map +1 -1
- package/build/utils/caption.js +15 -5
- package/build/utils/caption.js.map +1 -1
- package/build/utils/get-transformed-metadata.js +57 -0
- package/build/utils/get-transformed-metadata.js.map +1 -0
- package/build-module/block/deprecated.js +71 -11
- package/build-module/block/deprecated.js.map +1 -1
- package/build-module/block/edit.js +49 -24
- package/build-module/block/edit.js.map +1 -1
- package/build-module/button/edit.js +2 -2
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/transforms.js +16 -2
- package/build-module/buttons/transforms.js.map +1 -1
- package/build-module/code/transforms.js +17 -6
- package/build-module/code/transforms.js.map +1 -1
- package/build-module/cover/edit/block-controls.js +15 -4
- package/build-module/cover/edit/block-controls.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/heading/transforms.js +17 -4
- package/build-module/heading/transforms.js.map +1 -1
- package/build-module/image/edit.js +9 -5
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +23 -9
- package/build-module/image/image.js.map +1 -1
- package/build-module/list-item/edit.js +2 -4
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/index.js +0 -1
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/list-item/index.js +4 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/post-featured-image/edit.js +9 -12
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-title/edit.js +2 -2
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +7 -2
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/utils/caption.js +13 -3
- package/build-module/utils/caption.js.map +1 -1
- package/build-module/utils/get-transformed-metadata.js +51 -0
- package/build-module/utils/get-transformed-metadata.js.map +1 -0
- package/build-style/common-rtl.css +1 -0
- package/build-style/common.css +1 -0
- package/build-style/cover/style-rtl.css +2 -1
- package/build-style/cover/style.css +2 -1
- package/build-style/search/style-rtl.css +2 -0
- package/build-style/search/style.css +2 -0
- package/build-style/style-rtl.css +4 -1
- package/build-style/style.css +4 -1
- package/package.json +13 -13
- package/src/block/deprecated.js +76 -11
- package/src/block/edit.js +64 -19
- package/src/block/index.php +21 -12
- package/src/button/edit.js +2 -1
- package/src/buttons/transforms.js +14 -4
- package/src/code/transforms.js +20 -5
- package/src/cover/edit/block-controls.js +16 -2
- package/src/cover/edit/inspector-controls.js +5 -1
- package/src/cover/style.scss +3 -2
- package/src/footnotes/index.php +1 -1
- package/src/heading/transforms.js +27 -8
- package/src/image/edit.js +12 -4
- package/src/image/image.js +32 -20
- package/src/list-item/edit.js +1 -2
- package/src/list-item/hooks/index.js +0 -1
- package/src/list-item/index.js +3 -0
- package/src/navigation/index.php +8 -4
- package/src/post-featured-image/edit.js +9 -11
- package/src/post-title/edit.js +49 -43
- package/src/search/index.php +1 -1
- package/src/search/style.scss +2 -0
- package/src/site-logo/edit.js +10 -5
- package/src/utils/caption.js +10 -1
- package/src/utils/get-transformed-metadata.js +65 -0
- package/build/list-item/hooks/use-copy.js +0 -39
- package/build/list-item/hooks/use-copy.js.map +0 -1
- package/build-module/list-item/hooks/use-copy.js +0 -32
- package/build-module/list-item/hooks/use-copy.js.map +0 -1
- package/src/list-item/hooks/use-copy.js +0 -38
|
@@ -4,7 +4,73 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
7
|
+
const isObject = obj => typeof obj === 'object' && !Array.isArray(obj) && obj !== null;
|
|
8
|
+
|
|
9
|
+
// v2: Migrate to a more condensed version of the 'content' attribute attribute.
|
|
10
|
+
const v2 = {
|
|
11
|
+
attributes: {
|
|
12
|
+
ref: {
|
|
13
|
+
type: 'number'
|
|
14
|
+
},
|
|
15
|
+
content: {
|
|
16
|
+
type: 'object'
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
supports: {
|
|
20
|
+
customClassName: false,
|
|
21
|
+
html: false,
|
|
22
|
+
inserter: false,
|
|
23
|
+
renaming: false
|
|
24
|
+
},
|
|
25
|
+
// Force this deprecation to run whenever there's a values sub-property that's an object.
|
|
26
|
+
//
|
|
27
|
+
// This could fail in the future if a block ever has binding to a `values` attribute.
|
|
28
|
+
// Some extra protection is added to ensure `values` is an object, but this only reduces
|
|
29
|
+
// the likelihood, it doesn't solve it completely.
|
|
30
|
+
isEligible({
|
|
31
|
+
content
|
|
32
|
+
}) {
|
|
33
|
+
return !!content && Object.keys(content).every(contentKey => content[contentKey].values && isObject(content[contentKey].values));
|
|
34
|
+
},
|
|
35
|
+
/*
|
|
36
|
+
* Old attribute format:
|
|
37
|
+
* content: {
|
|
38
|
+
* "V98q_x": {
|
|
39
|
+
* // The attribute values are now stored as a 'values' sub-property.
|
|
40
|
+
* values: { content: 'My content value' },
|
|
41
|
+
* // ... additional metadata, like the block name can be stored here.
|
|
42
|
+
* }
|
|
43
|
+
* }
|
|
44
|
+
*
|
|
45
|
+
* New attribute format:
|
|
46
|
+
* content: {
|
|
47
|
+
* "V98q_x": {
|
|
48
|
+
* content: 'My content value',
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
*/
|
|
52
|
+
migrate(attributes) {
|
|
53
|
+
const {
|
|
54
|
+
content,
|
|
55
|
+
...retainedAttributes
|
|
56
|
+
} = attributes;
|
|
57
|
+
if (content && Object.keys(content).length) {
|
|
58
|
+
const updatedContent = {
|
|
59
|
+
...content
|
|
60
|
+
};
|
|
61
|
+
for (const contentKey in content) {
|
|
62
|
+
updatedContent[contentKey] = content[contentKey].values;
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
...retainedAttributes,
|
|
66
|
+
content: updatedContent
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return attributes;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// v1: Rename the `overrides` attribute to the `content` attribute.
|
|
8
74
|
const v1 = {
|
|
9
75
|
attributes: {
|
|
10
76
|
ref: {
|
|
@@ -31,16 +97,12 @@ const v1 = {
|
|
|
31
97
|
* overrides: {
|
|
32
98
|
* // An key is an id that represents a block.
|
|
33
99
|
* // The values are the attribute values of the block.
|
|
34
|
-
* "V98q_x": { content: '
|
|
100
|
+
* "V98q_x": { content: 'My content value' }
|
|
35
101
|
* }
|
|
36
102
|
*
|
|
37
103
|
* New attribute format:
|
|
38
104
|
* content: {
|
|
39
|
-
* "V98q_x": {
|
|
40
|
-
* // The attribute values are now stored as a 'values' sub-property.
|
|
41
|
-
* values: { content: 'dwefwefwefwe' },
|
|
42
|
-
* // ... additional metadata, like the block name can be stored here.
|
|
43
|
-
* }
|
|
105
|
+
* "V98q_x": { content: 'My content value' }
|
|
44
106
|
* }
|
|
45
107
|
*
|
|
46
108
|
*/
|
|
@@ -51,9 +113,7 @@ const v1 = {
|
|
|
51
113
|
} = attributes;
|
|
52
114
|
const content = {};
|
|
53
115
|
Object.keys(overrides).forEach(id => {
|
|
54
|
-
content[id] =
|
|
55
|
-
values: overrides[id]
|
|
56
|
-
};
|
|
116
|
+
content[id] = overrides[id];
|
|
57
117
|
});
|
|
58
118
|
return {
|
|
59
119
|
...retainedAttributes,
|
|
@@ -61,5 +121,5 @@ const v1 = {
|
|
|
61
121
|
};
|
|
62
122
|
}
|
|
63
123
|
};
|
|
64
|
-
var _default = exports.default = [v1];
|
|
124
|
+
var _default = exports.default = [v2, v1];
|
|
65
125
|
//# sourceMappingURL=deprecated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["isObject","obj","Array","isArray","v2","attributes","ref","type","content","supports","customClassName","html","inserter","renaming","isEligible","Object","keys","every","contentKey","values","migrate","retainedAttributes","length","updatedContent","v1","overrides","forEach","id","_default","exports","default"],"sources":["@wordpress/block-library/src/block/deprecated.js"],"sourcesContent":["const isObject = ( obj ) =>\n\ttypeof obj === 'object' && ! Array.isArray( obj ) && obj !== null;\n\n// v2: Migrate to a more condensed version of the 'content' attribute attribute.\nconst v2 = {\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tcontent: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t\trenaming: false,\n\t},\n\t// Force this deprecation to run whenever there's a values sub-property that's an object.\n\t//\n\t// This could fail in the future if a block ever has binding to a `values` attribute.\n\t// Some extra protection is added to ensure `values` is an object, but this only reduces\n\t// the likelihood, it doesn't solve it completely.\n\tisEligible( { content } ) {\n\t\treturn (\n\t\t\t!! content &&\n\t\t\tObject.keys( content ).every(\n\t\t\t\t( contentKey ) =>\n\t\t\t\t\tcontent[ contentKey ].values &&\n\t\t\t\t\tisObject( content[ contentKey ].values )\n\t\t\t)\n\t\t);\n\t},\n\t/*\n\t * Old attribute format:\n\t * content: {\n\t * \"V98q_x\": {\n\t * \t \t\t// The attribute values are now stored as a 'values' sub-property.\n\t * values: { content: 'My content value' },\n\t * \t // ... additional metadata, like the block name can be stored here.\n\t * }\n\t * }\n\t *\n\t * New attribute format:\n\t * content: {\n\t * \"V98q_x\": {\n\t * content: 'My content value',\n\t * }\n\t * }\n\t */\n\tmigrate( attributes ) {\n\t\tconst { content, ...retainedAttributes } = attributes;\n\n\t\tif ( content && Object.keys( content ).length ) {\n\t\t\tconst updatedContent = { ...content };\n\n\t\t\tfor ( const contentKey in content ) {\n\t\t\t\tupdatedContent[ contentKey ] = content[ contentKey ].values;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...retainedAttributes,\n\t\t\t\tcontent: updatedContent,\n\t\t\t};\n\t\t}\n\n\t\treturn attributes;\n\t},\n};\n\n// v1: Rename the `overrides` attribute to the `content` attribute.\nconst v1 = {\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t\toverrides: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t\trenaming: false,\n\t},\n\t// Force this deprecation to run whenever there's an `overrides` object.\n\tisEligible( { overrides } ) {\n\t\treturn !! overrides;\n\t},\n\t/*\n\t * Old attribute format:\n\t * overrides: {\n\t * // An key is an id that represents a block.\n\t * // The values are the attribute values of the block.\n\t * \"V98q_x\": { content: 'My content value' }\n\t * }\n\t *\n\t * New attribute format:\n\t * content: {\n\t * \"V98q_x\": { content: 'My content value' }\n\t * }\n\t *\n\t */\n\tmigrate( attributes ) {\n\t\tconst { overrides, ...retainedAttributes } = attributes;\n\n\t\tconst content = {};\n\n\t\tObject.keys( overrides ).forEach( ( id ) => {\n\t\t\tcontent[ id ] = overrides[ id ];\n\t\t} );\n\n\t\treturn {\n\t\t\t...retainedAttributes,\n\t\t\tcontent,\n\t\t};\n\t},\n};\n\nexport default [ v2, v1 ];\n"],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GAAKC,GAAG,IACrB,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAAEC,KAAK,CAACC,OAAO,CAAEF,GAAI,CAAC,IAAIA,GAAG,KAAK,IAAI;;AAElE;AACA,MAAMG,EAAE,GAAG;EACVC,UAAU,EAAE;IACXC,GAAG,EAAE;MACJC,IAAI,EAAE;IACP,CAAC;IACDC,OAAO,EAAE;MACRD,IAAI,EAAE;IACP;EACD,CAAC;EACDE,QAAQ,EAAE;IACTC,eAAe,EAAE,KAAK;IACtBC,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE;EACX,CAAC;EACD;EACA;EACA;EACA;EACA;EACAC,UAAUA,CAAE;IAAEN;EAAQ,CAAC,EAAG;IACzB,OACC,CAAC,CAAEA,OAAO,IACVO,MAAM,CAACC,IAAI,CAAER,OAAQ,CAAC,CAACS,KAAK,CACzBC,UAAU,IACXV,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAM,IAC5BnB,QAAQ,CAAEQ,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAO,CACzC,CAAC;EAEH,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCC,OAAOA,CAAEf,UAAU,EAAG;IACrB,MAAM;MAAEG,OAAO;MAAE,GAAGa;IAAmB,CAAC,GAAGhB,UAAU;IAErD,IAAKG,OAAO,IAAIO,MAAM,CAACC,IAAI,CAAER,OAAQ,CAAC,CAACc,MAAM,EAAG;MAC/C,MAAMC,cAAc,GAAG;QAAE,GAAGf;MAAQ,CAAC;MAErC,KAAM,MAAMU,UAAU,IAAIV,OAAO,EAAG;QACnCe,cAAc,CAAEL,UAAU,CAAE,GAAGV,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAM;MAC5D;MAEA,OAAO;QACN,GAAGE,kBAAkB;QACrBb,OAAO,EAAEe;MACV,CAAC;IACF;IAEA,OAAOlB,UAAU;EAClB;AACD,CAAC;;AAED;AACA,MAAMmB,EAAE,GAAG;EACVnB,UAAU,EAAE;IACXC,GAAG,EAAE;MACJC,IAAI,EAAE;IACP,CAAC;IACDkB,SAAS,EAAE;MACVlB,IAAI,EAAE;IACP;EACD,CAAC;EACDE,QAAQ,EAAE;IACTC,eAAe,EAAE,KAAK;IACtBC,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE;EACX,CAAC;EACD;EACAC,UAAUA,CAAE;IAAEW;EAAU,CAAC,EAAG;IAC3B,OAAO,CAAC,CAAEA,SAAS;EACpB,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCL,OAAOA,CAAEf,UAAU,EAAG;IACrB,MAAM;MAAEoB,SAAS;MAAE,GAAGJ;IAAmB,CAAC,GAAGhB,UAAU;IAEvD,MAAMG,OAAO,GAAG,CAAC,CAAC;IAElBO,MAAM,CAACC,IAAI,CAAES,SAAU,CAAC,CAACC,OAAO,CAAIC,EAAE,IAAM;MAC3CnB,OAAO,CAAEmB,EAAE,CAAE,GAAGF,SAAS,CAAEE,EAAE,CAAE;IAChC,CAAE,CAAC;IAEH,OAAO;MACN,GAAGN,kBAAkB;MACrBb;IACD,CAAC;EACF;AACD,CAAC;AAAC,IAAAoB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa,CAAE1B,EAAE,EAAEoB,EAAE,CAAE"}
|
package/build/block/edit.js
CHANGED
|
@@ -37,6 +37,23 @@ const {
|
|
|
37
37
|
PARTIAL_SYNCING_SUPPORTED_BLOCKS
|
|
38
38
|
} = (0, _lockUnlock.unlock)(_patterns.privateApis);
|
|
39
39
|
const fullAlignments = ['full', 'wide', 'left', 'right'];
|
|
40
|
+
function getLegacyIdMap(blocks, content, nameCount = {}) {
|
|
41
|
+
let idToClientIdMap = {};
|
|
42
|
+
for (const block of blocks) {
|
|
43
|
+
if (block?.innerBlocks?.length) {
|
|
44
|
+
idToClientIdMap = {
|
|
45
|
+
...idToClientIdMap,
|
|
46
|
+
...getLegacyIdMap(block.innerBlocks, content, nameCount)
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
const id = block.attributes.metadata?.id;
|
|
50
|
+
const clientId = block.clientId;
|
|
51
|
+
if (id && content?.[id]) {
|
|
52
|
+
idToClientIdMap[clientId] = id;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return idToClientIdMap;
|
|
56
|
+
}
|
|
40
57
|
const useInferredLayout = (blocks, parentLayout) => {
|
|
41
58
|
const initialInferredAlignmentRef = (0, _element.useRef)();
|
|
42
59
|
return (0, _element.useMemo)(() => {
|
|
@@ -73,23 +90,26 @@ function hasOverridableBlocks(blocks) {
|
|
|
73
90
|
function getOverridableAttributes(block) {
|
|
74
91
|
return Object.entries(block.attributes.metadata.bindings).filter(([, binding]) => binding.source === 'core/pattern-overrides').map(([attributeKey]) => attributeKey);
|
|
75
92
|
}
|
|
76
|
-
function applyInitialContentValuesToInnerBlocks(blocks, content = {}, defaultValues) {
|
|
93
|
+
function applyInitialContentValuesToInnerBlocks(blocks, content = {}, defaultValues, legacyIdMap) {
|
|
77
94
|
return blocks.map(block => {
|
|
78
|
-
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
95
|
+
var _legacyIdMap$block$cl;
|
|
96
|
+
const innerBlocks = applyInitialContentValuesToInnerBlocks(block.innerBlocks, content, defaultValues, legacyIdMap);
|
|
97
|
+
const metadataName = (_legacyIdMap$block$cl = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl !== void 0 ? _legacyIdMap$block$cl : block.attributes.metadata?.name;
|
|
98
|
+
if (!metadataName || !hasOverridableAttributes(block)) {
|
|
99
|
+
return {
|
|
100
|
+
...block,
|
|
101
|
+
innerBlocks
|
|
102
|
+
};
|
|
103
|
+
}
|
|
84
104
|
const attributes = getOverridableAttributes(block);
|
|
85
105
|
const newAttributes = {
|
|
86
106
|
...block.attributes
|
|
87
107
|
};
|
|
88
108
|
for (const attributeKey of attributes) {
|
|
89
|
-
var _defaultValues$
|
|
90
|
-
(_defaultValues$
|
|
91
|
-
defaultValues[
|
|
92
|
-
const contentValues = content[
|
|
109
|
+
var _defaultValues$metada;
|
|
110
|
+
(_defaultValues$metada = defaultValues[metadataName]) !== null && _defaultValues$metada !== void 0 ? _defaultValues$metada : defaultValues[metadataName] = {};
|
|
111
|
+
defaultValues[metadataName][attributeKey] = block.attributes[attributeKey];
|
|
112
|
+
const contentValues = content[metadataName];
|
|
93
113
|
if (contentValues?.[attributeKey] !== undefined) {
|
|
94
114
|
newAttributes[attributeKey] = contentValues[attributeKey];
|
|
95
115
|
}
|
|
@@ -107,25 +127,27 @@ function isAttributeEqual(attribute1, attribute2) {
|
|
|
107
127
|
}
|
|
108
128
|
return attribute1 === attribute2;
|
|
109
129
|
}
|
|
110
|
-
function getContentValuesFromInnerBlocks(blocks, defaultValues) {
|
|
130
|
+
function getContentValuesFromInnerBlocks(blocks, defaultValues, legacyIdMap) {
|
|
111
131
|
/** @type {Record<string, { values: Record<string, unknown>}>} */
|
|
112
132
|
const content = {};
|
|
113
133
|
for (const block of blocks) {
|
|
134
|
+
var _legacyIdMap$block$cl2;
|
|
114
135
|
if (block.name === _index.name) continue;
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
136
|
+
if (block.innerBlocks.length) {
|
|
137
|
+
Object.assign(content, getContentValuesFromInnerBlocks(block.innerBlocks, defaultValues, legacyIdMap));
|
|
138
|
+
}
|
|
139
|
+
const metadataName = (_legacyIdMap$block$cl2 = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl2 !== void 0 ? _legacyIdMap$block$cl2 : block.attributes.metadata?.name;
|
|
140
|
+
if (!metadataName || !hasOverridableAttributes(block)) {
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
118
143
|
const attributes = getOverridableAttributes(block);
|
|
119
144
|
for (const attributeKey of attributes) {
|
|
120
|
-
if (!isAttributeEqual(block.attributes[attributeKey], defaultValues[
|
|
121
|
-
var _content$
|
|
122
|
-
(_content$
|
|
123
|
-
values: {},
|
|
124
|
-
blockName: block.name
|
|
125
|
-
};
|
|
145
|
+
if (!isAttributeEqual(block.attributes[attributeKey], defaultValues?.[metadataName]?.[attributeKey])) {
|
|
146
|
+
var _content$metadataName;
|
|
147
|
+
(_content$metadataName = content[metadataName]) !== null && _content$metadataName !== void 0 ? _content$metadataName : content[metadataName] = {};
|
|
126
148
|
// TODO: We need a way to represent `undefined` in the serialized overrides.
|
|
127
149
|
// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871
|
|
128
|
-
content[
|
|
150
|
+
content[metadataName][attributeKey] = block.attributes[attributeKey] === undefined ?
|
|
129
151
|
// TODO: We use an empty string to represent undefined for now until
|
|
130
152
|
// we support a richer format for overrides and the block binding API.
|
|
131
153
|
// Currently only the `linkTarget` attribute of `core/button` is affected.
|
|
@@ -218,16 +240,19 @@ function ReusableBlockEdit({
|
|
|
218
240
|
(_editedRecord$blocks$ = editedRecord.blocks?.map(block => (0, _blocks.cloneBlock)(block))) !== null && _editedRecord$blocks$ !== void 0 ? _editedRecord$blocks$ : editedRecord.content && typeof editedRecord.content !== 'function' ? (0, _blocks.parse)(editedRecord.content) : []
|
|
219
241
|
);
|
|
220
242
|
}, [editedRecord.blocks, editedRecord.content]);
|
|
243
|
+
const legacyIdMap = (0, _element.useRef)({});
|
|
221
244
|
|
|
222
245
|
// Apply the initial overrides from the pattern block to the inner blocks.
|
|
223
246
|
(0, _element.useEffect)(() => {
|
|
247
|
+
// Build a map of clientIds to the old nano id system to provide back compat.
|
|
248
|
+
legacyIdMap.current = getLegacyIdMap(initialBlocks, initialContent.current);
|
|
224
249
|
defaultContent.current = {};
|
|
225
250
|
const originalEditingMode = getBlockEditingMode(patternClientId);
|
|
226
251
|
// Replace the contents of the blocks with the overrides.
|
|
227
252
|
registry.batch(() => {
|
|
228
253
|
setBlockEditingMode(patternClientId, 'default');
|
|
229
254
|
syncDerivedUpdates(() => {
|
|
230
|
-
replaceInnerBlocks(patternClientId, applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current));
|
|
255
|
+
replaceInnerBlocks(patternClientId, applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current, legacyIdMap.current));
|
|
231
256
|
});
|
|
232
257
|
setBlockEditingMode(patternClientId, originalEditingMode);
|
|
233
258
|
});
|
|
@@ -263,7 +288,7 @@ function ReusableBlockEdit({
|
|
|
263
288
|
prevBlocks = blocks;
|
|
264
289
|
syncDerivedUpdates(() => {
|
|
265
290
|
setAttributes({
|
|
266
|
-
content: getContentValuesFromInnerBlocks(blocks, defaultContent.current)
|
|
291
|
+
content: getContentValuesFromInnerBlocks(blocks, defaultContent.current, legacyIdMap.current)
|
|
267
292
|
});
|
|
268
293
|
});
|
|
269
294
|
}
|
package/build/block/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_element","_coreData","_components","_i18n","_blockEditor","_patterns","_blocks","_richText","_index","_lockUnlock","useLayoutClasses","unlock","blockEditorPrivateApis","PARTIAL_SYNCING_SUPPORTED_BLOCKS","patternsPrivateApis","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","useRef","useMemo","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","hasOverridableAttributes","Object","keys","name","metadata","bindings","values","binding","source","hasOverridableBlocks","innerBlocks","getOverridableAttributes","entries","filter","map","attributeKey","applyInitialContentValuesToInnerBlocks","content","defaultValues","blockId","id","newAttributes","_defaultValues$blockI","contentValues","isAttributeEqual","attribute1","attribute2","RichTextData","toString","getContentValuesFromInnerBlocks","patternBlockName","assign","_content$blockId","blockName","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","ReusableBlockEdit","ref","__unstableParentLayout","patternClientId","setAttributes","registry","useRegistry","hasAlreadyRendered","useHasRecursion","record","editedRecord","hasResolved","useEntityRecord","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","useDispatch","blockEditorStore","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","useSelect","select","canUser","coreStore","getBlocks","getSettings","_getBlockEditingMode","canEdit","useEffect","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","cloneBlock","parse","originalEditingMode","batch","layoutClasses","blockProps","useBlockProps","className","classnames","innerBlocksProps","useInnerBlocksProps","templateLock","renderAppender","InnerBlocks","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","_react","createElement","Warning","__","Placeholder","Spinner","RecursionProvider","uniqueId","BlockControls","ToolbarGroup","ToolbarButton","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { PARTIAL_SYNCING_SUPPORTED_BLOCKS } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableAttributes( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( hasOverridableAttributes( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues\n\t\t);\n\t\tconst blockId = block.attributes.metadata?.id;\n\t\tif ( ! hasOverridableAttributes( block ) || ! blockId )\n\t\t\treturn { ...block, innerBlocks };\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ blockId ] ??= {};\n\t\t\tdefaultValues[ blockId ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ blockId ]?.values;\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tObject.assign(\n\t\t\tcontent,\n\t\t\tgetContentValuesFromInnerBlocks( block.innerBlocks, defaultValues )\n\t\t);\n\t\tconst blockId = block.attributes.metadata?.id;\n\t\tif ( ! hasOverridableAttributes( block ) || ! blockId ) continue;\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues[ blockId ][ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ blockId ] ??= { values: {}, blockName: block.name };\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ blockId ].values[ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( hasOverridableAttributes( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' ? 'disabled' : undefined\n\t\t);\n\t}, [ editingMode, innerBlocks, setBlockEditingMode ] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasOverridableBlocks( innerBlocks ),\n\t\t[ innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tpatternClientId,\n\t\t\t\t\tapplyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\tdefaultContent.current\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [ syncDerivedUpdates, patternClientId, registry, setAttributes ] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( hasAlreadyRendered ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_element","_coreData","_components","_i18n","_blockEditor","_patterns","_blocks","_richText","_index","_lockUnlock","useLayoutClasses","unlock","blockEditorPrivateApis","PARTIAL_SYNCING_SUPPORTED_BLOCKS","patternsPrivateApis","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","useRef","useMemo","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableAttributes","Object","keys","name","bindings","values","binding","source","hasOverridableBlocks","getOverridableAttributes","entries","filter","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","RichTextData","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","patternBlockName","assign","_content$metadataName","setBlockEditMode","setEditMode","mode","forEach","editMode","ReusableBlockEdit","ref","__unstableParentLayout","patternClientId","setAttributes","registry","useRegistry","hasAlreadyRendered","useHasRecursion","record","editedRecord","hasResolved","useEntityRecord","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","useDispatch","blockEditorStore","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","useSelect","select","canUser","coreStore","getBlocks","getSettings","_getBlockEditingMode","canEdit","useEffect","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","cloneBlock","parse","originalEditingMode","batch","layoutClasses","blockProps","useBlockProps","className","classnames","innerBlocksProps","useInnerBlocksProps","templateLock","renderAppender","InnerBlocks","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","_react","createElement","Warning","__","Placeholder","Spinner","RecursionProvider","uniqueId","BlockControls","ToolbarGroup","ToolbarButton","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { PARTIAL_SYNCING_SUPPORTED_BLOCKS } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableAttributes( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( hasOverridableAttributes( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! hasOverridableAttributes( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! hasOverridableAttributes( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( hasOverridableAttributes( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' ? 'disabled' : undefined\n\t\t);\n\t}, [ editingMode, innerBlocks, setBlockEditingMode ] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasOverridableBlocks( innerBlocks ),\n\t\t[ innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tinitialContent.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tpatternClientId,\n\t\t\t\t\tapplyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [ syncDerivedUpdates, patternClientId, registry, setAttributes ] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( hasAlreadyRendered ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
|
package/build/button/edit.js
CHANGED
|
@@ -197,7 +197,7 @@ function ButtonEdit(props) {
|
|
|
197
197
|
if (!isSelected) {
|
|
198
198
|
return {};
|
|
199
199
|
}
|
|
200
|
-
const blockBindingsSource = (0, _lockUnlock.unlock)(select(
|
|
200
|
+
const blockBindingsSource = (0, _lockUnlock.unlock)(select(_blocks.store)).getBlockBindingsSource(metadata?.bindings?.url?.source);
|
|
201
201
|
return {
|
|
202
202
|
lockUrlControls: !!metadata?.bindings?.url && (!blockBindingsSource || blockBindingsSource?.lockAttributesEditing)
|
|
203
203
|
};
|
package/build/button/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_constants","_getUpdatedLinkAttributes","_removeAnchorTag","_lockUnlock","_i18n","_element","_components","_blockEditor","_keycodes","_icons","_blocks","_compose","_data","LINK_SETTINGS","LinkControl","DEFAULT_LINK_SETTINGS","id","title","__","useEnter","props","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","useSelect","propsRef","useRef","current","useRefEffect","element","onKeyDown","event","defaultPrevented","keyCode","ENTER","content","clientId","length","preventDefault","topParentListBlock","blockIndex","head","cloneBlock","innerBlocks","slice","middle","createBlock","getDefaultBlockName","after","tail","addEventListener","removeEventListener","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","_react","createElement","PanelBody","ButtonGroup","map","widthValue","Button","key","size","variant","onClick","ButtonEdit","attributes","className","isSelected","onReplace","mergeBlocks","tagName","textAlign","linkTarget","placeholder","rel","style","text","url","metadata","TagName","isKeyboardEvent","primary","startEditing","primaryShift","unlink","richTextRef","focus","popoverAnchor","setPopoverAnchor","useState","borderProps","useBorderProps","colorProps","useColorProps","spacingProps","useSpacingProps","shadowProps","useShadowProps","ref","blockProps","useBlockProps","useMergeRefs","blockEditingMode","useBlockEditingMode","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","NEW_TAB_TARGET","nofollow","includes","NOFOLLOW_REL","isLinkTag","useEffect","linkValue","useMemo","useEnterRef","mergedRef","lockUrlControls","select","blockBindingsSource","unlock","getBlockBindingsSource","bindings","source","lockAttributesEditing","Fragment","classnames","fontSize","RichText","value","onChange","removeAnchorTag","withoutInteractiveFormatting","border","radius","__experimentalGetElementClassName","onSplit","onMerge","identifier","BlockControls","group","AlignmentControl","nextAlign","ToolbarButton","name","icon","link","shortcut","displayShortcut","linkOff","isActive","Popover","placement","onClose","anchor","focusOnMount","__unstableSlotName","shift","__experimentalLinkControl","newURL","newOpensInNewTab","newNofollow","getUpdatedLinkAttributes","onRemove","forceIsEditingLink","settings","InspectorControls","TextControl","__nextHasNoMarginBottom","label","newRel","_default","exports","default"],"sources":["@wordpress/block-library/src/button/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\nimport { getUpdatedLinkAttributes } from './get-updated-link-attributes';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { unlock } from '../lock-unlock';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, useRef, useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tButtonGroup,\n\tPanelBody,\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalGetShadowClassesAndStyles as useShadowProps,\n\t__experimentalLinkControl as LinkControl,\n\t__experimentalGetElementClassName,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport {\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\tconst after = topParentListBlock.innerBlocks.slice(\n\t\t\t\tblockIndex + 1\n\t\t\t);\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tconst width = selectedWidth === newWidth ? undefined : newWidth;\n\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Width settings' ) }>\n\t\t\t<ButtonGroup aria-label={ __( 'Button width' ) }>\n\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\twidthValue === selectedWidth\n\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => handleChange( widthValue ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ButtonGroup>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tclientId,\n\t} = props;\n\tconst {\n\t\ttagName,\n\t\ttextAlign,\n\t\tlinkTarget,\n\t\tplaceholder,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\turl,\n\t\twidth,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst TagName = tagName || 'a';\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst shadowProps = useShadowProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === NEW_TAB_TARGET;\n\tconst nofollow = !! rel?.includes( NOFOLLOW_REL );\n\tconst isLinkTag = 'a' === TagName;\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab, nofollow } ),\n\t\t[ url, opensInNewTab, nofollow ]\n\t);\n\n\tconst useEnterRef = useEnter( { content: text, clientId } );\n\tconst mergedRef = useMergeRefs( [ useEnterRef, richTextRef ] );\n\n\tconst { lockUrlControls = false } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t( ! blockBindingsSource ||\n\t\t\t\t\t\tblockBindingsSource?.lockAttributesEditing ),\n\t\t\t};\n\t\t},\n\t\t[ isSelected ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t\t[ `has-custom-font-size` ]: blockProps.style.fontSize,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ mergedRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttext: removeAnchorTag( value ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\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\t...spacingProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t} }\n\t\t\t\t\tonSplit={ ( value ) =>\n\t\t\t\t\t\tcreateBlock( 'core/button', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\ttext: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isURLSet && isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ startEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isURLSet && isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift( 'k' ) }\n\t\t\t\t\t\tonClick={ unlink }\n\t\t\t\t\t\tisActive={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isLinkTag &&\n\t\t\t\tisSelected &&\n\t\t\t\t( isEditingURL || isURLSet ) &&\n\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t\t__unstableSlotName={ '__unstable-block-tools-after' }\n\t\t\t\t\t\tshift\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tsetAttributes(\n\t\t\t\t\t\t\t\t\tgetUpdatedLinkAttributes( {\n\t\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\t\t\tnofollow: newNofollow,\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t\t\tsettings={ LINK_SETTINGS }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_constants","_getUpdatedLinkAttributes","_removeAnchorTag","_lockUnlock","_i18n","_element","_components","_blockEditor","_keycodes","_icons","_blocks","_compose","_data","LINK_SETTINGS","LinkControl","DEFAULT_LINK_SETTINGS","id","title","__","useEnter","props","replaceBlocks","selectionChange","useDispatch","blockEditorStore","getBlock","getBlockRootClientId","getBlockIndex","useSelect","propsRef","useRef","current","useRefEffect","element","onKeyDown","event","defaultPrevented","keyCode","ENTER","content","clientId","length","preventDefault","topParentListBlock","blockIndex","head","cloneBlock","innerBlocks","slice","middle","createBlock","getDefaultBlockName","after","tail","addEventListener","removeEventListener","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","_react","createElement","PanelBody","ButtonGroup","map","widthValue","Button","key","size","variant","onClick","ButtonEdit","attributes","className","isSelected","onReplace","mergeBlocks","tagName","textAlign","linkTarget","placeholder","rel","style","text","url","metadata","TagName","isKeyboardEvent","primary","startEditing","primaryShift","unlink","richTextRef","focus","popoverAnchor","setPopoverAnchor","useState","borderProps","useBorderProps","colorProps","useColorProps","spacingProps","useSpacingProps","shadowProps","useShadowProps","ref","blockProps","useBlockProps","useMergeRefs","blockEditingMode","useBlockEditingMode","isEditingURL","setIsEditingURL","isURLSet","opensInNewTab","NEW_TAB_TARGET","nofollow","includes","NOFOLLOW_REL","isLinkTag","useEffect","linkValue","useMemo","useEnterRef","mergedRef","lockUrlControls","select","blockBindingsSource","unlock","blocksStore","getBlockBindingsSource","bindings","source","lockAttributesEditing","Fragment","classnames","fontSize","RichText","value","onChange","removeAnchorTag","withoutInteractiveFormatting","border","radius","__experimentalGetElementClassName","onSplit","onMerge","identifier","BlockControls","group","AlignmentControl","nextAlign","ToolbarButton","name","icon","link","shortcut","displayShortcut","linkOff","isActive","Popover","placement","onClose","anchor","focusOnMount","__unstableSlotName","shift","__experimentalLinkControl","newURL","newOpensInNewTab","newNofollow","getUpdatedLinkAttributes","onRemove","forceIsEditingLink","settings","InspectorControls","TextControl","__nextHasNoMarginBottom","label","newRel","_default","exports","default"],"sources":["@wordpress/block-library/src/button/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * Internal dependencies\n */\nimport { NEW_TAB_TARGET, NOFOLLOW_REL } from './constants';\nimport { getUpdatedLinkAttributes } from './get-updated-link-attributes';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { unlock } from '../lock-unlock';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, useRef, useMemo } from '@wordpress/element';\nimport {\n\tButton,\n\tButtonGroup,\n\tPanelBody,\n\tTextControl,\n\tToolbarButton,\n\tPopover,\n} from '@wordpress/components';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\t__experimentalGetSpacingClassesAndStyles as useSpacingProps,\n\t__experimentalGetShadowClassesAndStyles as useShadowProps,\n\t__experimentalLinkControl as LinkControl,\n\t__experimentalGetElementClassName,\n\tstore as blockEditorStore,\n\tuseBlockEditingMode,\n} from '@wordpress/block-editor';\nimport { displayShortcut, isKeyboardEvent, ENTER } from '@wordpress/keycodes';\nimport { link, linkOff } from '@wordpress/icons';\nimport {\n\tcreateBlock,\n\tcloneBlock,\n\tgetDefaultBlockName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\nconst LINK_SETTINGS = [\n\t...LinkControl.DEFAULT_LINK_SETTINGS,\n\t{\n\t\tid: 'nofollow',\n\t\ttitle: __( 'Mark as nofollow' ),\n\t},\n];\n\nfunction useEnter( props ) {\n\tconst { replaceBlocks, selectionChange } = useDispatch( blockEditorStore );\n\tconst { getBlock, getBlockRootClientId, getBlockIndex } =\n\t\tuseSelect( blockEditorStore );\n\tconst propsRef = useRef( props );\n\tpropsRef.current = props;\n\treturn useRefEffect( ( element ) => {\n\t\tfunction onKeyDown( event ) {\n\t\t\tif ( event.defaultPrevented || event.keyCode !== ENTER ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst { content, clientId } = propsRef.current;\n\t\t\tif ( content.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tevent.preventDefault();\n\t\t\tconst topParentListBlock = getBlock(\n\t\t\t\tgetBlockRootClientId( clientId )\n\t\t\t);\n\t\t\tconst blockIndex = getBlockIndex( clientId );\n\t\t\tconst head = cloneBlock( {\n\t\t\t\t...topParentListBlock,\n\t\t\t\tinnerBlocks: topParentListBlock.innerBlocks.slice(\n\t\t\t\t\t0,\n\t\t\t\t\tblockIndex\n\t\t\t\t),\n\t\t\t} );\n\t\t\tconst middle = createBlock( getDefaultBlockName() );\n\t\t\tconst after = topParentListBlock.innerBlocks.slice(\n\t\t\t\tblockIndex + 1\n\t\t\t);\n\t\t\tconst tail = after.length\n\t\t\t\t? [\n\t\t\t\t\t\tcloneBlock( {\n\t\t\t\t\t\t\t...topParentListBlock,\n\t\t\t\t\t\t\tinnerBlocks: after,\n\t\t\t\t\t\t} ),\n\t\t\t\t ]\n\t\t\t\t: [];\n\t\t\treplaceBlocks(\n\t\t\t\ttopParentListBlock.clientId,\n\t\t\t\t[ head, middle, ...tail ],\n\t\t\t\t1\n\t\t\t);\n\t\t\t// We manually change the selection here because we are replacing\n\t\t\t// a different block than the selected one.\n\t\t\tselectionChange( middle.clientId );\n\t\t}\n\n\t\telement.addEventListener( 'keydown', onKeyDown );\n\t\treturn () => {\n\t\t\telement.removeEventListener( 'keydown', onKeyDown );\n\t\t};\n\t}, [] );\n}\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tconst width = selectedWidth === newWidth ? undefined : newWidth;\n\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Width settings' ) }>\n\t\t\t<ButtonGroup aria-label={ __( 'Button width' ) }>\n\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\twidthValue === selectedWidth\n\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => handleChange( widthValue ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ButtonGroup>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tclassName,\n\t\tisSelected,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tclientId,\n\t} = props;\n\tconst {\n\t\ttagName,\n\t\ttextAlign,\n\t\tlinkTarget,\n\t\tplaceholder,\n\t\trel,\n\t\tstyle,\n\t\ttext,\n\t\turl,\n\t\twidth,\n\t\tmetadata,\n\t} = attributes;\n\n\tconst TagName = tagName || 'a';\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tstartEditing( event );\n\t\t} else if ( isKeyboardEvent.primaryShift( event, 'k' ) ) {\n\t\t\tunlink();\n\t\t\trichTextRef.current?.focus();\n\t\t}\n\t}\n\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tconst spacingProps = useSpacingProps( attributes );\n\tconst shadowProps = useShadowProps( attributes );\n\tconst ref = useRef();\n\tconst richTextRef = useRef();\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, ref ] ),\n\t\tonKeyDown,\n\t} );\n\tconst blockEditingMode = useBlockEditingMode();\n\n\tconst [ isEditingURL, setIsEditingURL ] = useState( false );\n\tconst isURLSet = !! url;\n\tconst opensInNewTab = linkTarget === NEW_TAB_TARGET;\n\tconst nofollow = !! rel?.includes( NOFOLLOW_REL );\n\tconst isLinkTag = 'a' === TagName;\n\n\tfunction startEditing( event ) {\n\t\tevent.preventDefault();\n\t\tsetIsEditingURL( true );\n\t}\n\n\tfunction unlink() {\n\t\tsetAttributes( {\n\t\t\turl: undefined,\n\t\t\tlinkTarget: undefined,\n\t\t\trel: undefined,\n\t\t} );\n\t\tsetIsEditingURL( false );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingURL( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// Memoize link value to avoid overriding the LinkControl's internal state.\n\t// This is a temporary fix. See https://github.com/WordPress/gutenberg/issues/51256.\n\tconst linkValue = useMemo(\n\t\t() => ( { url, opensInNewTab, nofollow } ),\n\t\t[ url, opensInNewTab, nofollow ]\n\t);\n\n\tconst useEnterRef = useEnter( { content: text, clientId } );\n\tconst mergedRef = useMergeRefs( [ useEnterRef, richTextRef ] );\n\n\tconst { lockUrlControls = false } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! isSelected ) {\n\t\t\t\treturn {};\n\t\t\t}\n\n\t\t\tconst blockBindingsSource = unlock(\n\t\t\t\tselect( blocksStore )\n\t\t\t).getBlockBindingsSource( metadata?.bindings?.url?.source );\n\n\t\t\treturn {\n\t\t\t\tlockUrlControls:\n\t\t\t\t\t!! metadata?.bindings?.url &&\n\t\t\t\t\t( ! blockBindingsSource ||\n\t\t\t\t\t\tblockBindingsSource?.lockAttributesEditing ),\n\t\t\t};\n\t\t},\n\t\t[ isSelected ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\t{ ...blockProps }\n\t\t\t\tclassName={ classnames( blockProps.className, {\n\t\t\t\t\t[ `has-custom-width wp-block-button__width-${ width }` ]:\n\t\t\t\t\t\twidth,\n\t\t\t\t\t[ `has-custom-font-size` ]: blockProps.style.fontSize,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\tref={ mergedRef }\n\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Add text…' ) }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttext: removeAnchorTag( value ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-button__link',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t\t\t\t\t\t// For backwards compatibility add style that isn't\n\t\t\t\t\t\t\t// provided via block support.\n\t\t\t\t\t\t\t'no-border-radius': style?.border?.radius === 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t) }\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\t...spacingProps.style,\n\t\t\t\t\t\t...shadowProps.style,\n\t\t\t\t\t} }\n\t\t\t\t\tonSplit={ ( value ) =>\n\t\t\t\t\t\tcreateBlock( 'core/button', {\n\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\ttext: value,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<AlignmentControl\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isURLSet && isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\tonClick={ startEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ isURLSet && isLinkTag && ! lockUrlControls && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\ticon={ linkOff }\n\t\t\t\t\t\ttitle={ __( 'Unlink' ) }\n\t\t\t\t\t\tshortcut={ displayShortcut.primaryShift( 'k' ) }\n\t\t\t\t\t\tonClick={ unlink }\n\t\t\t\t\t\tisActive={ true }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ isLinkTag &&\n\t\t\t\tisSelected &&\n\t\t\t\t( isEditingURL || isURLSet ) &&\n\t\t\t\t! lockUrlControls && (\n\t\t\t\t\t<Popover\n\t\t\t\t\t\tplacement=\"bottom\"\n\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\tsetIsEditingURL( false );\n\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\tfocusOnMount={ isEditingURL ? 'firstElement' : false }\n\t\t\t\t\t\t__unstableSlotName={ '__unstable-block-tools-after' }\n\t\t\t\t\t\tshift\n\t\t\t\t\t>\n\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\tvalue={ linkValue }\n\t\t\t\t\t\t\tonChange={ ( {\n\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\tnofollow: newNofollow,\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tsetAttributes(\n\t\t\t\t\t\t\t\t\tgetUpdatedLinkAttributes( {\n\t\t\t\t\t\t\t\t\t\trel,\n\t\t\t\t\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\t\t\t\t\topensInNewTab: newOpensInNewTab,\n\t\t\t\t\t\t\t\t\t\tnofollow: newNofollow,\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\tunlink();\n\t\t\t\t\t\t\t\trichTextRef.current?.focus();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tforceIsEditingLink={ isEditingURL }\n\t\t\t\t\t\t\tsettings={ LINK_SETTINGS }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Popover>\n\t\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<WidthPanel\n\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t{ isLinkTag && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( newRel ) =>\n\t\t\t\t\t\t\tsetAttributes( { rel: newRel } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n}\n\nexport default ButtonEdit;\n"],"mappings":"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"}
|
|
@@ -6,10 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _blocks = require("@wordpress/blocks");
|
|
8
8
|
var _richText = require("@wordpress/rich-text");
|
|
9
|
+
var _getTransformedMetadata = require("../utils/get-transformed-metadata");
|
|
9
10
|
/**
|
|
10
11
|
* WordPress dependencies
|
|
11
12
|
*/
|
|
12
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
13
18
|
const transforms = {
|
|
14
19
|
from: [{
|
|
15
20
|
type: 'block',
|
|
@@ -31,7 +36,11 @@ const transforms = {
|
|
|
31
36
|
(0, _blocks.createBlock)('core/buttons', {},
|
|
32
37
|
// Loop the selected buttons.
|
|
33
38
|
buttons.map(attributes => {
|
|
34
|
-
const
|
|
39
|
+
const {
|
|
40
|
+
content,
|
|
41
|
+
metadata
|
|
42
|
+
} = attributes;
|
|
43
|
+
const element = (0, _richText.__unstableCreateElement)(document, content);
|
|
35
44
|
// Remove any HTML tags.
|
|
36
45
|
const text = element.innerText || '';
|
|
37
46
|
// Get first url.
|
|
@@ -40,7 +49,12 @@ const transforms = {
|
|
|
40
49
|
// Create singular button in the buttons block.
|
|
41
50
|
return (0, _blocks.createBlock)('core/button', {
|
|
42
51
|
text,
|
|
43
|
-
url
|
|
52
|
+
url,
|
|
53
|
+
metadata: (0, _getTransformedMetadata.getTransformedMetadata)(metadata, 'core/button', ({
|
|
54
|
+
content: contentBinding
|
|
55
|
+
}) => ({
|
|
56
|
+
text: contentBinding
|
|
57
|
+
}))
|
|
44
58
|
});
|
|
45
59
|
})),
|
|
46
60
|
isMatch: paragraphs => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blocks","require","_richText","transforms","from","type","isMultiBlock","blocks","transform","buttons","createBlock","map","attributes","element","createElement","document","
|
|
1
|
+
{"version":3,"names":["_blocks","require","_richText","_getTransformedMetadata","transforms","from","type","isMultiBlock","blocks","transform","buttons","createBlock","map","attributes","content","metadata","element","createElement","document","text","innerText","link","querySelector","url","getAttribute","getTransformedMetadata","contentBinding","isMatch","paragraphs","every","links","querySelectorAll","length","_default","exports","default"],"sources":["@wordpress/block-library/src/buttons/transforms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __unstableCreateElement as createElement } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { getTransformedMetadata } from '../utils/get-transformed-metadata';\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/button' ],\n\t\t\ttransform: ( buttons ) =>\n\t\t\t\t// Creates the buttons block.\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/buttons',\n\t\t\t\t\t{},\n\t\t\t\t\t// Loop the selected buttons.\n\t\t\t\t\tbuttons.map( ( attributes ) =>\n\t\t\t\t\t\t// Create singular button in the buttons block.\n\t\t\t\t\t\tcreateBlock( 'core/button', attributes )\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\ttransform: ( buttons ) =>\n\t\t\t\t// Creates the buttons block.\n\t\t\t\tcreateBlock(\n\t\t\t\t\t'core/buttons',\n\t\t\t\t\t{},\n\t\t\t\t\t// Loop the selected buttons.\n\t\t\t\t\tbuttons.map( ( attributes ) => {\n\t\t\t\t\t\tconst { content, metadata } = attributes;\n\t\t\t\t\t\tconst element = createElement( document, content );\n\t\t\t\t\t\t// Remove any HTML tags.\n\t\t\t\t\t\tconst text = element.innerText || '';\n\t\t\t\t\t\t// Get first url.\n\t\t\t\t\t\tconst link = element.querySelector( 'a' );\n\t\t\t\t\t\tconst url = link?.getAttribute( 'href' );\n\t\t\t\t\t\t// Create singular button in the buttons block.\n\t\t\t\t\t\treturn createBlock( 'core/button', {\n\t\t\t\t\t\t\ttext,\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\tmetadata: getTransformedMetadata(\n\t\t\t\t\t\t\t\tmetadata,\n\t\t\t\t\t\t\t\t'core/button',\n\t\t\t\t\t\t\t\t( { content: contentBinding } ) => ( {\n\t\t\t\t\t\t\t\t\ttext: contentBinding,\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} )\n\t\t\t\t),\n\t\t\tisMatch: ( paragraphs ) => {\n\t\t\t\treturn paragraphs.every( ( attributes ) => {\n\t\t\t\t\tconst element = createElement(\n\t\t\t\t\t\tdocument,\n\t\t\t\t\t\tattributes.content\n\t\t\t\t\t);\n\t\t\t\t\tconst text = element.innerText || '';\n\t\t\t\t\tconst links = element.querySelectorAll( 'a' );\n\t\t\t\t\treturn text.length <= 30 && links.length <= 1;\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"],"mappings":";;;;;;AAGA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAKA,IAAAE,uBAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAIA;AACA;AACA;;AAGA,MAAMG,UAAU,GAAG;EAClBC,IAAI,EAAE,CACL;IACCC,IAAI,EAAE,OAAO;IACbC,YAAY,EAAE,IAAI;IAClBC,MAAM,EAAE,CAAE,aAAa,CAAE;IACzBC,SAAS,EAAIC,OAAO;IACnB;IACA,IAAAC,mBAAW,EACV,cAAc,EACd,CAAC,CAAC;IACF;IACAD,OAAO,CAACE,GAAG,CAAIC,UAAU;IACxB;IACA,IAAAF,mBAAW,EAAE,aAAa,EAAEE,UAAW,CACxC,CACD;EACF,CAAC,EACD;IACCP,IAAI,EAAE,OAAO;IACbC,YAAY,EAAE,IAAI;IAClBC,MAAM,EAAE,CAAE,gBAAgB,CAAE;IAC5BC,SAAS,EAAIC,OAAO;IACnB;IACA,IAAAC,mBAAW,EACV,cAAc,EACd,CAAC,CAAC;IACF;IACAD,OAAO,CAACE,GAAG,CAAIC,UAAU,IAAM;MAC9B,MAAM;QAAEC,OAAO;QAAEC;MAAS,CAAC,GAAGF,UAAU;MACxC,MAAMG,OAAO,GAAG,IAAAC,iCAAa,EAAEC,QAAQ,EAAEJ,OAAQ,CAAC;MAClD;MACA,MAAMK,IAAI,GAAGH,OAAO,CAACI,SAAS,IAAI,EAAE;MACpC;MACA,MAAMC,IAAI,GAAGL,OAAO,CAACM,aAAa,CAAE,GAAI,CAAC;MACzC,MAAMC,GAAG,GAAGF,IAAI,EAAEG,YAAY,CAAE,MAAO,CAAC;MACxC;MACA,OAAO,IAAAb,mBAAW,EAAE,aAAa,EAAE;QAClCQ,IAAI;QACJI,GAAG;QACHR,QAAQ,EAAE,IAAAU,8CAAsB,EAC/BV,QAAQ,EACR,aAAa,EACb,CAAE;UAAED,OAAO,EAAEY;QAAe,CAAC,MAAQ;UACpCP,IAAI,EAAEO;QACP,CAAC,CACF;MACD,CAAE,CAAC;IACJ,CAAE,CACH,CAAC;IACFC,OAAO,EAAIC,UAAU,IAAM;MAC1B,OAAOA,UAAU,CAACC,KAAK,CAAIhB,UAAU,IAAM;QAC1C,MAAMG,OAAO,GAAG,IAAAC,iCAAa,EAC5BC,QAAQ,EACRL,UAAU,CAACC,OACZ,CAAC;QACD,MAAMK,IAAI,GAAGH,OAAO,CAACI,SAAS,IAAI,EAAE;QACpC,MAAMU,KAAK,GAAGd,OAAO,CAACe,gBAAgB,CAAE,GAAI,CAAC;QAC7C,OAAOZ,IAAI,CAACa,MAAM,IAAI,EAAE,IAAIF,KAAK,CAACE,MAAM,IAAI,CAAC;MAC9C,CAAE,CAAC;IACJ;EACD,CAAC;AAEH,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa/B,UAAU"}
|