@wordpress/block-editor 14.20.0 → 14.21.1-next.719a03cbe.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/build/components/background-image-control/index.js +0 -4
  3. package/build/components/background-image-control/index.js.map +1 -1
  4. package/build/components/block-list/block-invalid-warning.native.js +1 -1
  5. package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
  6. package/build/components/block-lock/modal.js +1 -0
  7. package/build/components/block-lock/modal.js.map +1 -1
  8. package/build/components/image-size-control/index.js +1 -1
  9. package/build/components/image-size-control/index.js.map +1 -1
  10. package/build/components/inserter/media-tab/media-preview.js +1 -1
  11. package/build/components/inserter/media-tab/media-preview.js.map +1 -1
  12. package/build/components/url-input/button.js +50 -62
  13. package/build/components/url-input/button.js.map +1 -1
  14. package/build/components/use-paste-styles/index.js +2 -2
  15. package/build/components/use-paste-styles/index.js.map +1 -1
  16. package/build/components/warning/index.js +1 -1
  17. package/build/components/warning/index.js.map +1 -1
  18. package/build/utils/use-notify-copy.js +2 -2
  19. package/build/utils/use-notify-copy.js.map +1 -1
  20. package/build-module/components/background-image-control/index.js +0 -4
  21. package/build-module/components/background-image-control/index.js.map +1 -1
  22. package/build-module/components/block-list/block-invalid-warning.native.js +1 -1
  23. package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
  24. package/build-module/components/block-lock/modal.js +1 -0
  25. package/build-module/components/block-lock/modal.js.map +1 -1
  26. package/build-module/components/image-size-control/index.js +1 -1
  27. package/build-module/components/image-size-control/index.js.map +1 -1
  28. package/build-module/components/inserter/media-tab/media-preview.js +1 -1
  29. package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
  30. package/build-module/components/url-input/button.js +53 -63
  31. package/build-module/components/url-input/button.js.map +1 -1
  32. package/build-module/components/use-paste-styles/index.js +2 -2
  33. package/build-module/components/use-paste-styles/index.js.map +1 -1
  34. package/build-module/components/warning/index.js +1 -1
  35. package/build-module/components/warning/index.js.map +1 -1
  36. package/build-module/utils/use-notify-copy.js +2 -2
  37. package/build-module/utils/use-notify-copy.js.map +1 -1
  38. package/build-style/style-rtl.css +3 -12
  39. package/build-style/style.css +3 -12
  40. package/package.json +34 -34
  41. package/src/components/background-image-control/index.js +1 -8
  42. package/src/components/background-image-control/style.scss +3 -7
  43. package/src/components/block-list/block-invalid-warning.native.js +1 -1
  44. package/src/components/block-lock/modal.js +1 -0
  45. package/src/components/block-lock/style.scss +0 -6
  46. package/src/components/image-size-control/index.js +1 -1
  47. package/src/components/inserter/media-tab/media-preview.js +1 -1
  48. package/src/components/url-input/button.js +59 -65
  49. package/src/components/use-paste-styles/index.js +2 -2
  50. package/src/components/warning/index.js +1 -1
  51. package/src/utils/use-notify-copy.js +2 -2
  52. package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 14.21.0 (2025-06-25)
6
+
5
7
  ## 14.20.0 (2025-06-04)
6
8
 
7
9
  ## 14.19.0 (2025-05-22)
@@ -104,7 +104,6 @@ function InspectorImagePreviewItem({
104
104
  toggleProps = {},
105
105
  filename,
106
106
  label,
107
- className,
108
107
  onToggleCallback = noop
109
108
  }) {
110
109
  const {
@@ -149,9 +148,7 @@ function InspectorImagePreviewItem({
149
148
  };
150
149
  return as === 'button' ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.Button, {
151
150
  __next40pxDefaultSize: true,
152
- className: className,
153
151
  ...restToggleProps,
154
- "aria-expanded": isOpen,
155
152
  children: renderPreviewContent()
156
153
  }) : renderPreviewContent();
157
154
  }
@@ -319,7 +316,6 @@ function BackgroundImageControls({
319
316
  })
320
317
  },
321
318
  name: /*#__PURE__*/(0, _jsxRuntime.jsx)(InspectorImagePreviewItem, {
322
- className: "block-editor-global-styles-background-panel__image-preview",
323
319
  imgUrl: url,
324
320
  filename: title,
325
321
  label: imgLabel
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_notices","_url","_element","_data","_dom","_blob","_utils","_backgroundPanel","_object","_mediaReplaceFlow","_store","_privateKeys","_jsxRuntime","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","__","coordsToBackgroundPosition","isNaN","x","y","exports","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","isOpen","restToggleProps","useEffect","renderPreviewContent","jsxs","__experimentalHStack","justify","children","jsx","style","backgroundImage","FlexItem","flexGrow","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","Button","__next40pxDefaultSize","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","getFilename","Dropdown","popoverProps","renderToggle","onClick","renderContent","__experimentalDropdownContentWrapper","paddingSize","LoadingSpinner","Placeholder","Spinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","containerRef","isUploading","setIsUploading","useState","getSettings","useSelect","blockEditorStore","id","title","background","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","resetBackgroundImage","setImmutably","onSelectMedia","media","isBlobURL","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","closeAndFocus","onFilesDrop","filesList","mediaUpload","allowedTypes","onFileChange","image","onError","multiple","hasValue","hasBackgroundImageValue","window","requestAnimationFrame","toggleButton","focus","tabbable","find","current","onRemove","canRemove","default","mediaId","mediaURL","accept","onSelect","clsx","name","props","onReset","MenuItem","DropZone","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","__experimentalVStack","spacing","FocalPointPicker","__nextHasNoMarginBottom","ToggleControl","checked","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","globalStylesDataKey","globalStylesLinksDataKey","resolvedInheritedValue","useMemo","resolvedValues","Object","entries","forEach","key","backgroundValue","getResolvedValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen","useRef","ref"],"sources":["@wordpress/block-editor/src/components/background-image-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tDropdown,\n\tPlaceholder,\n\tSpinner,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useRef, useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { getResolvedValue } from '../global-styles/utils';\nimport { hasBackgroundImageValue } from '../global-styles/background-panel';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\nconst BACKGROUND_POPOVER_PROPS = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-global-styles-background-panel__popover',\n};\nconst noop = () => {};\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreviewItem( {\n\tas = 'span',\n\timgUrl,\n\ttoggleProps = {},\n\tfilename,\n\tlabel,\n\tclassName,\n\tonToggleCallback = noop,\n} ) {\n\tconst { isOpen, ...restToggleProps } = toggleProps;\n\n\tuseEffect( () => {\n\t\tif ( typeof isOpen !== 'undefined' ) {\n\t\t\tonToggleCallback( isOpen );\n\t\t}\n\t}, [ isOpen, onToggleCallback ] );\n\n\tconst renderPreviewContent = () => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-preview-inner\"\n\t\t\t>\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator-wrapper\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\" style={ imgUrl ? {} : { flexGrow: 1 } }>\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || label\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t);\n\t};\n\n\treturn as === 'button' ? (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tclassName={ className }\n\t\t\t{ ...restToggleProps }\n\t\t\taria-expanded={ isOpen }\n\t\t>\n\t\t\t{ renderPreviewContent() }\n\t\t</Button>\n\t) : (\n\t\trenderPreviewContent()\n\t);\n}\n\nfunction BackgroundControlsPanel( {\n\tlabel,\n\tfilename,\n\turl: imgUrl,\n\tchildren,\n\tonToggle: onToggleCallback = noop,\n\thasImageValue,\n} ) {\n\tif ( ! hasImageValue ) {\n\t\treturn;\n\t}\n\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ BACKGROUND_POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName:\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__dropdown-toggle',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-label': __(\n\t\t\t\t\t\t'Background size, position and repeat options.'\n\t\t\t\t\t),\n\t\t\t\t\tisOpen,\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ imgUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\tas=\"button\"\n\t\t\t\t\t\tonToggleCallback={ onToggleCallback }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__dropdown-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction LoadingSpinner() {\n\treturn (\n\t\t<Placeholder className=\"block-editor-global-styles-background-panel__loading\">\n\t\t\t<Spinner />\n\t\t</Placeholder>\n\t);\n}\n\nfunction BackgroundImageControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tonRemoveImage = noop,\n\tonResetImage = noop,\n\tdisplayInPanel,\n\tdefaultValues,\n\tcontainerRef,\n} ) {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetIsUploading( false );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetIsUploading( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue =\n\t\t\tstyle?.background?.backgroundSize || defaultValues?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t/*\n\t\t\t\t\t * A background image uploaded and set in the editor receives a default background position of '50% 0',\n\t\t\t\t\t * when the background image size is the equivalent of \"Tile\".\n\t\t\t\t\t * This is to increase the chance that the image's focus point is visible.\n\t\t\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t\t\t */\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t\tbackgroundSize: sizeValue,\n\t\t\t} )\n\t\t);\n\t\tsetIsUploading( false );\n\t\t// Close the dropdown and focus the toggle button.\n\t\tcloseAndFocus();\n\t};\n\n\t// Drag and drop callback, restricting image to one.\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\t// Use requestAnimationFrame to ensure DOM updates are complete\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\tcontainerRef?.current\n\t\t\t);\n\t\t\tif ( ! toggleButton ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\ttoggleButton.focus();\n\t\t} );\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\tbackgroundImage: 'none',\n\t\t\t} )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\tconst imgLabel =\n\t\ttitle || getFilename( url ) || __( 'Add background image' );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-background-panel__image-tools-panel-item\">\n\t\t\t{ isUploading && <LoadingSpinner /> }\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ id }\n\t\t\t\tmediaURL={ url }\n\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__media-replace-popover':\n\t\t\t\t\t\t\tdisplayInPanel,\n\t\t\t\t\t} ),\n\t\t\t\t} }\n\t\t\t\tname={\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__image-preview\"\n\t\t\t\t\t\timgUrl={ url }\n\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize />\n\t\t\t\t) }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tonReset={ () => {\n\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\tonResetImage();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ canRemove && (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) }\n\t\t\t</MediaReplaceFlow>\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BackgroundSizeControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst isUploadedImage = style?.background?.backgroundImage?.id;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\tconst attachmentValue =\n\t\tstyle?.background?.backgroundAttachment ||\n\t\tinheritedValue?.background?.backgroundAttachment;\n\n\t/*\n\t * Set default values for uploaded images.\n\t * The default values are passed by the consumer.\n\t * Block-level controls may have different defaults to root-level controls.\n\t * A falsy value is treated by default as `auto` (Tile).\n\t */\n\tlet currentValueForToggle =\n\t\t! sizeValue && isUploadedImage\n\t\t\t? defaultValues?.backgroundSize\n\t\t\t: sizeValue || 'auto';\n\t/*\n\t * The incoming value could be a value + unit, e.g. '20px'.\n\t * In this case set the value to 'tile'.\n\t */\n\tcurrentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(\n\t\tcurrentValueForToggle\n\t)\n\t\t? 'auto'\n\t\t: currentValueForToggle;\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst toggleScrollWithPage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundAttachment' ],\n\t\t\t\tattachmentValue === 'fixed' ? 'scroll' : 'fixed'\n\t\t\t)\n\t\t);\n\n\t// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.\n\tconst backgroundPositionValue =\n\t\t! positionValue && isUploadedImage && 'contain' === sizeValue\n\t\t\t? defaultValues?.backgroundPosition\n\t\t\t: positionValue;\n\n\treturn (\n\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t<FocalPointPicker\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( backgroundPositionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\tchecked={ attachmentValue === 'fixed' }\n\t\t\t\tonChange={ toggleScrollWithPage }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t<UnitControl\n\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tcurrentValueForToggle !== 'auto' ||\n\t\t\t\t\t\tcurrentValueForToggle === undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\tdisabled={ currentValueForToggle === 'cover' }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundImagePanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tdefaultValues = {},\n} ) {\n\t/*\n\t * Resolve any inherited \"ref\" pointers.\n\t * Should the block editor need resolved, inherited values\n\t * across all controls, this could be abstracted into a hook,\n\t * e.g., useResolveGlobalStyle\n\t */\n\tconst { globalStyles, _links } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tglobalStyles: _settings[ globalStylesDataKey ],\n\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t};\n\t}, [] );\n\tconst resolvedInheritedValue = useMemo( () => {\n\t\tconst resolvedValues = {\n\t\t\tbackground: {},\n\t\t};\n\n\t\tif ( ! inheritedValue?.background ) {\n\t\t\treturn inheritedValue;\n\t\t}\n\n\t\tObject.entries( inheritedValue?.background ).forEach(\n\t\t\t( [ key, backgroundValue ] ) => {\n\t\t\t\tresolvedValues.background[ key ] = getResolvedValue(\n\t\t\t\t\tbackgroundValue,\n\t\t\t\t\t{\n\t\t\t\t\t\tstyles: globalStyles,\n\t\t\t\t\t\t_links,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\treturn resolvedValues;\n\t}, [ globalStyles, _links, inheritedValue ] );\n\n\tconst resetBackground = () =>\n\t\tonChange( setImmutably( value, [ 'background' ], {} ) );\n\n\tconst { title, url } = value?.background?.backgroundImage || {\n\t\t...resolvedInheritedValue?.background?.backgroundImage,\n\t};\n\tconst hasImageValue =\n\t\thasBackgroundImageValue( value ) ||\n\t\thasBackgroundImageValue( resolvedInheritedValue );\n\n\tconst imageValue =\n\t\tvalue?.background?.backgroundImage ||\n\t\tinheritedValue?.background?.backgroundImage;\n\n\tconst shouldShowBackgroundImageControls =\n\t\thasImageValue &&\n\t\t'none' !== imageValue &&\n\t\t( settings?.background?.backgroundSize ||\n\t\t\tsettings?.background?.backgroundPosition ||\n\t\t\tsettings?.background?.backgroundRepeat );\n\n\tconst [ isDropDownOpen, setIsDropDownOpen ] = useState( false );\n\tconst containerRef = useRef();\n\n\treturn (\n\t\t<div\n\t\t\tref={ containerRef }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles-background-panel__inspector-media-replace-container',\n\t\t\t\t{\n\t\t\t\t\t'is-open': isDropDownOpen,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ shouldShowBackgroundImageControls ? (\n\t\t\t\t<BackgroundControlsPanel\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tfilename={ title }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tonToggle={ setIsDropDownOpen }\n\t\t\t\t\thasImageValue={ hasImageValue }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t\t\t\t<BackgroundImageControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t\tdisplayInPanel\n\t\t\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BackgroundSizeControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</BackgroundControlsPanel>\n\t\t\t) : (\n\t\t\t\t<BackgroundImageControls\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t} }\n\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_notices","_url","_element","_data","_dom","_blob","_utils","_backgroundPanel","_object","_mediaReplaceFlow","_store","_privateKeys","_jsxRuntime","IMAGE_BACKGROUND_TYPE","BACKGROUND_POPOVER_PROPS","placement","offset","shift","className","noop","backgroundSizeHelpText","value","undefined","__","coordsToBackgroundPosition","isNaN","x","y","exports","backgroundPositionToCoords","split","map","v","parseFloat","InspectorImagePreviewItem","as","imgUrl","toggleProps","filename","label","onToggleCallback","isOpen","restToggleProps","useEffect","renderPreviewContent","jsxs","__experimentalHStack","justify","children","jsx","style","backgroundImage","FlexItem","flexGrow","__experimentalTruncate","numberOfLines","VisuallyHidden","sprintf","Button","__next40pxDefaultSize","BackgroundControlsPanel","url","onToggle","hasImageValue","imgLabel","getFilename","Dropdown","popoverProps","renderToggle","onClick","renderContent","__experimentalDropdownContentWrapper","paddingSize","LoadingSpinner","Placeholder","Spinner","BackgroundImageControls","onChange","inheritedValue","onRemoveImage","onResetImage","displayInPanel","defaultValues","containerRef","isUploading","setIsUploading","useState","getSettings","useSelect","blockEditorStore","id","title","background","createErrorNotice","useDispatch","noticesStore","onUploadError","message","type","resetBackgroundImage","setImmutably","onSelectMedia","media","isBlobURL","media_type","sizeValue","backgroundSize","positionValue","backgroundPosition","source","closeAndFocus","onFilesDrop","filesList","mediaUpload","allowedTypes","onFileChange","image","onError","multiple","hasValue","hasBackgroundImageValue","window","requestAnimationFrame","toggleButton","focus","tabbable","find","current","onRemove","canRemove","default","mediaId","mediaURL","accept","onSelect","clsx","name","props","onReset","MenuItem","DropZone","BackgroundSizeControls","repeatValue","backgroundRepeat","imageValue","isUploadedImage","attachmentValue","backgroundAttachment","currentValueForToggle","includes","repeatCheckedValue","updateBackgroundSize","next","nextRepeat","nextPosition","updateBackgroundPosition","toggleIsRepeated","toggleScrollWithPage","backgroundPositionValue","__experimentalVStack","spacing","FocalPointPicker","__nextHasNoMarginBottom","ToggleControl","checked","__experimentalToggleGroupControl","size","isBlock","help","__experimentalToggleGroupControlOption","_x","__experimentalUnitControl","__unstableInputWidth","min","placeholder","disabled","BackgroundImagePanel","settings","globalStyles","_links","select","_settings","globalStylesDataKey","globalStylesLinksDataKey","resolvedInheritedValue","useMemo","resolvedValues","Object","entries","forEach","key","backgroundValue","getResolvedValue","styles","resetBackground","shouldShowBackgroundImageControls","isDropDownOpen","setIsDropDownOpen","useRef","ref"],"sources":["@wordpress/block-editor/src/components/background-image-control/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tToggleControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalVStack as VStack,\n\tDropZone,\n\tFlexItem,\n\tFocalPointPicker,\n\tMenuItem,\n\tVisuallyHidden,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n\tDropdown,\n\tPlaceholder,\n\tSpinner,\n\t__experimentalDropdownContentWrapper as DropdownContentWrapper,\n\tButton,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { getFilename } from '@wordpress/url';\nimport { useRef, useState, useEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { focus } from '@wordpress/dom';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { getResolvedValue } from '../global-styles/utils';\nimport { hasBackgroundImageValue } from '../global-styles/background-panel';\nimport { setImmutably } from '../../utils/object';\nimport MediaReplaceFlow from '../media-replace-flow';\nimport { store as blockEditorStore } from '../../store';\n\nimport {\n\tglobalStylesDataKey,\n\tglobalStylesLinksDataKey,\n} from '../../store/private-keys';\n\nconst IMAGE_BACKGROUND_TYPE = 'image';\n\nconst BACKGROUND_POPOVER_PROPS = {\n\tplacement: 'left-start',\n\toffset: 36,\n\tshift: true,\n\tclassName: 'block-editor-global-styles-background-panel__popover',\n};\nconst noop = () => {};\n\n/**\n * Get the help text for the background size control.\n *\n * @param {string} value backgroundSize value.\n * @return {string} Translated help text.\n */\nfunction backgroundSizeHelpText( value ) {\n\tif ( value === 'cover' || value === undefined ) {\n\t\treturn __( 'Image covers the space evenly.' );\n\t}\n\tif ( value === 'contain' ) {\n\t\treturn __( 'Image is contained without distortion.' );\n\t}\n\treturn __( 'Image has a fixed width.' );\n}\n\n/**\n * Converts decimal x and y coords from FocalPointPicker to percentage-based values\n * to use as backgroundPosition value.\n *\n * @param {{x?:number, y?:number}} value FocalPointPicker coords.\n * @return {string} \t\t\t\t backgroundPosition value.\n */\nexport const coordsToBackgroundPosition = ( value ) => {\n\tif ( ! value || ( isNaN( value.x ) && isNaN( value.y ) ) ) {\n\t\treturn undefined;\n\t}\n\n\tconst x = isNaN( value.x ) ? 0.5 : value.x;\n\tconst y = isNaN( value.y ) ? 0.5 : value.y;\n\n\treturn `${ x * 100 }% ${ y * 100 }%`;\n};\n\n/**\n * Converts backgroundPosition value to x and y coords for FocalPointPicker.\n *\n * @param {string} value backgroundPosition value.\n * @return {{x?:number, y?:number}} FocalPointPicker coords.\n */\nexport const backgroundPositionToCoords = ( value ) => {\n\tif ( ! value ) {\n\t\treturn { x: undefined, y: undefined };\n\t}\n\n\tlet [ x, y ] = value.split( ' ' ).map( ( v ) => parseFloat( v ) / 100 );\n\tx = isNaN( x ) ? undefined : x;\n\ty = isNaN( y ) ? x : y;\n\n\treturn { x, y };\n};\n\nfunction InspectorImagePreviewItem( {\n\tas = 'span',\n\timgUrl,\n\ttoggleProps = {},\n\tfilename,\n\tlabel,\n\tonToggleCallback = noop,\n} ) {\n\tconst { isOpen, ...restToggleProps } = toggleProps;\n\n\tuseEffect( () => {\n\t\tif ( typeof isOpen !== 'undefined' ) {\n\t\t\tonToggleCallback( isOpen );\n\t\t}\n\t}, [ isOpen, onToggleCallback ] );\n\n\tconst renderPreviewContent = () => {\n\t\treturn (\n\t\t\t<HStack\n\t\t\t\tjustify=\"flex-start\"\n\t\t\t\tas=\"span\"\n\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-preview-inner\"\n\t\t\t>\n\t\t\t\t{ imgUrl && (\n\t\t\t\t\t<span\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator-wrapper\"\n\t\t\t\t\t\taria-hidden\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-image-indicator\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tbackgroundImage: `url(${ imgUrl })`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<FlexItem as=\"span\" style={ imgUrl ? {} : { flexGrow: 1 } }>\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Truncate>\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ imgUrl\n\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: file name */\n\t\t\t\t\t\t\t\t\t__( 'Background image: %s' ),\n\t\t\t\t\t\t\t\t\tfilename || label\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __( 'No background image selected' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t);\n\t};\n\n\treturn as === 'button' ? (\n\t\t<Button __next40pxDefaultSize { ...restToggleProps }>\n\t\t\t{ renderPreviewContent() }\n\t\t</Button>\n\t) : (\n\t\trenderPreviewContent()\n\t);\n}\n\nfunction BackgroundControlsPanel( {\n\tlabel,\n\tfilename,\n\turl: imgUrl,\n\tchildren,\n\tonToggle: onToggleCallback = noop,\n\thasImageValue,\n} ) {\n\tif ( ! hasImageValue ) {\n\t\treturn;\n\t}\n\n\tconst imgLabel =\n\t\tlabel || getFilename( imgUrl ) || __( 'Add background image' );\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ BACKGROUND_POPOVER_PROPS }\n\t\t\trenderToggle={ ( { onToggle, isOpen } ) => {\n\t\t\t\tconst toggleProps = {\n\t\t\t\t\tonClick: onToggle,\n\t\t\t\t\tclassName:\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__dropdown-toggle',\n\t\t\t\t\t'aria-expanded': isOpen,\n\t\t\t\t\t'aria-label': __(\n\t\t\t\t\t\t'Background size, position and repeat options.'\n\t\t\t\t\t),\n\t\t\t\t\tisOpen,\n\t\t\t\t};\n\t\t\t\treturn (\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ imgUrl }\n\t\t\t\t\t\tfilename={ filename }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t\ttoggleProps={ toggleProps }\n\t\t\t\t\t\tas=\"button\"\n\t\t\t\t\t\tonToggleCallback={ onToggleCallback }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ () => (\n\t\t\t\t<DropdownContentWrapper\n\t\t\t\t\tclassName=\"block-editor-global-styles-background-panel__dropdown-content-wrapper\"\n\t\t\t\t\tpaddingSize=\"medium\"\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownContentWrapper>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nfunction LoadingSpinner() {\n\treturn (\n\t\t<Placeholder className=\"block-editor-global-styles-background-panel__loading\">\n\t\t\t<Spinner />\n\t\t</Placeholder>\n\t);\n}\n\nfunction BackgroundImageControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tonRemoveImage = noop,\n\tonResetImage = noop,\n\tdisplayInPanel,\n\tdefaultValues,\n\tcontainerRef,\n} ) {\n\tconst [ isUploading, setIsUploading ] = useState( false );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { id, title, url } = style?.background?.backgroundImage || {\n\t\t...inheritedValue?.background?.backgroundImage,\n\t};\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\tsetIsUploading( false );\n\t};\n\n\tconst resetBackgroundImage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundImage' ],\n\t\t\t\tundefined\n\t\t\t)\n\t\t);\n\n\tconst onSelectMedia = ( media ) => {\n\t\tif ( ! media || ! media.url ) {\n\t\t\tresetBackgroundImage();\n\t\t\tsetIsUploading( false );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isBlobURL( media.url ) ) {\n\t\t\tsetIsUploading( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// For media selections originated from a file upload.\n\t\tif (\n\t\t\t( media.media_type &&\n\t\t\t\tmedia.media_type !== IMAGE_BACKGROUND_TYPE ) ||\n\t\t\t( ! media.media_type &&\n\t\t\t\tmedia.type &&\n\t\t\t\tmedia.type !== IMAGE_BACKGROUND_TYPE )\n\t\t) {\n\t\t\tonUploadError(\n\t\t\t\t__( 'Only images can be used as a background image.' )\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst sizeValue =\n\t\t\tstyle?.background?.backgroundSize || defaultValues?.backgroundSize;\n\t\tconst positionValue = style?.background?.backgroundPosition;\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundImage: {\n\t\t\t\t\turl: media.url,\n\t\t\t\t\tid: media.id,\n\t\t\t\t\tsource: 'file',\n\t\t\t\t\ttitle: media.title || undefined,\n\t\t\t\t},\n\t\t\t\tbackgroundPosition:\n\t\t\t\t\t/*\n\t\t\t\t\t * A background image uploaded and set in the editor receives a default background position of '50% 0',\n\t\t\t\t\t * when the background image size is the equivalent of \"Tile\".\n\t\t\t\t\t * This is to increase the chance that the image's focus point is visible.\n\t\t\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t\t\t */\n\t\t\t\t\t! positionValue && ( 'auto' === sizeValue || ! sizeValue )\n\t\t\t\t\t\t? '50% 0'\n\t\t\t\t\t\t: positionValue,\n\t\t\t\tbackgroundSize: sizeValue,\n\t\t\t} )\n\t\t);\n\t\tsetIsUploading( false );\n\t\t// Close the dropdown and focus the toggle button.\n\t\tcloseAndFocus();\n\t};\n\n\t// Drag and drop callback, restricting image to one.\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: [ IMAGE_BACKGROUND_TYPE ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tonSelectMedia( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t\tmultiple: false,\n\t\t} );\n\t};\n\n\tconst hasValue = hasBackgroundImageValue( style );\n\n\tconst closeAndFocus = () => {\n\t\t// Use requestAnimationFrame to ensure DOM updates are complete\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tconst [ toggleButton ] = focus.tabbable.find(\n\t\t\t\tcontainerRef?.current\n\t\t\t);\n\t\t\tif ( ! toggleButton ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Focus the toggle button and close the dropdown menu.\n\t\t\t// This ensures similar behaviour as to selecting an image, where the dropdown is\n\t\t\t// closed and focus is redirected to the dropdown toggle button.\n\t\t\ttoggleButton.focus();\n\t\t} );\n\t};\n\n\tconst onRemove = () =>\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\tbackgroundImage: 'none',\n\t\t\t} )\n\t\t);\n\tconst canRemove = ! hasValue && hasBackgroundImageValue( inheritedValue );\n\tconst imgLabel =\n\t\ttitle || getFilename( url ) || __( 'Add background image' );\n\n\treturn (\n\t\t<div className=\"block-editor-global-styles-background-panel__image-tools-panel-item\">\n\t\t\t{ isUploading && <LoadingSpinner /> }\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaId={ id }\n\t\t\t\tmediaURL={ url }\n\t\t\t\tallowedTypes={ [ IMAGE_BACKGROUND_TYPE ] }\n\t\t\t\taccept=\"image/*\"\n\t\t\t\tonSelect={ onSelectMedia }\n\t\t\t\tpopoverProps={ {\n\t\t\t\t\tclassName: clsx( {\n\t\t\t\t\t\t'block-editor-global-styles-background-panel__media-replace-popover':\n\t\t\t\t\t\t\tdisplayInPanel,\n\t\t\t\t\t} ),\n\t\t\t\t} }\n\t\t\t\tname={\n\t\t\t\t\t<InspectorImagePreviewItem\n\t\t\t\t\t\timgUrl={ url }\n\t\t\t\t\t\tfilename={ title }\n\t\t\t\t\t\tlabel={ imgLabel }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\trenderToggle={ ( props ) => (\n\t\t\t\t\t<Button { ...props } __next40pxDefaultSize />\n\t\t\t\t) }\n\t\t\t\tonError={ onUploadError }\n\t\t\t\tonReset={ () => {\n\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\tonResetImage();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ canRemove && (\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tcloseAndFocus();\n\t\t\t\t\t\t\tonRemove();\n\t\t\t\t\t\t\tonRemoveImage();\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t) }\n\t\t\t</MediaReplaceFlow>\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ onFilesDrop }\n\t\t\t\tlabel={ __( 'Drop to upload' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction BackgroundSizeControls( {\n\tonChange,\n\tstyle,\n\tinheritedValue,\n\tdefaultValues,\n} ) {\n\tconst sizeValue =\n\t\tstyle?.background?.backgroundSize ||\n\t\tinheritedValue?.background?.backgroundSize;\n\tconst repeatValue =\n\t\tstyle?.background?.backgroundRepeat ||\n\t\tinheritedValue?.background?.backgroundRepeat;\n\tconst imageValue =\n\t\tstyle?.background?.backgroundImage?.url ||\n\t\tinheritedValue?.background?.backgroundImage?.url;\n\tconst isUploadedImage = style?.background?.backgroundImage?.id;\n\tconst positionValue =\n\t\tstyle?.background?.backgroundPosition ||\n\t\tinheritedValue?.background?.backgroundPosition;\n\tconst attachmentValue =\n\t\tstyle?.background?.backgroundAttachment ||\n\t\tinheritedValue?.background?.backgroundAttachment;\n\n\t/*\n\t * Set default values for uploaded images.\n\t * The default values are passed by the consumer.\n\t * Block-level controls may have different defaults to root-level controls.\n\t * A falsy value is treated by default as `auto` (Tile).\n\t */\n\tlet currentValueForToggle =\n\t\t! sizeValue && isUploadedImage\n\t\t\t? defaultValues?.backgroundSize\n\t\t\t: sizeValue || 'auto';\n\t/*\n\t * The incoming value could be a value + unit, e.g. '20px'.\n\t * In this case set the value to 'tile'.\n\t */\n\tcurrentValueForToggle = ! [ 'cover', 'contain', 'auto' ].includes(\n\t\tcurrentValueForToggle\n\t)\n\t\t? 'auto'\n\t\t: currentValueForToggle;\n\t/*\n\t * If the current value is `cover` and the repeat value is `undefined`, then\n\t * the toggle should be unchecked as the default state. Otherwise, the toggle\n\t * should reflect the current repeat value.\n\t */\n\tconst repeatCheckedValue = ! (\n\t\trepeatValue === 'no-repeat' ||\n\t\t( currentValueForToggle === 'cover' && repeatValue === undefined )\n\t);\n\n\tconst updateBackgroundSize = ( next ) => {\n\t\t// When switching to 'contain' toggle the repeat off.\n\t\tlet nextRepeat = repeatValue;\n\t\tlet nextPosition = positionValue;\n\n\t\tif ( next === 'contain' ) {\n\t\t\tnextRepeat = 'no-repeat';\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif ( next === 'cover' ) {\n\t\t\tnextRepeat = undefined;\n\t\t\tnextPosition = undefined;\n\t\t}\n\n\t\tif (\n\t\t\t( currentValueForToggle === 'cover' ||\n\t\t\t\tcurrentValueForToggle === 'contain' ) &&\n\t\t\tnext === 'auto'\n\t\t) {\n\t\t\tnextRepeat = undefined;\n\t\t\t/*\n\t\t\t * A background image uploaded and set in the editor (an image with a record id),\n\t\t\t * receives a default background position of '50% 0',\n\t\t\t * when the toggle switches to \"Tile\". This is to increase the chance that\n\t\t\t * the image's focus point is visible.\n\t\t\t * This is in-editor only to assist with the user experience.\n\t\t\t */\n\t\t\tif ( !! style?.background?.backgroundImage?.id ) {\n\t\t\t\tnextPosition = '50% 0';\n\t\t\t}\n\t\t}\n\n\t\t/*\n\t\t * Next will be null when the input is cleared,\n\t\t * in which case the value should be 'auto'.\n\t\t */\n\t\tif ( ! next && currentValueForToggle === 'auto' ) {\n\t\t\tnext = 'auto';\n\t\t}\n\n\t\tonChange(\n\t\t\tsetImmutably( style, [ 'background' ], {\n\t\t\t\t...style?.background,\n\t\t\t\tbackgroundPosition: nextPosition,\n\t\t\t\tbackgroundRepeat: nextRepeat,\n\t\t\t\tbackgroundSize: next,\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst updateBackgroundPosition = ( next ) => {\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundPosition' ],\n\t\t\t\tcoordsToBackgroundPosition( next )\n\t\t\t)\n\t\t);\n\t};\n\n\tconst toggleIsRepeated = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundRepeat' ],\n\t\t\t\trepeatCheckedValue === true ? 'no-repeat' : 'repeat'\n\t\t\t)\n\t\t);\n\n\tconst toggleScrollWithPage = () =>\n\t\tonChange(\n\t\t\tsetImmutably(\n\t\t\t\tstyle,\n\t\t\t\t[ 'background', 'backgroundAttachment' ],\n\t\t\t\tattachmentValue === 'fixed' ? 'scroll' : 'fixed'\n\t\t\t)\n\t\t);\n\n\t// Set a default background position for non-site-wide, uploaded images with a size of 'contain'.\n\tconst backgroundPositionValue =\n\t\t! positionValue && isUploadedImage && 'contain' === sizeValue\n\t\t\t? defaultValues?.backgroundPosition\n\t\t\t: positionValue;\n\n\treturn (\n\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t<FocalPointPicker\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Focal point' ) }\n\t\t\t\turl={ imageValue }\n\t\t\t\tvalue={ backgroundPositionToCoords( backgroundPositionValue ) }\n\t\t\t\tonChange={ updateBackgroundPosition }\n\t\t\t/>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Fixed background' ) }\n\t\t\t\tchecked={ attachmentValue === 'fixed' }\n\t\t\t\tonChange={ toggleScrollWithPage }\n\t\t\t/>\n\t\t\t<ToggleGroupControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\tvalue={ currentValueForToggle }\n\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\tisBlock\n\t\t\t\thelp={ backgroundSizeHelpText(\n\t\t\t\t\tsizeValue || defaultValues?.backgroundSize\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"cover\"\n\t\t\t\t\tvalue=\"cover\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Cover',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"contain\"\n\t\t\t\t\tvalue=\"contain\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Contain',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\tkey=\"tile\"\n\t\t\t\t\tvalue=\"auto\"\n\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t'Tile',\n\t\t\t\t\t\t'Size option for background image control'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</ToggleGroupControl>\n\t\t\t<HStack justify=\"flex-start\" spacing={ 2 } as=\"span\">\n\t\t\t\t<UnitControl\n\t\t\t\t\taria-label={ __( 'Background image width' ) }\n\t\t\t\t\tonChange={ updateBackgroundSize }\n\t\t\t\t\tvalue={ sizeValue }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t__unstableInputWidth=\"100px\"\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tplaceholder={ __( 'Auto' ) }\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tcurrentValueForToggle !== 'auto' ||\n\t\t\t\t\t\tcurrentValueForToggle === undefined\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Repeat' ) }\n\t\t\t\t\tchecked={ repeatCheckedValue }\n\t\t\t\t\tonChange={ toggleIsRepeated }\n\t\t\t\t\tdisabled={ currentValueForToggle === 'cover' }\n\t\t\t\t/>\n\t\t\t</HStack>\n\t\t</VStack>\n\t);\n}\n\nexport default function BackgroundImagePanel( {\n\tvalue,\n\tonChange,\n\tinheritedValue = value,\n\tsettings,\n\tdefaultValues = {},\n} ) {\n\t/*\n\t * Resolve any inherited \"ref\" pointers.\n\t * Should the block editor need resolved, inherited values\n\t * across all controls, this could be abstracted into a hook,\n\t * e.g., useResolveGlobalStyle\n\t */\n\tconst { globalStyles, _links } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\tconst _settings = getSettings();\n\t\treturn {\n\t\t\tglobalStyles: _settings[ globalStylesDataKey ],\n\t\t\t_links: _settings[ globalStylesLinksDataKey ],\n\t\t};\n\t}, [] );\n\tconst resolvedInheritedValue = useMemo( () => {\n\t\tconst resolvedValues = {\n\t\t\tbackground: {},\n\t\t};\n\n\t\tif ( ! inheritedValue?.background ) {\n\t\t\treturn inheritedValue;\n\t\t}\n\n\t\tObject.entries( inheritedValue?.background ).forEach(\n\t\t\t( [ key, backgroundValue ] ) => {\n\t\t\t\tresolvedValues.background[ key ] = getResolvedValue(\n\t\t\t\t\tbackgroundValue,\n\t\t\t\t\t{\n\t\t\t\t\t\tstyles: globalStyles,\n\t\t\t\t\t\t_links,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t\treturn resolvedValues;\n\t}, [ globalStyles, _links, inheritedValue ] );\n\n\tconst resetBackground = () =>\n\t\tonChange( setImmutably( value, [ 'background' ], {} ) );\n\n\tconst { title, url } = value?.background?.backgroundImage || {\n\t\t...resolvedInheritedValue?.background?.backgroundImage,\n\t};\n\tconst hasImageValue =\n\t\thasBackgroundImageValue( value ) ||\n\t\thasBackgroundImageValue( resolvedInheritedValue );\n\n\tconst imageValue =\n\t\tvalue?.background?.backgroundImage ||\n\t\tinheritedValue?.background?.backgroundImage;\n\n\tconst shouldShowBackgroundImageControls =\n\t\thasImageValue &&\n\t\t'none' !== imageValue &&\n\t\t( settings?.background?.backgroundSize ||\n\t\t\tsettings?.background?.backgroundPosition ||\n\t\t\tsettings?.background?.backgroundRepeat );\n\n\tconst [ isDropDownOpen, setIsDropDownOpen ] = useState( false );\n\tconst containerRef = useRef();\n\n\treturn (\n\t\t<div\n\t\t\tref={ containerRef }\n\t\t\tclassName={ clsx(\n\t\t\t\t'block-editor-global-styles-background-panel__inspector-media-replace-container',\n\t\t\t\t{\n\t\t\t\t\t'is-open': isDropDownOpen,\n\t\t\t\t}\n\t\t\t) }\n\t\t>\n\t\t\t{ shouldShowBackgroundImageControls ? (\n\t\t\t\t<BackgroundControlsPanel\n\t\t\t\t\tlabel={ title }\n\t\t\t\t\tfilename={ title }\n\t\t\t\t\turl={ url }\n\t\t\t\t\tonToggle={ setIsDropDownOpen }\n\t\t\t\t\thasImageValue={ hasImageValue }\n\t\t\t\t>\n\t\t\t\t\t<VStack spacing={ 3 } className=\"single-column\">\n\t\t\t\t\t\t<BackgroundImageControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t\tdisplayInPanel\n\t\t\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BackgroundSizeControls\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\tstyle={ value }\n\t\t\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</VStack>\n\t\t\t\t</BackgroundControlsPanel>\n\t\t\t) : (\n\t\t\t\t<BackgroundImageControls\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tstyle={ value }\n\t\t\t\t\tinheritedValue={ resolvedInheritedValue }\n\t\t\t\t\tdefaultValues={ defaultValues }\n\t\t\t\t\tonResetImage={ () => {\n\t\t\t\t\t\tsetIsDropDownOpen( false );\n\t\t\t\t\t\tresetBackground();\n\t\t\t\t\t} }\n\t\t\t\t\tonRemoveImage={ () => setIsDropDownOpen( false ) }\n\t\t\t\t\tcontainerRef={ containerRef }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -49,7 +49,7 @@ function BlockInvalidWarning({
49
49
  blockTitle,
50
50
  icon
51
51
  } = (0, _data.useSelect)(selector, [clientId]);
52
- const accessibilityLabel = (0, _i18n.sprintf)(/* translators: accessibility text for blocks with invalid content. %d: localized block title */
52
+ const accessibilityLabel = (0, _i18n.sprintf)(/* translators: accessibility text for blocks with invalid content. %s: localized block title */
53
53
  (0, _i18n.__)('%s block. This block has invalid content'), blockTitle);
54
54
  const {
55
55
  replaceBlock
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_i18n","_data","_blocks","_warning","_interopRequireDefault","_store","_jsxRuntime","BlockInvalidWarning","clientId","selector","select","getBlock","blockEditorStore","block","name","blockType","getBlockType","title","blockIcon","icon","blockTitle","useSelect","accessibilityLabel","sprintf","__","replaceBlock","useDispatch","recoverBlock","attributes","innerBlocks","createBlock","attemptBlockRecovery","jsx","TouchableWithoutFeedback","onPress","accessible","accessibilityRole","children","default","message"],"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { clientId } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst blockIcon = blockType?.icon;\n\n\t\treturn {\n\t\t\tblock,\n\t\t\tblockTitle: title,\n\t\t\ticon: blockIcon,\n\t\t};\n\t};\n\n\tconst { block, blockTitle, icon } = useSelect( selector, [ clientId ] );\n\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %d: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible\n\t\t\taccessibilityRole=\"button\"\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,QAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAwD,IAAAO,WAAA,GAAAP,OAAA;AAhBxD;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAIe,SAASQ,mBAAmBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC3D,MAAMC,QAAQ,GAAKC,MAAM,IAAM;IAC9B,MAAM;MAAEC;IAAS,CAAC,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IAC/C,MAAMC,KAAK,GAAGF,QAAQ,CAAEH,QAAS,CAAC;IAClC,MAAM;MAAEM;IAAK,CAAC,GAAGD,KAAK,IAAI,CAAC,CAAC;IAE5B,MAAME,SAAS,GAAG,IAAAC,oBAAY,EAAEF,IAAI,IAAI,cAAe,CAAC;IACxD,MAAMG,KAAK,GAAGF,SAAS,EAAEE,KAAK;IAC9B,MAAMC,SAAS,GAAGH,SAAS,EAAEI,IAAI;IAEjC,OAAO;MACNN,KAAK;MACLO,UAAU,EAAEH,KAAK;MACjBE,IAAI,EAAED;IACP,CAAC;EACF,CAAC;EAED,MAAM;IAAEL,KAAK;IAAEO,UAAU;IAAED;EAAK,CAAC,GAAG,IAAAE,eAAS,EAAEZ,QAAQ,EAAE,CAAED,QAAQ,CAAG,CAAC;EAEvE,MAAMc,kBAAkB,GAAG,IAAAC,aAAO,EACjC;EACA,IAAAC,QAAE,EAAE,0CAA2C,CAAC,EAChDJ,UACD,CAAC;EAED,MAAM;IAAEK;EAAa,CAAC,GAAG,IAAAC,iBAAW,EAAEd,YAAiB,CAAC;EAExD,MAAMe,YAAY,GAAGA,CAAE;IAAEb,IAAI;IAAEc,UAAU;IAAEC;EAAY,CAAC,KACvD,IAAAC,mBAAW,EAAEhB,IAAI,EAAEc,UAAU,EAAEC,WAAY,CAAC;EAE7C,MAAME,oBAAoB,GAAGA,CAAA,KAAM;IAClCN,YAAY,CAAEZ,KAAK,CAACL,QAAQ,EAAEmB,YAAY,CAAEd,KAAM,CAAE,CAAC;EACtD,CAAC;EAED,oBACC,IAAAP,WAAA,CAAA0B,GAAA,EAAClC,YAAA,CAAAmC,wBAAwB;IACxBC,OAAO,EAAGH,oBAAsB;IAChCI,UAAU;IACVC,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,eAE1B,IAAA/B,WAAA,CAAA0B,GAAA,EAAC7B,QAAA,CAAAmC,OAAO;MACPrB,KAAK,EAAGG;MACR;MAAA;MACAmB,OAAO,EAAG,IAAAf,QAAE,EACX,4DACD,CAAG;MACHL,IAAI,EAAGA,IAAM;MACbG,kBAAkB,EAAGA;IAAoB,CACzC;EAAC,CACuB,CAAC;AAE7B","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_i18n","_data","_blocks","_warning","_interopRequireDefault","_store","_jsxRuntime","BlockInvalidWarning","clientId","selector","select","getBlock","blockEditorStore","block","name","blockType","getBlockType","title","blockIcon","icon","blockTitle","useSelect","accessibilityLabel","sprintf","__","replaceBlock","useDispatch","recoverBlock","attributes","innerBlocks","createBlock","attemptBlockRecovery","jsx","TouchableWithoutFeedback","onPress","accessible","accessibilityRole","children","default","message"],"sources":["@wordpress/block-editor/src/components/block-list/block-invalid-warning.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock, getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport Warning from '../warning';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockInvalidWarning( { clientId } ) {\n\tconst selector = ( select ) => {\n\t\tconst { getBlock } = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst blockIcon = blockType?.icon;\n\n\t\treturn {\n\t\t\tblock,\n\t\t\tblockTitle: title,\n\t\t\ticon: blockIcon,\n\t\t};\n\t};\n\n\tconst { block, blockTitle, icon } = useSelect( selector, [ clientId ] );\n\n\tconst accessibilityLabel = sprintf(\n\t\t/* translators: accessibility text for blocks with invalid content. %s: localized block title */\n\t\t__( '%s block. This block has invalid content' ),\n\t\tblockTitle\n\t);\n\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\n\tconst recoverBlock = ( { name, attributes, innerBlocks } ) =>\n\t\tcreateBlock( name, attributes, innerBlocks );\n\n\tconst attemptBlockRecovery = () => {\n\t\treplaceBlock( block.clientId, recoverBlock( block ) );\n\t};\n\n\treturn (\n\t\t<TouchableWithoutFeedback\n\t\t\tonPress={ attemptBlockRecovery }\n\t\t\taccessible\n\t\t\taccessibilityRole=\"button\"\n\t\t>\n\t\t\t<Warning\n\t\t\t\ttitle={ blockTitle }\n\t\t\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\t\t\tmessage={ __(\n\t\t\t\t\t'Problem displaying block. \\nTap to attempt block recovery.'\n\t\t\t\t) }\n\t\t\t\ticon={ icon }\n\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t/>\n\t\t</TouchableWithoutFeedback>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAKA,IAAAI,QAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAwD,IAAAO,WAAA,GAAAP,OAAA;AAhBxD;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAIe,SAASQ,mBAAmBA,CAAE;EAAEC;AAAS,CAAC,EAAG;EAC3D,MAAMC,QAAQ,GAAKC,MAAM,IAAM;IAC9B,MAAM;MAAEC;IAAS,CAAC,GAAGD,MAAM,CAAEE,YAAiB,CAAC;IAC/C,MAAMC,KAAK,GAAGF,QAAQ,CAAEH,QAAS,CAAC;IAClC,MAAM;MAAEM;IAAK,CAAC,GAAGD,KAAK,IAAI,CAAC,CAAC;IAE5B,MAAME,SAAS,GAAG,IAAAC,oBAAY,EAAEF,IAAI,IAAI,cAAe,CAAC;IACxD,MAAMG,KAAK,GAAGF,SAAS,EAAEE,KAAK;IAC9B,MAAMC,SAAS,GAAGH,SAAS,EAAEI,IAAI;IAEjC,OAAO;MACNN,KAAK;MACLO,UAAU,EAAEH,KAAK;MACjBE,IAAI,EAAED;IACP,CAAC;EACF,CAAC;EAED,MAAM;IAAEL,KAAK;IAAEO,UAAU;IAAED;EAAK,CAAC,GAAG,IAAAE,eAAS,EAAEZ,QAAQ,EAAE,CAAED,QAAQ,CAAG,CAAC;EAEvE,MAAMc,kBAAkB,GAAG,IAAAC,aAAO,EACjC;EACA,IAAAC,QAAE,EAAE,0CAA2C,CAAC,EAChDJ,UACD,CAAC;EAED,MAAM;IAAEK;EAAa,CAAC,GAAG,IAAAC,iBAAW,EAAEd,YAAiB,CAAC;EAExD,MAAMe,YAAY,GAAGA,CAAE;IAAEb,IAAI;IAAEc,UAAU;IAAEC;EAAY,CAAC,KACvD,IAAAC,mBAAW,EAAEhB,IAAI,EAAEc,UAAU,EAAEC,WAAY,CAAC;EAE7C,MAAME,oBAAoB,GAAGA,CAAA,KAAM;IAClCN,YAAY,CAAEZ,KAAK,CAACL,QAAQ,EAAEmB,YAAY,CAAEd,KAAM,CAAE,CAAC;EACtD,CAAC;EAED,oBACC,IAAAP,WAAA,CAAA0B,GAAA,EAAClC,YAAA,CAAAmC,wBAAwB;IACxBC,OAAO,EAAGH,oBAAsB;IAChCI,UAAU;IACVC,iBAAiB,EAAC,QAAQ;IAAAC,QAAA,eAE1B,IAAA/B,WAAA,CAAA0B,GAAA,EAAC7B,QAAA,CAAAmC,OAAO;MACPrB,KAAK,EAAGG;MACR;MAAA;MACAmB,OAAO,EAAG,IAAAf,QAAE,EACX,4DACD,CAAG;MACHL,IAAI,EAAGA,IAAM;MACbG,kBAAkB,EAAGA;IAAoB,CACzC;EAAC,CACuB,CAAC;AAE7B","ignoreList":[]}
@@ -88,6 +88,7 @@ function BlockLockModal({
88
88
  (0, _i18n.__)('Lock %s'), blockInformation.title),
89
89
  overlayClassName: "block-editor-block-lock-modal",
90
90
  onRequestClose: onClose,
91
+ size: "small",
91
92
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("form", {
92
93
  onSubmit: event => {
93
94
  event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","_components","_icons","_data","_blocks","_useBlockLock","_interopRequireDefault","_useBlockDisplayInformation","_store","_jsxRuntime","ALLOWS_EDIT_LOCKING","getTemplateLockValue","lock","remove","move","BlockLockModal","clientId","onClose","setLock","useState","canEdit","canMove","canRemove","useBlockLock","allowsEditLocking","templateLock","hasTemplateLock","useSelect","select","getBlockName","getBlockAttributes","blockEditorStore","blockName","blockType","getBlockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","useDispatch","blockInformation","useBlockDisplayInformation","useEffect","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","jsx","Modal","title","sprintf","__","overlayClassName","onRequestClose","children","jsxs","onSubmit","event","preventDefault","undefined","className","role","CheckboxControl","__nextHasNoMarginBottom","label","checked","indeterminate","onChange","newValue","prevLock","Icon","icon","lockIcon","unlockIcon","ToggleControl","disabled","Flex","justify","expanded","FlexItem","Button","variant","onClick","__next40pxDefaultSize","type"],"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/navigation' ];\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { allowsEditLocking, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<fieldset className=\"block-editor-block-lock-modal__options\">\n\t\t\t\t\t<legend>\n\t\t\t\t\t\t{ __( 'Select the features you want to lock' ) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t */\n\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t<ul\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-all\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Lock all' ) }\n\t\t\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\t\t\t\t\t\t\t\t\t\t: {} ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock editing' ) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\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</li>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock movement' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tmove,\n\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/>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.move ? lockIcon : unlockIcon\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock removal' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tremove,\n\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/>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.remove ? lockIcon : unlockIcon\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</fieldset>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_i18n","require","_element","_components","_icons","_data","_blocks","_useBlockLock","_interopRequireDefault","_useBlockDisplayInformation","_store","_jsxRuntime","ALLOWS_EDIT_LOCKING","getTemplateLockValue","lock","remove","move","BlockLockModal","clientId","onClose","setLock","useState","canEdit","canMove","canRemove","useBlockLock","allowsEditLocking","templateLock","hasTemplateLock","useSelect","select","getBlockName","getBlockAttributes","blockEditorStore","blockName","blockType","getBlockType","includes","attributes","applyTemplateLock","setApplyTemplateLock","updateBlockAttributes","useDispatch","blockInformation","useBlockDisplayInformation","useEffect","edit","isAllChecked","Object","values","every","Boolean","isMixed","some","jsx","Modal","title","sprintf","__","overlayClassName","onRequestClose","size","children","jsxs","onSubmit","event","preventDefault","undefined","className","role","CheckboxControl","__nextHasNoMarginBottom","label","checked","indeterminate","onChange","newValue","prevLock","Icon","icon","lockIcon","unlockIcon","ToggleControl","disabled","Flex","justify","expanded","FlexItem","Button","variant","onClick","__next40pxDefaultSize","type"],"sources":["@wordpress/block-editor/src/components/block-lock/modal.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useEffect, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tFlex,\n\tFlexItem,\n\tIcon,\n\tModal,\n\tToggleControl,\n} from '@wordpress/components';\nimport { lock as lockIcon, unlock as unlockIcon } from '@wordpress/icons';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { getBlockType } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport useBlockLock from './use-block-lock';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\n// Entity based blocks which allow edit locking\nconst ALLOWS_EDIT_LOCKING = [ 'core/navigation' ];\n\nfunction getTemplateLockValue( lock ) {\n\t// Prevents all operations.\n\tif ( lock.remove && lock.move ) {\n\t\treturn 'all';\n\t}\n\n\t// Prevents inserting or removing blocks, but allows moving existing blocks.\n\tif ( lock.remove && ! lock.move ) {\n\t\treturn 'insert';\n\t}\n\n\treturn false;\n}\n\nexport default function BlockLockModal( { clientId, onClose } ) {\n\tconst [ lock, setLock ] = useState( { move: false, remove: false } );\n\tconst { canEdit, canMove, canRemove } = useBlockLock( clientId );\n\tconst { allowsEditLocking, templateLock, hasTemplateLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlockAttributes } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\n\t\t\treturn {\n\t\t\t\tallowsEditLocking: ALLOWS_EDIT_LOCKING.includes( blockName ),\n\t\t\t\ttemplateLock: getBlockAttributes( clientId )?.templateLock,\n\t\t\t\thasTemplateLock: !! blockType?.attributes?.templateLock,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst [ applyTemplateLock, setApplyTemplateLock ] = useState(\n\t\t!! templateLock\n\t);\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tuseEffect( () => {\n\t\tsetLock( {\n\t\t\tmove: ! canMove,\n\t\t\tremove: ! canRemove,\n\t\t\t...( allowsEditLocking ? { edit: ! canEdit } : {} ),\n\t\t} );\n\t}, [ canEdit, canMove, canRemove, allowsEditLocking ] );\n\n\tconst isAllChecked = Object.values( lock ).every( Boolean );\n\tconst isMixed = Object.values( lock ).some( Boolean ) && ! isAllChecked;\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ sprintf(\n\t\t\t\t/* translators: %s: Name of the block. */\n\t\t\t\t__( 'Lock %s' ),\n\t\t\t\tblockInformation.title\n\t\t\t) }\n\t\t\toverlayClassName=\"block-editor-block-lock-modal\"\n\t\t\tonRequestClose={ onClose }\n\t\t\tsize=\"small\"\n\t\t>\n\t\t\t<form\n\t\t\t\tonSubmit={ ( event ) => {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tupdateBlockAttributes( [ clientId ], {\n\t\t\t\t\t\tlock,\n\t\t\t\t\t\ttemplateLock: applyTemplateLock\n\t\t\t\t\t\t\t? getTemplateLockValue( lock )\n\t\t\t\t\t\t\t: undefined,\n\t\t\t\t\t} );\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<fieldset className=\"block-editor-block-lock-modal__options\">\n\t\t\t\t\t<legend>\n\t\t\t\t\t\t{ __( 'Select the features you want to lock' ) }\n\t\t\t\t\t</legend>\n\t\t\t\t\t{ /*\n\t\t\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t\t\t */\n\t\t\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t<ul\n\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__options-all\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Lock all' ) }\n\t\t\t\t\t\t\t\tchecked={ isAllChecked }\n\t\t\t\t\t\t\t\tindeterminate={ isMixed }\n\t\t\t\t\t\t\t\tonChange={ ( newValue ) =>\n\t\t\t\t\t\t\t\t\tsetLock( {\n\t\t\t\t\t\t\t\t\t\tmove: newValue,\n\t\t\t\t\t\t\t\t\t\tremove: newValue,\n\t\t\t\t\t\t\t\t\t\t...( allowsEditLocking\n\t\t\t\t\t\t\t\t\t\t\t? { edit: newValue }\n\t\t\t\t\t\t\t\t\t\t\t: {} ),\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\trole=\"list\"\n\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__checklist\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ allowsEditLocking && (\n\t\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock editing' ) }\n\t\t\t\t\t\t\t\t\t\t\tchecked={ !! lock.edit }\n\t\t\t\t\t\t\t\t\t\t\tonChange={ ( edit ) =>\n\t\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\t\tedit,\n\t\t\t\t\t\t\t\t\t\t\t\t} ) )\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t\tlock.edit\n\t\t\t\t\t\t\t\t\t\t\t\t\t? lockIcon\n\t\t\t\t\t\t\t\t\t\t\t\t\t: unlockIcon\n\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</li>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock movement' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.move }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( move ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tmove,\n\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/>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.move ? lockIcon : unlockIcon\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t<li className=\"block-editor-block-lock-modal__checklist-item\">\n\t\t\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Lock removal' ) }\n\t\t\t\t\t\t\t\t\t\tchecked={ lock.remove }\n\t\t\t\t\t\t\t\t\t\tonChange={ ( remove ) =>\n\t\t\t\t\t\t\t\t\t\t\tsetLock( ( prevLock ) => ( {\n\t\t\t\t\t\t\t\t\t\t\t\t...prevLock,\n\t\t\t\t\t\t\t\t\t\t\t\tremove,\n\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/>\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__lock-icon\"\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\tlock.remove ? lockIcon : unlockIcon\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t\t\t\t{ hasTemplateLock && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tclassName=\"block-editor-block-lock-modal__template-lock\"\n\t\t\t\t\t\t\tlabel={ __( 'Apply to all blocks inside' ) }\n\t\t\t\t\t\t\tchecked={ applyTemplateLock }\n\t\t\t\t\t\t\tdisabled={ lock.move && ! lock.remove }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetApplyTemplateLock( ! applyTemplateLock )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</fieldset>\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Apply' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</form>\n\t\t</Modal>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AASA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAKA,IAAAM,aAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,2BAAA,GAAAD,sBAAA,CAAAP,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAAwD,IAAAU,WAAA,GAAAV,OAAA;AAvBxD;AACA;AACA;;AAgBA;AACA;AACA;;AAKA;AACA,MAAMW,mBAAmB,GAAG,CAAE,iBAAiB,CAAE;AAEjD,SAASC,oBAAoBA,CAAEC,IAAI,EAAG;EACrC;EACA,IAAKA,IAAI,CAACC,MAAM,IAAID,IAAI,CAACE,IAAI,EAAG;IAC/B,OAAO,KAAK;EACb;;EAEA;EACA,IAAKF,IAAI,CAACC,MAAM,IAAI,CAAED,IAAI,CAACE,IAAI,EAAG;IACjC,OAAO,QAAQ;EAChB;EAEA,OAAO,KAAK;AACb;AAEe,SAASC,cAAcA,CAAE;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,EAAG;EAC/D,MAAM,CAAEL,IAAI,EAAEM,OAAO,CAAE,GAAG,IAAAC,iBAAQ,EAAE;IAAEL,IAAI,EAAE,KAAK;IAAED,MAAM,EAAE;EAAM,CAAE,CAAC;EACpE,MAAM;IAAEO,OAAO;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAG,IAAAC,qBAAY,EAAEP,QAAS,CAAC;EAChE,MAAM;IAAEQ,iBAAiB;IAAEC,YAAY;IAAEC;EAAgB,CAAC,GAAG,IAAAC,eAAS,EACnEC,MAAM,IAAM;IACb,MAAM;MAAEC,YAAY;MAAEC;IAAmB,CAAC,GACzCF,MAAM,CAAEG,YAAiB,CAAC;IAC3B,MAAMC,SAAS,GAAGH,YAAY,CAAEb,QAAS,CAAC;IAC1C,MAAMiB,SAAS,GAAG,IAAAC,oBAAY,EAAEF,SAAU,CAAC;IAE3C,OAAO;MACNR,iBAAiB,EAAEd,mBAAmB,CAACyB,QAAQ,CAAEH,SAAU,CAAC;MAC5DP,YAAY,EAAEK,kBAAkB,CAAEd,QAAS,CAAC,EAAES,YAAY;MAC1DC,eAAe,EAAE,CAAC,CAAEO,SAAS,EAAEG,UAAU,EAAEX;IAC5C,CAAC;EACF,CAAC,EACD,CAAET,QAAQ,CACX,CAAC;EACD,MAAM,CAAEqB,iBAAiB,EAAEC,oBAAoB,CAAE,GAAG,IAAAnB,iBAAQ,EAC3D,CAAC,CAAEM,YACJ,CAAC;EACD,MAAM;IAAEc;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAET,YAAiB,CAAC;EACjE,MAAMU,gBAAgB,GAAG,IAAAC,mCAA0B,EAAE1B,QAAS,CAAC;EAE/D,IAAA2B,kBAAS,EAAE,MAAM;IAChBzB,OAAO,CAAE;MACRJ,IAAI,EAAE,CAAEO,OAAO;MACfR,MAAM,EAAE,CAAES,SAAS;MACnB,IAAKE,iBAAiB,GAAG;QAAEoB,IAAI,EAAE,CAAExB;MAAQ,CAAC,GAAG,CAAC,CAAC;IAClD,CAAE,CAAC;EACJ,CAAC,EAAE,CAAEA,OAAO,EAAEC,OAAO,EAAEC,SAAS,EAAEE,iBAAiB,CAAG,CAAC;EAEvD,MAAMqB,YAAY,GAAGC,MAAM,CAACC,MAAM,CAAEnC,IAAK,CAAC,CAACoC,KAAK,CAAEC,OAAQ,CAAC;EAC3D,MAAMC,OAAO,GAAGJ,MAAM,CAACC,MAAM,CAAEnC,IAAK,CAAC,CAACuC,IAAI,CAAEF,OAAQ,CAAC,IAAI,CAAEJ,YAAY;EAEvE,oBACC,IAAApC,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAoD,KAAK;IACLC,KAAK,EAAG,IAAAC,aAAO,EACd;IACA,IAAAC,QAAE,EAAE,SAAU,CAAC,EACff,gBAAgB,CAACa,KAClB,CAAG;IACHG,gBAAgB,EAAC,+BAA+B;IAChDC,cAAc,EAAGzC,OAAS;IAC1B0C,IAAI,EAAC,OAAO;IAAAC,QAAA,eAEZ,IAAAnD,WAAA,CAAAoD,IAAA;MACCC,QAAQ,EAAKC,KAAK,IAAM;QACvBA,KAAK,CAACC,cAAc,CAAC,CAAC;QACtBzB,qBAAqB,CAAE,CAAEvB,QAAQ,CAAE,EAAE;UACpCJ,IAAI;UACJa,YAAY,EAAEY,iBAAiB,GAC5B1B,oBAAoB,CAAEC,IAAK,CAAC,GAC5BqD;QACJ,CAAE,CAAC;QACHhD,OAAO,CAAC,CAAC;MACV,CAAG;MAAA2C,QAAA,gBAEH,IAAAnD,WAAA,CAAAoD,IAAA;QAAUK,SAAS,EAAC,wCAAwC;QAAAN,QAAA,gBAC3D,IAAAnD,WAAA,CAAA2C,GAAA;UAAAQ,QAAA,EACG,IAAAJ,QAAE,EAAE,sCAAuC;QAAC,CACvC,CAAC,eAMT,IAAA/C,WAAA,CAAA2C,GAAA;UACCe,IAAI,EAAC,MAAM;UACXD,SAAS,EAAC,0CAA0C;UAAAN,QAAA,eAEpD,IAAAnD,WAAA,CAAAoD,IAAA;YAAAD,QAAA,gBACC,IAAAnD,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAmE,eAAe;cACfC,uBAAuB;cACvBH,SAAS,EAAC,4CAA4C;cACtDI,KAAK,EAAG,IAAAd,QAAE,EAAE,UAAW,CAAG;cAC1Be,OAAO,EAAG1B,YAAc;cACxB2B,aAAa,EAAGtB,OAAS;cACzBuB,QAAQ,EAAKC,QAAQ,IACpBxD,OAAO,CAAE;gBACRJ,IAAI,EAAE4D,QAAQ;gBACd7D,MAAM,EAAE6D,QAAQ;gBAChB,IAAKlD,iBAAiB,GACnB;kBAAEoB,IAAI,EAAE8B;gBAAS,CAAC,GAClB,CAAC,CAAC;cACN,CAAE;YACF,CACD,CAAC,eACF,IAAAjE,WAAA,CAAAoD,IAAA;cACCM,IAAI,EAAC,MAAM;cACXD,SAAS,EAAC,0CAA0C;cAAAN,QAAA,GAElDpC,iBAAiB,iBAClB,IAAAf,WAAA,CAAAoD,IAAA;gBAAIK,SAAS,EAAC,+CAA+C;gBAAAN,QAAA,gBAC5D,IAAAnD,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAmE,eAAe;kBACfC,uBAAuB;kBACvBC,KAAK,EAAG,IAAAd,QAAE,EAAE,cAAe,CAAG;kBAC9Be,OAAO,EAAG,CAAC,CAAE3D,IAAI,CAACgC,IAAM;kBACxB6B,QAAQ,EAAK7B,IAAI,IAChB1B,OAAO,CAAIyD,QAAQ,KAAQ;oBAC1B,GAAGA,QAAQ;oBACX/B;kBACD,CAAC,CAAG;gBACJ,CACD,CAAC,eACF,IAAAnC,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAA2E,IAAI;kBACJV,SAAS,EAAC,0CAA0C;kBACpDW,IAAI,EACHjE,IAAI,CAACgC,IAAI,GACNkC,WAAQ,GACRC;gBACH,CACD,CAAC;cAAA,CACC,CACJ,eACD,IAAAtE,WAAA,CAAAoD,IAAA;gBAAIK,SAAS,EAAC,+CAA+C;gBAAAN,QAAA,gBAC5D,IAAAnD,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAmE,eAAe;kBACfC,uBAAuB;kBACvBC,KAAK,EAAG,IAAAd,QAAE,EAAE,eAAgB,CAAG;kBAC/Be,OAAO,EAAG3D,IAAI,CAACE,IAAM;kBACrB2D,QAAQ,EAAK3D,IAAI,IAChBI,OAAO,CAAIyD,QAAQ,KAAQ;oBAC1B,GAAGA,QAAQ;oBACX7D;kBACD,CAAC,CAAG;gBACJ,CACD,CAAC,eACF,IAAAL,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAA2E,IAAI;kBACJV,SAAS,EAAC,0CAA0C;kBACpDW,IAAI,EACHjE,IAAI,CAACE,IAAI,GAAGgE,WAAQ,GAAGC;gBACvB,CACD,CAAC;cAAA,CACC,CAAC,eACL,IAAAtE,WAAA,CAAAoD,IAAA;gBAAIK,SAAS,EAAC,+CAA+C;gBAAAN,QAAA,gBAC5D,IAAAnD,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAmE,eAAe;kBACfC,uBAAuB;kBACvBC,KAAK,EAAG,IAAAd,QAAE,EAAE,cAAe,CAAG;kBAC9Be,OAAO,EAAG3D,IAAI,CAACC,MAAQ;kBACvB4D,QAAQ,EAAK5D,MAAM,IAClBK,OAAO,CAAIyD,QAAQ,KAAQ;oBAC1B,GAAGA,QAAQ;oBACX9D;kBACD,CAAC,CAAG;gBACJ,CACD,CAAC,eACF,IAAAJ,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAA2E,IAAI;kBACJV,SAAS,EAAC,0CAA0C;kBACpDW,IAAI,EACHjE,IAAI,CAACC,MAAM,GAAGiE,WAAQ,GAAGC;gBACzB,CACD,CAAC;cAAA,CACC,CAAC;YAAA,CACF,CAAC;UAAA,CACF;QAAC,CACF,CAAC,EAEHrD,eAAe,iBAChB,IAAAjB,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAA+E,aAAa;UACbX,uBAAuB;UACvBH,SAAS,EAAC,8CAA8C;UACxDI,KAAK,EAAG,IAAAd,QAAE,EAAE,4BAA6B,CAAG;UAC5Ce,OAAO,EAAGlC,iBAAmB;UAC7B4C,QAAQ,EAAGrE,IAAI,CAACE,IAAI,IAAI,CAAEF,IAAI,CAACC,MAAQ;UACvC4D,QAAQ,EAAGA,CAAA,KACVnC,oBAAoB,CAAE,CAAED,iBAAkB;QAC1C,CACD,CACD;MAAA,CACQ,CAAC,eACX,IAAA5B,WAAA,CAAAoD,IAAA,EAAC5D,WAAA,CAAAiF,IAAI;QACJhB,SAAS,EAAC,wCAAwC;QAClDiB,OAAO,EAAC,UAAU;QAClBC,QAAQ,EAAG,KAAO;QAAAxB,QAAA,gBAElB,IAAAnD,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAoF,QAAQ;UAAAzB,QAAA,eACR,IAAAnD,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAqF,MAAM;YACNC,OAAO,EAAC,UAAU;YAClBC,OAAO,EAAGvE,OAAS;YACnBwE,qBAAqB;YAAA7B,QAAA,EAEnB,IAAAJ,QAAE,EAAE,QAAS;UAAC,CACT;QAAC,CACA,CAAC,eACX,IAAA/C,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAoF,QAAQ;UAAAzB,QAAA,eACR,IAAAnD,WAAA,CAAA2C,GAAA,EAACnD,WAAA,CAAAqF,MAAM;YACNC,OAAO,EAAC,SAAS;YACjBG,IAAI,EAAC,QAAQ;YACbD,qBAAqB;YAAA7B,QAAA,EAEnB,IAAAJ,QAAE,EAAE,OAAQ;UAAC,CACR;QAAC,CACA,CAAC;MAAA,CACN,CAAC;IAAA,CACF;EAAC,CACD,CAAC;AAEV","ignoreList":[]}
@@ -123,7 +123,7 @@ function ImageSizeControl({
123
123
  children: IMAGE_SIZE_PRESETS.map(scale => {
124
124
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToggleGroupControlOption, {
125
125
  value: scale,
126
- label: (0, _i18n.sprintf)(/* translators: Percentage value. */
126
+ label: (0, _i18n.sprintf)(/* translators: %d: Percentage value. */
127
127
  (0, _i18n.__)('%d%%'), scale)
128
128
  }, scale);
129
129
  })
@@ -1 +1 @@
1
- {"version":3,"names":["_components","require","_i18n","_useDimensionHandler","_interopRequireDefault","_jsxRuntime","IMAGE_SIZE_PRESETS","noop","getScaledWidthAndHeight","scale","imageWidth","imageHeight","scaledWidth","Math","round","scaledHeight","ImageSizeControl","imageSizeHelp","imageSizeOptions","isResizable","slug","width","height","onChange","onChangeImage","currentHeight","currentWidth","updateDimension","updateDimensions","useDimensionHandler","handleUpdateDimensions","undefined","selectedValue","find","jsxs","__experimentalVStack","className","spacing","children","length","jsx","SelectControl","__nextHasNoMarginBottom","label","__","value","options","help","size","Fragment","__experimentalHStack","align","__experimentalNumberControl","min","__experimentalToggleGroupControl","hideLabelFromVision","isBlock","__next40pxDefaultSize","map","__experimentalToggleGroupControlOption","sprintf"],"sources":["@wordpress/block-editor/src/components/image-size-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tSelectControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDimensionHandler from './use-dimension-handler';\n\nconst IMAGE_SIZE_PRESETS = [ 25, 50, 75, 100 ];\nconst noop = () => {};\n\n/**\n * Get scaled width and height for the given scale.\n *\n * @param {number} scale The scale to get the scaled width and height for.\n * @param {number} imageWidth The image width.\n * @param {number} imageHeight The image height.\n *\n * @return {Object} The scaled width and height.\n */\nfunction getScaledWidthAndHeight( scale, imageWidth, imageHeight ) {\n\tconst scaledWidth = Math.round( imageWidth * ( scale / 100 ) );\n\tconst scaledHeight = Math.round( imageHeight * ( scale / 100 ) );\n\n\treturn {\n\t\tscaledWidth,\n\t\tscaledHeight,\n\t};\n}\n\nexport default function ImageSizeControl( {\n\timageSizeHelp,\n\timageWidth,\n\timageHeight,\n\timageSizeOptions = [],\n\tisResizable = true,\n\tslug,\n\twidth,\n\theight,\n\tonChange,\n\tonChangeImage = noop,\n} ) {\n\tconst { currentHeight, currentWidth, updateDimension, updateDimensions } =\n\t\tuseDimensionHandler( height, width, imageHeight, imageWidth, onChange );\n\n\t/**\n\t * Updates the dimensions for the given scale.\n\t * Handler for toggle group control change.\n\t *\n\t * @param {number} scale The scale to update the dimensions for.\n\t */\n\tconst handleUpdateDimensions = ( scale ) => {\n\t\tif ( undefined === scale ) {\n\t\t\tupdateDimensions();\n\t\t\treturn;\n\t\t}\n\n\t\tconst { scaledWidth, scaledHeight } = getScaledWidthAndHeight(\n\t\t\tscale,\n\t\t\timageWidth,\n\t\t\timageHeight\n\t\t);\n\n\t\tupdateDimensions( scaledHeight, scaledWidth );\n\t};\n\n\t/**\n\t * Add the stored image preset value to toggle group control.\n\t */\n\tconst selectedValue = IMAGE_SIZE_PRESETS.find( ( scale ) => {\n\t\tconst { scaledWidth, scaledHeight } = getScaledWidthAndHeight(\n\t\t\tscale,\n\t\t\timageWidth,\n\t\t\timageHeight\n\t\t);\n\n\t\treturn currentWidth === scaledWidth && currentHeight === scaledHeight;\n\t} );\n\n\treturn (\n\t\t<VStack className=\"block-editor-image-size-control\" spacing=\"4\">\n\t\t\t{ imageSizeOptions && imageSizeOptions.length > 0 && (\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\tvalue={ slug }\n\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\tonChange={ onChangeImage }\n\t\t\t\t\thelp={ imageSizeHelp }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isResizable && (\n\t\t\t\t<>\n\t\t\t\t\t<HStack align=\"baseline\" spacing=\"4\">\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ currentWidth }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'width', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ currentHeight }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'height', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Image size presets' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tonChange={ handleUpdateDimensions }\n\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t>\n\t\t\t\t\t\t{ IMAGE_SIZE_PRESETS.map( ( scale ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tkey={ scale }\n\t\t\t\t\t\t\t\t\tvalue={ scale }\n\t\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: Percentage value. */\n\t\t\t\t\t\t\t\t\t\t__( '%d%%' ),\n\t\t\t\t\t\t\t\t\t\tscale\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_components","require","_i18n","_useDimensionHandler","_interopRequireDefault","_jsxRuntime","IMAGE_SIZE_PRESETS","noop","getScaledWidthAndHeight","scale","imageWidth","imageHeight","scaledWidth","Math","round","scaledHeight","ImageSizeControl","imageSizeHelp","imageSizeOptions","isResizable","slug","width","height","onChange","onChangeImage","currentHeight","currentWidth","updateDimension","updateDimensions","useDimensionHandler","handleUpdateDimensions","undefined","selectedValue","find","jsxs","__experimentalVStack","className","spacing","children","length","jsx","SelectControl","__nextHasNoMarginBottom","label","__","value","options","help","size","Fragment","__experimentalHStack","align","__experimentalNumberControl","min","__experimentalToggleGroupControl","hideLabelFromVision","isBlock","__next40pxDefaultSize","map","__experimentalToggleGroupControlOption","sprintf"],"sources":["@wordpress/block-editor/src/components/image-size-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tSelectControl,\n\t__experimentalNumberControl as NumberControl,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOption as ToggleGroupControlOption,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useDimensionHandler from './use-dimension-handler';\n\nconst IMAGE_SIZE_PRESETS = [ 25, 50, 75, 100 ];\nconst noop = () => {};\n\n/**\n * Get scaled width and height for the given scale.\n *\n * @param {number} scale The scale to get the scaled width and height for.\n * @param {number} imageWidth The image width.\n * @param {number} imageHeight The image height.\n *\n * @return {Object} The scaled width and height.\n */\nfunction getScaledWidthAndHeight( scale, imageWidth, imageHeight ) {\n\tconst scaledWidth = Math.round( imageWidth * ( scale / 100 ) );\n\tconst scaledHeight = Math.round( imageHeight * ( scale / 100 ) );\n\n\treturn {\n\t\tscaledWidth,\n\t\tscaledHeight,\n\t};\n}\n\nexport default function ImageSizeControl( {\n\timageSizeHelp,\n\timageWidth,\n\timageHeight,\n\timageSizeOptions = [],\n\tisResizable = true,\n\tslug,\n\twidth,\n\theight,\n\tonChange,\n\tonChangeImage = noop,\n} ) {\n\tconst { currentHeight, currentWidth, updateDimension, updateDimensions } =\n\t\tuseDimensionHandler( height, width, imageHeight, imageWidth, onChange );\n\n\t/**\n\t * Updates the dimensions for the given scale.\n\t * Handler for toggle group control change.\n\t *\n\t * @param {number} scale The scale to update the dimensions for.\n\t */\n\tconst handleUpdateDimensions = ( scale ) => {\n\t\tif ( undefined === scale ) {\n\t\t\tupdateDimensions();\n\t\t\treturn;\n\t\t}\n\n\t\tconst { scaledWidth, scaledHeight } = getScaledWidthAndHeight(\n\t\t\tscale,\n\t\t\timageWidth,\n\t\t\timageHeight\n\t\t);\n\n\t\tupdateDimensions( scaledHeight, scaledWidth );\n\t};\n\n\t/**\n\t * Add the stored image preset value to toggle group control.\n\t */\n\tconst selectedValue = IMAGE_SIZE_PRESETS.find( ( scale ) => {\n\t\tconst { scaledWidth, scaledHeight } = getScaledWidthAndHeight(\n\t\t\tscale,\n\t\t\timageWidth,\n\t\t\timageHeight\n\t\t);\n\n\t\treturn currentWidth === scaledWidth && currentHeight === scaledHeight;\n\t} );\n\n\treturn (\n\t\t<VStack className=\"block-editor-image-size-control\" spacing=\"4\">\n\t\t\t{ imageSizeOptions && imageSizeOptions.length > 0 && (\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\tvalue={ slug }\n\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\tonChange={ onChangeImage }\n\t\t\t\t\thelp={ imageSizeHelp }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isResizable && (\n\t\t\t\t<>\n\t\t\t\t\t<HStack align=\"baseline\" spacing=\"4\">\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\tvalue={ currentWidth }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'width', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<NumberControl\n\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\tvalue={ currentHeight }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tupdateDimension( 'height', value )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\tlabel={ __( 'Image size presets' ) }\n\t\t\t\t\t\thideLabelFromVision\n\t\t\t\t\t\tonChange={ handleUpdateDimensions }\n\t\t\t\t\t\tvalue={ selectedValue }\n\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t>\n\t\t\t\t\t\t{ IMAGE_SIZE_PRESETS.map( ( scale ) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<ToggleGroupControlOption\n\t\t\t\t\t\t\t\t\tkey={ scale }\n\t\t\t\t\t\t\t\t\tvalue={ scale }\n\t\t\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %d: Percentage value. */\n\t\t\t\t\t\t\t\t\t\t__( '%d%%' ),\n\t\t\t\t\t\t\t\t\t\tscale\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</VStack>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,7 @@ var _jsxRuntime = require("react/jsx-runtime");
33
33
 
34
34
  const ALLOWED_MEDIA_TYPES = ['image'];
35
35
  const MEDIA_OPTIONS_POPOVER_PROPS = {
36
- position: 'bottom left',
36
+ placement: 'bottom-end',
37
37
  className: 'block-editor-inserter__media-list__item-preview-options__popover'
38
38
  };
39
39
  function MediaPreviewOptions({
@@ -1 +1 @@
1
- {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_blocks","_icons","_data","_notices","_blob","_url","_inserterDraggableBlocks","_utils","_store","_jsxRuntime","ALLOWED_MEDIA_TYPES","MEDIA_OPTIONS_POPOVER_PROPS","position","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","jsx","DropdownMenu","label","__","popoverProps","icon","moreVertical","children","MenuGroup","MenuItem","onClick","window","open","focus","external","sprintf","mediaType","InsertExternalImageModal","onClose","onSubmit","jsxs","Modal","title","onRequestClose","__experimentalVStack","spacing","Flex","justify","expanded","FlexItem","Button","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","useState","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","useMemo","getBlockAndPreviewFromMedia","createErrorNotice","createSuccessNotice","useDispatch","noticesStore","getSettings","getBlock","useSelect","blockEditorStore","updateBlockAttributes","onMediaInsert","useCallback","previewBlock","settings","clonedBlock","cloneBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","fileName","getFilename","file","File","type","filesList","additionalData","onFileChange","img","isBlobURL","clientId","allowedTypes","onError","message","catch","rendered","onMouseEnter","onMouseLeave","Fragment","default","isEnabled","blocks","draggable","onDragStart","onDragEnd","clsx","Tooltip","text","Composite","Item","render","role","Spinner"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings, getBlock } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst fileName = getFilename( url ) || 'image.jpg';\n\t\t\t\t\tconst file = new File( [ blob ], fileName, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( ! getBlock( clonedBlock.clientId ) ) {\n\t\t\t\t\t\t\t\t// Ensure the block is only inserted once.\n\t\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t\t{ type: 'snackbar', id: 'inserter-notice' }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// For subsequent calls, update the existing block.\n\t\t\t\t\t\t\t\tupdateBlockAttributes( clonedBlock.clientId, {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tupdateBlockAttributes,\n\t\t\tcreateErrorNotice,\n\t\t\tgetBlock,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_clsx","_interopRequireDefault","require","_components","_i18n","_element","_blocks","_icons","_data","_notices","_blob","_url","_inserterDraggableBlocks","_utils","_store","_jsxRuntime","ALLOWED_MEDIA_TYPES","MEDIA_OPTIONS_POPOVER_PROPS","placement","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","jsx","DropdownMenu","label","__","popoverProps","icon","moreVertical","children","MenuGroup","MenuItem","onClick","window","open","focus","external","sprintf","mediaType","InsertExternalImageModal","onClose","onSubmit","jsxs","Modal","title","onRequestClose","__experimentalVStack","spacing","Flex","justify","expanded","FlexItem","Button","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","useState","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","useMemo","getBlockAndPreviewFromMedia","createErrorNotice","createSuccessNotice","useDispatch","noticesStore","getSettings","getBlock","useSelect","blockEditorStore","updateBlockAttributes","onMediaInsert","useCallback","previewBlock","settings","clonedBlock","cloneBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","fileName","getFilename","file","File","type","filesList","additionalData","onFileChange","img","isBlobURL","clientId","allowedTypes","onError","message","catch","rendered","onMouseEnter","onMouseLeave","Fragment","default","isEnabled","blocks","draggable","onDragStart","onDragEnd","clsx","Tooltip","text","Composite","Item","render","role","Spinner"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tplacement: 'bottom-end',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings, getBlock } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst fileName = getFilename( url ) || 'image.jpg';\n\t\t\t\t\tconst file = new File( [ blob ], fileName, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( ! getBlock( clonedBlock.clientId ) ) {\n\t\t\t\t\t\t\t\t// Ensure the block is only inserted once.\n\t\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t\t{ type: 'snackbar', id: 'inserter-notice' }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// For subsequent calls, update the existing block.\n\t\t\t\t\t\t\t\tupdateBlockAttributes( clonedBlock.clientId, {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tupdateBlockAttributes,\n\t\t\tcreateErrorNotice,\n\t\t\tgetBlock,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAaA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AACA,IAAAQ,KAAA,GAAAR,OAAA;AACA,IAAAS,IAAA,GAAAT,OAAA;AAKA,IAAAU,wBAAA,GAAAX,sBAAA,CAAAC,OAAA;AACA,IAAAW,MAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAZ,OAAA;AAA2D,IAAAa,WAAA,GAAAb,OAAA;AAnC3D;AACA;AACA;;AAGA;AACA;AACA;;AAuBA;AACA;AACA;;AAKA,MAAMc,mBAAmB,GAAG,CAAE,OAAO,CAAE;AACvC,MAAMC,2BAA2B,GAAG;EACnCC,SAAS,EAAE,YAAY;EACvBC,SAAS,EACR;AACF,CAAC;AAED,SAASC,mBAAmBA,CAAE;EAAEC,QAAQ;EAAEC;AAAM,CAAC,EAAG;EACnD,IAAK,CAAED,QAAQ,CAACE,YAAY,EAAG;IAC9B,OAAO,IAAI;EACZ;EACA,MAAMC,SAAS,GAAGH,QAAQ,CAACE,YAAY,CAAED,KAAM,CAAC;EAChD,oBACC,IAAAP,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAAuB,YAAY;IACZP,SAAS,EAAC,yDAAyD;IACnEQ,KAAK,EAAG,IAAAC,QAAE,EAAE,SAAU,CAAG;IACzBC,YAAY,EAAGZ,2BAA6B;IAC5Ca,IAAI,EAAGC,mBAAc;IAAAC,QAAA,EAEnBA,CAAA,kBACD,IAAAjB,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAA8B,SAAS;MAAAD,QAAA,eACT,IAAAjB,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAA+B,QAAQ;QACRC,OAAO,EAAGA,CAAA,KACTC,MAAM,CAACC,IAAI,CAAEb,SAAS,EAAE,QAAS,CAAC,CAACc,KAAK,CAAC,CACzC;QACDR,IAAI,EAAGS,eAAU;QAAAP,QAAA,EAEf,IAAAQ,aAAO,EACR;QACA,IAAAZ,QAAE,EAAE,WAAY,CAAC,EACjBP,QAAQ,CAACoB,SACV;MAAC,CACQ;IAAC,CACD;EACX,CACY,CAAC;AAEjB;AAEA,SAASC,wBAAwBA,CAAE;EAAEC,OAAO;EAAEC;AAAS,CAAC,EAAG;EAC1D,oBACC,IAAA7B,WAAA,CAAA8B,IAAA,EAAC1C,WAAA,CAAA2C,KAAK;IACLC,KAAK,EAAG,IAAAnB,QAAE,EAAE,uBAAwB,CAAG;IACvCoB,cAAc,EAAGL,OAAS;IAC1BxB,SAAS,EAAC,6EAA6E;IAAAa,QAAA,gBAEvF,IAAAjB,WAAA,CAAA8B,IAAA,EAAC1C,WAAA,CAAA8C,oBAAM;MAACC,OAAO,EAAG,CAAG;MAAAlB,QAAA,gBACpB,IAAAjB,WAAA,CAAAU,GAAA;QAAAO,QAAA,EACG,IAAAJ,QAAE,EACH,yGACD;MAAC,CACC,CAAC,eACJ,IAAAb,WAAA,CAAAU,GAAA;QAAAO,QAAA,EACG,IAAAJ,QAAE,EACH,qJACD;MAAC,CACC,CAAC;IAAA,CACG,CAAC,eACT,IAAAb,WAAA,CAAA8B,IAAA,EAAC1C,WAAA,CAAAgD,IAAI;MACJhC,SAAS,EAAC,wCAAwC;MAClDiC,OAAO,EAAC,UAAU;MAClBC,QAAQ,EAAG,KAAO;MAAArB,QAAA,gBAElB,IAAAjB,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAAmD,QAAQ;QAAAtB,QAAA,eACR,IAAAjB,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAAoD,MAAM;UACNC,qBAAqB;UACrBC,OAAO,EAAC,UAAU;UAClBtB,OAAO,EAAGQ,OAAS;UAAAX,QAAA,EAEjB,IAAAJ,QAAE,EAAE,QAAS;QAAC,CACT;MAAC,CACA,CAAC,eACX,IAAAb,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAAmD,QAAQ;QAAAtB,QAAA,eACR,IAAAjB,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAAoD,MAAM;UACNC,qBAAqB;UACrBC,OAAO,EAAC,SAAS;UACjBtB,OAAO,EAAGS,QAAU;UAAAZ,QAAA,EAElB,IAAAJ,QAAE,EAAE,QAAS;QAAC,CACT;MAAC,CACA,CAAC;IAAA,CACN,CAAC;EAAA,CACD,CAAC;AAEV;AAEO,SAAS8B,YAAYA,CAAE;EAAEpC,KAAK;EAAEa,OAAO;EAAEd;AAAS,CAAC,EAAG;EAC5D,MAAM,CAAEsC,uBAAuB,EAAEC,0BAA0B,CAAE,GAC5D,IAAAC,iBAAQ,EAAE,KAAM,CAAC;EAClB,MAAM,CAAEC,SAAS,EAAEC,YAAY,CAAE,GAAG,IAAAF,iBAAQ,EAAE,KAAM,CAAC;EACrD,MAAM,CAAEG,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAJ,iBAAQ,EAAE,KAAM,CAAC;EACzD,MAAM,CAAEK,KAAK,EAAEC,OAAO,CAAE,GAAG,IAAAC,gBAAO,EACjC,MAAM,IAAAC,kCAA2B,EAAE/C,KAAK,EAAED,QAAQ,CAACoB,SAAU,CAAC,EAC9D,CAAEnB,KAAK,EAAED,QAAQ,CAACoB,SAAS,CAC5B,CAAC;EACD,MAAM;IAAE6B,iBAAiB;IAAEC;EAAoB,CAAC,GAC/C,IAAAC,iBAAW,EAAEC,cAAa,CAAC;EAC5B,MAAM;IAAEC,WAAW;IAAEC;EAAS,CAAC,GAAG,IAAAC,eAAS,EAAEC,YAAiB,CAAC;EAC/D,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAN,iBAAW,EAAEK,YAAiB,CAAC;EAEjE,MAAME,aAAa,GAAG,IAAAC,oBAAW,EAC9BC,YAAY,IAAM;IACnB;IACA,IAAKjB,WAAW,EAAG;MAClB;IACD;IAEA,MAAMkB,QAAQ,GAAGR,WAAW,CAAC,CAAC;IAC9B,MAAMS,WAAW,GAAG,IAAAC,kBAAU,EAAEH,YAAa,CAAC;IAC9C,MAAM;MAAEI,EAAE;MAAEC,GAAG;MAAEC;IAAQ,CAAC,GAAGJ,WAAW,CAACK,UAAU;;IAEnD;IACA,IAAK,CAAEH,EAAE,IAAI,CAAEH,QAAQ,CAACO,WAAW,EAAG;MACrC7B,0BAA0B,CAAE,IAAK,CAAC;MAClC;IACD;;IAEA;IACA,IAAK,CAAC,CAAEyB,EAAE,EAAG;MACZlD,OAAO,CAAEgD,WAAY,CAAC;MACtB;IACD;IAEAlB,cAAc,CAAE,IAAK,CAAC;IACtB;IACA;IACA;IACA;IACA;IACA7B,MAAM,CACJsD,KAAK,CAAEJ,GAAI,CAAC,CACZK,IAAI,CAAIC,QAAQ,IAAMA,QAAQ,CAACC,IAAI,CAAC,CAAE,CAAC,CACvCF,IAAI,CAAIE,IAAI,IAAM;MAClB,MAAMC,QAAQ,GAAG,IAAAC,gBAAW,EAAET,GAAI,CAAC,IAAI,WAAW;MAClD,MAAMU,IAAI,GAAG,IAAIC,IAAI,CAAE,CAAEJ,IAAI,CAAE,EAAEC,QAAQ,EAAE;QAC1CI,IAAI,EAAEL,IAAI,CAACK;MACZ,CAAE,CAAC;MAEHhB,QAAQ,CAACO,WAAW,CAAE;QACrBU,SAAS,EAAE,CAAEH,IAAI,CAAE;QACnBI,cAAc,EAAE;UAAEb;QAAQ,CAAC;QAC3Bc,YAAYA,CAAE,CAAEC,GAAG,CAAE,EAAG;UACvB,IAAK,IAAAC,eAAS,EAAED,GAAG,CAAChB,GAAI,CAAC,EAAG;YAC3B;UACD;UAEA,IAAK,CAAEX,QAAQ,CAAEQ,WAAW,CAACqB,QAAS,CAAC,EAAG;YACzC;YACArE,OAAO,CAAE;cACR,GAAGgD,WAAW;cACdK,UAAU,EAAE;gBACX,GAAGL,WAAW,CAACK,UAAU;gBACzBH,EAAE,EAAEiB,GAAG,CAACjB,EAAE;gBACVC,GAAG,EAAEgB,GAAG,CAAChB;cACV;YACD,CAAE,CAAC;YAEHf,mBAAmB,CAClB,IAAA3C,QAAE,EAAE,8BAA+B,CAAC,EACpC;cAAEsE,IAAI,EAAE,UAAU;cAAEb,EAAE,EAAE;YAAkB,CAC3C,CAAC;UACF,CAAC,MAAM;YACN;YACAP,qBAAqB,CAAEK,WAAW,CAACqB,QAAQ,EAAE;cAC5C,GAAGrB,WAAW,CAACK,UAAU;cACzBH,EAAE,EAAEiB,GAAG,CAACjB,EAAE;cACVC,GAAG,EAAEgB,GAAG,CAAChB;YACV,CAAE,CAAC;UACJ;UAEArB,cAAc,CAAE,KAAM,CAAC;QACxB,CAAC;QACDwC,YAAY,EAAEzF,mBAAmB;QACjC0F,OAAOA,CAAEC,OAAO,EAAG;UAClBrC,iBAAiB,CAAEqC,OAAO,EAAE;YAC3BT,IAAI,EAAE,UAAU;YAChBb,EAAE,EAAE;UACL,CAAE,CAAC;UACHpB,cAAc,CAAE,KAAM,CAAC;QACxB;MACD,CAAE,CAAC;IACJ,CAAE,CAAC,CACF2C,KAAK,CAAE,MAAM;MACbhD,0BAA0B,CAAE,IAAK,CAAC;MAClCK,cAAc,CAAE,KAAM,CAAC;IACxB,CAAE,CAAC;EACL,CAAC,EACD,CACCD,WAAW,EACXU,WAAW,EACXvC,OAAO,EACPoC,mBAAmB,EACnBO,qBAAqB,EACrBR,iBAAiB,EACjBK,QAAQ,CAEV,CAAC;EAED,MAAM5B,KAAK,GACV,OAAOzB,KAAK,CAACyB,KAAK,KAAK,QAAQ,GAC5BzB,KAAK,CAACyB,KAAK,GACXzB,KAAK,CAACyB,KAAK,EAAE8D,QAAQ,IAAI,IAAAjF,QAAE,EAAE,UAAW,CAAC;EAE7C,MAAMkF,YAAY,GAAG,IAAA9B,oBAAW,EAAE,MAAMjB,YAAY,CAAE,IAAK,CAAC,EAAE,EAAG,CAAC;EAClE,MAAMgD,YAAY,GAAG,IAAA/B,oBAAW,EAAE,MAAMjB,YAAY,CAAE,KAAM,CAAC,EAAE,EAAG,CAAC;EACnE,oBACC,IAAAhD,WAAA,CAAA8B,IAAA,EAAA9B,WAAA,CAAAiG,QAAA;IAAAhF,QAAA,gBACC,IAAAjB,WAAA,CAAAU,GAAA,EAACb,wBAAA,CAAAqG,OAAuB;MAACC,SAAS;MAACC,MAAM,EAAG,CAAEjD,KAAK,CAAI;MAAAlC,QAAA,EACpDA,CAAE;QAAEoF,SAAS;QAAEC,WAAW;QAAEC;MAAU,CAAC,kBACxC,IAAAvG,WAAA,CAAAU,GAAA;QACCN,SAAS,EAAG,IAAAoG,aAAI,EACf,8CAA8C,EAC9C;UACC,YAAY,EAAEzD;QACf,CACD,CAAG;QACHsD,SAAS,EAAGA,SAAW;QACvBC,WAAW,EAAGA,WAAa;QAC3BC,SAAS,EAAGA,SAAW;QAAAtF,QAAA,eAIvB,IAAAjB,WAAA,CAAA8B,IAAA;UACCiE,YAAY,EAAGA,YAAc;UAC7BC,YAAY,EAAGA,YAAc;UAAA/E,QAAA,gBAE7B,IAAAjB,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAAqH,OAAO;YAACC,IAAI,EAAG1E,KAAO;YAAAf,QAAA,eACtB,IAAAjB,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAAuH,SAAS,CAACC,IAAI;cACdC,MAAM,eACL,IAAA7G,WAAA,CAAAU,GAAA;gBACC,cAAasB,KAAO;gBACpB8E,IAAI,EAAC,QAAQ;gBACb1G,SAAS,EAAC;cAAyC,CACnD,CACD;cACDgB,OAAO,EAAGA,CAAA,KAAM4C,aAAa,CAAEb,KAAM,CAAG;cAAAlC,QAAA,eAExC,IAAAjB,WAAA,CAAA8B,IAAA;gBAAK1B,SAAS,EAAC,iDAAiD;gBAAAa,QAAA,GAC7DmC,OAAO,EACPH,WAAW,iBACZ,IAAAjD,WAAA,CAAAU,GAAA;kBAAKN,SAAS,EAAC,yDAAyD;kBAAAa,QAAA,eACvE,IAAAjB,WAAA,CAAAU,GAAA,EAACtB,WAAA,CAAA2H,OAAO,IAAE;gBAAC,CACP,CACL;cAAA,CACG;YAAC,CACS;UAAC,CACT,CAAC,EACR,CAAE9D,WAAW,iBACd,IAAAjD,WAAA,CAAAU,GAAA,EAACL,mBAAmB;YACnBC,QAAQ,EAAGA,QAAU;YACrBC,KAAK,EAAGA;UAAO,CACf,CACD;QAAA,CACG;MAAC,CACF;IACL,CACuB,CAAC,EACxBqC,uBAAuB,iBACxB,IAAA5C,WAAA,CAAAU,GAAA,EAACiB,wBAAwB;MACxBC,OAAO,EAAGA,CAAA,KAAMiB,0BAA0B,CAAE,KAAM,CAAG;MACrDhB,QAAQ,EAAGA,CAAA,KAAM;QAChBT,OAAO,CAAE,IAAAiD,kBAAU,EAAElB,KAAM,CAAE,CAAC;QAC9BK,mBAAmB,CAAE,IAAA3C,QAAE,EAAE,iBAAkB,CAAC,EAAE;UAC7CsE,IAAI,EAAE,UAAU;UAChBb,EAAE,EAAE;QACL,CAAE,CAAC;QACHzB,0BAA0B,CAAE,KAAM,CAAC;MACpC;IAAG,CACH,CACD;EAAA,CACA,CAAC;AAEL","ignoreList":[]}