@wordpress/block-library 8.14.0 → 8.15.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 +2 -0
- package/build/avatar/edit.js +1 -0
- package/build/avatar/edit.js.map +1 -1
- package/build/block/index.js +2 -1
- package/build/block/index.js.map +1 -1
- package/build/buttons/edit.js +2 -2
- package/build/buttons/edit.js.map +1 -1
- package/build/column/edit.native.js +1 -4
- package/build/column/edit.native.js.map +1 -1
- package/build/columns/edit.js +1 -0
- package/build/columns/edit.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -0
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/deprecated.js +4 -2
- package/build/cover/deprecated.js.map +1 -1
- package/build/embed/embed-placeholder.native.js +37 -13
- package/build/embed/embed-placeholder.native.js.map +1 -1
- package/build/file/index.js +1 -2
- package/build/file/index.js.map +1 -1
- package/build/file/inspector.js +1 -0
- package/build/file/inspector.js.map +1 -1
- package/build/file/view-interactivity.js +23 -0
- package/build/file/view-interactivity.js.map +1 -0
- package/build/file/view.js +1 -15
- package/build/file/view.js.map +1 -1
- package/build/footnotes/edit.js +20 -1
- package/build/footnotes/edit.js.map +1 -1
- package/build/footnotes/format.js +19 -16
- package/build/footnotes/format.js.map +1 -1
- package/build/footnotes/index.js +0 -1
- package/build/footnotes/index.js.map +1 -1
- package/build/gallery/edit.js +1 -1
- package/build/gallery/edit.js.map +1 -1
- package/build/latest-comments/edit.js +1 -0
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-posts/edit.js +2 -0
- package/build/latest-posts/edit.js.map +1 -1
- package/build/list/edit.js +4 -4
- package/build/list/edit.js.map +1 -1
- package/build/media-text/media-container.native.js +2 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/missing/edit.native.js +7 -5
- package/build/missing/edit.native.js.map +1 -1
- package/build/navigation/constants.js +10 -4
- package/build/navigation/constants.js.map +1 -1
- package/build/navigation/edit/index.js +16 -2
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +2 -2
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +2 -2
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -15
- package/build/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build/navigation/index.js +2 -3
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +33 -45
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/view-interactivity.js +185 -0
- package/build/navigation/view-interactivity.js.map +1 -0
- package/build/navigation/view-modal.js +64 -0
- package/build/navigation/view-modal.js.map +1 -0
- package/build/navigation/view.js +50 -174
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-link/edit.js +12 -7
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-submenu/edit.js +2 -2
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/query-pagination/edit.js +1 -1
- package/build/query-pagination/edit.js.map +1 -1
- package/build/query-title/edit.js +43 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/quote/transforms.js +8 -0
- package/build/quote/transforms.js.map +1 -1
- package/build/rss/edit.js +3 -0
- package/build/rss/edit.js.map +1 -1
- package/build/search/edit.js +4 -3
- package/build/search/edit.js.map +1 -1
- package/build/search/index.js +1 -0
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +1 -0
- package/build/site-logo/edit.js.map +1 -1
- package/build/tag-cloud/edit.js +1 -0
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/template-part/edit/index.js +1 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/text-columns/edit.js +1 -0
- package/build/text-columns/edit.js.map +1 -1
- package/build-module/avatar/edit.js +1 -0
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/block/index.js +2 -1
- package/build-module/block/index.js.map +1 -1
- package/build-module/buttons/edit.js +2 -2
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/column/edit.native.js +1 -4
- package/build-module/column/edit.native.js.map +1 -1
- package/build-module/columns/edit.js +1 -0
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -0
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/deprecated.js +4 -2
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/embed/embed-placeholder.native.js +37 -14
- package/build-module/embed/embed-placeholder.native.js.map +1 -1
- package/build-module/file/index.js +1 -2
- package/build-module/file/index.js.map +1 -1
- package/build-module/file/inspector.js +1 -0
- package/build-module/file/inspector.js.map +1 -1
- package/build-module/file/view-interactivity.js +19 -0
- package/build-module/file/view-interactivity.js.map +1 -0
- package/build-module/file/view.js +2 -15
- package/build-module/file/view.js.map +1 -1
- package/build-module/footnotes/edit.js +18 -2
- package/build-module/footnotes/edit.js.map +1 -1
- package/build-module/footnotes/format.js +19 -16
- package/build-module/footnotes/format.js.map +1 -1
- package/build-module/footnotes/index.js +0 -1
- package/build-module/footnotes/index.js.map +1 -1
- package/build-module/gallery/edit.js +1 -1
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/latest-comments/edit.js +1 -0
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-posts/edit.js +2 -0
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/list/edit.js +4 -4
- package/build-module/list/edit.js.map +1 -1
- package/build-module/media-text/media-container.native.js +2 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/missing/edit.native.js +8 -6
- package/build-module/missing/edit.native.js.map +1 -1
- package/build-module/navigation/constants.js +8 -3
- package/build-module/navigation/constants.js.map +1 -1
- package/build-module/navigation/edit/index.js +17 -3
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -2
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +2 -2
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js +10 -14
- package/build-module/navigation/edit/use-convert-classic-menu-to-block-menu.js.map +1 -1
- package/build-module/navigation/index.js +2 -3
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +35 -47
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/view-interactivity.js +182 -0
- package/build-module/navigation/view-interactivity.js.map +1 -0
- package/build-module/navigation/view-modal.js +58 -0
- package/build-module/navigation/view-modal.js.map +1 -0
- package/build-module/navigation/view.js +50 -173
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-link/edit.js +12 -7
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +2 -2
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/query-pagination/edit.js +1 -1
- package/build-module/query-pagination/edit.js.map +1 -1
- package/build-module/query-title/edit.js +44 -3
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/quote/transforms.js +8 -0
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/rss/edit.js +3 -0
- package/build-module/rss/edit.js.map +1 -1
- package/build-module/search/edit.js +4 -3
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/index.js +1 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +1 -0
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/tag-cloud/edit.js +1 -0
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/text-columns/edit.js +1 -0
- package/build-module/text-columns/edit.js.map +1 -1
- package/build-style/details/style-rtl.css +4 -2
- package/build-style/details/style.css +4 -2
- package/build-style/footnotes/style-rtl.css +4 -3
- package/build-style/footnotes/style.css +4 -3
- package/build-style/navigation/style-rtl.css +14 -2
- package/build-style/navigation/style.css +14 -2
- package/build-style/query-pagination/style-rtl.css +4 -2
- package/build-style/query-pagination/style.css +4 -2
- package/build-style/style-rtl.css +26 -9
- package/build-style/style.css +26 -9
- package/package.json +33 -32
- package/src/audio/test/__snapshots__/edit.native.js.snap +58 -33
- package/src/avatar/edit.js +1 -0
- package/src/block/block.json +2 -1
- package/src/block/editor.native.scss +2 -2
- package/src/buttons/edit.js +2 -2
- package/src/column/edit.native.js +4 -10
- package/src/column/editor.native.scss +0 -4
- package/src/columns/edit.js +1 -0
- package/src/comment-author-avatar/edit.js +1 -0
- package/src/comment-template/index.php +5 -2
- package/src/cover/deprecated.js +2 -0
- package/src/embed/embed-placeholder.native.js +80 -47
- package/src/embed/styles.native.scss +54 -18
- package/src/embed/test/index.native.js +5 -5
- package/src/file/block.json +1 -2
- package/src/file/index.php +19 -1
- package/src/file/inspector.js +1 -0
- package/src/file/test/__snapshots__/edit.native.js.snap +58 -33
- package/src/file/view-interactivity.js +18 -0
- package/src/file/view.js +5 -14
- package/src/footnotes/block.json +0 -1
- package/src/footnotes/edit.js +21 -2
- package/src/footnotes/format.js +22 -20
- package/src/footnotes/style.scss +6 -3
- package/src/gallery/edit.js +1 -1
- package/src/gallery/test/index.native.js +17 -16
- package/src/home-link/index.php +15 -2
- package/src/image/index.php +47 -8
- package/src/image/test/edit.native.js +1 -1
- package/src/latest-comments/edit.js +1 -0
- package/src/latest-posts/edit.js +2 -0
- package/src/list/edit.js +6 -4
- package/src/list/test/edit.native.js +129 -33
- package/src/media-text/media-container.native.js +1 -0
- package/src/missing/edit.native.js +12 -10
- package/src/missing/style.native.scss +19 -12
- package/src/missing/test/__snapshots__/edit.native.js.snap +21 -13
- package/src/navigation/block.json +2 -3
- package/src/navigation/constants.js +12 -6
- package/src/navigation/edit/index.js +29 -1
- package/src/navigation/edit/inner-blocks.js +2 -2
- package/src/navigation/edit/unsaved-inner-blocks.js +2 -2
- package/src/navigation/edit/use-convert-classic-menu-to-block-menu.js +17 -21
- package/src/navigation/index.php +24 -6
- package/src/navigation/style.scss +27 -8
- package/src/navigation/use-navigation-menu.js +39 -63
- package/src/navigation/view-interactivity.js +196 -0
- package/src/navigation/view-modal.js +78 -0
- package/src/navigation/view.js +67 -189
- package/src/navigation-link/edit.js +61 -47
- package/src/navigation-submenu/edit.js +2 -2
- package/src/paragraph/test/__snapshots__/edit.native.js.snap +1 -0
- package/src/paragraph/test/edit.native.js +26 -0
- package/src/post-template/index.php +4 -2
- package/src/post-title/index.php +6 -3
- package/src/preformatted/test/__snapshots__/edit.native.js.snap +2 -0
- package/src/query-pagination/edit.js +17 -14
- package/src/query-title/edit.js +48 -6
- package/src/quote/test/__snapshots__/transforms.native.js.snap +10 -0
- package/src/quote/test/transforms.native.js +5 -1
- package/src/quote/transforms.js +13 -0
- package/src/rss/edit.js +3 -0
- package/src/search/block.json +1 -0
- package/src/search/edit.js +4 -3
- package/src/search/index.php +22 -4
- package/src/search/test/__snapshots__/edit.native.js.snap +7 -0
- package/src/site-logo/edit.js +1 -0
- package/src/tag-cloud/edit.js +1 -0
- package/src/template-part/edit/index.js +1 -1
- package/src/template-part/index.php +9 -15
- package/src/text-columns/edit.js +1 -0
- package/build/gallery/shared-icon.native.js +0 -38
- package/build/gallery/shared-icon.native.js.map +0 -1
- package/build-module/gallery/shared-icon.native.js +0 -24
- package/build-module/gallery/shared-icon.native.js.map +0 -1
- package/src/gallery/shared-icon.native.js +0 -23
package/build/footnotes/edit.js
CHANGED
|
@@ -11,6 +11,12 @@ var _blockEditor = require("@wordpress/block-editor");
|
|
|
11
11
|
|
|
12
12
|
var _coreData = require("@wordpress/core-data");
|
|
13
13
|
|
|
14
|
+
var _i18n = require("@wordpress/i18n");
|
|
15
|
+
|
|
16
|
+
var _components = require("@wordpress/components");
|
|
17
|
+
|
|
18
|
+
var _icons = require("@wordpress/icons");
|
|
19
|
+
|
|
14
20
|
/**
|
|
15
21
|
* WordPress dependencies
|
|
16
22
|
*/
|
|
@@ -22,7 +28,20 @@ function FootnotesEdit({
|
|
|
22
28
|
}) {
|
|
23
29
|
const [meta, updateMeta] = (0, _coreData.useEntityProp)('postType', postType, 'meta', postId);
|
|
24
30
|
const footnotes = meta?.footnotes ? JSON.parse(meta.footnotes) : [];
|
|
25
|
-
|
|
31
|
+
const blockProps = (0, _blockEditor.useBlockProps)();
|
|
32
|
+
|
|
33
|
+
if (!footnotes.length) {
|
|
34
|
+
return (0, _element.createElement)("div", { ...blockProps
|
|
35
|
+
}, (0, _element.createElement)(_components.Placeholder, {
|
|
36
|
+
icon: (0, _element.createElement)(_blockEditor.BlockIcon, {
|
|
37
|
+
icon: _icons.formatListNumbered
|
|
38
|
+
}),
|
|
39
|
+
label: (0, _i18n.__)('Footnotes'),
|
|
40
|
+
instructions: (0, _i18n.__)('Footnotes found in blocks within this document will be displayed here.')
|
|
41
|
+
}));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return (0, _element.createElement)("ol", { ...blockProps
|
|
26
45
|
}, footnotes.map(({
|
|
27
46
|
id,
|
|
28
47
|
content
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/footnotes/edit.js"],"names":["FootnotesEdit","context","postType","postId","meta","updateMeta","footnotes","JSON","parse","map","id","content","event","target","textContent","trim","scrollIntoView","nextFootnote","stringify","footnote"],"mappings":";;;;;;;;;AAGA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/footnotes/edit.js"],"names":["FootnotesEdit","context","postType","postId","meta","updateMeta","footnotes","JSON","parse","blockProps","length","icon","map","id","content","event","target","textContent","trim","scrollIntoView","nextFootnote","stringify","footnote"],"mappings":";;;;;;;;;AAGA;;AACA;;AACA;;AACA;;AACA;;AAPA;AACA;AACA;AAOe,SAASA,aAAT,CAAwB;AAAEC,EAAAA,OAAO,EAAE;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ;AAAX,CAAxB,EAA4D;AAC1E,QAAM,CAAEC,IAAF,EAAQC,UAAR,IAAuB,6BAC5B,UAD4B,EAE5BH,QAF4B,EAG5B,MAH4B,EAI5BC,MAJ4B,CAA7B;AAMA,QAAMG,SAAS,GAAGF,IAAI,EAAEE,SAAN,GAAkBC,IAAI,CAACC,KAAL,CAAYJ,IAAI,CAACE,SAAjB,CAAlB,GAAiD,EAAnE;AACA,QAAMG,UAAU,GAAG,iCAAnB;;AAEA,MAAK,CAAEH,SAAS,CAACI,MAAjB,EAA0B;AACzB,WACC,wCAAUD;AAAV,OACC,4BAAC,uBAAD;AACC,MAAA,IAAI,EAAG,4BAAC,sBAAD;AAAW,QAAA,IAAI,EAAGE;AAAlB,QADR;AAEC,MAAA,KAAK,EAAG,cAAI,WAAJ,CAFT;AAGC,MAAA,YAAY,EAAG,cACd,wEADc;AAHhB,MADD,CADD;AAWA;;AAED,SACC,uCAASF;AAAT,KACGH,SAAS,CAACM,GAAV,CAAe,CAAE;AAAEC,IAAAA,EAAF;AAAMC,IAAAA;AAAN,GAAF,KAChB;AAAI,IAAA,GAAG,EAAGD;AAAV,KACC,4BAAC,qBAAD;AACC,IAAA,EAAE,EAAGA,EADN;AAEC,IAAA,OAAO,EAAC,MAFT;AAGC,IAAA,KAAK,EAAGC,OAHT;AAIC,IAAA,UAAU,EAAGD,EAJd,CAKC;AACA;AAND;AAOC,IAAA,OAAO,EAAKE,KAAF,IAAa;AACtB,UAAK,CAAEA,KAAK,CAACC,MAAN,CAAaC,WAAb,CAAyBC,IAAzB,EAAP,EAAyC;AACxCH,QAAAA,KAAK,CAACC,MAAN,CAAaG,cAAb;AACA;AACD,KAXF;AAYC,IAAA,QAAQ,EAAKC,YAAF,IAAoB;AAC9Bf,MAAAA,UAAU,CAAE,EACX,GAAGD,IADQ;AAEXE,QAAAA,SAAS,EAAEC,IAAI,CAACc,SAAL,CACVf,SAAS,CAACM,GAAV,CAAiBU,QAAF,IAAgB;AAC9B,iBAAOA,QAAQ,CAACT,EAAT,KAAgBA,EAAhB,GACJ;AACAC,YAAAA,OAAO,EAAEM,YADT;AAEAP,YAAAA;AAFA,WADI,GAKJS,QALH;AAMA,SAPD,CADU;AAFA,OAAF,CAAV;AAaA;AA1BF,IADD,EA4BK,GA5BL,EA6BC;AAAG,IAAA,IAAI,EAAI,IAAIT,EAAI;AAAnB,oBA7BD,CADC,CADH,CADD;AAqCA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockIcon, RichText, useBlockProps } from '@wordpress/block-editor';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\nimport { Placeholder } from '@wordpress/components';\nimport { formatListNumbered as icon } from '@wordpress/icons';\n\nexport default function FootnotesEdit( { context: { postType, postId } } ) {\n\tconst [ meta, updateMeta ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'meta',\n\t\tpostId\n\t);\n\tconst footnotes = meta?.footnotes ? JSON.parse( meta.footnotes ) : [];\n\tconst blockProps = useBlockProps();\n\n\tif ( ! footnotes.length ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Placeholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabel={ __( 'Footnotes' ) }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Footnotes found in blocks within this document will be displayed here.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<ol { ...blockProps }>\n\t\t\t{ footnotes.map( ( { id, content } ) => (\n\t\t\t\t<li key={ id }>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\tidentifier={ id }\n\t\t\t\t\t\t// To do: figure out why the browser is not scrolling\n\t\t\t\t\t\t// into view when it receives focus.\n\t\t\t\t\t\tonFocus={ ( event ) => {\n\t\t\t\t\t\t\tif ( ! event.target.textContent.trim() ) {\n\t\t\t\t\t\t\t\tevent.target.scrollIntoView();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( nextFootnote ) => {\n\t\t\t\t\t\t\tupdateMeta( {\n\t\t\t\t\t\t\t\t...meta,\n\t\t\t\t\t\t\t\tfootnotes: JSON.stringify(\n\t\t\t\t\t\t\t\t\tfootnotes.map( ( footnote ) => {\n\t\t\t\t\t\t\t\t\t\treturn footnote.id === id\n\t\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: nextFootnote,\n\t\t\t\t\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t\t: footnote;\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/>{ ' ' }\n\t\t\t\t\t<a href={ `#${ id }-link` }>↩︎</a>\n\t\t\t\t</li>\n\t\t\t) ) }\n\t\t</ol>\n\t);\n}\n"]}
|
|
@@ -47,7 +47,6 @@ const {
|
|
|
47
47
|
supports: {
|
|
48
48
|
html: false,
|
|
49
49
|
multiple: false,
|
|
50
|
-
inserter: false,
|
|
51
50
|
reusable: false
|
|
52
51
|
},
|
|
53
52
|
style: "wp-block-footnotes"
|
|
@@ -56,11 +55,9 @@ const formatName = 'core/footnote';
|
|
|
56
55
|
exports.formatName = formatName;
|
|
57
56
|
const format = {
|
|
58
57
|
title: (0, _i18n.__)('Footnote'),
|
|
59
|
-
tagName: '
|
|
58
|
+
tagName: 'sup',
|
|
60
59
|
className: 'fn',
|
|
61
60
|
attributes: {
|
|
62
|
-
id: 'id',
|
|
63
|
-
href: 'href',
|
|
64
61
|
'data-fn': 'data-fn'
|
|
65
62
|
},
|
|
66
63
|
contentEditable: false,
|
|
@@ -83,18 +80,24 @@ const format = {
|
|
|
83
80
|
|
|
84
81
|
function onClick() {
|
|
85
82
|
registry.batch(() => {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
83
|
+
let id;
|
|
84
|
+
|
|
85
|
+
if (isObjectActive) {
|
|
86
|
+
const object = value.replacements[value.start];
|
|
87
|
+
id = object?.attributes?.['data-fn'];
|
|
88
|
+
} else {
|
|
89
|
+
id = (0, _uuid.v4)();
|
|
90
|
+
const newValue = (0, _richText.insertObject)(value, {
|
|
91
|
+
type: formatName,
|
|
92
|
+
attributes: {
|
|
93
|
+
'data-fn': id
|
|
94
|
+
},
|
|
95
|
+
innerHTML: `<a href="#${id}" id="${id}-link">*</a>`
|
|
96
|
+
}, value.end, value.end);
|
|
97
|
+
newValue.start = newValue.end - 1;
|
|
98
|
+
onChange(newValue);
|
|
99
|
+
} // BFS search to find the first footnote block.
|
|
100
|
+
|
|
98
101
|
|
|
99
102
|
let fnBlock = null;
|
|
100
103
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/footnotes/format.js"],"names":["formatName","format","title","tagName","className","attributes","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/footnotes/format.js"],"names":["formatName","format","title","tagName","className","attributes","contentEditable","edit","Edit","value","onChange","isObjectActive","registry","getSelectedBlockClientId","getBlockRootClientId","getBlockName","getBlocks","blockEditorStore","selectionChange","insertBlock","onClick","batch","id","object","replacements","start","newValue","type","innerHTML","end","fnBlock","queue","length","block","shift","name","push","innerBlocks","clientId","rootClientId","undefined","icon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { v4 as createId } from 'uuid';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { formatListNumbered as icon } from '@wordpress/icons';\nimport { insertObject } from '@wordpress/rich-text';\nimport {\n\tRichTextToolbarButton,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { name } from './block.json';\n\nexport const formatName = 'core/footnote';\nexport const format = {\n\ttitle: __( 'Footnote' ),\n\ttagName: 'sup',\n\tclassName: 'fn',\n\tattributes: {\n\t\t'data-fn': 'data-fn',\n\t},\n\tcontentEditable: false,\n\tedit: function Edit( { value, onChange, isObjectActive } ) {\n\t\tconst registry = useRegistry();\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockName,\n\t\t\tgetBlocks,\n\t\t} = useSelect( blockEditorStore );\n\t\tconst { selectionChange, insertBlock } =\n\t\t\tuseDispatch( blockEditorStore );\n\n\t\tfunction onClick() {\n\t\t\tregistry.batch( () => {\n\t\t\t\tlet id;\n\t\t\t\tif ( isObjectActive ) {\n\t\t\t\t\tconst object = value.replacements[ value.start ];\n\t\t\t\t\tid = object?.attributes?.[ 'data-fn' ];\n\t\t\t\t} else {\n\t\t\t\t\tid = createId();\n\t\t\t\t\tconst newValue = insertObject(\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: formatName,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t'data-fn': id,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tinnerHTML: `<a href=\"#${ id }\" id=\"${ id }-link\">*</a>`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalue.end,\n\t\t\t\t\t\tvalue.end\n\t\t\t\t\t);\n\t\t\t\t\tnewValue.start = newValue.end - 1;\n\t\t\t\t\tonChange( newValue );\n\t\t\t\t}\n\n\t\t\t\t// BFS search to find the first footnote block.\n\t\t\t\tlet fnBlock = null;\n\t\t\t\t{\n\t\t\t\t\tconst queue = [ ...getBlocks() ];\n\t\t\t\t\twhile ( queue.length ) {\n\t\t\t\t\t\tconst block = queue.shift();\n\t\t\t\t\t\tif ( block.name === name ) {\n\t\t\t\t\t\t\tfnBlock = block;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqueue.push( ...block.innerBlocks );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Maybe this should all also be moved to the entity provider.\n\t\t\t\t// When there is no footnotes block in the post, create one and\n\t\t\t\t// insert it at the bottom.\n\t\t\t\tif ( ! fnBlock ) {\n\t\t\t\t\tconst clientId = getSelectedBlockClientId();\n\t\t\t\t\tlet rootClientId = getBlockRootClientId( clientId );\n\n\t\t\t\t\twhile (\n\t\t\t\t\t\trootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) !== 'core/post-content'\n\t\t\t\t\t) {\n\t\t\t\t\t\trootClientId = getBlockRootClientId( rootClientId );\n\t\t\t\t\t}\n\n\t\t\t\t\tfnBlock = createBlock( name );\n\n\t\t\t\t\tinsertBlock( fnBlock, undefined, rootClientId );\n\t\t\t\t}\n\n\t\t\t\tselectionChange( fnBlock.clientId, id, 0, 0 );\n\t\t\t} );\n\t\t}\n\n\t\treturn (\n\t\t\t<RichTextToolbarButton\n\t\t\t\ticon={ icon }\n\t\t\t\ttitle={ __( 'Footnote' ) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tisActive={ isObjectActive }\n\t\t\t/>\n\t\t);\n\t},\n};\n"]}
|
package/build/footnotes/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/footnotes/index.js"],"names":["name","metadata","settings","icon","edit","formatName","format","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAEA;;AAZA;AACA;AACA;;AAIA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/footnotes/index.js"],"names":["name","metadata","settings","icon","edit","formatName","format","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAEA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,yBADuB;AAEvBC,EAAAA,IAAI,EAAJA;AAFuB,CAAjB,C,CAKP;;;AACA,kCAAoBC,kBAApB,EAAgCC,cAAhC;;AAEO,MAAMC,IAAI,GAAG,MAAM;AACzB,0BAAW;AAAEP,IAAAA,IAAF;AAAQC,IAAAA,QAAR;AAAkBC,IAAAA;AAAlB,GAAX;AACA,CAFM","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { formatListNumbered as icon } from '@wordpress/icons';\nimport { registerFormatType } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport { formatName, format } from './format';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n\n// Would be good to remove the format and HoR if the block is unregistered.\nregisterFormatType( formatName, format );\n\nexport const init = () => {\n\tinitBlock( { name, metadata, settings } );\n};\n"]}
|
package/build/gallery/edit.js
CHANGED
|
@@ -440,7 +440,7 @@ function GalleryEdit(props) {
|
|
|
440
440
|
max: Math.min(MAX_COLUMNS, images.length),
|
|
441
441
|
...MOBILE_CONTROL_PROPS_RANGE_CONTROL,
|
|
442
442
|
required: true,
|
|
443
|
-
|
|
443
|
+
__next40pxDefaultSize: true
|
|
444
444
|
}), (0, _element.createElement)(_components.ToggleControl, {
|
|
445
445
|
__nextHasNoMarginBottom: true,
|
|
446
446
|
label: (0, _i18n.__)('Crop images'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","columns","imageCrop","linkTarget","linkTo","sizeSlug","caption","showCaption","setShowCaption","prevCaption","captionRef","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","wasBlockJustInserted","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","length","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","sharedIcon","title","instructions","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Math","min","isWeb","captionIcon","style","spacing","blockGap","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose, usePrevious } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { caption as captionIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst allowedBlocks = [ 'core/image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t} = props;\n\n\tconst { columns, imageCrop, linkTarget, linkTo, sizeSlug, caption } =\n\t\tattributes;\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst prevCaption = usePrevious( caption );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! caption ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\tconst innerBlocks =\n\t\t\t\tselect( blockEditorStore ).getBlock( clientId )?.innerBlocks ??\n\t\t\t\t[];\n\t\t\treturn innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst wasBlockJustInserted = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\tmultiple={ true }\n\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tshowCaption={ showCaption }\n\t\t\t\tref={ Platform.isWeb ? captionRef : undefined }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","allowedBlocks","PLACEHOLDER_TEXT","Platform","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","columns","imageCrop","linkTarget","linkTo","sizeSlug","caption","showCaption","setShowCaption","prevCaption","captionRef","node","focus","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","blockEditorStore","createSuccessNotice","createErrorNotice","noticesStore","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","wasBlockJustInserted","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","length","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","sharedIcon","title","instructions","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Math","min","isWeb","captionIcon","style","spacing","blockGap","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose, usePrevious } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tToolbarButton,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport {\n\tPlatform,\n\tuseCallback,\n\tuseEffect,\n\tuseState,\n\tuseMemo,\n} from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { caption as captionIcon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst allowedBlocks = [ 'core/image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t} = props;\n\n\tconst { columns, imageCrop, linkTarget, linkTo, sizeSlug, caption } =\n\t\tattributes;\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst prevCaption = usePrevious( caption );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected && ! caption ) {\n\t\t\tsetShowCaption( false );\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\tconst innerBlocks =\n\t\t\t\tselect( blockEditorStore ).getBlock( clientId )?.innerBlocks ??\n\t\t\t\t[];\n\t\t\treturn innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst wasBlockJustInserted = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\tmultiple={ true }\n\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<GapStyles\n\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tshowCaption={ showCaption }\n\t\t\t\tref={ Platform.isWeb ? captionRef : undefined }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"]}
|
|
@@ -76,6 +76,7 @@ function LatestComments({
|
|
|
76
76
|
})
|
|
77
77
|
}), (0, _element.createElement)(_components.RangeControl, {
|
|
78
78
|
__nextHasNoMarginBottom: true,
|
|
79
|
+
__next40pxDefaultSize: true,
|
|
79
80
|
label: (0, _i18n.__)('Number of comments'),
|
|
80
81
|
value: commentsToShow,
|
|
81
82
|
onChange: value => setAttributes({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/latest-comments/edit.js"],"names":["MIN_COMMENTS","MAX_COMMENTS","LatestComments","attributes","setAttributes","commentsToShow","displayAvatar","displayDate","displayExcerpt","serverSideAttributes","style","spacing","undefined","value","_locale"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AAXA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,CAArB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,GAArB;;AAEe,SAASC,cAAT,CAAyB;AAAEC,EAAAA,UAAF;AAAcC,EAAAA;AAAd,CAAzB,EAAyD;AACvE,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,aAAlB;AAAiCC,IAAAA,WAAjC;AAA8CC,IAAAA;AAA9C,MACLL,UADD;AAGA,QAAMM,oBAAoB,GAAG,EAC5B,GAAGN,UADyB;AAE5BO,IAAAA,KAAK,EAAE,EACN,GAAGP,UAAU,EAAEO,KADT;AAENC,MAAAA,OAAO,EAAEC;AAFH;AAFqB,GAA7B;AAQA,SACC,wCAAU;AAAV,KACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,KACC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,gBAAJ,CAFT;AAGC,IAAA,OAAO,EAAGN,aAHX;AAIC,IAAA,QAAQ,EAAG,MACVF,aAAa,CAAE;AAAEE,MAAAA,aAAa,EAAE,CAAEA;AAAnB,KAAF;AALf,IADD,EASC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,cAAJ,CAFT;AAGC,IAAA,OAAO,EAAGC,WAHX;AAIC,IAAA,QAAQ,EAAG,MACVH,aAAa,CAAE;AAAEG,MAAAA,WAAW,EAAE,CAAEA;AAAjB,KAAF;AALf,IATD,EAiBC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,iBAAJ,CAFT;AAGC,IAAA,OAAO,EAAGC,cAHX;AAIC,IAAA,QAAQ,EAAG,MACVJ,aAAa,CAAE;AACdI,MAAAA,cAAc,EAAE,CAAEA;AADJ,KAAF;AALf,IAjBD,EA2BC,4BAAC,wBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,oBAAJ,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/latest-comments/edit.js"],"names":["MIN_COMMENTS","MAX_COMMENTS","LatestComments","attributes","setAttributes","commentsToShow","displayAvatar","displayDate","displayExcerpt","serverSideAttributes","style","spacing","undefined","value","_locale"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AAXA;AACA;AACA;;AAWA;AACA;AACA;AACA;AACA;AACA,MAAMA,YAAY,GAAG,CAArB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,GAArB;;AAEe,SAASC,cAAT,CAAyB;AAAEC,EAAAA,UAAF;AAAcC,EAAAA;AAAd,CAAzB,EAAyD;AACvE,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,aAAlB;AAAiCC,IAAAA,WAAjC;AAA8CC,IAAAA;AAA9C,MACLL,UADD;AAGA,QAAMM,oBAAoB,GAAG,EAC5B,GAAGN,UADyB;AAE5BO,IAAAA,KAAK,EAAE,EACN,GAAGP,UAAU,EAAEO,KADT;AAENC,MAAAA,OAAO,EAAEC;AAFH;AAFqB,GAA7B;AAQA,SACC,wCAAU;AAAV,KACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,KACC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,gBAAJ,CAFT;AAGC,IAAA,OAAO,EAAGN,aAHX;AAIC,IAAA,QAAQ,EAAG,MACVF,aAAa,CAAE;AAAEE,MAAAA,aAAa,EAAE,CAAEA;AAAnB,KAAF;AALf,IADD,EASC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,cAAJ,CAFT;AAGC,IAAA,OAAO,EAAGC,WAHX;AAIC,IAAA,QAAQ,EAAG,MACVH,aAAa,CAAE;AAAEG,MAAAA,WAAW,EAAE,CAAEA;AAAjB,KAAF;AALf,IATD,EAiBC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,iBAAJ,CAFT;AAGC,IAAA,OAAO,EAAGC,cAHX;AAIC,IAAA,QAAQ,EAAG,MACVJ,aAAa,CAAE;AACdI,MAAAA,cAAc,EAAE,CAAEA;AADJ,KAAF;AALf,IAjBD,EA2BC,4BAAC,wBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,qBAAqB,MAFtB;AAGC,IAAA,KAAK,EAAG,cAAI,oBAAJ,CAHT;AAIC,IAAA,KAAK,EAAGH,cAJT;AAKC,IAAA,QAAQ,EAAKQ,KAAF,IACVT,aAAa,CAAE;AAAEC,MAAAA,cAAc,EAAEQ;AAAlB,KAAF,CANf;AAQC,IAAA,GAAG,EAAGb,YARP;AASC,IAAA,GAAG,EAAGC,YATP;AAUC,IAAA,QAAQ;AAVT,IA3BD,CADD,CADD,EA2CC,4BAAC,oBAAD,QACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAC,sBADP;AAEC,IAAA,UAAU,EAAGQ,oBAFd,CAGC;AACA;AACA;AALD;AAMC,IAAA,YAAY,EAAG;AAAEK,MAAAA,OAAO,EAAE;AAAX;AANhB,IADD,CA3CD,CADD;AAwDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tDisabled,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Minimum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_COMMENTS = 1;\n/**\n * Maximum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_COMMENTS = 100;\n\nexport default function LatestComments( { attributes, setAttributes } ) {\n\tconst { commentsToShow, displayAvatar, displayDate, displayExcerpt } =\n\t\tattributes;\n\n\tconst serverSideAttributes = {\n\t\t...attributes,\n\t\tstyle: {\n\t\t\t...attributes?.style,\n\t\t\tspacing: undefined,\n\t\t},\n\t};\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display avatar' ) }\n\t\t\t\t\t\tchecked={ displayAvatar }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAvatar: ! displayAvatar } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayDate: ! displayDate } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayExcerpt: ! displayExcerpt,\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\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Number of comments' ) }\n\t\t\t\t\t\tvalue={ commentsToShow }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { commentsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ MIN_COMMENTS }\n\t\t\t\t\t\tmax={ MAX_COMMENTS }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<Disabled>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"core/latest-comments\"\n\t\t\t\t\tattributes={ serverSideAttributes }\n\t\t\t\t\t// The preview uses the site's locale to make it more true to how\n\t\t\t\t\t// the block appears on the frontend. Setting the locale\n\t\t\t\t\t// explicitly prevents any middleware from setting it to 'user'.\n\t\t\t\t\turlQueryArgs={ { _locale: 'site' } }\n\t\t\t\t/>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -204,6 +204,7 @@ function LatestPostsEdit({
|
|
|
204
204
|
})
|
|
205
205
|
}), displayPostContent && displayPostContentRadio === 'excerpt' && (0, _element.createElement)(_components.RangeControl, {
|
|
206
206
|
__nextHasNoMarginBottom: true,
|
|
207
|
+
__next40pxDefaultSize: true,
|
|
207
208
|
label: (0, _i18n.__)('Max number of words'),
|
|
208
209
|
value: excerptLength,
|
|
209
210
|
onChange: value => setAttributes({
|
|
@@ -303,6 +304,7 @@ function LatestPostsEdit({
|
|
|
303
304
|
selectedAuthorId: selectedAuthor
|
|
304
305
|
}), postLayout === 'grid' && (0, _element.createElement)(_components.RangeControl, {
|
|
305
306
|
__nextHasNoMarginBottom: true,
|
|
307
|
+
__next40pxDefaultSize: true,
|
|
306
308
|
label: (0, _i18n.__)('Columns'),
|
|
307
309
|
value: columns,
|
|
308
310
|
onChange: value => setAttributes({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"names":["CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","image","_embedded","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","instanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","select","getEntityRecords","getUsers","coreStore","settings","blockEditorStore","getSettings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","width","height","createWarningNotice","removeNotice","noticeStore","noticeId","showRedirectionPreventedNotice","event","preventDefault","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","hasPosts","inspectorControls","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","newAttrs","hasOwnProperty","undefined","Number","MAX_POSTS_COLUMNS","Math","min","blockProps","className","pin","Array","isArray","displayPosts","slice","layoutControls","icon","list","title","onClick","isActive","grid","dateFormat","formats","date","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","createElement","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","a","link","__html","date_gmt","content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pin, list, grid } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tlatestPosts,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'wp:featuredmedia',\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tlabel={ __( 'Show:' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\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\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\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<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign: value,\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\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\taddLinkToFeaturedImage: value,\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\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<div>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = classnames( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t/* translators: excerpt truncation character, default … */\n\t\t\t\t\t\t\t\t__( ' … <a>Read more</a>' ),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\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) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: current author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\n\t\t\t\t\t\t\t\t\t\t} }\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/latest-posts/edit.js"],"names":["CATEGORIES_LIST_QUERY","per_page","context","USERS_LIST_QUERY","has_published_posts","getFeaturedImageDetails","post","size","image","_embedded","url","media_details","sizes","source_url","alt","alt_text","LatestPostsEdit","attributes","setAttributes","instanceId","postsToShow","order","orderBy","categories","selectedAuthor","displayFeaturedImage","displayPostContentRadio","displayPostContent","displayPostDate","displayAuthor","postLayout","columns","excerptLength","featuredImageAlign","featuredImageSizeSlug","featuredImageSizeWidth","featuredImageSizeHeight","addLinkToFeaturedImage","imageSizes","latestPosts","defaultImageWidth","defaultImageHeight","categoriesList","authorList","select","getEntityRecords","getUsers","coreStore","settings","blockEditorStore","getSettings","catIds","length","map","cat","id","latestPostsQuery","Object","fromEntries","entries","author","orderby","_embed","filter","value","imageDimensions","width","height","createWarningNotice","removeNotice","noticeStore","noticeId","showRedirectionPreventedNotice","event","preventDefault","type","imageSizeOptions","slug","name","label","categorySuggestions","reduce","accumulator","category","selectCategories","tokens","hasNoSuggestion","some","token","allCategories","includes","hasPosts","inspectorControls","MIN_EXCERPT_LENGTH","MAX_EXCERPT_LENGTH","newAttrs","hasOwnProperty","undefined","Number","MAX_POSTS_COLUMNS","Math","min","blockProps","className","pin","Array","isArray","displayPosts","slice","layoutControls","icon","list","title","onClick","isActive","grid","dateFormat","formats","date","titleTrimmed","rendered","trim","excerpt","currentAuthor","find","excerptElement","document","createElement","innerHTML","textContent","innerText","imageSourceUrl","featuredImageAlt","imageClasses","renderFeaturedImage","featuredImage","maxWidth","maxHeight","needsReadMore","split","raw","postExcerpt","join","a","link","__html","date_gmt","content"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tPlaceholder,\n\tQueryControls,\n\tRadioControl,\n\tRangeControl,\n\tSpinner,\n\tToggleControl,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { dateI18n, format, getSettings } from '@wordpress/date';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pin, list, grid } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticeStore } from '@wordpress/notices';\nimport { useInstanceId } from '@wordpress/compose';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport {\n\tMIN_EXCERPT_LENGTH,\n\tMAX_EXCERPT_LENGTH,\n\tMAX_POSTS_COLUMNS,\n} from './constants';\n\n/**\n * Module Constants\n */\nconst CATEGORIES_LIST_QUERY = {\n\tper_page: -1,\n\tcontext: 'view',\n};\nconst USERS_LIST_QUERY = {\n\tper_page: -1,\n\thas_published_posts: [ 'post' ],\n\tcontext: 'view',\n};\n\nfunction getFeaturedImageDetails( post, size ) {\n\tconst image = post._embedded?.[ 'wp:featuredmedia' ]?.[ '0' ];\n\n\treturn {\n\t\turl:\n\t\t\timage?.media_details?.sizes?.[ size ]?.source_url ??\n\t\t\timage?.source_url,\n\t\talt: image?.alt_text,\n\t};\n}\n\nexport default function LatestPostsEdit( { attributes, setAttributes } ) {\n\tconst instanceId = useInstanceId( LatestPostsEdit );\n\tconst {\n\t\tpostsToShow,\n\t\torder,\n\t\torderBy,\n\t\tcategories,\n\t\tselectedAuthor,\n\t\tdisplayFeaturedImage,\n\t\tdisplayPostContentRadio,\n\t\tdisplayPostContent,\n\t\tdisplayPostDate,\n\t\tdisplayAuthor,\n\t\tpostLayout,\n\t\tcolumns,\n\t\texcerptLength,\n\t\tfeaturedImageAlign,\n\t\tfeaturedImageSizeSlug,\n\t\tfeaturedImageSizeWidth,\n\t\tfeaturedImageSizeHeight,\n\t\taddLinkToFeaturedImage,\n\t} = attributes;\n\tconst {\n\t\timageSizes,\n\t\tlatestPosts,\n\t\tdefaultImageWidth,\n\t\tdefaultImageHeight,\n\t\tcategoriesList,\n\t\tauthorList,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords, getUsers } = select( coreStore );\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\tconst catIds =\n\t\t\t\tcategories && categories.length > 0\n\t\t\t\t\t? categories.map( ( cat ) => cat.id )\n\t\t\t\t\t: [];\n\t\t\tconst latestPostsQuery = Object.fromEntries(\n\t\t\t\tObject.entries( {\n\t\t\t\t\tcategories: catIds,\n\t\t\t\t\tauthor: selectedAuthor,\n\t\t\t\t\torder,\n\t\t\t\t\torderby: orderBy,\n\t\t\t\t\tper_page: postsToShow,\n\t\t\t\t\t_embed: 'wp:featuredmedia',\n\t\t\t\t} ).filter( ( [ , value ] ) => typeof value !== 'undefined' )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tdefaultImageWidth:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.width ?? 0,\n\t\t\t\tdefaultImageHeight:\n\t\t\t\t\tsettings.imageDimensions?.[ featuredImageSizeSlug ]\n\t\t\t\t\t\t?.height ?? 0,\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tlatestPosts: getEntityRecords(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'post',\n\t\t\t\t\tlatestPostsQuery\n\t\t\t\t),\n\t\t\t\tcategoriesList: getEntityRecords(\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\t'category',\n\t\t\t\t\tCATEGORIES_LIST_QUERY\n\t\t\t\t),\n\t\t\t\tauthorList: getUsers( USERS_LIST_QUERY ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tfeaturedImageSizeSlug,\n\t\t\tpostsToShow,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tcategories,\n\t\t\tselectedAuthor,\n\t\t]\n\t);\n\n\t// If a user clicks to a link prevent redirection and show a warning.\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticeStore );\n\tlet noticeId;\n\tconst showRedirectionPreventedNotice = ( event ) => {\n\t\tevent.preventDefault();\n\t\t// Remove previous warning if any, to show one at a time per block.\n\t\tremoveNotice( noticeId );\n\t\tnoticeId = `block-library/core/latest-posts/redirection-prevented/${ instanceId }`;\n\t\tcreateWarningNotice( __( 'Links are disabled in the editor.' ), {\n\t\t\tid: noticeId,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t};\n\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) => slug !== 'full' )\n\t\t.map( ( { name, slug } ) => ( {\n\t\t\tvalue: slug,\n\t\t\tlabel: name,\n\t\t} ) );\n\tconst categorySuggestions =\n\t\tcategoriesList?.reduce(\n\t\t\t( accumulator, category ) => ( {\n\t\t\t\t...accumulator,\n\t\t\t\t[ category.name ]: category,\n\t\t\t} ),\n\t\t\t{}\n\t\t) ?? {};\n\tconst selectCategories = ( tokens ) => {\n\t\tconst hasNoSuggestion = tokens.some(\n\t\t\t( token ) =>\n\t\t\t\ttypeof token === 'string' && ! categorySuggestions[ token ]\n\t\t);\n\t\tif ( hasNoSuggestion ) {\n\t\t\treturn;\n\t\t}\n\t\t// Categories that are already will be objects, while new additions will be strings (the name).\n\t\t// allCategories nomalizes the array so that they are all objects.\n\t\tconst allCategories = tokens.map( ( token ) => {\n\t\t\treturn typeof token === 'string'\n\t\t\t\t? categorySuggestions[ token ]\n\t\t\t\t: token;\n\t\t} );\n\t\t// We do nothing if the category is not selected\n\t\t// from suggestions.\n\t\tif ( allCategories.includes( null ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tsetAttributes( { categories: allCategories } );\n\t};\n\n\tconst hasPosts = !! latestPosts?.length;\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Post content' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Post content' ) }\n\t\t\t\t\tchecked={ displayPostContent }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostContent: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayPostContent && (\n\t\t\t\t\t<RadioControl\n\t\t\t\t\t\tlabel={ __( 'Show:' ) }\n\t\t\t\t\t\tselected={ displayPostContentRadio }\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ label: __( 'Excerpt' ), value: 'excerpt' },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: __( 'Full post' ),\n\t\t\t\t\t\t\t\tvalue: 'full_post',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayPostContentRadio: value,\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\t\t{ displayPostContent &&\n\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tlabel={ __( 'Max number of words' ) }\n\t\t\t\t\t\t\tvalue={ excerptLength }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { excerptLength: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmin={ MIN_EXCERPT_LENGTH }\n\t\t\t\t\t\t\tmax={ MAX_EXCERPT_LENGTH }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Post meta' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display author name' ) }\n\t\t\t\t\tchecked={ displayAuthor }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayAuthor: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display post date' ) }\n\t\t\t\t\tchecked={ displayPostDate }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayPostDate: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Featured image' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Display featured image' ) }\n\t\t\t\t\tchecked={ displayFeaturedImage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { displayFeaturedImage: value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t{ displayFeaturedImage && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tconst newAttrs = {};\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'width' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeWidth =\n\t\t\t\t\t\t\t\t\t\tvalue.width;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif ( value.hasOwnProperty( 'height' ) ) {\n\t\t\t\t\t\t\t\t\tnewAttrs.featuredImageSizeHeight =\n\t\t\t\t\t\t\t\t\t\tvalue.height;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tsetAttributes( newAttrs );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tslug={ featuredImageSizeSlug }\n\t\t\t\t\t\t\twidth={ featuredImageSizeWidth }\n\t\t\t\t\t\t\theight={ featuredImageSizeHeight }\n\t\t\t\t\t\t\timageWidth={ defaultImageWidth }\n\t\t\t\t\t\t\timageHeight={ defaultImageHeight }\n\t\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\t\timageSizeHelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source image.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tonChangeImage={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeSlug: value,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeWidth: undefined,\n\t\t\t\t\t\t\t\t\tfeaturedImageSizeHeight: undefined,\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<BaseControl className=\"editor-latest-posts-image-alignment-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image alignment' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\t\t\tvalue={ featuredImageAlign }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tfeaturedImageAlign: value,\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\tcontrols={ [ 'left', 'center', 'right' ] }\n\t\t\t\t\t\t\t\tisCollapsed={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Add link to featured image' ) }\n\t\t\t\t\t\t\tchecked={ addLinkToFeaturedImage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\taddLinkToFeaturedImage: value,\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\t</PanelBody>\n\n\t\t\t<PanelBody title={ __( 'Sorting and filtering' ) }>\n\t\t\t\t<QueryControls\n\t\t\t\t\t{ ...{ order, orderBy } }\n\t\t\t\t\tnumberOfItems={ postsToShow }\n\t\t\t\t\tonOrderChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { order: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonOrderByChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { orderBy: value } )\n\t\t\t\t\t}\n\t\t\t\t\tonNumberOfItemsChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { postsToShow: value } )\n\t\t\t\t\t}\n\t\t\t\t\tcategorySuggestions={ categorySuggestions }\n\t\t\t\t\tonCategoryChange={ selectCategories }\n\t\t\t\t\tselectedCategories={ categories }\n\t\t\t\t\tonAuthorChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tselectedAuthor:\n\t\t\t\t\t\t\t\t'' !== value ? Number( value ) : undefined,\n\t\t\t\t\t\t} )\n\t\t\t\t\t}\n\t\t\t\t\tauthorList={ authorList ?? [] }\n\t\t\t\t\tselectedAuthorId={ selectedAuthor }\n\t\t\t\t/>\n\n\t\t\t\t{ postLayout === 'grid' && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { columns: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\tmax={\n\t\t\t\t\t\t\t! hasPosts\n\t\t\t\t\t\t\t\t? MAX_POSTS_COLUMNS\n\t\t\t\t\t\t\t\t: Math.min(\n\t\t\t\t\t\t\t\t\t\tMAX_POSTS_COLUMNS,\n\t\t\t\t\t\t\t\t\t\tlatestPosts.length\n\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'wp-block-latest-posts__list': true,\n\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t'has-dates': displayPostDate,\n\t\t\t'has-author': displayAuthor,\n\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t} ),\n\t} );\n\n\tif ( ! hasPosts ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<Placeholder icon={ pin } label={ __( 'Latest Posts' ) }>\n\t\t\t\t\t{ ! Array.isArray( latestPosts ) ? (\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t__( 'No posts found.' )\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Removing posts from display should be instant.\n\tconst displayPosts =\n\t\tlatestPosts.length > postsToShow\n\t\t\t? latestPosts.slice( 0, postsToShow )\n\t\t\t: latestPosts;\n\n\tconst layoutControls = [\n\t\t{\n\t\t\ticon: list,\n\t\t\ttitle: __( 'List view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'list' } ),\n\t\t\tisActive: postLayout === 'list',\n\t\t},\n\t\t{\n\t\t\ticon: grid,\n\t\t\ttitle: __( 'Grid view' ),\n\t\t\tonClick: () => setAttributes( { postLayout: 'grid' } ),\n\t\t\tisActive: postLayout === 'grid',\n\t\t},\n\t];\n\n\tconst dateFormat = getSettings().formats.date;\n\n\treturn (\n\t\t<div>\n\t\t\t{ inspectorControls }\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup controls={ layoutControls } />\n\t\t\t</BlockControls>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ displayPosts.map( ( post ) => {\n\t\t\t\t\tconst titleTrimmed = post.title.rendered.trim();\n\t\t\t\t\tlet excerpt = post.excerpt.rendered;\n\t\t\t\t\tconst currentAuthor = authorList?.find(\n\t\t\t\t\t\t( author ) => author.id === post.author\n\t\t\t\t\t);\n\n\t\t\t\t\tconst excerptElement = document.createElement( 'div' );\n\t\t\t\t\texcerptElement.innerHTML = excerpt;\n\n\t\t\t\t\texcerpt =\n\t\t\t\t\t\texcerptElement.textContent ||\n\t\t\t\t\t\texcerptElement.innerText ||\n\t\t\t\t\t\t'';\n\n\t\t\t\t\tconst { url: imageSourceUrl, alt: featuredImageAlt } =\n\t\t\t\t\t\tgetFeaturedImageDetails( post, featuredImageSizeSlug );\n\t\t\t\t\tconst imageClasses = classnames( {\n\t\t\t\t\t\t'wp-block-latest-posts__featured-image': true,\n\t\t\t\t\t\t[ `align${ featuredImageAlign }` ]:\n\t\t\t\t\t\t\t!! featuredImageAlign,\n\t\t\t\t\t} );\n\t\t\t\t\tconst renderFeaturedImage =\n\t\t\t\t\t\tdisplayFeaturedImage && imageSourceUrl;\n\t\t\t\t\tconst featuredImage = renderFeaturedImage && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={ imageSourceUrl }\n\t\t\t\t\t\t\talt={ featuredImageAlt }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tmaxWidth: featuredImageSizeWidth,\n\t\t\t\t\t\t\t\tmaxHeight: featuredImageSizeHeight,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\n\t\t\t\t\tconst needsReadMore =\n\t\t\t\t\t\texcerptLength < excerpt.trim().split( ' ' ).length &&\n\t\t\t\t\t\tpost.excerpt.raw === '';\n\n\t\t\t\t\tconst postExcerpt = needsReadMore ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ excerpt\n\t\t\t\t\t\t\t\t.trim()\n\t\t\t\t\t\t\t\t.split( ' ', excerptLength )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\t/* translators: excerpt truncation character, default … */\n\t\t\t\t\t\t\t\t__( ' … <a>Read more</a>' ),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ta: (\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\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) : (\n\t\t\t\t\t\texcerpt\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ post.id }>\n\t\t\t\t\t\t\t{ renderFeaturedImage && (\n\t\t\t\t\t\t\t\t<div className={ imageClasses }>\n\t\t\t\t\t\t\t\t\t{ addLinkToFeaturedImage ? (\n\t\t\t\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-title\"\n\t\t\t\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\t\t\t\tonClick={\n\t\t\t\t\t\t\t\t\t\t\t\tshowRedirectionPreventedNotice\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ featuredImage }\n\t\t\t\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tfeaturedImage\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\thref={ post.link }\n\t\t\t\t\t\t\t\trel=\"noreferrer noopener\"\n\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={\n\t\t\t\t\t\t\t\t\t!! titleTrimmed\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t__html: titleTrimmed,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonClick={ showRedirectionPreventedNotice }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ! titleTrimmed ? __( '(no title)' ) : null }\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t\t{ displayAuthor && currentAuthor && (\n\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-author\">\n\t\t\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: byline. %s: current author. */\n\t\t\t\t\t\t\t\t\t\t__( 'by %s' ),\n\t\t\t\t\t\t\t\t\t\tcurrentAuthor.name\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt && (\n\t\t\t\t\t\t\t\t<time\n\t\t\t\t\t\t\t\t\tdateTime={ format( 'c', post.date_gmt ) }\n\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-date\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ dateI18n( dateFormat, post.date_gmt ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'excerpt' && (\n\t\t\t\t\t\t\t\t\t<div className=\"wp-block-latest-posts__post-excerpt\">\n\t\t\t\t\t\t\t\t\t\t{ postExcerpt }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ displayPostContent &&\n\t\t\t\t\t\t\t\tdisplayPostContentRadio === 'full_post' && (\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-latest-posts__post-full-content\"\n\t\t\t\t\t\t\t\t\t\tdangerouslySetInnerHTML={ {\n\t\t\t\t\t\t\t\t\t\t\t__html: post.content.raw.trim(),\n\t\t\t\t\t\t\t\t\t\t} }\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</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n}\n"]}
|
package/build/list/edit.js
CHANGED
|
@@ -183,10 +183,10 @@ function Edit({
|
|
|
183
183
|
type: type,
|
|
184
184
|
...innerBlocksProps
|
|
185
185
|
}), controls, ordered && (0, _element.createElement)(_orderedListSettings.default, {
|
|
186
|
-
setAttributes
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
setAttributes,
|
|
187
|
+
reversed,
|
|
188
|
+
start,
|
|
189
|
+
type
|
|
190
190
|
}));
|
|
191
191
|
}
|
|
192
192
|
//# sourceMappingURL=edit.js.map
|