@wordpress/block-editor 14.20.0 → 14.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/components/inserter/media-tab/media-preview.js +1 -1
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/url-input/button.js +50 -62
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/warning/index.js +1 -1
- package/build/components/warning/index.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/url-input/button.js +53 -63
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/warning/index.js +1 -1
- package/build-module/components/warning/index.js.map +1 -1
- package/package.json +34 -34
- package/src/components/inserter/media-tab/media-preview.js +1 -1
- package/src/components/url-input/button.js +59 -65
- package/src/components/warning/index.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -33,7 +33,7 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
33
33
|
|
|
34
34
|
const ALLOWED_MEDIA_TYPES = ['image'];
|
|
35
35
|
const MEDIA_OPTIONS_POPOVER_PROPS = {
|
|
36
|
-
|
|
36
|
+
placement: 'bottom-end',
|
|
37
37
|
className: 'block-editor-inserter__media-list__item-preview-options__popover'
|
|
38
38
|
};
|
|
39
39
|
function MediaPreviewOptions({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_blocks","_icons","_data","_notices","_blob","_url","_inserterDraggableBlocks","_utils","_store","_jsxRuntime","ALLOWED_MEDIA_TYPES","MEDIA_OPTIONS_POPOVER_PROPS","position","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","jsx","DropdownMenu","label","__","popoverProps","icon","moreVertical","children","MenuGroup","MenuItem","onClick","window","open","focus","external","sprintf","mediaType","InsertExternalImageModal","onClose","onSubmit","jsxs","Modal","title","onRequestClose","__experimentalVStack","spacing","Flex","justify","expanded","FlexItem","Button","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","useState","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","useMemo","getBlockAndPreviewFromMedia","createErrorNotice","createSuccessNotice","useDispatch","noticesStore","getSettings","getBlock","useSelect","blockEditorStore","updateBlockAttributes","onMediaInsert","useCallback","previewBlock","settings","clonedBlock","cloneBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","fileName","getFilename","file","File","type","filesList","additionalData","onFileChange","img","isBlobURL","clientId","allowedTypes","onError","message","catch","rendered","onMouseEnter","onMouseLeave","Fragment","default","isEnabled","blocks","draggable","onDragStart","onDragEnd","clsx","Tooltip","text","Composite","Item","render","role","Spinner"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings, getBlock } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst fileName = getFilename( url ) || 'image.jpg';\n\t\t\t\t\tconst file = new File( [ blob ], fileName, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( ! getBlock( clonedBlock.clientId ) ) {\n\t\t\t\t\t\t\t\t// Ensure the block is only inserted once.\n\t\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t\t{ type: 'snackbar', id: 'inserter-notice' }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// For subsequent calls, update the existing block.\n\t\t\t\t\t\t\t\tupdateBlockAttributes( clonedBlock.clientId, {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tupdateBlockAttributes,\n\t\t\tcreateErrorNotice,\n\t\t\tgetBlock,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\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</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_blocks","_icons","_data","_notices","_blob","_url","_inserterDraggableBlocks","_utils","_store","_jsxRuntime","ALLOWED_MEDIA_TYPES","MEDIA_OPTIONS_POPOVER_PROPS","placement","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","jsx","DropdownMenu","label","__","popoverProps","icon","moreVertical","children","MenuGroup","MenuItem","onClick","window","open","focus","external","sprintf","mediaType","InsertExternalImageModal","onClose","onSubmit","jsxs","Modal","title","onRequestClose","__experimentalVStack","spacing","Flex","justify","expanded","FlexItem","Button","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","useState","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","useMemo","getBlockAndPreviewFromMedia","createErrorNotice","createSuccessNotice","useDispatch","noticesStore","getSettings","getBlock","useSelect","blockEditorStore","updateBlockAttributes","onMediaInsert","useCallback","previewBlock","settings","clonedBlock","cloneBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","fileName","getFilename","file","File","type","filesList","additionalData","onFileChange","img","isBlobURL","clientId","allowedTypes","onError","message","catch","rendered","onMouseEnter","onMouseLeave","Fragment","default","isEnabled","blocks","draggable","onDragStart","onDragEnd","clsx","Tooltip","text","Composite","Item","render","role","Spinner"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tplacement: 'bottom-end',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings, getBlock } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst fileName = getFilename( url ) || 'image.jpg';\n\t\t\t\t\tconst file = new File( [ blob ], fileName, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( ! getBlock( clonedBlock.clientId ) ) {\n\t\t\t\t\t\t\t\t// Ensure the block is only inserted once.\n\t\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t\t{ type: 'snackbar', id: 'inserter-notice' }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// For subsequent calls, update the existing block.\n\t\t\t\t\t\t\t\tupdateBlockAttributes( clonedBlock.clientId, {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tupdateBlockAttributes,\n\t\t\tcreateErrorNotice,\n\t\t\tgetBlock,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\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</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,70 +19,58 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
19
19
|
* Internal dependencies
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
submitLink(event) {
|
|
22
|
+
/**
|
|
23
|
+
* A button that toggles a URL input field for inserting or editing links.
|
|
24
|
+
*
|
|
25
|
+
* @param {Object} props Component properties.
|
|
26
|
+
* @param {string} props.url The current URL value.
|
|
27
|
+
* @param {Function} props.onChange Callback function to handle URL changes.
|
|
28
|
+
* @return {JSX.Element} The URL input button component.
|
|
29
|
+
*/function URLInputButton({
|
|
30
|
+
url,
|
|
31
|
+
onChange
|
|
32
|
+
}) {
|
|
33
|
+
const [expanded, toggleExpanded] = (0, _element.useReducer)(isExpanded => !isExpanded, false);
|
|
34
|
+
const submitLink = event => {
|
|
37
35
|
event.preventDefault();
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
className: "block-editor-url-input__button",
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
value: url || '',
|
|
71
|
-
onChange: onChange,
|
|
72
|
-
suffix: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalInputControlSuffixWrapper, {
|
|
73
|
-
variant: "control",
|
|
74
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
75
|
-
size: "small",
|
|
76
|
-
icon: _icons.keyboardReturn,
|
|
77
|
-
label: (0, _i18n.__)('Submit'),
|
|
78
|
-
type: "submit"
|
|
79
|
-
})
|
|
36
|
+
toggleExpanded();
|
|
37
|
+
};
|
|
38
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
39
|
+
className: "block-editor-url-input__button",
|
|
40
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
41
|
+
size: "compact",
|
|
42
|
+
icon: _icons.link,
|
|
43
|
+
label: url ? (0, _i18n.__)('Edit link') : (0, _i18n.__)('Insert link'),
|
|
44
|
+
onClick: toggleExpanded,
|
|
45
|
+
className: "components-toolbar__control",
|
|
46
|
+
isPressed: !!url
|
|
47
|
+
}), expanded && /*#__PURE__*/(0, _jsxRuntime.jsx)("form", {
|
|
48
|
+
className: "block-editor-url-input__button-modal",
|
|
49
|
+
onSubmit: submitLink,
|
|
50
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
51
|
+
className: "block-editor-url-input__button-modal-line",
|
|
52
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
53
|
+
__next40pxDefaultSize: true,
|
|
54
|
+
className: "block-editor-url-input__back",
|
|
55
|
+
icon: _icons.arrowLeft,
|
|
56
|
+
label: (0, _i18n.__)('Close'),
|
|
57
|
+
onClick: toggleExpanded
|
|
58
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_.default, {
|
|
59
|
+
value: url || '',
|
|
60
|
+
onChange: onChange,
|
|
61
|
+
suffix: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalInputControlSuffixWrapper, {
|
|
62
|
+
variant: "control",
|
|
63
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
|
|
64
|
+
size: "small",
|
|
65
|
+
icon: _icons.keyboardReturn,
|
|
66
|
+
label: (0, _i18n.__)('Submit'),
|
|
67
|
+
type: "submit"
|
|
80
68
|
})
|
|
81
|
-
})
|
|
82
|
-
})
|
|
83
|
-
})
|
|
84
|
-
})
|
|
85
|
-
}
|
|
69
|
+
})
|
|
70
|
+
})]
|
|
71
|
+
})
|
|
72
|
+
})]
|
|
73
|
+
});
|
|
86
74
|
}
|
|
87
75
|
|
|
88
76
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_element","_components","_icons","_","_interopRequireDefault","_jsxRuntime","URLInputButton","
|
|
1
|
+
{"version":3,"names":["_i18n","require","_element","_components","_icons","_","_interopRequireDefault","_jsxRuntime","URLInputButton","url","onChange","expanded","toggleExpanded","useReducer","isExpanded","submitLink","event","preventDefault","jsxs","className","children","jsx","Button","size","icon","link","label","__","onClick","isPressed","onSubmit","__next40pxDefaultSize","arrowLeft","default","value","suffix","__experimentalInputControlSuffixWrapper","variant","keyboardReturn","type","_default","exports"],"sources":["@wordpress/block-editor/src/components/url-input/button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useReducer } from '@wordpress/element';\nimport {\n\tButton,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { link, keyboardReturn, arrowLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLInput from './';\n\n/**\n * A button that toggles a URL input field for inserting or editing links.\n *\n * @param {Object} props Component properties.\n * @param {string} props.url The current URL value.\n * @param {Function} props.onChange Callback function to handle URL changes.\n * @return {JSX.Element} The URL input button component.\n */\nfunction URLInputButton( { url, onChange } ) {\n\tconst [ expanded, toggleExpanded ] = useReducer(\n\t\t( isExpanded ) => ! isExpanded,\n\t\tfalse\n\t);\n\n\tconst submitLink = ( event ) => {\n\t\tevent.preventDefault();\n\t\ttoggleExpanded();\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-url-input__button\">\n\t\t\t<Button\n\t\t\t\tsize=\"compact\"\n\t\t\t\ticon={ link }\n\t\t\t\tlabel={ url ? __( 'Edit link' ) : __( 'Insert link' ) }\n\t\t\t\tonClick={ toggleExpanded }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tisPressed={ !! url }\n\t\t\t/>\n\t\t\t{ expanded && (\n\t\t\t\t<form\n\t\t\t\t\tclassName=\"block-editor-url-input__button-modal\"\n\t\t\t\t\tonSubmit={ submitLink }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"block-editor-url-input__button-modal-line\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"block-editor-url-input__back\"\n\t\t\t\t\t\t\ticon={ arrowLeft }\n\t\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\t\tonClick={ toggleExpanded }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<URLInput\n\t\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Submit' ) }\n\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md\n */\nexport default URLInputButton;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAIA,IAAAG,MAAA,GAAAH,OAAA;AAKA,IAAAI,CAAA,GAAAC,sBAAA,CAAAL,OAAA;AAA0B,IAAAM,WAAA,GAAAN,OAAA;AAd1B;AACA;AACA;;AASA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GACA,SAASO,cAAcA,CAAE;EAAEC,GAAG;EAAEC;AAAS,CAAC,EAAG;EAC5C,MAAM,CAAEC,QAAQ,EAAEC,cAAc,CAAE,GAAG,IAAAC,mBAAU,EAC5CC,UAAU,IAAM,CAAEA,UAAU,EAC9B,KACD,CAAC;EAED,MAAMC,UAAU,GAAKC,KAAK,IAAM;IAC/BA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtBL,cAAc,CAAC,CAAC;EACjB,CAAC;EAED,oBACC,IAAAL,WAAA,CAAAW,IAAA;IAAKC,SAAS,EAAC,gCAAgC;IAAAC,QAAA,gBAC9C,IAAAb,WAAA,CAAAc,GAAA,EAAClB,WAAA,CAAAmB,MAAM;MACNC,IAAI,EAAC,SAAS;MACdC,IAAI,EAAGC,WAAM;MACbC,KAAK,EAAGjB,GAAG,GAAG,IAAAkB,QAAE,EAAE,WAAY,CAAC,GAAG,IAAAA,QAAE,EAAE,aAAc,CAAG;MACvDC,OAAO,EAAGhB,cAAgB;MAC1BO,SAAS,EAAC,6BAA6B;MACvCU,SAAS,EAAG,CAAC,CAAEpB;IAAK,CACpB,CAAC,EACAE,QAAQ,iBACT,IAAAJ,WAAA,CAAAc,GAAA;MACCF,SAAS,EAAC,sCAAsC;MAChDW,QAAQ,EAAGf,UAAY;MAAAK,QAAA,eAEvB,IAAAb,WAAA,CAAAW,IAAA;QAAKC,SAAS,EAAC,2CAA2C;QAAAC,QAAA,gBACzD,IAAAb,WAAA,CAAAc,GAAA,EAAClB,WAAA,CAAAmB,MAAM;UACNS,qBAAqB;UACrBZ,SAAS,EAAC,8BAA8B;UACxCK,IAAI,EAAGQ,gBAAW;UAClBN,KAAK,EAAG,IAAAC,QAAE,EAAE,OAAQ,CAAG;UACvBC,OAAO,EAAGhB;QAAgB,CAC1B,CAAC,eACF,IAAAL,WAAA,CAAAc,GAAA,EAAChB,CAAA,CAAA4B,OAAQ;UACRC,KAAK,EAAGzB,GAAG,IAAI,EAAI;UACnBC,QAAQ,EAAGA,QAAU;UACrByB,MAAM,eACL,IAAA5B,WAAA,CAAAc,GAAA,EAAClB,WAAA,CAAAiC,uCAAyB;YAACC,OAAO,EAAC,SAAS;YAAAjB,QAAA,eAC3C,IAAAb,WAAA,CAAAc,GAAA,EAAClB,WAAA,CAAAmB,MAAM;cACNC,IAAI,EAAC,OAAO;cACZC,IAAI,EAAGc,qBAAgB;cACvBZ,KAAK,EAAG,IAAAC,QAAE,EAAE,QAAS,CAAG;cACxBY,IAAI,EAAC;YAAQ,CACb;UAAC,CACwB;QAC3B,CACD,CAAC;MAAA,CACE;IAAC,CACD,CACN;EAAA,CACG,CAAC;AAER;;AAEA;AACA;AACA;AAFA,IAAAC,QAAA,GAAAC,OAAA,CAAAR,OAAA,GAGezB,cAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_icons","_jsxRuntime","Warning","className","actions","children","secondaryActions","jsx","style","display","all","clsx","jsxs","length","map","action","i","DropdownMenu","icon","moreVertical","label","__","popoverProps","
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_icons","_jsxRuntime","Warning","className","actions","children","secondaryActions","jsx","style","display","all","clsx","jsxs","length","map","action","i","DropdownMenu","icon","moreVertical","label","__","popoverProps","placement","noIcons","MenuGroup","item","pos","MenuItem","onClick","title","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/warning/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\nfunction Warning( { className, actions, children, secondaryActions } ) {\n\treturn (\n\t\t<div style={ { display: 'contents', all: 'initial' } }>\n\t\t\t<div className={ clsx( className, 'block-editor-warning' ) }>\n\t\t\t\t<div className=\"block-editor-warning__contents\">\n\t\t\t\t\t<p className=\"block-editor-warning__message\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</p>\n\n\t\t\t\t\t{ ( actions?.length > 0 || secondaryActions ) && (\n\t\t\t\t\t\t<div className=\"block-editor-warning__actions\">\n\t\t\t\t\t\t\t{ actions?.length > 0 &&\n\t\t\t\t\t\t\t\tactions.map( ( action, i ) => (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-warning__action\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ action }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t{ secondaryActions && (\n\t\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-warning__secondary\"\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'More options' ) }\n\t\t\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\t\t\tplacement: 'bottom-end',\n\t\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-warning__dropdown',\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t\t{ secondaryActions.map(\n\t\t\t\t\t\t\t\t\t\t\t\t( item, pos ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ item.onClick }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ pos }\n\t\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\t{ item.title }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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</MenuGroup>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</DropdownMenu>\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</div>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/warning/README.md\n */\nexport default Warning;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAgD,IAAAI,WAAA,GAAAJ,OAAA;AAVhD;AACA;AACA;;AAGA;AACA;AACA;;AAKA,SAASK,OAAOA,CAAE;EAAEC,SAAS;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAiB,CAAC,EAAG;EACtE,oBACC,IAAAL,WAAA,CAAAM,GAAA;IAAKC,KAAK,EAAG;MAAEC,OAAO,EAAE,UAAU;MAAEC,GAAG,EAAE;IAAU,CAAG;IAAAL,QAAA,eACrD,IAAAJ,WAAA,CAAAM,GAAA;MAAKJ,SAAS,EAAG,IAAAQ,aAAI,EAAER,SAAS,EAAE,sBAAuB,CAAG;MAAAE,QAAA,eAC3D,IAAAJ,WAAA,CAAAW,IAAA;QAAKT,SAAS,EAAC,gCAAgC;QAAAE,QAAA,gBAC9C,IAAAJ,WAAA,CAAAM,GAAA;UAAGJ,SAAS,EAAC,+BAA+B;UAAAE,QAAA,EACzCA;QAAQ,CACR,CAAC,EAEF,CAAED,OAAO,EAAES,MAAM,GAAG,CAAC,IAAIP,gBAAgB,kBAC1C,IAAAL,WAAA,CAAAW,IAAA;UAAKT,SAAS,EAAC,+BAA+B;UAAAE,QAAA,GAC3CD,OAAO,EAAES,MAAM,GAAG,CAAC,IACpBT,OAAO,CAACU,GAAG,CAAE,CAAEC,MAAM,EAAEC,CAAC,kBACvB,IAAAf,WAAA,CAAAM,GAAA;YAECJ,SAAS,EAAC,8BAA8B;YAAAE,QAAA,EAEtCU;UAAM,GAHFC,CAID,CACL,CAAC,EACFV,gBAAgB,iBACjB,IAAAL,WAAA,CAAAM,GAAA,EAACT,WAAA,CAAAmB,YAAY;YACZd,SAAS,EAAC,iCAAiC;YAC3Ce,IAAI,EAAGC,mBAAc;YACrBC,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;YAC9BC,YAAY,EAAG;cACdC,SAAS,EAAE,YAAY;cACvBpB,SAAS,EACR;YACF,CAAG;YACHqB,OAAO;YAAAnB,QAAA,EAELA,CAAA,kBACD,IAAAJ,WAAA,CAAAM,GAAA,EAACT,WAAA,CAAA2B,SAAS;cAAApB,QAAA,EACPC,gBAAgB,CAACQ,GAAG,CACrB,CAAEY,IAAI,EAAEC,GAAG,kBACV,IAAA1B,WAAA,CAAAM,GAAA,EAACT,WAAA,CAAA8B,QAAQ;gBACRC,OAAO,EAAGH,IAAI,CAACG,OAAS;gBAAAxB,QAAA,EAGtBqB,IAAI,CAACI;cAAK,GAFNH,GAGG,CAEZ;YAAC,CACS;UACX,CACY,CACd;QAAA,CACG,CACL;MAAA,CACG;IAAC,CACF;EAAC,CACF,CAAC;AAER;;AAEA;AACA;AACA;AAFA,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGe/B,OAAO","ignoreList":[]}
|
|
@@ -25,7 +25,7 @@ import { store as blockEditorStore } from '../../../store';
|
|
|
25
25
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
26
26
|
const ALLOWED_MEDIA_TYPES = ['image'];
|
|
27
27
|
const MEDIA_OPTIONS_POPOVER_PROPS = {
|
|
28
|
-
|
|
28
|
+
placement: 'bottom-end',
|
|
29
29
|
className: 'block-editor-inserter__media-list__item-preview-options__popover'
|
|
30
30
|
};
|
|
31
31
|
function MediaPreviewOptions({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","Tooltip","DropdownMenu","MenuGroup","MenuItem","Spinner","Modal","Flex","FlexItem","Button","Composite","__experimentalVStack","VStack","__","sprintf","useMemo","useCallback","useState","cloneBlock","moreVertical","external","useSelect","useDispatch","store","noticesStore","isBlobURL","getFilename","InserterDraggableBlocks","getBlockAndPreviewFromMedia","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","MEDIA_OPTIONS_POPOVER_PROPS","position","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","label","popoverProps","icon","children","onClick","window","open","focus","mediaType","InsertExternalImageModal","onClose","onSubmit","title","onRequestClose","spacing","justify","expanded","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","createErrorNotice","createSuccessNotice","getSettings","getBlock","updateBlockAttributes","onMediaInsert","previewBlock","settings","clonedBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","fileName","file","File","type","filesList","additionalData","onFileChange","img","clientId","allowedTypes","onError","message","catch","rendered","onMouseEnter","onMouseLeave","isEnabled","blocks","draggable","onDragStart","onDragEnd","text","Item","render","role"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings, getBlock } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst fileName = getFilename( url ) || 'image.jpg';\n\t\t\t\t\tconst file = new File( [ blob ], fileName, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( ! getBlock( clonedBlock.clientId ) ) {\n\t\t\t\t\t\t\t\t// Ensure the block is only inserted once.\n\t\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t\t{ type: 'snackbar', id: 'inserter-notice' }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// For subsequent calls, update the existing block.\n\t\t\t\t\t\t\t\tupdateBlockAttributes( clonedBlock.clientId, {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tupdateBlockAttributes,\n\t\t\tcreateErrorNotice,\n\t\t\tgetBlock,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\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</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SACCC,OAAO,EACPC,YAAY,EACZC,SAAS,EACTC,QAAQ,EACRC,OAAO,EACPC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,MAAM,EACNC,SAAS,EACTC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,OAAO,EAAEC,WAAW,EAAEC,QAAQ,QAAQ,oBAAoB;AACnE,SAASC,UAAU,QAAQ,mBAAmB;AAC9C,SAASC,YAAY,EAAEC,QAAQ,QAAQ,kBAAkB;AACzD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,YAAY,QAAQ,oBAAoB;AAC1D,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,WAAW,QAAQ,gBAAgB;;AAE5C;AACA;AACA;AACA,OAAOC,uBAAuB,MAAM,iCAAiC;AACrE,SAASC,2BAA2B,QAAQ,SAAS;AACrD,SAASL,KAAK,IAAIM,gBAAgB,QAAQ,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAE3D,MAAMC,mBAAmB,GAAG,CAAE,OAAO,CAAE;AACvC,MAAMC,2BAA2B,GAAG;EACnCC,QAAQ,EAAE,aAAa;EACvBC,SAAS,EACR;AACF,CAAC;AAED,SAASC,mBAAmBA,CAAE;EAAEC,QAAQ;EAAEC;AAAM,CAAC,EAAG;EACnD,IAAK,CAAED,QAAQ,CAACE,YAAY,EAAG;IAC9B,OAAO,IAAI;EACZ;EACA,MAAMC,SAAS,GAAGH,QAAQ,CAACE,YAAY,CAAED,KAAM,CAAC;EAChD,oBACCX,IAAA,CAAC7B,YAAY;IACZqC,SAAS,EAAC,yDAAyD;IACnEM,KAAK,EAAGhC,EAAE,CAAE,SAAU,CAAG;IACzBiC,YAAY,EAAGT,2BAA6B;IAC5CU,IAAI,EAAG5B,YAAc;IAAA6B,QAAA,EAEnBA,CAAA,kBACDjB,IAAA,CAAC5B,SAAS;MAAA6C,QAAA,eACTjB,IAAA,CAAC3B,QAAQ;QACR6C,OAAO,EAAGA,CAAA,KACTC,MAAM,CAACC,IAAI,CAAEP,SAAS,EAAE,QAAS,CAAC,CAACQ,KAAK,CAAC,CACzC;QACDL,IAAI,EAAG3B,QAAU;QAAA4B,QAAA,EAEflC,OAAO,CACR;QACAD,EAAE,CAAE,WAAY,CAAC,EACjB4B,QAAQ,CAACY,SACV;MAAC,CACQ;IAAC,CACD;EACX,CACY,CAAC;AAEjB;AAEA,SAASC,wBAAwBA,CAAE;EAAEC,OAAO;EAAEC;AAAS,CAAC,EAAG;EAC1D,oBACCvB,KAAA,CAAC3B,KAAK;IACLmD,KAAK,EAAG5C,EAAE,CAAE,uBAAwB,CAAG;IACvC6C,cAAc,EAAGH,OAAS;IAC1BhB,SAAS,EAAC,6EAA6E;IAAAS,QAAA,gBAEvFf,KAAA,CAACrB,MAAM;MAAC+C,OAAO,EAAG,CAAG;MAAAX,QAAA,gBACpBjB,IAAA;QAAAiB,QAAA,EACGnC,EAAE,CACH,yGACD;MAAC,CACC,CAAC,eACJkB,IAAA;QAAAiB,QAAA,EACGnC,EAAE,CACH,qJACD;MAAC,CACC,CAAC;IAAA,CACG,CAAC,eACToB,KAAA,CAAC1B,IAAI;MACJgC,SAAS,EAAC,wCAAwC;MAClDqB,OAAO,EAAC,UAAU;MAClBC,QAAQ,EAAG,KAAO;MAAAb,QAAA,gBAElBjB,IAAA,CAACvB,QAAQ;QAAAwC,QAAA,eACRjB,IAAA,CAACtB,MAAM;UACNqD,qBAAqB;UACrBC,OAAO,EAAC,UAAU;UAClBd,OAAO,EAAGM,OAAS;UAAAP,QAAA,EAEjBnC,EAAE,CAAE,QAAS;QAAC,CACT;MAAC,CACA,CAAC,eACXkB,IAAA,CAACvB,QAAQ;QAAAwC,QAAA,eACRjB,IAAA,CAACtB,MAAM;UACNqD,qBAAqB;UACrBC,OAAO,EAAC,SAAS;UACjBd,OAAO,EAAGO,QAAU;UAAAR,QAAA,EAElBnC,EAAE,CAAE,QAAS;QAAC,CACT;MAAC,CACA,CAAC;IAAA,CACN,CAAC;EAAA,CACD,CAAC;AAEV;AAEA,OAAO,SAASmD,YAAYA,CAAE;EAAEtB,KAAK;EAAEO,OAAO;EAAER;AAAS,CAAC,EAAG;EAC5D,MAAM,CAAEwB,uBAAuB,EAAEC,0BAA0B,CAAE,GAC5DjD,QAAQ,CAAE,KAAM,CAAC;EAClB,MAAM,CAAEkD,SAAS,EAAEC,YAAY,CAAE,GAAGnD,QAAQ,CAAE,KAAM,CAAC;EACrD,MAAM,CAAEoD,WAAW,EAAEC,cAAc,CAAE,GAAGrD,QAAQ,CAAE,KAAM,CAAC;EACzD,MAAM,CAAEsD,KAAK,EAAEC,OAAO,CAAE,GAAGzD,OAAO,CACjC,MAAMa,2BAA2B,CAAEc,KAAK,EAAED,QAAQ,CAACY,SAAU,CAAC,EAC9D,CAAEX,KAAK,EAAED,QAAQ,CAACY,SAAS,CAC5B,CAAC;EACD,MAAM;IAAEoB,iBAAiB;IAAEC;EAAoB,CAAC,GAC/CpD,WAAW,CAAEE,YAAa,CAAC;EAC5B,MAAM;IAAEmD,WAAW;IAAEC;EAAS,CAAC,GAAGvD,SAAS,CAAEQ,gBAAiB,CAAC;EAC/D,MAAM;IAAEgD;EAAsB,CAAC,GAAGvD,WAAW,CAAEO,gBAAiB,CAAC;EAEjE,MAAMiD,aAAa,GAAG9D,WAAW,CAC9B+D,YAAY,IAAM;IACnB;IACA,IAAKV,WAAW,EAAG;MAClB;IACD;IAEA,MAAMW,QAAQ,GAAGL,WAAW,CAAC,CAAC;IAC9B,MAAMM,WAAW,GAAG/D,UAAU,CAAE6D,YAAa,CAAC;IAC9C,MAAM;MAAEG,EAAE;MAAEC,GAAG;MAAEC;IAAQ,CAAC,GAAGH,WAAW,CAACI,UAAU;;IAEnD;IACA,IAAK,CAAEH,EAAE,IAAI,CAAEF,QAAQ,CAACM,WAAW,EAAG;MACrCpB,0BAA0B,CAAE,IAAK,CAAC;MAClC;IACD;;IAEA;IACA,IAAK,CAAC,CAAEgB,EAAE,EAAG;MACZjC,OAAO,CAAEgC,WAAY,CAAC;MACtB;IACD;IAEAX,cAAc,CAAE,IAAK,CAAC;IACtB;IACA;IACA;IACA;IACA;IACApB,MAAM,CACJqC,KAAK,CAAEJ,GAAI,CAAC,CACZK,IAAI,CAAIC,QAAQ,IAAMA,QAAQ,CAACC,IAAI,CAAC,CAAE,CAAC,CACvCF,IAAI,CAAIE,IAAI,IAAM;MAClB,MAAMC,QAAQ,GAAGjE,WAAW,CAAEyD,GAAI,CAAC,IAAI,WAAW;MAClD,MAAMS,IAAI,GAAG,IAAIC,IAAI,CAAE,CAAEH,IAAI,CAAE,EAAEC,QAAQ,EAAE;QAC1CG,IAAI,EAAEJ,IAAI,CAACI;MACZ,CAAE,CAAC;MAEHd,QAAQ,CAACM,WAAW,CAAE;QACrBS,SAAS,EAAE,CAAEH,IAAI,CAAE;QACnBI,cAAc,EAAE;UAAEZ;QAAQ,CAAC;QAC3Ba,YAAYA,CAAE,CAAEC,GAAG,CAAE,EAAG;UACvB,IAAKzE,SAAS,CAAEyE,GAAG,CAACf,GAAI,CAAC,EAAG;YAC3B;UACD;UAEA,IAAK,CAAEP,QAAQ,CAAEK,WAAW,CAACkB,QAAS,CAAC,EAAG;YACzC;YACAlD,OAAO,CAAE;cACR,GAAGgC,WAAW;cACdI,UAAU,EAAE;gBACX,GAAGJ,WAAW,CAACI,UAAU;gBACzBH,EAAE,EAAEgB,GAAG,CAAChB,EAAE;gBACVC,GAAG,EAAEe,GAAG,CAACf;cACV;YACD,CAAE,CAAC;YAEHT,mBAAmB,CAClB7D,EAAE,CAAE,8BAA+B,CAAC,EACpC;cAAEiF,IAAI,EAAE,UAAU;cAAEZ,EAAE,EAAE;YAAkB,CAC3C,CAAC;UACF,CAAC,MAAM;YACN;YACAL,qBAAqB,CAAEI,WAAW,CAACkB,QAAQ,EAAE;cAC5C,GAAGlB,WAAW,CAACI,UAAU;cACzBH,EAAE,EAAEgB,GAAG,CAAChB,EAAE;cACVC,GAAG,EAAEe,GAAG,CAACf;YACV,CAAE,CAAC;UACJ;UAEAb,cAAc,CAAE,KAAM,CAAC;QACxB,CAAC;QACD8B,YAAY,EAAEhE,mBAAmB;QACjCiE,OAAOA,CAAEC,OAAO,EAAG;UAClB7B,iBAAiB,CAAE6B,OAAO,EAAE;YAC3BR,IAAI,EAAE,UAAU;YAChBZ,EAAE,EAAE;UACL,CAAE,CAAC;UACHZ,cAAc,CAAE,KAAM,CAAC;QACxB;MACD,CAAE,CAAC;IACJ,CAAE,CAAC,CACFiC,KAAK,CAAE,MAAM;MACbrC,0BAA0B,CAAE,IAAK,CAAC;MAClCI,cAAc,CAAE,KAAM,CAAC;IACxB,CAAE,CAAC;EACL,CAAC,EACD,CACCD,WAAW,EACXM,WAAW,EACX1B,OAAO,EACPyB,mBAAmB,EACnBG,qBAAqB,EACrBJ,iBAAiB,EACjBG,QAAQ,CAEV,CAAC;EAED,MAAMnB,KAAK,GACV,OAAOf,KAAK,CAACe,KAAK,KAAK,QAAQ,GAC5Bf,KAAK,CAACe,KAAK,GACXf,KAAK,CAACe,KAAK,EAAE+C,QAAQ,IAAI3F,EAAE,CAAE,UAAW,CAAC;EAE7C,MAAM4F,YAAY,GAAGzF,WAAW,CAAE,MAAMoD,YAAY,CAAE,IAAK,CAAC,EAAE,EAAG,CAAC;EAClE,MAAMsC,YAAY,GAAG1F,WAAW,CAAE,MAAMoD,YAAY,CAAE,KAAM,CAAC,EAAE,EAAG,CAAC;EACnE,oBACCnC,KAAA,CAAAE,SAAA;IAAAa,QAAA,gBACCjB,IAAA,CAACJ,uBAAuB;MAACgF,SAAS;MAACC,MAAM,EAAG,CAAErC,KAAK,CAAI;MAAAvB,QAAA,EACpDA,CAAE;QAAE6D,SAAS;QAAEC,WAAW;QAAEC;MAAU,CAAC,kBACxChF,IAAA;QACCQ,SAAS,EAAGvC,IAAI,CACf,8CAA8C,EAC9C;UACC,YAAY,EAAEmE;QACf,CACD,CAAG;QACH0C,SAAS,EAAGA,SAAW;QACvBC,WAAW,EAAGA,WAAa;QAC3BC,SAAS,EAAGA,SAAW;QAAA/D,QAAA,eAIvBf,KAAA;UACCwE,YAAY,EAAGA,YAAc;UAC7BC,YAAY,EAAGA,YAAc;UAAA1D,QAAA,gBAE7BjB,IAAA,CAAC9B,OAAO;YAAC+G,IAAI,EAAGvD,KAAO;YAAAT,QAAA,eACtBjB,IAAA,CAACrB,SAAS,CAACuG,IAAI;cACdC,MAAM,eACLnF,IAAA;gBACC,cAAa0B,KAAO;gBACpB0D,IAAI,EAAC,QAAQ;gBACb5E,SAAS,EAAC;cAAyC,CACnD,CACD;cACDU,OAAO,EAAGA,CAAA,KAAM6B,aAAa,CAAEP,KAAM,CAAG;cAAAvB,QAAA,eAExCf,KAAA;gBAAKM,SAAS,EAAC,iDAAiD;gBAAAS,QAAA,GAC7DwB,OAAO,EACPH,WAAW,iBACZtC,IAAA;kBAAKQ,SAAS,EAAC,yDAAyD;kBAAAS,QAAA,eACvEjB,IAAA,CAAC1B,OAAO,IAAE;gBAAC,CACP,CACL;cAAA,CACG;YAAC,CACS;UAAC,CACT,CAAC,EACR,CAAEgE,WAAW,iBACdtC,IAAA,CAACS,mBAAmB;YACnBC,QAAQ,EAAGA,QAAU;YACrBC,KAAK,EAAGA;UAAO,CACf,CACD;QAAA,CACG;MAAC,CACF;IACL,CACuB,CAAC,EACxBuB,uBAAuB,iBACxBlC,IAAA,CAACuB,wBAAwB;MACxBC,OAAO,EAAGA,CAAA,KAAMW,0BAA0B,CAAE,KAAM,CAAG;MACrDV,QAAQ,EAAGA,CAAA,KAAM;QAChBP,OAAO,CAAE/B,UAAU,CAAEqD,KAAM,CAAE,CAAC;QAC9BG,mBAAmB,CAAE7D,EAAE,CAAE,iBAAkB,CAAC,EAAE;UAC7CiF,IAAI,EAAE,UAAU;UAChBZ,EAAE,EAAE;QACL,CAAE,CAAC;QACHhB,0BAA0B,CAAE,KAAM,CAAC;MACpC;IAAG,CACH,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","Tooltip","DropdownMenu","MenuGroup","MenuItem","Spinner","Modal","Flex","FlexItem","Button","Composite","__experimentalVStack","VStack","__","sprintf","useMemo","useCallback","useState","cloneBlock","moreVertical","external","useSelect","useDispatch","store","noticesStore","isBlobURL","getFilename","InserterDraggableBlocks","getBlockAndPreviewFromMedia","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","MEDIA_OPTIONS_POPOVER_PROPS","placement","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","label","popoverProps","icon","children","onClick","window","open","focus","mediaType","InsertExternalImageModal","onClose","onSubmit","title","onRequestClose","spacing","justify","expanded","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","createErrorNotice","createSuccessNotice","getSettings","getBlock","updateBlockAttributes","onMediaInsert","previewBlock","settings","clonedBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","fileName","file","File","type","filesList","additionalData","onFileChange","img","clientId","allowedTypes","onError","message","catch","rendered","onMouseEnter","onMouseLeave","isEnabled","blocks","draggable","onDragStart","onDragEnd","text","Item","render","role"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tplacement: 'bottom-end',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings, getBlock } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst fileName = getFilename( url ) || 'image.jpg';\n\t\t\t\t\tconst file = new File( [ blob ], fileName, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( ! getBlock( clonedBlock.clientId ) ) {\n\t\t\t\t\t\t\t\t// Ensure the block is only inserted once.\n\t\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t\t{ type: 'snackbar', id: 'inserter-notice' }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// For subsequent calls, update the existing block.\n\t\t\t\t\t\t\t\tupdateBlockAttributes( clonedBlock.clientId, {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tupdateBlockAttributes,\n\t\t\tcreateErrorNotice,\n\t\t\tgetBlock,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\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</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import {
|
|
5
|
+
import { useReducer } from '@wordpress/element';
|
|
6
6
|
import { Button, __experimentalInputControlSuffixWrapper as InputControlSuffixWrapper } from '@wordpress/components';
|
|
7
7
|
import { link, keyboardReturn, arrowLeft } from '@wordpress/icons';
|
|
8
8
|
|
|
@@ -10,71 +10,61 @@ import { link, keyboardReturn, arrowLeft } from '@wordpress/icons';
|
|
|
10
10
|
* Internal dependencies
|
|
11
11
|
*/
|
|
12
12
|
import URLInput from './';
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A button that toggles a URL input field for inserting or editing links.
|
|
16
|
+
*
|
|
17
|
+
* @param {Object} props Component properties.
|
|
18
|
+
* @param {string} props.url The current URL value.
|
|
19
|
+
* @param {Function} props.onChange Callback function to handle URL changes.
|
|
20
|
+
* @return {JSX.Element} The URL input button component.
|
|
21
|
+
*/
|
|
13
22
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
expanded: false
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
toggle() {
|
|
24
|
-
this.setState({
|
|
25
|
-
expanded: !this.state.expanded
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
submitLink(event) {
|
|
23
|
+
function URLInputButton({
|
|
24
|
+
url,
|
|
25
|
+
onChange
|
|
26
|
+
}) {
|
|
27
|
+
const [expanded, toggleExpanded] = useReducer(isExpanded => !isExpanded, false);
|
|
28
|
+
const submitLink = event => {
|
|
29
29
|
event.preventDefault();
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
className: "block-editor-url-input__button",
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
value: url || '',
|
|
63
|
-
onChange: onChange,
|
|
64
|
-
suffix: /*#__PURE__*/_jsx(InputControlSuffixWrapper, {
|
|
65
|
-
variant: "control",
|
|
66
|
-
children: /*#__PURE__*/_jsx(Button, {
|
|
67
|
-
size: "small",
|
|
68
|
-
icon: keyboardReturn,
|
|
69
|
-
label: __('Submit'),
|
|
70
|
-
type: "submit"
|
|
71
|
-
})
|
|
30
|
+
toggleExpanded();
|
|
31
|
+
};
|
|
32
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
33
|
+
className: "block-editor-url-input__button",
|
|
34
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
35
|
+
size: "compact",
|
|
36
|
+
icon: link,
|
|
37
|
+
label: url ? __('Edit link') : __('Insert link'),
|
|
38
|
+
onClick: toggleExpanded,
|
|
39
|
+
className: "components-toolbar__control",
|
|
40
|
+
isPressed: !!url
|
|
41
|
+
}), expanded && /*#__PURE__*/_jsx("form", {
|
|
42
|
+
className: "block-editor-url-input__button-modal",
|
|
43
|
+
onSubmit: submitLink,
|
|
44
|
+
children: /*#__PURE__*/_jsxs("div", {
|
|
45
|
+
className: "block-editor-url-input__button-modal-line",
|
|
46
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
47
|
+
__next40pxDefaultSize: true,
|
|
48
|
+
className: "block-editor-url-input__back",
|
|
49
|
+
icon: arrowLeft,
|
|
50
|
+
label: __('Close'),
|
|
51
|
+
onClick: toggleExpanded
|
|
52
|
+
}), /*#__PURE__*/_jsx(URLInput, {
|
|
53
|
+
value: url || '',
|
|
54
|
+
onChange: onChange,
|
|
55
|
+
suffix: /*#__PURE__*/_jsx(InputControlSuffixWrapper, {
|
|
56
|
+
variant: "control",
|
|
57
|
+
children: /*#__PURE__*/_jsx(Button, {
|
|
58
|
+
size: "small",
|
|
59
|
+
icon: keyboardReturn,
|
|
60
|
+
label: __('Submit'),
|
|
61
|
+
type: "submit"
|
|
72
62
|
})
|
|
73
|
-
})
|
|
74
|
-
})
|
|
75
|
-
})
|
|
76
|
-
})
|
|
77
|
-
}
|
|
63
|
+
})
|
|
64
|
+
})]
|
|
65
|
+
})
|
|
66
|
+
})]
|
|
67
|
+
});
|
|
78
68
|
}
|
|
79
69
|
|
|
80
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","
|
|
1
|
+
{"version":3,"names":["__","useReducer","Button","__experimentalInputControlSuffixWrapper","InputControlSuffixWrapper","link","keyboardReturn","arrowLeft","URLInput","jsx","_jsx","jsxs","_jsxs","URLInputButton","url","onChange","expanded","toggleExpanded","isExpanded","submitLink","event","preventDefault","className","children","size","icon","label","onClick","isPressed","onSubmit","__next40pxDefaultSize","value","suffix","variant","type"],"sources":["@wordpress/block-editor/src/components/url-input/button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useReducer } from '@wordpress/element';\nimport {\n\tButton,\n\t__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,\n} from '@wordpress/components';\nimport { link, keyboardReturn, arrowLeft } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport URLInput from './';\n\n/**\n * A button that toggles a URL input field for inserting or editing links.\n *\n * @param {Object} props Component properties.\n * @param {string} props.url The current URL value.\n * @param {Function} props.onChange Callback function to handle URL changes.\n * @return {JSX.Element} The URL input button component.\n */\nfunction URLInputButton( { url, onChange } ) {\n\tconst [ expanded, toggleExpanded ] = useReducer(\n\t\t( isExpanded ) => ! isExpanded,\n\t\tfalse\n\t);\n\n\tconst submitLink = ( event ) => {\n\t\tevent.preventDefault();\n\t\ttoggleExpanded();\n\t};\n\n\treturn (\n\t\t<div className=\"block-editor-url-input__button\">\n\t\t\t<Button\n\t\t\t\tsize=\"compact\"\n\t\t\t\ticon={ link }\n\t\t\t\tlabel={ url ? __( 'Edit link' ) : __( 'Insert link' ) }\n\t\t\t\tonClick={ toggleExpanded }\n\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\tisPressed={ !! url }\n\t\t\t/>\n\t\t\t{ expanded && (\n\t\t\t\t<form\n\t\t\t\t\tclassName=\"block-editor-url-input__button-modal\"\n\t\t\t\t\tonSubmit={ submitLink }\n\t\t\t\t>\n\t\t\t\t\t<div className=\"block-editor-url-input__button-modal-line\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tclassName=\"block-editor-url-input__back\"\n\t\t\t\t\t\t\ticon={ arrowLeft }\n\t\t\t\t\t\t\tlabel={ __( 'Close' ) }\n\t\t\t\t\t\t\tonClick={ toggleExpanded }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<URLInput\n\t\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tsuffix={\n\t\t\t\t\t\t\t\t<InputControlSuffixWrapper variant=\"control\">\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\t\t\t\ticon={ keyboardReturn }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Submit' ) }\n\t\t\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</InputControlSuffixWrapper>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/url-input/README.md\n */\nexport default URLInputButton;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SACCC,MAAM,EACNC,uCAAuC,IAAIC,yBAAyB,QAC9D,uBAAuB;AAC9B,SAASC,IAAI,EAAEC,cAAc,EAAEC,SAAS,QAAQ,kBAAkB;;AAElE;AACA;AACA;AACA,OAAOC,QAAQ,MAAM,IAAI;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQA,SAASC,cAAcA,CAAE;EAAEC,GAAG;EAAEC;AAAS,CAAC,EAAG;EAC5C,MAAM,CAAEC,QAAQ,EAAEC,cAAc,CAAE,GAAGhB,UAAU,CAC5CiB,UAAU,IAAM,CAAEA,UAAU,EAC9B,KACD,CAAC;EAED,MAAMC,UAAU,GAAKC,KAAK,IAAM;IAC/BA,KAAK,CAACC,cAAc,CAAC,CAAC;IACtBJ,cAAc,CAAC,CAAC;EACjB,CAAC;EAED,oBACCL,KAAA;IAAKU,SAAS,EAAC,gCAAgC;IAAAC,QAAA,gBAC9Cb,IAAA,CAACR,MAAM;MACNsB,IAAI,EAAC,SAAS;MACdC,IAAI,EAAGpB,IAAM;MACbqB,KAAK,EAAGZ,GAAG,GAAGd,EAAE,CAAE,WAAY,CAAC,GAAGA,EAAE,CAAE,aAAc,CAAG;MACvD2B,OAAO,EAAGV,cAAgB;MAC1BK,SAAS,EAAC,6BAA6B;MACvCM,SAAS,EAAG,CAAC,CAAEd;IAAK,CACpB,CAAC,EACAE,QAAQ,iBACTN,IAAA;MACCY,SAAS,EAAC,sCAAsC;MAChDO,QAAQ,EAAGV,UAAY;MAAAI,QAAA,eAEvBX,KAAA;QAAKU,SAAS,EAAC,2CAA2C;QAAAC,QAAA,gBACzDb,IAAA,CAACR,MAAM;UACN4B,qBAAqB;UACrBR,SAAS,EAAC,8BAA8B;UACxCG,IAAI,EAAGlB,SAAW;UAClBmB,KAAK,EAAG1B,EAAE,CAAE,OAAQ,CAAG;UACvB2B,OAAO,EAAGV;QAAgB,CAC1B,CAAC,eACFP,IAAA,CAACF,QAAQ;UACRuB,KAAK,EAAGjB,GAAG,IAAI,EAAI;UACnBC,QAAQ,EAAGA,QAAU;UACrBiB,MAAM,eACLtB,IAAA,CAACN,yBAAyB;YAAC6B,OAAO,EAAC,SAAS;YAAAV,QAAA,eAC3Cb,IAAA,CAACR,MAAM;cACNsB,IAAI,EAAC,OAAO;cACZC,IAAI,EAAGnB,cAAgB;cACvBoB,KAAK,EAAG1B,EAAE,CAAE,QAAS,CAAG;cACxBkC,IAAI,EAAC;YAAQ,CACb;UAAC,CACwB;QAC3B,CACD,CAAC;MAAA,CACE;IAAC,CACD,CACN;EAAA,CACG,CAAC;AAER;;AAEA;AACA;AACA;AACA,eAAerB,cAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","DropdownMenu","MenuGroup","MenuItem","__","moreVertical","jsx","_jsx","jsxs","_jsxs","Warning","className","actions","children","secondaryActions","style","display","all","length","map","action","i","icon","label","popoverProps","
|
|
1
|
+
{"version":3,"names":["clsx","DropdownMenu","MenuGroup","MenuItem","__","moreVertical","jsx","_jsx","jsxs","_jsxs","Warning","className","actions","children","secondaryActions","style","display","all","length","map","action","i","icon","label","popoverProps","placement","noIcons","item","pos","onClick","title"],"sources":["@wordpress/block-editor/src/components/warning/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { DropdownMenu, MenuGroup, MenuItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { moreVertical } from '@wordpress/icons';\n\nfunction Warning( { className, actions, children, secondaryActions } ) {\n\treturn (\n\t\t<div style={ { display: 'contents', all: 'initial' } }>\n\t\t\t<div className={ clsx( className, 'block-editor-warning' ) }>\n\t\t\t\t<div className=\"block-editor-warning__contents\">\n\t\t\t\t\t<p className=\"block-editor-warning__message\">\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</p>\n\n\t\t\t\t\t{ ( actions?.length > 0 || secondaryActions ) && (\n\t\t\t\t\t\t<div className=\"block-editor-warning__actions\">\n\t\t\t\t\t\t\t{ actions?.length > 0 &&\n\t\t\t\t\t\t\t\tactions.map( ( action, i ) => (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tkey={ i }\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-warning__action\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ action }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) ) }\n\t\t\t\t\t\t\t{ secondaryActions && (\n\t\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\t\tclassName=\"block-editor-warning__secondary\"\n\t\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'More options' ) }\n\t\t\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\t\t\tplacement: 'bottom-end',\n\t\t\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-warning__dropdown',\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tnoIcons\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ () => (\n\t\t\t\t\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t\t\t\t\t{ secondaryActions.map(\n\t\t\t\t\t\t\t\t\t\t\t\t( item, pos ) => (\n\t\t\t\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ item.onClick }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tkey={ pos }\n\t\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\t{ item.title }\n\t\t\t\t\t\t\t\t\t\t\t\t\t</MenuItem>\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</MenuGroup>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</DropdownMenu>\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</div>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/warning/README.md\n */\nexport default Warning;\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,IAAI,MAAM,MAAM;;AAEvB;AACA;AACA;AACA,SAASC,YAAY,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,uBAAuB;AACzE,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,YAAY,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEhD,SAASC,OAAOA,CAAE;EAAEC,SAAS;EAAEC,OAAO;EAAEC,QAAQ;EAAEC;AAAiB,CAAC,EAAG;EACtE,oBACCP,IAAA;IAAKQ,KAAK,EAAG;MAAEC,OAAO,EAAE,UAAU;MAAEC,GAAG,EAAE;IAAU,CAAG;IAAAJ,QAAA,eACrDN,IAAA;MAAKI,SAAS,EAAGX,IAAI,CAAEW,SAAS,EAAE,sBAAuB,CAAG;MAAAE,QAAA,eAC3DJ,KAAA;QAAKE,SAAS,EAAC,gCAAgC;QAAAE,QAAA,gBAC9CN,IAAA;UAAGI,SAAS,EAAC,+BAA+B;UAAAE,QAAA,EACzCA;QAAQ,CACR,CAAC,EAEF,CAAED,OAAO,EAAEM,MAAM,GAAG,CAAC,IAAIJ,gBAAgB,kBAC1CL,KAAA;UAAKE,SAAS,EAAC,+BAA+B;UAAAE,QAAA,GAC3CD,OAAO,EAAEM,MAAM,GAAG,CAAC,IACpBN,OAAO,CAACO,GAAG,CAAE,CAAEC,MAAM,EAAEC,CAAC,kBACvBd,IAAA;YAECI,SAAS,EAAC,8BAA8B;YAAAE,QAAA,EAEtCO;UAAM,GAHFC,CAID,CACL,CAAC,EACFP,gBAAgB,iBACjBP,IAAA,CAACN,YAAY;YACZU,SAAS,EAAC,iCAAiC;YAC3CW,IAAI,EAAGjB,YAAc;YACrBkB,KAAK,EAAGnB,EAAE,CAAE,cAAe,CAAG;YAC9BoB,YAAY,EAAG;cACdC,SAAS,EAAE,YAAY;cACvBd,SAAS,EACR;YACF,CAAG;YACHe,OAAO;YAAAb,QAAA,EAELA,CAAA,kBACDN,IAAA,CAACL,SAAS;cAAAW,QAAA,EACPC,gBAAgB,CAACK,GAAG,CACrB,CAAEQ,IAAI,EAAEC,GAAG,kBACVrB,IAAA,CAACJ,QAAQ;gBACR0B,OAAO,EAAGF,IAAI,CAACE,OAAS;gBAAAhB,QAAA,EAGtBc,IAAI,CAACG;cAAK,GAFNF,GAGG,CAEZ;YAAC,CACS;UACX,CACY,CACd;QAAA,CACG,CACL;MAAA,CACG;IAAC,CACF;EAAC,CACF,CAAC;AAER;;AAEA;AACA;AACA;AACA,eAAelB,OAAO","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/block-editor",
|
|
3
|
-
"version": "14.
|
|
3
|
+
"version": "14.21.0",
|
|
4
4
|
"description": "Generic block editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -37,38 +37,38 @@
|
|
|
37
37
|
"@emotion/react": "^11.7.1",
|
|
38
38
|
"@emotion/styled": "^11.6.0",
|
|
39
39
|
"@react-spring/web": "^9.4.5",
|
|
40
|
-
"@wordpress/a11y": "^4.
|
|
41
|
-
"@wordpress/api-fetch": "^7.
|
|
42
|
-
"@wordpress/blob": "^4.
|
|
43
|
-
"@wordpress/block-serialization-default-parser": "^5.
|
|
44
|
-
"@wordpress/blocks": "^14.
|
|
45
|
-
"@wordpress/commands": "^1.
|
|
46
|
-
"@wordpress/components": "^29.
|
|
47
|
-
"@wordpress/compose": "^7.
|
|
48
|
-
"@wordpress/data": "^10.
|
|
49
|
-
"@wordpress/date": "^5.
|
|
50
|
-
"@wordpress/deprecated": "^4.
|
|
51
|
-
"@wordpress/dom": "^4.
|
|
52
|
-
"@wordpress/element": "^6.
|
|
53
|
-
"@wordpress/escape-html": "^3.
|
|
54
|
-
"@wordpress/hooks": "^4.
|
|
55
|
-
"@wordpress/html-entities": "^4.
|
|
56
|
-
"@wordpress/i18n": "^5.
|
|
57
|
-
"@wordpress/icons": "^10.
|
|
58
|
-
"@wordpress/is-shallow-equal": "^5.
|
|
59
|
-
"@wordpress/keyboard-shortcuts": "^5.
|
|
60
|
-
"@wordpress/keycodes": "^4.
|
|
61
|
-
"@wordpress/notices": "^5.
|
|
62
|
-
"@wordpress/preferences": "^4.
|
|
63
|
-
"@wordpress/priority-queue": "^3.
|
|
64
|
-
"@wordpress/private-apis": "^1.
|
|
65
|
-
"@wordpress/rich-text": "^7.
|
|
66
|
-
"@wordpress/style-engine": "^2.
|
|
67
|
-
"@wordpress/token-list": "^3.
|
|
68
|
-
"@wordpress/upload-media": "^0.
|
|
69
|
-
"@wordpress/url": "^4.
|
|
70
|
-
"@wordpress/warning": "^3.
|
|
71
|
-
"@wordpress/wordcount": "^4.
|
|
40
|
+
"@wordpress/a11y": "^4.26.0",
|
|
41
|
+
"@wordpress/api-fetch": "^7.26.0",
|
|
42
|
+
"@wordpress/blob": "^4.26.0",
|
|
43
|
+
"@wordpress/block-serialization-default-parser": "^5.26.0",
|
|
44
|
+
"@wordpress/blocks": "^14.15.0",
|
|
45
|
+
"@wordpress/commands": "^1.26.0",
|
|
46
|
+
"@wordpress/components": "^29.12.0",
|
|
47
|
+
"@wordpress/compose": "^7.26.0",
|
|
48
|
+
"@wordpress/data": "^10.26.0",
|
|
49
|
+
"@wordpress/date": "^5.26.0",
|
|
50
|
+
"@wordpress/deprecated": "^4.26.0",
|
|
51
|
+
"@wordpress/dom": "^4.26.0",
|
|
52
|
+
"@wordpress/element": "^6.26.0",
|
|
53
|
+
"@wordpress/escape-html": "^3.26.0",
|
|
54
|
+
"@wordpress/hooks": "^4.26.0",
|
|
55
|
+
"@wordpress/html-entities": "^4.26.0",
|
|
56
|
+
"@wordpress/i18n": "^5.26.0",
|
|
57
|
+
"@wordpress/icons": "^10.26.0",
|
|
58
|
+
"@wordpress/is-shallow-equal": "^5.26.0",
|
|
59
|
+
"@wordpress/keyboard-shortcuts": "^5.26.0",
|
|
60
|
+
"@wordpress/keycodes": "^4.26.0",
|
|
61
|
+
"@wordpress/notices": "^5.26.0",
|
|
62
|
+
"@wordpress/preferences": "^4.26.0",
|
|
63
|
+
"@wordpress/priority-queue": "^3.26.0",
|
|
64
|
+
"@wordpress/private-apis": "^1.26.0",
|
|
65
|
+
"@wordpress/rich-text": "^7.26.0",
|
|
66
|
+
"@wordpress/style-engine": "^2.26.0",
|
|
67
|
+
"@wordpress/token-list": "^3.26.0",
|
|
68
|
+
"@wordpress/upload-media": "^0.11.0",
|
|
69
|
+
"@wordpress/url": "^4.26.0",
|
|
70
|
+
"@wordpress/warning": "^3.26.0",
|
|
71
|
+
"@wordpress/wordcount": "^4.26.0",
|
|
72
72
|
"change-case": "^4.1.2",
|
|
73
73
|
"clsx": "^2.1.1",
|
|
74
74
|
"colord": "^2.7.0",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"publishConfig": {
|
|
92
92
|
"access": "public"
|
|
93
93
|
},
|
|
94
|
-
"gitHead": "
|
|
94
|
+
"gitHead": "35e26942820d8237771af0c58e45b4303f0497f1"
|
|
95
95
|
}
|
|
@@ -37,7 +37,7 @@ import { store as blockEditorStore } from '../../../store';
|
|
|
37
37
|
|
|
38
38
|
const ALLOWED_MEDIA_TYPES = [ 'image' ];
|
|
39
39
|
const MEDIA_OPTIONS_POPOVER_PROPS = {
|
|
40
|
-
|
|
40
|
+
placement: 'bottom-end',
|
|
41
41
|
className:
|
|
42
42
|
'block-editor-inserter__media-list__item-preview-options__popover',
|
|
43
43
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
|
-
import {
|
|
5
|
+
import { useReducer } from '@wordpress/element';
|
|
6
6
|
import {
|
|
7
7
|
Button,
|
|
8
8
|
__experimentalInputControlSuffixWrapper as InputControlSuffixWrapper,
|
|
@@ -14,73 +14,67 @@ import { link, keyboardReturn, arrowLeft } from '@wordpress/icons';
|
|
|
14
14
|
*/
|
|
15
15
|
import URLInput from './';
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
17
|
+
/**
|
|
18
|
+
* A button that toggles a URL input field for inserting or editing links.
|
|
19
|
+
*
|
|
20
|
+
* @param {Object} props Component properties.
|
|
21
|
+
* @param {string} props.url The current URL value.
|
|
22
|
+
* @param {Function} props.onChange Callback function to handle URL changes.
|
|
23
|
+
* @return {JSX.Element} The URL input button component.
|
|
24
|
+
*/
|
|
25
|
+
function URLInputButton( { url, onChange } ) {
|
|
26
|
+
const [ expanded, toggleExpanded ] = useReducer(
|
|
27
|
+
( isExpanded ) => ! isExpanded,
|
|
28
|
+
false
|
|
29
|
+
);
|
|
30
30
|
|
|
31
|
-
submitLink( event ) {
|
|
31
|
+
const submitLink = ( event ) => {
|
|
32
32
|
event.preventDefault();
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
render() {
|
|
37
|
-
const { url, onChange } = this.props;
|
|
38
|
-
const { expanded } = this.state;
|
|
39
|
-
const buttonLabel = url ? __( 'Edit link' ) : __( 'Insert link' );
|
|
33
|
+
toggleExpanded();
|
|
34
|
+
};
|
|
40
35
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
36
|
+
return (
|
|
37
|
+
<div className="block-editor-url-input__button">
|
|
38
|
+
<Button
|
|
39
|
+
size="compact"
|
|
40
|
+
icon={ link }
|
|
41
|
+
label={ url ? __( 'Edit link' ) : __( 'Insert link' ) }
|
|
42
|
+
onClick={ toggleExpanded }
|
|
43
|
+
className="components-toolbar__control"
|
|
44
|
+
isPressed={ !! url }
|
|
45
|
+
/>
|
|
46
|
+
{ expanded && (
|
|
47
|
+
<form
|
|
48
|
+
className="block-editor-url-input__button-modal"
|
|
49
|
+
onSubmit={ submitLink }
|
|
50
|
+
>
|
|
51
|
+
<div className="block-editor-url-input__button-modal-line">
|
|
52
|
+
<Button
|
|
53
|
+
__next40pxDefaultSize
|
|
54
|
+
className="block-editor-url-input__back"
|
|
55
|
+
icon={ arrowLeft }
|
|
56
|
+
label={ __( 'Close' ) }
|
|
57
|
+
onClick={ toggleExpanded }
|
|
58
|
+
/>
|
|
59
|
+
<URLInput
|
|
60
|
+
value={ url || '' }
|
|
61
|
+
onChange={ onChange }
|
|
62
|
+
suffix={
|
|
63
|
+
<InputControlSuffixWrapper variant="control">
|
|
64
|
+
<Button
|
|
65
|
+
size="small"
|
|
66
|
+
icon={ keyboardReturn }
|
|
67
|
+
label={ __( 'Submit' ) }
|
|
68
|
+
type="submit"
|
|
69
|
+
/>
|
|
70
|
+
</InputControlSuffixWrapper>
|
|
71
|
+
}
|
|
72
|
+
/>
|
|
73
|
+
</div>
|
|
74
|
+
</form>
|
|
75
|
+
) }
|
|
76
|
+
</div>
|
|
77
|
+
);
|
|
84
78
|
}
|
|
85
79
|
|
|
86
80
|
/**
|
|
@@ -36,7 +36,7 @@ function Warning( { className, actions, children, secondaryActions } ) {
|
|
|
36
36
|
icon={ moreVertical }
|
|
37
37
|
label={ __( 'More options' ) }
|
|
38
38
|
popoverProps={ {
|
|
39
|
-
|
|
39
|
+
placement: 'bottom-end',
|
|
40
40
|
className:
|
|
41
41
|
'block-editor-warning__dropdown',
|
|
42
42
|
} }
|