@wordpress/format-library 5.26.0 → 5.26.1-next.719a03cbe.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/build/image/index.js +17 -1
- package/build/image/index.js.map +1 -1
- package/build-module/image/index.js +17 -1
- package/build-module/image/index.js.map +1 -1
- package/package.json +14 -14
- package/src/image/index.js +19 -1
package/build/image/index.js
CHANGED
|
@@ -17,6 +17,21 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
17
17
|
const ALLOWED_MEDIA_TYPES = ['image'];
|
|
18
18
|
const name = 'core/image';
|
|
19
19
|
const title = (0, _i18n.__)('Inline image');
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Extracts the image ID from the className attribute.
|
|
23
|
+
*
|
|
24
|
+
* @param {Object} activeObjectAttributes The attributes of the active object.
|
|
25
|
+
* @return {number|undefined} The extracted image ID or undefined if not found.
|
|
26
|
+
*/
|
|
27
|
+
function getCurrentImageId(activeObjectAttributes) {
|
|
28
|
+
var _activeObjectAttribut;
|
|
29
|
+
if (!activeObjectAttributes?.className) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const [, id] = (_activeObjectAttribut = activeObjectAttributes.className.match(/wp-image-(\d+)/)) !== null && _activeObjectAttribut !== void 0 ? _activeObjectAttribut : [];
|
|
33
|
+
return id ? parseInt(id, 10) : undefined;
|
|
34
|
+
}
|
|
20
35
|
const image = exports.image = {
|
|
21
36
|
name,
|
|
22
37
|
title,
|
|
@@ -124,6 +139,7 @@ function Edit({
|
|
|
124
139
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_blockEditor.MediaUploadCheck, {
|
|
125
140
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.MediaUpload, {
|
|
126
141
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
142
|
+
value: getCurrentImageId(activeObjectAttributes),
|
|
127
143
|
onSelect: ({
|
|
128
144
|
id,
|
|
129
145
|
url,
|
|
@@ -151,7 +167,7 @@ function Edit({
|
|
|
151
167
|
d: "M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z"
|
|
152
168
|
})
|
|
153
169
|
}),
|
|
154
|
-
title: title,
|
|
170
|
+
title: isObjectActive ? (0, _i18n.__)('Replace image') : title,
|
|
155
171
|
onClick: open,
|
|
156
172
|
isActive: isObjectActive
|
|
157
173
|
})
|
package/build/image/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_element","_richText","_blockEditor","_jsxRuntime","ALLOWED_MEDIA_TYPES","name","title","__","image","exports","keywords","object","tagName","className","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","activeObjectAttributes","contentRef","width","replace","editedWidth","setEditedWidth","useState","editedAlt","setEditedAlt","hasChanged","popoverAnchor","useAnchor","editableContentElement","current","settings","jsx","Popover","placement","focusOnMount","anchor","children","onSubmit","event","newReplacements","replacements","slice","start","type","preventDefault","jsxs","__experimentalVStack","spacing","__experimentalNumberControl","__next40pxDefaultSize","label","min","newWidth","TextareaControl","__nextHasNoMarginBottom","newAlt","help","Fragment","ExternalLink","href","__experimentalHStack","justify","Button","disabled","accessibleWhenDisabled","variant","size","onFocus","isObjectActive","MediaUploadCheck","MediaUpload","allowedTypes","onSelect","id","imgWidth","insertObject","Math","render","open","RichTextToolbarButton","icon","SVG","xmlns","viewBox","Path","d","onClick","isActive"],"sources":["@wordpress/format-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\tExternalLink,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNumberControl as NumberControl,\n\tTextareaControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style, alt } = activeObjectAttributes;\n\tconst width = style?.replace( /\\D/g, '' );\n\tconst [ editedWidth, setEditedWidth ] = useState( width );\n\tconst [ editedAlt, setEditedAlt ] = useState( alt );\n\tconst hasChanged = editedWidth !== width || editedAlt !== alt;\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: editedWidth\n\t\t\t\t\t\t\t\t? `width: ${ editedWidth }px;`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\talt: editedAlt,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ editedWidth }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\tsetEditedWidth( newWidth );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ editedAlt }\n\t\t\t\t\t\tonChange={ ( newAlt ) => {\n\t\t\t\t\t\t\tsetEditedAlt( newAlt );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tdisabled={ ! hasChanged }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonFocus();\n\t\t\t\t} }\n\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<SVG\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t\t\t</SVG>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\tisActive={ isObjectActive }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_element","_richText","_blockEditor","_jsxRuntime","ALLOWED_MEDIA_TYPES","name","title","__","getCurrentImageId","activeObjectAttributes","_activeObjectAttribut","className","undefined","id","match","parseInt","image","exports","keywords","object","tagName","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","contentRef","width","replace","editedWidth","setEditedWidth","useState","editedAlt","setEditedAlt","hasChanged","popoverAnchor","useAnchor","editableContentElement","current","settings","jsx","Popover","placement","focusOnMount","anchor","children","onSubmit","event","newReplacements","replacements","slice","start","type","preventDefault","jsxs","__experimentalVStack","spacing","__experimentalNumberControl","__next40pxDefaultSize","label","min","newWidth","TextareaControl","__nextHasNoMarginBottom","newAlt","help","Fragment","ExternalLink","href","__experimentalHStack","justify","Button","disabled","accessibleWhenDisabled","variant","size","onFocus","isObjectActive","MediaUploadCheck","MediaUpload","allowedTypes","onSelect","imgWidth","insertObject","Math","render","open","RichTextToolbarButton","icon","SVG","xmlns","viewBox","Path","d","onClick","isActive"],"sources":["@wordpress/format-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\tExternalLink,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNumberControl as NumberControl,\n\tTextareaControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\n/**\n * Extracts the image ID from the className attribute.\n *\n * @param {Object} activeObjectAttributes The attributes of the active object.\n * @return {number|undefined} The extracted image ID or undefined if not found.\n */\nfunction getCurrentImageId( activeObjectAttributes ) {\n\tif ( ! activeObjectAttributes?.className ) {\n\t\treturn undefined;\n\t}\n\n\tconst [ , id ] =\n\t\tactiveObjectAttributes.className.match( /wp-image-(\\d+)/ ) ?? [];\n\n\treturn id ? parseInt( id, 10 ) : undefined;\n}\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style, alt } = activeObjectAttributes;\n\tconst width = style?.replace( /\\D/g, '' );\n\tconst [ editedWidth, setEditedWidth ] = useState( width );\n\tconst [ editedAlt, setEditedAlt ] = useState( alt );\n\tconst hasChanged = editedWidth !== width || editedAlt !== alt;\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: editedWidth\n\t\t\t\t\t\t\t\t? `width: ${ editedWidth }px;`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\talt: editedAlt,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ editedWidth }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\tsetEditedWidth( newWidth );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ editedAlt }\n\t\t\t\t\t\tonChange={ ( newAlt ) => {\n\t\t\t\t\t\t\tsetEditedAlt( newAlt );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tdisabled={ ! hasChanged }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ getCurrentImageId( activeObjectAttributes ) }\n\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonFocus();\n\t\t\t\t} }\n\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<SVG\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t\t\t</SVG>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ isObjectActive ? __( 'Replace image' ) : title }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\tisActive={ isObjectActive }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,21 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
10
10
|
const ALLOWED_MEDIA_TYPES = ['image'];
|
|
11
11
|
const name = 'core/image';
|
|
12
12
|
const title = __('Inline image');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Extracts the image ID from the className attribute.
|
|
16
|
+
*
|
|
17
|
+
* @param {Object} activeObjectAttributes The attributes of the active object.
|
|
18
|
+
* @return {number|undefined} The extracted image ID or undefined if not found.
|
|
19
|
+
*/
|
|
20
|
+
function getCurrentImageId(activeObjectAttributes) {
|
|
21
|
+
var _activeObjectAttribut;
|
|
22
|
+
if (!activeObjectAttributes?.className) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
const [, id] = (_activeObjectAttribut = activeObjectAttributes.className.match(/wp-image-(\d+)/)) !== null && _activeObjectAttribut !== void 0 ? _activeObjectAttribut : [];
|
|
26
|
+
return id ? parseInt(id, 10) : undefined;
|
|
27
|
+
}
|
|
13
28
|
export const image = {
|
|
14
29
|
name,
|
|
15
30
|
title,
|
|
@@ -117,6 +132,7 @@ function Edit({
|
|
|
117
132
|
return /*#__PURE__*/_jsxs(MediaUploadCheck, {
|
|
118
133
|
children: [/*#__PURE__*/_jsx(MediaUpload, {
|
|
119
134
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
135
|
+
value: getCurrentImageId(activeObjectAttributes),
|
|
120
136
|
onSelect: ({
|
|
121
137
|
id,
|
|
122
138
|
url,
|
|
@@ -144,7 +160,7 @@ function Edit({
|
|
|
144
160
|
d: "M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z"
|
|
145
161
|
})
|
|
146
162
|
}),
|
|
147
|
-
title: title,
|
|
163
|
+
title: isObjectActive ? __('Replace image') : title,
|
|
148
164
|
onClick: open,
|
|
149
165
|
isActive: isObjectActive
|
|
150
166
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Path","SVG","Popover","Button","ExternalLink","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNumberControl","NumberControl","TextareaControl","__","useState","insertObject","useAnchor","MediaUpload","RichTextToolbarButton","MediaUploadCheck","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","name","title","image","keywords","object","tagName","className","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","activeObjectAttributes","contentRef","width","replace","editedWidth","setEditedWidth","editedAlt","setEditedAlt","hasChanged","popoverAnchor","editableContentElement","current","settings","placement","focusOnMount","anchor","children","onSubmit","event","newReplacements","replacements","slice","start","type","preventDefault","spacing","__next40pxDefaultSize","label","min","newWidth","__nextHasNoMarginBottom","newAlt","help","href","justify","disabled","accessibleWhenDisabled","variant","size","onFocus","isObjectActive","allowedTypes","onSelect","id","imgWidth","Math","render","open","icon","xmlns","viewBox","d","onClick","isActive"],"sources":["@wordpress/format-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\tExternalLink,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNumberControl as NumberControl,\n\tTextareaControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style, alt } = activeObjectAttributes;\n\tconst width = style?.replace( /\\D/g, '' );\n\tconst [ editedWidth, setEditedWidth ] = useState( width );\n\tconst [ editedAlt, setEditedAlt ] = useState( alt );\n\tconst hasChanged = editedWidth !== width || editedAlt !== alt;\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: editedWidth\n\t\t\t\t\t\t\t\t? `width: ${ editedWidth }px;`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\talt: editedAlt,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ editedWidth }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\tsetEditedWidth( newWidth );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ editedAlt }\n\t\t\t\t\t\tonChange={ ( newAlt ) => {\n\t\t\t\t\t\t\tsetEditedAlt( newAlt );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tdisabled={ ! hasChanged }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonFocus();\n\t\t\t\t} }\n\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<SVG\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t\t\t</SVG>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\tisActive={ isObjectActive }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Path","SVG","Popover","Button","ExternalLink","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalNumberControl","NumberControl","TextareaControl","__","useState","insertObject","useAnchor","MediaUpload","RichTextToolbarButton","MediaUploadCheck","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ALLOWED_MEDIA_TYPES","name","title","getCurrentImageId","activeObjectAttributes","_activeObjectAttribut","className","undefined","id","match","parseInt","image","keywords","object","tagName","attributes","style","url","alt","edit","Edit","InlineUI","value","onChange","contentRef","width","replace","editedWidth","setEditedWidth","editedAlt","setEditedAlt","hasChanged","popoverAnchor","editableContentElement","current","settings","placement","focusOnMount","anchor","children","onSubmit","event","newReplacements","replacements","slice","start","type","preventDefault","spacing","__next40pxDefaultSize","label","min","newWidth","__nextHasNoMarginBottom","newAlt","help","href","justify","disabled","accessibleWhenDisabled","variant","size","onFocus","isObjectActive","allowedTypes","onSelect","imgWidth","Math","render","open","icon","xmlns","viewBox","d","onClick","isActive"],"sources":["@wordpress/format-library/src/image/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tPath,\n\tSVG,\n\tPopover,\n\tButton,\n\tExternalLink,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalNumberControl as NumberControl,\n\tTextareaControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport { insertObject, useAnchor } from '@wordpress/rich-text';\nimport {\n\tMediaUpload,\n\tRichTextToolbarButton,\n\tMediaUploadCheck,\n} from '@wordpress/block-editor';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst name = 'core/image';\nconst title = __( 'Inline image' );\n\n/**\n * Extracts the image ID from the className attribute.\n *\n * @param {Object} activeObjectAttributes The attributes of the active object.\n * @return {number|undefined} The extracted image ID or undefined if not found.\n */\nfunction getCurrentImageId( activeObjectAttributes ) {\n\tif ( ! activeObjectAttributes?.className ) {\n\t\treturn undefined;\n\t}\n\n\tconst [ , id ] =\n\t\tactiveObjectAttributes.className.match( /wp-image-(\\d+)/ ) ?? [];\n\n\treturn id ? parseInt( id, 10 ) : undefined;\n}\n\nexport const image = {\n\tname,\n\ttitle,\n\tkeywords: [ __( 'photo' ), __( 'media' ) ],\n\tobject: true,\n\ttagName: 'img',\n\tclassName: null,\n\tattributes: {\n\t\tclassName: 'class',\n\t\tstyle: 'style',\n\t\turl: 'src',\n\t\talt: 'alt',\n\t},\n\tedit: Edit,\n};\n\nfunction InlineUI( { value, onChange, activeObjectAttributes, contentRef } ) {\n\tconst { style, alt } = activeObjectAttributes;\n\tconst width = style?.replace( /\\D/g, '' );\n\tconst [ editedWidth, setEditedWidth ] = useState( width );\n\tconst [ editedAlt, setEditedAlt ] = useState( alt );\n\tconst hasChanged = editedWidth !== width || editedAlt !== alt;\n\tconst popoverAnchor = useAnchor( {\n\t\teditableContentElement: contentRef.current,\n\t\tsettings: image,\n\t} );\n\n\treturn (\n\t\t<Popover\n\t\t\tplacement=\"bottom\"\n\t\t\tfocusOnMount={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tclassName=\"block-editor-format-toolbar__image-popover\"\n\t\t>\n\t\t\t<form\n\t\t\t\tclassName=\"block-editor-format-toolbar__image-container-content\"\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tconst newReplacements = value.replacements.slice();\n\n\t\t\t\t\tnewReplacements[ value.start ] = {\n\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t...activeObjectAttributes,\n\t\t\t\t\t\t\tstyle: editedWidth\n\t\t\t\t\t\t\t\t? `width: ${ editedWidth }px;`\n\t\t\t\t\t\t\t\t: '',\n\t\t\t\t\t\t\talt: editedAlt,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tonChange( {\n\t\t\t\t\t\t...value,\n\t\t\t\t\t\treplacements: newReplacements,\n\t\t\t\t\t} );\n\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<VStack spacing={ 4 }>\n\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tvalue={ editedWidth }\n\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\tsetEditedWidth( newWidth );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tlabel={ __( 'Alternative text' ) }\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tvalue={ editedAlt }\n\t\t\t\t\t\tonChange={ ( newAlt ) => {\n\t\t\t\t\t\t\tsetEditedAlt( newAlt );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\t\thref={\n\t\t\t\t\t\t\t\t\t\t// translators: Localized tutorial, if one exists. W3C Web Accessibility Initiative link has list of existing translations.\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'https://www.w3.org/WAI/tutorials/images/decision-tree/'\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t<br />\n\t\t\t\t\t\t\t\t{ __( 'Leave empty if decorative.' ) }\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<HStack justify=\"right\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tdisabled={ ! hasChanged }\n\t\t\t\t\t\t\taccessibleWhenDisabled\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</HStack>\n\t\t\t\t</VStack>\n\t\t\t</form>\n\t\t</Popover>\n\t);\n}\n\nfunction Edit( {\n\tvalue,\n\tonChange,\n\tonFocus,\n\tisObjectActive,\n\tactiveObjectAttributes,\n\tcontentRef,\n} ) {\n\treturn (\n\t\t<MediaUploadCheck>\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\tvalue={ getCurrentImageId( activeObjectAttributes ) }\n\t\t\t\tonSelect={ ( { id, url, alt, width: imgWidth } ) => {\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tinsertObject( value, {\n\t\t\t\t\t\t\ttype: name,\n\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\tclassName: `wp-image-${ id }`,\n\t\t\t\t\t\t\t\tstyle: `width: ${ Math.min(\n\t\t\t\t\t\t\t\t\timgWidth,\n\t\t\t\t\t\t\t\t\t150\n\t\t\t\t\t\t\t\t) }px;`,\n\t\t\t\t\t\t\t\turl,\n\t\t\t\t\t\t\t\talt,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t} )\n\t\t\t\t\t);\n\t\t\t\t\tonFocus();\n\t\t\t\t} }\n\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t<RichTextToolbarButton\n\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t<SVG\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Path d=\"M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z\" />\n\t\t\t\t\t\t\t</SVG>\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitle={ isObjectActive ? __( 'Replace image' ) : title }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\tisActive={ isObjectActive }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t/>\n\t\t\t{ isObjectActive && (\n\t\t\t\t<InlineUI\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tactiveObjectAttributes={ activeObjectAttributes }\n\t\t\t\t\tcontentRef={ contentRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</MediaUploadCheck>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wordpress/format-library",
|
|
3
|
-
"version": "5.26.0",
|
|
3
|
+
"version": "5.26.1-next.719a03cbe.0",
|
|
4
4
|
"description": "Format library for the WordPress editor.",
|
|
5
5
|
"author": "The WordPress Contributors",
|
|
6
6
|
"license": "GPL-2.0-or-later",
|
|
@@ -28,18 +28,18 @@
|
|
|
28
28
|
"wpScript": true,
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@babel/runtime": "7.25.7",
|
|
31
|
-
"@wordpress/a11y": "^4.26.0",
|
|
32
|
-
"@wordpress/block-editor": "^14.21.0",
|
|
33
|
-
"@wordpress/components": "^29.
|
|
34
|
-
"@wordpress/compose": "^7.26.0",
|
|
35
|
-
"@wordpress/data": "^10.26.0",
|
|
36
|
-
"@wordpress/element": "^6.26.0",
|
|
37
|
-
"@wordpress/html-entities": "^4.26.0",
|
|
38
|
-
"@wordpress/i18n": "^
|
|
39
|
-
"@wordpress/icons": "^10.26.0",
|
|
40
|
-
"@wordpress/private-apis": "^1.26.0",
|
|
41
|
-
"@wordpress/rich-text": "^7.26.0",
|
|
42
|
-
"@wordpress/url": "^4.26.0"
|
|
31
|
+
"@wordpress/a11y": "^4.26.1-next.719a03cbe.0",
|
|
32
|
+
"@wordpress/block-editor": "^14.21.1-next.719a03cbe.0",
|
|
33
|
+
"@wordpress/components": "^29.13.1-next.719a03cbe.0",
|
|
34
|
+
"@wordpress/compose": "^7.26.1-next.719a03cbe.0",
|
|
35
|
+
"@wordpress/data": "^10.26.1-next.719a03cbe.0",
|
|
36
|
+
"@wordpress/element": "^6.26.1-next.719a03cbe.0",
|
|
37
|
+
"@wordpress/html-entities": "^4.26.1-next.719a03cbe.0",
|
|
38
|
+
"@wordpress/i18n": "^6.0.1-next.719a03cbe.0",
|
|
39
|
+
"@wordpress/icons": "^10.26.2-next.719a03cbe.0",
|
|
40
|
+
"@wordpress/private-apis": "^1.26.1-next.719a03cbe.0",
|
|
41
|
+
"@wordpress/rich-text": "^7.26.1-next.719a03cbe.0",
|
|
42
|
+
"@wordpress/url": "^4.26.1-next.719a03cbe.0"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"react": "^18.0.0",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"publishConfig": {
|
|
49
49
|
"access": "public"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "5e146e949c2765411a8310bcc2641a88d036a6d9"
|
|
52
52
|
}
|
package/src/image/index.js
CHANGED
|
@@ -26,6 +26,23 @@ const ALLOWED_MEDIA_TYPES = [ 'image' ];
|
|
|
26
26
|
const name = 'core/image';
|
|
27
27
|
const title = __( 'Inline image' );
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* Extracts the image ID from the className attribute.
|
|
31
|
+
*
|
|
32
|
+
* @param {Object} activeObjectAttributes The attributes of the active object.
|
|
33
|
+
* @return {number|undefined} The extracted image ID or undefined if not found.
|
|
34
|
+
*/
|
|
35
|
+
function getCurrentImageId( activeObjectAttributes ) {
|
|
36
|
+
if ( ! activeObjectAttributes?.className ) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const [ , id ] =
|
|
41
|
+
activeObjectAttributes.className.match( /wp-image-(\d+)/ ) ?? [];
|
|
42
|
+
|
|
43
|
+
return id ? parseInt( id, 10 ) : undefined;
|
|
44
|
+
}
|
|
45
|
+
|
|
29
46
|
export const image = {
|
|
30
47
|
name,
|
|
31
48
|
title,
|
|
@@ -149,6 +166,7 @@ function Edit( {
|
|
|
149
166
|
<MediaUploadCheck>
|
|
150
167
|
<MediaUpload
|
|
151
168
|
allowedTypes={ ALLOWED_MEDIA_TYPES }
|
|
169
|
+
value={ getCurrentImageId( activeObjectAttributes ) }
|
|
152
170
|
onSelect={ ( { id, url, alt, width: imgWidth } ) => {
|
|
153
171
|
onChange(
|
|
154
172
|
insertObject( value, {
|
|
@@ -176,7 +194,7 @@ function Edit( {
|
|
|
176
194
|
<Path d="M4 18.5h16V17H4v1.5zM16 13v1.5h4V13h-4zM5.1 15h7.8c.6 0 1.1-.5 1.1-1.1V6.1c0-.6-.5-1.1-1.1-1.1H5.1C4.5 5 4 5.5 4 6.1v7.8c0 .6.5 1.1 1.1 1.1zm.4-8.5h7V10l-1-1c-.3-.3-.8-.3-1 0l-1.6 1.5-1.2-.7c-.3-.2-.6-.2-.9 0l-1.3 1V6.5zm0 6.1l1.8-1.3 1.3.8c.3.2.7.2.9-.1l1.5-1.4 1.5 1.4v1.5h-7v-.9z" />
|
|
177
195
|
</SVG>
|
|
178
196
|
}
|
|
179
|
-
title={ title }
|
|
197
|
+
title={ isObjectActive ? __( 'Replace image' ) : title }
|
|
180
198
|
onClick={ open }
|
|
181
199
|
isActive={ isObjectActive }
|
|
182
200
|
/>
|