@wordpress/block-library 9.30.1-next.6f42e1382.0 → 9.30.1-next.a730c9c8c.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.
Files changed (87) hide show
  1. package/build/button/edit.js +6 -1
  2. package/build/button/edit.js.map +1 -1
  3. package/build/button/edit.native.js +1 -1
  4. package/build/button/edit.native.js.map +1 -1
  5. package/build/image/edit.native.js +1 -1
  6. package/build/image/edit.native.js.map +1 -1
  7. package/build/image/image.js +5 -8
  8. package/build/image/image.js.map +1 -1
  9. package/build/image/save.js +6 -2
  10. package/build/image/save.js.map +1 -1
  11. package/build/navigation/edit/index.js +0 -1
  12. package/build/navigation/edit/index.js.map +1 -1
  13. package/build/post-date/edit.js +2 -1
  14. package/build/post-date/edit.js.map +1 -1
  15. package/build/post-featured-image/edit.js +7 -2
  16. package/build/post-featured-image/edit.js.map +1 -1
  17. package/build/post-title/edit.js +8 -2
  18. package/build/post-title/edit.js.map +1 -1
  19. package/build/query/edit/pattern-selection.js +9 -1
  20. package/build/query/edit/pattern-selection.js.map +1 -1
  21. package/build/query/index.js +2 -1
  22. package/build/query/index.js.map +1 -1
  23. package/build/rss/edit.js +6 -1
  24. package/build/rss/edit.js.map +1 -1
  25. package/build/site-tagline/index.js +1 -0
  26. package/build/site-tagline/index.js.map +1 -1
  27. package/build/social-link/edit.js +6 -1
  28. package/build/social-link/edit.js.map +1 -1
  29. package/build/spacer/edit.js +2 -1
  30. package/build/spacer/edit.js.map +1 -1
  31. package/build/terms-query/inspector-controls.js +20 -35
  32. package/build/terms-query/inspector-controls.js.map +1 -1
  33. package/build/utils/hooks.js +3 -0
  34. package/build/utils/hooks.js.map +1 -1
  35. package/build-module/button/edit.js +7 -2
  36. package/build-module/button/edit.js.map +1 -1
  37. package/build-module/button/edit.native.js +1 -1
  38. package/build-module/button/edit.native.js.map +1 -1
  39. package/build-module/image/edit.native.js +1 -1
  40. package/build-module/image/edit.native.js.map +1 -1
  41. package/build-module/image/image.js +5 -8
  42. package/build-module/image/image.js.map +1 -1
  43. package/build-module/image/save.js +6 -2
  44. package/build-module/image/save.js.map +1 -1
  45. package/build-module/navigation/edit/index.js +0 -1
  46. package/build-module/navigation/edit/index.js.map +1 -1
  47. package/build-module/post-date/edit.js +3 -2
  48. package/build-module/post-date/edit.js.map +1 -1
  49. package/build-module/post-featured-image/edit.js +9 -4
  50. package/build-module/post-featured-image/edit.js.map +1 -1
  51. package/build-module/post-title/edit.js +9 -3
  52. package/build-module/post-title/edit.js.map +1 -1
  53. package/build-module/query/edit/pattern-selection.js +9 -1
  54. package/build-module/query/edit/pattern-selection.js.map +1 -1
  55. package/build-module/query/index.js +2 -1
  56. package/build-module/query/index.js.map +1 -1
  57. package/build-module/rss/edit.js +8 -3
  58. package/build-module/rss/edit.js.map +1 -1
  59. package/build-module/site-tagline/index.js +1 -0
  60. package/build-module/site-tagline/index.js.map +1 -1
  61. package/build-module/social-link/edit.js +8 -3
  62. package/build-module/social-link/edit.js.map +1 -1
  63. package/build-module/spacer/edit.js +3 -2
  64. package/build-module/spacer/edit.js.map +1 -1
  65. package/build-module/terms-query/inspector-controls.js +20 -35
  66. package/build-module/terms-query/inspector-controls.js.map +1 -1
  67. package/build-module/utils/hooks.js +3 -0
  68. package/build-module/utils/hooks.js.map +1 -1
  69. package/package.json +35 -35
  70. package/src/button/edit.js +12 -1
  71. package/src/button/edit.native.js +1 -1
  72. package/src/image/edit.native.js +1 -1
  73. package/src/image/image.js +5 -8
  74. package/src/image/save.js +7 -1
  75. package/src/navigation/edit/index.js +0 -1
  76. package/src/post-date/edit.js +64 -53
  77. package/src/post-date/index.php +0 -13
  78. package/src/post-featured-image/edit.js +19 -3
  79. package/src/post-title/edit.js +14 -2
  80. package/src/query/block.json +2 -1
  81. package/src/query/edit/pattern-selection.js +10 -1
  82. package/src/rss/edit.js +13 -2
  83. package/src/site-tagline/block.json +1 -0
  84. package/src/social-link/edit.js +13 -2
  85. package/src/spacer/edit.js +5 -1
  86. package/src/terms-query/inspector-controls.js +32 -26
  87. package/src/utils/hooks.js +4 -0
@@ -167,7 +167,7 @@ function ButtonEdit(props) {
167
167
  label: __('Open in new tab')
168
168
  },
169
169
  linkRel: {
170
- label: __('Link Rel'),
170
+ label: __('Link relation'),
171
171
  placeholder: _x('None', 'Link rel attribute value placeholder')
172
172
  }
173
173
  };
@@ -1 +1 @@
1
- {"version":3,"names":["View","AccessibilityInfo","Platform","Text","useCallback","useEffect","useState","useRef","useSelect","useDispatch","__","_x","RichText","InspectorControls","BlockControls","store","blockEditorStore","getColorObjectByAttributeValues","getGradientValueBySlug","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","useMobileGlobalStylesColors","PanelBody","ToolbarGroup","ToolbarButton","LinkSettingsNavigation","UnitControl","getValueAndUnit","BottomSheetSelectControl","CSS_UNITS","filterUnitsWithSettings","link","editPostStore","richTextStyle","styles","ColorBackground","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MIN_BORDER_RADIUS_VALUE","MAX_BORDER_RADIUS_VALUE","INITIAL_MAX_WIDTH","MIN_WIDTH","MIN_WIDTH_MARGINS","button75","marginLeft","button50","button25","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","options","value","label","title","children","onChange","ButtonEdit","props","isSelected","parentWidth","initialBorderRadius","attributes","style","border","radius","valueUnit","editorSidebarOpened","numOfButtons","select","isEditorSidebarOpened","getBlockCount","getBlockRootClientId","parentId","clientId","blockCount","currentIsEditorSidebarOpened","closeGeneralSidebar","maxWidth","setMaxWidth","isLinkSheetVisible","setIsLinkSheetVisible","isButtonFocused","setIsButtonFocused","placeholderTextWidth","setPlaceholderTextWidth","borderRadiusUnit","setBorderRadiusUnit","richTextRef","colors","gradients","onToggleButtonFocus","onSetMaxWidth","richText","current","OS","blur","isScreenReaderEnabled","then","enabled","focus","linkSettingsActions","onPress","onClearSettings","linkSettingsOptions","url","placeholder","autoFocus","autoFill","openInNewTab","linkRel","noFocusLinkSettingOptions","getBackgroundColor","backgroundColor","gradient","gradientValue","colorProps","colorObject","color","background","defaultButton","getTextColor","textColor","onChangeText","text","onChangeBorderRadius","newRadius","newStyle","getNewStyle","onChangeBorderRadiusUnit","newRadiusUnit","newBorderRadius","getBorderRadiusValue","radiusUnit","onShowLinkSettings","onHideLinkSettings","rel","linkTarget","onLayout","nativeEvent","layout","isParentWidthDidChange","marginRight","spacing","isParentWidthChanged","isWidthChanged","onRemove","onDeleteBlock","onReplace","onPlaceholderTextWidth","textWidth","lines","Math","min","onSetRef","ref","onUnstableOnFocus","onBlur","dismissSheet","getLinkSettings","isCompatibleWithSettings","isVisible","onClose","withBottomSheet","hasPicker","actions","showIcon","getPlaceholderWidth","placeholderText","onTextLayout","currentBorderRadius","defaultBorderRadius","valueAndUnit","Number","isInteger","parseInt","valueToConvert","parseFloat","mergeBlocks","buttonStyle","align","paddingTop","borderWidth","borderRadiusValue","borderRadius","buttonBorderRadiusValue","floor","outlineBorderRadius","minWidth","isFixedWidth","outLineStyles","outline","borderColor","textStyles","paddingLeft","paddingRight","pointerEvents","textAlign","placeholderTextColor","identifier","tagName","id","withoutInteractiveFormatting","unstableOnFocus","__unstableMobileNoFocusOnMount","selectionColor","onMerge","fontSize","icon","onClick","isActive","max","onUnitChange","unit","units"],"sources":["@wordpress/block-library/src/button/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, AccessibilityInfo, Platform, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useState, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tRichText,\n\tInspectorControls,\n\tBlockControls,\n\tstore as blockEditorStore,\n\tgetColorObjectByAttributeValues,\n\tgetGradientValueBySlug,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tToolbarGroup,\n\tToolbarButton,\n\tLinkSettingsNavigation,\n\tUnitControl,\n\tgetValueAndUnit,\n\tBottomSheetSelectControl,\n\tCSS_UNITS,\n\tfilterUnitsWithSettings,\n} from '@wordpress/components';\nimport { link } from '@wordpress/icons';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport richTextStyle from './rich-text.scss';\nimport styles from './editor.scss';\nimport ColorBackground from './color-background';\n\nconst MIN_BORDER_RADIUS_VALUE = 0;\nconst MAX_BORDER_RADIUS_VALUE = 50;\nconst INITIAL_MAX_WIDTH = 108;\nconst MIN_WIDTH = 40;\n// Map of the percentage width to pixel subtraction that make the buttons fit nicely into columns.\nconst MIN_WIDTH_MARGINS = {\n\t100: 0,\n\t75: styles.button75?.marginLeft,\n\t50: styles.button50?.marginLeft,\n\t25: styles.button25?.marginLeft,\n};\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tlet width = selectedWidth === newWidth ? undefined : newWidth;\n\t\tif ( newWidth === 'auto' ) {\n\t\t\twidth = undefined;\n\t\t}\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\tconst options = [\n\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t{ value: 25, label: '25%' },\n\t\t{ value: 50, label: '50%' },\n\t\t{ value: 75, label: '75%' },\n\t\t{ value: 100, label: '100%' },\n\t];\n\n\tif ( ! selectedWidth ) {\n\t\tselectedWidth = 'auto';\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Width Settings' ) }>\n\t\t\t<BottomSheetSelectControl\n\t\t\t\tlabel={ __( 'Button width' ) }\n\t\t\t\tvalue={ selectedWidth }\n\t\t\t\tonChange={ handleChange }\n\t\t\t\toptions={ options }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst { isSelected, parentWidth } = props;\n\tconst initialBorderRadius = props?.attributes?.style?.border?.radius;\n\tconst { valueUnit = 'px' } = getValueAndUnit( initialBorderRadius ) || {};\n\n\tconst { editorSidebarOpened, numOfButtons } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isEditorSidebarOpened } = select( editPostStore );\n\t\t\tconst { getBlockCount, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst parentId = getBlockRootClientId( clientId );\n\t\t\tconst blockCount = getBlockCount( parentId );\n\t\t\tconst currentIsEditorSidebarOpened = isEditorSidebarOpened();\n\n\t\t\treturn {\n\t\t\t\teditorSidebarOpened: isSelected && currentIsEditorSidebarOpened,\n\t\t\t\tnumOfButtons: blockCount,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected ]\n\t);\n\n\tconst { closeGeneralSidebar } = useDispatch( editPostStore );\n\tconst [ maxWidth, setMaxWidth ] = useState( INITIAL_MAX_WIDTH );\n\tconst [ isLinkSheetVisible, setIsLinkSheetVisible ] = useState( false );\n\tconst [ isButtonFocused, setIsButtonFocused ] = useState( true );\n\tconst [ placeholderTextWidth, setPlaceholderTextWidth ] = useState( 0 );\n\tconst [ borderRadiusUnit, setBorderRadiusUnit ] = useState( valueUnit );\n\n\tconst richTextRef = useRef();\n\tconst colors = useMobileGlobalStylesColors();\n\tconst gradients = useMobileGlobalStylesColors( 'gradients' );\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\tonToggleButtonFocus( true );\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\tonSetMaxWidth( null, true );\n\t}, [ parentWidth ] );\n\n\tuseEffect( () => {\n\t\t// Blur `RichText` on Android when link settings sheet or button settings sheet is opened,\n\t\t// to avoid flashing caret after closing one of them\n\t\tconst richText = richTextRef?.current;\n\t\tif ( Platform.OS === 'android' && richText ) {\n\t\t\tif ( editorSidebarOpened || isLinkSheetVisible ) {\n\t\t\t\trichText.blur();\n\t\t\t\tonToggleButtonFocus( false );\n\t\t\t} else {\n\t\t\t\tonToggleButtonFocus( true );\n\t\t\t}\n\t\t}\n\t}, [ editorSidebarOpened, isLinkSheetVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( richTextRef?.current ) {\n\t\t\tif ( ! isSelected && isButtonFocused ) {\n\t\t\t\tonToggleButtonFocus( false );\n\t\t\t}\n\n\t\t\tif ( isSelected && ! isButtonFocused ) {\n\t\t\t\tAccessibilityInfo.isScreenReaderEnabled().then( ( enabled ) => {\n\t\t\t\t\tif ( enabled ) {\n\t\t\t\t\t\tonToggleButtonFocus( true );\n\t\t\t\t\t\trichTextRef?.current.focus();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, isButtonFocused ] );\n\n\tconst linkSettingsActions = [\n\t\t{\n\t\t\tlabel: __( 'Remove link' ),\n\t\t\tonPress: onClearSettings,\n\t\t},\n\t];\n\n\tconst linkSettingsOptions = {\n\t\turl: {\n\t\t\tlabel: __( 'Button Link URL' ),\n\t\t\tplaceholder: __( 'Add URL' ),\n\t\t\tautoFocus: true,\n\t\t\tautoFill: false,\n\t\t},\n\t\topenInNewTab: {\n\t\t\tlabel: __( 'Open in new tab' ),\n\t\t},\n\t\tlinkRel: {\n\t\t\tlabel: __( 'Link Rel' ),\n\t\t\tplaceholder: _x( 'None', 'Link rel attribute value placeholder' ),\n\t\t},\n\t};\n\n\tconst noFocusLinkSettingOptions = {\n\t\t...linkSettingsOptions,\n\t\turl: {\n\t\t\t...linkSettingsOptions.url,\n\t\t\tautoFocus: false,\n\t\t},\n\t};\n\n\tfunction getBackgroundColor() {\n\t\tconst { attributes, style } = props;\n\t\tconst { backgroundColor, gradient } = attributes;\n\n\t\t// Return named gradient value if available.\n\t\tconst gradientValue = getGradientValueBySlug( gradients, gradient );\n\n\t\tif ( gradientValue ) {\n\t\t\treturn gradientValue;\n\t\t}\n\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\t// Retrieve named color object to force inline styles for themes that\n\t\t// do not load their color stylesheets in the editor.\n\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tbackgroundColor\n\t\t);\n\n\t\treturn (\n\t\t\tcolorObject?.color ||\n\t\t\tcolorProps.style?.backgroundColor ||\n\t\t\tcolorProps.style?.background ||\n\t\t\tstyle?.backgroundColor ||\n\t\t\tstyles.defaultButton.backgroundColor\n\t\t);\n\t}\n\n\tfunction getTextColor() {\n\t\tconst { attributes, style } = props;\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\t// Retrieve named color object to force inline styles for themes that\n\t\t// do not load their color stylesheets in the editor.\n\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tattributes.textColor\n\t\t);\n\n\t\treturn (\n\t\t\tcolorObject?.color ||\n\t\t\tcolorProps.style?.color ||\n\t\t\tstyle?.color ||\n\t\t\tstyles.defaultButton.color\n\t\t);\n\t}\n\n\tfunction onChangeText( value ) {\n\t\tconst { setAttributes } = props;\n\t\tsetAttributes( { text: value } );\n\t}\n\n\tfunction onChangeBorderRadius( newRadius ) {\n\t\tconst { setAttributes, attributes } = props;\n\t\tconst { style } = attributes;\n\t\tconst newStyle = getNewStyle( style, newRadius, borderRadiusUnit );\n\n\t\tsetAttributes( { style: newStyle } );\n\t}\n\n\tfunction onChangeBorderRadiusUnit( newRadiusUnit ) {\n\t\tconst { setAttributes, attributes } = props;\n\t\tconst { style } = attributes;\n\t\tconst newBorderRadius = getBorderRadiusValue(\n\t\t\tattributes?.style?.border?.radius\n\t\t);\n\t\tconst newStyle = getNewStyle( style, newBorderRadius, newRadiusUnit );\n\t\tsetAttributes( { style: newStyle } );\n\t\tsetBorderRadiusUnit( newRadiusUnit );\n\t}\n\n\tfunction getNewStyle( style, radius, radiusUnit ) {\n\t\treturn {\n\t\t\t...style,\n\t\t\tborder: {\n\t\t\t\t...style?.border,\n\t\t\t\tradius: `${ radius }${ radiusUnit }`, // Store the value with the unit so that it works as expected.\n\t\t\t},\n\t\t};\n\t}\n\n\tfunction onShowLinkSettings() {\n\t\tsetIsLinkSheetVisible( true );\n\t}\n\n\tfunction onHideLinkSettings() {\n\t\tsetIsLinkSheetVisible( false );\n\t}\n\n\tfunction onToggleButtonFocus( value ) {\n\t\tif ( value !== isButtonFocused ) {\n\t\t\tsetIsButtonFocused( value );\n\t\t}\n\t}\n\n\tfunction onClearSettings() {\n\t\tconst { setAttributes } = props;\n\n\t\tsetAttributes( {\n\t\t\turl: '',\n\t\t\trel: '',\n\t\t\tlinkTarget: '',\n\t\t} );\n\n\t\tonHideLinkSettings();\n\t}\n\n\tfunction onLayout( { nativeEvent } ) {\n\t\tconst { width } = nativeEvent.layout;\n\t\tonSetMaxWidth( width );\n\t}\n\n\tconst onSetMaxWidth = useCallback(\n\t\t( width, isParentWidthDidChange = false ) => {\n\t\t\tconst { marginRight: spacing } = styles.defaultButton;\n\n\t\t\tconst isParentWidthChanged = isParentWidthDidChange\n\t\t\t\t? isParentWidthDidChange\n\t\t\t\t: maxWidth !== parentWidth;\n\t\t\tconst isWidthChanged = maxWidth !== width;\n\n\t\t\tif ( parentWidth && ! width && isParentWidthChanged ) {\n\t\t\t\tsetMaxWidth( parentWidth - spacing );\n\t\t\t} else if ( ! parentWidth && width && isWidthChanged ) {\n\t\t\t\tsetMaxWidth( width - spacing );\n\t\t\t}\n\t\t},\n\t\t[ maxWidth, parentWidth ]\n\t);\n\n\tfunction onRemove() {\n\t\tconst { onDeleteBlock, onReplace } = props;\n\n\t\tif ( numOfButtons === 1 ) {\n\t\t\tonDeleteBlock();\n\t\t} else {\n\t\t\tonReplace( [] );\n\t\t}\n\t}\n\n\tfunction onPlaceholderTextWidth( { nativeEvent } ) {\n\t\tconst textWidth =\n\t\t\tnativeEvent.lines[ 0 ] && nativeEvent.lines[ 0 ].width;\n\n\t\tif ( textWidth && textWidth !== placeholderTextWidth ) {\n\t\t\tsetPlaceholderTextWidth( Math.min( textWidth, maxWidth ) );\n\t\t}\n\t}\n\n\tconst onSetRef = useCallback(\n\t\t( ref ) => {\n\t\t\trichTextRef.current = ref;\n\t\t},\n\t\t[ richTextRef ]\n\t);\n\n\tconst onUnstableOnFocus = useCallback( () => {\n\t\tonToggleButtonFocus( true );\n\t}, [] );\n\n\tconst onBlur = useCallback( () => {\n\t\tonSetMaxWidth();\n\t}, [] );\n\n\tfunction dismissSheet() {\n\t\tonHideLinkSettings();\n\t\tcloseGeneralSidebar();\n\t}\n\n\tfunction getLinkSettings( isCompatibleWithSettings ) {\n\t\tconst { attributes, setAttributes } = props;\n\t\treturn (\n\t\t\t<LinkSettingsNavigation\n\t\t\t\tisVisible={ isLinkSheetVisible }\n\t\t\t\turl={ attributes.url }\n\t\t\t\trel={ attributes.rel }\n\t\t\t\tlinkTarget={ attributes.linkTarget }\n\t\t\t\tonClose={ dismissSheet }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\twithBottomSheet={ ! isCompatibleWithSettings }\n\t\t\t\thasPicker\n\t\t\t\tactions={ linkSettingsActions }\n\t\t\t\toptions={\n\t\t\t\t\tisCompatibleWithSettings\n\t\t\t\t\t\t? linkSettingsOptions\n\t\t\t\t\t\t: noFocusLinkSettingOptions\n\t\t\t\t}\n\t\t\t\tshowIcon={ ! isCompatibleWithSettings }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Render `Text` with `placeholderText` styled as a placeholder\n\t// to calculate its width which then is set as a `minWidth`\n\tfunction getPlaceholderWidth( placeholderText ) {\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tstyle={ styles.placeholder }\n\t\t\t\tonTextLayout={ onPlaceholderTextWidth }\n\t\t\t>\n\t\t\t\t{ placeholderText }\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tfunction getBorderRadiusValue( currentBorderRadius, defaultBorderRadius ) {\n\t\tconst valueAndUnit = getValueAndUnit( currentBorderRadius );\n\t\tif ( Number.isInteger( parseInt( valueAndUnit?.valueToConvert ) ) ) {\n\t\t\treturn parseFloat( valueAndUnit.valueToConvert );\n\t\t}\n\t\treturn defaultBorderRadius;\n\t}\n\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tsetAttributes,\n\t\tstyle,\n\t} = props;\n\tconst {\n\t\tplaceholder,\n\t\ttext,\n\t\tstyle: buttonStyle,\n\t\turl,\n\t\talign = 'center',\n\t\twidth,\n\t} = attributes;\n\tconst { paddingTop: spacing, borderWidth } = styles.defaultButton;\n\n\tif ( parentWidth === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst currentBorderRadius = buttonStyle?.border?.radius;\n\tconst borderRadiusValue = getBorderRadiusValue(\n\t\tcurrentBorderRadius,\n\t\tstyles.defaultButton.borderRadius\n\t);\n\n\tconst buttonBorderRadiusValue =\n\t\tborderRadiusUnit === 'px' || borderRadiusUnit === '%'\n\t\t\t? borderRadiusValue\n\t\t\t: Math.floor( 14 * borderRadiusValue ); // Lets assume that the font size is set to 14px; TO get a nicer preview.\n\tconst outlineBorderRadius =\n\t\tbuttonBorderRadiusValue > 0\n\t\t\t? buttonBorderRadiusValue + spacing + borderWidth\n\t\t\t: 0;\n\n\t// To achieve proper expanding and shrinking `RichText` on iOS, there is a need to set a `minWidth`\n\t// value at least on 1 when `RichText` is focused or when is not focused, but `RichText` value is\n\t// different than empty string.\n\tlet minWidth =\n\t\tisButtonFocused || ( ! isButtonFocused && text && text !== '' )\n\t\t\t? MIN_WIDTH\n\t\t\t: placeholderTextWidth;\n\tif ( width ) {\n\t\t// Set the width of the button.\n\t\tminWidth = Math.floor(\n\t\t\tmaxWidth * ( width / 100 ) - MIN_WIDTH_MARGINS[ width ]\n\t\t);\n\t}\n\t// To achieve proper expanding and shrinking `RichText` on Android, there is a need to set\n\t// a `placeholder` as an empty string when `RichText` is focused,\n\t// because `AztecView` is calculating a `minWidth` based on placeholder text.\n\tconst placeholderText =\n\t\tisButtonFocused || ( ! isButtonFocused && text && text !== '' )\n\t\t\t? ''\n\t\t\t: placeholder || __( 'Add text…' );\n\n\tconst backgroundColor = getBackgroundColor();\n\tconst textColor = getTextColor();\n\tconst isFixedWidth = !! width;\n\tconst outLineStyles = [\n\t\tstyles.outline,\n\t\t{\n\t\t\tborderRadius: outlineBorderRadius,\n\t\t\tborderColor: backgroundColor,\n\t\t},\n\t];\n\tconst textStyles = {\n\t\t...richTextStyle.richText,\n\t\tpaddingLeft: isFixedWidth ? 0 : richTextStyle.richText.paddingLeft,\n\t\tpaddingRight: isFixedWidth ? 0 : richTextStyle.richText.paddingRight,\n\t\tcolor: textColor,\n\t};\n\n\treturn (\n\t\t<View onLayout={ onLayout }>\n\t\t\t{ getPlaceholderWidth( placeholderText ) }\n\t\t\t<ColorBackground\n\t\t\t\tborderRadiusValue={ buttonBorderRadiusValue }\n\t\t\t\tbackgroundColor={ backgroundColor }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<View pointerEvents=\"none\" style={ outLineStyles } />\n\t\t\t\t) }\n\t\t\t\t<RichText\n\t\t\t\t\tref={ onSetRef }\n\t\t\t\t\tplaceholder={ placeholderText }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ onChangeText }\n\t\t\t\t\tstyle={ textStyles }\n\t\t\t\t\ttextAlign={ align }\n\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\tstyle?.color || styles.placeholderTextColor.color\n\t\t\t\t\t}\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tminWidth={ minWidth } // The minimum Button size.\n\t\t\t\t\tmaxWidth={ isFixedWidth ? minWidth : maxWidth } // The width of the screen.\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tisSelected={ isButtonFocused }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tunstableOnFocus={ onUnstableOnFocus }\n\t\t\t\t\t__unstableMobileNoFocusOnMount={ ! isSelected }\n\t\t\t\t\tselectionColor={ textColor }\n\t\t\t\t\tonBlur={ onBlur }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonRemove={ onRemove }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tfontSize={ style?.fontSize }\n\t\t\t\t/>\n\t\t\t</ColorBackground>\n\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ttitle={ __( 'Edit link' ) }\n\t\t\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\t\t\tonClick={ onShowLinkSettings }\n\t\t\t\t\t\t\t\tisActive={ url }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t{ getLinkSettings( false ) }\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Border Settings' ) }>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Border Radius' ) }\n\t\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\t\tmax={ MAX_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\t\tvalue={ borderRadiusValue }\n\t\t\t\t\t\t\t\tonChange={ onChangeBorderRadius }\n\t\t\t\t\t\t\t\tonUnitChange={ onChangeBorderRadiusUnit }\n\t\t\t\t\t\t\t\tunit={ borderRadiusUnit }\n\t\t\t\t\t\t\t\tunits={ filterUnitsWithSettings(\n\t\t\t\t\t\t\t\t\t[ 'px', 'em', 'rem' ],\n\t\t\t\t\t\t\t\t\tCSS_UNITS\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t<WidthPanel\n\t\t\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<PanelBody title={ __( 'Link Settings' ) }>\n\t\t\t\t\t\t\t{ getLinkSettings( true ) }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\nexport default ButtonEdit;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["View","AccessibilityInfo","Platform","Text","useCallback","useEffect","useState","useRef","useSelect","useDispatch","__","_x","RichText","InspectorControls","BlockControls","store","blockEditorStore","getColorObjectByAttributeValues","getGradientValueBySlug","__experimentalGetColorClassesAndStyles","getColorClassesAndStyles","useMobileGlobalStylesColors","PanelBody","ToolbarGroup","ToolbarButton","LinkSettingsNavigation","UnitControl","getValueAndUnit","BottomSheetSelectControl","CSS_UNITS","filterUnitsWithSettings","link","editPostStore","richTextStyle","styles","ColorBackground","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MIN_BORDER_RADIUS_VALUE","MAX_BORDER_RADIUS_VALUE","INITIAL_MAX_WIDTH","MIN_WIDTH","MIN_WIDTH_MARGINS","button75","marginLeft","button50","button25","WidthPanel","selectedWidth","setAttributes","handleChange","newWidth","width","undefined","options","value","label","title","children","onChange","ButtonEdit","props","isSelected","parentWidth","initialBorderRadius","attributes","style","border","radius","valueUnit","editorSidebarOpened","numOfButtons","select","isEditorSidebarOpened","getBlockCount","getBlockRootClientId","parentId","clientId","blockCount","currentIsEditorSidebarOpened","closeGeneralSidebar","maxWidth","setMaxWidth","isLinkSheetVisible","setIsLinkSheetVisible","isButtonFocused","setIsButtonFocused","placeholderTextWidth","setPlaceholderTextWidth","borderRadiusUnit","setBorderRadiusUnit","richTextRef","colors","gradients","onToggleButtonFocus","onSetMaxWidth","richText","current","OS","blur","isScreenReaderEnabled","then","enabled","focus","linkSettingsActions","onPress","onClearSettings","linkSettingsOptions","url","placeholder","autoFocus","autoFill","openInNewTab","linkRel","noFocusLinkSettingOptions","getBackgroundColor","backgroundColor","gradient","gradientValue","colorProps","colorObject","color","background","defaultButton","getTextColor","textColor","onChangeText","text","onChangeBorderRadius","newRadius","newStyle","getNewStyle","onChangeBorderRadiusUnit","newRadiusUnit","newBorderRadius","getBorderRadiusValue","radiusUnit","onShowLinkSettings","onHideLinkSettings","rel","linkTarget","onLayout","nativeEvent","layout","isParentWidthDidChange","marginRight","spacing","isParentWidthChanged","isWidthChanged","onRemove","onDeleteBlock","onReplace","onPlaceholderTextWidth","textWidth","lines","Math","min","onSetRef","ref","onUnstableOnFocus","onBlur","dismissSheet","getLinkSettings","isCompatibleWithSettings","isVisible","onClose","withBottomSheet","hasPicker","actions","showIcon","getPlaceholderWidth","placeholderText","onTextLayout","currentBorderRadius","defaultBorderRadius","valueAndUnit","Number","isInteger","parseInt","valueToConvert","parseFloat","mergeBlocks","buttonStyle","align","paddingTop","borderWidth","borderRadiusValue","borderRadius","buttonBorderRadiusValue","floor","outlineBorderRadius","minWidth","isFixedWidth","outLineStyles","outline","borderColor","textStyles","paddingLeft","paddingRight","pointerEvents","textAlign","placeholderTextColor","identifier","tagName","id","withoutInteractiveFormatting","unstableOnFocus","__unstableMobileNoFocusOnMount","selectionColor","onMerge","fontSize","icon","onClick","isActive","max","onUnitChange","unit","units"],"sources":["@wordpress/block-library/src/button/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, AccessibilityInfo, Platform, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useState, useRef } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tRichText,\n\tInspectorControls,\n\tBlockControls,\n\tstore as blockEditorStore,\n\tgetColorObjectByAttributeValues,\n\tgetGradientValueBySlug,\n\t__experimentalGetColorClassesAndStyles as getColorClassesAndStyles,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tToolbarGroup,\n\tToolbarButton,\n\tLinkSettingsNavigation,\n\tUnitControl,\n\tgetValueAndUnit,\n\tBottomSheetSelectControl,\n\tCSS_UNITS,\n\tfilterUnitsWithSettings,\n} from '@wordpress/components';\nimport { link } from '@wordpress/icons';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport richTextStyle from './rich-text.scss';\nimport styles from './editor.scss';\nimport ColorBackground from './color-background';\n\nconst MIN_BORDER_RADIUS_VALUE = 0;\nconst MAX_BORDER_RADIUS_VALUE = 50;\nconst INITIAL_MAX_WIDTH = 108;\nconst MIN_WIDTH = 40;\n// Map of the percentage width to pixel subtraction that make the buttons fit nicely into columns.\nconst MIN_WIDTH_MARGINS = {\n\t100: 0,\n\t75: styles.button75?.marginLeft,\n\t50: styles.button50?.marginLeft,\n\t25: styles.button25?.marginLeft,\n};\n\nfunction WidthPanel( { selectedWidth, setAttributes } ) {\n\tfunction handleChange( newWidth ) {\n\t\t// Check if we are toggling the width off\n\t\tlet width = selectedWidth === newWidth ? undefined : newWidth;\n\t\tif ( newWidth === 'auto' ) {\n\t\t\twidth = undefined;\n\t\t}\n\t\t// Update attributes.\n\t\tsetAttributes( { width } );\n\t}\n\n\tconst options = [\n\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t{ value: 25, label: '25%' },\n\t\t{ value: 50, label: '50%' },\n\t\t{ value: 75, label: '75%' },\n\t\t{ value: 100, label: '100%' },\n\t];\n\n\tif ( ! selectedWidth ) {\n\t\tselectedWidth = 'auto';\n\t}\n\n\treturn (\n\t\t<PanelBody title={ __( 'Width Settings' ) }>\n\t\t\t<BottomSheetSelectControl\n\t\t\t\tlabel={ __( 'Button width' ) }\n\t\t\t\tvalue={ selectedWidth }\n\t\t\t\tonChange={ handleChange }\n\t\t\t\toptions={ options }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nfunction ButtonEdit( props ) {\n\tconst { isSelected, parentWidth } = props;\n\tconst initialBorderRadius = props?.attributes?.style?.border?.radius;\n\tconst { valueUnit = 'px' } = getValueAndUnit( initialBorderRadius ) || {};\n\n\tconst { editorSidebarOpened, numOfButtons } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isEditorSidebarOpened } = select( editPostStore );\n\t\t\tconst { getBlockCount, getBlockRootClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst parentId = getBlockRootClientId( clientId );\n\t\t\tconst blockCount = getBlockCount( parentId );\n\t\t\tconst currentIsEditorSidebarOpened = isEditorSidebarOpened();\n\n\t\t\treturn {\n\t\t\t\teditorSidebarOpened: isSelected && currentIsEditorSidebarOpened,\n\t\t\t\tnumOfButtons: blockCount,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected ]\n\t);\n\n\tconst { closeGeneralSidebar } = useDispatch( editPostStore );\n\tconst [ maxWidth, setMaxWidth ] = useState( INITIAL_MAX_WIDTH );\n\tconst [ isLinkSheetVisible, setIsLinkSheetVisible ] = useState( false );\n\tconst [ isButtonFocused, setIsButtonFocused ] = useState( true );\n\tconst [ placeholderTextWidth, setPlaceholderTextWidth ] = useState( 0 );\n\tconst [ borderRadiusUnit, setBorderRadiusUnit ] = useState( valueUnit );\n\n\tconst richTextRef = useRef();\n\tconst colors = useMobileGlobalStylesColors();\n\tconst gradients = useMobileGlobalStylesColors( 'gradients' );\n\n\tuseEffect( () => {\n\t\tif ( isSelected ) {\n\t\t\tonToggleButtonFocus( true );\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\tonSetMaxWidth( null, true );\n\t}, [ parentWidth ] );\n\n\tuseEffect( () => {\n\t\t// Blur `RichText` on Android when link settings sheet or button settings sheet is opened,\n\t\t// to avoid flashing caret after closing one of them\n\t\tconst richText = richTextRef?.current;\n\t\tif ( Platform.OS === 'android' && richText ) {\n\t\t\tif ( editorSidebarOpened || isLinkSheetVisible ) {\n\t\t\t\trichText.blur();\n\t\t\t\tonToggleButtonFocus( false );\n\t\t\t} else {\n\t\t\t\tonToggleButtonFocus( true );\n\t\t\t}\n\t\t}\n\t}, [ editorSidebarOpened, isLinkSheetVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( richTextRef?.current ) {\n\t\t\tif ( ! isSelected && isButtonFocused ) {\n\t\t\t\tonToggleButtonFocus( false );\n\t\t\t}\n\n\t\t\tif ( isSelected && ! isButtonFocused ) {\n\t\t\t\tAccessibilityInfo.isScreenReaderEnabled().then( ( enabled ) => {\n\t\t\t\t\tif ( enabled ) {\n\t\t\t\t\t\tonToggleButtonFocus( true );\n\t\t\t\t\t\trichTextRef?.current.focus();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, isButtonFocused ] );\n\n\tconst linkSettingsActions = [\n\t\t{\n\t\t\tlabel: __( 'Remove link' ),\n\t\t\tonPress: onClearSettings,\n\t\t},\n\t];\n\n\tconst linkSettingsOptions = {\n\t\turl: {\n\t\t\tlabel: __( 'Button Link URL' ),\n\t\t\tplaceholder: __( 'Add URL' ),\n\t\t\tautoFocus: true,\n\t\t\tautoFill: false,\n\t\t},\n\t\topenInNewTab: {\n\t\t\tlabel: __( 'Open in new tab' ),\n\t\t},\n\t\tlinkRel: {\n\t\t\tlabel: __( 'Link relation' ),\n\t\t\tplaceholder: _x( 'None', 'Link rel attribute value placeholder' ),\n\t\t},\n\t};\n\n\tconst noFocusLinkSettingOptions = {\n\t\t...linkSettingsOptions,\n\t\turl: {\n\t\t\t...linkSettingsOptions.url,\n\t\t\tautoFocus: false,\n\t\t},\n\t};\n\n\tfunction getBackgroundColor() {\n\t\tconst { attributes, style } = props;\n\t\tconst { backgroundColor, gradient } = attributes;\n\n\t\t// Return named gradient value if available.\n\t\tconst gradientValue = getGradientValueBySlug( gradients, gradient );\n\n\t\tif ( gradientValue ) {\n\t\t\treturn gradientValue;\n\t\t}\n\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\t// Retrieve named color object to force inline styles for themes that\n\t\t// do not load their color stylesheets in the editor.\n\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tbackgroundColor\n\t\t);\n\n\t\treturn (\n\t\t\tcolorObject?.color ||\n\t\t\tcolorProps.style?.backgroundColor ||\n\t\t\tcolorProps.style?.background ||\n\t\t\tstyle?.backgroundColor ||\n\t\t\tstyles.defaultButton.backgroundColor\n\t\t);\n\t}\n\n\tfunction getTextColor() {\n\t\tconst { attributes, style } = props;\n\t\tconst colorProps = getColorClassesAndStyles( attributes );\n\n\t\t// Retrieve named color object to force inline styles for themes that\n\t\t// do not load their color stylesheets in the editor.\n\t\tconst colorObject = getColorObjectByAttributeValues(\n\t\t\tcolors,\n\t\t\tattributes.textColor\n\t\t);\n\n\t\treturn (\n\t\t\tcolorObject?.color ||\n\t\t\tcolorProps.style?.color ||\n\t\t\tstyle?.color ||\n\t\t\tstyles.defaultButton.color\n\t\t);\n\t}\n\n\tfunction onChangeText( value ) {\n\t\tconst { setAttributes } = props;\n\t\tsetAttributes( { text: value } );\n\t}\n\n\tfunction onChangeBorderRadius( newRadius ) {\n\t\tconst { setAttributes, attributes } = props;\n\t\tconst { style } = attributes;\n\t\tconst newStyle = getNewStyle( style, newRadius, borderRadiusUnit );\n\n\t\tsetAttributes( { style: newStyle } );\n\t}\n\n\tfunction onChangeBorderRadiusUnit( newRadiusUnit ) {\n\t\tconst { setAttributes, attributes } = props;\n\t\tconst { style } = attributes;\n\t\tconst newBorderRadius = getBorderRadiusValue(\n\t\t\tattributes?.style?.border?.radius\n\t\t);\n\t\tconst newStyle = getNewStyle( style, newBorderRadius, newRadiusUnit );\n\t\tsetAttributes( { style: newStyle } );\n\t\tsetBorderRadiusUnit( newRadiusUnit );\n\t}\n\n\tfunction getNewStyle( style, radius, radiusUnit ) {\n\t\treturn {\n\t\t\t...style,\n\t\t\tborder: {\n\t\t\t\t...style?.border,\n\t\t\t\tradius: `${ radius }${ radiusUnit }`, // Store the value with the unit so that it works as expected.\n\t\t\t},\n\t\t};\n\t}\n\n\tfunction onShowLinkSettings() {\n\t\tsetIsLinkSheetVisible( true );\n\t}\n\n\tfunction onHideLinkSettings() {\n\t\tsetIsLinkSheetVisible( false );\n\t}\n\n\tfunction onToggleButtonFocus( value ) {\n\t\tif ( value !== isButtonFocused ) {\n\t\t\tsetIsButtonFocused( value );\n\t\t}\n\t}\n\n\tfunction onClearSettings() {\n\t\tconst { setAttributes } = props;\n\n\t\tsetAttributes( {\n\t\t\turl: '',\n\t\t\trel: '',\n\t\t\tlinkTarget: '',\n\t\t} );\n\n\t\tonHideLinkSettings();\n\t}\n\n\tfunction onLayout( { nativeEvent } ) {\n\t\tconst { width } = nativeEvent.layout;\n\t\tonSetMaxWidth( width );\n\t}\n\n\tconst onSetMaxWidth = useCallback(\n\t\t( width, isParentWidthDidChange = false ) => {\n\t\t\tconst { marginRight: spacing } = styles.defaultButton;\n\n\t\t\tconst isParentWidthChanged = isParentWidthDidChange\n\t\t\t\t? isParentWidthDidChange\n\t\t\t\t: maxWidth !== parentWidth;\n\t\t\tconst isWidthChanged = maxWidth !== width;\n\n\t\t\tif ( parentWidth && ! width && isParentWidthChanged ) {\n\t\t\t\tsetMaxWidth( parentWidth - spacing );\n\t\t\t} else if ( ! parentWidth && width && isWidthChanged ) {\n\t\t\t\tsetMaxWidth( width - spacing );\n\t\t\t}\n\t\t},\n\t\t[ maxWidth, parentWidth ]\n\t);\n\n\tfunction onRemove() {\n\t\tconst { onDeleteBlock, onReplace } = props;\n\n\t\tif ( numOfButtons === 1 ) {\n\t\t\tonDeleteBlock();\n\t\t} else {\n\t\t\tonReplace( [] );\n\t\t}\n\t}\n\n\tfunction onPlaceholderTextWidth( { nativeEvent } ) {\n\t\tconst textWidth =\n\t\t\tnativeEvent.lines[ 0 ] && nativeEvent.lines[ 0 ].width;\n\n\t\tif ( textWidth && textWidth !== placeholderTextWidth ) {\n\t\t\tsetPlaceholderTextWidth( Math.min( textWidth, maxWidth ) );\n\t\t}\n\t}\n\n\tconst onSetRef = useCallback(\n\t\t( ref ) => {\n\t\t\trichTextRef.current = ref;\n\t\t},\n\t\t[ richTextRef ]\n\t);\n\n\tconst onUnstableOnFocus = useCallback( () => {\n\t\tonToggleButtonFocus( true );\n\t}, [] );\n\n\tconst onBlur = useCallback( () => {\n\t\tonSetMaxWidth();\n\t}, [] );\n\n\tfunction dismissSheet() {\n\t\tonHideLinkSettings();\n\t\tcloseGeneralSidebar();\n\t}\n\n\tfunction getLinkSettings( isCompatibleWithSettings ) {\n\t\tconst { attributes, setAttributes } = props;\n\t\treturn (\n\t\t\t<LinkSettingsNavigation\n\t\t\t\tisVisible={ isLinkSheetVisible }\n\t\t\t\turl={ attributes.url }\n\t\t\t\trel={ attributes.rel }\n\t\t\t\tlinkTarget={ attributes.linkTarget }\n\t\t\t\tonClose={ dismissSheet }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\twithBottomSheet={ ! isCompatibleWithSettings }\n\t\t\t\thasPicker\n\t\t\t\tactions={ linkSettingsActions }\n\t\t\t\toptions={\n\t\t\t\t\tisCompatibleWithSettings\n\t\t\t\t\t\t? linkSettingsOptions\n\t\t\t\t\t\t: noFocusLinkSettingOptions\n\t\t\t\t}\n\t\t\t\tshowIcon={ ! isCompatibleWithSettings }\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Render `Text` with `placeholderText` styled as a placeholder\n\t// to calculate its width which then is set as a `minWidth`\n\tfunction getPlaceholderWidth( placeholderText ) {\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tstyle={ styles.placeholder }\n\t\t\t\tonTextLayout={ onPlaceholderTextWidth }\n\t\t\t>\n\t\t\t\t{ placeholderText }\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tfunction getBorderRadiusValue( currentBorderRadius, defaultBorderRadius ) {\n\t\tconst valueAndUnit = getValueAndUnit( currentBorderRadius );\n\t\tif ( Number.isInteger( parseInt( valueAndUnit?.valueToConvert ) ) ) {\n\t\t\treturn parseFloat( valueAndUnit.valueToConvert );\n\t\t}\n\t\treturn defaultBorderRadius;\n\t}\n\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tonReplace,\n\t\tmergeBlocks,\n\t\tsetAttributes,\n\t\tstyle,\n\t} = props;\n\tconst {\n\t\tplaceholder,\n\t\ttext,\n\t\tstyle: buttonStyle,\n\t\turl,\n\t\talign = 'center',\n\t\twidth,\n\t} = attributes;\n\tconst { paddingTop: spacing, borderWidth } = styles.defaultButton;\n\n\tif ( parentWidth === 0 ) {\n\t\treturn null;\n\t}\n\n\tconst currentBorderRadius = buttonStyle?.border?.radius;\n\tconst borderRadiusValue = getBorderRadiusValue(\n\t\tcurrentBorderRadius,\n\t\tstyles.defaultButton.borderRadius\n\t);\n\n\tconst buttonBorderRadiusValue =\n\t\tborderRadiusUnit === 'px' || borderRadiusUnit === '%'\n\t\t\t? borderRadiusValue\n\t\t\t: Math.floor( 14 * borderRadiusValue ); // Lets assume that the font size is set to 14px; TO get a nicer preview.\n\tconst outlineBorderRadius =\n\t\tbuttonBorderRadiusValue > 0\n\t\t\t? buttonBorderRadiusValue + spacing + borderWidth\n\t\t\t: 0;\n\n\t// To achieve proper expanding and shrinking `RichText` on iOS, there is a need to set a `minWidth`\n\t// value at least on 1 when `RichText` is focused or when is not focused, but `RichText` value is\n\t// different than empty string.\n\tlet minWidth =\n\t\tisButtonFocused || ( ! isButtonFocused && text && text !== '' )\n\t\t\t? MIN_WIDTH\n\t\t\t: placeholderTextWidth;\n\tif ( width ) {\n\t\t// Set the width of the button.\n\t\tminWidth = Math.floor(\n\t\t\tmaxWidth * ( width / 100 ) - MIN_WIDTH_MARGINS[ width ]\n\t\t);\n\t}\n\t// To achieve proper expanding and shrinking `RichText` on Android, there is a need to set\n\t// a `placeholder` as an empty string when `RichText` is focused,\n\t// because `AztecView` is calculating a `minWidth` based on placeholder text.\n\tconst placeholderText =\n\t\tisButtonFocused || ( ! isButtonFocused && text && text !== '' )\n\t\t\t? ''\n\t\t\t: placeholder || __( 'Add text…' );\n\n\tconst backgroundColor = getBackgroundColor();\n\tconst textColor = getTextColor();\n\tconst isFixedWidth = !! width;\n\tconst outLineStyles = [\n\t\tstyles.outline,\n\t\t{\n\t\t\tborderRadius: outlineBorderRadius,\n\t\t\tborderColor: backgroundColor,\n\t\t},\n\t];\n\tconst textStyles = {\n\t\t...richTextStyle.richText,\n\t\tpaddingLeft: isFixedWidth ? 0 : richTextStyle.richText.paddingLeft,\n\t\tpaddingRight: isFixedWidth ? 0 : richTextStyle.richText.paddingRight,\n\t\tcolor: textColor,\n\t};\n\n\treturn (\n\t\t<View onLayout={ onLayout }>\n\t\t\t{ getPlaceholderWidth( placeholderText ) }\n\t\t\t<ColorBackground\n\t\t\t\tborderRadiusValue={ buttonBorderRadiusValue }\n\t\t\t\tbackgroundColor={ backgroundColor }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<View pointerEvents=\"none\" style={ outLineStyles } />\n\t\t\t\t) }\n\t\t\t\t<RichText\n\t\t\t\t\tref={ onSetRef }\n\t\t\t\t\tplaceholder={ placeholderText }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t\tonChange={ onChangeText }\n\t\t\t\t\tstyle={ textStyles }\n\t\t\t\t\ttextAlign={ align }\n\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\tstyle?.color || styles.placeholderTextColor.color\n\t\t\t\t\t}\n\t\t\t\t\tidentifier=\"text\"\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tminWidth={ minWidth } // The minimum Button size.\n\t\t\t\t\tmaxWidth={ isFixedWidth ? minWidth : maxWidth } // The width of the screen.\n\t\t\t\t\tid={ clientId }\n\t\t\t\t\tisSelected={ isButtonFocused }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tunstableOnFocus={ onUnstableOnFocus }\n\t\t\t\t\t__unstableMobileNoFocusOnMount={ ! isSelected }\n\t\t\t\t\tselectionColor={ textColor }\n\t\t\t\t\tonBlur={ onBlur }\n\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\tonRemove={ onRemove }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\tfontSize={ style?.fontSize }\n\t\t\t\t/>\n\t\t\t</ColorBackground>\n\n\t\t\t{ isSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\ttitle={ __( 'Edit link' ) }\n\t\t\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\t\t\tonClick={ onShowLinkSettings }\n\t\t\t\t\t\t\t\tisActive={ url }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t{ getLinkSettings( false ) }\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Border Settings' ) }>\n\t\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Border Radius' ) }\n\t\t\t\t\t\t\t\tmin={ MIN_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\t\tmax={ MAX_BORDER_RADIUS_VALUE }\n\t\t\t\t\t\t\t\tvalue={ borderRadiusValue }\n\t\t\t\t\t\t\t\tonChange={ onChangeBorderRadius }\n\t\t\t\t\t\t\t\tonUnitChange={ onChangeBorderRadiusUnit }\n\t\t\t\t\t\t\t\tunit={ borderRadiusUnit }\n\t\t\t\t\t\t\t\tunits={ filterUnitsWithSettings(\n\t\t\t\t\t\t\t\t\t[ 'px', 'em', 'rem' ],\n\t\t\t\t\t\t\t\t\tCSS_UNITS\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t\t<WidthPanel\n\t\t\t\t\t\t\tselectedWidth={ width }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<PanelBody title={ __( 'Link Settings' ) }>\n\t\t\t\t\t\t\t{ getLinkSettings( true ) }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\nexport default ButtonEdit;\n"],"mappings":"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","ignoreList":[]}
@@ -100,7 +100,7 @@ function LinkSettings({
100
100
  label: __('Open in new tab')
101
101
  },
102
102
  linkRel: {
103
- label: __('Link Rel'),
103
+ label: __('Link relation'),
104
104
  placeholder: _x('None', 'Link rel attribute value placeholder')
105
105
  }
106
106
  };
@@ -1 +1 @@
1
- {"version":3,"names":["ActivityIndicator","Image","RNImage","TouchableWithoutFeedback","View","useRoute","Component","useEffect","requestMediaImport","mediaUploadSync","requestImageFailedRetryDialog","requestImageUploadCancelDialog","requestImageFullscreenPreview","setFeaturedImage","Icon","PanelBody","ToolbarButton","ToolbarGroup","WIDE_ALIGNMENTS","LinkSettingsNavigation","BottomSheet","BottomSheetTextControl","BottomSheetSelectControl","FooterMessageControl","FooterMessageLink","Badge","BlockCaption","MediaPlaceholder","MediaUpload","MediaUploadProgress","MEDIA_TYPE_IMAGE","BlockControls","InspectorControls","BlockStyles","store","blockEditorStore","blockSettingsScreens","RichText","__","_x","sprintf","getProtocol","hasQueryArg","isURL","doAction","hasAction","compose","withPreferredColorScheme","withSelect","withDispatch","image","placeholderIcon","replace","fullscreen","textColor","coreStore","noticesStore","editPostStore","styles","getUpdatedLinkTargetSettings","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","MEDIA_ID_NO_FEATURED_IMAGE_SET","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","getUrlForSlug","sizeSlug","undefined","media_details","sizes","source_url","LinkSettings","attributes","isLinkSheetVisible","setMappedAttributes","route","href","url","label","linkDestination","linkTarget","rel","inputValue","newUrl","params","newLinkDestination","link","valueMask","linkSettingsOptions","autoFocus","autoFill","openInNewTab","linkRel","placeholder","title","children","isVisible","setAttributes","withBottomSheet","hasPicker","options","showIcon","onLinkCellPressed","navigation","navigate","imageLinkDestinations","imageUrl","attachmentPageUrl","UPLOAD_STATE_IDLE","UPLOAD_STATE_UPLOADING","UPLOAD_STATE_SUCCEEDED","UPLOAD_STATE_FAILED","ImageEdit","constructor","props","state","isCaptionSelected","uploadStatus","replacedFeaturedImage","finishMediaUploadWithSuccess","bind","finishMediaUploadWithFailure","mediaUploadStateReset","onSelectMediaUploadOption","updateMediaProgress","updateImageURL","onSetNewTab","onSetSizeSlug","onImagePressed","onSetFeatured","onFocusCaption","onSelectURL","accessibilityLabelCreator","onSizeChangeValue","componentDidMount","id","console","warn","componentWillUnmount","componentDidUpdate","previousProps","featuredImageId","updatedUrl","previousId","canImageBeFeatured","align","__unstableMarkNextChangeAsNotPersistent","includes","width","height","aspectRatio","scale","getDerivedStateFromProps","isSelected","caption","isEmpty","setState","payload","mediaUrl","mediaServerId","mediaId","value","updatedLinkTarget","media","imageDefaultSize","destination","mediaAttributes","alt","additionalAttributes","newURL","createErrorNotice","isFetchingImage","getSize","onFocus","getPlaceholderIcon","icon","getStylesFromColorScheme","iconPlaceholder","iconPlaceholderDark","showLoadingIndicator","style","image__loading","animating","getWidth","Object","values","alignments","restAttributes","getAltTextSettings","updateAlt","newAlt","initialValue","onChange","footerNote","newValue","closeSettingsBottomSheet","getFeaturedButtonPanel","isFeaturedImage","setFeaturedButtonStyle","setFeaturedButton","setFeaturedButtonDark","removeFeaturedButton","Cell","labelStyle","cellContainerStyle","setFeaturedButtonCellContainer","separatorType","onPress","isGif","toLowerCase","render","clientId","context","wasBlockJustInserted","shouldUseFastImage","className","hasImageContext","keys","length","imageSizes","Array","isArray","sizeOptions","filter","slug","map","name","selectedSizeOption","sizeOptionsValid","find","option","getToolbarEditButton","open","onClick","getInspectorControls","panelBody","titleStyle","featuredImagePanelTitle","content","allowedTypes","onSelect","autoOpenMediaUpload","alignToFlex","left","center","right","full","wide","additionalImageProps","resizeMode","imageCrop","imageContainerStyles","fixedHeight","badgeLabelShown","badgeLabelText","getImageComponent","openMediaOptions","getMediaOptions","show","accessible","disabled","enablePausedUploads","coverUrl","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","renderContent","isUploadPaused","isUploadInProgress","isUploadFailed","retryMessage","shapeStyle","onBlur","insertBlocksAfter","isReplacingMedia","select","getEntityRecord","getSettings","getEditedPostAttribute","capabilities","isNotFileUrl","shouldGetMedia","dispatch","closeGeneralSidebar"],"sources":["@wordpress/block-library/src/image/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tActivityIndicator,\n\tImage as RNImage,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\nimport { useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { Component, useEffect } from '@wordpress/element';\nimport {\n\trequestMediaImport,\n\tmediaUploadSync,\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\trequestImageFullscreenPreview,\n\tsetFeaturedImage,\n} from '@wordpress/react-native-bridge';\nimport {\n\tIcon,\n\tPanelBody,\n\tToolbarButton,\n\tToolbarGroup,\n\tImage,\n\tWIDE_ALIGNMENTS,\n\tLinkSettingsNavigation,\n\tBottomSheet,\n\tBottomSheetTextControl,\n\tBottomSheetSelectControl,\n\tFooterMessageControl,\n\tFooterMessageLink,\n\tBadge,\n} from '@wordpress/components';\nimport {\n\tBlockCaption,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadProgress,\n\tMEDIA_TYPE_IMAGE,\n\tBlockControls,\n\tInspectorControls,\n\tBlockStyles,\n\tstore as blockEditorStore,\n\tblockSettingsScreens,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { getProtocol, hasQueryArg, isURL } from '@wordpress/url';\nimport { doAction, hasAction } from '@wordpress/hooks';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport {\n\timage as placeholderIcon,\n\treplace,\n\tfullscreen,\n\ttextColor,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport { getUpdatedLinkTargetSettings } from './utils';\n\nimport {\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tMEDIA_ID_NO_FEATURED_IMAGE_SET,\n} from './constants';\n\nconst getUrlForSlug = ( image, sizeSlug ) => {\n\tif ( ! sizeSlug ) {\n\t\treturn undefined;\n\t}\n\treturn image?.media_details?.sizes?.[ sizeSlug ]?.source_url;\n};\n\nfunction LinkSettings( {\n\tattributes,\n\timage,\n\tisLinkSheetVisible,\n\tsetMappedAttributes,\n} ) {\n\tconst route = useRoute();\n\tconst { href: url, label, linkDestination, linkTarget, rel } = attributes;\n\n\t// Persist attributes passed from child screen.\n\tuseEffect( () => {\n\t\tconst { inputValue: newUrl } = route.params || {};\n\n\t\tlet newLinkDestination;\n\t\tswitch ( newUrl ) {\n\t\t\tcase attributes.url:\n\t\t\t\tnewLinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\tbreak;\n\t\t\tcase image?.link:\n\t\t\t\tnewLinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\tbreak;\n\t\t\tcase '':\n\t\t\t\tnewLinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tnewLinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tsetMappedAttributes( {\n\t\t\turl: newUrl,\n\t\t\tlinkDestination: newLinkDestination,\n\t\t} );\n\t}, [ route.params?.inputValue ] );\n\n\tlet valueMask;\n\tswitch ( linkDestination ) {\n\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\tvalueMask = __( 'Media File' );\n\t\t\tbreak;\n\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\tvalueMask = __( 'Attachment Page' );\n\t\t\tbreak;\n\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\tvalueMask = __( 'Custom URL' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tvalueMask = __( 'None' );\n\t\t\tbreak;\n\t}\n\n\tconst linkSettingsOptions = {\n\t\turl: {\n\t\t\tvalueMask,\n\t\t\tautoFocus: false,\n\t\t\tautoFill: false,\n\t\t},\n\t\topenInNewTab: {\n\t\t\tlabel: __( 'Open in new tab' ),\n\t\t},\n\t\tlinkRel: {\n\t\t\tlabel: __( 'Link Rel' ),\n\t\t\tplaceholder: _x( 'None', 'Link rel attribute value placeholder' ),\n\t\t},\n\t};\n\n\treturn (\n\t\t<PanelBody title={ __( 'Link Settings' ) }>\n\t\t\t<LinkSettingsNavigation\n\t\t\t\tisVisible={ isLinkSheetVisible }\n\t\t\t\turl={ url }\n\t\t\t\trel={ rel }\n\t\t\t\tlabel={ label }\n\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\tsetAttributes={ setMappedAttributes }\n\t\t\t\twithBottomSheet={ false }\n\t\t\t\thasPicker\n\t\t\t\toptions={ linkSettingsOptions }\n\t\t\t\tshowIcon={ false }\n\t\t\t\tonLinkCellPressed={ ( { navigation } ) => {\n\t\t\t\t\tnavigation.navigate(\n\t\t\t\t\t\tblockSettingsScreens.imageLinkDestinations,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinputValue: attributes.href,\n\t\t\t\t\t\t\tlinkDestination: attributes.linkDestination,\n\t\t\t\t\t\t\timageUrl: attributes.url,\n\t\t\t\t\t\t\tattachmentPageUrl: image?.link,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nconst UPLOAD_STATE_IDLE = 0;\nconst UPLOAD_STATE_UPLOADING = 1;\nconst UPLOAD_STATE_SUCCEEDED = 2;\nconst UPLOAD_STATE_FAILED = 3;\n\nexport class ImageEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisCaptionSelected: false,\n\t\t\tuploadStatus: UPLOAD_STATE_IDLE,\n\t\t};\n\n\t\tthis.replacedFeaturedImage = false;\n\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t\tthis.onSelectMediaUploadOption =\n\t\t\tthis.onSelectMediaUploadOption.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.updateImageURL = this.updateImageURL.bind( this );\n\t\tthis.onSetNewTab = this.onSetNewTab.bind( this );\n\t\tthis.onSetSizeSlug = this.onSetSizeSlug.bind( this );\n\t\tthis.onImagePressed = this.onImagePressed.bind( this );\n\t\tthis.onSetFeatured = this.onSetFeatured.bind( this );\n\t\tthis.onFocusCaption = this.onFocusCaption.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.accessibilityLabelCreator =\n\t\t\tthis.accessibilityLabelCreator.bind( this );\n\t\tthis.setMappedAttributes = this.setMappedAttributes.bind( this );\n\t\tthis.onSizeChangeValue = this.onSizeChangeValue.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\t// This will warn when we have `id` defined, while `url` is undefined.\n\t\t// This may help track this issue: https://github.com/wordpress-mobile/WordPress-Android/issues/9768\n\t\t// where a cancelled image upload was resulting in a subsequent crash.\n\t\tif ( attributes.id && ! attributes.url ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn( 'Attributes has id with no url.' );\n\t\t}\n\n\t\t// Detect any pasted image and start an upload.\n\t\tif (\n\t\t\t! attributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\trequestMediaImport( attributes.url, ( id, url ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\tsetAttributes( { id, url } );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Make sure we mark any temporary images as failed if they failed while\n\t\t// the editor wasn't open.\n\t\tif (\n\t\t\tattributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\t// This action will only exist if the user pressed the trash button on the block holder.\n\t\tif (\n\t\t\thasAction( 'blocks.onRemoveBlockCheckUpload' ) &&\n\t\t\tthis.state.uploadStatus === UPLOAD_STATE_UPLOADING\n\t\t) {\n\t\t\tdoAction(\n\t\t\t\t'blocks.onRemoveBlockCheckUpload',\n\t\t\t\tthis.props.attributes.id\n\t\t\t);\n\t\t}\n\t}\n\n\tcomponentDidUpdate( previousProps ) {\n\t\tconst { image, attributes, setAttributes, featuredImageId } =\n\t\t\tthis.props;\n\t\tconst { url } = attributes;\n\t\tif ( ! previousProps.image && image ) {\n\t\t\tif ( ! hasQueryArg( url, 'w' ) && attributes?.sizeSlug ) {\n\t\t\t\tconst updatedUrl =\n\t\t\t\t\tgetUrlForSlug( image, attributes.sizeSlug ) ||\n\t\t\t\t\timage.source_url;\n\n\t\t\t\tsetAttributes( { url: updatedUrl } );\n\t\t\t}\n\t\t}\n\n\t\tconst { id } = attributes;\n\t\tconst { id: previousId } = previousProps.attributes;\n\n\t\t// The media changed and the previous media was set as the Featured Image,\n\t\t// we must keep track of the previous media's featured status to act on it\n\t\t// once the new media has a finalized ID.\n\t\tif (\n\t\t\t!! id &&\n\t\t\tid !== previousId &&\n\t\t\t!! featuredImageId &&\n\t\t\tfeaturedImageId === previousId\n\t\t) {\n\t\t\tthis.replacedFeaturedImage = true;\n\t\t}\n\n\t\t// The media changed and now has a finalized ID (e.g. upload completed), we\n\t\t// should attempt to replace the featured image if applicable.\n\t\tif (\n\t\t\tthis.replacedFeaturedImage &&\n\t\t\t!! image &&\n\t\t\tthis.canImageBeFeatured()\n\t\t) {\n\t\t\tthis.replacedFeaturedImage = false;\n\t\t\tsetFeaturedImage( id );\n\t\t}\n\n\t\tconst { align } = attributes;\n\t\tconst { __unstableMarkNextChangeAsNotPersistent } = this.props;\n\n\t\t// Update the attributes if the align is wide or full\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\t// Avoid a UI flicker in the toolbar by insuring that isCaptionSelected\n\t\t// is updated immediately any time the isSelected prop becomes false.\n\t\treturn {\n\t\t\tisCaptionSelected: props.isSelected && state.isCaptionSelected,\n\t\t};\n\t}\n\n\taccessibilityLabelCreator( caption ) {\n\t\t// Checks if caption is empty.\n\t\treturn RichText.isEmpty( caption )\n\t\t\t? /* translators: accessibility text. Empty image caption. */\n\t\t\t 'Image caption. Empty'\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: accessibility text. %s: image caption. */\n\t\t\t\t\t__( 'Image caption. %s' ),\n\t\t\t\t\tcaption\n\t\t\t );\n\t}\n\n\tonImagePressed() {\n\t\tconst { attributes, image } = this.props;\n\n\t\tif ( this.state.uploadStatus === UPLOAD_STATE_UPLOADING ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t} else if ( ! this.state.isCaptionSelected ) {\n\t\t\trequestImageFullscreenPreview(\n\t\t\t\tattributes.url,\n\t\t\t\timage && image.source_url\n\t\t\t);\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tisCaptionSelected: false,\n\t\t} );\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\n\t\tif ( this.state.uploadStatus !== UPLOAD_STATE_UPLOADING ) {\n\t\t\tthis.setState( { uploadStatus: UPLOAD_STATE_UPLOADING } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( { url: payload.mediaUrl, id: payload.mediaServerId } );\n\t\tthis.setState( { uploadStatus: UPLOAD_STATE_SUCCEEDED } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { uploadStatus: UPLOAD_STATE_FAILED } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( { id: null, url: null } );\n\t\tthis.setState( { uploadStatus: UPLOAD_STATE_IDLE } );\n\t}\n\n\tupdateImageURL( url ) {\n\t\tthis.props.setAttributes( {\n\t\t\turl,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t} );\n\t}\n\n\tonSetNewTab( value ) {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\tvalue,\n\t\t\tthis.props.attributes\n\t\t);\n\t\tthis.props.setAttributes( updatedLinkTarget );\n\t}\n\n\tonSetSizeSlug( sizeSlug ) {\n\t\tconst { image, setAttributes } = this.props;\n\n\t\tconst url = getUrlForSlug( image, sizeSlug );\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\t\tsetAttributes( {\n\t\t\turl,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tsizeSlug,\n\t\t} );\n\t}\n\n\tonSelectMediaUploadOption( media ) {\n\t\tconst { imageDefaultSize } = this.props;\n\t\tconst { id, url, destination } = this.props.attributes;\n\t\tconst mediaAttributes = {\n\t\t\tid: media.id,\n\t\t\turl: media.url,\n\t\t\tcaption: media.caption,\n\t\t\talt: media.alt,\n\t\t};\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Image Size\" option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\tlet href;\n\t\tswitch ( destination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tthis.props.setAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t} );\n\t}\n\n\tonSelectURL( newURL ) {\n\t\tconst { createErrorNotice, imageDefaultSize, setAttributes } =\n\t\t\tthis.props;\n\n\t\tif ( isURL( newURL ) ) {\n\t\t\tthis.setState( {\n\t\t\t\tisFetchingImage: true,\n\t\t\t} );\n\n\t\t\t// Use RN's Image.getSize to determine if URL is a valid image\n\t\t\tRNImage.getSize(\n\t\t\t\tnewURL,\n\t\t\t\t() => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t\t\t} );\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tisFetchingImage: false,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tcreateErrorNotice( __( 'Image file not found.' ) );\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tisFetchingImage: false,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tcreateErrorNotice( __( 'Invalid URL.' ) );\n\t\t}\n\t}\n\n\tonFocusCaption() {\n\t\tif ( this.props.onFocus ) {\n\t\t\tthis.props.onFocus();\n\t\t}\n\t\tif ( ! this.state.isCaptionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tisCaptionSelected: true,\n\t\t\t} );\n\t\t}\n\t}\n\n\tgetPlaceholderIcon() {\n\t\treturn (\n\t\t\t<Icon\n\t\t\t\ticon={ placeholderIcon }\n\t\t\t\t{ ...this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyles.iconPlaceholder,\n\t\t\t\t\tstyles.iconPlaceholderDark\n\t\t\t\t) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tshowLoadingIndicator() {\n\t\treturn (\n\t\t\t<View style={ styles.image__loading }>\n\t\t\t\t<ActivityIndicator animating />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tgetWidth() {\n\t\tconst { attributes } = this.props;\n\t\tconst { align, width } = attributes;\n\n\t\treturn Object.values( WIDE_ALIGNMENTS.alignments ).includes( align )\n\t\t\t? '100%'\n\t\t\t: width;\n\t}\n\n\tsetMappedAttributes( { url: href, linkDestination, ...restAttributes } ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( ! href && ! linkDestination ) {\n\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t} else if ( ! linkDestination ) {\n\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t}\n\n\t\treturn href === undefined || href === this.props.attributes.href\n\t\t\t? setAttributes( restAttributes )\n\t\t\t: setAttributes( {\n\t\t\t\t\t...restAttributes,\n\t\t\t\t\tlinkDestination,\n\t\t\t\t\thref,\n\t\t\t } );\n\t}\n\n\tgetAltTextSettings() {\n\t\tconst {\n\t\t\tattributes: { alt },\n\t\t} = this.props;\n\n\t\tconst updateAlt = ( newAlt ) => {\n\t\t\tthis.props.setAttributes( { alt: newAlt } );\n\t\t};\n\n\t\treturn (\n\t\t\t<BottomSheetTextControl\n\t\t\t\tinitialValue={ alt }\n\t\t\t\tonChange={ updateAlt }\n\t\t\t\tplaceholder={ __( 'Add alt text' ) }\n\t\t\t\tlabel={ __( 'Alt Text' ) }\n\t\t\t\ticon={ textColor }\n\t\t\t\tfooterNote={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Describe the purpose of the image. Leave empty if decorative.'\n\t\t\t\t\t\t) }{ ' ' }\n\t\t\t\t\t\t<FooterMessageLink\n\t\t\t\t\t\t\thref={\n\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__(\n\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)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ __( 'What is alt text?' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\n\tonSizeChangeValue( newValue ) {\n\t\tthis.onSetSizeSlug( newValue );\n\t}\n\n\tonSetFeatured( mediaId ) {\n\t\tconst { closeSettingsBottomSheet } = this.props;\n\t\tsetFeaturedImage( mediaId );\n\t\tcloseSettingsBottomSheet();\n\t}\n\n\tgetFeaturedButtonPanel( isFeaturedImage ) {\n\t\tconst { attributes, getStylesFromColorScheme } = this.props;\n\n\t\tconst setFeaturedButtonStyle = getStylesFromColorScheme(\n\t\t\tstyles.setFeaturedButton,\n\t\t\tstyles.setFeaturedButtonDark\n\t\t);\n\n\t\tconst removeFeaturedButton = () => (\n\t\t\t<BottomSheet.Cell\n\t\t\t\tlabel={ __( 'Remove as Featured Image' ) }\n\t\t\t\tlabelStyle={ [\n\t\t\t\t\tsetFeaturedButtonStyle,\n\t\t\t\t\tstyles.removeFeaturedButton,\n\t\t\t\t] }\n\t\t\t\tcellContainerStyle={ styles.setFeaturedButtonCellContainer }\n\t\t\t\tseparatorType=\"none\"\n\t\t\t\tonPress={ () =>\n\t\t\t\t\tthis.onSetFeatured( MEDIA_ID_NO_FEATURED_IMAGE_SET )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\n\t\tconst setFeaturedButton = () => (\n\t\t\t<BottomSheet.Cell\n\t\t\t\tlabel={ __( 'Set as Featured Image' ) }\n\t\t\t\tlabelStyle={ setFeaturedButtonStyle }\n\t\t\t\tcellContainerStyle={ styles.setFeaturedButtonCellContainer }\n\t\t\t\tseparatorType=\"none\"\n\t\t\t\tonPress={ () => this.onSetFeatured( attributes.id ) }\n\t\t\t/>\n\t\t);\n\n\t\treturn isFeaturedImage ? removeFeaturedButton() : setFeaturedButton();\n\t}\n\n\t/**\n\t * Featured images must be set to a successfully uploaded self-hosted image,\n\t * which has an ID.\n\t *\n\t * @return {boolean} Boolean indicating whether or not the current may be set as featured.\n\t */\n\tcanImageBeFeatured() {\n\t\tconst {\n\t\t\tattributes: { id },\n\t\t} = this.props;\n\t\treturn (\n\t\t\ttypeof id !== 'undefined' &&\n\t\t\tthis.state.uploadStatus !== UPLOAD_STATE_UPLOADING &&\n\t\t\tthis.state.uploadStatus !== UPLOAD_STATE_FAILED\n\t\t);\n\t}\n\n\tisGif( url ) {\n\t\treturn url.toLowerCase().includes( '.gif' );\n\t}\n\n\trender() {\n\t\tconst { isCaptionSelected, isFetchingImage } = this.state;\n\t\tconst {\n\t\t\tattributes,\n\t\t\tisSelected,\n\t\t\timage,\n\t\t\tclientId,\n\t\t\timageDefaultSize,\n\t\t\tcontext,\n\t\t\tfeaturedImageId,\n\t\t\twasBlockJustInserted,\n\t\t\tshouldUseFastImage,\n\t\t} = this.props;\n\t\tconst { align, url, alt, id, sizeSlug, className } = attributes;\n\t\tconst hasImageContext = context\n\t\t\t? Object.keys( context ).length > 0\n\t\t\t: false;\n\n\t\tconst imageSizes = Array.isArray( this.props.imageSizes )\n\t\t\t? this.props.imageSizes\n\t\t\t: [];\n\t\t// Only map available image sizes for the user to choose.\n\t\tconst sizeOptions = imageSizes\n\t\t\t.filter( ( { slug } ) => getUrlForSlug( image, slug ) )\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t\tlet selectedSizeOption = sizeSlug || imageDefaultSize;\n\t\tlet sizeOptionsValid = sizeOptions.find(\n\t\t\t( option ) => option.value === selectedSizeOption\n\t\t);\n\n\t\tif ( ! sizeOptionsValid ) {\n\t\t\t// Default to 'full' size if the default large size is not available.\n\t\t\tsizeOptionsValid = sizeOptions.find(\n\t\t\t\t( option ) => option.value === 'full'\n\t\t\t);\n\t\t\tselectedSizeOption = 'full';\n\t\t}\n\n\t\tconst canImageBeFeatured = this.canImageBeFeatured();\n\t\tconst isFeaturedImage =\n\t\t\tcanImageBeFeatured && featuredImageId === attributes.id;\n\n\t\tconst getToolbarEditButton = ( open ) => (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\n\t\tconst getInspectorControls = () => (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) } />\n\t\t\t\t<PanelBody style={ styles.panelBody }>\n\t\t\t\t\t<BlockStyles clientId={ clientId } url={ url } />\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t{ image && sizeOptionsValid && (\n\t\t\t\t\t\t<BottomSheetSelectControl\n\t\t\t\t\t\t\ticon={ fullscreen }\n\t\t\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\t\t\toptions={ sizeOptions }\n\t\t\t\t\t\t\tonChange={ this.onSizeChangeValue }\n\t\t\t\t\t\t\tvalue={ selectedSizeOption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ this.getAltTextSettings() }\n\t\t\t\t</PanelBody>\n\t\t\t\t<LinkSettings\n\t\t\t\t\tattributes={ this.props.attributes }\n\t\t\t\t\timage={ this.props.image }\n\t\t\t\t\tisLinkSheetVisible={ this.state.isLinkSheetVisible }\n\t\t\t\t\tsetMappedAttributes={ this.setMappedAttributes }\n\t\t\t\t/>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ __( 'Featured Image' ) }\n\t\t\t\t\ttitleStyle={ styles.featuredImagePanelTitle }\n\t\t\t\t>\n\t\t\t\t\t{ canImageBeFeatured &&\n\t\t\t\t\t\tthis.getFeaturedButtonPanel( isFeaturedImage ) }\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t'Changes to featured image will not be affected by the undo/redo buttons.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tcellContainerStyle={\n\t\t\t\t\t\t\tstyles.setFeaturedButtonCellContainer\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\n\t\tif ( ! url ) {\n\t\t\treturn (\n\t\t\t\t<View style={ styles.content }>\n\t\t\t\t\t{ isFetchingImage && this.showLoadingIndicator() }\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_IMAGE ] }\n\t\t\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\t\ticon={ this.getPlaceholderIcon() }\n\t\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\t\tautoOpenMediaUpload={\n\t\t\t\t\t\t\tisSelected && wasBlockJustInserted\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\n\t\tconst alignToFlex = {\n\t\t\tleft: 'flex-start',\n\t\t\tcenter: 'center',\n\t\t\tright: 'flex-end',\n\t\t\tfull: 'center',\n\t\t\twide: 'center',\n\t\t};\n\n\t\tconst additionalImageProps = {\n\t\t\theight: '100%',\n\t\t\tresizeMode: context?.imageCrop ? 'cover' : 'contain',\n\t\t};\n\n\t\tconst imageContainerStyles = [\n\t\t\tcontext?.fixedHeight && styles.fixedHeight,\n\t\t];\n\n\t\tconst isGif = this.isGif( url );\n\t\tconst badgeLabelShown = isFeaturedImage || isGif;\n\t\tlet badgeLabelText = '';\n\t\tif ( isFeaturedImage ) {\n\t\t\tbadgeLabelText = __( 'Featured' );\n\t\t} else if ( isGif ) {\n\t\t\tbadgeLabelText = __( 'GIF' );\n\t\t}\n\n\t\tconst getImageComponent = ( openMediaOptions, getMediaOptions ) => (\n\t\t\t<Badge label={ badgeLabelText } show={ badgeLabelShown }>\n\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\taccessible={ ! isSelected }\n\t\t\t\t\tonPress={ this.onImagePressed }\n\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles.content }>\n\t\t\t\t\t\t{ isSelected && getInspectorControls() }\n\t\t\t\t\t\t{ isSelected && getMediaOptions() }\n\t\t\t\t\t\t{ ! this.state.isCaptionSelected &&\n\t\t\t\t\t\t\tgetToolbarEditButton( openMediaOptions ) }\n\t\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\t\tenablePausedUploads\n\t\t\t\t\t\t\tcoverUrl={ url }\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonMediaUploadStateReset={\n\t\t\t\t\t\t\t\tthis.mediaUploadStateReset\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trenderContent={ ( {\n\t\t\t\t\t\t\t\tisUploadPaused,\n\t\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\t\tisUploadFailed,\n\t\t\t\t\t\t\t\tretryMessage,\n\t\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<View style={ imageContainerStyles }>\n\t\t\t\t\t\t\t\t\t\t{ isFetchingImage &&\n\t\t\t\t\t\t\t\t\t\t\tthis.showLoadingIndicator() }\n\t\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\t\talign={\n\t\t\t\t\t\t\t\t\t\t\t\talign && alignToFlex[ align ]\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\t! isCaptionSelected\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\t\t\t\t\t\t\tisUploadPaused={ isUploadPaused }\n\t\t\t\t\t\t\t\t\t\t\tisUploadInProgress={\n\t\t\t\t\t\t\t\t\t\t\t\tisUploadInProgress\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tshouldUseFastImage={\n\t\t\t\t\t\t\t\t\t\t\t\tshouldUseFastImage\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonSelectMediaUploadOption={\n\t\t\t\t\t\t\t\t\t\t\t\tthis.onSelectMediaUploadOption\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\topenMediaOptions={\n\t\t\t\t\t\t\t\t\t\t\t\topenMediaOptions\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\t\t\t\tshapeStyle={\n\t\t\t\t\t\t\t\t\t\t\t\tstyles[ className ] || className\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\twidth={ this.getWidth() }\n\t\t\t\t\t\t\t\t\t\t\t{ ...( hasImageContext\n\t\t\t\t\t\t\t\t\t\t\t\t? additionalImageProps\n\t\t\t\t\t\t\t\t\t\t\t\t: {} ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t<BlockCaption\n\t\t\t\t\tclientId={ this.props.clientId }\n\t\t\t\t\tisSelected={ this.state.isCaptionSelected }\n\t\t\t\t\taccessible={ ! this.state.isCaptionSelected }\n\t\t\t\t\taccessibilityLabelCreator={ this.accessibilityLabelCreator }\n\t\t\t\t\tonFocus={ this.onFocusCaption }\n\t\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as props.\n\t\t\t\t\tinsertBlocksAfter={ this.props.insertBlocksAfter }\n\t\t\t\t/>\n\t\t\t</Badge>\n\t\t);\n\n\t\treturn (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_IMAGE ] }\n\t\t\t\tisReplacingMedia\n\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn getImageComponent( open, getMediaOptions );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst { getSettings, wasBlockJustInserted } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getEditedPostAttribute } = select( 'core/editor' );\n\t\tconst {\n\t\t\tattributes: { id, url },\n\t\t\tisSelected,\n\t\t\tclientId,\n\t\t} = props;\n\t\tconst { imageSizes, imageDefaultSize, capabilities } = getSettings();\n\t\tconst isNotFileUrl = id && getProtocol( url ) !== 'file:';\n\t\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\t\tconst shouldGetMedia =\n\t\t\t( isSelected && isNotFileUrl ) ||\n\t\t\t// Edge case to update the image after uploading if the block gets unselected\n\t\t\t// Check if it's the original image and not the resized one with queryparams.\n\t\t\t( ! isSelected &&\n\t\t\t\tisNotFileUrl &&\n\t\t\t\turl &&\n\t\t\t\t! hasQueryArg( url, 'w' ) );\n\t\tconst image = shouldGetMedia\n\t\t\t? getEntityRecord( 'postType', 'attachment', id )\n\t\t\t: null;\n\n\t\treturn {\n\t\t\timage,\n\t\t\timageSizes,\n\t\t\timageDefaultSize,\n\t\t\tshouldUseFastImage: capabilities?.shouldUseFastImage === true,\n\t\t\tfeaturedImageId,\n\t\t\twasBlockJustInserted: wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createErrorNotice } = dispatch( noticesStore );\n\t\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tcreateErrorNotice,\n\t\t\tcloseSettingsBottomSheet() {\n\t\t\t\tdispatch( editPostStore ).closeGeneralSidebar();\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( ImageEdit );\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ActivityIndicator","Image","RNImage","TouchableWithoutFeedback","View","useRoute","Component","useEffect","requestMediaImport","mediaUploadSync","requestImageFailedRetryDialog","requestImageUploadCancelDialog","requestImageFullscreenPreview","setFeaturedImage","Icon","PanelBody","ToolbarButton","ToolbarGroup","WIDE_ALIGNMENTS","LinkSettingsNavigation","BottomSheet","BottomSheetTextControl","BottomSheetSelectControl","FooterMessageControl","FooterMessageLink","Badge","BlockCaption","MediaPlaceholder","MediaUpload","MediaUploadProgress","MEDIA_TYPE_IMAGE","BlockControls","InspectorControls","BlockStyles","store","blockEditorStore","blockSettingsScreens","RichText","__","_x","sprintf","getProtocol","hasQueryArg","isURL","doAction","hasAction","compose","withPreferredColorScheme","withSelect","withDispatch","image","placeholderIcon","replace","fullscreen","textColor","coreStore","noticesStore","editPostStore","styles","getUpdatedLinkTargetSettings","LINK_DESTINATION_NONE","LINK_DESTINATION_CUSTOM","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","MEDIA_ID_NO_FEATURED_IMAGE_SET","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","getUrlForSlug","sizeSlug","undefined","media_details","sizes","source_url","LinkSettings","attributes","isLinkSheetVisible","setMappedAttributes","route","href","url","label","linkDestination","linkTarget","rel","inputValue","newUrl","params","newLinkDestination","link","valueMask","linkSettingsOptions","autoFocus","autoFill","openInNewTab","linkRel","placeholder","title","children","isVisible","setAttributes","withBottomSheet","hasPicker","options","showIcon","onLinkCellPressed","navigation","navigate","imageLinkDestinations","imageUrl","attachmentPageUrl","UPLOAD_STATE_IDLE","UPLOAD_STATE_UPLOADING","UPLOAD_STATE_SUCCEEDED","UPLOAD_STATE_FAILED","ImageEdit","constructor","props","state","isCaptionSelected","uploadStatus","replacedFeaturedImage","finishMediaUploadWithSuccess","bind","finishMediaUploadWithFailure","mediaUploadStateReset","onSelectMediaUploadOption","updateMediaProgress","updateImageURL","onSetNewTab","onSetSizeSlug","onImagePressed","onSetFeatured","onFocusCaption","onSelectURL","accessibilityLabelCreator","onSizeChangeValue","componentDidMount","id","console","warn","componentWillUnmount","componentDidUpdate","previousProps","featuredImageId","updatedUrl","previousId","canImageBeFeatured","align","__unstableMarkNextChangeAsNotPersistent","includes","width","height","aspectRatio","scale","getDerivedStateFromProps","isSelected","caption","isEmpty","setState","payload","mediaUrl","mediaServerId","mediaId","value","updatedLinkTarget","media","imageDefaultSize","destination","mediaAttributes","alt","additionalAttributes","newURL","createErrorNotice","isFetchingImage","getSize","onFocus","getPlaceholderIcon","icon","getStylesFromColorScheme","iconPlaceholder","iconPlaceholderDark","showLoadingIndicator","style","image__loading","animating","getWidth","Object","values","alignments","restAttributes","getAltTextSettings","updateAlt","newAlt","initialValue","onChange","footerNote","newValue","closeSettingsBottomSheet","getFeaturedButtonPanel","isFeaturedImage","setFeaturedButtonStyle","setFeaturedButton","setFeaturedButtonDark","removeFeaturedButton","Cell","labelStyle","cellContainerStyle","setFeaturedButtonCellContainer","separatorType","onPress","isGif","toLowerCase","render","clientId","context","wasBlockJustInserted","shouldUseFastImage","className","hasImageContext","keys","length","imageSizes","Array","isArray","sizeOptions","filter","slug","map","name","selectedSizeOption","sizeOptionsValid","find","option","getToolbarEditButton","open","onClick","getInspectorControls","panelBody","titleStyle","featuredImagePanelTitle","content","allowedTypes","onSelect","autoOpenMediaUpload","alignToFlex","left","center","right","full","wide","additionalImageProps","resizeMode","imageCrop","imageContainerStyles","fixedHeight","badgeLabelShown","badgeLabelText","getImageComponent","openMediaOptions","getMediaOptions","show","accessible","disabled","enablePausedUploads","coverUrl","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","renderContent","isUploadPaused","isUploadInProgress","isUploadFailed","retryMessage","shapeStyle","onBlur","insertBlocksAfter","isReplacingMedia","select","getEntityRecord","getSettings","getEditedPostAttribute","capabilities","isNotFileUrl","shouldGetMedia","dispatch","closeGeneralSidebar"],"sources":["@wordpress/block-library/src/image/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tActivityIndicator,\n\tImage as RNImage,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\nimport { useRoute } from '@react-navigation/native';\n\n/**\n * WordPress dependencies\n */\nimport { Component, useEffect } from '@wordpress/element';\nimport {\n\trequestMediaImport,\n\tmediaUploadSync,\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\trequestImageFullscreenPreview,\n\tsetFeaturedImage,\n} from '@wordpress/react-native-bridge';\nimport {\n\tIcon,\n\tPanelBody,\n\tToolbarButton,\n\tToolbarGroup,\n\tImage,\n\tWIDE_ALIGNMENTS,\n\tLinkSettingsNavigation,\n\tBottomSheet,\n\tBottomSheetTextControl,\n\tBottomSheetSelectControl,\n\tFooterMessageControl,\n\tFooterMessageLink,\n\tBadge,\n} from '@wordpress/components';\nimport {\n\tBlockCaption,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadProgress,\n\tMEDIA_TYPE_IMAGE,\n\tBlockControls,\n\tInspectorControls,\n\tBlockStyles,\n\tstore as blockEditorStore,\n\tblockSettingsScreens,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { getProtocol, hasQueryArg, isURL } from '@wordpress/url';\nimport { doAction, hasAction } from '@wordpress/hooks';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport {\n\timage as placeholderIcon,\n\treplace,\n\tfullscreen,\n\ttextColor,\n} from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as noticesStore } from '@wordpress/notices';\n// eslint-disable-next-line no-restricted-imports\nimport { store as editPostStore } from '@wordpress/edit-post';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\nimport { getUpdatedLinkTargetSettings } from './utils';\n\nimport {\n\tLINK_DESTINATION_NONE,\n\tLINK_DESTINATION_CUSTOM,\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tMEDIA_ID_NO_FEATURED_IMAGE_SET,\n} from './constants';\n\nconst getUrlForSlug = ( image, sizeSlug ) => {\n\tif ( ! sizeSlug ) {\n\t\treturn undefined;\n\t}\n\treturn image?.media_details?.sizes?.[ sizeSlug ]?.source_url;\n};\n\nfunction LinkSettings( {\n\tattributes,\n\timage,\n\tisLinkSheetVisible,\n\tsetMappedAttributes,\n} ) {\n\tconst route = useRoute();\n\tconst { href: url, label, linkDestination, linkTarget, rel } = attributes;\n\n\t// Persist attributes passed from child screen.\n\tuseEffect( () => {\n\t\tconst { inputValue: newUrl } = route.params || {};\n\n\t\tlet newLinkDestination;\n\t\tswitch ( newUrl ) {\n\t\t\tcase attributes.url:\n\t\t\t\tnewLinkDestination = LINK_DESTINATION_MEDIA;\n\t\t\t\tbreak;\n\t\t\tcase image?.link:\n\t\t\t\tnewLinkDestination = LINK_DESTINATION_ATTACHMENT;\n\t\t\t\tbreak;\n\t\t\tcase '':\n\t\t\t\tnewLinkDestination = LINK_DESTINATION_NONE;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tnewLinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tsetMappedAttributes( {\n\t\t\turl: newUrl,\n\t\t\tlinkDestination: newLinkDestination,\n\t\t} );\n\t}, [ route.params?.inputValue ] );\n\n\tlet valueMask;\n\tswitch ( linkDestination ) {\n\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\tvalueMask = __( 'Media File' );\n\t\t\tbreak;\n\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\tvalueMask = __( 'Attachment Page' );\n\t\t\tbreak;\n\t\tcase LINK_DESTINATION_CUSTOM:\n\t\t\tvalueMask = __( 'Custom URL' );\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tvalueMask = __( 'None' );\n\t\t\tbreak;\n\t}\n\n\tconst linkSettingsOptions = {\n\t\turl: {\n\t\t\tvalueMask,\n\t\t\tautoFocus: false,\n\t\t\tautoFill: false,\n\t\t},\n\t\topenInNewTab: {\n\t\t\tlabel: __( 'Open in new tab' ),\n\t\t},\n\t\tlinkRel: {\n\t\t\tlabel: __( 'Link relation' ),\n\t\t\tplaceholder: _x( 'None', 'Link rel attribute value placeholder' ),\n\t\t},\n\t};\n\n\treturn (\n\t\t<PanelBody title={ __( 'Link Settings' ) }>\n\t\t\t<LinkSettingsNavigation\n\t\t\t\tisVisible={ isLinkSheetVisible }\n\t\t\t\turl={ url }\n\t\t\t\trel={ rel }\n\t\t\t\tlabel={ label }\n\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\tsetAttributes={ setMappedAttributes }\n\t\t\t\twithBottomSheet={ false }\n\t\t\t\thasPicker\n\t\t\t\toptions={ linkSettingsOptions }\n\t\t\t\tshowIcon={ false }\n\t\t\t\tonLinkCellPressed={ ( { navigation } ) => {\n\t\t\t\t\tnavigation.navigate(\n\t\t\t\t\t\tblockSettingsScreens.imageLinkDestinations,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinputValue: attributes.href,\n\t\t\t\t\t\t\tlinkDestination: attributes.linkDestination,\n\t\t\t\t\t\t\timageUrl: attributes.url,\n\t\t\t\t\t\t\tattachmentPageUrl: image?.link,\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PanelBody>\n\t);\n}\n\nconst UPLOAD_STATE_IDLE = 0;\nconst UPLOAD_STATE_UPLOADING = 1;\nconst UPLOAD_STATE_SUCCEEDED = 2;\nconst UPLOAD_STATE_FAILED = 3;\n\nexport class ImageEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisCaptionSelected: false,\n\t\t\tuploadStatus: UPLOAD_STATE_IDLE,\n\t\t};\n\n\t\tthis.replacedFeaturedImage = false;\n\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t\tthis.onSelectMediaUploadOption =\n\t\t\tthis.onSelectMediaUploadOption.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.updateImageURL = this.updateImageURL.bind( this );\n\t\tthis.onSetNewTab = this.onSetNewTab.bind( this );\n\t\tthis.onSetSizeSlug = this.onSetSizeSlug.bind( this );\n\t\tthis.onImagePressed = this.onImagePressed.bind( this );\n\t\tthis.onSetFeatured = this.onSetFeatured.bind( this );\n\t\tthis.onFocusCaption = this.onFocusCaption.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.accessibilityLabelCreator =\n\t\t\tthis.accessibilityLabelCreator.bind( this );\n\t\tthis.setMappedAttributes = this.setMappedAttributes.bind( this );\n\t\tthis.onSizeChangeValue = this.onSizeChangeValue.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\t// This will warn when we have `id` defined, while `url` is undefined.\n\t\t// This may help track this issue: https://github.com/wordpress-mobile/WordPress-Android/issues/9768\n\t\t// where a cancelled image upload was resulting in a subsequent crash.\n\t\tif ( attributes.id && ! attributes.url ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn( 'Attributes has id with no url.' );\n\t\t}\n\n\t\t// Detect any pasted image and start an upload.\n\t\tif (\n\t\t\t! attributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\trequestMediaImport( attributes.url, ( id, url ) => {\n\t\t\t\tif ( url ) {\n\t\t\t\t\tsetAttributes( { id, url } );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Make sure we mark any temporary images as failed if they failed while\n\t\t// the editor wasn't open.\n\t\tif (\n\t\t\tattributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\t// This action will only exist if the user pressed the trash button on the block holder.\n\t\tif (\n\t\t\thasAction( 'blocks.onRemoveBlockCheckUpload' ) &&\n\t\t\tthis.state.uploadStatus === UPLOAD_STATE_UPLOADING\n\t\t) {\n\t\t\tdoAction(\n\t\t\t\t'blocks.onRemoveBlockCheckUpload',\n\t\t\t\tthis.props.attributes.id\n\t\t\t);\n\t\t}\n\t}\n\n\tcomponentDidUpdate( previousProps ) {\n\t\tconst { image, attributes, setAttributes, featuredImageId } =\n\t\t\tthis.props;\n\t\tconst { url } = attributes;\n\t\tif ( ! previousProps.image && image ) {\n\t\t\tif ( ! hasQueryArg( url, 'w' ) && attributes?.sizeSlug ) {\n\t\t\t\tconst updatedUrl =\n\t\t\t\t\tgetUrlForSlug( image, attributes.sizeSlug ) ||\n\t\t\t\t\timage.source_url;\n\n\t\t\t\tsetAttributes( { url: updatedUrl } );\n\t\t\t}\n\t\t}\n\n\t\tconst { id } = attributes;\n\t\tconst { id: previousId } = previousProps.attributes;\n\n\t\t// The media changed and the previous media was set as the Featured Image,\n\t\t// we must keep track of the previous media's featured status to act on it\n\t\t// once the new media has a finalized ID.\n\t\tif (\n\t\t\t!! id &&\n\t\t\tid !== previousId &&\n\t\t\t!! featuredImageId &&\n\t\t\tfeaturedImageId === previousId\n\t\t) {\n\t\t\tthis.replacedFeaturedImage = true;\n\t\t}\n\n\t\t// The media changed and now has a finalized ID (e.g. upload completed), we\n\t\t// should attempt to replace the featured image if applicable.\n\t\tif (\n\t\t\tthis.replacedFeaturedImage &&\n\t\t\t!! image &&\n\t\t\tthis.canImageBeFeatured()\n\t\t) {\n\t\t\tthis.replacedFeaturedImage = false;\n\t\t\tsetFeaturedImage( id );\n\t\t}\n\n\t\tconst { align } = attributes;\n\t\tconst { __unstableMarkNextChangeAsNotPersistent } = this.props;\n\n\t\t// Update the attributes if the align is wide or full\n\t\tif ( [ 'wide', 'full' ].includes( align ) ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\taspectRatio: undefined,\n\t\t\t\tscale: undefined,\n\t\t\t} );\n\t\t}\n\t}\n\n\tstatic getDerivedStateFromProps( props, state ) {\n\t\t// Avoid a UI flicker in the toolbar by insuring that isCaptionSelected\n\t\t// is updated immediately any time the isSelected prop becomes false.\n\t\treturn {\n\t\t\tisCaptionSelected: props.isSelected && state.isCaptionSelected,\n\t\t};\n\t}\n\n\taccessibilityLabelCreator( caption ) {\n\t\t// Checks if caption is empty.\n\t\treturn RichText.isEmpty( caption )\n\t\t\t? /* translators: accessibility text. Empty image caption. */\n\t\t\t 'Image caption. Empty'\n\t\t\t: sprintf(\n\t\t\t\t\t/* translators: accessibility text. %s: image caption. */\n\t\t\t\t\t__( 'Image caption. %s' ),\n\t\t\t\t\tcaption\n\t\t\t );\n\t}\n\n\tonImagePressed() {\n\t\tconst { attributes, image } = this.props;\n\n\t\tif ( this.state.uploadStatus === UPLOAD_STATE_UPLOADING ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t} else if ( ! this.state.isCaptionSelected ) {\n\t\t\trequestImageFullscreenPreview(\n\t\t\t\tattributes.url,\n\t\t\t\timage && image.source_url\n\t\t\t);\n\t\t}\n\n\t\tthis.setState( {\n\t\t\tisCaptionSelected: false,\n\t\t} );\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\n\t\tif ( this.state.uploadStatus !== UPLOAD_STATE_UPLOADING ) {\n\t\t\tthis.setState( { uploadStatus: UPLOAD_STATE_UPLOADING } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( { url: payload.mediaUrl, id: payload.mediaServerId } );\n\t\tthis.setState( { uploadStatus: UPLOAD_STATE_SUCCEEDED } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { uploadStatus: UPLOAD_STATE_FAILED } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( { id: null, url: null } );\n\t\tthis.setState( { uploadStatus: UPLOAD_STATE_IDLE } );\n\t}\n\n\tupdateImageURL( url ) {\n\t\tthis.props.setAttributes( {\n\t\t\turl,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t} );\n\t}\n\n\tonSetNewTab( value ) {\n\t\tconst updatedLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\tvalue,\n\t\t\tthis.props.attributes\n\t\t);\n\t\tthis.props.setAttributes( updatedLinkTarget );\n\t}\n\n\tonSetSizeSlug( sizeSlug ) {\n\t\tconst { image, setAttributes } = this.props;\n\n\t\tconst url = getUrlForSlug( image, sizeSlug );\n\t\tif ( ! url ) {\n\t\t\treturn null;\n\t\t}\n\t\tsetAttributes( {\n\t\t\turl,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tsizeSlug,\n\t\t} );\n\t}\n\n\tonSelectMediaUploadOption( media ) {\n\t\tconst { imageDefaultSize } = this.props;\n\t\tconst { id, url, destination } = this.props.attributes;\n\t\tconst mediaAttributes = {\n\t\t\tid: media.id,\n\t\t\turl: media.url,\n\t\t\tcaption: media.caption,\n\t\t\talt: media.alt,\n\t\t};\n\n\t\tlet additionalAttributes;\n\t\t// Reset the dimension attributes if changing to a different image.\n\t\tif ( ! media.id || media.id !== id ) {\n\t\t\tadditionalAttributes = {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep the same url when selecting the same file, so \"Image Size\" option is not changed.\n\t\t\tadditionalAttributes = { url };\n\t\t}\n\n\t\tlet href;\n\t\tswitch ( destination ) {\n\t\t\tcase LINK_DESTINATION_MEDIA:\n\t\t\t\thref = media.url;\n\t\t\t\tbreak;\n\t\t\tcase LINK_DESTINATION_ATTACHMENT:\n\t\t\t\thref = media.link;\n\t\t\t\tbreak;\n\t\t}\n\t\tmediaAttributes.href = href;\n\n\t\tthis.props.setAttributes( {\n\t\t\t...mediaAttributes,\n\t\t\t...additionalAttributes,\n\t\t} );\n\t}\n\n\tonSelectURL( newURL ) {\n\t\tconst { createErrorNotice, imageDefaultSize, setAttributes } =\n\t\t\tthis.props;\n\n\t\tif ( isURL( newURL ) ) {\n\t\t\tthis.setState( {\n\t\t\t\tisFetchingImage: true,\n\t\t\t} );\n\n\t\t\t// Use RN's Image.getSize to determine if URL is a valid image\n\t\t\tRNImage.getSize(\n\t\t\t\tnewURL,\n\t\t\t\t() => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\turl: newURL,\n\t\t\t\t\t\tid: undefined,\n\t\t\t\t\t\twidth: undefined,\n\t\t\t\t\t\theight: undefined,\n\t\t\t\t\t\tsizeSlug: imageDefaultSize,\n\t\t\t\t\t} );\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tisFetchingImage: false,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t\t() => {\n\t\t\t\t\tcreateErrorNotice( __( 'Image file not found.' ) );\n\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\tisFetchingImage: false,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tcreateErrorNotice( __( 'Invalid URL.' ) );\n\t\t}\n\t}\n\n\tonFocusCaption() {\n\t\tif ( this.props.onFocus ) {\n\t\t\tthis.props.onFocus();\n\t\t}\n\t\tif ( ! this.state.isCaptionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tisCaptionSelected: true,\n\t\t\t} );\n\t\t}\n\t}\n\n\tgetPlaceholderIcon() {\n\t\treturn (\n\t\t\t<Icon\n\t\t\t\ticon={ placeholderIcon }\n\t\t\t\t{ ...this.props.getStylesFromColorScheme(\n\t\t\t\t\tstyles.iconPlaceholder,\n\t\t\t\t\tstyles.iconPlaceholderDark\n\t\t\t\t) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tshowLoadingIndicator() {\n\t\treturn (\n\t\t\t<View style={ styles.image__loading }>\n\t\t\t\t<ActivityIndicator animating />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tgetWidth() {\n\t\tconst { attributes } = this.props;\n\t\tconst { align, width } = attributes;\n\n\t\treturn Object.values( WIDE_ALIGNMENTS.alignments ).includes( align )\n\t\t\t? '100%'\n\t\t\t: width;\n\t}\n\n\tsetMappedAttributes( { url: href, linkDestination, ...restAttributes } ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( ! href && ! linkDestination ) {\n\t\t\tlinkDestination = LINK_DESTINATION_NONE;\n\t\t} else if ( ! linkDestination ) {\n\t\t\tlinkDestination = LINK_DESTINATION_CUSTOM;\n\t\t}\n\n\t\treturn href === undefined || href === this.props.attributes.href\n\t\t\t? setAttributes( restAttributes )\n\t\t\t: setAttributes( {\n\t\t\t\t\t...restAttributes,\n\t\t\t\t\tlinkDestination,\n\t\t\t\t\thref,\n\t\t\t } );\n\t}\n\n\tgetAltTextSettings() {\n\t\tconst {\n\t\t\tattributes: { alt },\n\t\t} = this.props;\n\n\t\tconst updateAlt = ( newAlt ) => {\n\t\t\tthis.props.setAttributes( { alt: newAlt } );\n\t\t};\n\n\t\treturn (\n\t\t\t<BottomSheetTextControl\n\t\t\t\tinitialValue={ alt }\n\t\t\t\tonChange={ updateAlt }\n\t\t\t\tplaceholder={ __( 'Add alt text' ) }\n\t\t\t\tlabel={ __( 'Alt Text' ) }\n\t\t\t\ticon={ textColor }\n\t\t\t\tfooterNote={\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t'Describe the purpose of the image. Leave empty if decorative.'\n\t\t\t\t\t\t) }{ ' ' }\n\t\t\t\t\t\t<FooterMessageLink\n\t\t\t\t\t\t\thref={\n\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__(\n\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)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ __( 'What is alt text?' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t}\n\n\tonSizeChangeValue( newValue ) {\n\t\tthis.onSetSizeSlug( newValue );\n\t}\n\n\tonSetFeatured( mediaId ) {\n\t\tconst { closeSettingsBottomSheet } = this.props;\n\t\tsetFeaturedImage( mediaId );\n\t\tcloseSettingsBottomSheet();\n\t}\n\n\tgetFeaturedButtonPanel( isFeaturedImage ) {\n\t\tconst { attributes, getStylesFromColorScheme } = this.props;\n\n\t\tconst setFeaturedButtonStyle = getStylesFromColorScheme(\n\t\t\tstyles.setFeaturedButton,\n\t\t\tstyles.setFeaturedButtonDark\n\t\t);\n\n\t\tconst removeFeaturedButton = () => (\n\t\t\t<BottomSheet.Cell\n\t\t\t\tlabel={ __( 'Remove as Featured Image' ) }\n\t\t\t\tlabelStyle={ [\n\t\t\t\t\tsetFeaturedButtonStyle,\n\t\t\t\t\tstyles.removeFeaturedButton,\n\t\t\t\t] }\n\t\t\t\tcellContainerStyle={ styles.setFeaturedButtonCellContainer }\n\t\t\t\tseparatorType=\"none\"\n\t\t\t\tonPress={ () =>\n\t\t\t\t\tthis.onSetFeatured( MEDIA_ID_NO_FEATURED_IMAGE_SET )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\n\t\tconst setFeaturedButton = () => (\n\t\t\t<BottomSheet.Cell\n\t\t\t\tlabel={ __( 'Set as Featured Image' ) }\n\t\t\t\tlabelStyle={ setFeaturedButtonStyle }\n\t\t\t\tcellContainerStyle={ styles.setFeaturedButtonCellContainer }\n\t\t\t\tseparatorType=\"none\"\n\t\t\t\tonPress={ () => this.onSetFeatured( attributes.id ) }\n\t\t\t/>\n\t\t);\n\n\t\treturn isFeaturedImage ? removeFeaturedButton() : setFeaturedButton();\n\t}\n\n\t/**\n\t * Featured images must be set to a successfully uploaded self-hosted image,\n\t * which has an ID.\n\t *\n\t * @return {boolean} Boolean indicating whether or not the current may be set as featured.\n\t */\n\tcanImageBeFeatured() {\n\t\tconst {\n\t\t\tattributes: { id },\n\t\t} = this.props;\n\t\treturn (\n\t\t\ttypeof id !== 'undefined' &&\n\t\t\tthis.state.uploadStatus !== UPLOAD_STATE_UPLOADING &&\n\t\t\tthis.state.uploadStatus !== UPLOAD_STATE_FAILED\n\t\t);\n\t}\n\n\tisGif( url ) {\n\t\treturn url.toLowerCase().includes( '.gif' );\n\t}\n\n\trender() {\n\t\tconst { isCaptionSelected, isFetchingImage } = this.state;\n\t\tconst {\n\t\t\tattributes,\n\t\t\tisSelected,\n\t\t\timage,\n\t\t\tclientId,\n\t\t\timageDefaultSize,\n\t\t\tcontext,\n\t\t\tfeaturedImageId,\n\t\t\twasBlockJustInserted,\n\t\t\tshouldUseFastImage,\n\t\t} = this.props;\n\t\tconst { align, url, alt, id, sizeSlug, className } = attributes;\n\t\tconst hasImageContext = context\n\t\t\t? Object.keys( context ).length > 0\n\t\t\t: false;\n\n\t\tconst imageSizes = Array.isArray( this.props.imageSizes )\n\t\t\t? this.props.imageSizes\n\t\t\t: [];\n\t\t// Only map available image sizes for the user to choose.\n\t\tconst sizeOptions = imageSizes\n\t\t\t.filter( ( { slug } ) => getUrlForSlug( image, slug ) )\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t\tlet selectedSizeOption = sizeSlug || imageDefaultSize;\n\t\tlet sizeOptionsValid = sizeOptions.find(\n\t\t\t( option ) => option.value === selectedSizeOption\n\t\t);\n\n\t\tif ( ! sizeOptionsValid ) {\n\t\t\t// Default to 'full' size if the default large size is not available.\n\t\t\tsizeOptionsValid = sizeOptions.find(\n\t\t\t\t( option ) => option.value === 'full'\n\t\t\t);\n\t\t\tselectedSizeOption = 'full';\n\t\t}\n\n\t\tconst canImageBeFeatured = this.canImageBeFeatured();\n\t\tconst isFeaturedImage =\n\t\t\tcanImageBeFeatured && featuredImageId === attributes.id;\n\n\t\tconst getToolbarEditButton = ( open ) => (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Edit image' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\n\t\tconst getInspectorControls = () => (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) } />\n\t\t\t\t<PanelBody style={ styles.panelBody }>\n\t\t\t\t\t<BlockStyles clientId={ clientId } url={ url } />\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t{ image && sizeOptionsValid && (\n\t\t\t\t\t\t<BottomSheetSelectControl\n\t\t\t\t\t\t\ticon={ fullscreen }\n\t\t\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\t\t\toptions={ sizeOptions }\n\t\t\t\t\t\t\tonChange={ this.onSizeChangeValue }\n\t\t\t\t\t\t\tvalue={ selectedSizeOption }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ this.getAltTextSettings() }\n\t\t\t\t</PanelBody>\n\t\t\t\t<LinkSettings\n\t\t\t\t\tattributes={ this.props.attributes }\n\t\t\t\t\timage={ this.props.image }\n\t\t\t\t\tisLinkSheetVisible={ this.state.isLinkSheetVisible }\n\t\t\t\t\tsetMappedAttributes={ this.setMappedAttributes }\n\t\t\t\t/>\n\t\t\t\t<PanelBody\n\t\t\t\t\ttitle={ __( 'Featured Image' ) }\n\t\t\t\t\ttitleStyle={ styles.featuredImagePanelTitle }\n\t\t\t\t>\n\t\t\t\t\t{ canImageBeFeatured &&\n\t\t\t\t\t\tthis.getFeaturedButtonPanel( isFeaturedImage ) }\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t'Changes to featured image will not be affected by the undo/redo buttons.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tcellContainerStyle={\n\t\t\t\t\t\t\tstyles.setFeaturedButtonCellContainer\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\n\t\tif ( ! url ) {\n\t\t\treturn (\n\t\t\t\t<View style={ styles.content }>\n\t\t\t\t\t{ isFetchingImage && this.showLoadingIndicator() }\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_IMAGE ] }\n\t\t\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\t\ticon={ this.getPlaceholderIcon() }\n\t\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\t\tautoOpenMediaUpload={\n\t\t\t\t\t\t\tisSelected && wasBlockJustInserted\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\n\t\tconst alignToFlex = {\n\t\t\tleft: 'flex-start',\n\t\t\tcenter: 'center',\n\t\t\tright: 'flex-end',\n\t\t\tfull: 'center',\n\t\t\twide: 'center',\n\t\t};\n\n\t\tconst additionalImageProps = {\n\t\t\theight: '100%',\n\t\t\tresizeMode: context?.imageCrop ? 'cover' : 'contain',\n\t\t};\n\n\t\tconst imageContainerStyles = [\n\t\t\tcontext?.fixedHeight && styles.fixedHeight,\n\t\t];\n\n\t\tconst isGif = this.isGif( url );\n\t\tconst badgeLabelShown = isFeaturedImage || isGif;\n\t\tlet badgeLabelText = '';\n\t\tif ( isFeaturedImage ) {\n\t\t\tbadgeLabelText = __( 'Featured' );\n\t\t} else if ( isGif ) {\n\t\t\tbadgeLabelText = __( 'GIF' );\n\t\t}\n\n\t\tconst getImageComponent = ( openMediaOptions, getMediaOptions ) => (\n\t\t\t<Badge label={ badgeLabelText } show={ badgeLabelShown }>\n\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\taccessible={ ! isSelected }\n\t\t\t\t\tonPress={ this.onImagePressed }\n\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles.content }>\n\t\t\t\t\t\t{ isSelected && getInspectorControls() }\n\t\t\t\t\t\t{ isSelected && getMediaOptions() }\n\t\t\t\t\t\t{ ! this.state.isCaptionSelected &&\n\t\t\t\t\t\t\tgetToolbarEditButton( openMediaOptions ) }\n\t\t\t\t\t\t<MediaUploadProgress\n\t\t\t\t\t\t\tenablePausedUploads\n\t\t\t\t\t\t\tcoverUrl={ url }\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonMediaUploadStateReset={\n\t\t\t\t\t\t\t\tthis.mediaUploadStateReset\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\trenderContent={ ( {\n\t\t\t\t\t\t\t\tisUploadPaused,\n\t\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\t\tisUploadFailed,\n\t\t\t\t\t\t\t\tretryMessage,\n\t\t\t\t\t\t\t} ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<View style={ imageContainerStyles }>\n\t\t\t\t\t\t\t\t\t\t{ isFetchingImage &&\n\t\t\t\t\t\t\t\t\t\t\tthis.showLoadingIndicator() }\n\t\t\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\t\t\talign={\n\t\t\t\t\t\t\t\t\t\t\t\talign && alignToFlex[ align ]\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\t\t\t\t\t\tisSelected={\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected &&\n\t\t\t\t\t\t\t\t\t\t\t\t! isCaptionSelected\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tisUploadFailed={ isUploadFailed }\n\t\t\t\t\t\t\t\t\t\t\tisUploadPaused={ isUploadPaused }\n\t\t\t\t\t\t\t\t\t\t\tisUploadInProgress={\n\t\t\t\t\t\t\t\t\t\t\t\tisUploadInProgress\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tshouldUseFastImage={\n\t\t\t\t\t\t\t\t\t\t\t\tshouldUseFastImage\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tonSelectMediaUploadOption={\n\t\t\t\t\t\t\t\t\t\t\t\tthis.onSelectMediaUploadOption\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\topenMediaOptions={\n\t\t\t\t\t\t\t\t\t\t\t\topenMediaOptions\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tretryMessage={ retryMessage }\n\t\t\t\t\t\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\t\t\t\t\t\tshapeStyle={\n\t\t\t\t\t\t\t\t\t\t\t\tstyles[ className ] || className\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\twidth={ this.getWidth() }\n\t\t\t\t\t\t\t\t\t\t\t{ ...( hasImageContext\n\t\t\t\t\t\t\t\t\t\t\t\t? additionalImageProps\n\t\t\t\t\t\t\t\t\t\t\t\t: {} ) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t<BlockCaption\n\t\t\t\t\tclientId={ this.props.clientId }\n\t\t\t\t\tisSelected={ this.state.isCaptionSelected }\n\t\t\t\t\taccessible={ ! this.state.isCaptionSelected }\n\t\t\t\t\taccessibilityLabelCreator={ this.accessibilityLabelCreator }\n\t\t\t\t\tonFocus={ this.onFocusCaption }\n\t\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as props.\n\t\t\t\t\tinsertBlocksAfter={ this.props.insertBlocksAfter }\n\t\t\t\t/>\n\t\t\t</Badge>\n\t\t);\n\n\t\treturn (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_IMAGE ] }\n\t\t\t\tisReplacingMedia\n\t\t\t\tonSelect={ this.onSelectMediaUploadOption }\n\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn getImageComponent( open, getMediaOptions );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { getEntityRecord } = select( coreStore );\n\t\tconst { getSettings, wasBlockJustInserted } =\n\t\t\tselect( blockEditorStore );\n\t\tconst { getEditedPostAttribute } = select( 'core/editor' );\n\t\tconst {\n\t\t\tattributes: { id, url },\n\t\t\tisSelected,\n\t\t\tclientId,\n\t\t} = props;\n\t\tconst { imageSizes, imageDefaultSize, capabilities } = getSettings();\n\t\tconst isNotFileUrl = id && getProtocol( url ) !== 'file:';\n\t\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\t\tconst shouldGetMedia =\n\t\t\t( isSelected && isNotFileUrl ) ||\n\t\t\t// Edge case to update the image after uploading if the block gets unselected\n\t\t\t// Check if it's the original image and not the resized one with queryparams.\n\t\t\t( ! isSelected &&\n\t\t\t\tisNotFileUrl &&\n\t\t\t\turl &&\n\t\t\t\t! hasQueryArg( url, 'w' ) );\n\t\tconst image = shouldGetMedia\n\t\t\t? getEntityRecord( 'postType', 'attachment', id )\n\t\t\t: null;\n\n\t\treturn {\n\t\t\timage,\n\t\t\timageSizes,\n\t\t\timageDefaultSize,\n\t\t\tshouldUseFastImage: capabilities?.shouldUseFastImage === true,\n\t\t\tfeaturedImageId,\n\t\t\twasBlockJustInserted: wasBlockJustInserted(\n\t\t\t\tclientId,\n\t\t\t\t'inserter_menu'\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createErrorNotice } = dispatch( noticesStore );\n\t\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\t\tcreateErrorNotice,\n\t\t\tcloseSettingsBottomSheet() {\n\t\t\t\tdispatch( editPostStore ).closeGeneralSidebar();\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( ImageEdit );\n"],"mappings":"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","ignoreList":[]}
@@ -526,7 +526,7 @@ export default function Image({
526
526
  lockAltControlsMessage,
527
527
  lockTitleControls = false,
528
528
  lockTitleControlsMessage,
529
- lockCaption = false
529
+ hideCaptionControls = false
530
530
  } = useSelect(select => {
531
531
  if (!isSingleSelected) {
532
532
  return {};
@@ -534,7 +534,8 @@ export default function Image({
534
534
  const {
535
535
  url: urlBinding,
536
536
  alt: altBinding,
537
- title: titleBinding
537
+ title: titleBinding,
538
+ caption: captionBinding
538
539
  } = metadata?.bindings || {};
539
540
  const hasParentPattern = !!context['pattern/overrides'];
540
541
  const urlBindingSource = getBlockBindingsSource(urlBinding?.source);
@@ -550,10 +551,7 @@ export default function Image({
550
551
  // Disable editing the link of the URL if the image is inside a pattern instance.
551
552
  // This is a temporary solution until we support overriding the link on the frontend.
552
553
  hasParentPattern || arePatternOverridesEnabled,
553
- lockCaption:
554
- // Disable editing the caption if the image is inside a pattern instance.
555
- // This is a temporary solution until we support overriding the caption on the frontend.
556
- hasParentPattern,
554
+ hideCaptionControls: !!captionBinding,
557
555
  lockAltControls: !!altBinding && !altBindingSource?.canUserEditValue?.({
558
556
  select,
559
557
  context,
@@ -914,8 +912,7 @@ export default function Image({
914
912
  isSelected: isSingleSelected,
915
913
  insertBlocksAfter: insertBlocksAfter,
916
914
  label: __('Image caption text'),
917
- showToolbarButton: isSingleSelected && hasNonContentControls && !arePatternOverridesEnabled,
918
- readOnly: lockCaption
915
+ showToolbarButton: isSingleSelected && (hasNonContentControls || isContentOnlyMode) && !hideCaptionControls
919
916
  })]
920
917
  });
921
918
  }