@wordpress/block-library 6.0.10 → 6.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cover/edit.js +1 -0
- package/build/cover/edit.js.map +1 -1
- package/build/gallery/deprecated.js +314 -26
- package/build/gallery/deprecated.js.map +1 -1
- package/build/gallery/edit-wrapper.js +10 -27
- package/build/gallery/edit-wrapper.js.map +1 -1
- package/build/gallery/edit.js +10 -12
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/save.js +3 -3
- package/build/gallery/save.js.map +1 -1
- package/build/gallery/shared.js +24 -0
- package/build/gallery/shared.js.map +1 -1
- package/build/gallery/transforms.js +8 -22
- package/build/gallery/transforms.js.map +1 -1
- package/build/gallery/use-mobile-warning.js +1 -1
- package/build/gallery/use-mobile-warning.js.map +1 -1
- package/build/gallery/v1/edit.js +2 -21
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/image/image.js +30 -6
- package/build/image/image.js.map +1 -1
- package/build/navigation/deprecated.js +9 -7
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/index.js +12 -1
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +0 -4
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +7 -1
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/menu-items-to-blocks.js +4 -1
- package/build/navigation/menu-items-to-blocks.js.map +1 -1
- package/build/navigation/view.js +2 -2
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-submenu/edit.js +5 -1
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/post-comments/index.js +1 -1
- package/build/query-pagination/index.js +1 -1
- package/build/query-pagination-next/index.js +2 -2
- package/build/query-pagination-numbers/index.js +1 -1
- package/build/query-pagination-previous/index.js +2 -2
- package/build/separator/separator-settings.js +1 -0
- package/build/separator/separator-settings.js.map +1 -1
- package/build/social-links/edit.js +1 -0
- package/build/social-links/edit.js.map +1 -1
- package/build-module/cover/edit.js +1 -0
- package/build-module/cover/edit.js.map +1 -1
- package/build-module/gallery/deprecated.js +309 -27
- package/build-module/gallery/deprecated.js.map +1 -1
- package/build-module/gallery/edit-wrapper.js +7 -27
- package/build-module/gallery/edit-wrapper.js.map +1 -1
- package/build-module/gallery/edit.js +10 -12
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/save.js +2 -3
- package/build-module/gallery/save.js.map +1 -1
- package/build-module/gallery/shared.js +22 -0
- package/build-module/gallery/shared.js.map +1 -1
- package/build-module/gallery/transforms.js +9 -21
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/gallery/use-mobile-warning.js +1 -1
- package/build-module/gallery/use-mobile-warning.js.map +1 -1
- package/build-module/gallery/v1/edit.js +4 -22
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/image/image.js +31 -7
- package/build-module/image/image.js.map +1 -1
- package/build-module/navigation/deprecated.js +9 -7
- package/build-module/navigation/deprecated.js.map +1 -1
- package/build-module/navigation/edit/index.js +11 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +0 -4
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +6 -1
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/menu-items-to-blocks.js +3 -1
- package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
- package/build-module/navigation/view.js +2 -2
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +5 -1
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/post-comments/index.js +1 -1
- package/build-module/query-pagination/index.js +1 -1
- package/build-module/query-pagination-next/index.js +2 -2
- package/build-module/query-pagination-numbers/index.js +1 -1
- package/build-module/query-pagination-previous/index.js +2 -2
- package/build-module/separator/separator-settings.js +1 -0
- package/build-module/separator/separator-settings.js.map +1 -1
- package/build-module/social-links/edit.js +1 -0
- package/build-module/social-links/edit.js.map +1 -1
- package/build-style/columns/editor-rtl.css +1 -1
- package/build-style/columns/editor.css +1 -1
- package/build-style/editor-rtl.css +26 -1
- package/build-style/editor.css +26 -1
- package/build-style/image/editor-rtl.css +16 -0
- package/build-style/image/editor.css +16 -0
- package/build-style/navigation/editor-rtl.css +9 -0
- package/build-style/navigation/editor.css +9 -0
- package/build-style/navigation/style-rtl.css +5 -1
- package/build-style/navigation/style.css +5 -1
- package/build-style/post-comments/style-rtl.css +3 -1
- package/build-style/post-comments/style.css +3 -1
- package/build-style/post-comments-form/style-rtl.css +2 -2
- package/build-style/post-comments-form/style.css +2 -2
- package/build-style/style-rtl.css +10 -4
- package/build-style/style.css +10 -4
- package/package.json +8 -8
- package/src/columns/editor.scss +3 -2
- package/src/cover/edit.js +1 -0
- package/src/gallery/deprecated.js +831 -559
- package/src/gallery/edit-wrapper.js +7 -27
- package/src/gallery/edit.js +10 -12
- package/src/gallery/index.php +7 -8
- package/src/gallery/save.js +2 -1
- package/src/gallery/shared.js +24 -0
- package/src/gallery/transforms.js +9 -27
- package/src/gallery/use-mobile-warning.js +1 -1
- package/src/gallery/v1/edit.js +1 -28
- package/src/image/editor.scss +18 -0
- package/src/image/image.js +32 -8
- package/src/image/index.php +1 -1
- package/src/navigation/deprecated.js +10 -9
- package/src/navigation/edit/index.js +15 -6
- package/src/navigation/edit/inner-blocks.js +0 -5
- package/src/navigation/edit/navigation-menu-selector.js +8 -0
- package/src/navigation/editor.scss +12 -0
- package/src/navigation/index.php +149 -26
- package/src/navigation/menu-items-to-blocks.js +7 -1
- package/src/navigation/style.scss +5 -1
- package/src/navigation/view.js +2 -2
- package/src/navigation-submenu/edit.js +7 -1
- package/src/navigation-submenu/index.php +30 -45
- package/src/page-list/index.php +5 -9
- package/src/post-comments/block.json +5 -1
- package/src/post-comments/index.php +15 -0
- package/src/post-comments/style.scss +7 -3
- package/src/post-comments-form/style.scss +7 -5
- package/src/query-pagination/block.json +1 -1
- package/src/query-pagination-next/block.json +2 -2
- package/src/query-pagination-numbers/block.json +1 -1
- package/src/query-pagination-previous/block.json +2 -2
- package/src/separator/separator-settings.js +1 -0
- package/src/social-links/edit.js +1 -0
- package/src/template-part/index.php +36 -0
- package/build/gallery/v1/update-gallery-modal.js +0 -114
- package/build/gallery/v1/update-gallery-modal.js.map +0 -1
- package/build-module/gallery/v1/update-gallery-modal.js +0 -97
- package/build-module/gallery/v1/update-gallery-modal.js.map +0 -1
- package/src/gallery/v1/update-gallery-modal.js +0 -97
|
@@ -3,48 +3,28 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { compose } from '@wordpress/compose';
|
|
7
|
+
import { withNotices } from '@wordpress/components';
|
|
8
8
|
/**
|
|
9
9
|
* Internal dependencies
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import EditWithInnerBlocks from './edit';
|
|
13
13
|
import EditWithoutInnerBlocks from './v1/edit';
|
|
14
|
+
import { isGalleryV2Enabled } from './shared';
|
|
14
15
|
/*
|
|
15
16
|
* Using a wrapper around the logic to load the edit for v1 of Gallery block
|
|
16
17
|
* or the refactored version with InnerBlocks. This is to prevent conditional
|
|
17
18
|
* use of hooks lint errors if adding this logic to the top of the edit component.
|
|
18
19
|
*/
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const {
|
|
24
|
-
attributes,
|
|
25
|
-
clientId
|
|
26
|
-
} = props;
|
|
27
|
-
const innerBlockImages = useSelect(select => {
|
|
28
|
-
var _select$getBlock;
|
|
29
|
-
|
|
30
|
-
return (_select$getBlock = select(blockEditorStore).getBlock(clientId)) === null || _select$getBlock === void 0 ? void 0 : _select$getBlock.innerBlocks;
|
|
31
|
-
}, [clientId]);
|
|
32
|
-
|
|
33
|
-
const __unstableGalleryWithImageBlocks = useSelect(select => {
|
|
34
|
-
const settings = select(blockEditorStore).getSettings();
|
|
35
|
-
return settings.__unstableGalleryWithImageBlocks;
|
|
36
|
-
}, []); // This logic is used to infer version information from content with higher
|
|
37
|
-
// precedence than the flag. New galleries (and existing empty galleries) will
|
|
38
|
-
// honor the flag.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const hasNewVersionContent = !!(innerBlockImages !== null && innerBlockImages !== void 0 && innerBlockImages.length);
|
|
42
|
-
const hasOldVersionContent = 0 < (attributes === null || attributes === void 0 ? void 0 : (_attributes$ids = attributes.ids) === null || _attributes$ids === void 0 ? void 0 : _attributes$ids.length) || 0 < (attributes === null || attributes === void 0 ? void 0 : (_attributes$images = attributes.images) === null || _attributes$images === void 0 ? void 0 : _attributes$images.length);
|
|
43
|
-
|
|
44
|
-
if (hasOldVersionContent || !hasNewVersionContent && !__unstableGalleryWithImageBlocks) {
|
|
21
|
+
function GalleryEditWrapper(props) {
|
|
22
|
+
if (!isGalleryV2Enabled()) {
|
|
45
23
|
return createElement(EditWithoutInnerBlocks, props);
|
|
46
24
|
}
|
|
47
25
|
|
|
48
26
|
return createElement(EditWithInnerBlocks, props);
|
|
49
27
|
}
|
|
28
|
+
|
|
29
|
+
export default compose([withNotices])(GalleryEditWrapper);
|
|
50
30
|
//# sourceMappingURL=edit-wrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit-wrapper.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit-wrapper.js"],"names":["compose","withNotices","EditWithInnerBlocks","EditWithoutInnerBlocks","isGalleryV2Enabled","GalleryEditWrapper","props"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,OAAT,QAAwB,oBAAxB;AACA,SAASC,WAAT,QAA4B,uBAA5B;AAEA;AACA;AACA;;AACA,OAAOC,mBAAP,MAAgC,QAAhC;AACA,OAAOC,sBAAP,MAAmC,WAAnC;AACA,SAASC,kBAAT,QAAmC,UAAnC;AAEA;AACA;AACA;AACA;AACA;;AACA,SAASC,kBAAT,CAA6BC,KAA7B,EAAqC;AACpC,MAAK,CAAEF,kBAAkB,EAAzB,EAA8B;AAC7B,WAAO,cAAC,sBAAD,EAA6BE,KAA7B,CAAP;AACA;;AAED,SAAO,cAAC,mBAAD,EAA0BA,KAA1B,CAAP;AACA;;AAED,eAAeN,OAAO,CAAE,CAAEC,WAAF,CAAF,CAAP,CAA4BI,kBAA5B,CAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withNotices } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport EditWithInnerBlocks from './edit';\nimport EditWithoutInnerBlocks from './v1/edit';\nimport { isGalleryV2Enabled } from './shared';\n\n/*\n * Using a wrapper around the logic to load the edit for v1 of Gallery block\n * or the refactored version with InnerBlocks. This is to prevent conditional\n * use of hooks lint errors if adding this logic to the top of the edit component.\n */\nfunction GalleryEditWrapper( props ) {\n\tif ( ! isGalleryV2Enabled() ) {\n\t\treturn <EditWithoutInnerBlocks { ...props } />;\n\t}\n\n\treturn <EditWithInnerBlocks { ...props } />;\n}\n\nexport default compose( [ withNotices ] )( GalleryEditWrapper );\n"]}
|
|
@@ -116,7 +116,7 @@ function GalleryEdit(props) {
|
|
|
116
116
|
useMobileWarning(newImages);
|
|
117
117
|
useEffect(() => {
|
|
118
118
|
newImages === null || newImages === void 0 ? void 0 : newImages.forEach(newImage => {
|
|
119
|
-
updateBlockAttributes(newImage.clientId, { ...buildImageAttributes(
|
|
119
|
+
updateBlockAttributes(newImage.clientId, { ...buildImageAttributes(newImage.attributes),
|
|
120
120
|
id: newImage.id,
|
|
121
121
|
align: undefined
|
|
122
122
|
});
|
|
@@ -143,25 +143,23 @@ function GalleryEdit(props) {
|
|
|
143
143
|
* it already existed in the gallery. If the image is in fact new, we need
|
|
144
144
|
* to apply the gallery's current settings to the image.
|
|
145
145
|
*
|
|
146
|
-
* @param {Object}
|
|
147
|
-
* @
|
|
148
|
-
* @return {Object} Attributes to set on the new image block.
|
|
146
|
+
* @param {Object} imageAttributes Media object for the actual image.
|
|
147
|
+
* @return {Object} Attributes to set on the new image block.
|
|
149
148
|
*/
|
|
150
149
|
|
|
151
|
-
function buildImageAttributes(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
|
|
150
|
+
function buildImageAttributes(imageAttributes) {
|
|
151
|
+
const image = imageAttributes.id ? find(imageData, {
|
|
152
|
+
id: imageAttributes.id
|
|
153
|
+
}) : null;
|
|
156
154
|
let newClassName;
|
|
157
155
|
|
|
158
|
-
if (
|
|
159
|
-
newClassName =
|
|
156
|
+
if (imageAttributes.className && imageAttributes.className !== '') {
|
|
157
|
+
newClassName = imageAttributes.className;
|
|
160
158
|
} else {
|
|
161
159
|
newClassName = preferredStyle ? `is-style-${preferredStyle}` : undefined;
|
|
162
160
|
}
|
|
163
161
|
|
|
164
|
-
return { ...pickRelevantMediaFiles(
|
|
162
|
+
return { ...pickRelevantMediaFiles(imageAttributes, sizeSlug),
|
|
165
163
|
...getHrefAndDestination(image, linkTo),
|
|
166
164
|
...getUpdatedLinkTargetSettings(linkTarget, attributes),
|
|
167
165
|
className: newClassName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","concat","find","compose","BaseControl","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useShortCodeTransform","useGetNewImages","useGetMedia","useMobileWarning","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","noticeOperations","isSelected","noticeUI","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","shortCodeTransforms","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","createSuccessNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","shortCodeImages","updateImages","imageSizeOptions","existingBlock","image","newClassName","isValidFileType","file","some","mediaType","indexOf","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","removeAllNotices","createErrorNotice","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","caption","alt","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","newLinkTarget","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","length","hasImageIds","imagesUploading","mediaPlaceholder","title","instructions","blockProps","hasLinkTo","Math","min","isWeb","isNarrow"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,MAAT,EAAiBC,IAAjB,QAA6B,QAA7B;AAEA;AACA;AACA;;AACA,SAASC,OAAT,QAAwB,oBAAxB;AACA,SACCC,WADD,EAECC,SAFD,EAGCC,aAHD,EAICC,aAJD,EAKCC,WALD,EAMCC,YAND,EAOCC,OAPD,QAQO,uBARP;AASA,SACCC,KAAK,IAAIC,gBADV,EAECC,gBAFD,EAGCC,iBAHD,EAICC,aAJD,QAKO,yBALP;AAMA,SAASC,QAAT,EAAmBC,SAAnB,EAA8BC,OAA9B,QAA6C,oBAA7C;AACA,SAASC,EAAT,EAAaC,EAAb,EAAiBC,OAAjB,QAAgC,iBAAhC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,iBAAT,QAAkC,qBAAlC;AACA,SAASC,IAAT,QAAqB,uBAArB;AACA,SAASC,WAAT,QAA4B,mBAA5B;AACA,SAASC,aAAT,QAA8B,iBAA9B;AACA,SAAShB,KAAK,IAAIiB,YAAlB,QAAsC,oBAAtC;AAEA;AACA;AACA;;AACA,SAASC,UAAT,QAA2B,eAA3B;AACA,SAASC,oBAAT,EAA+BC,sBAA/B,QAA6D,UAA7D;AACA,SAASC,qBAAT,QAAsC,SAAtC;AACA,SACCC,4BADD,EAECC,sBAFD,QAGO,gBAHP;AAIA,OAAOC,OAAP,MAAoB,WAApB;AACA,SACCC,2BADD,EAECC,sBAFD,EAGCC,qBAHD,QAIO,aAJP;AAKA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,OAAOC,eAAP,MAA4B,sBAA5B;AACA,OAAOC,WAAP,MAAwB,iBAAxB;AAEA;AACA;AACA;;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AAEA,MAAMC,WAAW,GAAG,CAApB;AACA,MAAMC,WAAW,GAAG,CACnB;AAAEC,EAAAA,KAAK,EAAEV,2BAAT;AAAsCW,EAAAA,KAAK,EAAE5B,EAAE,CAAE,iBAAF;AAA/C,CADmB,EAEnB;AAAE2B,EAAAA,KAAK,EAAET,sBAAT;AAAiCU,EAAAA,KAAK,EAAE5B,EAAE,CAAE,YAAF;AAA1C,CAFmB,EAGnB;AACC2B,EAAAA,KAAK,EAAER,qBADR;AAECS,EAAAA,KAAK,EAAE3B,EAAE,CAAE,MAAF,EAAU,wBAAV;AAFV,CAHmB,CAApB;AAQA,MAAM4B,mBAAmB,GAAG,CAAE,OAAF,CAA5B;AAEA,MAAMC,gBAAgB,GAAGjC,QAAQ,CAACkC,QAAT,GACtB/B,EAAE,CAAE,WAAF,CADoB,GAEtBA,EAAE,CAAE,iEAAF,CAFL;AAIA,MAAMgC,kCAAkC,GAAGnC,QAAQ,CAACkC,QAAT,GACxC;AAAEE,EAAAA,IAAI,EAAE;AAAR,CADwC,GAExC,EAFH;;AAIA,SAASC,WAAT,CAAsBC,KAAtB,EAA8B;AAC7B,QAAM;AACLC,IAAAA,aADK;AAELC,IAAAA,UAFK;AAGLC,IAAAA,SAHK;AAILC,IAAAA,QAJK;AAKLC,IAAAA,gBALK;AAMLC,IAAAA,UANK;AAOLC,IAAAA,QAPK;AAQLC,IAAAA;AARK,MASFR,KATJ;AAWA,QAAM;AACLS,IAAAA,OADK;AAELC,IAAAA,SAFK;AAGLC,IAAAA,UAHK;AAILC,IAAAA,MAJK;AAKLC,IAAAA,mBALK;AAMLC,IAAAA;AANK,MAOFZ,UAPJ;AASA,QAAM;AACLa,IAAAA,uCADK;AAELC,IAAAA,kBAFK;AAGLC,IAAAA;AAHK,MAIFhD,WAAW,CAAEX,gBAAF,CAJf;AAKA,QAAM;AAAE4D,IAAAA;AAAF,MAA0BjD,WAAW,CAAEK,YAAF,CAA3C;AAEA,QAAM;AAAE6C,IAAAA,QAAF;AAAYC,IAAAA,WAAZ;AAAyBC,IAAAA;AAAzB,MAA4CrD,SAAS,CAAIsD,MAAF,IAAc;AAAA;;AAC1E,UAAMC,QAAQ,GAAGD,MAAM,CAAEhE,gBAAF,CAAN,CAA2B8D,WAA3B,EAAjB;AACA,UAAMI,wBAAwB,GAC7BD,QAAQ,CAACE,sCADV;AAEA,WAAO;AACNN,MAAAA,QAAQ,EAAEG,MAAM,CAAEhE,gBAAF,CAAN,CAA2B6D,QAD/B;AAENC,MAAAA,WAAW,EAAEE,MAAM,CAAEhE,gBAAF,CAAN,CAA2B8D,WAFlC;AAGNC,MAAAA,cAAc,EAAEG,wBAAF,aAAEA,wBAAF,gDAAEA,wBAAwB,CAAEhC,KAA5B,0DAAE,sBAAmC,YAAnC;AAHV,KAAP;AAKA,GAT0D,EASxD,EATwD,CAA3D;AAWA,QAAMkC,gBAAgB,GAAG1D,SAAS,CAC/BsD,MAAF,IAAc;AAAA;;AACb,+BAAOA,MAAM,CAAEhE,gBAAF,CAAN,CAA2B6D,QAA3B,CAAqCf,QAArC,CAAP,qDAAO,iBAAiDuB,WAAxD;AACA,GAHgC,EAIjC,CAAEvB,QAAF,CAJiC,CAAlC;AAOA,QAAMwB,MAAM,GAAGhE,OAAO,CACrB,MACC8D,gBADD,aACCA,gBADD,uBACCA,gBAAgB,CAAEG,GAAlB,CAAyBC,KAAF,KAAe;AACrC1B,IAAAA,QAAQ,EAAE0B,KAAK,CAAC1B,QADqB;AAErC2B,IAAAA,EAAE,EAAED,KAAK,CAAC5B,UAAN,CAAiB6B,EAFgB;AAGrCC,IAAAA,GAAG,EAAEF,KAAK,CAAC5B,UAAN,CAAiB8B,GAHe;AAIrC9B,IAAAA,UAAU,EAAE4B,KAAK,CAAC5B,UAJmB;AAKrC+B,IAAAA,gBAAgB,EAAEC,OAAO,CAAEJ,KAAK,CAACK,eAAR;AALY,GAAf,CAAvB,CAFoB,EASrB,CAAET,gBAAF,CATqB,CAAtB;AAYA,QAAMU,SAAS,GAAGhD,WAAW,CAAEsC,gBAAF,CAA7B;AAEA,QAAMW,SAAS,GAAGlD,eAAe,CAAEyC,MAAF,EAAUQ,SAAV,CAAjC;AAEA/C,EAAAA,gBAAgB,CAAEgD,SAAF,CAAhB;AAEA1E,EAAAA,SAAS,CAAE,MAAM;AAChB0E,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEC,OAAX,CAAsBC,QAAF,IAAgB;AACnCtB,MAAAA,qBAAqB,CAAEsB,QAAQ,CAACnC,QAAX,EAAqB,EACzC,GAAGoC,oBAAoB,CAAE,KAAF,EAASD,QAAQ,CAACrC,UAAlB,CADkB;AAEzC6B,QAAAA,EAAE,EAAEQ,QAAQ,CAACR,EAF4B;AAGzCU,QAAAA,KAAK,EAAEC;AAHkC,OAArB,CAArB;AAKA,KAND;AAOA,GARQ,EAQN,CAAEL,SAAF,CARM,CAAT;AAUA,QAAMM,eAAe,GAAGzD,qBAAqB,CAAE2B,mBAAF,CAA7C;AAEAlD,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAEkD,mBAAF,IAAyB,CAAE8B,eAAhC,EAAkD;AACjD;AACA;;AACDC,IAAAA,YAAY,CAAED,eAAF,CAAZ;AACA1C,IAAAA,aAAa,CAAE;AAAEY,MAAAA,mBAAmB,EAAE6B;AAAvB,KAAF,CAAb;AACA,GANQ,EAMN,CAAE7B,mBAAF,EAAuB8B,eAAvB,CANM,CAAT;AAQA,QAAME,gBAAgB,GAAG5D,aAAa,CACrCmD,SADqC,EAErC9B,UAFqC,EAGrCc,WAHqC,CAAtC;AAMA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACC,WAASoB,oBAAT,CAA+BM,aAA/B,EAA8CC,KAA9C,EAAsD;AACrD,QAAKD,aAAL,EAAqB;AACpB,aAAOA,aAAa,CAAC5C,UAArB;AACA;;AAED,QAAI8C,YAAJ;;AACA,QAAKD,KAAK,CAAC5C,SAAN,IAAmB4C,KAAK,CAAC5C,SAAN,KAAoB,EAA5C,EAAiD;AAChD6C,MAAAA,YAAY,GAAGD,KAAK,CAAC5C,SAArB;AACA,KAFD,MAEO;AACN6C,MAAAA,YAAY,GAAG3B,cAAc,GACzB,YAAYA,cAAgB,EADH,GAE1BqB,SAFH;AAGA;;AAED,WAAO,EACN,GAAGjE,sBAAsB,CAAEsE,KAAF,EAASjC,QAAT,CADnB;AAEN,SAAGpC,qBAAqB,CAAEqE,KAAF,EAASnC,MAAT,CAFlB;AAGN,SAAGjC,4BAA4B,CAAEgC,UAAF,EAAcT,UAAd,CAHzB;AAINC,MAAAA,SAAS,EAAE6C,YAJL;AAKNlC,MAAAA;AALM,KAAP;AAOA;;AAED,WAASmC,eAAT,CAA0BC,IAA1B,EAAiC;AAAA;;AAChC,WACCxD,mBAAmB,CAACyD,IAApB,CACGC,SAAF;AAAA;;AAAA,aAAiB,eAAAF,IAAI,CAACpD,IAAL,0DAAWuD,OAAX,CAAoBD,SAApB,OAAoC,CAArD;AAAA,KADD,KAEK,cAAAF,IAAI,CAAClB,GAAL,wDAAUqB,OAAV,CAAmB,OAAnB,OAAiC,CAHvC;AAKA;;AAED,WAAST,YAAT,CAAuBU,cAAvB,EAAwC;AACvC,UAAMC,cAAc,GACnBC,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAAgCL,cAAhC,MACA,mBAFD;AAIA,UAAMM,UAAU,GAAGL,cAAc,GAC9BM,KAAK,CAACC,IAAN,CAAYR,cAAZ,EAA6BzB,GAA7B,CAAoCqB,IAAF,IAAY;AAC9C,UAAK,CAAEA,IAAI,CAAClB,GAAZ,EAAkB;AACjB,eAAOvD,sBAAsB,CAAE;AAC9BuD,UAAAA,GAAG,EAAE3D,aAAa,CAAE6E,IAAF;AADY,SAAF,CAA7B;AAGA;;AAED,aAAOA,IAAP;AACC,KARD,CAD8B,GAU9BI,cAVH;;AAYA,QAAK,CAAEM,UAAU,CAACG,KAAX,CAAkBd,eAAlB,CAAP,EAA6C;AAC5C5C,MAAAA,gBAAgB,CAAC2D,gBAAjB;AACA3D,MAAAA,gBAAgB,CAAC4D,iBAAjB,CACCpG,EAAE,CACD,8DADC,CADH,EAIC;AAAEkE,QAAAA,EAAE,EAAE;AAAN,OAJD;AAMA;;AAED,UAAMmC,eAAe,GAAGN,UAAU,CAChCO,MADsB,CACZjB,IAAF,IAAYA,IAAI,CAAClB,GAAL,IAAYiB,eAAe,CAAEC,IAAF,CADzB,EAEtBrB,GAFsB,CAEfqB,IAAF,IAAY;AACjB,UAAK,CAAEA,IAAI,CAAClB,GAAZ,EAAkB;AACjB,eAAOvD,sBAAsB,CAAE;AAC9BuD,UAAAA,GAAG,EAAE3D,aAAa,CAAE6E,IAAF;AADY,SAAF,CAA7B;AAGA;;AAED,aAAOA,IAAP;AACA,KAVsB,CAAxB,CA3BuC,CAuCvC;AACA;AACA;;AACA,UAAMkB,WAAW,GAAGF,eAAe,CAACG,MAAhB,CACnB,CAAEC,MAAF,EAAUvB,KAAV,EAAiBwB,KAAjB,MACGD,MAAM,CAAEvB,KAAK,CAAChB,EAAR,CAAN,GAAqBwC,KAAvB,EAAgCD,MADjC,CADmB,EAInB,EAJmB,CAApB;AAOA,UAAME,mBAAmB,GAAG,CAAEjB,cAAF,GACzB7B,gBAAgB,CAACyC,MAAjB,CAA2BrC,KAAF,IACzBoC,eAAe,CAACtH,IAAhB,CACG6H,GAAF,IAAWA,GAAG,CAAC1C,EAAJ,KAAWD,KAAK,CAAC5B,UAAN,CAAiB6B,EADxC,CADA,CADyB,GAMzBL,gBANH;AAQA,UAAMgD,YAAY,GAAGR,eAAe,CAACC,MAAhB,CAClBM,GAAF,IACC,CAAED,mBAAmB,CAAC5H,IAApB,CACC+H,WAAF,IAAmBF,GAAG,CAAC1C,EAAJ,KAAW4C,WAAW,CAACzE,UAAZ,CAAuB6B,EADpD,CAFiB,CAArB;AAOA,UAAM6C,SAAS,GAAGF,YAAY,CAAC7C,GAAb,CAAoBkB,KAAF,IAAa;AAChD,aAAO3E,WAAW,CAAE,YAAF,EAAgB;AACjC2D,QAAAA,EAAE,EAAEgB,KAAK,CAAChB,EADuB;AAEjCC,QAAAA,GAAG,EAAEe,KAAK,CAACf,GAFsB;AAGjC6C,QAAAA,OAAO,EAAE9B,KAAK,CAAC8B,OAHkB;AAIjCC,QAAAA,GAAG,EAAE/B,KAAK,CAAC+B;AAJsB,OAAhB,CAAlB;AAMA,KAPiB,CAAlB;AASA9D,IAAAA,kBAAkB,CACjBZ,QADiB,EAEjBzD,MAAM,CAAE6H,mBAAF,EAAuBI,SAAvB,CAAN,CAAyCG,IAAzC,CACC,CAAEC,CAAF,EAAKC,CAAL,KACCb,WAAW,CAAEY,CAAC,CAAC9E,UAAF,CAAa6B,EAAf,CAAX,GACAqC,WAAW,CAAEa,CAAC,CAAC/E,UAAF,CAAa6B,EAAf,CAHb,CAFiB,CAAlB;AAQA;;AAED,WAASmD,aAAT,CAAwBC,OAAxB,EAAkC;AACjC9E,IAAAA,gBAAgB,CAAC2D,gBAAjB;AACA3D,IAAAA,gBAAgB,CAAC4D,iBAAjB,CAAoCkB,OAApC;AACA;;AAED,WAASC,SAAT,CAAoB5F,KAApB,EAA4B;AAC3BS,IAAAA,aAAa,CAAE;AAAEW,MAAAA,MAAM,EAAEpB;AAAV,KAAF,CAAb;AACA,UAAM6F,iBAAiB,GAAG,EAA1B;AACA,UAAMC,MAAM,GAAG,EAAf;AACAnE,IAAAA,QAAQ,CAAEf,QAAF,CAAR,CAAqBuB,WAArB,CAAiCW,OAAjC,CAA4CR,KAAF,IAAa;AACtDwD,MAAAA,MAAM,CAACC,IAAP,CAAazD,KAAK,CAAC1B,QAAnB;AACA,YAAM2C,KAAK,GAAGjB,KAAK,CAAC5B,UAAN,CAAiB6B,EAAjB,GACXnF,IAAI,CAAEwF,SAAF,EAAa;AAAEL,QAAAA,EAAE,EAAED,KAAK,CAAC5B,UAAN,CAAiB6B;AAAvB,OAAb,CADO,GAEX,IAFH;AAGAsD,MAAAA,iBAAiB,CAAEvD,KAAK,CAAC1B,QAAR,CAAjB,GAAsC1B,qBAAqB,CAC1DqE,KAD0D,EAE1DvD,KAF0D,CAA3D;AAIA,KATD;AAUAyB,IAAAA,qBAAqB,CAAEqE,MAAF,EAAUD,iBAAV,EAA6B,IAA7B,CAArB;AACA,UAAMG,UAAU,GAAG,CAAE,GAAGjG,WAAL,EAAmB3C,IAAnB,CAChB6I,QAAF,IAAgBA,QAAQ,CAACjG,KAAT,KAAmBA,KADjB,CAAnB;AAIA0B,IAAAA,mBAAmB,CAClBnD,OAAO;AACN;AACAF,IAAAA,EAAE,CAAE,wCAAF,CAFI,EAGN2H,UAAU,CAAC/F,KAHL,CADW,EAMlB;AACCsC,MAAAA,EAAE,EAAE,2BADL;AAECjC,MAAAA,IAAI,EAAE;AAFP,KANkB,CAAnB;AAWA;;AAED,WAAS4F,gBAAT,CAA2BlG,KAA3B,EAAmC;AAClCS,IAAAA,aAAa,CAAE;AAAEQ,MAAAA,OAAO,EAAEjB;AAAX,KAAF,CAAb;AACA;;AAED,WAASmG,eAAT,GAA2B;AAC1B1F,IAAAA,aAAa,CAAE;AAAES,MAAAA,SAAS,EAAE,CAAEA;AAAf,KAAF,CAAb;AACA;;AAED,WAASkF,gBAAT,CAA2BC,OAA3B,EAAqC;AACpC,WAAOA,OAAO,GACXhI,EAAE,CAAE,kCAAF,CADS,GAEXA,EAAE,CAAE,6BAAF,CAFL;AAGA;;AAED,WAASiI,kBAAT,CAA6BC,YAA7B,EAA4C;AAC3C,UAAMC,aAAa,GAAGD,YAAY,GAAG,QAAH,GAAcrD,SAAhD;AACAzC,IAAAA,aAAa,CAAE;AAAEU,MAAAA,UAAU,EAAEqF;AAAd,KAAF,CAAb;AACA,UAAMX,iBAAiB,GAAG,EAA1B;AACA,UAAMC,MAAM,GAAG,EAAf;AACAnE,IAAAA,QAAQ,CAAEf,QAAF,CAAR,CAAqBuB,WAArB,CAAiCW,OAAjC,CAA4CR,KAAF,IAAa;AACtDwD,MAAAA,MAAM,CAACC,IAAP,CAAazD,KAAK,CAAC1B,QAAnB;AACAiF,MAAAA,iBAAiB,CAAEvD,KAAK,CAAC1B,QAAR,CAAjB,GAAsCzB,4BAA4B,CACjEqH,aADiE,EAEjElE,KAAK,CAAC5B,UAF2D,CAAlE;AAIA,KAND;AAOAe,IAAAA,qBAAqB,CAAEqE,MAAF,EAAUD,iBAAV,EAA6B,IAA7B,CAArB;AACA,UAAMY,UAAU,GAAGF,YAAY,GAC5BlI,EAAE,CAAE,+CAAF,CAD0B,GAE5BA,EAAE,CAAE,mDAAF,CAFL;AAGAqD,IAAAA,mBAAmB,CAAE+E,UAAF,EAAc;AAChClE,MAAAA,EAAE,EAAE,iCAD4B;AAEhCjC,MAAAA,IAAI,EAAE;AAF0B,KAAd,CAAnB;AAIA;;AAED,WAASoG,gBAAT,CAA2BC,WAA3B,EAAyC;AACxClG,IAAAA,aAAa,CAAE;AAAEa,MAAAA,QAAQ,EAAEqF;AAAZ,KAAF,CAAb;AACA,UAAMd,iBAAiB,GAAG,EAA1B;AACA,UAAMC,MAAM,GAAG,EAAf;AACAnE,IAAAA,QAAQ,CAAEf,QAAF,CAAR,CAAqBuB,WAArB,CAAiCW,OAAjC,CAA4CR,KAAF,IAAa;AACtDwD,MAAAA,MAAM,CAACC,IAAP,CAAazD,KAAK,CAAC1B,QAAnB;AACA,YAAM2C,KAAK,GAAGjB,KAAK,CAAC5B,UAAN,CAAiB6B,EAAjB,GACXnF,IAAI,CAAEwF,SAAF,EAAa;AAAEL,QAAAA,EAAE,EAAED,KAAK,CAAC5B,UAAN,CAAiB6B;AAAvB,OAAb,CADO,GAEX,IAFH;AAGAsD,MAAAA,iBAAiB,CAAEvD,KAAK,CAAC1B,QAAR,CAAjB,GAAsCxB,sBAAsB,CAC3DmE,KAD2D,EAE3DoD,WAF2D,CAA5D;AAIA,KATD;AAUAlF,IAAAA,qBAAqB,CAAEqE,MAAF,EAAUD,iBAAV,EAA6B,IAA7B,CAArB;AACA,UAAMe,SAAS,GAAGvD,gBAAgB,CAACjG,IAAjB,CACfyJ,IAAF,IAAYA,IAAI,CAAC7G,KAAL,KAAe2G,WADV,CAAlB;AAIAjF,IAAAA,mBAAmB,CAClBnD,OAAO;AACN;AACAF,IAAAA,EAAE,CAAE,wCAAF,CAFI,EAGNuI,SAAS,CAAC3G,KAHJ,CADW,EAMlB;AACCsC,MAAAA,EAAE,EAAE,6BADL;AAECjC,MAAAA,IAAI,EAAE;AAFP,KANkB,CAAnB;AAWA;;AAEDnC,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA,QAAK,CAAEiD,MAAP,EAAgB;AAAA;;AACfG,MAAAA,uCAAuC;;AACvCd,MAAAA,aAAa,CAAE;AACdW,QAAAA,MAAM,EACL,YAAA0F,MAAM,UAAN,wDAAQC,EAAR,8EAAYC,KAAZ,+FAAmBC,IAAnB,0GAAyBlF,QAAzB,4GAAmCmF,YAAnC,kFAAiDC,IAAjD,KACA3H;AAHa,OAAF,CAAb;AAKA;AACD,GAVQ,EAUN,CAAE4B,MAAF,CAVM,CAAT;AAYA,QAAMgG,SAAS,GAAG,CAAC,CAAEhF,MAAM,CAACiF,MAA5B;AACA,QAAMC,WAAW,GAAGF,SAAS,IAAIhF,MAAM,CAACuB,IAAP,CAAeJ,KAAF,IAAa,CAAC,CAAEA,KAAK,CAAChB,EAAnC,CAAjC;AACA,QAAMgF,eAAe,GAAGnF,MAAM,CAACuB,IAAP,CACrBsB,GAAF;AAAA;;AAAA,WAAW,CAAEA,GAAG,CAAC1C,EAAN,IAAY,aAAA0C,GAAG,CAACzC,GAAJ,sDAASqB,OAAT,CAAkB,OAAlB,OAAgC,CAAvD;AAAA,GADuB,CAAxB;AAIA,QAAM2D,gBAAgB,GACrB,cAAC,gBAAD;AACC,IAAA,YAAY,EAAGF,WADhB;AAEC,IAAA,YAAY,EAAG,KAFhB;AAGC,IAAA,UAAU,EAAGF,SAHd;AAIC,IAAA,mBAAmB,EAChBA,SAAS,IAAI,CAAEtG,UAAjB,IAAiCyG,eALnC;AAOC,IAAA,IAAI,EAAG,CAAEH,SAAF,IAAerI,UAPvB;AAQC,IAAA,MAAM,EAAG;AACR0I,MAAAA,KAAK,EAAE,CAAEL,SAAF,IAAe/I,EAAE,CAAE,SAAF,CADhB;AAERqJ,MAAAA,YAAY,EAAE,CAAEN,SAAF,IAAejH;AAFrB,KARV;AAYC,IAAA,QAAQ,EAAGiD,YAZZ;AAaC,IAAA,MAAM,EAAC,SAbR;AAcC,IAAA,YAAY,EAAGlD,mBAdhB;AAeC,IAAA,QAAQ,MAfT;AAgBC,IAAA,KAAK,EAAGoH,WAAW,GAAGlF,MAAH,GAAY,EAhBhC;AAiBC,IAAA,OAAO,EAAGsD,aAjBX;AAkBC,IAAA,OAAO,EAAG0B,SAAS,GAAGlE,SAAH,GAAenC;AAlBnC,IADD;AAuBA,QAAM4G,UAAU,GAAG1J,aAAa,CAAE;AACjC0C,IAAAA,SAAS,EAAEzD,UAAU,CAAEyD,SAAF,EAAa,mBAAb;AADY,GAAF,CAAhC;;AAIA,MAAK,CAAEyG,SAAP,EAAmB;AAClB,WAAO,cAAC,IAAD,EAAWO,UAAX,EAA0BH,gBAA1B,CAAP;AACA;;AAED,QAAMI,SAAS,GAAGxG,MAAM,IAAIA,MAAM,KAAK,MAAvC;AAEA,SACC,8BACC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAG/C,EAAE,CAAE,kBAAF;AAArB,KACG+D,MAAM,CAACiF,MAAP,GAAgB,CAAhB,IACD,cAAC,YAAD;AACC,IAAA,KAAK,EAAGhJ,EAAE,CAAE,SAAF,CADX;AAEC,IAAA,KAAK,EACJ4C,OAAO,GACJA,OADI,GAEJjC,oBAAoB,CAAEoD,MAAM,CAACiF,MAAT,CALzB;AAOC,IAAA,QAAQ,EAAGnB,gBAPZ;AAQC,IAAA,GAAG,EAAG,CARP;AASC,IAAA,GAAG,EAAG2B,IAAI,CAACC,GAAL,CAAUhI,WAAV,EAAuBsC,MAAM,CAACiF,MAA9B;AATP,KAUMhH,kCAVN;AAWC,IAAA,QAAQ;AAXT,KAFF,EAgBC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGhC,EAAE,CAAE,aAAF,CADX;AAEC,IAAA,OAAO,EAAG,CAAC,CAAE6C,SAFd;AAGC,IAAA,QAAQ,EAAGiF,eAHZ;AAIC,IAAA,IAAI,EAAGC;AAJR,IAhBD,EAsBC,cAAC,aAAD;AACC,IAAA,KAAK,EAAG/H,EAAE,CAAE,SAAF,CADX;AAEC,IAAA,KAAK,EAAG+C,MAFT;AAGC,IAAA,QAAQ,EAAGwE,SAHZ;AAIC,IAAA,OAAO,EAAG7F,WAJX;AAKC,IAAA,gBAAgB,EAAG;AALpB,IAtBD,EA6BG6H,SAAS,IACV,cAAC,aAAD;AACC,IAAA,KAAK,EAAGvJ,EAAE,CAAE,iBAAF,CADX;AAEC,IAAA,OAAO,EAAG8C,UAAU,KAAK,QAF1B;AAGC,IAAA,QAAQ,EAAGmF;AAHZ,IA9BF,EAoCG,CAAAjD,gBAAgB,SAAhB,IAAAA,gBAAgB,WAAhB,YAAAA,gBAAgB,CAAEgE,MAAlB,IAA2B,CAA3B,IACD,cAAC,aAAD;AACC,IAAA,KAAK,EAAGhJ,EAAE,CAAE,YAAF,CADX;AAEC,IAAA,KAAK,EAAGiD,QAFT;AAGC,IAAA,OAAO,EAAG+B,gBAHX;AAIC,IAAA,QAAQ,EAAGqD,gBAJZ;AAKC,IAAA,gBAAgB,EAAG;AALpB,IArCF,EA6CGxI,QAAQ,CAAC6J,KAAT,IAAkB,CAAE1E,gBAApB,IAAwCiE,WAAxC,IACD,cAAC,WAAD;AAAa,IAAA,SAAS,EAAG;AAAzB,KACC,cAAC,WAAD,CAAa,WAAb,QACGjJ,EAAE,CAAE,YAAF,CADL,CADD,EAIC,cAAC,IAAD;AAAM,IAAA,SAAS,EAAG;AAAlB,KACC,cAAC,OAAD,OADD,EAEGA,EAAE,CAAE,kBAAF,CAFL,CAJD,CA9CF,CADD,CADD,EA4DG0C,QA5DH,EA6DC,cAAC,OAAD,eACMP,KADN;AAEC,IAAA,MAAM,EAAG4B,MAFV;AAGC,IAAA,gBAAgB,EAAGoF,gBAHpB;AAIC,IAAA,UAAU,EAAGG,UAJd;AAKC,IAAA,iBAAiB,EAAG3G;AALrB,KA7DD,CADD;AAuEA;;AACD,eAAe3D,OAAO,CAAE,CACvBK,WADuB,EAEvBgB,iBAAiB,CAAE;AAAEsJ,EAAAA,QAAQ,EAAE;AAAZ,CAAF,CAFM,CAAF,CAAP,CAGVzH,WAHU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { concat, find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } 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';\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 useShortCodeTransform from './use-short-code-transform';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\n\n/**\n * Internal dependencies\n */\nimport useMobileWarning from './use-mobile-warning';\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' ];\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\tnoticeOperations,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\tcolumns,\n\t\timageCrop,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tshortCodeTransforms,\n\t\tsizeSlug,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( 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\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\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\tuseMobileWarning( newImages );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( false, 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 shortCodeImages = useShortCodeTransform( shortCodeTransforms );\n\n\tuseEffect( () => {\n\t\tif ( ! shortCodeTransforms || ! shortCodeImages ) {\n\t\t\treturn;\n\t\t}\n\t\tupdateImages( shortCodeImages );\n\t\tsetAttributes( { shortCodeTransforms: undefined } );\n\t}, [ shortCodeTransforms, shortCodeImages ] );\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} existingBlock Existing Image block that still exists after gallery update.\n\t * @param {Object} image Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( existingBlock, image ) {\n\t\tif ( existingBlock ) {\n\t\t\treturn existingBlock.attributes;\n\t\t}\n\n\t\tlet newClassName;\n\t\tif ( image.className && image.className !== '' ) {\n\t\t\tnewClassName = image.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\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination( image, linkTo ),\n\t\t\t...getUpdatedLinkTargetSettings( linkTarget, attributes ),\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => file.type?.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\tnoticeOperations.removeAllNotices();\n\t\t\tnoticeOperations.createErrorNotice(\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' }\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\tconcat( existingImageBlocks, newBlocks ).sort(\n\t\t\t\t( a, b ) =>\n\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\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? find( imageData, { 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? find( imageData, { 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(\n\t\t( img ) => ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t);\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\thandleUpload={ false }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading\n\t\t\t}\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && 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\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\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={ __( 'Gallery 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\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/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\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\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/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\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\tlabel={ __( 'Image size' ) }\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/>\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{ __( 'Image size' ) }\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{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","concat","find","compose","BaseControl","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useShortCodeTransform","useGetNewImages","useGetMedia","useMobileWarning","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","noticeOperations","isSelected","noticeUI","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","shortCodeTransforms","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","createSuccessNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","shortCodeImages","updateImages","imageSizeOptions","imageAttributes","image","newClassName","isValidFileType","file","some","mediaType","indexOf","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","removeAllNotices","createErrorNotice","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","caption","alt","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","newLinkTarget","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","length","hasImageIds","imagesUploading","mediaPlaceholder","title","instructions","blockProps","hasLinkTo","Math","min","isWeb","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { concat, find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } 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';\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 useShortCodeTransform from './use-short-code-transform';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\n\n/**\n * Internal dependencies\n */\nimport useMobileWarning from './use-mobile-warning';\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' ];\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\tnoticeOperations,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\tcolumns,\n\t\timageCrop,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tshortCodeTransforms,\n\t\tsizeSlug,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( 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\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\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\tuseMobileWarning( newImages );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\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 shortCodeImages = useShortCodeTransform( shortCodeTransforms );\n\n\tuseEffect( () => {\n\t\tif ( ! shortCodeTransforms || ! shortCodeImages ) {\n\t\t\treturn;\n\t\t}\n\t\tupdateImages( shortCodeImages );\n\t\tsetAttributes( { shortCodeTransforms: undefined } );\n\t}, [ shortCodeTransforms, shortCodeImages ] );\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? find( imageData, { 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\t\treturn {\n\t\t\t...pickRelevantMediaFiles( imageAttributes, sizeSlug ),\n\t\t\t...getHrefAndDestination( image, linkTo ),\n\t\t\t...getUpdatedLinkTargetSettings( linkTarget, attributes ),\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => file.type?.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\tnoticeOperations.removeAllNotices();\n\t\t\tnoticeOperations.createErrorNotice(\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' }\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\tconcat( existingImageBlocks, newBlocks ).sort(\n\t\t\t\t( a, b ) =>\n\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\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? find( imageData, { 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? find( imageData, { 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(\n\t\t( img ) => ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t);\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\thandleUpload={ false }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading\n\t\t\t}\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && 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\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\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={ __( 'Gallery 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\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/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToggleControl\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\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/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\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\tlabel={ __( 'Image size' ) }\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/>\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{ __( 'Image size' ) }\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{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
@@ -14,14 +14,13 @@ import { RichText, useBlockProps, useInnerBlocksProps } from '@wordpress/block-e
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import saveWithoutInnerBlocks from './v1/save';
|
|
17
|
+
import { isGalleryV2Enabled } from './shared';
|
|
17
18
|
export default function saveWithInnerBlocks(_ref) {
|
|
18
|
-
var _attributes$ids, _attributes$images;
|
|
19
|
-
|
|
20
19
|
let {
|
|
21
20
|
attributes
|
|
22
21
|
} = _ref;
|
|
23
22
|
|
|
24
|
-
if ((
|
|
23
|
+
if (!isGalleryV2Enabled()) {
|
|
25
24
|
return saveWithoutInnerBlocks({
|
|
26
25
|
attributes
|
|
27
26
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/save.js"],"names":["classnames","RichText","useBlockProps","useInnerBlocksProps","saveWithoutInnerBlocks","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/save.js"],"names":["classnames","RichText","useBlockProps","useInnerBlocksProps","saveWithoutInnerBlocks","isGalleryV2Enabled","saveWithInnerBlocks","attributes","caption","columns","imageCrop","className","undefined","blockProps","save","innerBlocksProps","children","isEmpty"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SACCC,QADD,EAECC,aAFD,EAGCC,mBAHD,QAIO,yBAJP;AAMA;AACA;AACA;;AACA,OAAOC,sBAAP,MAAmC,WAAnC;AACA,SAASC,kBAAT,QAAmC,UAAnC;AAEA,eAAe,SAASC,mBAAT,OAA+C;AAAA,MAAjB;AAAEC,IAAAA;AAAF,GAAiB;;AAC7D,MAAK,CAAEF,kBAAkB,EAAzB,EAA8B;AAC7B,WAAOD,sBAAsB,CAAE;AAAEG,MAAAA;AAAF,KAAF,CAA7B;AACA;;AAED,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,OAAX;AAAoBC,IAAAA;AAApB,MAAkCH,UAAxC;AAEA,QAAMI,SAAS,GAAGX,UAAU,CAAE,mBAAF,EAAuB;AAClD,KAAG,WAAWS,OAAS,EAAvB,GAA4BA,OAAO,KAAKG,SADU;AAElD,KAAG,iBAAH,GAAuBH,OAAO,KAAKG,SAFe;AAGlD,kBAAcF;AAHoC,GAAvB,CAA5B;AAKA,QAAMG,UAAU,GAAGX,aAAa,CAACY,IAAd,CAAoB;AAAEH,IAAAA;AAAF,GAApB,CAAnB;AACA,QAAMI,gBAAgB,GAAGZ,mBAAmB,CAACW,IAApB,CAA0BD,UAA1B,CAAzB;AAEA,SACC,wBAAaE,gBAAb,EACGA,gBAAgB,CAACC,QADpB,EAEG,CAAEf,QAAQ,CAACgB,OAAT,CAAkBT,OAAlB,CAAF,IACD,cAAC,QAAD,CAAU,OAAV;AACC,IAAA,OAAO,EAAC,YADT;AAEC,IAAA,SAAS,EAAC,wBAFX;AAGC,IAAA,KAAK,EAAGA;AAHT,IAHF,CADD;AAYA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport saveWithoutInnerBlocks from './v1/save';\nimport { isGalleryV2Enabled } from './shared';\n\nexport default function saveWithInnerBlocks( { attributes } ) {\n\tif ( ! isGalleryV2Enabled() ) {\n\t\treturn saveWithoutInnerBlocks( { attributes } );\n\t}\n\n\tconst { caption, columns, imageCrop } = attributes;\n\n\tconst className = classnames( 'has-nested-images', {\n\t\t[ `columns-${ columns }` ]: columns !== undefined,\n\t\t[ `columns-default` ]: columns === undefined,\n\t\t'is-cropped': imageCrop,\n\t} );\n\tconst blockProps = useBlockProps.save( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps.save( blockProps );\n\n\treturn (\n\t\t<figure { ...innerBlocksProps }>\n\t\t\t{ innerBlocksProps.children }\n\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tclassName=\"blocks-gallery-caption\"\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n}\n"]}
|
|
@@ -17,4 +17,26 @@ export const pickRelevantMediaFiles = function (image) {
|
|
|
17
17
|
|
|
18
18
|
return imageProps;
|
|
19
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* The new gallery block format is not compatible with the use_BalanceTags option
|
|
22
|
+
* in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The
|
|
23
|
+
* window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method
|
|
24
|
+
* can be removed when minimum supported WP version >=5.9.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
export function isGalleryV2Enabled() {
|
|
28
|
+
// Only run the Gallery version compat check if the plugin is running, otherwise
|
|
29
|
+
// assume we are in 5.9 core and enable by default.
|
|
30
|
+
if (process.env.GUTENBERG_PHASE === 2) {
|
|
31
|
+
// We want to fail early here, at least during beta testing phase, to ensure
|
|
32
|
+
// there aren't instances where undefined values cause false negatives.
|
|
33
|
+
if (!window.wp || typeof window.wp.galleryBlockV2Enabled !== 'boolean') {
|
|
34
|
+
throw 'window.wp.galleryBlockV2Enabled is not defined';
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return window.wp.galleryBlockV2Enabled;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
20
42
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/shared.js"],"names":["get","pick","defaultColumnsNumber","imageCount","Math","min","pickRelevantMediaFiles","image","sizeSlug","imageProps","url","fullUrl"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAT,EAAcC,IAAd,QAA0B,QAA1B;AAEA,OAAO,SAASC,oBAAT,CAA+BC,UAA/B,EAA4C;AAClD,SAAOA,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAU,CAAV,EAAaF,UAAb,CAAH,GAA+B,CAAhD;AACA;AAED,OAAO,MAAMG,sBAAsB,GAAG,UAAEC,KAAF,EAAiC;AAAA,MAAxBC,QAAwB,uEAAb,OAAa;AACtE,QAAMC,UAAU,GAAGR,IAAI,CAAEM,KAAF,EAAS,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,EAAuB,SAAvB,CAAT,CAAvB;AACAE,EAAAA,UAAU,CAACC,GAAX,GACCV,GAAG,CAAEO,KAAF,EAAS,CAAE,OAAF,EAAWC,QAAX,EAAqB,KAArB,CAAT,CAAH,IACAR,GAAG,CAAEO,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4BC,QAA5B,EAAsC,YAAtC,CAAT,CADH,IAEAD,KAAK,CAACG,GAHP;AAIA,QAAMC,OAAO,GACZX,GAAG,CAAEO,KAAF,EAAS,CAAE,OAAF,EAAW,MAAX,EAAmB,KAAnB,CAAT,CAAH,IACAP,GAAG,CAAEO,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4B,MAA5B,EAAoC,YAApC,CAAT,CAFJ;;AAGA,MAAKI,OAAL,EAAe;AACdF,IAAAA,UAAU,CAACE,OAAX,GAAqBA,OAArB;AACA;;AACD,SAAOF,UAAP;AACA,CAbM","sourcesContent":["/**\n * External dependencies\n */\nimport { get, pick } from 'lodash';\n\nexport function defaultColumnsNumber( imageCount ) {\n\treturn imageCount ? Math.min( 3, imageCount ) : 3;\n}\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = pick( image, [ 'alt', 'id', 'link', 'caption' ] );\n\timageProps.url =\n\t\tget( image, [ 'sizes', sizeSlug, 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', sizeSlug, 'source_url' ] ) ||\n\t\timage.url;\n\tconst fullUrl =\n\t\tget( image, [ 'sizes', 'full', 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', 'full', 'source_url' ] );\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/shared.js"],"names":["get","pick","defaultColumnsNumber","imageCount","Math","min","pickRelevantMediaFiles","image","sizeSlug","imageProps","url","fullUrl","isGalleryV2Enabled","process","env","GUTENBERG_PHASE","window","wp","galleryBlockV2Enabled"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,GAAT,EAAcC,IAAd,QAA0B,QAA1B;AAEA,OAAO,SAASC,oBAAT,CAA+BC,UAA/B,EAA4C;AAClD,SAAOA,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAU,CAAV,EAAaF,UAAb,CAAH,GAA+B,CAAhD;AACA;AAED,OAAO,MAAMG,sBAAsB,GAAG,UAAEC,KAAF,EAAiC;AAAA,MAAxBC,QAAwB,uEAAb,OAAa;AACtE,QAAMC,UAAU,GAAGR,IAAI,CAAEM,KAAF,EAAS,CAAE,KAAF,EAAS,IAAT,EAAe,MAAf,EAAuB,SAAvB,CAAT,CAAvB;AACAE,EAAAA,UAAU,CAACC,GAAX,GACCV,GAAG,CAAEO,KAAF,EAAS,CAAE,OAAF,EAAWC,QAAX,EAAqB,KAArB,CAAT,CAAH,IACAR,GAAG,CAAEO,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4BC,QAA5B,EAAsC,YAAtC,CAAT,CADH,IAEAD,KAAK,CAACG,GAHP;AAIA,QAAMC,OAAO,GACZX,GAAG,CAAEO,KAAF,EAAS,CAAE,OAAF,EAAW,MAAX,EAAmB,KAAnB,CAAT,CAAH,IACAP,GAAG,CAAEO,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4B,MAA5B,EAAoC,YAApC,CAAT,CAFJ;;AAGA,MAAKI,OAAL,EAAe;AACdF,IAAAA,UAAU,CAACE,OAAX,GAAqBA,OAArB;AACA;;AACD,SAAOF,UAAP;AACA,CAbM;AAeP;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASG,kBAAT,GAA8B;AACpC;AACA;AACA,MAAKC,OAAO,CAACC,GAAR,CAAYC,eAAZ,KAAgC,CAArC,EAAyC;AACxC;AACA;AACA,QACC,CAAEC,MAAM,CAACC,EAAT,IACA,OAAOD,MAAM,CAACC,EAAP,CAAUC,qBAAjB,KAA2C,SAF5C,EAGE;AACD,YAAM,gDAAN;AACA;;AACD,WAAOF,MAAM,CAACC,EAAP,CAAUC,qBAAjB;AACA;;AAED,SAAO,IAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { get, pick } from 'lodash';\n\nexport function defaultColumnsNumber( imageCount ) {\n\treturn imageCount ? Math.min( 3, imageCount ) : 3;\n}\n\nexport const pickRelevantMediaFiles = ( image, sizeSlug = 'large' ) => {\n\tconst imageProps = pick( image, [ 'alt', 'id', 'link', 'caption' ] );\n\timageProps.url =\n\t\tget( image, [ 'sizes', sizeSlug, 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', sizeSlug, 'source_url' ] ) ||\n\t\timage.url;\n\tconst fullUrl =\n\t\tget( image, [ 'sizes', 'full', 'url' ] ) ||\n\t\tget( image, [ 'media_details', 'sizes', 'full', 'source_url' ] );\n\tif ( fullUrl ) {\n\t\timageProps.fullUrl = fullUrl;\n\t}\n\treturn imageProps;\n};\n\n/**\n * The new gallery block format is not compatible with the use_BalanceTags option\n * in WP versions <= 5.8 https://core.trac.wordpress.org/ticket/54130. The\n * window.wp.galleryBlockV2Enabled flag is set in lib/compat.php. This method\n * can be removed when minimum supported WP version >=5.9.\n */\nexport function isGalleryV2Enabled() {\n\t// Only run the Gallery version compat check if the plugin is running, otherwise\n\t// assume we are in 5.9 core and enable by default.\n\tif ( process.env.GUTENBERG_PHASE === 2 ) {\n\t\t// We want to fail early here, at least during beta testing phase, to ensure\n\t\t// there aren't instances where undefined values cause false negatives.\n\t\tif (\n\t\t\t! window.wp ||\n\t\t\ttypeof window.wp.galleryBlockV2Enabled !== 'boolean'\n\t\t) {\n\t\t\tthrow 'window.wp.galleryBlockV2Enabled is not defined';\n\t\t}\n\t\treturn window.wp.galleryBlockV2Enabled;\n\t}\n\n\treturn true;\n}\n"]}
|
|
@@ -8,8 +8,6 @@ import { filter, every, toString } from 'lodash';
|
|
|
8
8
|
|
|
9
9
|
import { createBlock } from '@wordpress/blocks';
|
|
10
10
|
import { createBlobURL } from '@wordpress/blob';
|
|
11
|
-
import { select } from '@wordpress/data';
|
|
12
|
-
import { store as blockEditorStore } from '@wordpress/block-editor';
|
|
13
11
|
import { addFilter } from '@wordpress/hooks';
|
|
14
12
|
/**
|
|
15
13
|
* Internal dependencies
|
|
@@ -17,7 +15,7 @@ import { addFilter } from '@wordpress/hooks';
|
|
|
17
15
|
|
|
18
16
|
import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_NONE, LINK_DESTINATION_MEDIA } from './constants';
|
|
19
17
|
import { LINK_DESTINATION_ATTACHMENT as DEPRECATED_LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_MEDIA as DEPRECATED_LINK_DESTINATION_MEDIA } from './v1/constants';
|
|
20
|
-
import { pickRelevantMediaFiles } from './shared';
|
|
18
|
+
import { pickRelevantMediaFiles, isGalleryV2Enabled } from './shared';
|
|
21
19
|
|
|
22
20
|
const parseShortcodeIds = ids => {
|
|
23
21
|
if (!ids) {
|
|
@@ -45,9 +43,7 @@ const parseShortcodeIds = ids => {
|
|
|
45
43
|
function updateThirdPartyTransformToGallery(block) {
|
|
46
44
|
var _block$attributes;
|
|
47
45
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (settings.__unstableGalleryWithImageBlocks && block.name === 'core/gallery' && ((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.images.length) > 0) {
|
|
46
|
+
if (isGalleryV2Enabled() && block.name === 'core/gallery' && ((_block$attributes = block.attributes) === null || _block$attributes === void 0 ? void 0 : _block$attributes.images.length) > 0) {
|
|
51
47
|
const innerBlocks = block.attributes.images.map(_ref => {
|
|
52
48
|
let {
|
|
53
49
|
url,
|
|
@@ -144,9 +140,8 @@ const transforms = {
|
|
|
144
140
|
} = _ref4;
|
|
145
141
|
return url;
|
|
146
142
|
});
|
|
147
|
-
const settings = select(blockEditorStore).getSettings();
|
|
148
143
|
|
|
149
|
-
if (
|
|
144
|
+
if (isGalleryV2Enabled()) {
|
|
150
145
|
const innerBlocks = validImages.map(image => {
|
|
151
146
|
return createBlock('core/image', image);
|
|
152
147
|
});
|
|
@@ -193,9 +188,8 @@ const transforms = {
|
|
|
193
188
|
ids
|
|
194
189
|
}
|
|
195
190
|
} = _ref7;
|
|
196
|
-
const settings = select(blockEditorStore).getSettings();
|
|
197
191
|
|
|
198
|
-
if (!
|
|
192
|
+
if (!isGalleryV2Enabled()) {
|
|
199
193
|
return parseShortcodeIds(ids).map(id => ({
|
|
200
194
|
id: toString(id)
|
|
201
195
|
}));
|
|
@@ -210,9 +204,8 @@ const transforms = {
|
|
|
210
204
|
ids
|
|
211
205
|
}
|
|
212
206
|
} = _ref8;
|
|
213
|
-
const settings = select(blockEditorStore).getSettings();
|
|
214
207
|
|
|
215
|
-
if (!
|
|
208
|
+
if (!isGalleryV2Enabled()) {
|
|
216
209
|
return parseShortcodeIds(ids);
|
|
217
210
|
}
|
|
218
211
|
}
|
|
@@ -225,9 +218,8 @@ const transforms = {
|
|
|
225
218
|
ids
|
|
226
219
|
}
|
|
227
220
|
} = _ref9;
|
|
228
|
-
const settings = select(blockEditorStore).getSettings();
|
|
229
221
|
|
|
230
|
-
if (
|
|
222
|
+
if (isGalleryV2Enabled()) {
|
|
231
223
|
return parseShortcodeIds(ids).map(id => ({
|
|
232
224
|
id: parseInt(id)
|
|
233
225
|
}));
|
|
@@ -253,9 +245,8 @@ const transforms = {
|
|
|
253
245
|
link
|
|
254
246
|
}
|
|
255
247
|
} = _ref11;
|
|
256
|
-
const settings = select(blockEditorStore).getSettings();
|
|
257
248
|
|
|
258
|
-
if (!
|
|
249
|
+
if (!isGalleryV2Enabled()) {
|
|
259
250
|
switch (link) {
|
|
260
251
|
case 'post':
|
|
261
252
|
return DEPRECATED_LINK_DESTINATION_ATTACHMENT;
|
|
@@ -303,9 +294,7 @@ const transforms = {
|
|
|
303
294
|
},
|
|
304
295
|
|
|
305
296
|
transform(files) {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
if (settings.__unstableGalleryWithImageBlocks) {
|
|
297
|
+
if (isGalleryV2Enabled()) {
|
|
309
298
|
const innerBlocks = files.map(file => createBlock('core/image', {
|
|
310
299
|
url: createBlobURL(file)
|
|
311
300
|
}));
|
|
@@ -331,9 +320,8 @@ const transforms = {
|
|
|
331
320
|
ids,
|
|
332
321
|
sizeSlug
|
|
333
322
|
} = _ref13;
|
|
334
|
-
const settings = select(blockEditorStore).getSettings();
|
|
335
323
|
|
|
336
|
-
if (
|
|
324
|
+
if (isGalleryV2Enabled()) {
|
|
337
325
|
if (innerBlocks.length > 0) {
|
|
338
326
|
return innerBlocks.map(_ref14 => {
|
|
339
327
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/transforms.js"],"names":["filter","every","toString","createBlock","createBlobURL","select","store","blockEditorStore","addFilter","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","DEPRECATED_LINK_DESTINATION_ATTACHMENT","DEPRECATED_LINK_DESTINATION_MEDIA","pickRelevantMediaFiles","parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","settings","getSettings","__unstableGalleryWithImageBlocks","name","attributes","images","length","innerBlocks","url","alt","sizeSlug","linkDestination","updateThirdPartyTransformFromGallery","toBlock","fromBlocks","from","Array","isArray","galleryBlock","find","transformedBlock","includes","transforms","type","isMultiBlock","blocks","transform","align","undefined","validImages","image","caption","tag","shortcode","named","shortCodeTransforms","columns","linkTo","link","isMatch","priority","files","file","indexOf","to","imageSizeSlug","index"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { filter, every, toString } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { select } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as DEPRECATED_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as DEPRECATED_LINK_DESTINATION_MEDIA,\n} from './v1/constants';\nimport { pickRelevantMediaFiles } from './shared';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this tranform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tconst settings = select( blockEditorStore ).getSettings();\n\tif (\n\t\tsettings.__unstableGalleryWithImageBlocks &&\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = every( attributes, [ 'align', align ] )\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = every( attributes, [ 'sizeSlug', sizeSlug ] )\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = filter( attributes, ( { url } ) => url );\n\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tif ( settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/gallery',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/gallery', {\n\t\t\t\t\timages: validImages.map(\n\t\t\t\t\t\t( { id, url, alt, caption } ) => ( {\n\t\t\t\t\t\t\tid: toString( id ),\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t\tids: validImages.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t\t\talign,\n\t\t\t\t\tsizeSlug,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\n\t\t\tattributes: {\n\t\t\t\timages: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tconst settings = select(\n\t\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t\t).getSettings();\n\t\t\t\t\t\tif ( ! settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: toString( id ),\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\tids: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tconst settings = select(\n\t\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t\t).getSettings();\n\t\t\t\t\t\tif ( ! settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids );\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tshortCodeTransforms: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tconst settings = select(\n\t\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t\t).getSettings();\n\t\t\t\t\t\tif ( settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: parseInt( id ),\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\tcolumns: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tshortcode: ( { named: { columns = '3' } } ) => {\n\t\t\t\t\t\treturn parseInt( columns, 10 );\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlinkTo: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { link } } ) => {\n\t\t\t\t\t\tconst settings = select(\n\t\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t\t).getSettings();\n\t\t\t\t\t\tif ( ! settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\t\t\tswitch ( link ) {\n\t\t\t\t\t\t\t\tcase 'post':\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\t\tcase 'file':\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_MEDIA;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch ( link ) {\n\t\t\t\t\t\t\tcase 'post':\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\tcase 'file':\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_MEDIA;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_NONE;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrrides the image block transformation when mulitple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tevery(\n\t\t\t\t\t\tfiles,\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tif ( settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\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 createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t\t}\n\t\t\t\tconst block = createBlock( 'core/gallery', {\n\t\t\t\t\timages: files.map( ( file ) =>\n\t\t\t\t\t\tpickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align, images, ids, sizeSlug }, innerBlocks ) => {\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tif ( settings.__unstableGalleryWithImageBlocks ) {\n\t\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t\t( {\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\timageSizeSlug,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\talign,\n\t\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\treturn createBlock( 'core/image', { align } );\n\t\t\t\t}\n\t\t\t\tif ( images.length > 0 ) {\n\t\t\t\t\treturn images.map( ( { url, alt, caption }, index ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: ids[ index ],\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/transforms.js"],"names":["filter","every","toString","createBlock","createBlobURL","addFilter","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","DEPRECATED_LINK_DESTINATION_ATTACHMENT","DEPRECATED_LINK_DESTINATION_MEDIA","pickRelevantMediaFiles","isGalleryV2Enabled","parseShortcodeIds","ids","split","map","id","parseInt","updateThirdPartyTransformToGallery","block","name","attributes","images","length","innerBlocks","url","alt","sizeSlug","linkDestination","updateThirdPartyTransformFromGallery","toBlock","fromBlocks","from","Array","isArray","galleryBlock","find","transformedBlock","includes","transforms","type","isMultiBlock","blocks","transform","align","undefined","validImages","image","caption","tag","shortcode","named","shortCodeTransforms","columns","linkTo","link","isMatch","priority","files","file","indexOf","to","imageSizeSlug","index"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { filter, every, toString } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as DEPRECATED_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as DEPRECATED_LINK_DESTINATION_MEDIA,\n} from './v1/constants';\nimport { pickRelevantMediaFiles, isGalleryV2Enabled } from './shared';\n\nconst parseShortcodeIds = ( ids ) => {\n\tif ( ! ids ) {\n\t\treturn [];\n\t}\n\n\treturn ids.split( ',' ).map( ( id ) => parseInt( id, 10 ) );\n};\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * 3rdPartyBlock -> GalleryBlock transform so this tranform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} block The transformed block.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformToGallery( block ) {\n\tif (\n\t\tisGalleryV2Enabled() &&\n\t\tblock.name === 'core/gallery' &&\n\t\tblock.attributes?.images.length > 0\n\t) {\n\t\tconst innerBlocks = block.attributes.images.map(\n\t\t\t( { url, id, alt } ) => {\n\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\turl,\n\t\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\t\talt,\n\t\t\t\t\tsizeSlug: block.attributes.sizeSlug,\n\t\t\t\t\tlinkDestination: block.attributes.linkDestination,\n\t\t\t\t} );\n\t\t\t}\n\t\t);\n\n\t\tdelete block.attributes.ids;\n\t\tdelete block.attributes.images;\n\t\tblock.innerBlocks = innerBlocks;\n\t}\n\n\treturn block;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-to',\n\tupdateThirdPartyTransformToGallery\n);\n\n/**\n * Third party block plugins don't have an easy way to detect if the\n * innerBlocks version of the Gallery is running when they run a\n * GalleryBlock -> 3rdPartyBlock transform so this transform filter\n * will handle this. Once the innerBlocks version is the default\n * in a core release, this could be deprecated and removed after\n * plugin authors have been given time to update transforms.\n *\n * @typedef {Object} Attributes\n * @typedef {Object} Block\n * @property {Attributes} attributes The attributes of the block.\n * @param {Block} toBlock The block to transform to.\n * @param {Block[]} fromBlocks The blocks to transform from.\n * @return {Block} The transformed block.\n */\nfunction updateThirdPartyTransformFromGallery( toBlock, fromBlocks ) {\n\tconst from = Array.isArray( fromBlocks ) ? fromBlocks : [ fromBlocks ];\n\tconst galleryBlock = from.find(\n\t\t( transformedBlock ) =>\n\t\t\ttransformedBlock.name === 'core/gallery' &&\n\t\t\ttransformedBlock.innerBlocks.length > 0 &&\n\t\t\t! transformedBlock.attributes.images?.length > 0 &&\n\t\t\t! toBlock.name.includes( 'core/' )\n\t);\n\n\tif ( galleryBlock ) {\n\t\tconst images = galleryBlock.innerBlocks.map(\n\t\t\t( { attributes: { url, id, alt } } ) => ( {\n\t\t\t\turl,\n\t\t\t\tid: id ? parseInt( id, 10 ) : null,\n\t\t\t\talt,\n\t\t\t} )\n\t\t);\n\t\tconst ids = images.map( ( { id } ) => id );\n\t\tgalleryBlock.attributes.images = images;\n\t\tgalleryBlock.attributes.ids = ids;\n\t}\n\n\treturn toBlock;\n}\naddFilter(\n\t'blocks.switchToBlockType.transformedBlock',\n\t'core/gallery/update-third-party-transform-from',\n\tupdateThirdPartyTransformFromGallery\n);\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( attributes ) => {\n\t\t\t\t// Init the align and size from the first item which may be either the placeholder or an image.\n\t\t\t\tlet { align, sizeSlug } = attributes[ 0 ];\n\t\t\t\t// Loop through all the images and check if they have the same align and size.\n\t\t\t\talign = every( attributes, [ 'align', align ] )\n\t\t\t\t\t? align\n\t\t\t\t\t: undefined;\n\t\t\t\tsizeSlug = every( attributes, [ 'sizeSlug', sizeSlug ] )\n\t\t\t\t\t? sizeSlug\n\t\t\t\t\t: undefined;\n\n\t\t\t\tconst validImages = filter( attributes, ( { url } ) => url );\n\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tconst innerBlocks = validImages.map( ( image ) => {\n\t\t\t\t\t\treturn createBlock( 'core/image', image );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn createBlock(\n\t\t\t\t\t\t'core/gallery',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn createBlock( 'core/gallery', {\n\t\t\t\t\timages: validImages.map(\n\t\t\t\t\t\t( { id, url, alt, caption } ) => ( {\n\t\t\t\t\t\t\tid: toString( id ),\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t\tids: validImages.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t\t\talign,\n\t\t\t\t\tsizeSlug,\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'shortcode',\n\t\t\ttag: 'gallery',\n\n\t\t\tattributes: {\n\t\t\t\timages: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tif ( ! isGalleryV2Enabled() ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: toString( id ),\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\tids: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tif ( ! isGalleryV2Enabled() ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids );\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tshortCodeTransforms: {\n\t\t\t\t\ttype: 'array',\n\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\t\t\treturn parseShortcodeIds( ids ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: parseInt( id ),\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\tcolumns: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tshortcode: ( { named: { columns = '3' } } ) => {\n\t\t\t\t\t\treturn parseInt( columns, 10 );\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tlinkTo: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tshortcode: ( { named: { link } } ) => {\n\t\t\t\t\t\tif ( ! isGalleryV2Enabled() ) {\n\t\t\t\t\t\t\tswitch ( link ) {\n\t\t\t\t\t\t\t\tcase 'post':\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\t\tcase 'file':\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_MEDIA;\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn DEPRECATED_LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tswitch ( link ) {\n\t\t\t\t\t\t\tcase 'post':\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_ATTACHMENT;\n\t\t\t\t\t\t\tcase 'file':\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_MEDIA;\n\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\treturn LINK_DESTINATION_NONE;\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tisMatch( { named } ) {\n\t\t\t\treturn undefined !== named.ids;\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\t// When created by drag and dropping multiple files on an insertion point. Because multiple\n\t\t\t// files must not be transformed to a gallery when dropped within a gallery there is another transform\n\t\t\t// within the image block to handle that case. Therefore this transform has to have priority 1\n\t\t\t// set so that it overrrides the image block transformation when mulitple images are dropped outside\n\t\t\t// of a gallery block.\n\t\t\ttype: 'files',\n\t\t\tpriority: 1,\n\t\t\tisMatch( files ) {\n\t\t\t\treturn (\n\t\t\t\t\tfiles.length !== 1 &&\n\t\t\t\t\tevery(\n\t\t\t\t\t\tfiles,\n\t\t\t\t\t\t( file ) => file.type.indexOf( 'image/' ) === 0\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t},\n\t\t\ttransform( files ) {\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tconst innerBlocks = files.map( ( file ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\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 createBlock( 'core/gallery', {}, innerBlocks );\n\t\t\t\t}\n\t\t\t\tconst block = createBlock( 'core/gallery', {\n\t\t\t\t\timages: files.map( ( file ) =>\n\t\t\t\t\t\tpickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} )\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t\treturn block;\n\t\t\t},\n\t\t},\n\t],\n\tto: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/image' ],\n\t\t\ttransform: ( { align, images, ids, sizeSlug }, innerBlocks ) => {\n\t\t\t\tif ( isGalleryV2Enabled() ) {\n\t\t\t\t\tif ( innerBlocks.length > 0 ) {\n\t\t\t\t\t\treturn innerBlocks.map(\n\t\t\t\t\t\t\t( {\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\timageSizeSlug,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} ) =>\n\t\t\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\t\t\tid,\n\t\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\t\t\tsizeSlug: imageSizeSlug,\n\t\t\t\t\t\t\t\t\talign,\n\t\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\treturn createBlock( 'core/image', { align } );\n\t\t\t\t}\n\t\t\t\tif ( images.length > 0 ) {\n\t\t\t\t\treturn images.map( ( { url, alt, caption }, index ) =>\n\t\t\t\t\t\tcreateBlock( 'core/image', {\n\t\t\t\t\t\t\tid: ids[ index ],\n\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\tcaption,\n\t\t\t\t\t\t\talign,\n\t\t\t\t\t\t\tsizeSlug,\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn createBlock( 'core/image', { align } );\n\t\t\t},\n\t\t},\n\t],\n};\n\nexport default transforms;\n"]}
|
|
@@ -23,7 +23,7 @@ export default function useMobileWarning(newImages) {
|
|
|
23
23
|
return;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
createWarningNotice(__('
|
|
26
|
+
createWarningNotice(__('If you want to edit the gallery you just added in the mobile app, to avoid losing any data please make sure you use version 18.2 of the app or above.'), {
|
|
27
27
|
type: 'snackbar',
|
|
28
28
|
explicitDismiss: true
|
|
29
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/use-mobile-warning.js"],"names":["__","useDispatch","useSelect","store","interfaceStore","noticesStore","useMobileWarning","newImages","createWarningNotice","toggleFeature","isMobileWarningActive","select","isFeatureActive","type","explicitDismiss"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,cAAlB,QAAwC,sBAAxC;AACA,SAASD,KAAK,IAAIE,YAAlB,QAAsC,oBAAtC;AAEA,eAAe,SAASC,gBAAT,CAA2BC,SAA3B,EAAuC;AACrD,QAAM;AAAEC,IAAAA;AAAF,MAA0BP,WAAW,CAAEI,YAAF,CAA3C;AACA,QAAM;AAAEI,IAAAA;AAAF,MAAoBR,WAAW,CAAEG,cAAF,CAArC;AACA,QAAMM,qBAAqB,GAAGR,SAAS,CAAIS,MAAF,IAAc;AACtD,UAAM;AAAEC,MAAAA;AAAF,QAAsBD,MAAM,CAAEP,cAAF,CAAlC;AACA,WAAOQ,eAAe,CAAE,gBAAF,EAAoB,sBAApB,CAAtB;AACA,GAHsC,EAGpC,EAHoC,CAAvC;;AAKA,MAAK,CAAEF,qBAAF,IAA2B,CAAEH,SAAlC,EAA8C;AAC7C;AACA;;AAEDC,EAAAA,mBAAmB,CAClBR,EAAE,CACD,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/use-mobile-warning.js"],"names":["__","useDispatch","useSelect","store","interfaceStore","noticesStore","useMobileWarning","newImages","createWarningNotice","toggleFeature","isMobileWarningActive","select","isFeatureActive","type","explicitDismiss"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAT,QAAmB,iBAAnB;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SAASC,KAAK,IAAIC,cAAlB,QAAwC,sBAAxC;AACA,SAASD,KAAK,IAAIE,YAAlB,QAAsC,oBAAtC;AAEA,eAAe,SAASC,gBAAT,CAA2BC,SAA3B,EAAuC;AACrD,QAAM;AAAEC,IAAAA;AAAF,MAA0BP,WAAW,CAAEI,YAAF,CAA3C;AACA,QAAM;AAAEI,IAAAA;AAAF,MAAoBR,WAAW,CAAEG,cAAF,CAArC;AACA,QAAMM,qBAAqB,GAAGR,SAAS,CAAIS,MAAF,IAAc;AACtD,UAAM;AAAEC,MAAAA;AAAF,QAAsBD,MAAM,CAAEP,cAAF,CAAlC;AACA,WAAOQ,eAAe,CAAE,gBAAF,EAAoB,sBAApB,CAAtB;AACA,GAHsC,EAGpC,EAHoC,CAAvC;;AAKA,MAAK,CAAEF,qBAAF,IAA2B,CAAEH,SAAlC,EAA8C;AAC7C;AACA;;AAEDC,EAAAA,mBAAmB,CAClBR,EAAE,CACD,uJADC,CADgB,EAIlB;AAAEa,IAAAA,IAAI,EAAE,UAAR;AAAoBC,IAAAA,eAAe,EAAE;AAArC,GAJkB,CAAnB;AAMAL,EAAAA,aAAa,CAAE,gBAAF,EAAoB,sBAApB,CAAb;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { store as interfaceStore } from '@wordpress/interface';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function useMobileWarning( newImages ) {\n\tconst { createWarningNotice } = useDispatch( noticesStore );\n\tconst { toggleFeature } = useDispatch( interfaceStore );\n\tconst isMobileWarningActive = useSelect( ( select ) => {\n\t\tconst { isFeatureActive } = select( interfaceStore );\n\t\treturn isFeatureActive( 'core/edit-post', 'mobileGalleryWarning' );\n\t}, [] );\n\n\tif ( ! isMobileWarningActive || ! newImages ) {\n\t\treturn;\n\t}\n\n\tcreateWarningNotice(\n\t\t__(\n\t\t\t'If you want to edit the gallery you just added in the mobile app, to avoid losing any data please make sure you use version 18.2 of the app or above.'\n\t\t),\n\t\t{ type: 'snackbar', explicitDismiss: true }\n\t);\n\ttoggleFeature( 'core/edit-post', 'mobileGalleryWarning' );\n}\n"]}
|