@wordpress/block-library 6.0.12 → 6.0.16
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/group/edit.native.js +1 -1
- package/build/group/edit.native.js.map +1 -1
- package/build/group/index.js +3 -1
- package/build/group/index.js.map +1 -1
- package/build/image/image.js +30 -6
- package/build/image/image.js.map +1 -1
- package/build/navigation/deprecated.js +1 -3
- package/build/navigation/deprecated.js.map +1 -1
- package/build/navigation/edit/index.js +109 -43
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +10 -3
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +15 -7
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/edit/responsive-wrapper.js +9 -7
- package/build/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +3 -11
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/edit/use-navigation-notice.js +54 -0
- package/build/navigation/edit/use-navigation-notice.js.map +1 -0
- package/build/navigation/index.js +1 -2
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/menu-items-to-blocks.js +4 -1
- package/build/navigation/menu-items-to-blocks.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +9 -2
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation/view.js +14 -9
- package/build/navigation/view.js.map +1 -1
- package/build/navigation-submenu/edit.js +1 -1
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/post-comments/index.js +1 -1
- package/build/post-template/edit.js +54 -13
- package/build/post-template/edit.js.map +1 -1
- package/build/site-logo/edit.js +9 -6
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-logo/index.js +0 -3
- package/build/site-logo/index.js.map +1 -1
- package/build/template-part/edit/index.js +7 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build-module/group/edit.native.js +1 -1
- package/build-module/group/edit.native.js.map +1 -1
- package/build-module/group/index.js +3 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/image/image.js +31 -7
- package/build-module/image/image.js.map +1 -1
- package/build-module/navigation/deprecated.js +1 -3
- package/build-module/navigation/deprecated.js.map +1 -1
- package/build-module/navigation/edit/index.js +107 -44
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +9 -3
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +15 -7
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/edit/responsive-wrapper.js +9 -7
- package/build-module/navigation/edit/responsive-wrapper.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +4 -13
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/use-navigation-notice.js +44 -0
- package/build-module/navigation/edit/use-navigation-notice.js.map +1 -0
- package/build-module/navigation/index.js +1 -2
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/menu-items-to-blocks.js +3 -1
- package/build-module/navigation/menu-items-to-blocks.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +9 -2
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation/view.js +14 -9
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -1
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/post-comments/index.js +1 -1
- package/build-module/post-template/edit.js +54 -15
- package/build-module/post-template/edit.js.map +1 -1
- package/build-module/site-logo/edit.js +9 -6
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-logo/index.js +0 -3
- package/build-module/site-logo/index.js.map +1 -1
- package/build-module/template-part/edit/index.js +6 -1
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-style/common-rtl.css +10 -0
- package/build-style/common.css +10 -0
- package/build-style/editor-rtl.css +38 -11
- package/build-style/editor.css +38 -11
- package/build-style/image/editor-rtl.css +16 -0
- package/build-style/image/editor.css +16 -0
- package/build-style/navigation/editor-rtl.css +11 -0
- package/build-style/navigation/editor.css +11 -0
- package/build-style/navigation/style-rtl.css +56 -24
- package/build-style/navigation/style.css +56 -24
- package/build-style/post-comments/style-rtl.css +3 -1
- package/build-style/post-comments/style.css +3 -1
- package/build-style/post-comments-form/style-rtl.css +2 -2
- package/build-style/post-comments-form/style.css +2 -2
- package/build-style/site-logo/editor-rtl.css +1 -11
- package/build-style/site-logo/editor.css +1 -11
- package/build-style/site-logo/style-rtl.css +3 -1
- package/build-style/site-logo/style.css +3 -1
- package/build-style/style-rtl.css +74 -28
- package/build-style/style.css +74 -28
- package/package.json +14 -14
- package/src/common.scss +12 -0
- package/src/editor.scss +12 -0
- package/src/gallery/index.php +7 -8
- package/src/group/block.json +3 -1
- package/src/group/edit.native.js +1 -1
- package/src/home-link/index.php +1 -1
- package/src/image/editor.scss +18 -0
- package/src/image/image.js +32 -8
- package/src/image/index.php +1 -1
- package/src/navigation/block.json +1 -2
- package/src/navigation/deprecated.js +0 -2
- package/src/navigation/edit/index.js +166 -60
- package/src/navigation/edit/navigation-menu-selector.js +20 -6
- package/src/navigation/edit/placeholder/index.js +40 -24
- package/src/navigation/edit/responsive-wrapper.js +10 -7
- package/src/navigation/edit/unsaved-inner-blocks.js +13 -25
- package/src/navigation/edit/use-navigation-notice.js +37 -0
- package/src/navigation/editor.scss +14 -0
- package/src/navigation/index.php +19 -8
- package/src/navigation/menu-items-to-blocks.js +7 -1
- package/src/navigation/style.scss +82 -32
- package/src/navigation/use-navigation-menu.js +20 -0
- package/src/navigation/view.js +15 -9
- package/src/navigation-link/index.php +1 -1
- package/src/navigation-submenu/edit.js +1 -1
- package/src/navigation-submenu/index.php +9 -3
- package/src/page-list/index.php +9 -4
- package/src/post-comments/block.json +5 -1
- package/src/post-comments/index.php +17 -0
- package/src/post-comments/style.scss +7 -3
- package/src/post-comments-form/index.php +6 -4
- package/src/post-comments-form/style.scss +7 -5
- package/src/post-template/edit.js +54 -17
- package/src/site-logo/block.json +0 -3
- package/src/site-logo/edit.js +6 -5
- package/src/site-logo/editor.scss +1 -15
- package/src/site-logo/index.php +0 -4
- package/src/site-logo/style.scss +3 -1
- package/src/template-part/edit/index.js +6 -1
- package/src/template-part/index.php +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"names":["classnames","escape","pull","useSelect","useDispatch","PanelBody","Popover","TextControl","TextareaControl","ToolbarButton","ToolbarGroup","displayShortcut","isKeyboardEvent","__","sprintf","BlockControls","InnerBlocks","useInnerBlocksProps","InspectorControls","RichText","__experimentalLinkControl","LinkControl","useBlockProps","store","blockEditorStore","getColorClassName","isURL","prependHTTP","safeDecodeURI","Fragment","useState","useEffect","useRef","createInterpolateElement","placeCaretAtHorizontalEdge","link","linkIcon","coreStore","speak","ItemSubmenuIcon","ALLOWED_BLOCKS","DEFAULT_BLOCK","MAX_NESTING","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","getSuggestionsQuery","type","kind","subtype","getColors","context","isSubMenu","textColor","customTextColor","backgroundColor","customBackgroundColor","overlayTextColor","customOverlayTextColor","overlayBackgroundColor","customOverlayBackgroundColor","style","colors","color","text","background","updateNavigationLinkBlockAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","originalKind","originalType","title","url","opensInNewTab","id","newKind","newType","normalizedTitle","replace","normalizedURL","escapeTitle","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger","NavigationSubmenuEdit","attributes","isSelected","mergeBlocks","onReplace","clientId","description","rel","showSubmenuIcon","openSubmenusOnClick","saveEntityRecord","__unstableMarkNextChangeAsNotPersistent","isLinkOpen","setIsLinkOpen","listItemRef","itemLabelPlaceholder","ref","isAtMaxNesting","isTopLevelItem","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasDescendants","selectedBlockHasDescendants","userCanCreatePages","userCanCreatePosts","select","getClientIdsOfDescendants","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","selectedBlockId","descendants","length","name","canUser","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","userCanCreate","handleCreate","pageTitle","postType","page","status","rendered","onKeyDown","primary","blockProps","className","innerBlocksColors","innerBlocksProps","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","__experimentalCaptureToolbars","renderAppender","DefaultAppender","ParentElement","descriptionValue","titleValue","relValue","labelValue","searchTerm","format","mark"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escape, pull } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tPopover,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\t__experimentalLinkControl as LinkControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';\nimport {\n\tFragment,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { name } from './block.json';\n\nconst ALLOWED_BLOCKS = [ 'core/navigation-link', 'core/navigation-submenu' ];\n\nconst DEFAULT_BLOCK = [ 'core/navigation-link' ];\n\nconst MAX_NESTING = 5;\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nfunction getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nfunction getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\nexport const updateNavigationLinkBlockAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\tconst {\n\t\ttitle = '',\n\t\turl = '',\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\tconst normalizedTitle = title.replace( /http(s?):\\/\\//gi, '' );\n\tconst normalizedURL = url.replace( /http(s?):\\/\\//gi, '' );\n\tconst escapeTitle =\n\t\ttitle !== '' &&\n\t\tnormalizedTitle !== normalizedURL &&\n\t\toriginalLabel !== title;\n\tconst label = escapeTitle\n\t\t? escape( title )\n\t\t: originalLabel || escape( normalizedURL );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( url && { url: encodeURI( safeDecodeURI( url ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\ttype,\n\t\topensInNewTab,\n\t\turl,\n\t\tdescription,\n\t\trel,\n\t\ttitle,\n\t\tkind,\n\t} = attributes;\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t};\n\tconst { showSubmenuIcon, openSubmenusOnClick } = context;\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tisAtMaxNesting,\n\t\tisTopLevelItem,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasDescendants,\n\t\tselectedBlockHasDescendants,\n\t\tuserCanCreatePages,\n\t\tuserCanCreatePosts,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst descendants = getClientIdsOfDescendants( [ clientId ] )\n\t\t\t\t.length;\n\n\t\t\treturn {\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length >=\n\t\t\t\t\tMAX_NESTING,\n\t\t\t\tisTopLevelItem:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length === 0,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasDescendants: !! descendants,\n\t\t\t\tselectedBlockHasDescendants: !! getClientIdsOfDescendants( [\n\t\t\t\t\tselectedBlockId,\n\t\t\t\t] )?.length,\n\t\t\t\tuserCanCreatePages: select( coreStore ).canUser(\n\t\t\t\t\t'create',\n\t\t\t\t\t'pages'\n\t\t\t\t),\n\t\t\t\tuserCanCreatePosts: select( coreStore ).canUser(\n\t\t\t\t\t'create',\n\t\t\t\t\t'posts'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t// Store the colors from context as attributes for rendering\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelItem } );\n\t}, [ isTopLevelItem ] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = userCanCreatePages;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = userCanCreatePosts;\n\t}\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelItem );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: listItemRef,\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasDescendants,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t) ]: !! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus\n\tconst innerBlocksColors = getColors( context, true );\n\n\tif ( isAtMaxNesting ) {\n\t\tpull( ALLOWED_BLOCKS, 'core/navigation-submenu' );\n\t}\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: classnames( 'wp-block-navigation__submenu-container', {\n\t\t\t\t'is-parent-of-selected-block': isParentOfSelectedBlock,\n\t\t\t\t'has-text-color': !! (\n\t\t\t\t\tinnerBlocksColors.textColor ||\n\t\t\t\t\tinnerBlocksColors.customTextColor\n\t\t\t\t),\n\t\t\t\t[ `has-${ innerBlocksColors.textColor }-color` ]: !! innerBlocksColors.textColor,\n\t\t\t\t'has-background': !! (\n\t\t\t\t\tinnerBlocksColors.backgroundColor ||\n\t\t\t\t\tinnerBlocksColors.customBackgroundColor\n\t\t\t\t),\n\t\t\t\t[ `has-${ innerBlocksColors.backgroundColor }-background-color` ]: !! innerBlocksColors.backgroundColor,\n\t\t\t} ),\n\t\t\tstyle: {\n\t\t\t\tcolor: innerBlocksColors.customTextColor,\n\t\t\t\tbackgroundColor: innerBlocksColors.customBackgroundColor,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: true,\n\n\t\t\t// Ensure block toolbar is not too far removed from item\n\t\t\t// being edited.\n\t\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t\t__experimentalCaptureToolbars: true,\n\n\t\t\trenderAppender:\n\t\t\t\tisSelected ||\n\t\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t\t! selectedBlockHasDescendants ) ||\n\t\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\t\thasDescendants\n\t\t\t\t\t? InnerBlocks.DefaultAppender\n\t\t\t\t\t: false,\n\t\t}\n\t);\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\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\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchorRef={ listItemRef.current }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\t\tlet format;\n\t\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t\t{ mark: <mark /> }\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\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( updatedValue ) =>\n\t\t\t\t\t\t\t\t\tupdateNavigationLinkBlockAttributes(\n\t\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\t\tattributes\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</ParentElement>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"names":["classnames","escape","pull","useSelect","useDispatch","PanelBody","Popover","TextControl","TextareaControl","ToolbarButton","ToolbarGroup","displayShortcut","isKeyboardEvent","__","sprintf","BlockControls","InnerBlocks","useInnerBlocksProps","InspectorControls","RichText","__experimentalLinkControl","LinkControl","useBlockProps","store","blockEditorStore","getColorClassName","isURL","prependHTTP","safeDecodeURI","Fragment","useState","useEffect","useRef","createInterpolateElement","placeCaretAtHorizontalEdge","link","linkIcon","coreStore","speak","ItemSubmenuIcon","ALLOWED_BLOCKS","DEFAULT_BLOCK","MAX_NESTING","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","getSuggestionsQuery","type","kind","subtype","getColors","context","isSubMenu","textColor","customTextColor","backgroundColor","customBackgroundColor","overlayTextColor","customOverlayTextColor","overlayBackgroundColor","customOverlayBackgroundColor","style","colors","color","text","background","updateNavigationLinkBlockAttributes","updatedValue","setAttributes","blockAttributes","label","originalLabel","originalKind","originalType","title","url","opensInNewTab","id","newKind","newType","normalizedTitle","replace","normalizedURL","escapeTitle","isBuiltInType","indexOf","isCustomLink","encodeURI","undefined","Number","isInteger","NavigationSubmenuEdit","attributes","isSelected","mergeBlocks","onReplace","clientId","description","rel","showSubmenuIcon","openSubmenusOnClick","saveEntityRecord","__unstableMarkNextChangeAsNotPersistent","isLinkOpen","setIsLinkOpen","listItemRef","itemLabelPlaceholder","ref","isAtMaxNesting","isTopLevelItem","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasDescendants","selectedBlockHasDescendants","userCanCreatePages","userCanCreatePosts","select","getClientIdsOfDescendants","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","selectedBlockId","descendants","length","name","canUser","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","userCanCreate","handleCreate","pageTitle","postType","page","status","rendered","onKeyDown","primary","blockProps","className","innerBlocksColors","innerBlocksProps","allowedBlocks","__experimentalDefaultBlock","__experimentalDirectInsert","__experimentalCaptureToolbars","renderAppender","ButtonBlockAppender","ParentElement","descriptionValue","titleValue","relValue","labelValue","searchTerm","format","mark"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { escape, pull } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tPanelBody,\n\tPopover,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\t__experimentalLinkControl as LinkControl,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP, safeDecodeURI } from '@wordpress/url';\nimport {\n\tFragment,\n\tuseState,\n\tuseEffect,\n\tuseRef,\n\tcreateInterpolateElement,\n} from '@wordpress/element';\nimport { placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { link as linkIcon } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { name } from './block.json';\n\nconst ALLOWED_BLOCKS = [ 'core/navigation-link', 'core/navigation-submenu' ];\n\nconst DEFAULT_BLOCK = [ 'core/navigation-link' ];\n\nconst MAX_NESTING = 5;\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * Given the Link block's type attribute, return the query params to give to\n * /wp/v2/search.\n *\n * @param {string} type Link block's type attribute.\n * @param {string} kind Link block's entity of kind (post-type|taxonomy)\n * @return {{ type?: string, subtype?: string }} Search query params.\n */\nfunction getSuggestionsQuery( type, kind ) {\n\tswitch ( type ) {\n\t\tcase 'post':\n\t\tcase 'page':\n\t\t\treturn { type: 'post', subtype: type };\n\t\tcase 'category':\n\t\t\treturn { type: 'term', subtype: 'category' };\n\t\tcase 'tag':\n\t\t\treturn { type: 'term', subtype: 'post_tag' };\n\t\tcase 'post_format':\n\t\t\treturn { type: 'post-format' };\n\t\tdefault:\n\t\t\tif ( kind === 'taxonomy' ) {\n\t\t\t\treturn { type: 'term', subtype: type };\n\t\t\t}\n\t\t\tif ( kind === 'post-type' ) {\n\t\t\t\treturn { type: 'post', subtype: type };\n\t\t\t}\n\t\t\treturn {};\n\t}\n}\n\n/**\n * Determine the colors for a menu.\n *\n * Order of priority is:\n * 1: Overlay custom colors (if submenu)\n * 2: Overlay theme colors (if submenu)\n * 3: Custom colors\n * 4: Theme colors\n * 5: Global styles\n *\n * @param {Object} context\n * @param {boolean} isSubMenu\n */\nfunction getColors( context, isSubMenu ) {\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t\toverlayTextColor,\n\t\tcustomOverlayTextColor,\n\t\toverlayBackgroundColor,\n\t\tcustomOverlayBackgroundColor,\n\t\tstyle,\n\t} = context;\n\n\tconst colors = {};\n\n\tif ( isSubMenu && !! customOverlayTextColor ) {\n\t\tcolors.customTextColor = customOverlayTextColor;\n\t} else if ( isSubMenu && !! overlayTextColor ) {\n\t\tcolors.textColor = overlayTextColor;\n\t} else if ( !! customTextColor ) {\n\t\tcolors.customTextColor = customTextColor;\n\t} else if ( !! textColor ) {\n\t\tcolors.textColor = textColor;\n\t} else if ( !! style?.color?.text ) {\n\t\tcolors.customTextColor = style.color.text;\n\t}\n\n\tif ( isSubMenu && !! customOverlayBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customOverlayBackgroundColor;\n\t} else if ( isSubMenu && !! overlayBackgroundColor ) {\n\t\tcolors.backgroundColor = overlayBackgroundColor;\n\t} else if ( !! customBackgroundColor ) {\n\t\tcolors.customBackgroundColor = customBackgroundColor;\n\t} else if ( !! backgroundColor ) {\n\t\tcolors.backgroundColor = backgroundColor;\n\t} else if ( !! style?.color?.background ) {\n\t\tcolors.customTextColor = style.color.background;\n\t}\n\n\treturn colors;\n}\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n * @property {string} [title] Link title attribute.\n */\n\n/**\n * Link Control onChange handler that updates block attributes when a setting is changed.\n *\n * @param {Object} updatedValue New block attributes to update.\n * @param {Function} setAttributes Block attribute update function.\n * @param {WPNavigationLinkBlockAttributes} blockAttributes Current block attributes.\n *\n */\nexport const updateNavigationLinkBlockAttributes = (\n\tupdatedValue = {},\n\tsetAttributes,\n\tblockAttributes = {}\n) => {\n\tconst {\n\t\tlabel: originalLabel = '',\n\t\tkind: originalKind = '',\n\t\ttype: originalType = '',\n\t} = blockAttributes;\n\tconst {\n\t\ttitle = '',\n\t\turl = '',\n\t\topensInNewTab,\n\t\tid,\n\t\tkind: newKind = originalKind,\n\t\ttype: newType = originalType,\n\t} = updatedValue;\n\n\tconst normalizedTitle = title.replace( /http(s?):\\/\\//gi, '' );\n\tconst normalizedURL = url.replace( /http(s?):\\/\\//gi, '' );\n\tconst escapeTitle =\n\t\ttitle !== '' &&\n\t\tnormalizedTitle !== normalizedURL &&\n\t\toriginalLabel !== title;\n\tconst label = escapeTitle\n\t\t? escape( title )\n\t\t: originalLabel || escape( normalizedURL );\n\n\t// In https://github.com/WordPress/gutenberg/pull/24670 we decided to use \"tag\" in favor of \"post_tag\"\n\tconst type = newType === 'post_tag' ? 'tag' : newType.replace( '-', '_' );\n\n\tconst isBuiltInType =\n\t\t[ 'post', 'page', 'tag', 'category' ].indexOf( type ) > -1;\n\n\tconst isCustomLink =\n\t\t( ! newKind && ! isBuiltInType ) || newKind === 'custom';\n\tconst kind = isCustomLink ? 'custom' : newKind;\n\n\tsetAttributes( {\n\t\t// Passed `url` may already be encoded. To prevent double encoding, decodeURI is executed to revert to the original string.\n\t\t...( url && { url: encodeURI( safeDecodeURI( url ) ) } ),\n\t\t...( label && { label } ),\n\t\t...( undefined !== opensInNewTab && { opensInNewTab } ),\n\t\t...( id && Number.isInteger( id ) && { id } ),\n\t\t...( kind && { kind } ),\n\t\t...( type && type !== 'URL' && { type } ),\n\t} );\n};\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\ttype,\n\t\topensInNewTab,\n\t\turl,\n\t\tdescription,\n\t\trel,\n\t\ttitle,\n\t\tkind,\n\t} = attributes;\n\tconst link = {\n\t\turl,\n\t\topensInNewTab,\n\t};\n\tconst { showSubmenuIcon, openSubmenusOnClick } = context;\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tisAtMaxNesting,\n\t\tisTopLevelItem,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasDescendants,\n\t\tselectedBlockHasDescendants,\n\t\tuserCanCreatePages,\n\t\tuserCanCreatePosts,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetClientIdsOfDescendants,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst descendants = getClientIdsOfDescendants( [ clientId ] )\n\t\t\t\t.length;\n\n\t\t\treturn {\n\t\t\t\tisAtMaxNesting:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length >=\n\t\t\t\t\tMAX_NESTING,\n\t\t\t\tisTopLevelItem:\n\t\t\t\t\tgetBlockParentsByBlockName( clientId, name ).length === 0,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasDescendants: !! descendants,\n\t\t\t\tselectedBlockHasDescendants: !! getClientIdsOfDescendants( [\n\t\t\t\t\tselectedBlockId,\n\t\t\t\t] )?.length,\n\t\t\t\tuserCanCreatePages: select( coreStore ).canUser(\n\t\t\t\t\t'create',\n\t\t\t\t\t'pages'\n\t\t\t\t),\n\t\t\t\tuserCanCreatePosts: select( coreStore ).canUser(\n\t\t\t\t\t'create',\n\t\t\t\t\t'posts'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t// Store the colors from context as attributes for rendering\n\tuseEffect( () => {\n\t\t// This side-effect should not create an undo level as those should\n\t\t// only be created via user interactions. Mark this change as\n\t\t// not persistent to avoid undo level creation.\n\t\t// See https://github.com/WordPress/gutenberg/issues/34564.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( { isTopLevelItem } );\n\t}, [ isTopLevelItem ] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t} else {\n\t\t\t\t// Focus it (but do not select).\n\t\t\t\tplaceCaretAtHorizontalEdge( ref.current, true );\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tlet userCanCreate = false;\n\tif ( ! type || type === 'page' ) {\n\t\tuserCanCreate = userCanCreatePages;\n\t} else if ( type === 'post' ) {\n\t\tuserCanCreate = userCanCreatePosts;\n\t}\n\n\tasync function handleCreate( pageTitle ) {\n\t\tconst postType = type || 'page';\n\n\t\tconst page = await saveEntityRecord( 'postType', postType, {\n\t\t\ttitle: pageTitle,\n\t\t\tstatus: 'draft',\n\t\t} );\n\n\t\treturn {\n\t\t\tid: page.id,\n\t\t\ttype: postType,\n\t\t\ttitle: page.title.rendered,\n\t\t\turl: page.link,\n\t\t\tkind: 'post-type',\n\t\t};\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, ! isTopLevelItem );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: listItemRef,\n\t\tclassName: classnames( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasDescendants,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName(\n\t\t\t\t'background-color',\n\t\t\t\tbackgroundColor\n\t\t\t) ]: !! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus\n\tconst innerBlocksColors = getColors( context, true );\n\n\tif ( isAtMaxNesting ) {\n\t\tpull( ALLOWED_BLOCKS, 'core/navigation-submenu' );\n\t}\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tclassName: classnames( 'wp-block-navigation__submenu-container', {\n\t\t\t\t'is-parent-of-selected-block': isParentOfSelectedBlock,\n\t\t\t\t'has-text-color': !! (\n\t\t\t\t\tinnerBlocksColors.textColor ||\n\t\t\t\t\tinnerBlocksColors.customTextColor\n\t\t\t\t),\n\t\t\t\t[ `has-${ innerBlocksColors.textColor }-color` ]: !! innerBlocksColors.textColor,\n\t\t\t\t'has-background': !! (\n\t\t\t\t\tinnerBlocksColors.backgroundColor ||\n\t\t\t\t\tinnerBlocksColors.customBackgroundColor\n\t\t\t\t),\n\t\t\t\t[ `has-${ innerBlocksColors.backgroundColor }-background-color` ]: !! innerBlocksColors.backgroundColor,\n\t\t\t} ),\n\t\t\tstyle: {\n\t\t\t\tcolor: innerBlocksColors.customTextColor,\n\t\t\t\tbackgroundColor: innerBlocksColors.customBackgroundColor,\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\t\t__experimentalDefaultBlock: DEFAULT_BLOCK,\n\t\t\t__experimentalDirectInsert: true,\n\n\t\t\t// Ensure block toolbar is not too far removed from item\n\t\t\t// being edited.\n\t\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t\t__experimentalCaptureToolbars: true,\n\n\t\t\trenderAppender:\n\t\t\t\tisSelected ||\n\t\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t\t! selectedBlockHasDescendants ) ||\n\t\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\t\thasDescendants\n\t\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t\t: false,\n\t\t}\n\t);\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ () => setIsLinkOpen( true ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\t\tonChange={ ( titleValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { title: titleValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link title' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ __( 'Link rel' ) }\n\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t{\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\tallowedFormats={ [\n\t\t\t\t\t\t\t\t'core/bold',\n\t\t\t\t\t\t\t\t'core/italic',\n\t\t\t\t\t\t\t\t'core/image',\n\t\t\t\t\t\t\t\t'core/strikethrough',\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\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\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<Popover\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tonClose={ () => setIsLinkOpen( false ) }\n\t\t\t\t\t\t\tanchorRef={ listItemRef.current }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tclassName=\"wp-block-navigation-link__inline-link-input\"\n\t\t\t\t\t\t\t\tvalue={ link }\n\t\t\t\t\t\t\t\tshowInitialSuggestions={ true }\n\t\t\t\t\t\t\t\twithCreateSuggestion={ userCanCreate }\n\t\t\t\t\t\t\t\tcreateSuggestion={ handleCreate }\n\t\t\t\t\t\t\t\tcreateSuggestionButtonText={ ( searchTerm ) => {\n\t\t\t\t\t\t\t\t\tlet format;\n\t\t\t\t\t\t\t\t\tif ( type === 'post' ) {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft post: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t\t\t\t\t\t\tformat = __(\n\t\t\t\t\t\t\t\t\t\t\t'Create draft page: <mark>%s</mark>'\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn createInterpolateElement(\n\t\t\t\t\t\t\t\t\t\tsprintf( format, searchTerm ),\n\t\t\t\t\t\t\t\t\t\t{ mark: <mark /> }\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\tnoDirectEntry={ !! type }\n\t\t\t\t\t\t\t\tnoURLSuggestion={ !! type }\n\t\t\t\t\t\t\t\tsuggestionsQuery={ getSuggestionsQuery(\n\t\t\t\t\t\t\t\t\ttype,\n\t\t\t\t\t\t\t\t\tkind\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tonChange={ ( updatedValue ) =>\n\t\t\t\t\t\t\t\t\tupdateNavigationLinkBlockAttributes(\n\t\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\t\tattributes\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\tonRemove={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</Popover>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t</ParentElement>\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import { createElement } from "@wordpress/element";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -8,10 +9,10 @@ import classnames from 'classnames';
|
|
|
8
9
|
* WordPress dependencies
|
|
9
10
|
*/
|
|
10
11
|
|
|
11
|
-
import {
|
|
12
|
+
import { memo, useMemo, useState } from '@wordpress/element';
|
|
12
13
|
import { useSelect } from '@wordpress/data';
|
|
13
14
|
import { __ } from '@wordpress/i18n';
|
|
14
|
-
import { BlockContextProvider,
|
|
15
|
+
import { BlockContextProvider, __experimentalUseBlockPreview as useBlockPreview, useBlockProps, useInnerBlocksProps, store as blockEditorStore } from '@wordpress/block-editor';
|
|
15
16
|
import { Spinner } from '@wordpress/components';
|
|
16
17
|
import { store as coreStore } from '@wordpress/core-data';
|
|
17
18
|
const TEMPLATE = [['core/post-title'], ['core/post-date'], ['core/post-excerpt']];
|
|
@@ -23,7 +24,36 @@ function PostTemplateInnerBlocks() {
|
|
|
23
24
|
return createElement("li", innerBlocksProps);
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
function PostTemplateBlockPreview(_ref) {
|
|
28
|
+
let {
|
|
29
|
+
blocks,
|
|
30
|
+
blockContextId,
|
|
31
|
+
isHidden,
|
|
32
|
+
setActiveBlockContextId
|
|
33
|
+
} = _ref;
|
|
34
|
+
const blockPreviewProps = useBlockPreview({
|
|
35
|
+
blocks
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const handleOnClick = () => {
|
|
39
|
+
setActiveBlockContextId(blockContextId);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
const style = {
|
|
43
|
+
display: isHidden ? 'none' : undefined
|
|
44
|
+
};
|
|
45
|
+
return createElement("li", _extends({}, blockPreviewProps, {
|
|
46
|
+
tabIndex: 0 // eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role
|
|
47
|
+
,
|
|
48
|
+
role: "button",
|
|
49
|
+
onClick: handleOnClick,
|
|
50
|
+
onKeyPress: handleOnClick,
|
|
51
|
+
style: style
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
const MemoizedPostTemplateBlockPreview = memo(PostTemplateBlockPreview);
|
|
56
|
+
export default function PostTemplateEdit(_ref2) {
|
|
27
57
|
let {
|
|
28
58
|
clientId,
|
|
29
59
|
context: {
|
|
@@ -50,11 +80,11 @@ export default function PostTemplateEdit(_ref) {
|
|
|
50
80
|
columns = 1
|
|
51
81
|
} = {}
|
|
52
82
|
}
|
|
53
|
-
} =
|
|
83
|
+
} = _ref2;
|
|
54
84
|
const [{
|
|
55
85
|
page
|
|
56
86
|
}] = queryContext;
|
|
57
|
-
const [
|
|
87
|
+
const [activeBlockContextId, setActiveBlockContextId] = useState();
|
|
58
88
|
const {
|
|
59
89
|
posts,
|
|
60
90
|
blocks
|
|
@@ -128,15 +158,24 @@ export default function PostTemplateEdit(_ref) {
|
|
|
128
158
|
|
|
129
159
|
if (!posts.length) {
|
|
130
160
|
return createElement("p", blockProps, " ", __('No results found.'));
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
161
|
+
} // To avoid flicker when switching active block contexts, a preview is rendered
|
|
162
|
+
// for each block context, but the preview for the active block context is hidden.
|
|
163
|
+
// This ensures that when it is displayed again, the cached rendering of the
|
|
164
|
+
// block preview is used, instead of having to re-render the preview from scratch.
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
return createElement("ul", blockProps, blockContexts && blockContexts.map(blockContext => {
|
|
168
|
+
var _blockContexts$, _blockContexts$2;
|
|
169
|
+
|
|
170
|
+
return createElement(BlockContextProvider, {
|
|
171
|
+
key: blockContext.postId,
|
|
172
|
+
value: blockContext
|
|
173
|
+
}, blockContext.postId === (activeBlockContextId || ((_blockContexts$ = blockContexts[0]) === null || _blockContexts$ === void 0 ? void 0 : _blockContexts$.postId)) ? createElement(PostTemplateInnerBlocks, null) : null, createElement(MemoizedPostTemplateBlockPreview, {
|
|
174
|
+
blocks: blocks,
|
|
175
|
+
blockContextId: blockContext.postId,
|
|
176
|
+
setActiveBlockContextId: setActiveBlockContextId,
|
|
177
|
+
isHidden: blockContext.postId === (activeBlockContextId || ((_blockContexts$2 = blockContexts[0]) === null || _blockContexts$2 === void 0 ? void 0 : _blockContexts$2.postId))
|
|
178
|
+
}));
|
|
179
|
+
}));
|
|
141
180
|
}
|
|
142
181
|
//# sourceMappingURL=edit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/post-template/edit.js"],"names":["classnames","useState","useMemo","useSelect","__","BlockContextProvider","BlockPreview","useBlockProps","useInnerBlocksProps","store","blockEditorStore","Spinner","coreStore","TEMPLATE","PostTemplateInnerBlocks","innerBlocksProps","template","PostTemplateEdit","clientId","context","query","perPage","offset","categoryIds","postType","tagIds","order","orderBy","author","search","exclude","sticky","inherit","queryContext","page","templateSlug","displayLayout","type","layoutType","columns","activeBlockContext","setActiveBlockContext","posts","blocks","select","getEntityRecords","getBlocks","categories","tags","orderby","per_page","length","startsWith","replace","blockContexts","map","post","postId","id","hasLayoutFlex","blockProps","className","blockContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\tBlockPreview,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst TEMPLATE = [\n\t[ 'core/post-title' ],\n\t[ 'core/post-date' ],\n\t[ 'core/post-excerpt' ],\n];\n\nfunction PostTemplateInnerBlocks() {\n\tconst innerBlocksProps = useInnerBlocksProps( {}, { template: TEMPLATE } );\n\treturn <li { ...innerBlocksProps } />;\n}\n\nexport default function PostTemplateEdit( {\n\tclientId,\n\tcontext: {\n\t\tquery: {\n\t\t\tperPage,\n\t\t\toffset,\n\t\t\tcategoryIds = [],\n\t\t\tpostType,\n\t\t\ttagIds = [],\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t} = {},\n\t\tqueryContext = [ { page: 1 } ],\n\t\ttemplateSlug,\n\t\tdisplayLayout: { type: layoutType = 'flex', columns = 1 } = {},\n\t},\n} ) {\n\tconst [ { page } ] = queryContext;\n\tconst [ activeBlockContext, setActiveBlockContext ] = useState();\n\n\tconst { posts, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst query = {\n\t\t\t\toffset: perPage ? perPage * ( page - 1 ) + offset : 0,\n\t\t\t\tcategories: categoryIds,\n\t\t\t\ttags: tagIds,\n\t\t\t\torder,\n\t\t\t\torderby: orderBy,\n\t\t\t};\n\t\t\tif ( perPage ) {\n\t\t\t\tquery.per_page = perPage;\n\t\t\t}\n\t\t\tif ( author ) {\n\t\t\t\tquery.author = author;\n\t\t\t}\n\t\t\tif ( search ) {\n\t\t\t\tquery.search = search;\n\t\t\t}\n\t\t\tif ( exclude?.length ) {\n\t\t\t\tquery.exclude = exclude;\n\t\t\t}\n\t\t\t// If sticky is not set, it will return all posts in the results.\n\t\t\t// If sticky is set to `only`, it will limit the results to sticky posts only.\n\t\t\t// If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.\n\t\t\tif ( sticky ) {\n\t\t\t\tquery.sticky = sticky === 'only';\n\t\t\t}\n\t\t\t// If `inherit` is truthy, adjust conditionally the query to create a better preview.\n\t\t\tif ( inherit ) {\n\t\t\t\t// Change the post-type if needed.\n\t\t\t\tif ( templateSlug?.startsWith( 'archive-' ) ) {\n\t\t\t\t\tquery.postType = templateSlug.replace( 'archive-', '' );\n\t\t\t\t\tpostType = query.postType;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tposts: getEntityRecords( 'postType', postType, query ),\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tperPage,\n\t\t\tpage,\n\t\t\toffset,\n\t\t\tcategoryIds,\n\t\t\ttagIds,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tclientId,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\tpostType,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttemplateSlug,\n\t\t]\n\t);\n\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tposts?.map( ( post ) => ( {\n\t\t\t\tpostType: post.type,\n\t\t\t\tpostId: post.id,\n\t\t\t} ) ),\n\t\t[ posts ]\n\t);\n\tconst hasLayoutFlex = layoutType === 'flex' && columns > 1;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'is-flex-container': hasLayoutFlex,\n\t\t\t[ `columns-${ columns }` ]: hasLayoutFlex,\n\t\t} ),\n\t} );\n\n\tif ( ! posts ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! posts.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\treturn (\n\t\t<ul { ...blockProps }>\n\t\t\t{ blockContexts &&\n\t\t\t\tblockContexts.map( ( blockContext ) => (\n\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\tkey={ blockContext.postId }\n\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ blockContext ===\n\t\t\t\t\t\t( activeBlockContext || blockContexts[ 0 ] ) ? (\n\t\t\t\t\t\t\t<PostTemplateInnerBlocks />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t__experimentalLive\n\t\t\t\t\t\t\t\t\t__experimentalOnClick={ () =>\n\t\t\t\t\t\t\t\t\t\tsetActiveBlockContext( blockContext )\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</li>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/post-template/edit.js"],"names":["classnames","memo","useMemo","useState","useSelect","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","useBlockProps","useInnerBlocksProps","store","blockEditorStore","Spinner","coreStore","TEMPLATE","PostTemplateInnerBlocks","innerBlocksProps","template","PostTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","handleOnClick","style","display","undefined","MemoizedPostTemplateBlockPreview","PostTemplateEdit","clientId","context","query","perPage","offset","categoryIds","postType","tagIds","order","orderBy","author","search","exclude","sticky","inherit","queryContext","page","templateSlug","displayLayout","type","layoutType","columns","activeBlockContextId","posts","select","getEntityRecords","getBlocks","categories","tags","orderby","per_page","length","startsWith","replace","blockContexts","map","post","postId","id","hasLayoutFlex","blockProps","className","blockContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Spinner } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\nconst TEMPLATE = [\n\t[ 'core/post-title' ],\n\t[ 'core/post-date' ],\n\t[ 'core/post-excerpt' ],\n];\n\nfunction PostTemplateInnerBlocks() {\n\tconst innerBlocksProps = useInnerBlocksProps( {}, { template: TEMPLATE } );\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction PostTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\nconst MemoizedPostTemplateBlockPreview = memo( PostTemplateBlockPreview );\n\nexport default function PostTemplateEdit( {\n\tclientId,\n\tcontext: {\n\t\tquery: {\n\t\t\tperPage,\n\t\t\toffset,\n\t\t\tcategoryIds = [],\n\t\t\tpostType,\n\t\t\ttagIds = [],\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t} = {},\n\t\tqueryContext = [ { page: 1 } ],\n\t\ttemplateSlug,\n\t\tdisplayLayout: { type: layoutType = 'flex', columns = 1 } = {},\n\t},\n} ) {\n\tconst [ { page } ] = queryContext;\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\n\tconst { posts, blocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst query = {\n\t\t\t\toffset: perPage ? perPage * ( page - 1 ) + offset : 0,\n\t\t\t\tcategories: categoryIds,\n\t\t\t\ttags: tagIds,\n\t\t\t\torder,\n\t\t\t\torderby: orderBy,\n\t\t\t};\n\t\t\tif ( perPage ) {\n\t\t\t\tquery.per_page = perPage;\n\t\t\t}\n\t\t\tif ( author ) {\n\t\t\t\tquery.author = author;\n\t\t\t}\n\t\t\tif ( search ) {\n\t\t\t\tquery.search = search;\n\t\t\t}\n\t\t\tif ( exclude?.length ) {\n\t\t\t\tquery.exclude = exclude;\n\t\t\t}\n\t\t\t// If sticky is not set, it will return all posts in the results.\n\t\t\t// If sticky is set to `only`, it will limit the results to sticky posts only.\n\t\t\t// If it is anything else, it will exclude sticky posts from results. For the record the value stored is `exclude`.\n\t\t\tif ( sticky ) {\n\t\t\t\tquery.sticky = sticky === 'only';\n\t\t\t}\n\t\t\t// If `inherit` is truthy, adjust conditionally the query to create a better preview.\n\t\t\tif ( inherit ) {\n\t\t\t\t// Change the post-type if needed.\n\t\t\t\tif ( templateSlug?.startsWith( 'archive-' ) ) {\n\t\t\t\t\tquery.postType = templateSlug.replace( 'archive-', '' );\n\t\t\t\t\tpostType = query.postType;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tposts: getEntityRecords( 'postType', postType, query ),\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tperPage,\n\t\t\tpage,\n\t\t\toffset,\n\t\t\tcategoryIds,\n\t\t\ttagIds,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\tclientId,\n\t\t\tauthor,\n\t\t\tsearch,\n\t\t\tpostType,\n\t\t\texclude,\n\t\t\tsticky,\n\t\t\tinherit,\n\t\t\ttemplateSlug,\n\t\t]\n\t);\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tposts?.map( ( post ) => ( {\n\t\t\t\tpostType: post.type,\n\t\t\t\tpostId: post.id,\n\t\t\t} ) ),\n\t\t[ posts ]\n\t);\n\tconst hasLayoutFlex = layoutType === 'flex' && columns > 1;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( {\n\t\t\t'is-flex-container': hasLayoutFlex,\n\t\t\t[ `columns-${ columns }` ]: hasLayoutFlex,\n\t\t} ),\n\t} );\n\n\tif ( ! posts ) {\n\t\treturn (\n\t\t\t<p { ...blockProps }>\n\t\t\t\t<Spinner />\n\t\t\t</p>\n\t\t);\n\t}\n\n\tif ( ! posts.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No results found.' ) }</p>;\n\t}\n\n\t// To avoid flicker when switching active block contexts, a preview is rendered\n\t// for each block context, but the preview for the active block context is hidden.\n\t// This ensures that when it is displayed again, the cached rendering of the\n\t// block preview is used, instead of having to re-render the preview from scratch.\n\treturn (\n\t\t<ul { ...blockProps }>\n\t\t\t{ blockContexts &&\n\t\t\t\tblockContexts.map( ( blockContext ) => (\n\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\tkey={ blockContext.postId }\n\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ blockContext.postId ===\n\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId ) ? (\n\t\t\t\t\t\t\t<PostTemplateInnerBlocks />\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t<MemoizedPostTemplateBlockPreview\n\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\tblockContextId={ blockContext.postId }\n\t\t\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\tblockContext.postId ===\n\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.postId )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t) ) }\n\t\t</ul>\n\t);\n}\n"]}
|
|
@@ -133,9 +133,12 @@ const SiteLogo = _ref => {
|
|
|
133
133
|
height
|
|
134
134
|
}
|
|
135
135
|
}, imgWrapper);
|
|
136
|
-
}
|
|
136
|
+
} // Set the default width to a responsible size.
|
|
137
|
+
// Note that this width is also set in the attached frontend CSS file.
|
|
138
|
+
|
|
137
139
|
|
|
138
|
-
const
|
|
140
|
+
const defaultWidth = 120;
|
|
141
|
+
const currentWidth = width || defaultWidth;
|
|
139
142
|
const ratio = naturalWidth / naturalHeight;
|
|
140
143
|
const currentHeight = currentWidth / ratio;
|
|
141
144
|
const minWidth = naturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;
|
|
@@ -149,10 +152,7 @@ const SiteLogo = _ref => {
|
|
|
149
152
|
// @todo It would be good to revisit this once a content-width variable
|
|
150
153
|
// becomes available.
|
|
151
154
|
|
|
152
|
-
const maxWidthBuffer = maxWidth * 2.5;
|
|
153
|
-
// Note that this width is also set in the attached CSS file.
|
|
154
|
-
|
|
155
|
-
const defaultWidth = 120;
|
|
155
|
+
const maxWidthBuffer = maxWidth * 2.5;
|
|
156
156
|
let showRightHandle = false;
|
|
157
157
|
let showLeftHandle = false;
|
|
158
158
|
/* eslint-disable no-lonely-if */
|
|
@@ -352,6 +352,9 @@ export default function LogoEdit(_ref2) {
|
|
|
352
352
|
const onRemoveLogo = () => {
|
|
353
353
|
setLogo(null);
|
|
354
354
|
setLogoUrl(undefined);
|
|
355
|
+
setAttributes({
|
|
356
|
+
width: undefined
|
|
357
|
+
});
|
|
355
358
|
};
|
|
356
359
|
|
|
357
360
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/site-logo/edit.js"],"names":["classnames","includes","pick","isBlobURL","useEffect","useState","useRef","__","isRTL","MenuItem","PanelBody","RangeControl","ResizableBox","Spinner","ToggleControl","ToolbarButton","Placeholder","Button","useViewportMatch","BlockControls","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","__experimentalImageEditor","ImageEditor","__experimentalImageEditingProvider","ImageEditingProvider","useSelect","useDispatch","coreStore","crop","upload","SVG","Path","noticesStore","useClientWidth","MIN_SIZE","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","containerRef","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","clientWidth","isLargeViewport","isWideAligned","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","classes","imageEditing","maxWidth","title","select","getSettings","siteEntities","getEditedEntityRecord","onResizeStart","onResizeStop","img","event","target","imgWrapper","preventDefault","imageWidthWithinContainer","exceedMaxWidth","currentWidth","ratio","currentHeight","minWidth","minHeight","maxWidthBuffer","defaultWidth","showRightHandle","showLeftHandle","canEditImage","imgEdit","imageAttributes","id","top","right","bottom","left","direction","elt","delta","parseInt","newWidth","Math","min","value","LogoEdit","className","setLogoUrl","ref","siteLogoId","canUserEdit","url","mediaItemData","isRequestingMediaItem","canUser","getEntityRecord","siteSettings","siteData","_siteLogo","site_logo","_readOnlyLogo","_canUserEdit","_siteLogoId","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","source_url","alt_text","editEntityRecord","newValue","undefined","onSelectLogo","media","onRemoveLogo","createErrorNotice","onUploadError","message","type","controls","logoImage","isLoading","placeholder","content","placeholderClassName","blockProps","label","open"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { includes, pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { useEffect, useState, useRef } 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} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalImageEditingProvider as ImageEditingProvider,\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 { SVG, Path } from '@wordpress/primitives';\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 },\n\tcontainerRef,\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n} ) => {\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = includes( [ 'wide', 'full' ], 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 { getSettings } = select( blockEditorStore );\n\t\tconst siteEntities = select( coreStore ).getEditedEntityRecord(\n\t\t\t'root',\n\t\t\t'site'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities.title,\n\t\t\t...pick( getSettings(), [ 'imageEditing', 'maxWidth' ] ),\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\tpick( event.target, [ 'naturalWidth', '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\tconst currentWidth = width || imageWidthWithinContainer;\n\tconst ratio = naturalWidth / naturalHeight;\n\tconst currentHeight = currentWidth / ratio;\n\tconst minWidth = naturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : 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\t// Set the default width to a responsible size.\n\t// Note that this width is also set in the attached CSS file.\n\tconst defaultWidth = 120;\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<ImageEditingProvider\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tisEditing={ isEditingImage }\n\t\t\t\tonFinishEditing={ () => setIsEditingImage( false ) }\n\t\t\t>\n\t\t\t\t<ImageEditor\n\t\t\t\t\turl={ logoUrl }\n\t\t\t\t\twidth={ currentWidth }\n\t\t\t\t\theight={ currentHeight }\n\t\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t/>\n\t\t\t</ImageEditingProvider>\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\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\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\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\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</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\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width } = attributes;\n\tconst [ logoUrl, setLogoUrl ] = useState();\n\tconst ref = useRef();\n\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } = select(\n\t\t\tcoreStore\n\t\t);\n\t\tconst siteSettings = getEditedEntityRecord( 'root', 'site' );\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogo = siteSettings?.site_logo;\n\t\tconst _readOnlyLogo = siteData?.site_logo;\n\t\tconst _canUserEdit = canUser( 'update', 'settings' );\n\t\tconst _siteLogoId = _canUserEdit ? _siteLogo : _readOnlyLogo;\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\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.url,\n\t\t\tmediaItemData: mediaItem && {\n\t\t\t\tid: mediaItem.id,\n\t\t\t\turl: mediaItem.source_url,\n\t\t\t\talt: mediaItem.alt_text,\n\t\t\t},\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t};\n\t}, [] );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst setLogo = ( newValue ) =>\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\n\tlet alt = null;\n\tif ( mediaItemData ) {\n\t\talt = mediaItemData.alt;\n\t\tif ( logoUrl !== mediaItemData.url ) {\n\t\t\tsetLogoUrl( mediaItemData.url );\n\t\t}\n\t}\n\tconst onSelectLogo = ( media ) => {\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\tsetLogoUrl( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetLogoUrl( undefined );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message[ 2 ], { type: 'snackbar' } );\n\t};\n\n\tconst controls = canUserEdit && logoUrl && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaURL={ logoUrl }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\tonSelect={ onSelectLogo }\n\t\t\t\tonError={ onUploadError }\n\t\t\t>\n\t\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t\t</MediaReplaceFlow>\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/>\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>\n\t\t\t\t{\n\t\t\t\t\t<SVG\n\t\t\t\t\t\tclassName=\"components-placeholder__illustration\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\tviewBox=\"0 0 60 60\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Path\n\t\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t\t\td=\"m61 32.622-13.555-9.137-15.888 9.859a5 5 0 0 1-5.386-.073l-9.095-5.989L1 37.5\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SVG>\n\t\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\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\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={ onSelectLogo }\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"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/site-logo/edit.js"],"names":["classnames","includes","pick","isBlobURL","useEffect","useState","useRef","__","isRTL","MenuItem","PanelBody","RangeControl","ResizableBox","Spinner","ToggleControl","ToolbarButton","Placeholder","Button","useViewportMatch","BlockControls","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","__experimentalImageEditor","ImageEditor","__experimentalImageEditingProvider","ImageEditingProvider","useSelect","useDispatch","coreStore","crop","upload","SVG","Path","noticesStore","useClientWidth","MIN_SIZE","ALLOWED_MEDIA_TYPES","ACCEPT_MEDIA_STRING","SiteLogo","alt","attributes","align","width","height","isLink","linkTarget","containerRef","isSelected","setAttributes","setLogo","logoUrl","siteUrl","logoId","clientWidth","isLargeViewport","isWideAligned","isResizable","naturalWidth","naturalHeight","setNaturalSize","isEditingImage","setIsEditingImage","toggleSelection","classes","imageEditing","maxWidth","title","select","getSettings","siteEntities","getEditedEntityRecord","onResizeStart","onResizeStop","img","event","target","imgWrapper","preventDefault","imageWidthWithinContainer","exceedMaxWidth","defaultWidth","currentWidth","ratio","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","canEditImage","imgEdit","imageAttributes","id","top","right","bottom","left","direction","elt","delta","parseInt","newWidth","Math","min","value","LogoEdit","className","setLogoUrl","ref","siteLogoId","canUserEdit","url","mediaItemData","isRequestingMediaItem","canUser","getEntityRecord","siteSettings","siteData","_siteLogo","site_logo","_readOnlyLogo","_canUserEdit","_siteLogoId","mediaItem","getMedia","context","_isRequestingMediaItem","hasFinishedResolution","source_url","alt_text","editEntityRecord","newValue","undefined","onSelectLogo","media","onRemoveLogo","createErrorNotice","onUploadError","message","type","controls","logoImage","isLoading","placeholder","content","placeholderClassName","blockProps","label","open"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { includes, pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport { useEffect, useState, useRef } 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} from '@wordpress/components';\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalImageEditingProvider as ImageEditingProvider,\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 { SVG, Path } from '@wordpress/primitives';\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 },\n\tcontainerRef,\n\tisSelected,\n\tsetAttributes,\n\tsetLogo,\n\tlogoUrl,\n\tsiteUrl,\n\tlogoId,\n} ) => {\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = includes( [ 'wide', 'full' ], 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 { getSettings } = select( blockEditorStore );\n\t\tconst siteEntities = select( coreStore ).getEditedEntityRecord(\n\t\t\t'root',\n\t\t\t'site'\n\t\t);\n\t\treturn {\n\t\t\ttitle: siteEntities.title,\n\t\t\t...pick( getSettings(), [ 'imageEditing', 'maxWidth' ] ),\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\tpick( event.target, [ 'naturalWidth', '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 = naturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\tconst minHeight =\n\t\tnaturalHeight < naturalWidth ? MIN_SIZE : 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<ImageEditingProvider\n\t\t\t\tid={ logoId }\n\t\t\t\turl={ logoUrl }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) => {\n\t\t\t\t\tsetLogo( imageAttributes.id );\n\t\t\t\t} }\n\t\t\t\tisEditing={ isEditingImage }\n\t\t\t\tonFinishEditing={ () => setIsEditingImage( false ) }\n\t\t\t>\n\t\t\t\t<ImageEditor\n\t\t\t\t\turl={ logoUrl }\n\t\t\t\t\twidth={ currentWidth }\n\t\t\t\t\theight={ currentHeight }\n\t\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\t/>\n\t\t\t</ImageEditingProvider>\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\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\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\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\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</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\nexport default function LogoEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tisSelected,\n} ) {\n\tconst { width } = attributes;\n\tconst [ logoUrl, setLogoUrl ] = useState();\n\tconst ref = useRef();\n\n\tconst {\n\t\tsiteLogoId,\n\t\tcanUserEdit,\n\t\turl,\n\t\tmediaItemData,\n\t\tisRequestingMediaItem,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUser, getEntityRecord, getEditedEntityRecord } = select(\n\t\t\tcoreStore\n\t\t);\n\t\tconst siteSettings = getEditedEntityRecord( 'root', 'site' );\n\t\tconst siteData = getEntityRecord( 'root', '__unstableBase' );\n\t\tconst _siteLogo = siteSettings?.site_logo;\n\t\tconst _readOnlyLogo = siteData?.site_logo;\n\t\tconst _canUserEdit = canUser( 'update', 'settings' );\n\t\tconst _siteLogoId = _canUserEdit ? _siteLogo : _readOnlyLogo;\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\t\treturn {\n\t\t\tsiteLogoId: _siteLogoId,\n\t\t\tcanUserEdit: _canUserEdit,\n\t\t\turl: siteData?.url,\n\t\t\tmediaItemData: mediaItem && {\n\t\t\t\tid: mediaItem.id,\n\t\t\t\turl: mediaItem.source_url,\n\t\t\t\talt: mediaItem.alt_text,\n\t\t\t},\n\t\t\tisRequestingMediaItem: _isRequestingMediaItem,\n\t\t};\n\t}, [] );\n\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tconst setLogo = ( newValue ) =>\n\t\teditEntityRecord( 'root', 'site', undefined, {\n\t\t\tsite_logo: newValue,\n\t\t} );\n\n\tlet alt = null;\n\tif ( mediaItemData ) {\n\t\talt = mediaItemData.alt;\n\t\tif ( logoUrl !== mediaItemData.url ) {\n\t\t\tsetLogoUrl( mediaItemData.url );\n\t\t}\n\t}\n\tconst onSelectLogo = ( media ) => {\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\tsetLogoUrl( media.url );\n\t\t\treturn;\n\t\t}\n\n\t\tsetLogo( media.id );\n\t};\n\n\tconst onRemoveLogo = () => {\n\t\tsetLogo( null );\n\t\tsetLogoUrl( undefined );\n\t\tsetAttributes( { width: undefined } );\n\t};\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tconst onUploadError = ( message ) => {\n\t\tcreateErrorNotice( message[ 2 ], { type: 'snackbar' } );\n\t};\n\n\tconst controls = canUserEdit && logoUrl && (\n\t\t<BlockControls group=\"other\">\n\t\t\t<MediaReplaceFlow\n\t\t\t\tmediaURL={ logoUrl }\n\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\taccept={ ACCEPT_MEDIA_STRING }\n\t\t\t\tonSelect={ onSelectLogo }\n\t\t\t\tonError={ onUploadError }\n\t\t\t>\n\t\t\t\t<MenuItem onClick={ onRemoveLogo }>{ __( 'Reset' ) }</MenuItem>\n\t\t\t</MediaReplaceFlow>\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/>\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>\n\t\t\t\t{\n\t\t\t\t\t<SVG\n\t\t\t\t\t\tclassName=\"components-placeholder__illustration\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\tviewBox=\"0 0 60 60\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Path\n\t\t\t\t\t\t\tvectorEffect=\"non-scaling-stroke\"\n\t\t\t\t\t\t\td=\"m61 32.622-13.555-9.137-15.888 9.859a5 5 0 0 1-5.386-.073l-9.095-5.989L1 37.5\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</SVG>\n\t\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\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\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={ onSelectLogo }\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"]}
|
|
@@ -14,9 +14,6 @@ const metadata = {
|
|
|
14
14
|
description: "Display a graphic to represent this site. Update the block, and the changes apply everywhere it\u2019s used. This is different than the site icon, which is the smaller image visible in your dashboard, browser tabs, etc used to help others recognize this site.",
|
|
15
15
|
textdomain: "default",
|
|
16
16
|
attributes: {
|
|
17
|
-
align: {
|
|
18
|
-
type: "string"
|
|
19
|
-
},
|
|
20
17
|
width: {
|
|
21
18
|
type: "number"
|
|
22
19
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/site-logo/index.js"],"names":["siteLogo","icon","edit","name","metadata","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,IAAIC,IAArB,QAAiC,kBAAjC;AAEA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/site-logo/index.js"],"names":["siteLogo","icon","edit","name","metadata","settings"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,IAAIC,IAArB,QAAiC,kBAAjC;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AACA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBJ,EAAAA,IADuB;AAEvBC,EAAAA;AAFuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { siteLogo as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n};\n"]}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
|
+
/**
|
|
4
|
+
* External dependencies
|
|
5
|
+
*/
|
|
6
|
+
import { isEmpty } from 'lodash';
|
|
3
7
|
/**
|
|
4
8
|
* WordPress dependencies
|
|
5
9
|
*/
|
|
10
|
+
|
|
6
11
|
import { useSelect } from '@wordpress/data';
|
|
7
12
|
import { BlockControls, useBlockProps, __experimentalUseNoRecursiveRenders as useNoRecursiveRenders, Warning, store as blockEditorStore } from '@wordpress/block-editor';
|
|
8
13
|
import { Dropdown, ToolbarGroup, ToolbarButton, Spinner } from '@wordpress/components';
|
|
@@ -79,7 +84,7 @@ export default function TemplatePartEdit(_ref) {
|
|
|
79
84
|
return {
|
|
80
85
|
innerBlocks: getBlocks(clientId),
|
|
81
86
|
isResolved: hasResolvedEntity,
|
|
82
|
-
isMissing: hasResolvedEntity &&
|
|
87
|
+
isMissing: hasResolvedEntity && isEmpty(entityRecord),
|
|
83
88
|
defaultWrapper: defaultWrapperElement || 'div',
|
|
84
89
|
area: _area,
|
|
85
90
|
enableSelection: _enableSelection,
|