@wordpress/block-library 9.10.0 → 9.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +10 -5
- package/build/archives/index.js +6 -0
- package/build/archives/index.js.map +1 -1
- package/build/avatar/hooks.js +2 -3
- package/build/avatar/hooks.js.map +1 -1
- package/build/button/get-updated-link-attributes.js +1 -1
- package/build/button/get-updated-link-attributes.js.map +1 -1
- package/build/comments/index.js +12 -0
- package/build/comments/index.js.map +1 -1
- package/build/cover/constants.js +8 -0
- package/build/cover/constants.js.map +1 -0
- package/build/cover/edit/index.js +24 -3
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js +40 -2
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/index.js +3 -0
- package/build/cover/index.js.map +1 -1
- package/build/cover/save.js +3 -1
- package/build/cover/save.js.map +1 -1
- package/build/file/edit.js +1 -2
- package/build/file/edit.js.map +1 -1
- package/build/gallery/constants.js +2 -1
- package/build/gallery/constants.js.map +1 -1
- package/build/gallery/edit.js +11 -2
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/utils.js +26 -5
- package/build/gallery/utils.js.map +1 -1
- package/build/html/edit.js +5 -1
- package/build/html/edit.js.map +1 -1
- package/build/html/preview.js +2 -2
- package/build/html/preview.js.map +1 -1
- package/build/latest-posts/edit.js +3 -8
- package/build/latest-posts/edit.js.map +1 -1
- package/build/navigation/edit/index.js +23 -2
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +1 -1
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +2 -2
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/paragraph/edit.js +1 -1
- package/build/paragraph/edit.js.map +1 -1
- package/build/post-featured-image/edit.js +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-time-to-read/edit.js +2 -2
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/query/edit/inspector-controls/order-control.js +2 -2
- package/build/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build/query-title/edit.js +1 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/search/edit.js +19 -14
- package/build/search/edit.js.map +1 -1
- package/build/separator/transforms.js +12 -0
- package/build/separator/transforms.js.map +1 -1
- package/build/social-links/edit.js +0 -1
- package/build/social-links/edit.js.map +1 -1
- package/build/spacer/index.js +2 -0
- package/build/spacer/index.js.map +1 -1
- package/build/spacer/transforms.js +27 -0
- package/build/spacer/transforms.js.map +1 -0
- package/build/table/edit.js +0 -1
- package/build/table/edit.js.map +1 -1
- package/build/table-of-contents/edit.js +2 -7
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/template-part/edit/index.js +1 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/video/tracks-editor.js +1 -1
- package/build/video/tracks-editor.js.map +1 -1
- package/build-module/archives/index.js +6 -0
- package/build-module/archives/index.js.map +1 -1
- package/build-module/avatar/hooks.js +2 -3
- package/build-module/avatar/hooks.js.map +1 -1
- package/build-module/button/get-updated-link-attributes.js +1 -1
- package/build-module/button/get-updated-link-attributes.js.map +1 -1
- package/build-module/comments/index.js +12 -0
- package/build-module/comments/index.js.map +1 -1
- package/build-module/cover/constants.js +2 -0
- package/build-module/cover/constants.js.map +1 -0
- package/build-module/cover/edit/index.js +24 -3
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js +41 -3
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/index.js +3 -0
- package/build-module/cover/index.js.map +1 -1
- package/build-module/cover/save.js +3 -1
- package/build-module/cover/save.js.map +1 -1
- package/build-module/file/edit.js +1 -2
- package/build-module/file/edit.js.map +1 -1
- package/build-module/gallery/constants.js +1 -0
- package/build-module/gallery/constants.js.map +1 -1
- package/build-module/gallery/edit.js +14 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/utils.js +27 -6
- package/build-module/gallery/utils.js.map +1 -1
- package/build-module/html/edit.js +6 -2
- package/build-module/html/edit.js.map +1 -1
- package/build-module/html/preview.js +2 -2
- package/build-module/html/preview.js.map +1 -1
- package/build-module/latest-posts/edit.js +3 -8
- package/build-module/latest-posts/edit.js.map +1 -1
- package/build-module/navigation/edit/index.js +23 -2
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +1 -3
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +2 -2
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/paragraph/edit.js +1 -1
- package/build-module/paragraph/edit.js.map +1 -1
- package/build-module/post-featured-image/edit.js +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +2 -2
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/query/edit/inspector-controls/order-control.js +2 -2
- package/build-module/query/edit/inspector-controls/order-control.js.map +1 -1
- package/build-module/query-title/edit.js +2 -2
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/search/edit.js +20 -15
- package/build-module/search/edit.js.map +1 -1
- package/build-module/separator/transforms.js +12 -0
- package/build-module/separator/transforms.js.map +1 -1
- package/build-module/social-links/edit.js +0 -1
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/spacer/index.js +2 -0
- package/build-module/spacer/index.js.map +1 -1
- package/build-module/spacer/transforms.js +20 -0
- package/build-module/spacer/transforms.js.map +1 -0
- package/build-module/table/edit.js +0 -1
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js +2 -7
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/video/tracks-editor.js +2 -2
- package/build-module/video/tracks-editor.js.map +1 -1
- package/build-style/archives/editor-rtl.css +5 -0
- package/build-style/archives/editor.css +5 -0
- package/build-style/button/style-rtl.css +3 -0
- package/build-style/button/style.css +3 -0
- package/build-style/comments/editor-rtl.css +4 -0
- package/build-style/comments/editor.css +4 -0
- package/build-style/comments/style-rtl.css +4 -0
- package/build-style/comments/style.css +4 -0
- package/build-style/cover/style-rtl.css +5 -0
- package/build-style/cover/style.css +5 -0
- package/build-style/editor-rtl.css +20 -0
- package/build-style/editor.css +20 -0
- package/build-style/group/editor-rtl.css +10 -0
- package/build-style/group/editor.css +10 -0
- package/build-style/image/style-rtl.css +2 -0
- package/build-style/image/style.css +2 -0
- package/build-style/navigation/editor-rtl.css +1 -0
- package/build-style/navigation/editor.css +1 -0
- package/build-style/style-rtl.css +14 -0
- package/build-style/style.css +14 -0
- package/package.json +36 -35
- package/src/archives/block.json +6 -0
- package/src/archives/editor.scss +8 -0
- package/src/avatar/hooks.js +2 -3
- package/src/avatar/index.php +4 -5
- package/src/button/get-updated-link-attributes.js +1 -1
- package/src/button/style.scss +3 -0
- package/src/button/test/get-updated-link-attributes.js +15 -0
- package/src/comment-author-avatar/index.php +1 -1
- package/src/comments/block.json +21 -3
- package/src/comments/style.scss +4 -1
- package/src/cover/block.json +3 -0
- package/src/cover/constants.js +1 -0
- package/src/cover/edit/index.js +20 -2
- package/src/cover/edit/inspector-controls.js +46 -1
- package/src/cover/save.js +2 -0
- package/src/cover/style.scss +6 -0
- package/src/cover/test/edit.js +1 -3
- package/src/file/edit.js +1 -2
- package/src/gallery/constants.js +1 -0
- package/src/gallery/edit.js +25 -2
- package/src/gallery/utils.js +23 -2
- package/src/group/editor.scss +12 -0
- package/src/html/edit.js +7 -1
- package/src/html/preview.js +3 -2
- package/src/image/style.scss +1 -0
- package/src/latest-posts/edit.js +3 -7
- package/src/latest-posts/index.php +1 -1
- package/src/navigation/edit/index.js +30 -3
- package/src/navigation/edit/menu-inspector-controls.js +2 -2
- package/src/navigation/edit/navigation-menu-selector.js +2 -2
- package/src/navigation/editor.scss +1 -0
- package/src/paragraph/edit.js +1 -1
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-time-to-read/edit.js +2 -2
- package/src/post-time-to-read/index.php +1 -1
- package/src/query/edit/inspector-controls/order-control.js +2 -2
- package/src/query-title/edit.js +2 -2
- package/src/rss/index.php +1 -1
- package/src/search/edit.js +28 -25
- package/src/separator/test/__snapshots__/transforms.native.js.snap +6 -0
- package/src/separator/test/transforms.native.js +1 -1
- package/src/separator/transforms.js +11 -0
- package/src/social-links/edit.js +0 -1
- package/src/spacer/index.js +2 -0
- package/src/spacer/test/__snapshots__/transforms.native.js.snap +6 -0
- package/src/spacer/test/transforms.native.js +1 -1
- package/src/spacer/transforms.js +20 -0
- package/src/table/edit.js +0 -1
- package/src/table-of-contents/edit.js +2 -6
- package/src/template-part/edit/index.js +1 -1
- package/src/video/tracks-editor.js +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","isBlobURL","__unstableGetAnimateClassName","getAnimateClassName","ResizableBox","ToolbarButton","useSelect","useDispatch","BlockControls","BlockIcon","MediaPlaceholder","MediaReplaceFlow","RichText","useBlockProps","store","blockEditorStore","__experimentalGetElementClassName","useEffect","useState","useCopyToClipboard","__","_x","file","icon","coreStore","noticesStore","FileBlockInspector","browserSupportsPdfs","removeAnchorTag","useUploadMediaFromBlobURL","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MIN_PREVIEW_HEIGHT","MAX_PREVIEW_HEIGHT","ClipboardToolbarButton","text","disabled","createNotice","ref","isDismissible","type","className","children","FileEdit","attributes","isSelected","setAttributes","clientId","id","fileName","href","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","temporaryURL","setTemporaryURL","blob","media","select","undefined","getMedia","createErrorNotice","toggleSelection","__unstableMarkNextChangeAsNotPersistent","url","onChange","onSelectFile","onError","onUploadError","isEmpty","newMedia","fileId","isPdf","endsWith","title","message","changeLinkDestinationOption","newHref","changeOpenInNewWindow","newValue","changeShowDownloadButton","changeDisplayPreview","handleOnResizeStop","event","direction","elt","delta","newHeight","parseInt","height","changePreviewHeight","Math","max","attachmentPage","link","blockProps","displayPreviewInEditor","labels","instructions","onSelect","accept","hrefs","openInNewWindow","group","mediaId","mediaURL","onReset","size","minHeight","maxHeight","minWidth","grid","enable","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","onResizeStart","onResizeStop","showHandle","data","identifier","tagName","value","placeholder","withoutInteractiveFormatting"],"sources":["@wordpress/block-library/src/file/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tResizableBox,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { useEffect, useState } from '@wordpress/element';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { __, _x } from '@wordpress/i18n';\nimport { file as icon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport FileBlockInspector from './inspector';\nimport { browserSupportsPdfs } from './utils';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\n\nexport const MIN_PREVIEW_HEIGHT = 200;\nexport const MAX_PREVIEW_HEIGHT = 2000;\n\nfunction ClipboardToolbarButton( { text, disabled } ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( text, () => {\n\t\tcreateNotice( 'info', __( 'Copied URL to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\tclassName=\"components-clipboard-toolbar-button\"\n\t\t\tref={ ref }\n\t\t\tdisabled={ disabled }\n\t\t>\n\t\t\t{ __( 'Copy URL' ) }\n\t\t</ToolbarButton>\n\t);\n}\n\nfunction FileEdit( { attributes, isSelected, setAttributes, clientId } ) {\n\tconst {\n\t\tid,\n\t\tfileName,\n\t\thref,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst { media } = useSelect(\n\t\t( select ) => ( {\n\t\t\tmedia:\n\t\t\t\tid === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: select( coreStore ).getMedia( id ),\n\t\t} ),\n\t\t[ id ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { toggleSelection, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tonChange: onSelectFile,\n\t\tonError: onUploadError,\n\t} );\n\n\t// Note: Handle setting a default value for `downloadButtonText` via HTML API\n\t// when it supports replacing text content for HTML tags.\n\tuseEffect( () => {\n\t\tif ( RichText.isEmpty( downloadButtonText ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\t\t// Reason: This effect should only run on mount.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [] );\n\n\tfunction onSelectFile( newMedia ) {\n\t\tif ( ! newMedia || ! newMedia.url ) {\n\t\t\t// Reset attributes.\n\t\t\tsetAttributes( {\n\t\t\t\thref: undefined,\n\t\t\t\tfileName: undefined,\n\t\t\t\ttextLinkHref: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tfileId: undefined,\n\t\t\t\tdisplayPreview: undefined,\n\t\t\t\tpreviewHeight: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( newMedia.url ) ) {\n\t\t\tsetTemporaryURL( newMedia.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPdf = newMedia.url.endsWith( '.pdf' );\n\t\tsetAttributes( {\n\t\t\thref: newMedia.url,\n\t\t\tfileName: newMedia.title,\n\t\t\ttextLinkHref: newMedia.url,\n\t\t\tid: newMedia.id,\n\t\t\tdisplayPreview: isPdf ? true : undefined,\n\t\t\tpreviewHeight: isPdf ? 600 : undefined,\n\t\t\tfileId: `wp-block-file--media-${ clientId }`,\n\t\t\tblob: undefined,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tsetAttributes( { href: undefined } );\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction changeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library).\n\t\tsetAttributes( { textLinkHref: newHref } );\n\t}\n\n\tfunction changeOpenInNewWindow( newValue ) {\n\t\tsetAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tfunction changeShowDownloadButton( newValue ) {\n\t\tsetAttributes( { showDownloadButton: newValue } );\n\t}\n\n\tfunction changeDisplayPreview( newValue ) {\n\t\tsetAttributes( { displayPreview: newValue } );\n\t}\n\n\tfunction handleOnResizeStop( event, direction, elt, delta ) {\n\t\ttoggleSelection( true );\n\n\t\tconst newHeight = parseInt( previewHeight + delta.height, 10 );\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tfunction changePreviewHeight( newValue ) {\n\t\tconst newHeight = Math.max(\n\t\t\tparseInt( newValue, 10 ),\n\t\t\tMIN_PREVIEW_HEIGHT\n\t\t);\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tconst attachmentPage = media && media.link;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t!! temporaryURL && getAnimateClassName( { type: 'loading' } ),\n\t\t\t{\n\t\t\t\t'is-transient': !! temporaryURL,\n\t\t\t}\n\t\t),\n\t} );\n\n\tconst displayPreviewInEditor = browserSupportsPdfs() && displayPreview;\n\n\tif ( ! href && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Upload a file or pick one from your media library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FileBlockInspector\n\t\t\t\threfs={ {\n\t\t\t\t\thref: href || temporaryURL,\n\t\t\t\t\ttextLinkHref,\n\t\t\t\t\tattachmentPage,\n\t\t\t\t} }\n\t\t\t\t{ ...{\n\t\t\t\t\topenInNewWindow: !! textLinkTarget,\n\t\t\t\t\tshowDownloadButton,\n\t\t\t\t\tchangeLinkDestinationOption,\n\t\t\t\t\tchangeOpenInNewWindow,\n\t\t\t\t\tchangeShowDownloadButton,\n\t\t\t\t\tdisplayPreview,\n\t\t\t\t\tchangeDisplayPreview,\n\t\t\t\t\tpreviewHeight,\n\t\t\t\t\tchangePreviewHeight,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ href }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tonReset={ () => onSelectFile( undefined ) }\n\t\t\t\t/>\n\t\t\t\t<ClipboardToolbarButton\n\t\t\t\t\ttext={ href }\n\t\t\t\t\tdisabled={ isBlobURL( href ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ displayPreviewInEditor && (\n\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\tsize={ { height: previewHeight } }\n\t\t\t\t\t\tminHeight={ MIN_PREVIEW_HEIGHT }\n\t\t\t\t\t\tmaxHeight={ MAX_PREVIEW_HEIGHT }\n\t\t\t\t\t\tminWidth=\"100%\"\n\t\t\t\t\t\tgrid={ [ 10, 10 ] }\n\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\tright: false,\n\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStart={ () => toggleSelection( false ) }\n\t\t\t\t\t\tonResizeStop={ handleOnResizeStop }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__preview\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t'Embed of the selected PDF file.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isSelected && (\n\t\t\t\t\t\t\t<div className=\"wp-block-file__preview-overlay\" />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ResizableBox>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-file__content-wrapper\">\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"fileName\"\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\tplaceholder={ __( 'Write file name…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tfileName: removeAnchorTag( text ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t\t<div className=\"wp-block-file__button-richtext-wrapper\">\n\t\t\t\t\t\t\t{ /* Using RichText here instead of PlainText so that it can be styled like a button. */ }\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tidentifier=\"downloadButtonText\"\n\t\t\t\t\t\t\t\ttagName=\"div\" // Must be block-level or else cursor disappears.\n\t\t\t\t\t\t\t\taria-label={ __( 'Download button text' ) }\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t\t\t__experimentalGetElementClassName(\n\t\t\t\t\t\t\t\t\t\t'button'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Add text…' ) }\n\t\t\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdownloadButtonText:\n\t\t\t\t\t\t\t\t\t\t\tremoveAnchorTag( text ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default FileEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","isBlobURL","__unstableGetAnimateClassName","getAnimateClassName","ResizableBox","ToolbarButton","useSelect","useDispatch","BlockControls","BlockIcon","MediaPlaceholder","MediaReplaceFlow","RichText","useBlockProps","store","blockEditorStore","__experimentalGetElementClassName","useEffect","useState","useCopyToClipboard","__","_x","file","icon","coreStore","noticesStore","FileBlockInspector","browserSupportsPdfs","removeAnchorTag","useUploadMediaFromBlobURL","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MIN_PREVIEW_HEIGHT","MAX_PREVIEW_HEIGHT","ClipboardToolbarButton","text","disabled","createNotice","ref","isDismissible","type","className","children","FileEdit","attributes","isSelected","setAttributes","clientId","id","fileName","href","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","temporaryURL","setTemporaryURL","blob","media","select","undefined","getMedia","createErrorNotice","toggleSelection","__unstableMarkNextChangeAsNotPersistent","url","onChange","onSelectFile","onError","onUploadError","isEmpty","newMedia","fileId","isPdf","endsWith","title","message","changeLinkDestinationOption","newHref","changeOpenInNewWindow","newValue","changeShowDownloadButton","changeDisplayPreview","handleOnResizeStop","event","direction","elt","delta","newHeight","parseInt","height","changePreviewHeight","Math","max","attachmentPage","link","blockProps","displayPreviewInEditor","labels","instructions","onSelect","accept","hrefs","openInNewWindow","group","mediaId","mediaURL","onReset","size","minHeight","maxHeight","minWidth","grid","enable","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","onResizeStart","onResizeStop","showHandle","data","identifier","tagName","value","placeholder","withoutInteractiveFormatting"],"sources":["@wordpress/block-library/src/file/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tResizableBox,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\nimport { useEffect, useState } from '@wordpress/element';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { __, _x } from '@wordpress/i18n';\nimport { file as icon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport FileBlockInspector from './inspector';\nimport { browserSupportsPdfs } from './utils';\nimport removeAnchorTag from '../utils/remove-anchor-tag';\nimport { useUploadMediaFromBlobURL } from '../utils/hooks';\n\nexport const MIN_PREVIEW_HEIGHT = 200;\nexport const MAX_PREVIEW_HEIGHT = 2000;\n\nfunction ClipboardToolbarButton( { text, disabled } ) {\n\tconst { createNotice } = useDispatch( noticesStore );\n\tconst ref = useCopyToClipboard( text, () => {\n\t\tcreateNotice( 'info', __( 'Copied URL to clipboard.' ), {\n\t\t\tisDismissible: true,\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t} );\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\tclassName=\"components-clipboard-toolbar-button\"\n\t\t\tref={ ref }\n\t\t\tdisabled={ disabled }\n\t\t>\n\t\t\t{ __( 'Copy URL' ) }\n\t\t</ToolbarButton>\n\t);\n}\n\nfunction FileEdit( { attributes, isSelected, setAttributes, clientId } ) {\n\tconst {\n\t\tid,\n\t\tfileName,\n\t\thref,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\tconst [ temporaryURL, setTemporaryURL ] = useState( attributes.blob );\n\tconst { media } = useSelect(\n\t\t( select ) => ( {\n\t\t\tmedia:\n\t\t\t\tid === undefined\n\t\t\t\t\t? undefined\n\t\t\t\t\t: select( coreStore ).getMedia( id ),\n\t\t} ),\n\t\t[ id ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst { toggleSelection, __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tuseUploadMediaFromBlobURL( {\n\t\turl: temporaryURL,\n\t\tonChange: onSelectFile,\n\t\tonError: onUploadError,\n\t} );\n\n\t// Note: Handle setting a default value for `downloadButtonText` via HTML API\n\t// when it supports replacing text content for HTML tags.\n\tuseEffect( () => {\n\t\tif ( RichText.isEmpty( downloadButtonText ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\t\t// This effect should only run on mount.\n\t}, [] );\n\n\tfunction onSelectFile( newMedia ) {\n\t\tif ( ! newMedia || ! newMedia.url ) {\n\t\t\t// Reset attributes.\n\t\t\tsetAttributes( {\n\t\t\t\thref: undefined,\n\t\t\t\tfileName: undefined,\n\t\t\t\ttextLinkHref: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tfileId: undefined,\n\t\t\t\tdisplayPreview: undefined,\n\t\t\t\tpreviewHeight: undefined,\n\t\t\t} );\n\t\t\tsetTemporaryURL();\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( newMedia.url ) ) {\n\t\t\tsetTemporaryURL( newMedia.url );\n\t\t\treturn;\n\t\t}\n\n\t\tconst isPdf = newMedia.url.endsWith( '.pdf' );\n\t\tsetAttributes( {\n\t\t\thref: newMedia.url,\n\t\t\tfileName: newMedia.title,\n\t\t\ttextLinkHref: newMedia.url,\n\t\t\tid: newMedia.id,\n\t\t\tdisplayPreview: isPdf ? true : undefined,\n\t\t\tpreviewHeight: isPdf ? 600 : undefined,\n\t\t\tfileId: `wp-block-file--media-${ clientId }`,\n\t\t\tblob: undefined,\n\t\t} );\n\t\tsetTemporaryURL();\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tsetAttributes( { href: undefined } );\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction changeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library).\n\t\tsetAttributes( { textLinkHref: newHref } );\n\t}\n\n\tfunction changeOpenInNewWindow( newValue ) {\n\t\tsetAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tfunction changeShowDownloadButton( newValue ) {\n\t\tsetAttributes( { showDownloadButton: newValue } );\n\t}\n\n\tfunction changeDisplayPreview( newValue ) {\n\t\tsetAttributes( { displayPreview: newValue } );\n\t}\n\n\tfunction handleOnResizeStop( event, direction, elt, delta ) {\n\t\ttoggleSelection( true );\n\n\t\tconst newHeight = parseInt( previewHeight + delta.height, 10 );\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tfunction changePreviewHeight( newValue ) {\n\t\tconst newHeight = Math.max(\n\t\t\tparseInt( newValue, 10 ),\n\t\t\tMIN_PREVIEW_HEIGHT\n\t\t);\n\t\tsetAttributes( { previewHeight: newHeight } );\n\t}\n\n\tconst attachmentPage = media && media.link;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx(\n\t\t\t!! temporaryURL && getAnimateClassName( { type: 'loading' } ),\n\t\t\t{\n\t\t\t\t'is-transient': !! temporaryURL,\n\t\t\t}\n\t\t),\n\t} );\n\n\tconst displayPreviewInEditor = browserSupportsPdfs() && displayPreview;\n\n\tif ( ! href && ! temporaryURL ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __(\n\t\t\t\t\t\t\t'Upload a file or pick one from your media library.'\n\t\t\t\t\t\t),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<FileBlockInspector\n\t\t\t\threfs={ {\n\t\t\t\t\thref: href || temporaryURL,\n\t\t\t\t\ttextLinkHref,\n\t\t\t\t\tattachmentPage,\n\t\t\t\t} }\n\t\t\t\t{ ...{\n\t\t\t\t\topenInNewWindow: !! textLinkTarget,\n\t\t\t\t\tshowDownloadButton,\n\t\t\t\t\tchangeLinkDestinationOption,\n\t\t\t\t\tchangeOpenInNewWindow,\n\t\t\t\t\tchangeShowDownloadButton,\n\t\t\t\t\tdisplayPreview,\n\t\t\t\t\tchangeDisplayPreview,\n\t\t\t\t\tpreviewHeight,\n\t\t\t\t\tchangePreviewHeight,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ href }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t\tonSelect={ onSelectFile }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tonReset={ () => onSelectFile( undefined ) }\n\t\t\t\t/>\n\t\t\t\t<ClipboardToolbarButton\n\t\t\t\t\ttext={ href }\n\t\t\t\t\tdisabled={ isBlobURL( href ) }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ displayPreviewInEditor && (\n\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\tsize={ { height: previewHeight } }\n\t\t\t\t\t\tminHeight={ MIN_PREVIEW_HEIGHT }\n\t\t\t\t\t\tmaxHeight={ MAX_PREVIEW_HEIGHT }\n\t\t\t\t\t\tminWidth=\"100%\"\n\t\t\t\t\t\tgrid={ [ 10, 10 ] }\n\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\tright: false,\n\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStart={ () => toggleSelection( false ) }\n\t\t\t\t\t\tonResizeStop={ handleOnResizeStop }\n\t\t\t\t\t\tshowHandle={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__preview\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t\t\t'Embed of the selected PDF file.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ! isSelected && (\n\t\t\t\t\t\t\t<div className=\"wp-block-file__preview-overlay\" />\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ResizableBox>\n\t\t\t\t) }\n\t\t\t\t<div className=\"wp-block-file__content-wrapper\">\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"fileName\"\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\tplaceholder={ __( 'Write file name…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tfileName: removeAnchorTag( text ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t/>\n\t\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t\t<div className=\"wp-block-file__button-richtext-wrapper\">\n\t\t\t\t\t\t\t{ /* Using RichText here instead of PlainText so that it can be styled like a button. */ }\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tidentifier=\"downloadButtonText\"\n\t\t\t\t\t\t\t\ttagName=\"div\" // Must be block-level or else cursor disappears.\n\t\t\t\t\t\t\t\taria-label={ __( 'Download button text' ) }\n\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t\t\t__experimentalGetElementClassName(\n\t\t\t\t\t\t\t\t\t\t'button'\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Add text…' ) }\n\t\t\t\t\t\t\t\tonChange={ ( text ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdownloadButtonText:\n\t\t\t\t\t\t\t\t\t\t\tremoveAnchorTag( text ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default FileEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export const LINK_DESTINATION_NONE = 'none';
|
|
2
2
|
export const LINK_DESTINATION_MEDIA = 'media';
|
|
3
|
+
export const LINK_DESTINATION_LIGHTBOX = 'lightbox';
|
|
3
4
|
export const LINK_DESTINATION_ATTACHMENT = 'attachment';
|
|
4
5
|
export const LINK_DESTINATION_MEDIA_WP_CORE = 'file';
|
|
5
6
|
export const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA_WP_CORE","LINK_DESTINATION_ATTACHMENT_WP_CORE"],"sources":["@wordpress/block-library/src/gallery/constants.js"],"sourcesContent":["export const LINK_DESTINATION_NONE = 'none';\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\nexport const LINK_DESTINATION_MEDIA_WP_CORE = 'file';\nexport const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';\n"],"mappings":"AAAA,OAAO,MAAMA,qBAAqB,GAAG,MAAM;AAC3C,OAAO,MAAMC,sBAAsB,GAAG,OAAO;AAC7C,OAAO,MAAMC,2BAA2B,GAAG,YAAY;AACvD,OAAO,MAAMC,8BAA8B,GAAG,MAAM;AACpD,OAAO,MAAMC,mCAAmC,GAAG,MAAM","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_LIGHTBOX","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA_WP_CORE","LINK_DESTINATION_ATTACHMENT_WP_CORE"],"sources":["@wordpress/block-library/src/gallery/constants.js"],"sourcesContent":["export const LINK_DESTINATION_NONE = 'none';\nexport const LINK_DESTINATION_MEDIA = 'media';\nexport const LINK_DESTINATION_LIGHTBOX = 'lightbox';\nexport const LINK_DESTINATION_ATTACHMENT = 'attachment';\nexport const LINK_DESTINATION_MEDIA_WP_CORE = 'file';\nexport const LINK_DESTINATION_ATTACHMENT_WP_CORE = 'post';\n"],"mappings":"AAAA,OAAO,MAAMA,qBAAqB,GAAG,MAAM;AAC3C,OAAO,MAAMC,sBAAsB,GAAG,OAAO;AAC7C,OAAO,MAAMC,yBAAyB,GAAG,UAAU;AACnD,OAAO,MAAMC,2BAA2B,GAAG,YAAY;AACvD,OAAO,MAAMC,8BAA8B,GAAG,MAAM;AACpD,OAAO,MAAMC,mCAAmC,GAAG,MAAM","ignoreList":[]}
|
|
@@ -7,7 +7,7 @@ import clsx from 'clsx';
|
|
|
7
7
|
* WordPress dependencies
|
|
8
8
|
*/
|
|
9
9
|
import { BaseControl, PanelBody, SelectControl, ToggleControl, RangeControl, Spinner, MenuGroup, MenuItem, ToolbarDropdownMenu } from '@wordpress/components';
|
|
10
|
-
import { store as blockEditorStore, MediaPlaceholder, InspectorControls, useBlockProps, useInnerBlocksProps, BlockControls, MediaReplaceFlow } from '@wordpress/block-editor';
|
|
10
|
+
import { store as blockEditorStore, MediaPlaceholder, InspectorControls, useBlockProps, useInnerBlocksProps, BlockControls, MediaReplaceFlow, useSettings } from '@wordpress/block-editor';
|
|
11
11
|
import { Platform, useEffect, useMemo } from '@wordpress/element';
|
|
12
12
|
import { __, _x, sprintf } from '@wordpress/i18n';
|
|
13
13
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
@@ -15,7 +15,7 @@ import { View } from '@wordpress/primitives';
|
|
|
15
15
|
import { createBlock } from '@wordpress/blocks';
|
|
16
16
|
import { createBlobURL } from '@wordpress/blob';
|
|
17
17
|
import { store as noticesStore } from '@wordpress/notices';
|
|
18
|
-
import { link as linkIcon, customLink, image as imageIcon, linkOff } from '@wordpress/icons';
|
|
18
|
+
import { link as linkIcon, customLink, image as imageIcon, linkOff, fullscreen } from '@wordpress/icons';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Internal dependencies
|
|
@@ -25,14 +25,14 @@ import { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';
|
|
|
25
25
|
import { getHrefAndDestination } from './utils';
|
|
26
26
|
import { getUpdatedLinkTargetSettings, getImageSizeAttributes } from '../image/utils';
|
|
27
27
|
import Gallery from './gallery';
|
|
28
|
-
import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE } from './constants';
|
|
28
|
+
import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE, LINK_DESTINATION_LIGHTBOX } from './constants';
|
|
29
29
|
import useImageSizes from './use-image-sizes';
|
|
30
30
|
import useGetNewImages from './use-get-new-images';
|
|
31
31
|
import useGetMedia from './use-get-media';
|
|
32
32
|
import GapStyles from './gap-styles';
|
|
33
33
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
34
34
|
const MAX_COLUMNS = 8;
|
|
35
|
-
const
|
|
35
|
+
const LINK_OPTIONS = [{
|
|
36
36
|
icon: customLink,
|
|
37
37
|
label: __('Link images to attachment pages'),
|
|
38
38
|
value: LINK_DESTINATION_ATTACHMENT,
|
|
@@ -42,6 +42,12 @@ const linkOptions = [{
|
|
|
42
42
|
label: __('Link images to media files'),
|
|
43
43
|
value: LINK_DESTINATION_MEDIA,
|
|
44
44
|
noticeText: __('Media Files')
|
|
45
|
+
}, {
|
|
46
|
+
icon: fullscreen,
|
|
47
|
+
label: __('Expand on click'),
|
|
48
|
+
value: LINK_DESTINATION_LIGHTBOX,
|
|
49
|
+
noticeText: __('Lightbox effect'),
|
|
50
|
+
infoText: __('Scale images with a lightbox effect')
|
|
45
51
|
}, {
|
|
46
52
|
icon: linkOff,
|
|
47
53
|
label: _x('None', 'Media item link option'),
|
|
@@ -68,6 +74,8 @@ export default function GalleryEdit(props) {
|
|
|
68
74
|
isContentLocked,
|
|
69
75
|
onFocus
|
|
70
76
|
} = props;
|
|
77
|
+
const [lightboxSetting] = useSettings('blocks.core/image.lightbox');
|
|
78
|
+
const linkOptions = !lightboxSetting?.allowEditing ? LINK_OPTIONS.filter(option => option.value !== LINK_DESTINATION_LIGHTBOX) : LINK_OPTIONS;
|
|
71
79
|
const {
|
|
72
80
|
columns,
|
|
73
81
|
imageCrop,
|
|
@@ -244,7 +252,7 @@ export default function GalleryEdit(props) {
|
|
|
244
252
|
const image = block.attributes.id ? imageData.find(({
|
|
245
253
|
id
|
|
246
254
|
}) => id === block.attributes.id) : null;
|
|
247
|
-
changedAttributes[block.clientId] = getHrefAndDestination(image, value);
|
|
255
|
+
changedAttributes[block.clientId] = getHrefAndDestination(image, value, false, block.attributes, lightboxSetting);
|
|
248
256
|
});
|
|
249
257
|
updateBlockAttributes(blocks, changedAttributes, true);
|
|
250
258
|
const linkToText = [...linkOptions].find(linkType => linkType.value === value);
|
|
@@ -451,6 +459,7 @@ export default function GalleryEdit(props) {
|
|
|
451
459
|
onClose();
|
|
452
460
|
},
|
|
453
461
|
role: "menuitemradio",
|
|
462
|
+
info: linkItem.infoText,
|
|
454
463
|
children: linkItem.label
|
|
455
464
|
}, linkItem.value);
|
|
456
465
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","BaseControl","PanelBody","SelectControl","ToggleControl","RangeControl","Spinner","MenuGroup","MenuItem","ToolbarDropdownMenu","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","useInnerBlocksProps","BlockControls","MediaReplaceFlow","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","View","createBlock","createBlobURL","noticesStore","link","linkIcon","customLink","image","imageIcon","linkOff","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useGetNewImages","useGetMedia","GapStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MAX_COLUMNS","linkOptions","icon","label","value","noticeText","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","DEFAULT_BLOCK","name","EMPTY_ARRAY","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","onFocus","columns","imageCrop","randomOrder","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","createSuccessNotice","createErrorNotice","getBlock","getSettings","innerBlockImages","blockWasJustInserted","multiGallerySelection","select","_getBlock$innerBlocks","getBlockName","getMultiSelectedBlockClientIds","_getSettings","_getBlock","wasBlockJustInserted","multiSelectedClientIds","innerBlocks","length","every","_clientId","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","imageAttributes","find","newClassName","newLinkTarget","rel","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","blob","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","toggleRandomOrder","toggleOpenInNewTab","openInNewTab","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","settings","defaultProps","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","handleUpload","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","children","hasLinkTo","__nextHasNoMarginBottom","onChange","min","max","Math","required","__next40pxDefaultSize","help","options","hideCancelButton","checked","isWeb","VisualLabel","group","onClose","linkItem","isOptionSelected","iconPosition","onClick","role","mediaIds","blockGap","style","spacing"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tMenuGroup,\n\tMenuItem,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tlink as linkIcon,\n\tcustomLink,\n\timage as imageIcon,\n\tlinkOff,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{\n\t\ticon: customLink,\n\t\tlabel: __( 'Link images to attachment pages' ),\n\t\tvalue: LINK_DESTINATION_ATTACHMENT,\n\t\tnoticeText: __( 'Attachment Pages' ),\n\t},\n\t{\n\t\ticon: imageIcon,\n\t\tlabel: __( 'Link images to media files' ),\n\t\tvalue: LINK_DESTINATION_MEDIA,\n\t\tnoticeText: __( 'Media Files' ),\n\t},\n\t{\n\t\ticon: linkOff,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tnoticeText: __( 'None' ),\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\nconst DEFAULT_BLOCK = { name: 'core/image' };\nconst EMPTY_ARRAY = [];\n\nexport default function GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t\tonFocus,\n\t} = props;\n\n\tconst { columns, imageCrop, randomOrder, linkTarget, linkTo, sizeSlug } =\n\t\tattributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.blob\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 {\n\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tblob: file.blob || 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\tblob: image.blob,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.noticeText\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 toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && blockWasJustInserted,\n\t\t\tonFocus,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isNative ? (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open images 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{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t\tclassName=\"gallery-image-sizes\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className=\"gallery-image-sizes__loading\">\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ Platform.isWeb ? (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t{ linkOptions.map( ( linkItem ) => {\n\t\t\t\t\t\t\t\t\tconst isOptionSelected =\n\t\t\t\t\t\t\t\t\t\tlinkTo === linkItem.value;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ linkItem.value }\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isOptionSelected }\n\t\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisOptionSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ linkItem.icon }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetLinkTo( linkItem.value );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ linkItem.label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</BlockControls>\n\t\t\t) : null }\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","BaseControl","PanelBody","SelectControl","ToggleControl","RangeControl","Spinner","MenuGroup","MenuItem","ToolbarDropdownMenu","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","useInnerBlocksProps","BlockControls","MediaReplaceFlow","useSettings","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","View","createBlock","createBlobURL","noticesStore","link","linkIcon","customLink","image","imageIcon","linkOff","fullscreen","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","LINK_DESTINATION_LIGHTBOX","useImageSizes","useGetNewImages","useGetMedia","GapStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MAX_COLUMNS","LINK_OPTIONS","icon","label","value","noticeText","infoText","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","DEFAULT_BLOCK","name","EMPTY_ARRAY","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","onFocus","lightboxSetting","linkOptions","allowEditing","filter","option","columns","imageCrop","randomOrder","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","createSuccessNotice","createErrorNotice","getBlock","getSettings","innerBlockImages","blockWasJustInserted","multiGallerySelection","select","_getBlock$innerBlocks","getBlockName","getMultiSelectedBlockClientIds","_getSettings","_getBlock","wasBlockJustInserted","multiSelectedClientIds","innerBlocks","length","every","_clientId","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","imageAttributes","find","newClassName","newLinkTarget","rel","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","blob","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","processedImages","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","toggleRandomOrder","toggleOpenInNewTab","openInNewTab","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","settings","defaultProps","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","handleUpload","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","children","hasLinkTo","__nextHasNoMarginBottom","onChange","min","max","Math","required","__next40pxDefaultSize","help","options","hideCancelButton","checked","isWeb","VisualLabel","group","onClose","linkItem","isOptionSelected","iconPosition","onClick","role","info","mediaIds","blockGap","style","spacing"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n\tMenuGroup,\n\tMenuItem,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n\tuseSettings,\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 { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tlink as linkIcon,\n\tcustomLink,\n\timage as imageIcon,\n\tlinkOff,\n\tfullscreen,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_LIGHTBOX,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst LINK_OPTIONS = [\n\t{\n\t\ticon: customLink,\n\t\tlabel: __( 'Link images to attachment pages' ),\n\t\tvalue: LINK_DESTINATION_ATTACHMENT,\n\t\tnoticeText: __( 'Attachment Pages' ),\n\t},\n\t{\n\t\ticon: imageIcon,\n\t\tlabel: __( 'Link images to media files' ),\n\t\tvalue: LINK_DESTINATION_MEDIA,\n\t\tnoticeText: __( 'Media Files' ),\n\t},\n\t{\n\t\ticon: fullscreen,\n\t\tlabel: __( 'Expand on click' ),\n\t\tvalue: LINK_DESTINATION_LIGHTBOX,\n\t\tnoticeText: __( 'Lightbox effect' ),\n\t\tinfoText: __( 'Scale images with a lightbox effect' ),\n\t},\n\t{\n\t\ticon: linkOff,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tnoticeText: __( 'None' ),\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\nconst DEFAULT_BLOCK = { name: 'core/image' };\nconst EMPTY_ARRAY = [];\n\nexport default function GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t\tonFocus,\n\t} = props;\n\n\tconst [ lightboxSetting ] = useSettings( 'blocks.core/image.lightbox' );\n\n\tconst linkOptions = ! lightboxSetting?.allowEditing\n\t\t? LINK_OPTIONS.filter(\n\t\t\t\t( option ) => option.value !== LINK_DESTINATION_LIGHTBOX\n\t\t )\n\t\t: LINK_OPTIONS;\n\n\tconst { columns, imageCrop, randomOrder, linkTarget, linkTo, sizeSlug } =\n\t\tattributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.blob\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 {\n\t\t\t\t\t\t\tblob: createBlobURL( file ),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tblob: file.blob || 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\tblob: image.blob,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue,\n\t\t\t\tfalse,\n\t\t\t\tblock.attributes,\n\t\t\t\tlightboxSetting\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.noticeText\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 toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && blockWasJustInserted,\n\t\t\tonFocus,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isNative ? (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null }\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open images 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{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t\tclassName=\"gallery-image-sizes\"\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className=\"gallery-image-sizes__loading\">\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ Platform.isWeb ? (\n\t\t\t\t<BlockControls group=\"block\">\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t{ linkOptions.map( ( linkItem ) => {\n\t\t\t\t\t\t\t\t\tconst isOptionSelected =\n\t\t\t\t\t\t\t\t\t\tlinkTo === linkItem.value;\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\tkey={ linkItem.value }\n\t\t\t\t\t\t\t\t\t\t\tisSelected={ isOptionSelected }\n\t\t\t\t\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t'is-active':\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisOptionSelected,\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\ticonPosition=\"left\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ linkItem.icon }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetLinkTo( linkItem.value );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t\t\tinfo={ linkItem.infoText }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ linkItem.label }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t\t</BlockControls>\n\t\t\t) : null }\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Internal dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE, LINK_DESTINATION_MEDIA_WP_CORE, LINK_DESTINATION_ATTACHMENT_WP_CORE } from './constants';
|
|
4
|
+
import { LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE, LINK_DESTINATION_MEDIA_WP_CORE, LINK_DESTINATION_ATTACHMENT_WP_CORE, LINK_DESTINATION_LIGHTBOX } from './constants';
|
|
5
5
|
import { LINK_DESTINATION_ATTACHMENT as IMAGE_LINK_DESTINATION_ATTACHMENT, LINK_DESTINATION_MEDIA as IMAGE_LINK_DESTINATION_MEDIA, LINK_DESTINATION_NONE as IMAGE_LINK_DESTINATION_NONE } from '../image/constants';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -10,10 +10,13 @@ import { LINK_DESTINATION_ATTACHMENT as IMAGE_LINK_DESTINATION_ATTACHMENT, LINK_
|
|
|
10
10
|
*
|
|
11
11
|
* @param {Object} image Gallery image.
|
|
12
12
|
* @param {string} galleryDestination Gallery's selected link destination.
|
|
13
|
-
* @param {Object} imageDestination Image
|
|
13
|
+
* @param {Object} imageDestination Image block link destination attribute.
|
|
14
|
+
* @param {Object} attributes Block attributes.
|
|
15
|
+
* @param {Object} lightboxSetting Lightbox setting.
|
|
16
|
+
*
|
|
14
17
|
* @return {Object} New attributes to assign to image block.
|
|
15
18
|
*/
|
|
16
|
-
export function getHrefAndDestination(image, galleryDestination, imageDestination) {
|
|
19
|
+
export function getHrefAndDestination(image, galleryDestination, imageDestination, attributes, lightboxSetting) {
|
|
17
20
|
// Gutenberg and WordPress use different constants so if image_default_link_type
|
|
18
21
|
// option is set we need to map from the WP Core values.
|
|
19
22
|
switch (imageDestination ? imageDestination : galleryDestination) {
|
|
@@ -22,19 +25,37 @@ export function getHrefAndDestination(image, galleryDestination, imageDestinatio
|
|
|
22
25
|
return {
|
|
23
26
|
href: image?.source_url || image?.url,
|
|
24
27
|
// eslint-disable-line camelcase
|
|
25
|
-
linkDestination: IMAGE_LINK_DESTINATION_MEDIA
|
|
28
|
+
linkDestination: IMAGE_LINK_DESTINATION_MEDIA,
|
|
29
|
+
lightbox: lightboxSetting?.enabled ? {
|
|
30
|
+
...attributes?.lightbox,
|
|
31
|
+
enabled: false
|
|
32
|
+
} : undefined
|
|
26
33
|
};
|
|
27
34
|
case LINK_DESTINATION_ATTACHMENT_WP_CORE:
|
|
28
35
|
case LINK_DESTINATION_ATTACHMENT:
|
|
29
36
|
return {
|
|
30
37
|
href: image?.link,
|
|
31
|
-
linkDestination: IMAGE_LINK_DESTINATION_ATTACHMENT
|
|
38
|
+
linkDestination: IMAGE_LINK_DESTINATION_ATTACHMENT,
|
|
39
|
+
lightbox: lightboxSetting?.enabled ? {
|
|
40
|
+
...attributes?.lightbox,
|
|
41
|
+
enabled: false
|
|
42
|
+
} : undefined
|
|
32
43
|
};
|
|
33
|
-
case
|
|
44
|
+
case LINK_DESTINATION_LIGHTBOX:
|
|
34
45
|
return {
|
|
35
46
|
href: undefined,
|
|
47
|
+
lightbox: !lightboxSetting?.enabled ? {
|
|
48
|
+
...attributes?.lightbox,
|
|
49
|
+
enabled: true
|
|
50
|
+
} : undefined,
|
|
36
51
|
linkDestination: IMAGE_LINK_DESTINATION_NONE
|
|
37
52
|
};
|
|
53
|
+
case LINK_DESTINATION_NONE:
|
|
54
|
+
return {
|
|
55
|
+
href: undefined,
|
|
56
|
+
linkDestination: IMAGE_LINK_DESTINATION_NONE,
|
|
57
|
+
lightbox: undefined
|
|
58
|
+
};
|
|
38
59
|
}
|
|
39
60
|
return {};
|
|
40
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA_WP_CORE","LINK_DESTINATION_ATTACHMENT_WP_CORE","IMAGE_LINK_DESTINATION_ATTACHMENT","IMAGE_LINK_DESTINATION_MEDIA","IMAGE_LINK_DESTINATION_NONE","getHrefAndDestination","image","galleryDestination","imageDestination","href","source_url","url","linkDestination","
|
|
1
|
+
{"version":3,"names":["LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA_WP_CORE","LINK_DESTINATION_ATTACHMENT_WP_CORE","LINK_DESTINATION_LIGHTBOX","IMAGE_LINK_DESTINATION_ATTACHMENT","IMAGE_LINK_DESTINATION_MEDIA","IMAGE_LINK_DESTINATION_NONE","getHrefAndDestination","image","galleryDestination","imageDestination","attributes","lightboxSetting","href","source_url","url","linkDestination","lightbox","enabled","undefined","link"],"sources":["@wordpress/block-library/src/gallery/utils.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_MEDIA_WP_CORE,\n\tLINK_DESTINATION_ATTACHMENT_WP_CORE,\n\tLINK_DESTINATION_LIGHTBOX,\n} from './constants';\nimport {\n\tLINK_DESTINATION_ATTACHMENT as IMAGE_LINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA as IMAGE_LINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE as IMAGE_LINK_DESTINATION_NONE,\n} from '../image/constants';\n\n/**\n * Determines new href and linkDestination values for an Image block from the\n * supplied Gallery link destination, or falls back to the Image blocks link.\n *\n * @param {Object} image Gallery image.\n * @param {string} galleryDestination Gallery's selected link destination.\n * @param {Object} imageDestination Image block link destination attribute.\n * @param {Object} attributes Block attributes.\n * @param {Object} lightboxSetting Lightbox setting.\n *\n * @return {Object} New attributes to assign to image block.\n */\nexport function getHrefAndDestination(\n\timage,\n\tgalleryDestination,\n\timageDestination,\n\tattributes,\n\tlightboxSetting\n) {\n\t// Gutenberg and WordPress use different constants so if image_default_link_type\n\t// option is set we need to map from the WP Core values.\n\tswitch ( imageDestination ? imageDestination : galleryDestination ) {\n\t\tcase LINK_DESTINATION_MEDIA_WP_CORE:\n\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\treturn {\n\t\t\t\thref: image?.source_url || image?.url, // eslint-disable-line camelcase\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_MEDIA,\n\t\t\t\tlightbox: lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: false }\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\tcase LINK_DESTINATION_ATTACHMENT_WP_CORE:\n\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\treturn {\n\t\t\t\thref: image?.link,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_ATTACHMENT,\n\t\t\t\tlightbox: lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: false }\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\tcase LINK_DESTINATION_LIGHTBOX:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlightbox: ! lightboxSetting?.enabled\n\t\t\t\t\t? { ...attributes?.lightbox, enabled: true }\n\t\t\t\t\t: undefined,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_NONE,\n\t\t\t};\n\t\tcase LINK_DESTINATION_NONE:\n\t\t\treturn {\n\t\t\t\thref: undefined,\n\t\t\t\tlinkDestination: IMAGE_LINK_DESTINATION_NONE,\n\t\t\t\tlightbox: undefined,\n\t\t\t};\n\t}\n\n\treturn {};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,2BAA2B,EAC3BC,sBAAsB,EACtBC,qBAAqB,EACrBC,8BAA8B,EAC9BC,mCAAmC,EACnCC,yBAAyB,QACnB,aAAa;AACpB,SACCL,2BAA2B,IAAIM,iCAAiC,EAChEL,sBAAsB,IAAIM,4BAA4B,EACtDL,qBAAqB,IAAIM,2BAA2B,QAC9C,oBAAoB;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CACpCC,KAAK,EACLC,kBAAkB,EAClBC,gBAAgB,EAChBC,UAAU,EACVC,eAAe,EACd;EACD;EACA;EACA,QAASF,gBAAgB,GAAGA,gBAAgB,GAAGD,kBAAkB;IAChE,KAAKR,8BAA8B;IACnC,KAAKF,sBAAsB;MAC1B,OAAO;QACNc,IAAI,EAAEL,KAAK,EAAEM,UAAU,IAAIN,KAAK,EAAEO,GAAG;QAAE;QACvCC,eAAe,EAAEX,4BAA4B;QAC7CY,QAAQ,EAAEL,eAAe,EAAEM,OAAO,GAC/B;UAAE,GAAGP,UAAU,EAAEM,QAAQ;UAAEC,OAAO,EAAE;QAAM,CAAC,GAC3CC;MACJ,CAAC;IACF,KAAKjB,mCAAmC;IACxC,KAAKJ,2BAA2B;MAC/B,OAAO;QACNe,IAAI,EAAEL,KAAK,EAAEY,IAAI;QACjBJ,eAAe,EAAEZ,iCAAiC;QAClDa,QAAQ,EAAEL,eAAe,EAAEM,OAAO,GAC/B;UAAE,GAAGP,UAAU,EAAEM,QAAQ;UAAEC,OAAO,EAAE;QAAM,CAAC,GAC3CC;MACJ,CAAC;IACF,KAAKhB,yBAAyB;MAC7B,OAAO;QACNU,IAAI,EAAEM,SAAS;QACfF,QAAQ,EAAE,CAAEL,eAAe,EAAEM,OAAO,GACjC;UAAE,GAAGP,UAAU,EAAEM,QAAQ;UAAEC,OAAO,EAAE;QAAK,CAAC,GAC1CC,SAAS;QACZH,eAAe,EAAEV;MAClB,CAAC;IACF,KAAKN,qBAAqB;MACzB,OAAO;QACNa,IAAI,EAAEM,SAAS;QACfH,eAAe,EAAEV,2BAA2B;QAC5CW,QAAQ,EAAEE;MACX,CAAC;EACH;EAEA,OAAO,CAAC,CAAC;AACV","ignoreList":[]}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { useContext, useState } from '@wordpress/element';
|
|
6
|
-
import { BlockControls, PlainText, useBlockProps } from '@wordpress/block-editor';
|
|
6
|
+
import { BlockControls, PlainText, useBlockProps, store as blockEditorStore } from '@wordpress/block-editor';
|
|
7
7
|
import { ToolbarButton, Disabled, ToolbarGroup, VisuallyHidden } from '@wordpress/components';
|
|
8
|
+
import { useSelect } from '@wordpress/data';
|
|
8
9
|
import { useInstanceId } from '@wordpress/compose';
|
|
9
10
|
|
|
10
11
|
/**
|
|
@@ -20,6 +21,9 @@ export default function HTMLEdit({
|
|
|
20
21
|
const [isPreview, setIsPreview] = useState();
|
|
21
22
|
const isDisabled = useContext(Disabled.Context);
|
|
22
23
|
const instanceId = useInstanceId(HTMLEdit, 'html-edit-desc');
|
|
24
|
+
const isPreviewMode = useSelect(select => {
|
|
25
|
+
return select(blockEditorStore).getSettings().isPreviewMode;
|
|
26
|
+
}, []);
|
|
23
27
|
function switchToPreview() {
|
|
24
28
|
setIsPreview(true);
|
|
25
29
|
}
|
|
@@ -44,7 +48,7 @@ export default function HTMLEdit({
|
|
|
44
48
|
children: __('Preview')
|
|
45
49
|
})]
|
|
46
50
|
})
|
|
47
|
-
}), isPreview || isDisabled ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
51
|
+
}), isPreview || isPreviewMode || isDisabled ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
48
52
|
children: [/*#__PURE__*/_jsx(Preview, {
|
|
49
53
|
content: attributes.content,
|
|
50
54
|
isSelected: isSelected
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","useContext","useState","BlockControls","PlainText","useBlockProps","ToolbarButton","Disabled","ToolbarGroup","VisuallyHidden","useInstanceId","Preview","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","HTMLEdit","attributes","setAttributes","isSelected","isPreview","setIsPreview","isDisabled","Context","instanceId","switchToPreview","switchToHTML","blockProps","className","undefined","children","isPressed","onClick","content","id","value","onChange","placeholder"],"sources":["@wordpress/block-library/src/html/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useState } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tPlainText,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tDisabled,\n\tToolbarGroup,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Preview from './preview';\n\nexport default function HTMLEdit( { attributes, setAttributes, isSelected } ) {\n\tconst [ isPreview, setIsPreview ] = useState();\n\tconst isDisabled = useContext( Disabled.Context );\n\n\tconst instanceId = useInstanceId( HTMLEdit, 'html-edit-desc' );\n\n\tfunction switchToPreview() {\n\t\tsetIsPreview( true );\n\t}\n\n\tfunction switchToHTML() {\n\t\tsetIsPreview( false );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-html__edit',\n\t\t'aria-describedby': isPreview ? instanceId : undefined,\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ ! isPreview }\n\t\t\t\t\t\tonClick={ switchToHTML }\n\t\t\t\t\t>\n\t\t\t\t\t\tHTML\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ isPreview }\n\t\t\t\t\t\tonClick={ switchToPreview }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ isPreview || isDisabled ? (\n\t\t\t\t<>\n\t\t\t\t\t<Preview\n\t\t\t\t\t\tcontent={ attributes.content }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<VisuallyHidden id={ instanceId }>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<PlainText\n\t\t\t\t\tvalue={ attributes.content }\n\t\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\t\tplaceholder={ __( 'Write HTML…' ) }\n\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,EAAEC,QAAQ,QAAQ,oBAAoB;AACzD,SACCC,aAAa,EACbC,SAAS,EACTC,aAAa,
|
|
1
|
+
{"version":3,"names":["__","useContext","useState","BlockControls","PlainText","useBlockProps","store","blockEditorStore","ToolbarButton","Disabled","ToolbarGroup","VisuallyHidden","useSelect","useInstanceId","Preview","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","HTMLEdit","attributes","setAttributes","isSelected","isPreview","setIsPreview","isDisabled","Context","instanceId","isPreviewMode","select","getSettings","switchToPreview","switchToHTML","blockProps","className","undefined","children","isPressed","onClick","content","id","value","onChange","placeholder"],"sources":["@wordpress/block-library/src/html/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useContext, useState } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tPlainText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tDisabled,\n\tToolbarGroup,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Preview from './preview';\n\nexport default function HTMLEdit( { attributes, setAttributes, isSelected } ) {\n\tconst [ isPreview, setIsPreview ] = useState();\n\tconst isDisabled = useContext( Disabled.Context );\n\n\tconst instanceId = useInstanceId( HTMLEdit, 'html-edit-desc' );\n\n\tconst isPreviewMode = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().isPreviewMode;\n\t}, [] );\n\n\tfunction switchToPreview() {\n\t\tsetIsPreview( true );\n\t}\n\n\tfunction switchToHTML() {\n\t\tsetIsPreview( false );\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: 'block-library-html__edit',\n\t\t'aria-describedby': isPreview ? instanceId : undefined,\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ ! isPreview }\n\t\t\t\t\t\tonClick={ switchToHTML }\n\t\t\t\t\t>\n\t\t\t\t\t\tHTML\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tisPressed={ isPreview }\n\t\t\t\t\t\tonClick={ switchToPreview }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Preview' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ isPreview || isPreviewMode || isDisabled ? (\n\t\t\t\t<>\n\t\t\t\t\t<Preview\n\t\t\t\t\t\tcontent={ attributes.content }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t/>\n\t\t\t\t\t<VisuallyHidden id={ instanceId }>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'HTML preview is not yet fully accessible. Please switch screen reader to virtualized mode to navigate the below iFrame.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<PlainText\n\t\t\t\t\tvalue={ attributes.content }\n\t\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\t\tplaceholder={ __( 'Write HTML…' ) }\n\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,EAAEC,QAAQ,QAAQ,oBAAoB;AACzD,SACCC,aAAa,EACbC,SAAS,EACTC,aAAa,EACbC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SACCC,aAAa,EACbC,QAAQ,EACRC,YAAY,EACZC,cAAc,QACR,uBAAuB;AAC9B,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,aAAa,QAAQ,oBAAoB;;AAElD;AACA;AACA;AACA,OAAOC,OAAO,MAAM,WAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAEhC,eAAe,SAASC,QAAQA,CAAE;EAAEC,UAAU;EAAEC,aAAa;EAAEC;AAAW,CAAC,EAAG;EAC7E,MAAM,CAAEC,SAAS,EAAEC,YAAY,CAAE,GAAGxB,QAAQ,CAAC,CAAC;EAC9C,MAAMyB,UAAU,GAAG1B,UAAU,CAAEQ,QAAQ,CAACmB,OAAQ,CAAC;EAEjD,MAAMC,UAAU,GAAGhB,aAAa,CAAEQ,QAAQ,EAAE,gBAAiB,CAAC;EAE9D,MAAMS,aAAa,GAAGlB,SAAS,CAAImB,MAAM,IAAM;IAC9C,OAAOA,MAAM,CAAExB,gBAAiB,CAAC,CAACyB,WAAW,CAAC,CAAC,CAACF,aAAa;EAC9D,CAAC,EAAE,EAAG,CAAC;EAEP,SAASG,eAAeA,CAAA,EAAG;IAC1BP,YAAY,CAAE,IAAK,CAAC;EACrB;EAEA,SAASQ,YAAYA,CAAA,EAAG;IACvBR,YAAY,CAAE,KAAM,CAAC;EACtB;EAEA,MAAMS,UAAU,GAAG9B,aAAa,CAAE;IACjC+B,SAAS,EAAE,0BAA0B;IACrC,kBAAkB,EAAEX,SAAS,GAAGI,UAAU,GAAGQ;EAC9C,CAAE,CAAC;EAEH,oBACCnB,KAAA;IAAA,GAAUiB,UAAU;IAAAG,QAAA,gBACnBtB,IAAA,CAACb,aAAa;MAAAmC,QAAA,eACbpB,KAAA,CAACR,YAAY;QAAA4B,QAAA,gBACZtB,IAAA,CAACR,aAAa;UACb+B,SAAS,EAAG,CAAEd,SAAW;UACzBe,OAAO,EAAGN,YAAc;UAAAI,QAAA,EACxB;QAED,CAAe,CAAC,eAChBtB,IAAA,CAACR,aAAa;UACb+B,SAAS,EAAGd,SAAW;UACvBe,OAAO,EAAGP,eAAiB;UAAAK,QAAA,EAEzBtC,EAAE,CAAE,SAAU;QAAC,CACH,CAAC;MAAA,CACH;IAAC,CACD,CAAC,EACdyB,SAAS,IAAIK,aAAa,IAAIH,UAAU,gBACzCT,KAAA,CAAAE,SAAA;MAAAkB,QAAA,gBACCtB,IAAA,CAACF,OAAO;QACP2B,OAAO,EAAGnB,UAAU,CAACmB,OAAS;QAC9BjB,UAAU,EAAGA;MAAY,CACzB,CAAC,eACFR,IAAA,CAACL,cAAc;QAAC+B,EAAE,EAAGb,UAAY;QAAAS,QAAA,EAC9BtC,EAAE,CACH,yHACD;MAAC,CACc,CAAC;IAAA,CAChB,CAAC,gBAEHgB,IAAA,CAACZ,SAAS;MACTuC,KAAK,EAAGrB,UAAU,CAACmB,OAAS;MAC5BG,QAAQ,EAAKH,OAAO,IAAMlB,aAAa,CAAE;QAAEkB;MAAQ,CAAE,CAAG;MACxDI,WAAW,EAAG7C,EAAE,CAAE,aAAc,CAAG;MACnC,cAAaA,EAAE,CAAE,MAAO;IAAG,CAC3B,CACD;EAAA,CACG,CAAC;AAER","ignoreList":[]}
|
|
@@ -22,8 +22,8 @@ export default function HTMLEditPreview({
|
|
|
22
22
|
content,
|
|
23
23
|
isSelected
|
|
24
24
|
}) {
|
|
25
|
-
const settingStyles = useSelect(select => select(blockEditorStore).getSettings().styles);
|
|
26
|
-
const styles = useMemo(() => [DEFAULT_STYLES, ...transformStyles(settingStyles.filter(style => style.css))], [settingStyles]);
|
|
25
|
+
const settingStyles = useSelect(select => select(blockEditorStore).getSettings().styles, []);
|
|
26
|
+
const styles = useMemo(() => [DEFAULT_STYLES, ...transformStyles((settingStyles !== null && settingStyles !== void 0 ? settingStyles : []).filter(style => style.css))], [settingStyles]);
|
|
27
27
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
28
28
|
children: [/*#__PURE__*/_jsx(SandBox, {
|
|
29
29
|
html: content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","transformStyles","store","blockEditorStore","SandBox","useSelect","__","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_STYLES","HTMLEditPreview","content","isSelected","settingStyles","select","getSettings","styles","filter","style","css","children","html","title","tabIndex","className"],"sources":["@wordpress/block-library/src/html/preview.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\ttransformStyles,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SandBox } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n// Default styles used to unset some of the styles\n// that might be inherited from the editor style.\nconst DEFAULT_STYLES = `\n\thtml,body,:root {\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t\toverflow: visible !important;\n\t\tmin-height: auto !important;\n\t}\n`;\n\nexport default function HTMLEditPreview( { content, isSelected } ) {\n\tconst settingStyles = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().styles\n\t);\n\n\tconst styles = useMemo(\n\t\t() => [\n\t\t\tDEFAULT_STYLES,\n\t\t\t...transformStyles(\n\t\t\t\
|
|
1
|
+
{"version":3,"names":["useMemo","transformStyles","store","blockEditorStore","SandBox","useSelect","__","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","DEFAULT_STYLES","HTMLEditPreview","content","isSelected","settingStyles","select","getSettings","styles","filter","style","css","children","html","title","tabIndex","className"],"sources":["@wordpress/block-library/src/html/preview.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport {\n\ttransformStyles,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { SandBox } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\n\n// Default styles used to unset some of the styles\n// that might be inherited from the editor style.\nconst DEFAULT_STYLES = `\n\thtml,body,:root {\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t\toverflow: visible !important;\n\t\tmin-height: auto !important;\n\t}\n`;\n\nexport default function HTMLEditPreview( { content, isSelected } ) {\n\tconst settingStyles = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().styles,\n\t\t[]\n\t);\n\n\tconst styles = useMemo(\n\t\t() => [\n\t\t\tDEFAULT_STYLES,\n\t\t\t...transformStyles(\n\t\t\t\t( settingStyles ?? [] ).filter( ( style ) => style.css )\n\t\t\t),\n\t\t],\n\t\t[ settingStyles ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<SandBox\n\t\t\t\thtml={ content }\n\t\t\t\tstyles={ styles }\n\t\t\t\ttitle={ __( 'Custom HTML Preview' ) }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t/>\n\t\t\t{ /*\n\t\t\t\tAn overlay is added when the block is not selected in order to register click events.\n\t\t\t\tSome browsers do not bubble up the clicks from the sandboxed iframe, which makes it\n\t\t\t\tdifficult to reselect the block.\n\t\t\t*/ }\n\t\t\t{ ! isSelected && (\n\t\t\t\t<div className=\"block-library-html__preview-overlay\"></div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,oBAAoB;AAC5C,SACCC,eAAe,EACfC,KAAK,IAAIC,gBAAgB,QACnB,yBAAyB;AAChC,SAASC,OAAO,QAAQ,uBAAuB;AAC/C,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,cAAc,GAAG;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,eAAe,SAASC,eAAeA,CAAE;EAAEC,OAAO;EAAEC;AAAW,CAAC,EAAG;EAClE,MAAMC,aAAa,GAAGZ,SAAS,CAC5Ba,MAAM,IAAMA,MAAM,CAAEf,gBAAiB,CAAC,CAACgB,WAAW,CAAC,CAAC,CAACC,MAAM,EAC7D,EACD,CAAC;EAED,MAAMA,MAAM,GAAGpB,OAAO,CACrB,MAAM,CACLa,cAAc,EACd,GAAGZ,eAAe,CACjB,CAAEgB,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,EAAE,EAAGI,MAAM,CAAIC,KAAK,IAAMA,KAAK,CAACC,GAAI,CACxD,CAAC,CACD,EACD,CAAEN,aAAa,CAChB,CAAC;EAED,oBACCL,KAAA,CAAAF,SAAA;IAAAc,QAAA,gBACChB,IAAA,CAACJ,OAAO;MACPqB,IAAI,EAAGV,OAAS;MAChBK,MAAM,EAAGA,MAAQ;MACjBM,KAAK,EAAGpB,EAAE,CAAE,qBAAsB,CAAG;MACrCqB,QAAQ,EAAG,CAAC;IAAG,CACf,CAAC,EAMA,CAAEX,UAAU,iBACbR,IAAA;MAAKoB,SAAS,EAAC;IAAqC,CAAM,CAC1D;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
@@ -104,17 +104,12 @@ export default function LatestPostsEdit({
|
|
|
104
104
|
|
|
105
105
|
// If a user clicks to a link prevent redirection and show a warning.
|
|
106
106
|
const {
|
|
107
|
-
createWarningNotice
|
|
108
|
-
removeNotice
|
|
107
|
+
createWarningNotice
|
|
109
108
|
} = useDispatch(noticeStore);
|
|
110
|
-
let noticeId;
|
|
111
109
|
const showRedirectionPreventedNotice = event => {
|
|
112
110
|
event.preventDefault();
|
|
113
|
-
// Remove previous warning if any, to show one at a time per block.
|
|
114
|
-
removeNotice(noticeId);
|
|
115
|
-
noticeId = `block-library/core/latest-posts/redirection-prevented/${instanceId}`;
|
|
116
111
|
createWarningNotice(__('Links are disabled in the editor.'), {
|
|
117
|
-
id:
|
|
112
|
+
id: `block-library/core/latest-posts/redirection-prevented/${instanceId}`,
|
|
118
113
|
type: 'snackbar'
|
|
119
114
|
});
|
|
120
115
|
};
|
|
@@ -426,7 +421,7 @@ export default function LatestPostsEdit({
|
|
|
426
421
|
children: !titleTrimmed ? __('(no title)') : null
|
|
427
422
|
}), displayAuthor && currentAuthor && /*#__PURE__*/_jsx("div", {
|
|
428
423
|
className: "wp-block-latest-posts__post-author",
|
|
429
|
-
children: sprintf(/* translators: byline. %s:
|
|
424
|
+
children: sprintf(/* translators: byline. %s: author. */
|
|
430
425
|
__('by %s'), currentAuthor.name)
|
|
431
426
|
}), displayPostDate && post.date_gmt && /*#__PURE__*/_jsx("time", {
|
|
432
427
|
dateTime: format('c', post.date_gmt),
|