@wordpress/block-library 8.28.4 → 8.28.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/block/deprecated.js +71 -11
- package/build/block/deprecated.js.map +1 -1
- package/build/block/edit.js +49 -24
- package/build/block/edit.js.map +1 -1
- package/build/image/edit.js +6 -3
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +11 -5
- package/build/image/image.js.map +1 -1
- package/build/list-item/edit.js +1 -3
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/index.js +0 -7
- package/build/list-item/hooks/index.js.map +1 -1
- package/build/list-item/index.js +4 -1
- package/build/list-item/index.js.map +1 -1
- package/build/site-logo/edit.js +7 -2
- package/build/site-logo/edit.js.map +1 -1
- package/build-module/block/deprecated.js +71 -11
- package/build-module/block/deprecated.js.map +1 -1
- package/build-module/block/edit.js +49 -24
- package/build-module/block/edit.js.map +1 -1
- package/build-module/image/edit.js +7 -4
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +11 -5
- package/build-module/image/image.js.map +1 -1
- package/build-module/list-item/edit.js +2 -4
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/index.js +0 -1
- package/build-module/list-item/hooks/index.js.map +1 -1
- package/build-module/list-item/index.js +4 -1
- package/build-module/list-item/index.js.map +1 -1
- package/build-module/site-logo/edit.js +7 -2
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-style/common-rtl.css +1 -0
- package/build-style/common.css +1 -0
- package/package.json +13 -13
- package/src/block/deprecated.js +76 -11
- package/src/block/edit.js +64 -19
- package/src/block/index.php +21 -12
- package/src/image/edit.js +10 -3
- package/src/image/image.js +20 -16
- package/src/list-item/edit.js +1 -2
- package/src/list-item/hooks/index.js +0 -1
- package/src/list-item/index.js +3 -0
- package/src/navigation/index.php +1 -1
- package/src/search/index.php +1 -1
- package/src/site-logo/edit.js +10 -5
- package/build/list-item/hooks/use-copy.js +0 -39
- package/build/list-item/hooks/use-copy.js.map +0 -1
- package/build-module/list-item/hooks/use-copy.js +0 -32
- package/build-module/list-item/hooks/use-copy.js.map +0 -1
- package/src/list-item/hooks/use-copy.js +0 -38
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_element","_i18n","_components","_compose","_blockEditor","_data","_coreData","_icons","_notices","_useClientWidth","_constants","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","containerRef","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","clientWidth","useClientWidth","isLargeViewport","useViewportMatch","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","useState","isEditingImage","setIsEditingImage","toggleSelection","useDispatch","blockEditorStore","classes","classnames","isBlobURL","imageEditing","maxWidth","title","useSelect","select","settings","getSettings","siteEntities","coreStore","getEntityRecord","name","useEffect","onResizeStart","onResizeStop","img","_react","createElement","className","src","onLoad","event","target","imgWrapper","href","rel","onClick","preventDefault","imageWidthWithinContainer","exceedMaxWidth","style","defaultWidth","currentWidth","ratio","currentHeight","minWidth","MIN_SIZE","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","isRTL","canEditImage","imgEdit","__experimentalImageEditor","id","url","onSaveImage","imageAttributes","onFinishEditing","ResizableBox","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","delta","parseInt","syncSiteIconHelpText","createInterpolateElement","__","a","Fragment","InspectorControls","PanelBody","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","onChange","newWidth","min","max","initialPosition","value","disabled","ToggleControl","checked","undefined","help","BlockControls","group","ToolbarButton","icon","crop","SiteLogoReplaceFlow","onRemoveLogo","mediaReplaceProps","MediaReplaceFlow","allowedTypes","accept","MenuItem","InspectorLogoPreview","mediaItemData","itemGroupProps","alt_text","source_url","slug","logoSlug","media_details","logoMediaDetails","logoLabel","sizes","full","file","__experimentalItemGroup","as","__experimentalHStack","justify","FlexItem","__experimentalTruncate","numberOfLines","LogoEdit","ref","useRef","siteLogoId","siteIconId","isRequestingMediaItem","canUser","getEditedEntityRecord","_canUserEdit","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","editEntityRecord","newValue","shouldForceSync","onInitialSelectLogo","media","onSelectLogo","createErrorNotice","noticesStore","onUploadError","message","type","onFilesDrop","filesList","mediaUpload","onFileChange","image","onError","mediaReplaceFlowProps","mediaURL","onSelect","controls","logoImage","isLoading","Spinner","placeholder","content","placeholderClassName","Placeholder","preview","withIllustration","blockProps","useBlockProps","mediaInspectorPanel","isBordered","popoverProps","MediaUploadCheck","MediaUpload","render","open","Button","variant","DropZone","MediaPlaceholder","mediaLibraryButton","upload","showTooltip","tooltipPosition"],"sources":["@wordpress/block-library/src/site-logo/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tMenuItem,\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { crop, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport useClientWidth from '../image/use-client-width';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE } from '../image/constants';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = 'image/*';\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tcontainerRef,\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst classes = classnames( 'custom-logo-link', {\n\t\t'is-transient': isBlobURL( logoUrl ),\n\t} );\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst siteEntities = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'__unstableBase'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities?.name,\n\t\t\timageEditing: settings.imageEditing,\n\t\t\tmaxWidth: settings.maxWidth,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Turn the `Use as site icon` toggle off if it is on but the logo and icon have\n\t\t// fallen out of sync. This can happen if the toggle is saved in the `on` position,\n\t\t// but changes are later made to the site icon in the Customizer.\n\t\tif ( shouldSyncIcon && logoId !== iconId ) {\n\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tconst img = (\n\t\t<img\n\t\t\tclassName=\"custom-logo\"\n\t\t\tsrc={ logoUrl }\n\t\t\talt={ alt }\n\t\t\tonLoad={ ( event ) => {\n\t\t\t\tsetNaturalSize( {\n\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n\n\tlet imgWrapper = img;\n\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName={ classes }\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\t}\n\n\tlet imageWidthWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t}\n\n\tif ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\n\t\t\t<ImageEditor\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\twidth={ currentWidth }\n\t\t\t\theight={ currentHeight }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t/>\n\t\t) : (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\theight: currentHeight,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ imgWrapper }\n\t\t\t</ResizableBox>\n\t\t);\n\n\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={\n\t\t\t\t\t\tsiteUrl +\n\t\t\t\t\t\t'/wp-admin/customize.php?autofocus[section]=title_tagline'\n\t\t\t\t\t}\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Use as site icon' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: value } );\n\t\t\t\t\t\t\t\t\tsetIcon( value ? logoId : undefined );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchecked={ !! shouldSyncIcon }\n\t\t\t\t\t\t\t\thelp={ syncSiteIconHelpText }\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\n// This is a light wrapper around MediaReplaceFlow because the block has two\n// different MediaReplaceFlows, one for the inspector and one for the toolbar.\nfunction SiteLogoReplaceFlow( { onRemoveLogo, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t>\n\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t</MediaReplaceFlow>\n\t);\n}\n\nconst InspectorLogoPreview = ( { mediaItemData = {}, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = mediaItemData;\n\tconst logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<img src={ logoUrl } alt={ alt } />\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ logoLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\n\tconst ref = useRef();\n\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', 'settings' );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t_siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.home,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t};\n\t}, [] );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonInitialSelectLogo( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonRemoveLogo,\n\t};\n\tconst controls = canUserEdit && logoUrl && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<SiteLogoReplaceFlow { ...mediaReplaceFlowProps } />\n\t\t</BlockControls>\n\t);\n\n\tlet logoImage;\n\tconst isLoading = siteLogoId === undefined || isRequestingMediaItem;\n\tif ( isLoading ) {\n\t\tlogoImage = <Spinner />;\n\t}\n\tif ( !! logoUrl ) {\n\t\tlogoImage = (\n\t\t\t<SiteLogo\n\t\t\t\talt={ alt }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tclassName={ className }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tlogoUrl={ logoUrl }\n\t\t\t\tsetLogo={ setLogo }\n\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\tsiteUrl={ url }\n\t\t\t\tsetIcon={ setIcon }\n\t\t\t\ticonId={ siteIconId }\n\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t/>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration={ true }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = classnames( className, {\n\t\t'is-default-size': ! width,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\tconst label = __( 'Add a site logo' );\n\n\tconst mediaInspectorPanel = ( canUserEdit || logoUrl ) && (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Media' ) }>\n\t\t\t\t<div className=\"block-library-site-logo__inspector-media-replace-container\">\n\t\t\t\t\t{ ! canUserEdit && !! logoUrl && (\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmediaItemData={ mediaItemData }\n\t\t\t\t\t\t\titemGroupProps={ {\n\t\t\t\t\t\t\t\tisBordered: true,\n\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t'block-library-site-logo__inspector-readonly-logo-preview',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && !! logoUrl && (\n\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\tmediaItemData={ mediaItemData }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopoverProps={ {} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && ! logoUrl && (\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<div className=\"block-library-site-logo__inspector-upload-container\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ isLoading ? (\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) : (\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Add media' )\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ mediaInspectorPanel }\n\t\t\t{ !! logoUrl && logoImage }\n\t\t\t{ ! logoUrl && ! canUserEdit && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\">\n\t\t\t\t\t{ !! isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\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} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_element","_i18n","_components","_compose","_blockEditor","_data","_coreData","_icons","_notices","_useClientWidth","_constants","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","shouldSyncIcon","containerRef","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","iconId","setIcon","canUserEdit","clientWidth","useClientWidth","isLargeViewport","useViewportMatch","isWideAligned","includes","isResizable","naturalWidth","naturalHeight","setNaturalSize","useState","isEditingImage","setIsEditingImage","toggleSelection","useDispatch","blockEditorStore","classes","classnames","isBlobURL","imageEditing","maxWidth","title","useSelect","select","settings","getSettings","siteEntities","coreStore","getEntityRecord","name","useEffect","onResizeStart","onResizeStop","img","_react","createElement","className","src","onLoad","event","target","imgWrapper","href","rel","onClick","preventDefault","imageWidthWithinContainer","exceedMaxWidth","style","defaultWidth","currentWidth","ratio","currentHeight","minWidth","MIN_SIZE","Math","ceil","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","isRTL","canEditImage","imgEdit","__experimentalImageEditor","id","url","onSaveImage","imageAttributes","onFinishEditing","ResizableBox","size","showHandle","maxHeight","lockAspectRatio","enable","top","right","bottom","left","direction","elt","delta","parseInt","shouldUseNewUrl","window","__experimentalUseCustomizerSiteLogoUrl","siteIconSettingsUrl","syncSiteIconHelpText","createInterpolateElement","__","a","Fragment","InspectorControls","PanelBody","RangeControl","__nextHasNoMarginBottom","__next40pxDefaultSize","label","onChange","newWidth","min","max","initialPosition","value","disabled","ToggleControl","checked","undefined","help","BlockControls","group","ToolbarButton","icon","crop","SiteLogoReplaceFlow","onRemoveLogo","mediaReplaceProps","MediaReplaceFlow","allowedTypes","accept","MenuItem","InspectorLogoPreview","mediaItemData","itemGroupProps","alt_text","source_url","slug","logoSlug","media_details","logoMediaDetails","logoLabel","sizes","full","file","__experimentalItemGroup","as","__experimentalHStack","justify","FlexItem","__experimentalTruncate","numberOfLines","LogoEdit","ref","useRef","siteLogoId","siteIconId","isRequestingMediaItem","canUser","getEditedEntityRecord","_canUserEdit","siteSettings","siteData","_siteLogoId","site_logo","_siteIconId","site_icon","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","home","editEntityRecord","newValue","shouldForceSync","onInitialSelectLogo","media","onSelectLogo","createErrorNotice","noticesStore","onUploadError","message","type","onFilesDrop","filesList","mediaUpload","onFileChange","image","onError","mediaReplaceFlowProps","mediaURL","onSelect","controls","logoImage","isLoading","Spinner","placeholder","content","placeholderClassName","Placeholder","preview","withIllustration","blockProps","useBlockProps","mediaInspectorPanel","isBordered","popoverProps","MediaUploadCheck","MediaUpload","render","open","Button","variant","DropZone","MediaPlaceholder","mediaLibraryButton","upload","showTooltip","tooltipPosition"],"sources":["@wordpress/block-library/src/site-logo/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tcreateInterpolateElement,\n\tuseEffect,\n\tuseState,\n\tuseRef,\n} from '@wordpress/element';\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\tMenuItem,\n\tPanelBody,\n\tRangeControl,\n\tResizableBox,\n\tSpinner,\n\tToggleControl,\n\tToolbarButton,\n\tPlaceholder,\n\tButton,\n\tDropZone,\n\tFlexItem,\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalHStack as HStack,\n\t__experimentalTruncate as Truncate,\n} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n} from '@wordpress/block-editor';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { crop, upload } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport useClientWidth from '../image/use-client-width';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE } from '../image/constants';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst ACCEPT_MEDIA_STRING = 'image/*';\n\nconst SiteLogo = ( {\n\talt,\n\tattributes: { align, width, height, isLink, linkTarget, shouldSyncIcon },\n\tcontainerRef,\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n\ticonId,\n\tsetIcon,\n\tcanUserEdit,\n} ) => {\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst isResizable = ! isWideAligned && isLargeViewport;\n\tconst [ { naturalWidth, naturalHeight }, setNaturalSize ] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst { toggleSelection } = useDispatch( blockEditorStore );\n\tconst classes = classnames( 'custom-logo-link', {\n\t\t'is-transient': isBlobURL( logoUrl ),\n\t} );\n\tconst { imageEditing, maxWidth, title } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst siteEntities = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'__unstableBase'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities?.name,\n\t\t\timageEditing: settings.imageEditing,\n\t\t\tmaxWidth: settings.maxWidth,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Turn the `Use as site icon` toggle off if it is on but the logo and icon have\n\t\t// fallen out of sync. This can happen if the toggle is saved in the `on` position,\n\t\t// but changes are later made to the site icon in the Customizer.\n\t\tif ( shouldSyncIcon && logoId !== iconId ) {\n\t\t\tsetAttributes( { shouldSyncIcon: false } );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tconst img = (\n\t\t<img\n\t\t\tclassName=\"custom-logo\"\n\t\t\tsrc={ logoUrl }\n\t\t\talt={ alt }\n\t\t\tonLoad={ ( event ) => {\n\t\t\t\tsetNaturalSize( {\n\t\t\t\t\tnaturalWidth: event.target.naturalWidth,\n\t\t\t\t\tnaturalHeight: event.target.naturalHeight,\n\t\t\t\t} );\n\t\t\t} }\n\t\t/>\n\t);\n\n\tlet imgWrapper = img;\n\n\t// Disable reason: Image itself is not meant to be interactive, but\n\t// should direct focus to block.\n\tif ( isLink ) {\n\t\timgWrapper = (\n\t\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<a\n\t\t\t\thref={ siteUrl }\n\t\t\t\tclassName={ classes }\n\t\t\t\trel=\"home\"\n\t\t\t\ttitle={ title }\n\t\t\t\tonClick={ ( event ) => event.preventDefault() }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</a>\n\t\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t);\n\t}\n\n\tlet imageWidthWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t}\n\n\tif ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\treturn <div style={ { width, height } }>{ imgWrapper }</div>;\n\t}\n\n\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached frontend CSS file.\n\tconst defaultWidth = 120;\n\n\tconst currentWidth = width || defaultWidth;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth =\n\t\tnaturalWidth < naturalHeight ? MIN_SIZE : Math.ceil( MIN_SIZE * ratio );\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : Math.ceil( MIN_SIZE / ratio );\n\n\t// With the current implementation of ResizableBox, an image needs an\n\t// explicit pixel value for the max-width. In absence of being able to\n\t// set the content-width, this max-width is currently dictated by the\n\t// vanilla editor style. The following variable adds a buffer to this\n\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t// in most cases, allow you to scale the image beyond the width of the\n\t// main column, though not infinitely.\n\t// @todo It would be good to revisit this once a content-width variable\n\t// becomes available.\n\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\tlet showRightHandle = false;\n\tlet showLeftHandle = false;\n\n\t/* eslint-disable no-lonely-if */\n\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\tif ( align === 'center' ) {\n\t\t// When the image is centered, show both handles.\n\t\tshowRightHandle = true;\n\t\tshowLeftHandle = true;\n\t} else if ( isRTL() ) {\n\t\t// In RTL mode the image is on the right by default.\n\t\t// Show the right handle and hide the left handle only when it is\n\t\t// aligned left. Otherwise always show the left handle.\n\t\tif ( align === 'left' ) {\n\t\t\tshowRightHandle = true;\n\t\t} else {\n\t\t\tshowLeftHandle = true;\n\t\t}\n\t} else {\n\t\t// Show the left handle and hide the right handle only when the\n\t\t// image is aligned right. Otherwise always show the right handle.\n\t\tif ( align === 'right' ) {\n\t\t\tshowLeftHandle = true;\n\t\t} else {\n\t\t\tshowRightHandle = true;\n\t\t}\n\t}\n\t/* eslint-enable no-lonely-if */\n\n\tconst canEditImage =\n\t\tlogoId && naturalWidth && naturalHeight && imageEditing;\n\n\tconst imgEdit =\n\t\tcanEditImage && isEditingImage ? (\n\t\t\t<ImageEditor\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\twidth={ currentWidth }\n\t\t\t\theight={ currentHeight }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t/>\n\t\t) : (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: currentWidth,\n\t\t\t\t\theight: currentHeight,\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t\tminWidth={ minWidth }\n\t\t\t\tmaxWidth={ maxWidthBuffer }\n\t\t\t\tminHeight={ minHeight }\n\t\t\t\tmaxHeight={ maxWidthBuffer / ratio }\n\t\t\t\tlockAspectRatio\n\t\t\t\tenable={ {\n\t\t\t\t\ttop: false,\n\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\tbottom: true,\n\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t} }\n\t\t\t\tonResizeStart={ onResizeStart }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tonResizeStop();\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ imgWrapper }\n\t\t\t</ResizableBox>\n\t\t);\n\n\t// Support the previous location for the Site Icon settings. To be removed\n\t// when the required WP core version for Gutenberg is >= 6.5.0.\n\tconst shouldUseNewUrl = ! window?.__experimentalUseCustomizerSiteLogoUrl;\n\n\tconst siteIconSettingsUrl = shouldUseNewUrl\n\t\t? siteUrl + '/wp-admin/options-general.php'\n\t\t: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline';\n\n\tconst syncSiteIconHelpText = createInterpolateElement(\n\t\t__(\n\t\t\t'Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'\n\t\t),\n\t\t{\n\t\t\ta: (\n\t\t\t\t// eslint-disable-next-line jsx-a11y/anchor-has-content\n\t\t\t\t<a\n\t\t\t\t\thref={ siteIconSettingsUrl }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t/>\n\t\t\t),\n\t\t}\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tlabel={ __( 'Image width' ) }\n\t\t\t\t\t\tonChange={ ( newWidth ) =>\n\t\t\t\t\t\t\tsetAttributes( { width: newWidth } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ minWidth }\n\t\t\t\t\t\tmax={ maxWidthBuffer }\n\t\t\t\t\t\tinitialPosition={ Math.min(\n\t\t\t\t\t\t\tdefaultWidth,\n\t\t\t\t\t\t\tmaxWidthBuffer\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ width || '' }\n\t\t\t\t\t\tdisabled={ ! isResizable }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link image to home' ) }\n\t\t\t\t\t\tonChange={ () => setAttributes( { isLink: ! isLink } ) }\n\t\t\t\t\t\tchecked={ isLink }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isLink && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tlinkTarget: value ? '_blank' : '_self',\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\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Use as Site Icon' ) }\n\t\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { shouldSyncIcon: value } );\n\t\t\t\t\t\t\t\t\tsetIcon( value ? logoId : undefined );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchecked={ !! shouldSyncIcon }\n\t\t\t\t\t\t\t\thelp={ syncSiteIconHelpText }\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</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ canEditImage && ! isEditingImage && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => setIsEditingImage( true ) }\n\t\t\t\t\t\ticon={ crop }\n\t\t\t\t\t\tlabel={ __( 'Crop' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ imgEdit }\n\t\t</>\n\t);\n};\n\n// This is a light wrapper around MediaReplaceFlow because the block has two\n// different MediaReplaceFlows, one for the inspector and one for the toolbar.\nfunction SiteLogoReplaceFlow( { onRemoveLogo, ...mediaReplaceProps } ) {\n\treturn (\n\t\t<MediaReplaceFlow\n\t\t\t{ ...mediaReplaceProps }\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t>\n\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t</MediaReplaceFlow>\n\t);\n}\n\nconst InspectorLogoPreview = ( { mediaItemData = {}, itemGroupProps } ) => {\n\tconst {\n\t\talt_text: alt,\n\t\tsource_url: logoUrl,\n\t\tslug: logoSlug,\n\t\tmedia_details: logoMediaDetails,\n\t} = mediaItemData;\n\tconst logoLabel = logoMediaDetails?.sizes?.full?.file || logoSlug;\n\treturn (\n\t\t<ItemGroup { ...itemGroupProps } as=\"span\">\n\t\t\t<HStack justify=\"flex-start\" as=\"span\">\n\t\t\t\t<img src={ logoUrl } alt={ alt } />\n\t\t\t\t<FlexItem as=\"span\">\n\t\t\t\t\t<Truncate\n\t\t\t\t\t\tnumberOfLines={ 1 }\n\t\t\t\t\t\tclassName=\"block-library-site-logo__inspector-media-replace-title\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ logoLabel }\n\t\t\t\t\t</Truncate>\n\t\t\t\t</FlexItem>\n\t\t\t</HStack>\n\t\t</ItemGroup>\n\t);\n};\n\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width, shouldSyncIcon } = attributes;\n\tconst ref = useRef();\n\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tsiteIconId,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } =\n\t\t\tselect( coreStore );\n\t\tconst _canUserEdit = canUser( 'update', 'settings' );\n\t\tconst siteSettings = _canUserEdit\n\t\t\t? getEditedEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogoId = _canUserEdit\n\t\t\t? siteSettings?.site_logo\n\t\t\t: siteData?.site_logo;\n\t\tconst _siteIconId = siteSettings?.site_icon;\n\t\tconst mediaItem =\n\t\t\t_siteLogoId &&\n\t\t\tselect( coreStore ).getMedia( _siteLogoId, {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\tconst _isRequestingMediaItem =\n\t\t\t_siteLogoId &&\n\t\t\t! select( coreStore ).hasFinishedResolution( 'getMedia', [\n\t\t\t\t_siteLogoId,\n\t\t\t\t{ context: 'view' },\n\t\t\t] );\n\n\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.home,\n\t\t\tmediaItemData: mediaItem,\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t\tsiteIconId: _siteIconId,\n\t\t};\n\t}, [] );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\n\tconst setLogo = ( newValue, shouldForceSync = false ) => {\n\t\t// `shouldForceSync` is used to force syncing when the attribute\n\t\t// may not have updated yet.\n\t\tif ( shouldSyncIcon || shouldForceSync ) {\n\t\t\tsetIcon( newValue );\n\t\t}\n\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\t};\n\n\tconst setIcon = ( newValue ) =>\n\t\t// The new value needs to be `null` to reset the Site Icon.\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_icon: newValue ?? null,\n\t\t} );\n\n\tconst { alt_text: alt, source_url: logoUrl } = mediaItemData ?? {};\n\n\tconst onInitialSelectLogo = ( media ) => {\n\t\t// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no\n\t\t// site icon, automatically sync the logo to the icon.\n\t\tif ( shouldSyncIcon === undefined ) {\n\t\t\tconst shouldForceSync = ! siteIconId;\n\t\t\tsetAttributes( { shouldSyncIcon: shouldForceSync } );\n\n\t\t\t// Because we cannot rely on the `shouldSyncIcon` attribute to have updated by\n\t\t\t// the time `setLogo` is called, pass an argument to force the syncing.\n\t\t\tonSelectLogo( media, shouldForceSync );\n\t\t\treturn;\n\t\t}\n\n\t\tonSelectLogo( media );\n\t};\n\n\tconst onSelectLogo = ( media, shouldForceSync = false ) => {\n\t\tif ( ! media ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! media.id && media.url ) {\n\t\t\t// This is a temporary blob image.\n\t\t\tsetLogo( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id, shouldForceSync );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t};\n\n\tconst onFilesDrop = ( filesList ) => {\n\t\tgetSettings().mediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonInitialSelectLogo( image );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst mediaReplaceFlowProps = {\n\t\tmediaURL: logoUrl,\n\t\tonSelect: onSelectLogo,\n\t\tonError: onUploadError,\n\t\tonRemoveLogo,\n\t};\n\tconst controls = canUserEdit && logoUrl && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<SiteLogoReplaceFlow { ...mediaReplaceFlowProps } />\n\t\t</BlockControls>\n\t);\n\n\tlet logoImage;\n\tconst isLoading = siteLogoId === undefined || isRequestingMediaItem;\n\tif ( isLoading ) {\n\t\tlogoImage = <Spinner />;\n\t}\n\tif ( !! logoUrl ) {\n\t\tlogoImage = (\n\t\t\t<SiteLogo\n\t\t\t\talt={ alt }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tclassName={ className }\n\t\t\t\tcontainerRef={ ref }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tlogoUrl={ logoUrl }\n\t\t\t\tsetLogo={ setLogo }\n\t\t\t\tlogoId={ mediaItemData?.id || siteLogoId }\n\t\t\t\tsiteUrl={ url }\n\t\t\t\tsetIcon={ setIcon }\n\t\t\t\ticonId={ siteIconId }\n\t\t\t\tcanUserEdit={ canUserEdit }\n\t\t\t/>\n\t\t);\n\t}\n\tconst placeholder = ( content ) => {\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tpreview={ logoImage }\n\t\t\t\twithIllustration={ true }\n\t\t\t\tstyle={ {\n\t\t\t\t\twidth,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst classes = classnames( className, {\n\t\t'is-default-size': ! width,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tref,\n\t\tclassName: classes,\n\t} );\n\n\tconst label = __( 'Add a site logo' );\n\n\tconst mediaInspectorPanel = ( canUserEdit || logoUrl ) && (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Media' ) }>\n\t\t\t\t<div className=\"block-library-site-logo__inspector-media-replace-container\">\n\t\t\t\t\t{ ! canUserEdit && !! logoUrl && (\n\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\tmediaItemData={ mediaItemData }\n\t\t\t\t\t\t\titemGroupProps={ {\n\t\t\t\t\t\t\t\tisBordered: true,\n\t\t\t\t\t\t\t\tclassName:\n\t\t\t\t\t\t\t\t\t'block-library-site-logo__inspector-readonly-logo-preview',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && !! logoUrl && (\n\t\t\t\t\t\t<SiteLogoReplaceFlow\n\t\t\t\t\t\t\t{ ...mediaReplaceFlowProps }\n\t\t\t\t\t\t\tname={\n\t\t\t\t\t\t\t\t<InspectorLogoPreview\n\t\t\t\t\t\t\t\t\tmediaItemData={ mediaItemData }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpopoverProps={ {} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ canUserEdit && ! logoUrl && (\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<div className=\"block-library-site-logo__inspector-upload-container\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ isLoading ? (\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) : (\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Add media' )\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onFilesDrop } />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t{ mediaInspectorPanel }\n\t\t\t{ !! logoUrl && logoImage }\n\t\t\t{ ! logoUrl && ! canUserEdit && (\n\t\t\t\t<Placeholder className=\"site-logo_placeholder\">\n\t\t\t\t\t{ !! isLoading && (\n\t\t\t\t\t\t<span className=\"components-placeholder__preview\">\n\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t\t{ ! logoUrl && canUserEdit && (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\tonSelect={ onInitialSelectLogo }\n\t\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\tmediaLibraryButton={ ( { open } ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\tshowTooltip\n\t\t\t\t\t\t\t\ttooltipPosition=\"top center\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\topen();\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} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAMA,IAAAG,KAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAgBA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AAWA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AAKA,IAAAW,eAAA,GAAAZ,sBAAA,CAAAC,OAAA;AAKA,IAAAY,UAAA,GAAAZ,OAAA;AAzDA;AACA;AACA;;AAGA;AACA;AACA;;AA0CA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAMa,mBAAmB,GAAG,CAAE,OAAO,CAAE;AACvC,MAAMC,mBAAmB,GAAG,SAAS;AAErC,MAAMC,QAAQ,GAAGA,CAAE;EAClBC,GAAG;EACHC,UAAU,EAAE;IAAEC,KAAK;IAAEC,KAAK;IAAEC,MAAM;IAAEC,MAAM;IAAEC,UAAU;IAAEC;EAAe,CAAC;EACxEC,YAAY;EACZC,UAAU;EACVC,aAAa;EACbC,OAAO;EACPC,OAAO;EACPC,OAAO;EACPC,MAAM;EACNC,MAAM;EACNC,OAAO;EACPC;AACD,CAAC,KAAM;EACN,MAAMC,WAAW,GAAG,IAAAC,uBAAc,EAAEX,YAAY,EAAE,CAAEN,KAAK,CAAG,CAAC;EAC7D,MAAMkB,eAAe,GAAG,IAAAC,yBAAgB,EAAE,QAAS,CAAC;EACpD,MAAMC,aAAa,GAAG,CAAE,MAAM,EAAE,MAAM,CAAE,CAACC,QAAQ,CAAErB,KAAM,CAAC;EAC1D,MAAMsB,WAAW,GAAG,CAAEF,aAAa,IAAIF,eAAe;EACtD,MAAM,CAAE;IAAEK,YAAY;IAAEC;EAAc,CAAC,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAE,CAAC,CAAE,CAAC;EAC1E,MAAM,CAAEC,cAAc,EAAEC,iBAAiB,CAAE,GAAG,IAAAF,iBAAQ,EAAE,KAAM,CAAC;EAC/D,MAAM;IAAEG;EAAgB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,kBAAiB,CAAC;EAC3D,MAAMC,OAAO,GAAG,IAAAC,mBAAU,EAAE,kBAAkB,EAAE;IAC/C,cAAc,EAAE,IAAAC,eAAS,EAAExB,OAAQ;EACpC,CAAE,CAAC;EACH,MAAM;IAAEyB,YAAY;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAClE,MAAMC,QAAQ,GAAGD,MAAM,CAAER,kBAAiB,CAAC,CAACU,WAAW,CAAC,CAAC;IACzD,MAAMC,YAAY,GAAGH,MAAM,CAAEI,eAAU,CAAC,CAACC,eAAe,CACvD,MAAM,EACN,gBACD,CAAC;IACD,OAAO;MACNP,KAAK,EAAEK,YAAY,EAAEG,IAAI;MACzBV,YAAY,EAAEK,QAAQ,CAACL,YAAY;MACnCC,QAAQ,EAAEI,QAAQ,CAACJ;IACpB,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EAEP,IAAAU,kBAAS,EAAE,MAAM;IAChB;IACA;IACA;IACA,IAAKzC,cAAc,IAAIO,MAAM,KAAKC,MAAM,EAAG;MAC1CL,aAAa,CAAE;QAAEH,cAAc,EAAE;MAAM,CAAE,CAAC;IAC3C;EACD,CAAC,EAAE,EAAG,CAAC;EAEP,IAAAyC,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAEvC,UAAU,EAAG;MACnBqB,iBAAiB,CAAE,KAAM,CAAC;IAC3B;EACD,CAAC,EAAE,CAAErB,UAAU,CAAG,CAAC;EAEnB,SAASwC,aAAaA,CAAA,EAAG;IACxBlB,eAAe,CAAE,KAAM,CAAC;EACzB;EAEA,SAASmB,YAAYA,CAAA,EAAG;IACvBnB,eAAe,CAAE,IAAK,CAAC;EACxB;EAEA,MAAMoB,GAAG,GACR,IAAAC,MAAA,CAAAC,aAAA;IACCC,SAAS,EAAC,aAAa;IACvBC,GAAG,EAAG3C,OAAS;IACfZ,GAAG,EAAGA,GAAK;IACXwD,MAAM,EAAKC,KAAK,IAAM;MACrB9B,cAAc,CAAE;QACfF,YAAY,EAAEgC,KAAK,CAACC,MAAM,CAACjC,YAAY;QACvCC,aAAa,EAAE+B,KAAK,CAACC,MAAM,CAAChC;MAC7B,CAAE,CAAC;IACJ;EAAG,CACH,CACD;EAED,IAAIiC,UAAU,GAAGR,GAAG;;EAEpB;EACA;EACA,IAAK9C,MAAM,EAAG;IACbsD,UAAU,GACT;IACA,IAAAP,MAAA,CAAAC,aAAA;MACCO,IAAI,EAAG/C,OAAS;MAChByC,SAAS,EAAGpB,OAAS;MACrB2B,GAAG,EAAC,MAAM;MACVtB,KAAK,EAAGA,KAAO;MACfuB,OAAO,EAAKL,KAAK,IAAMA,KAAK,CAACM,cAAc,CAAC;IAAG,GAE7CZ,GACA;IACH,0GACA;EACF;EAEA,IAAIa,yBAAyB;EAE7B,IAAK9C,WAAW,IAAIO,YAAY,IAAIC,aAAa,EAAG;IACnD,MAAMuC,cAAc,GAAGxC,YAAY,GAAGP,WAAW;IACjD8C,yBAAyB,GAAGC,cAAc,GAAG/C,WAAW,GAAGO,YAAY;EACxE;EAEA,IAAK,CAAED,WAAW,IAAI,CAAEwC,yBAAyB,EAAG;IACnD,OAAO,IAAAZ,MAAA,CAAAC,aAAA;MAAKa,KAAK,EAAG;QAAE/D,KAAK;QAAEC;MAAO;IAAG,GAAGuD,UAAiB,CAAC;EAC7D;;EAEA;EACA;EACA,MAAMQ,YAAY,GAAG,GAAG;EAExB,MAAMC,YAAY,GAAGjE,KAAK,IAAIgE,YAAY;EAC1C,MAAME,KAAK,GAAG5C,YAAY,GAAGC,aAAa;EAC1C,MAAM4C,aAAa,GAAGF,YAAY,GAAGC,KAAK;EAC1C,MAAME,QAAQ,GACb9C,YAAY,GAAGC,aAAa,GAAG8C,mBAAQ,GAAGC,IAAI,CAACC,IAAI,CAAEF,mBAAQ,GAAGH,KAAM,CAAC;EACxE,MAAMM,SAAS,GACdjD,aAAa,GAAGD,YAAY,GAAG+C,mBAAQ,GAAGC,IAAI,CAACC,IAAI,CAAEF,mBAAQ,GAAGH,KAAM,CAAC;;EAExE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMO,cAAc,GAAGtC,QAAQ,GAAG,GAAG;EAErC,IAAIuC,eAAe,GAAG,KAAK;EAC3B,IAAIC,cAAc,GAAG,KAAK;;EAE1B;EACA;EACA,IAAK5E,KAAK,KAAK,QAAQ,EAAG;IACzB;IACA2E,eAAe,GAAG,IAAI;IACtBC,cAAc,GAAG,IAAI;EACtB,CAAC,MAAM,IAAK,IAAAC,WAAK,EAAC,CAAC,EAAG;IACrB;IACA;IACA;IACA,IAAK7E,KAAK,KAAK,MAAM,EAAG;MACvB2E,eAAe,GAAG,IAAI;IACvB,CAAC,MAAM;MACNC,cAAc,GAAG,IAAI;IACtB;EACD,CAAC,MAAM;IACN;IACA;IACA,IAAK5E,KAAK,KAAK,OAAO,EAAG;MACxB4E,cAAc,GAAG,IAAI;IACtB,CAAC,MAAM;MACND,eAAe,GAAG,IAAI;IACvB;EACD;EACA;;EAEA,MAAMG,YAAY,GACjBlE,MAAM,IAAIW,YAAY,IAAIC,aAAa,IAAIW,YAAY;EAExD,MAAM4C,OAAO,GACZD,YAAY,IAAInD,cAAc,GAC7B,IAAAuB,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAA4F,yBAAW;IACXC,EAAE,EAAGrE,MAAQ;IACbsE,GAAG,EAAGxE,OAAS;IACfT,KAAK,EAAGiE,YAAc;IACtBhE,MAAM,EAAGkE,aAAe;IACxBpD,WAAW,EAAGA,WAAa;IAC3BQ,aAAa,EAAGA,aAAe;IAC/BD,YAAY,EAAGA,YAAc;IAC7B4D,WAAW,EAAKC,eAAe,IAAM;MACpC3E,OAAO,CAAE2E,eAAe,CAACH,EAAG,CAAC;IAC9B,CAAG;IACHI,eAAe,EAAGA,CAAA,KAAM;MACvBzD,iBAAiB,CAAE,KAAM,CAAC;IAC3B;EAAG,CACH,CAAC,GAEF,IAAAsB,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAoG,YAAY;IACZC,IAAI,EAAG;MACNtF,KAAK,EAAEiE,YAAY;MACnBhE,MAAM,EAAEkE;IACT,CAAG;IACHoB,UAAU,EAAGjF,UAAY;IACzB8D,QAAQ,EAAGA,QAAU;IACrBjC,QAAQ,EAAGsC,cAAgB;IAC3BD,SAAS,EAAGA,SAAW;IACvBgB,SAAS,EAAGf,cAAc,GAAGP,KAAO;IACpCuB,eAAe;IACfC,MAAM,EAAG;MACRC,GAAG,EAAE,KAAK;MACVC,KAAK,EAAElB,eAAe;MACtBmB,MAAM,EAAE,IAAI;MACZC,IAAI,EAAEnB;IACP,CAAG;IACH7B,aAAa,EAAGA,aAAe;IAC/BC,YAAY,EAAGA,CAAEO,KAAK,EAAEyC,SAAS,EAAEC,GAAG,EAAEC,KAAK,KAAM;MAClDlD,YAAY,CAAC,CAAC;MACdxC,aAAa,CAAE;QACdP,KAAK,EAAEkG,QAAQ,CAAEjC,YAAY,GAAGgC,KAAK,CAACjG,KAAK,EAAE,EAAG,CAAC;QACjDC,MAAM,EAAEiG,QAAQ,CAAE/B,aAAa,GAAG8B,KAAK,CAAChG,MAAM,EAAE,EAAG;MACpD,CAAE,CAAC;IACJ;EAAG,GAEDuD,UACW,CACd;;EAEF;EACA;EACA,MAAM2C,eAAe,GAAG,CAAEC,MAAM,EAAEC,sCAAsC;EAExE,MAAMC,mBAAmB,GAAGH,eAAe,GACxCzF,OAAO,GAAG,+BAA+B,GACzCA,OAAO,GAAG,0DAA0D;EAEvE,MAAM6F,oBAAoB,GAAG,IAAAC,iCAAwB,EACpD,IAAAC,QAAE,EACD,kMACD,CAAC,EACD;IACCC,CAAC;IACA;IACA,IAAAzD,MAAA,CAAAC,aAAA;MACCO,IAAI,EAAG6C,mBAAqB;MAC5B/C,MAAM,EAAC,QAAQ;MACfG,GAAG,EAAC;IAAqB,CACzB;EAEH,CACD,CAAC;EAED,OACC,IAAAT,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA0D,QAAA,QACC,IAAA1D,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAAyH,iBAAiB,QACjB,IAAA3D,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAA4H,SAAS;IAACzE,KAAK,EAAG,IAAAqE,QAAE,EAAE,UAAW;EAAG,GACpC,IAAAxD,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAA6H,YAAY;IACZC,uBAAuB;IACvBC,qBAAqB;IACrBC,KAAK,EAAG,IAAAR,QAAE,EAAE,aAAc,CAAG;IAC7BS,QAAQ,EAAKC,QAAQ,IACpB5G,aAAa,CAAE;MAAEP,KAAK,EAAEmH;IAAS,CAAE,CACnC;IACDC,GAAG,EAAGhD,QAAU;IAChBiD,GAAG,EAAG5C,cAAgB;IACtB6C,eAAe,EAAGhD,IAAI,CAAC8C,GAAG,CACzBpD,YAAY,EACZS,cACD,CAAG;IACH8C,KAAK,EAAGvH,KAAK,IAAI,EAAI;IACrBwH,QAAQ,EAAG,CAAEnG;EAAa,CAC1B,CAAC,EACF,IAAA4B,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAwI,aAAa;IACbV,uBAAuB;IACvBE,KAAK,EAAG,IAAAR,QAAE,EAAE,oBAAqB,CAAG;IACpCS,QAAQ,EAAGA,CAAA,KAAM3G,aAAa,CAAE;MAAEL,MAAM,EAAE,CAAEA;IAAO,CAAE,CAAG;IACxDwH,OAAO,EAAGxH;EAAQ,CAClB,CAAC,EACAA,MAAM,IACP,IAAA+C,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA0D,QAAA,QACC,IAAA1D,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAwI,aAAa;IACbV,uBAAuB;IACvBE,KAAK,EAAG,IAAAR,QAAE,EAAE,iBAAkB,CAAG;IACjCS,QAAQ,EAAKK,KAAK,IACjBhH,aAAa,CAAE;MACdJ,UAAU,EAAEoH,KAAK,GAAG,QAAQ,GAAG;IAChC,CAAE,CACF;IACDG,OAAO,EAAGvH,UAAU,KAAK;EAAU,CACnC,CACA,CACF,EACCW,WAAW,IACZ,IAAAmC,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAA0D,QAAA,QACC,IAAA1D,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAwI,aAAa;IACbV,uBAAuB;IACvBE,KAAK,EAAG,IAAAR,QAAE,EAAE,kBAAmB,CAAG;IAClCS,QAAQ,EAAKK,KAAK,IAAM;MACvBhH,aAAa,CAAE;QAAEH,cAAc,EAAEmH;MAAM,CAAE,CAAC;MAC1C1G,OAAO,CAAE0G,KAAK,GAAG5G,MAAM,GAAGgH,SAAU,CAAC;IACtC,CAAG;IACHD,OAAO,EAAG,CAAC,CAAEtH,cAAgB;IAC7BwH,IAAI,EAAGrB;EAAsB,CAC7B,CACA,CAEO,CACO,CAAC,EACpB,IAAAtD,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAA0I,aAAa;IAACC,KAAK,EAAC;EAAO,GACzBjD,YAAY,IAAI,CAAEnD,cAAc,IACjC,IAAAuB,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAA8I,aAAa;IACbpE,OAAO,EAAGA,CAAA,KAAMhC,iBAAiB,CAAE,IAAK,CAAG;IAC3CqG,IAAI,EAAGC,WAAM;IACbhB,KAAK,EAAG,IAAAR,QAAE,EAAE,MAAO;EAAG,CACtB,CAEY,CAAC,EACd3B,OACD,CAAC;AAEL,CAAC;;AAED;AACA;AACA,SAASoD,mBAAmBA,CAAE;EAAEC,YAAY;EAAE,GAAGC;AAAkB,CAAC,EAAG;EACtE,OACC,IAAAnF,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAAkJ,gBAAgB;IAAA,GACXD,iBAAiB;IACtBE,YAAY,EAAG5I,mBAAqB;IACpC6I,MAAM,EAAG5I;EAAqB,GAE9B,IAAAsD,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAuJ,QAAQ;IAAC7E,OAAO,EAAGwE;EAAc,GAAG,IAAA1B,QAAE,EAAE,OAAQ,CAAa,CAC7C,CAAC;AAErB;AAEA,MAAMgC,oBAAoB,GAAGA,CAAE;EAAEC,aAAa,GAAG,CAAC,CAAC;EAAEC;AAAe,CAAC,KAAM;EAC1E,MAAM;IACLC,QAAQ,EAAE/I,GAAG;IACbgJ,UAAU,EAAEpI,OAAO;IACnBqI,IAAI,EAAEC,QAAQ;IACdC,aAAa,EAAEC;EAChB,CAAC,GAAGP,aAAa;EACjB,MAAMQ,SAAS,GAAGD,gBAAgB,EAAEE,KAAK,EAAEC,IAAI,EAAEC,IAAI,IAAIN,QAAQ;EACjE,OACC,IAAA9F,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAqK,uBAAS;IAAA,GAAMX,cAAc;IAAGY,EAAE,EAAC;EAAM,GACzC,IAAAtG,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAuK,oBAAM;IAACC,OAAO,EAAC,YAAY;IAACF,EAAE,EAAC;EAAM,GACrC,IAAAtG,MAAA,CAAAC,aAAA;IAAKE,GAAG,EAAG3C,OAAS;IAACZ,GAAG,EAAGA;EAAK,CAAE,CAAC,EACnC,IAAAoD,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAyK,QAAQ;IAACH,EAAE,EAAC;EAAM,GAClB,IAAAtG,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAA0K,sBAAQ;IACRC,aAAa,EAAG,CAAG;IACnBzG,SAAS,EAAC;EAAwD,GAEhE+F,SACO,CACD,CACH,CACE,CAAC;AAEd,CAAC;AAEc,SAASW,QAAQA,CAAE;EACjC/J,UAAU;EACVqD,SAAS;EACT5C,aAAa;EACbD;AACD,CAAC,EAAG;EACH,MAAM;IAAEN,KAAK;IAAEI;EAAe,CAAC,GAAGN,UAAU;EAC5C,MAAMgK,GAAG,GAAG,IAAAC,eAAM,EAAC,CAAC;EAEpB,MAAM;IACLC,UAAU;IACVlJ,WAAW;IACXmE,GAAG;IACHgF,UAAU;IACVvB,aAAa;IACbwB;EACD,CAAC,GAAG,IAAA7H,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MAAE6H,OAAO;MAAExH,eAAe;MAAEyH;IAAsB,CAAC,GACxD9H,MAAM,CAAEI,eAAU,CAAC;IACpB,MAAM2H,YAAY,GAAGF,OAAO,CAAE,QAAQ,EAAE,UAAW,CAAC;IACpD,MAAMG,YAAY,GAAGD,YAAY,GAC9BD,qBAAqB,CAAE,MAAM,EAAE,MAAO,CAAC,GACvCzC,SAAS;IACZ,MAAM4C,QAAQ,GAAG5H,eAAe,CAAE,MAAM,EAAE,gBAAiB,CAAC;IAC5D,MAAM6H,WAAW,GAAGH,YAAY,GAC7BC,YAAY,EAAEG,SAAS,GACvBF,QAAQ,EAAEE,SAAS;IACtB,MAAMC,WAAW,GAAGJ,YAAY,EAAEK,SAAS;IAC3C,MAAMC,SAAS,GACdJ,WAAW,IACXlI,MAAM,CAAEI,eAAU,CAAC,CAACmI,QAAQ,CAAEL,WAAW,EAAE;MAC1CM,OAAO,EAAE;IACV,CAAE,CAAC;IACJ,MAAMC,sBAAsB,GAC3BP,WAAW,IACX,CAAElI,MAAM,CAAEI,eAAU,CAAC,CAACsI,qBAAqB,CAAE,UAAU,EAAE,CACxDR,WAAW,EACX;MAAEM,OAAO,EAAE;IAAO,CAAC,CAClB,CAAC;IAEJ,OAAO;MACNd,UAAU,EAAEQ,WAAW;MACvB1J,WAAW,EAAEuJ,YAAY;MACzBpF,GAAG,EAAEsF,QAAQ,EAAEU,IAAI;MACnBvC,aAAa,EAAEkC,SAAS;MACxBV,qBAAqB,EAAEa,sBAAsB;MAC7Cd,UAAU,EAAES;IACb,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAM;IAAElI;EAAY,CAAC,GAAG,IAAAH,eAAS,EAAEP,kBAAiB,CAAC;EAErD,MAAM;IAAEoJ;EAAiB,CAAC,GAAG,IAAArJ,iBAAW,EAAEa,eAAU,CAAC;EAErD,MAAMlC,OAAO,GAAGA,CAAE2K,QAAQ,EAAEC,eAAe,GAAG,KAAK,KAAM;IACxD;IACA;IACA,IAAKhL,cAAc,IAAIgL,eAAe,EAAG;MACxCvK,OAAO,CAAEsK,QAAS,CAAC;IACpB;IAEAD,gBAAgB,CAAE,MAAM,EAAE,MAAM,EAAEvD,SAAS,EAAE;MAC5C8C,SAAS,EAAEU;IACZ,CAAE,CAAC;EACJ,CAAC;EAED,MAAMtK,OAAO,GAAKsK,QAAQ;EACzB;EACAD,gBAAgB,CAAE,MAAM,EAAE,MAAM,EAAEvD,SAAS,EAAE;IAC5CgD,SAAS,EAAEQ,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI;EACxB,CAAE,CAAC;EAEJ,MAAM;IAAEvC,QAAQ,EAAE/I,GAAG;IAAEgJ,UAAU,EAAEpI;EAAQ,CAAC,GAAGiI,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,CAAC,CAAC;EAElE,MAAM2C,mBAAmB,GAAKC,KAAK,IAAM;IACxC;IACA;IACA,IAAKlL,cAAc,KAAKuH,SAAS,EAAG;MACnC,MAAMyD,eAAe,GAAG,CAAEnB,UAAU;MACpC1J,aAAa,CAAE;QAAEH,cAAc,EAAEgL;MAAgB,CAAE,CAAC;;MAEpD;MACA;MACAG,YAAY,CAAED,KAAK,EAAEF,eAAgB,CAAC;MACtC;IACD;IAEAG,YAAY,CAAED,KAAM,CAAC;EACtB,CAAC;EAED,MAAMC,YAAY,GAAGA,CAAED,KAAK,EAAEF,eAAe,GAAG,KAAK,KAAM;IAC1D,IAAK,CAAEE,KAAK,EAAG;MACd;IACD;IAEA,IAAK,CAAEA,KAAK,CAACtG,EAAE,IAAIsG,KAAK,CAACrG,GAAG,EAAG;MAC9B;MACAzE,OAAO,CAAEmH,SAAU,CAAC;MACpB;IACD;IAEAnH,OAAO,CAAE8K,KAAK,CAACtG,EAAE,EAAEoG,eAAgB,CAAC;EACrC,CAAC;EAED,MAAMjD,YAAY,GAAGA,CAAA,KAAM;IAC1B3H,OAAO,CAAE,IAAK,CAAC;IACfD,aAAa,CAAE;MAAEP,KAAK,EAAE2H;IAAU,CAAE,CAAC;EACtC,CAAC;EAED,MAAM;IAAE6D;EAAkB,CAAC,GAAG,IAAA3J,iBAAW,EAAE4J,cAAa,CAAC;EACzD,MAAMC,aAAa,GAAKC,OAAO,IAAM;IACpCH,iBAAiB,CAAEG,OAAO,EAAE;MAAEC,IAAI,EAAE;IAAW,CAAE,CAAC;EACnD,CAAC;EAED,MAAMC,WAAW,GAAKC,SAAS,IAAM;IACpCtJ,WAAW,CAAC,CAAC,CAACuJ,WAAW,CAAE;MAC1BzD,YAAY,EAAE5I,mBAAmB;MACjCoM,SAAS;MACTE,YAAYA,CAAE,CAAEC,KAAK,CAAE,EAAG;QACzB,IAAK,IAAAhK,eAAS,EAAEgK,KAAK,EAAEhH,GAAI,CAAC,EAAG;UAC9B;QACD;QACAoG,mBAAmB,CAAEY,KAAM,CAAC;MAC7B,CAAC;MACDC,OAAO,EAAER;IACV,CAAE,CAAC;EACJ,CAAC;EAED,MAAMS,qBAAqB,GAAG;IAC7BC,QAAQ,EAAE3L,OAAO;IACjB4L,QAAQ,EAAEd,YAAY;IACtBW,OAAO,EAAER,aAAa;IACtBvD;EACD,CAAC;EACD,MAAMmE,QAAQ,GAAGxL,WAAW,IAAIL,OAAO,IACtC,IAAAwC,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAA0I,aAAa;IAACC,KAAK,EAAC;EAAO,GAC3B,IAAA7E,MAAA,CAAAC,aAAA,EAACgF,mBAAmB;IAAA,GAAMiE;EAAqB,CAAI,CACrC,CACf;EAED,IAAII,SAAS;EACb,MAAMC,SAAS,GAAGxC,UAAU,KAAKrC,SAAS,IAAIuC,qBAAqB;EACnE,IAAKsC,SAAS,EAAG;IAChBD,SAAS,GAAG,IAAAtJ,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAwN,OAAO,MAAE,CAAC;EACxB;EACA,IAAK,CAAC,CAAEhM,OAAO,EAAG;IACjB8L,SAAS,GACR,IAAAtJ,MAAA,CAAAC,aAAA,EAACtD,QAAQ;MACRC,GAAG,EAAGA,GAAK;MACXC,UAAU,EAAGA,UAAY;MACzBqD,SAAS,EAAGA,SAAW;MACvB9C,YAAY,EAAGyJ,GAAK;MACpBxJ,UAAU,EAAGA,UAAY;MACzBC,aAAa,EAAGA,aAAe;MAC/BE,OAAO,EAAGA,OAAS;MACnBD,OAAO,EAAGA,OAAS;MACnBG,MAAM,EAAG+H,aAAa,EAAE1D,EAAE,IAAIgF,UAAY;MAC1CtJ,OAAO,EAAGuE,GAAK;MACfpE,OAAO,EAAGA,OAAS;MACnBD,MAAM,EAAGqJ,UAAY;MACrBnJ,WAAW,EAAGA;IAAa,CAC3B,CACD;EACF;EACA,MAAM4L,WAAW,GAAKC,OAAO,IAAM;IAClC,MAAMC,oBAAoB,GAAG,IAAA5K,mBAAU,EACtC,gCAAgC,EAChCmB,SACD,CAAC;IAED,OACC,IAAAF,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAA4N,WAAW;MACX1J,SAAS,EAAGyJ,oBAAsB;MAClCE,OAAO,EAAGP,SAAW;MACrBQ,gBAAgB,EAAG,IAAM;MACzBhJ,KAAK,EAAG;QACP/D;MACD;IAAG,GAED2M,OACU,CAAC;EAEhB,CAAC;EAED,MAAM5K,OAAO,GAAG,IAAAC,mBAAU,EAAEmB,SAAS,EAAE;IACtC,iBAAiB,EAAE,CAAEnD;EACtB,CAAE,CAAC;EAEH,MAAMgN,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCnD,GAAG;IACH3G,SAAS,EAAEpB;EACZ,CAAE,CAAC;EAEH,MAAMkF,KAAK,GAAG,IAAAR,QAAE,EAAE,iBAAkB,CAAC;EAErC,MAAMyG,mBAAmB,GAAG,CAAEpM,WAAW,IAAIL,OAAO,KACnD,IAAAwC,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAAyH,iBAAiB,QACjB,IAAA3D,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAA4H,SAAS;IAACzE,KAAK,EAAG,IAAAqE,QAAE,EAAE,OAAQ;EAAG,GACjC,IAAAxD,MAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA4D,GACxE,CAAErC,WAAW,IAAI,CAAC,CAAEL,OAAO,IAC5B,IAAAwC,MAAA,CAAAC,aAAA,EAACuF,oBAAoB;IACpBC,aAAa,EAAGA,aAAe;IAC/BC,cAAc,EAAG;MAChBwE,UAAU,EAAE,IAAI;MAChBhK,SAAS,EACR;IACF;EAAG,CACH,CACD,EACCrC,WAAW,IAAI,CAAC,CAAEL,OAAO,IAC1B,IAAAwC,MAAA,CAAAC,aAAA,EAACgF,mBAAmB;IAAA,GACdiE,qBAAqB;IAC1BvJ,IAAI,EACH,IAAAK,MAAA,CAAAC,aAAA,EAACuF,oBAAoB;MACpBC,aAAa,EAAGA;IAAe,CAC/B,CACD;IACD0E,YAAY,EAAG,CAAC;EAAG,CACnB,CACD,EACCtM,WAAW,IAAI,CAAEL,OAAO,IACzB,IAAAwC,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAAkO,gBAAgB,QAChB,IAAApK,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAAmO,WAAW;IACXjB,QAAQ,EAAGhB,mBAAqB;IAChC/C,YAAY,EAAG5I,mBAAqB;IACpC6N,MAAM,EAAGA,CAAE;MAAEC;IAAK,CAAC,KAClB,IAAAvK,MAAA,CAAAC,aAAA;MAAKC,SAAS,EAAC;IAAqD,GACnE,IAAAF,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAwO,MAAM;MACN9J,OAAO,EAAG6J,IAAM;MAChBE,OAAO,EAAC;IAAW,GAEjBlB,SAAS,GACV,IAAAvJ,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAwN,OAAO,MAAE,CAAC,GAEX,IAAAhG,QAAE,EAAE,WAAY,CAEV,CAAC,EACT,IAAAxD,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAA0O,QAAQ;MAAC9B,WAAW,EAAGA;IAAa,CAAE,CACnC;EACH,CACH,CACgB,CAEf,CACK,CACO,CACnB;EAED,OACC,IAAA5I,MAAA,CAAAC,aAAA;IAAA,GAAU8J;EAAU,GACjBV,QAAQ,EACRY,mBAAmB,EACnB,CAAC,CAAEzM,OAAO,IAAI8L,SAAS,EACvB,CAAE9L,OAAO,IAAI,CAAEK,WAAW,IAC3B,IAAAmC,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAA4N,WAAW;IAAC1J,SAAS,EAAC;EAAuB,GAC3C,CAAC,CAAEqJ,SAAS,IACb,IAAAvJ,MAAA,CAAAC,aAAA;IAAMC,SAAS,EAAC;EAAiC,GAChD,IAAAF,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAwN,OAAO,MAAE,CACL,CAEK,CACb,EACC,CAAEhM,OAAO,IAAIK,WAAW,IACzB,IAAAmC,MAAA,CAAAC,aAAA,EAAC/D,YAAA,CAAAyO,gBAAgB;IAChBvB,QAAQ,EAAGhB,mBAAqB;IAChC9C,MAAM,EAAG5I,mBAAqB;IAC9B2I,YAAY,EAAG5I,mBAAqB;IACpCwM,OAAO,EAAGR,aAAe;IACzBgB,WAAW,EAAGA,WAAa;IAC3BmB,kBAAkB,EAAGA,CAAE;MAAEL;IAAK,CAAC,KAAM;MACpC,OACC,IAAAvK,MAAA,CAAAC,aAAA,EAACjE,WAAA,CAAAwO,MAAM;QACNzF,IAAI,EAAG8F,aAAQ;QACfJ,OAAO,EAAC,SAAS;QACjBzG,KAAK,EAAGA,KAAO;QACf8G,WAAW;QACXC,eAAe,EAAC,YAAY;QAC5BrK,OAAO,EAAGA,CAAA,KAAM;UACf6J,IAAI,CAAC,CAAC;QACP;MAAG,CACH,CAAC;IAEJ;EAAG,CACH,CAEE,CAAC;AAER"}
|
|
@@ -1,4 +1,70 @@
|
|
|
1
|
-
|
|
1
|
+
const isObject = obj => typeof obj === 'object' && !Array.isArray(obj) && obj !== null;
|
|
2
|
+
|
|
3
|
+
// v2: Migrate to a more condensed version of the 'content' attribute attribute.
|
|
4
|
+
const v2 = {
|
|
5
|
+
attributes: {
|
|
6
|
+
ref: {
|
|
7
|
+
type: 'number'
|
|
8
|
+
},
|
|
9
|
+
content: {
|
|
10
|
+
type: 'object'
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
supports: {
|
|
14
|
+
customClassName: false,
|
|
15
|
+
html: false,
|
|
16
|
+
inserter: false,
|
|
17
|
+
renaming: false
|
|
18
|
+
},
|
|
19
|
+
// Force this deprecation to run whenever there's a values sub-property that's an object.
|
|
20
|
+
//
|
|
21
|
+
// This could fail in the future if a block ever has binding to a `values` attribute.
|
|
22
|
+
// Some extra protection is added to ensure `values` is an object, but this only reduces
|
|
23
|
+
// the likelihood, it doesn't solve it completely.
|
|
24
|
+
isEligible({
|
|
25
|
+
content
|
|
26
|
+
}) {
|
|
27
|
+
return !!content && Object.keys(content).every(contentKey => content[contentKey].values && isObject(content[contentKey].values));
|
|
28
|
+
},
|
|
29
|
+
/*
|
|
30
|
+
* Old attribute format:
|
|
31
|
+
* content: {
|
|
32
|
+
* "V98q_x": {
|
|
33
|
+
* // The attribute values are now stored as a 'values' sub-property.
|
|
34
|
+
* values: { content: 'My content value' },
|
|
35
|
+
* // ... additional metadata, like the block name can be stored here.
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* New attribute format:
|
|
40
|
+
* content: {
|
|
41
|
+
* "V98q_x": {
|
|
42
|
+
* content: 'My content value',
|
|
43
|
+
* }
|
|
44
|
+
* }
|
|
45
|
+
*/
|
|
46
|
+
migrate(attributes) {
|
|
47
|
+
const {
|
|
48
|
+
content,
|
|
49
|
+
...retainedAttributes
|
|
50
|
+
} = attributes;
|
|
51
|
+
if (content && Object.keys(content).length) {
|
|
52
|
+
const updatedContent = {
|
|
53
|
+
...content
|
|
54
|
+
};
|
|
55
|
+
for (const contentKey in content) {
|
|
56
|
+
updatedContent[contentKey] = content[contentKey].values;
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
...retainedAttributes,
|
|
60
|
+
content: updatedContent
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
return attributes;
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// v1: Rename the `overrides` attribute to the `content` attribute.
|
|
2
68
|
const v1 = {
|
|
3
69
|
attributes: {
|
|
4
70
|
ref: {
|
|
@@ -25,16 +91,12 @@ const v1 = {
|
|
|
25
91
|
* overrides: {
|
|
26
92
|
* // An key is an id that represents a block.
|
|
27
93
|
* // The values are the attribute values of the block.
|
|
28
|
-
* "V98q_x": { content: '
|
|
94
|
+
* "V98q_x": { content: 'My content value' }
|
|
29
95
|
* }
|
|
30
96
|
*
|
|
31
97
|
* New attribute format:
|
|
32
98
|
* content: {
|
|
33
|
-
* "V98q_x": {
|
|
34
|
-
* // The attribute values are now stored as a 'values' sub-property.
|
|
35
|
-
* values: { content: 'dwefwefwefwe' },
|
|
36
|
-
* // ... additional metadata, like the block name can be stored here.
|
|
37
|
-
* }
|
|
99
|
+
* "V98q_x": { content: 'My content value' }
|
|
38
100
|
* }
|
|
39
101
|
*
|
|
40
102
|
*/
|
|
@@ -45,9 +107,7 @@ const v1 = {
|
|
|
45
107
|
} = attributes;
|
|
46
108
|
const content = {};
|
|
47
109
|
Object.keys(overrides).forEach(id => {
|
|
48
|
-
content[id] =
|
|
49
|
-
values: overrides[id]
|
|
50
|
-
};
|
|
110
|
+
content[id] = overrides[id];
|
|
51
111
|
});
|
|
52
112
|
return {
|
|
53
113
|
...retainedAttributes,
|
|
@@ -55,5 +115,5 @@ const v1 = {
|
|
|
55
115
|
};
|
|
56
116
|
}
|
|
57
117
|
};
|
|
58
|
-
export default [v1];
|
|
118
|
+
export default [v2, v1];
|
|
59
119
|
//# sourceMappingURL=deprecated.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["isObject","obj","Array","isArray","v2","attributes","ref","type","content","supports","customClassName","html","inserter","renaming","isEligible","Object","keys","every","contentKey","values","migrate","retainedAttributes","length","updatedContent","v1","overrides","forEach","id"],"sources":["@wordpress/block-library/src/block/deprecated.js"],"sourcesContent":["const isObject = ( obj ) =>\n\ttypeof obj === 'object' && ! Array.isArray( obj ) && obj !== null;\n\n// v2: Migrate to a more condensed version of the 'content' attribute attribute.\nconst v2 = {\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tcontent: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t\trenaming: false,\n\t},\n\t// Force this deprecation to run whenever there's a values sub-property that's an object.\n\t//\n\t// This could fail in the future if a block ever has binding to a `values` attribute.\n\t// Some extra protection is added to ensure `values` is an object, but this only reduces\n\t// the likelihood, it doesn't solve it completely.\n\tisEligible( { content } ) {\n\t\treturn (\n\t\t\t!! content &&\n\t\t\tObject.keys( content ).every(\n\t\t\t\t( contentKey ) =>\n\t\t\t\t\tcontent[ contentKey ].values &&\n\t\t\t\t\tisObject( content[ contentKey ].values )\n\t\t\t)\n\t\t);\n\t},\n\t/*\n\t * Old attribute format:\n\t * content: {\n\t * \"V98q_x\": {\n\t * \t \t\t// The attribute values are now stored as a 'values' sub-property.\n\t * values: { content: 'My content value' },\n\t * \t // ... additional metadata, like the block name can be stored here.\n\t * }\n\t * }\n\t *\n\t * New attribute format:\n\t * content: {\n\t * \"V98q_x\": {\n\t * content: 'My content value',\n\t * }\n\t * }\n\t */\n\tmigrate( attributes ) {\n\t\tconst { content, ...retainedAttributes } = attributes;\n\n\t\tif ( content && Object.keys( content ).length ) {\n\t\t\tconst updatedContent = { ...content };\n\n\t\t\tfor ( const contentKey in content ) {\n\t\t\t\tupdatedContent[ contentKey ] = content[ contentKey ].values;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...retainedAttributes,\n\t\t\t\tcontent: updatedContent,\n\t\t\t};\n\t\t}\n\n\t\treturn attributes;\n\t},\n};\n\n// v1: Rename the `overrides` attribute to the `content` attribute.\nconst v1 = {\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t\toverrides: {\n\t\t\ttype: 'object',\n\t\t},\n\t},\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t\trenaming: false,\n\t},\n\t// Force this deprecation to run whenever there's an `overrides` object.\n\tisEligible( { overrides } ) {\n\t\treturn !! overrides;\n\t},\n\t/*\n\t * Old attribute format:\n\t * overrides: {\n\t * // An key is an id that represents a block.\n\t * // The values are the attribute values of the block.\n\t * \"V98q_x\": { content: 'My content value' }\n\t * }\n\t *\n\t * New attribute format:\n\t * content: {\n\t * \"V98q_x\": { content: 'My content value' }\n\t * }\n\t *\n\t */\n\tmigrate( attributes ) {\n\t\tconst { overrides, ...retainedAttributes } = attributes;\n\n\t\tconst content = {};\n\n\t\tObject.keys( overrides ).forEach( ( id ) => {\n\t\t\tcontent[ id ] = overrides[ id ];\n\t\t} );\n\n\t\treturn {\n\t\t\t...retainedAttributes,\n\t\t\tcontent,\n\t\t};\n\t},\n};\n\nexport default [ v2, v1 ];\n"],"mappings":"AAAA,MAAMA,QAAQ,GAAKC,GAAG,IACrB,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAAEC,KAAK,CAACC,OAAO,CAAEF,GAAI,CAAC,IAAIA,GAAG,KAAK,IAAI;;AAElE;AACA,MAAMG,EAAE,GAAG;EACVC,UAAU,EAAE;IACXC,GAAG,EAAE;MACJC,IAAI,EAAE;IACP,CAAC;IACDC,OAAO,EAAE;MACRD,IAAI,EAAE;IACP;EACD,CAAC;EACDE,QAAQ,EAAE;IACTC,eAAe,EAAE,KAAK;IACtBC,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE;EACX,CAAC;EACD;EACA;EACA;EACA;EACA;EACAC,UAAUA,CAAE;IAAEN;EAAQ,CAAC,EAAG;IACzB,OACC,CAAC,CAAEA,OAAO,IACVO,MAAM,CAACC,IAAI,CAAER,OAAQ,CAAC,CAACS,KAAK,CACzBC,UAAU,IACXV,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAM,IAC5BnB,QAAQ,CAAEQ,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAO,CACzC,CAAC;EAEH,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCC,OAAOA,CAAEf,UAAU,EAAG;IACrB,MAAM;MAAEG,OAAO;MAAE,GAAGa;IAAmB,CAAC,GAAGhB,UAAU;IAErD,IAAKG,OAAO,IAAIO,MAAM,CAACC,IAAI,CAAER,OAAQ,CAAC,CAACc,MAAM,EAAG;MAC/C,MAAMC,cAAc,GAAG;QAAE,GAAGf;MAAQ,CAAC;MAErC,KAAM,MAAMU,UAAU,IAAIV,OAAO,EAAG;QACnCe,cAAc,CAAEL,UAAU,CAAE,GAAGV,OAAO,CAAEU,UAAU,CAAE,CAACC,MAAM;MAC5D;MAEA,OAAO;QACN,GAAGE,kBAAkB;QACrBb,OAAO,EAAEe;MACV,CAAC;IACF;IAEA,OAAOlB,UAAU;EAClB;AACD,CAAC;;AAED;AACA,MAAMmB,EAAE,GAAG;EACVnB,UAAU,EAAE;IACXC,GAAG,EAAE;MACJC,IAAI,EAAE;IACP,CAAC;IACDkB,SAAS,EAAE;MACVlB,IAAI,EAAE;IACP;EACD,CAAC;EACDE,QAAQ,EAAE;IACTC,eAAe,EAAE,KAAK;IACtBC,IAAI,EAAE,KAAK;IACXC,QAAQ,EAAE,KAAK;IACfC,QAAQ,EAAE;EACX,CAAC;EACD;EACAC,UAAUA,CAAE;IAAEW;EAAU,CAAC,EAAG;IAC3B,OAAO,CAAC,CAAEA,SAAS;EACpB,CAAC;EACD;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACCL,OAAOA,CAAEf,UAAU,EAAG;IACrB,MAAM;MAAEoB,SAAS;MAAE,GAAGJ;IAAmB,CAAC,GAAGhB,UAAU;IAEvD,MAAMG,OAAO,GAAG,CAAC,CAAC;IAElBO,MAAM,CAACC,IAAI,CAAES,SAAU,CAAC,CAACC,OAAO,CAAIC,EAAE,IAAM;MAC3CnB,OAAO,CAAEmB,EAAE,CAAE,GAAGF,SAAS,CAAEE,EAAE,CAAE;IAChC,CAAE,CAAC;IAEH,OAAO;MACN,GAAGN,kBAAkB;MACrBb;IACD,CAAC;EACF;AACD,CAAC;AAED,eAAe,CAAEJ,EAAE,EAAEoB,EAAE,CAAE"}
|
|
@@ -29,6 +29,23 @@ const {
|
|
|
29
29
|
PARTIAL_SYNCING_SUPPORTED_BLOCKS
|
|
30
30
|
} = unlock(patternsPrivateApis);
|
|
31
31
|
const fullAlignments = ['full', 'wide', 'left', 'right'];
|
|
32
|
+
function getLegacyIdMap(blocks, content, nameCount = {}) {
|
|
33
|
+
let idToClientIdMap = {};
|
|
34
|
+
for (const block of blocks) {
|
|
35
|
+
if (block?.innerBlocks?.length) {
|
|
36
|
+
idToClientIdMap = {
|
|
37
|
+
...idToClientIdMap,
|
|
38
|
+
...getLegacyIdMap(block.innerBlocks, content, nameCount)
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const id = block.attributes.metadata?.id;
|
|
42
|
+
const clientId = block.clientId;
|
|
43
|
+
if (id && content?.[id]) {
|
|
44
|
+
idToClientIdMap[clientId] = id;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return idToClientIdMap;
|
|
48
|
+
}
|
|
32
49
|
const useInferredLayout = (blocks, parentLayout) => {
|
|
33
50
|
const initialInferredAlignmentRef = useRef();
|
|
34
51
|
return useMemo(() => {
|
|
@@ -65,23 +82,26 @@ function hasOverridableBlocks(blocks) {
|
|
|
65
82
|
function getOverridableAttributes(block) {
|
|
66
83
|
return Object.entries(block.attributes.metadata.bindings).filter(([, binding]) => binding.source === 'core/pattern-overrides').map(([attributeKey]) => attributeKey);
|
|
67
84
|
}
|
|
68
|
-
function applyInitialContentValuesToInnerBlocks(blocks, content = {}, defaultValues) {
|
|
85
|
+
function applyInitialContentValuesToInnerBlocks(blocks, content = {}, defaultValues, legacyIdMap) {
|
|
69
86
|
return blocks.map(block => {
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
var _legacyIdMap$block$cl;
|
|
88
|
+
const innerBlocks = applyInitialContentValuesToInnerBlocks(block.innerBlocks, content, defaultValues, legacyIdMap);
|
|
89
|
+
const metadataName = (_legacyIdMap$block$cl = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl !== void 0 ? _legacyIdMap$block$cl : block.attributes.metadata?.name;
|
|
90
|
+
if (!metadataName || !hasOverridableAttributes(block)) {
|
|
91
|
+
return {
|
|
92
|
+
...block,
|
|
93
|
+
innerBlocks
|
|
94
|
+
};
|
|
95
|
+
}
|
|
76
96
|
const attributes = getOverridableAttributes(block);
|
|
77
97
|
const newAttributes = {
|
|
78
98
|
...block.attributes
|
|
79
99
|
};
|
|
80
100
|
for (const attributeKey of attributes) {
|
|
81
|
-
var _defaultValues$
|
|
82
|
-
(_defaultValues$
|
|
83
|
-
defaultValues[
|
|
84
|
-
const contentValues = content[
|
|
101
|
+
var _defaultValues$metada;
|
|
102
|
+
(_defaultValues$metada = defaultValues[metadataName]) !== null && _defaultValues$metada !== void 0 ? _defaultValues$metada : defaultValues[metadataName] = {};
|
|
103
|
+
defaultValues[metadataName][attributeKey] = block.attributes[attributeKey];
|
|
104
|
+
const contentValues = content[metadataName];
|
|
85
105
|
if (contentValues?.[attributeKey] !== undefined) {
|
|
86
106
|
newAttributes[attributeKey] = contentValues[attributeKey];
|
|
87
107
|
}
|
|
@@ -99,25 +119,27 @@ function isAttributeEqual(attribute1, attribute2) {
|
|
|
99
119
|
}
|
|
100
120
|
return attribute1 === attribute2;
|
|
101
121
|
}
|
|
102
|
-
function getContentValuesFromInnerBlocks(blocks, defaultValues) {
|
|
122
|
+
function getContentValuesFromInnerBlocks(blocks, defaultValues, legacyIdMap) {
|
|
103
123
|
/** @type {Record<string, { values: Record<string, unknown>}>} */
|
|
104
124
|
const content = {};
|
|
105
125
|
for (const block of blocks) {
|
|
126
|
+
var _legacyIdMap$block$cl2;
|
|
106
127
|
if (block.name === patternBlockName) continue;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
128
|
+
if (block.innerBlocks.length) {
|
|
129
|
+
Object.assign(content, getContentValuesFromInnerBlocks(block.innerBlocks, defaultValues, legacyIdMap));
|
|
130
|
+
}
|
|
131
|
+
const metadataName = (_legacyIdMap$block$cl2 = legacyIdMap?.[block.clientId]) !== null && _legacyIdMap$block$cl2 !== void 0 ? _legacyIdMap$block$cl2 : block.attributes.metadata?.name;
|
|
132
|
+
if (!metadataName || !hasOverridableAttributes(block)) {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
110
135
|
const attributes = getOverridableAttributes(block);
|
|
111
136
|
for (const attributeKey of attributes) {
|
|
112
|
-
if (!isAttributeEqual(block.attributes[attributeKey], defaultValues[
|
|
113
|
-
var _content$
|
|
114
|
-
(_content$
|
|
115
|
-
values: {},
|
|
116
|
-
blockName: block.name
|
|
117
|
-
};
|
|
137
|
+
if (!isAttributeEqual(block.attributes[attributeKey], defaultValues?.[metadataName]?.[attributeKey])) {
|
|
138
|
+
var _content$metadataName;
|
|
139
|
+
(_content$metadataName = content[metadataName]) !== null && _content$metadataName !== void 0 ? _content$metadataName : content[metadataName] = {};
|
|
118
140
|
// TODO: We need a way to represent `undefined` in the serialized overrides.
|
|
119
141
|
// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871
|
|
120
|
-
content[
|
|
142
|
+
content[metadataName][attributeKey] = block.attributes[attributeKey] === undefined ?
|
|
121
143
|
// TODO: We use an empty string to represent undefined for now until
|
|
122
144
|
// we support a richer format for overrides and the block binding API.
|
|
123
145
|
// Currently only the `linkTarget` attribute of `core/button` is affected.
|
|
@@ -210,16 +232,19 @@ export default function ReusableBlockEdit({
|
|
|
210
232
|
(_editedRecord$blocks$ = editedRecord.blocks?.map(block => cloneBlock(block))) !== null && _editedRecord$blocks$ !== void 0 ? _editedRecord$blocks$ : editedRecord.content && typeof editedRecord.content !== 'function' ? parse(editedRecord.content) : []
|
|
211
233
|
);
|
|
212
234
|
}, [editedRecord.blocks, editedRecord.content]);
|
|
235
|
+
const legacyIdMap = useRef({});
|
|
213
236
|
|
|
214
237
|
// Apply the initial overrides from the pattern block to the inner blocks.
|
|
215
238
|
useEffect(() => {
|
|
239
|
+
// Build a map of clientIds to the old nano id system to provide back compat.
|
|
240
|
+
legacyIdMap.current = getLegacyIdMap(initialBlocks, initialContent.current);
|
|
216
241
|
defaultContent.current = {};
|
|
217
242
|
const originalEditingMode = getBlockEditingMode(patternClientId);
|
|
218
243
|
// Replace the contents of the blocks with the overrides.
|
|
219
244
|
registry.batch(() => {
|
|
220
245
|
setBlockEditingMode(patternClientId, 'default');
|
|
221
246
|
syncDerivedUpdates(() => {
|
|
222
|
-
replaceInnerBlocks(patternClientId, applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current));
|
|
247
|
+
replaceInnerBlocks(patternClientId, applyInitialContentValuesToInnerBlocks(initialBlocks, initialContent.current, defaultContent.current, legacyIdMap.current));
|
|
223
248
|
});
|
|
224
249
|
setBlockEditingMode(patternClientId, originalEditingMode);
|
|
225
250
|
});
|
|
@@ -255,7 +280,7 @@ export default function ReusableBlockEdit({
|
|
|
255
280
|
prevBlocks = blocks;
|
|
256
281
|
syncDerivedUpdates(() => {
|
|
257
282
|
setAttributes({
|
|
258
|
-
content: getContentValuesFromInnerBlocks(blocks, defaultContent.current)
|
|
283
|
+
content: getContentValuesFromInnerBlocks(blocks, defaultContent.current, legacyIdMap.current)
|
|
259
284
|
});
|
|
260
285
|
});
|
|
261
286
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","RichTextData","name","patternBlockName","unlock","useLayoutClasses","PARTIAL_SYNCING_SUPPORTED_BLOCKS","fullAlignments","useInferredLayout","blocks","parentLayout","initialInferredAlignmentRef","length","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","block","includes","attributes","align","layout","hasOverridableAttributes","Object","keys","metadata","bindings","values","binding","source","hasOverridableBlocks","innerBlocks","getOverridableAttributes","entries","filter","map","attributeKey","applyInitialContentValuesToInnerBlocks","content","defaultValues","blockId","id","newAttributes","_defaultValues$blockI","contentValues","isAttributeEqual","attribute1","attribute2","toString","getContentValuesFromInnerBlocks","assign","_content$blockId","blockName","setBlockEditMode","setEditMode","mode","forEach","editMode","clientId","ReusableBlockEdit","ref","__unstableParentLayout","patternClientId","setAttributes","registry","hasAlreadyRendered","record","editedRecord","hasResolved","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","select","canUser","getBlocks","getSettings","_getBlockEditingMode","canEdit","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","originalEditingMode","batch","layoutClasses","blockProps","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","createElement","uniqueId","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { PARTIAL_SYNCING_SUPPORTED_BLOCKS } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableAttributes( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( hasOverridableAttributes( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues\n\t\t);\n\t\tconst blockId = block.attributes.metadata?.id;\n\t\tif ( ! hasOverridableAttributes( block ) || ! blockId )\n\t\t\treturn { ...block, innerBlocks };\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ blockId ] ??= {};\n\t\t\tdefaultValues[ blockId ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ blockId ]?.values;\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tObject.assign(\n\t\t\tcontent,\n\t\t\tgetContentValuesFromInnerBlocks( block.innerBlocks, defaultValues )\n\t\t);\n\t\tconst blockId = block.attributes.metadata?.id;\n\t\tif ( ! hasOverridableAttributes( block ) || ! blockId ) continue;\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues[ blockId ][ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ blockId ] ??= { values: {}, blockName: block.name };\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ blockId ].values[ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( hasOverridableAttributes( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' ? 'disabled' : undefined\n\t\t);\n\t}, [ editingMode, innerBlocks, setBlockEditingMode ] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasOverridableBlocks( innerBlocks ),\n\t\t[ innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tpatternClientId,\n\t\t\t\t\tapplyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\tdefaultContent.current\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [ syncDerivedUpdates, patternClientId, registry, setAttributes ] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( hasAlreadyRendered ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","useRegistry","useSelect","useDispatch","useRef","useMemo","useEffect","useEntityRecord","store","coreStore","Placeholder","Spinner","ToolbarButton","ToolbarGroup","__","useInnerBlocksProps","RecursionProvider","useHasRecursion","InnerBlocks","useBlockProps","Warning","privateApis","blockEditorPrivateApis","blockEditorStore","BlockControls","patternsPrivateApis","parse","cloneBlock","RichTextData","name","patternBlockName","unlock","useLayoutClasses","PARTIAL_SYNCING_SUPPORTED_BLOCKS","fullAlignments","getLegacyIdMap","blocks","content","nameCount","idToClientIdMap","block","innerBlocks","length","id","attributes","metadata","clientId","useInferredLayout","parentLayout","initialInferredAlignmentRef","alignment","current","undefined","isConstrained","type","hasFullAlignment","some","includes","align","layout","hasOverridableAttributes","Object","keys","bindings","values","binding","source","hasOverridableBlocks","getOverridableAttributes","entries","filter","map","attributeKey","applyInitialContentValuesToInnerBlocks","defaultValues","legacyIdMap","_legacyIdMap$block$cl","metadataName","newAttributes","_defaultValues$metada","contentValues","isAttributeEqual","attribute1","attribute2","toString","getContentValuesFromInnerBlocks","_legacyIdMap$block$cl2","assign","_content$metadataName","setBlockEditMode","setEditMode","mode","forEach","editMode","ReusableBlockEdit","ref","__unstableParentLayout","patternClientId","setAttributes","registry","hasAlreadyRendered","record","editedRecord","hasResolved","isMissing","initialContent","defaultContent","replaceInnerBlocks","__unstableMarkNextChangeAsNotPersistent","setBlockEditingMode","syncDerivedUpdates","userCanEdit","getBlockEditingMode","onNavigateToEntityRecord","editingMode","select","canUser","getBlocks","getSettings","_getBlockEditingMode","canEdit","canOverrideBlocks","initialBlocks","_editedRecord$blocks$","originalEditingMode","batch","layoutClasses","blockProps","className","innerBlocksProps","templateLock","renderAppender","ButtonBlockAppender","prevBlocks","subscribe","handleEditOriginal","postId","postType","resetContent","children","createElement","uniqueId","onClick","disabled","__experimentalIsFocusable"],"sources":["@wordpress/block-library/src/block/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRegistry, useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, useMemo, useEffect } from '@wordpress/element';\nimport { useEntityRecord, store as coreStore } from '@wordpress/core-data';\nimport {\n\tPlaceholder,\n\tSpinner,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tuseInnerBlocksProps,\n\tRecursionProvider,\n\tuseHasRecursion,\n\tInnerBlocks,\n\tuseBlockProps,\n\tWarning,\n\tprivateApis as blockEditorPrivateApis,\n\tstore as blockEditorStore,\n\tBlockControls,\n} from '@wordpress/block-editor';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\nimport { parse, cloneBlock } from '@wordpress/blocks';\nimport { RichTextData } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport { name as patternBlockName } from './index';\nimport { unlock } from '../lock-unlock';\n\nconst { useLayoutClasses } = unlock( blockEditorPrivateApis );\nconst { PARTIAL_SYNCING_SUPPORTED_BLOCKS } = unlock( patternsPrivateApis );\n\nconst fullAlignments = [ 'full', 'wide', 'left', 'right' ];\n\nfunction getLegacyIdMap( blocks, content, nameCount = {} ) {\n\tlet idToClientIdMap = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block?.innerBlocks?.length ) {\n\t\t\tidToClientIdMap = {\n\t\t\t\t...idToClientIdMap,\n\t\t\t\t...getLegacyIdMap( block.innerBlocks, content, nameCount ),\n\t\t\t};\n\t\t}\n\n\t\tconst id = block.attributes.metadata?.id;\n\t\tconst clientId = block.clientId;\n\t\tif ( id && content?.[ id ] ) {\n\t\t\tidToClientIdMap[ clientId ] = id;\n\t\t}\n\t}\n\treturn idToClientIdMap;\n}\n\nconst useInferredLayout = ( blocks, parentLayout ) => {\n\tconst initialInferredAlignmentRef = useRef();\n\n\treturn useMemo( () => {\n\t\t// Exit early if the pattern's blocks haven't loaded yet.\n\t\tif ( ! blocks?.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet alignment = initialInferredAlignmentRef.current;\n\n\t\t// Only track the initial alignment so that temporarily removed\n\t\t// alignments can be reapplied.\n\t\tif ( alignment === undefined ) {\n\t\t\tconst isConstrained = parentLayout?.type === 'constrained';\n\t\t\tconst hasFullAlignment = blocks.some( ( block ) =>\n\t\t\t\tfullAlignments.includes( block.attributes.align )\n\t\t\t);\n\n\t\t\talignment = isConstrained && hasFullAlignment ? 'full' : null;\n\t\t\tinitialInferredAlignmentRef.current = alignment;\n\t\t}\n\n\t\tconst layout = alignment ? parentLayout : undefined;\n\n\t\treturn { alignment, layout };\n\t}, [ blocks, parentLayout ] );\n};\n\nfunction hasOverridableAttributes( block ) {\n\treturn (\n\t\tObject.keys( PARTIAL_SYNCING_SUPPORTED_BLOCKS ).includes(\n\t\t\tblock.name\n\t\t) &&\n\t\t!! block.attributes.metadata?.bindings &&\n\t\tObject.values( block.attributes.metadata.bindings ).some(\n\t\t\t( binding ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t);\n}\n\nfunction hasOverridableBlocks( blocks ) {\n\treturn blocks.some( ( block ) => {\n\t\tif ( hasOverridableAttributes( block ) ) return true;\n\t\treturn hasOverridableBlocks( block.innerBlocks );\n\t} );\n}\n\nfunction getOverridableAttributes( block ) {\n\treturn Object.entries( block.attributes.metadata.bindings )\n\t\t.filter(\n\t\t\t( [ , binding ] ) => binding.source === 'core/pattern-overrides'\n\t\t)\n\t\t.map( ( [ attributeKey ] ) => attributeKey );\n}\n\nfunction applyInitialContentValuesToInnerBlocks(\n\tblocks,\n\tcontent = {},\n\tdefaultValues,\n\tlegacyIdMap\n) {\n\treturn blocks.map( ( block ) => {\n\t\tconst innerBlocks = applyInitialContentValuesToInnerBlocks(\n\t\t\tblock.innerBlocks,\n\t\t\tcontent,\n\t\t\tdefaultValues,\n\t\t\tlegacyIdMap\n\t\t);\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\n\t\tif ( ! metadataName || ! hasOverridableAttributes( block ) ) {\n\t\t\treturn { ...block, innerBlocks };\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\t\tconst newAttributes = { ...block.attributes };\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tdefaultValues[ metadataName ] ??= {};\n\t\t\tdefaultValues[ metadataName ][ attributeKey ] =\n\t\t\t\tblock.attributes[ attributeKey ];\n\n\t\t\tconst contentValues = content[ metadataName ];\n\t\t\tif ( contentValues?.[ attributeKey ] !== undefined ) {\n\t\t\t\tnewAttributes[ attributeKey ] = contentValues[ attributeKey ];\n\t\t\t}\n\t\t}\n\t\treturn {\n\t\t\t...block,\n\t\t\tattributes: newAttributes,\n\t\t\tinnerBlocks,\n\t\t};\n\t} );\n}\n\nfunction isAttributeEqual( attribute1, attribute2 ) {\n\tif (\n\t\tattribute1 instanceof RichTextData &&\n\t\tattribute2 instanceof RichTextData\n\t) {\n\t\treturn attribute1.toString() === attribute2.toString();\n\t}\n\treturn attribute1 === attribute2;\n}\n\nfunction getContentValuesFromInnerBlocks( blocks, defaultValues, legacyIdMap ) {\n\t/** @type {Record<string, { values: Record<string, unknown>}>} */\n\tconst content = {};\n\tfor ( const block of blocks ) {\n\t\tif ( block.name === patternBlockName ) continue;\n\t\tif ( block.innerBlocks.length ) {\n\t\t\tObject.assign(\n\t\t\t\tcontent,\n\t\t\t\tgetContentValuesFromInnerBlocks(\n\t\t\t\t\tblock.innerBlocks,\n\t\t\t\t\tdefaultValues,\n\t\t\t\t\tlegacyIdMap\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\tconst metadataName =\n\t\t\tlegacyIdMap?.[ block.clientId ] ?? block.attributes.metadata?.name;\n\t\tif ( ! metadataName || ! hasOverridableAttributes( block ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst attributes = getOverridableAttributes( block );\n\n\t\tfor ( const attributeKey of attributes ) {\n\t\t\tif (\n\t\t\t\t! isAttributeEqual(\n\t\t\t\t\tblock.attributes[ attributeKey ],\n\t\t\t\t\tdefaultValues?.[ metadataName ]?.[ attributeKey ]\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcontent[ metadataName ] ??= {};\n\t\t\t\t// TODO: We need a way to represent `undefined` in the serialized overrides.\n\t\t\t\t// Also see: https://github.com/WordPress/gutenberg/pull/57249#discussion_r1452987871\n\t\t\t\tcontent[ metadataName ][ attributeKey ] =\n\t\t\t\t\tblock.attributes[ attributeKey ] === undefined\n\t\t\t\t\t\t? // TODO: We use an empty string to represent undefined for now until\n\t\t\t\t\t\t // we support a richer format for overrides and the block binding API.\n\t\t\t\t\t\t // Currently only the `linkTarget` attribute of `core/button` is affected.\n\t\t\t\t\t\t ''\n\t\t\t\t\t\t: block.attributes[ attributeKey ];\n\t\t\t}\n\t\t}\n\t}\n\treturn Object.keys( content ).length > 0 ? content : undefined;\n}\n\nfunction setBlockEditMode( setEditMode, blocks, mode ) {\n\tblocks.forEach( ( block ) => {\n\t\tconst editMode =\n\t\t\tmode ||\n\t\t\t( hasOverridableAttributes( block ) ? 'contentOnly' : 'disabled' );\n\t\tsetEditMode( block.clientId, editMode );\n\n\t\tsetBlockEditMode(\n\t\t\tsetEditMode,\n\t\t\tblock.innerBlocks,\n\t\t\t// Disable editing for nested patterns.\n\t\t\tblock.name === patternBlockName ? 'disabled' : mode\n\t\t);\n\t} );\n}\n\nexport default function ReusableBlockEdit( {\n\tname,\n\tattributes: { ref, content },\n\t__unstableParentLayout: parentLayout,\n\tclientId: patternClientId,\n\tsetAttributes,\n} ) {\n\tconst registry = useRegistry();\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\tconst { record, editedRecord, hasResolved } = useEntityRecord(\n\t\t'postType',\n\t\t'wp_block',\n\t\tref\n\t);\n\tconst isMissing = hasResolved && ! record;\n\n\t// The initial value of the `content` attribute.\n\tconst initialContent = useRef( content );\n\n\t// The default content values from the original pattern for overridable attributes.\n\t// Set by the `applyInitialContentValuesToInnerBlocks` function.\n\tconst defaultContent = useRef( {} );\n\n\tconst {\n\t\treplaceInnerBlocks,\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tsetBlockEditingMode,\n\t} = useDispatch( blockEditorStore );\n\tconst { syncDerivedUpdates } = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tinnerBlocks,\n\t\tuserCanEdit,\n\t\tgetBlockEditingMode,\n\t\tonNavigateToEntityRecord,\n\t\teditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser } = select( coreStore );\n\t\t\tconst {\n\t\t\t\tgetBlocks,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tconst canEdit = canUser( 'update', 'blocks', ref );\n\n\t\t\t// For editing link to the site editor if the theme and user permissions support it.\n\t\t\treturn {\n\t\t\t\tinnerBlocks: blocks,\n\t\t\t\tuserCanEdit: canEdit,\n\t\t\t\tgetBlockEditingMode: _getBlockEditingMode,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\tgetSettings().onNavigateToEntityRecord,\n\t\t\t\teditingMode: _getBlockEditingMode( patternClientId ),\n\t\t\t};\n\t\t},\n\t\t[ patternClientId, ref ]\n\t);\n\n\t// Sync the editing mode of the pattern block with the inner blocks.\n\tuseEffect( () => {\n\t\tsetBlockEditMode(\n\t\t\tsetBlockEditingMode,\n\t\t\tinnerBlocks,\n\t\t\t// Disable editing if the pattern itself is disabled.\n\t\t\teditingMode === 'disabled' ? 'disabled' : undefined\n\t\t);\n\t}, [ editingMode, innerBlocks, setBlockEditingMode ] );\n\n\tconst canOverrideBlocks = useMemo(\n\t\t() => hasOverridableBlocks( innerBlocks ),\n\t\t[ innerBlocks ]\n\t);\n\n\tconst initialBlocks = useMemo(\n\t\t() =>\n\t\t\t// Clone the blocks to generate new client IDs.\n\t\t\teditedRecord.blocks?.map( ( block ) => cloneBlock( block ) ) ??\n\t\t\t( editedRecord.content && typeof editedRecord.content !== 'function'\n\t\t\t\t? parse( editedRecord.content )\n\t\t\t\t: [] ),\n\t\t[ editedRecord.blocks, editedRecord.content ]\n\t);\n\n\tconst legacyIdMap = useRef( {} );\n\n\t// Apply the initial overrides from the pattern block to the inner blocks.\n\tuseEffect( () => {\n\t\t// Build a map of clientIds to the old nano id system to provide back compat.\n\t\tlegacyIdMap.current = getLegacyIdMap(\n\t\t\tinitialBlocks,\n\t\t\tinitialContent.current\n\t\t);\n\t\tdefaultContent.current = {};\n\t\tconst originalEditingMode = getBlockEditingMode( patternClientId );\n\t\t// Replace the contents of the blocks with the overrides.\n\t\tregistry.batch( () => {\n\t\t\tsetBlockEditingMode( patternClientId, 'default' );\n\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\tpatternClientId,\n\t\t\t\t\tapplyInitialContentValuesToInnerBlocks(\n\t\t\t\t\t\tinitialBlocks,\n\t\t\t\t\t\tinitialContent.current,\n\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t} );\n\t\t\tsetBlockEditingMode( patternClientId, originalEditingMode );\n\t\t} );\n\t}, [\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\tpatternClientId,\n\t\tinitialBlocks,\n\t\treplaceInnerBlocks,\n\t\tregistry,\n\t\tgetBlockEditingMode,\n\t\tsetBlockEditingMode,\n\t\tsyncDerivedUpdates,\n\t] );\n\n\tconst { alignment, layout } = useInferredLayout(\n\t\tinnerBlocks,\n\t\tparentLayout\n\t);\n\tconst layoutClasses = useLayoutClasses( { layout }, name );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames(\n\t\t\t'block-library-block__reusable-block-container',\n\t\t\tlayout && layoutClasses,\n\t\t\t{ [ `align${ alignment }` ]: alignment }\n\t\t),\n\t} );\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\ttemplateLock: 'all',\n\t\tlayout,\n\t\trenderAppender: innerBlocks?.length\n\t\t\t? undefined\n\t\t\t: InnerBlocks.ButtonBlockAppender,\n\t} );\n\n\t// Sync the `content` attribute from the updated blocks to the pattern block.\n\t// `syncDerivedUpdates` is used here to avoid creating an additional undo level.\n\tuseEffect( () => {\n\t\tconst { getBlocks } = registry.select( blockEditorStore );\n\t\tlet prevBlocks = getBlocks( patternClientId );\n\t\treturn registry.subscribe( () => {\n\t\t\tconst blocks = getBlocks( patternClientId );\n\t\t\tif ( blocks !== prevBlocks ) {\n\t\t\t\tprevBlocks = blocks;\n\t\t\t\tsyncDerivedUpdates( () => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: getContentValuesFromInnerBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tdefaultContent.current,\n\t\t\t\t\t\t\tlegacyIdMap.current\n\t\t\t\t\t\t),\n\t\t\t\t\t} );\n\t\t\t\t} );\n\t\t\t}\n\t\t}, blockEditorStore );\n\t}, [ syncDerivedUpdates, patternClientId, registry, setAttributes ] );\n\n\tconst handleEditOriginal = () => {\n\t\tonNavigateToEntityRecord( {\n\t\t\tpostId: ref,\n\t\t\tpostType: 'wp_block',\n\t\t} );\n\t};\n\n\tconst resetContent = () => {\n\t\tif ( content ) {\n\t\t\treplaceInnerBlocks( patternClientId, initialBlocks );\n\t\t}\n\t};\n\n\tlet children = null;\n\n\tif ( hasAlreadyRendered ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\tchildren = (\n\t\t\t<Warning>\n\t\t\t\t{ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\tchildren = (\n\t\t\t<Placeholder>\n\t\t\t\t<Spinner />\n\t\t\t</Placeholder>\n\t\t);\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t{ userCanEdit && onNavigateToEntityRecord && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton onClick={ handleEditOriginal }>\n\t\t\t\t\t\t\t{ __( 'Edit original' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ canOverrideBlocks && (\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tonClick={ resetContent }\n\t\t\t\t\t\t\tdisabled={ ! content }\n\t\t\t\t\t\t\t__experimentalIsFocusable\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\n\t\t\t{ children === null ? (\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t) : (\n\t\t\t\t<div { ...blockProps }>{ children }</div>\n\t\t\t) }\n\t\t</RecursionProvider>\n\t);\n}\n"],"mappings":"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"}
|