@wordpress/block-library 8.3.3 → 8.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/button/edit.js +3 -1
- package/build/button/edit.js.map +1 -1
- package/build/button/index.js +17 -6
- package/build/button/index.js.map +1 -1
- package/build/file/index.js +10 -1
- package/build/file/index.js.map +1 -1
- package/build/image/image.js +12 -11
- package/build/image/image.js.map +1 -1
- package/build/latest-comments/edit.js +6 -2
- package/build/latest-comments/edit.js.map +1 -1
- package/build/latest-comments/index.js +13 -0
- package/build/latest-comments/index.js.map +1 -1
- package/build/navigation/edit/menu-inspector-controls.js +3 -4
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +14 -11
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/use-navigation-menu.js +1 -1
- package/build/navigation/use-navigation-menu.js.map +1 -1
- package/build/navigation-link/edit.js +4 -0
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/link-ui.js +1 -0
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/navigation-submenu/edit.js +4 -0
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/page-list/edit.js +5 -4
- package/build/page-list/edit.js.map +1 -1
- package/build/page-list/use-convert-to-navigation-links.js +61 -5
- package/build/page-list/use-convert-to-navigation-links.js.map +1 -1
- package/build/post-excerpt/edit.js +49 -3
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-excerpt/index.js +4 -0
- package/build/post-excerpt/index.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js +52 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js +9 -4
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +3 -0
- package/build/post-featured-image/index.js.map +1 -1
- package/build/site-logo/edit.js +7 -11
- package/build/site-logo/edit.js.map +1 -1
- package/build/table/edit.js +3 -3
- package/build/table/edit.js.map +1 -1
- package/build/table-of-contents/utils.js +1 -1
- package/build/table-of-contents/utils.js.map +1 -1
- package/build/verse/index.js +6 -0
- package/build/verse/index.js.map +1 -1
- package/build-module/button/edit.js +2 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/index.js +17 -6
- package/build-module/button/index.js.map +1 -1
- package/build-module/file/index.js +10 -1
- package/build-module/file/index.js.map +1 -1
- package/build-module/image/image.js +12 -11
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-comments/edit.js +6 -2
- package/build-module/latest-comments/edit.js.map +1 -1
- package/build-module/latest-comments/index.js +13 -0
- package/build-module/latest-comments/index.js.map +1 -1
- package/build-module/navigation/edit/menu-inspector-controls.js +2 -2
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +14 -10
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/use-navigation-menu.js +1 -1
- package/build-module/navigation/use-navigation-menu.js.map +1 -1
- package/build-module/navigation-link/edit.js +4 -0
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/link-ui.js +1 -0
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +4 -0
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/page-list/edit.js +5 -4
- package/build-module/page-list/edit.js.map +1 -1
- package/build-module/page-list/use-convert-to-navigation-links.js +61 -5
- package/build-module/page-list/use-convert-to-navigation-links.js.map +1 -1
- package/build-module/post-excerpt/edit.js +52 -5
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-excerpt/index.js +4 -0
- package/build-module/post-excerpt/index.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js +52 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js +9 -4
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +3 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/site-logo/edit.js +7 -11
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/table/edit.js +3 -3
- package/build-module/table/edit.js.map +1 -1
- package/build-module/table-of-contents/utils.js +1 -1
- package/build-module/table-of-contents/utils.js.map +1 -1
- package/build-module/verse/index.js +6 -0
- package/build-module/verse/index.js.map +1 -1
- package/build-style/avatar/style-rtl.css +3 -0
- package/build-style/avatar/style.css +3 -0
- package/build-style/button/editor-rtl.css +31 -0
- package/build-style/button/editor.css +31 -0
- package/build-style/button/style-rtl.css +31 -0
- package/build-style/button/style.css +31 -0
- package/build-style/editor-rtl.css +32 -0
- package/build-style/editor.css +32 -0
- package/build-style/file/style-rtl.css +1 -0
- package/build-style/file/style.css +1 -0
- package/build-style/image/editor-rtl.css +1 -0
- package/build-style/image/editor.css +1 -0
- package/build-style/image/style-rtl.css +6 -2
- package/build-style/image/style.css +6 -0
- package/build-style/latest-comments/style-rtl.css +18 -5
- package/build-style/latest-comments/style.css +18 -5
- package/build-style/quote/style-rtl.css +5 -5
- package/build-style/quote/style.css +5 -5
- package/build-style/style-rtl.css +64 -12
- package/build-style/style.css +64 -10
- package/build-types/table-of-contents/utils.d.ts +1 -1
- package/package.json +30 -30
- package/src/avatar/index.php +67 -63
- package/src/avatar/style.scss +3 -0
- package/src/button/block.json +17 -6
- package/src/button/edit.js +2 -1
- package/src/button/editor.scss +36 -0
- package/src/button/style.scss +37 -1
- package/src/file/block.json +10 -1
- package/src/file/style.scss +1 -0
- package/src/image/editor.scss +1 -0
- package/src/image/image.js +5 -11
- package/src/image/style.scss +13 -0
- package/src/latest-comments/block.json +13 -0
- package/src/latest-comments/edit.js +9 -2
- package/src/latest-comments/style.scss +25 -7
- package/src/navigation/edit/menu-inspector-controls.js +1 -3
- package/src/navigation/edit/navigation-menu-selector.js +12 -26
- package/src/navigation/edit/test/navigation-menu-selector.js +638 -0
- package/src/navigation/index.php +8 -6
- package/src/navigation/use-navigation-menu.js +1 -1
- package/src/navigation-link/edit.js +3 -0
- package/src/navigation-link/link-ui.js +1 -0
- package/src/navigation-submenu/edit.js +3 -0
- package/src/page-list/edit.js +6 -5
- package/src/page-list/index.php +4 -4
- package/src/page-list/test/convert-to-links-modal.js +134 -0
- package/src/page-list/use-convert-to-navigation-links.js +64 -4
- package/src/post-excerpt/block.json +4 -0
- package/src/post-excerpt/edit.js +72 -7
- package/src/post-excerpt/index.php +29 -5
- package/src/post-featured-image/block.json +3 -0
- package/src/post-featured-image/dimension-controls.js +64 -2
- package/src/post-featured-image/edit.js +18 -6
- package/src/post-featured-image/index.php +25 -9
- package/src/post-title/index.php +3 -3
- package/src/quote/style.scss +2 -2
- package/src/site-logo/edit.js +3 -6
- package/src/table/edit.js +3 -3
- package/src/table-of-contents/utils.ts +1 -1
- package/src/template-part/index.php +1 -1
- package/src/verse/block.json +6 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/navigation/leaf-more-menu.js +0 -95
- package/build/navigation/leaf-more-menu.js.map +0 -1
- package/build-module/navigation/leaf-more-menu.js +0 -76
- package/build-module/navigation/leaf-more-menu.js.map +0 -1
- package/src/navigation/leaf-more-menu.js +0 -93
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/image/image.js"],"names":["get","isEmpty","isBlobURL","ExternalLink","PanelBody","ResizableBox","Spinner","TextareaControl","TextControl","ToolbarButton","useViewportMatch","usePrevious","useSelect","useDispatch","BlockControls","InspectorControls","RichText","__experimentalImageSizeControl","ImageSizeControl","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","BlockAlignmentControl","__experimentalImageEditor","ImageEditor","__experimentalGetElementClassName","__experimentalUseBorderProps","useBorderProps","useEffect","useMemo","useState","useRef","useCallback","__","sprintf","isRTL","getFilename","createBlock","getDefaultBlockName","switchToBlockType","crop","overlayText","upload","caption","captionIcon","noticesStore","coreStore","createUpgradedEmbedBlock","useClientWidth","isExternalImage","MIN_SIZE","ALLOWED_MEDIA_TYPES","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","isContentLocked","url","alt","align","id","href","rel","linkClass","linkDestination","title","width","height","linkTarget","sizeSlug","imageRef","prevCaption","showCaption","setShowCaption","allowResize","getBlock","image","multiImageSelection","select","getMedia","getMultiSelectedBlockClientIds","getBlockName","multiSelectedClientIds","length","every","_clientId","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","getBlockRootClientId","getSettings","canInsertBlockType","rootClientId","settings","Object","fromEntries","entries","filter","key","includes","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","isResizable","imageSizeOptions","slug","map","name","value","label","window","fetch","then","response","blob","catch","captionRef","node","focus","naturalWidth","naturalHeight","current","undefined","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","updateAlignment","nextAlign","extraUpdatedAttributes","canEditImage","allowCrop","switchToCover","controls","source_url","link","filename","defaultedAlt","borderProps","isRounded","className","hasCustomBorder","style","event","target","imageWidthWithinContainer","imageHeightWithinContainer","exceedMaxWidth","ratio","imageAttributes","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","top","right","bottom","left","direction","elt","delta","parseInt"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tPanelBody,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useViewportMatch, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tBlockAlignmentControl,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalGetElementClassName,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tcrop,\n\toverlayText,\n\tupload,\n\tcaption as captionIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tisContentLocked,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst imageRef = useRef();\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image, multiImageSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\tconst { getMultiSelectedBlockClientIds, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t\tmultiImageSelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected, clientId ]\n\t);\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetSettings,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\tconst settings = Object.fromEntries(\n\t\t\t\t\tObject.entries( getSettings() ).filter( ( [ key ] ) =>\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t'imageEditing',\n\t\t\t\t\t\t\t'imageSizes',\n\t\t\t\t\t\t\t'maxWidth',\n\t\t\t\t\t\t\t'mediaUpload',\n\t\t\t\t\t\t].includes( key )\n\t\t\t\t\t)\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\t...settings,\n\t\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isResizable =\n\t\tallowResize &&\n\t\t! isContentLocked &&\n\t\t! ( isWideAligned && isLargeViewport );\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) =>\n\t\t\tget( image, [ 'media_details', 'sizes', slug, 'source_url' ] )\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif ( ! isExternalImage( id, url ) || ! isSelected || externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t.fetch( url )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob ] );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = get( image, [\n\t\t\t'media_details',\n\t\t\t'sizes',\n\t\t\tnewSizeSlug,\n\t\t\t'source_url',\n\t\t] );\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t\tif ( ! caption ) {\n\t\t\t\tsetShowCaption( false );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\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\t{ externalBlob && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\tlabel={ __( 'Upload external image' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Alt text (alternative text)' ) }\n\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\t\tonChange={ ( value ) => setAttributes( value ) }\n\t\t\t\t\t\tslug={ sizeSlug }\n\t\t\t\t\t\twidth={ width }\n\t\t\t\t\t\theight={ height }\n\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\tisResizable={ isResizable }\n\t\t\t\t\t\timageWidth={ naturalWidth }\n\t\t\t\t\t\timageHeight={ naturalHeight }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\tconst hasCustomBorder =\n\t\t!! borderProps.className || ! isEmpty( borderProps.style );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ borderProps.style }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\tlet imageWidthWithinContainer;\n\tlet imageHeightWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\tconst ratio = naturalHeight / naturalWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t\timageHeightWithinContainer = exceedMaxWidth\n\t\t\t? clientWidth * ratio\n\t\t\t: naturalHeight;\n\t}\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ id }\n\t\t\t\turl={ url }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t}\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t/>\n\t\t);\n\t} else if ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\timg = <div style={ { width, height } }>{ img }</div>;\n\t} else {\n\t\tconst currentWidth = width || imageWidthWithinContainer;\n\t\tconst currentHeight = height || imageHeightWithinContainer;\n\n\t\tconst ratio = naturalWidth / naturalHeight;\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: width ?? 'auto',\n\t\t\t\t\theight: height && ! hasCustomBorder ? height : 'auto',\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\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/image/image.js"],"names":["get","isEmpty","isBlobURL","ExternalLink","PanelBody","ResizableBox","Spinner","TextareaControl","TextControl","ToolbarButton","useViewportMatch","usePrevious","useSelect","useDispatch","BlockControls","InspectorControls","RichText","__experimentalImageSizeControl","ImageSizeControl","__experimentalImageURLInputUI","ImageURLInputUI","MediaReplaceFlow","store","blockEditorStore","BlockAlignmentControl","__experimentalImageEditor","ImageEditor","__experimentalGetElementClassName","__experimentalUseBorderProps","useBorderProps","useEffect","useMemo","useState","useRef","useCallback","__","sprintf","isRTL","getFilename","createBlock","getDefaultBlockName","switchToBlockType","crop","overlayText","upload","caption","captionIcon","noticesStore","coreStore","createUpgradedEmbedBlock","useClientWidth","isExternalImage","MIN_SIZE","ALLOWED_MEDIA_TYPES","Image","temporaryURL","attributes","setAttributes","isSelected","insertBlocksAfter","onReplace","onSelectImage","onSelectURL","onUploadError","containerRef","context","clientId","isContentLocked","url","alt","align","id","href","rel","linkClass","linkDestination","title","width","height","linkTarget","sizeSlug","imageRef","prevCaption","showCaption","setShowCaption","allowResize","getBlock","image","multiImageSelection","select","getMedia","getMultiSelectedBlockClientIds","getBlockName","multiSelectedClientIds","length","every","_clientId","canInsertCover","imageEditing","imageSizes","maxWidth","mediaUpload","getBlockRootClientId","getSettings","canInsertBlockType","rootClientId","settings","replaceBlocks","toggleSelection","createErrorNotice","createSuccessNotice","isLargeViewport","isWideAligned","includes","loadedNaturalWidth","loadedNaturalHeight","setLoadedNaturalSize","isEditingImage","setIsEditingImage","externalBlob","setExternalBlob","clientWidth","isResizable","imageSizeOptions","filter","slug","map","name","value","label","window","fetch","then","response","blob","catch","captionRef","node","focus","naturalWidth","naturalHeight","current","undefined","complete","onResizeStart","onResizeStop","onImageError","embedBlock","onSetHref","props","onSetTitle","updateAlt","newAlt","updateImage","newSizeSlug","newUrl","uploadExternal","filesList","onFileChange","img","type","allowedTypes","onError","message","updateAlignment","nextAlign","extraUpdatedAttributes","canEditImage","allowCrop","switchToCover","controls","source_url","link","filename","defaultedAlt","borderProps","isRounded","className","hasCustomBorder","style","event","target","imageWidthWithinContainer","imageHeightWithinContainer","exceedMaxWidth","ratio","imageAttributes","currentWidth","currentHeight","minWidth","minHeight","maxWidthBuffer","showRightHandle","showLeftHandle","top","right","bottom","left","direction","elt","delta","parseInt"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,GAAT,EAAcC,OAAd,QAA6B,QAA7B;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SACCC,YADD,EAECC,SAFD,EAGCC,YAHD,EAICC,OAJD,EAKCC,eALD,EAMCC,WAND,EAOCC,aAPD,QAQO,uBARP;AASA,SAASC,gBAAT,EAA2BC,WAA3B,QAA8C,oBAA9C;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SACCC,aADD,EAECC,iBAFD,EAGCC,QAHD,EAICC,8BAA8B,IAAIC,gBAJnC,EAKCC,6BAA6B,IAAIC,eALlC,EAMCC,gBAND,EAOCC,KAAK,IAAIC,gBAPV,EAQCC,qBARD,EASCC,yBAAyB,IAAIC,WAT9B,EAUCC,iCAVD,EAWCC,4BAA4B,IAAIC,cAXjC,QAYO,yBAZP;AAaA,SACCC,SADD,EAECC,OAFD,EAGCC,QAHD,EAICC,MAJD,EAKCC,WALD,QAMO,oBANP;AAOA,SAASC,EAAT,EAAaC,OAAb,EAAsBC,KAAtB,QAAmC,iBAAnC;AACA,SAASC,WAAT,QAA4B,gBAA5B;AACA,SACCC,WADD,EAECC,mBAFD,EAGCC,iBAHD,QAIO,mBAJP;AAKA,SACCC,IADD,EAECC,WAFD,EAGCC,MAHD,EAICC,OAAO,IAAIC,WAJZ,QAKO,kBALP;AAMA,SAASxB,KAAK,IAAIyB,YAAlB,QAAsC,oBAAtC;AACA,SAASzB,KAAK,IAAI0B,SAAlB,QAAmC,sBAAnC;AAEA;AACA;AACA;;AACA,SAASC,wBAAT,QAAyC,eAAzC;AACA,OAAOC,cAAP,MAA2B,oBAA3B;AACA,SAASC,eAAT,QAAgC,QAAhC;AAEA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,mBAAnB,QAA8C,aAA9C;AAEA,eAAe,SAASC,KAAT,OAcX;AAAA;;AAAA,MAd2B;AAC9BC,IAAAA,YAD8B;AAE9BC,IAAAA,UAF8B;AAG9BC,IAAAA,aAH8B;AAI9BC,IAAAA,UAJ8B;AAK9BC,IAAAA,iBAL8B;AAM9BC,IAAAA,SAN8B;AAO9BC,IAAAA,aAP8B;AAQ9BC,IAAAA,WAR8B;AAS9BC,IAAAA,aAT8B;AAU9BC,IAAAA,YAV8B;AAW9BC,IAAAA,OAX8B;AAY9BC,IAAAA,QAZ8B;AAa9BC,IAAAA;AAb8B,GAc3B;AACH,QAAM;AACLC,IAAAA,GAAG,GAAG,EADD;AAELC,IAAAA,GAFK;AAGLxB,IAAAA,OAHK;AAILyB,IAAAA,KAJK;AAKLC,IAAAA,EALK;AAMLC,IAAAA,IANK;AAOLC,IAAAA,GAPK;AAQLC,IAAAA,SARK;AASLC,IAAAA,eATK;AAULC,IAAAA,KAVK;AAWLC,IAAAA,KAXK;AAYLC,IAAAA,MAZK;AAaLC,IAAAA,UAbK;AAcLC,IAAAA;AAdK,MAeFxB,UAfJ;AAgBA,QAAMyB,QAAQ,GAAGhD,MAAM,EAAvB;AACA,QAAMiD,WAAW,GAAGvE,WAAW,CAAEkC,OAAF,CAA/B;AACA,QAAM,CAAEsC,WAAF,EAAeC,cAAf,IAAkCpD,QAAQ,CAAE,CAAC,CAAEa,OAAL,CAAhD;AACA,QAAM;AAAEwC,IAAAA,WAAW,GAAG;AAAhB,MAAyBpB,OAA/B;AACA,QAAM;AAAEqB,IAAAA;AAAF,MAAe1E,SAAS,CAAEW,gBAAF,CAA9B;AAEA,QAAM;AAAEgE,IAAAA,KAAF;AAASC,IAAAA;AAAT,MAAiC5E,SAAS,CAC7C6E,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAeD,MAAM,CAAEzC,SAAF,CAA3B;AACA,UAAM;AAAE2C,MAAAA,8BAAF;AAAkCC,MAAAA;AAAlC,QACLH,MAAM,CAAElE,gBAAF,CADP;AAEA,UAAMsE,sBAAsB,GAAGF,8BAA8B,EAA7D;AACA,WAAO;AACNJ,MAAAA,KAAK,EACJhB,EAAE,IAAIb,UAAN,GACGgC,QAAQ,CAAEnB,EAAF,EAAM;AAAEN,QAAAA,OAAO,EAAE;AAAX,OAAN,CADX,GAEG,IAJE;AAKNuB,MAAAA,mBAAmB,EAClBK,sBAAsB,CAACC,MAAvB,IACAD,sBAAsB,CAACE,KAAvB,CACGC,SAAF,IACCJ,YAAY,CAAEI,SAAF,CAAZ,KAA8B,YAFhC;AAPK,KAAP;AAYA,GAlB8C,EAmB/C,CAAEzB,EAAF,EAAMb,UAAN,EAAkBQ,QAAlB,CAnB+C,CAAhD;AAqBA,QAAM;AAAE+B,IAAAA,cAAF;AAAkBC,IAAAA,YAAlB;AAAgCC,IAAAA,UAAhC;AAA4CC,IAAAA,QAA5C;AAAsDC,IAAAA;AAAtD,MACLzF,SAAS,CACN6E,MAAF,IAAc;AACb,UAAM;AACLa,MAAAA,oBADK;AAELC,MAAAA,WAFK;AAGLC,MAAAA;AAHK,QAIFf,MAAM,CAAElE,gBAAF,CAJV;AAMA,UAAMkF,YAAY,GAAGH,oBAAoB,CAAEpC,QAAF,CAAzC;AACA,UAAMwC,QAAQ,GAAGH,WAAW,EAA5B;AAEA,WAAO;AACNL,MAAAA,YAAY,EAAEQ,QAAQ,CAACR,YADjB;AAENC,MAAAA,UAAU,EAAEO,QAAQ,CAACP,UAFf;AAGNC,MAAAA,QAAQ,EAAEM,QAAQ,CAACN,QAHb;AAINC,MAAAA,WAAW,EAAEK,QAAQ,CAACL,WAJhB;AAKNJ,MAAAA,cAAc,EAAEO,kBAAkB,CACjC,YADiC,EAEjCC,YAFiC;AAL5B,KAAP;AAUA,GArBO,EAsBR,CAAEvC,QAAF,CAtBQ,CADV;AAyBA,QAAM;AAAEyC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAqC/F,WAAW,CAAEU,gBAAF,CAAtD;AACA,QAAM;AAAEsF,IAAAA,iBAAF;AAAqBC,IAAAA;AAArB,MACLjG,WAAW,CAAEkC,YAAF,CADZ;AAEA,QAAMgE,eAAe,GAAGrG,gBAAgB,CAAE,QAAF,CAAxC;AACA,QAAMsG,aAAa,GAAG,CAAE,MAAF,EAAU,MAAV,EAAmBC,QAAnB,CAA6B3C,KAA7B,CAAtB;AACA,QAAM,CACL;AAAE4C,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,GADK,EAELC,oBAFK,IAGFpF,QAAQ,CAAE,EAAF,CAHZ;AAIA,QAAM,CAAEqF,cAAF,EAAkBC,iBAAlB,IAAwCtF,QAAQ,CAAE,KAAF,CAAtD;AACA,QAAM,CAAEuF,YAAF,EAAgBC,eAAhB,IAAoCxF,QAAQ,EAAlD;AACA,QAAMyF,WAAW,GAAGvE,cAAc,CAAEc,YAAF,EAAgB,CAAEM,KAAF,CAAhB,CAAlC;AACA,QAAMoD,WAAW,GAChBrC,WAAW,IACX,CAAElB,eADF,IAEA,EAAI6C,aAAa,IAAID,eAArB,CAHD;AAIA,QAAMY,gBAAgB,GAAGxB,UAAU,CACjCyB,MADuB,CACf;AAAA,QAAE;AAAEC,MAAAA;AAAF,KAAF;AAAA,WACR7H,GAAG,CAAEuF,KAAF,EAAS,CAAE,eAAF,EAAmB,OAAnB,EAA4BsC,IAA5B,EAAkC,YAAlC,CAAT,CADK;AAAA,GADe,EAIvBC,GAJuB,CAIlB;AAAA,QAAE;AAAEC,MAAAA,IAAF;AAAQF,MAAAA;AAAR,KAAF;AAAA,WAAwB;AAAEG,MAAAA,KAAK,EAAEH,IAAT;AAAeI,MAAAA,KAAK,EAAEF;AAAtB,KAAxB;AAAA,GAJkB,CAAzB,CArFG,CA2FH;AACA;AACA;;AACAjG,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAEqB,eAAe,CAAEoB,EAAF,EAAMH,GAAN,CAAjB,IAAgC,CAAEV,UAAlC,IAAgD6D,YAArD,EAAoE;AACnE;AACA;;AAEDW,IAAAA,MAAM,CACJC,KADF,CACS/D,GADT,EAEEgE,IAFF,CAEUC,QAAF,IAAgBA,QAAQ,CAACC,IAAT,EAFxB,EAGEF,IAHF,CAGUE,IAAF,IAAYd,eAAe,CAAEc,IAAF,CAHnC,EAIC;AAJD,KAKEC,KALF,CAKS,MAAM,CAAE,CALjB;AAMA,GAXQ,EAWN,CAAEhE,EAAF,EAAMH,GAAN,EAAWV,UAAX,EAAuB6D,YAAvB,CAXM,CAAT,CA9FG,CA2GH;AACA;;AACAzF,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAKe,OAAO,IAAI,CAAEqC,WAAlB,EAAgC;AAC/BE,MAAAA,cAAc,CAAE,IAAF,CAAd;AACA;AACD,GAJQ,EAIN,CAAEvC,OAAF,EAAWqC,WAAX,CAJM,CAAT,CA7GG,CAmHH;;AACA,QAAMsD,UAAU,GAAGtG,WAAW,CAC3BuG,IAAF,IAAY;AACX,QAAKA,IAAI,IAAI,CAAE5F,OAAf,EAAyB;AACxB4F,MAAAA,IAAI,CAACC,KAAL;AACA;AACD,GAL4B,EAM7B,CAAE7F,OAAF,CAN6B,CAA9B,CApHG,CA6HH;AACA;AACA;AACA;;AACA,QAAM;AAAE8F,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAkC7G,OAAO,CAAE,MAAM;AAAA;;AACtD,WAAO;AACN4G,MAAAA,YAAY,EACX,sBAAA1D,QAAQ,CAAC4D,OAAT,wEAAkBF,YAAlB,KACAzB,kBADA,IAEA4B,SAJK;AAKNF,MAAAA,aAAa,EACZ,uBAAA3D,QAAQ,CAAC4D,OAAT,0EAAkBD,aAAlB,KACAzB,mBADA,IAEA2B;AARK,KAAP;AAUA,GAX8C,EAW5C,CACF5B,kBADE,EAEFC,mBAFE,wBAGFlC,QAAQ,CAAC4D,OAHP,uDAGF,mBAAkBE,QAHhB,CAX4C,CAA/C;;AAiBA,WAASC,aAAT,GAAyB;AACxBpC,IAAAA,eAAe,CAAE,KAAF,CAAf;AACA;;AAED,WAASqC,YAAT,GAAwB;AACvBrC,IAAAA,eAAe,CAAE,IAAF,CAAf;AACA;;AAED,WAASsC,YAAT,GAAwB;AACvB;AACA;AACA,UAAMC,UAAU,GAAGlG,wBAAwB,CAAE;AAAEO,MAAAA,UAAU,EAAE;AAAEY,QAAAA;AAAF;AAAd,KAAF,CAA3C;;AAEA,QAAK0E,SAAS,KAAKK,UAAnB,EAAgC;AAC/BvF,MAAAA,SAAS,CAAEuF,UAAF,CAAT;AACA;AACD;;AAED,WAASC,SAAT,CAAoBC,KAApB,EAA4B;AAC3B5F,IAAAA,aAAa,CAAE4F,KAAF,CAAb;AACA;;AAED,WAASC,UAAT,CAAqBtB,KAArB,EAA6B;AAC5B;AACA;AACAvE,IAAAA,aAAa,CAAE;AAAEmB,MAAAA,KAAK,EAAEoD;AAAT,KAAF,CAAb;AACA;;AAED,WAASuB,SAAT,CAAoBC,MAApB,EAA6B;AAC5B/F,IAAAA,aAAa,CAAE;AAAEY,MAAAA,GAAG,EAAEmF;AAAP,KAAF,CAAb;AACA;;AAED,WAASC,WAAT,CAAsBC,WAAtB,EAAoC;AACnC,UAAMC,MAAM,GAAG3J,GAAG,CAAEuF,KAAF,EAAS,CAC1B,eAD0B,EAE1B,OAF0B,EAG1BmE,WAH0B,EAI1B,YAJ0B,CAAT,CAAlB;;AAMA,QAAK,CAAEC,MAAP,EAAgB;AACf,aAAO,IAAP;AACA;;AAEDlG,IAAAA,aAAa,CAAE;AACdW,MAAAA,GAAG,EAAEuF,MADS;AAEd9E,MAAAA,KAAK,EAAEiE,SAFO;AAGdhE,MAAAA,MAAM,EAAEgE,SAHM;AAId9D,MAAAA,QAAQ,EAAE0E;AAJI,KAAF,CAAb;AAMA;;AAED,WAASE,cAAT,GAA0B;AACzBvD,IAAAA,WAAW,CAAE;AACZwD,MAAAA,SAAS,EAAE,CAAEtC,YAAF,CADC;;AAEZuC,MAAAA,YAAY,QAAY;AAAA,YAAV,CAAEC,GAAF,CAAU;AACvBlG,QAAAA,aAAa,CAAEkG,GAAF,CAAb;;AAEA,YAAK7J,SAAS,CAAE6J,GAAG,CAAC3F,GAAN,CAAd,EAA4B;AAC3B;AACA;;AAEDoD,QAAAA,eAAe;AACfV,QAAAA,mBAAmB,CAAE3E,EAAE,CAAE,iBAAF,CAAJ,EAA2B;AAC7C6H,UAAAA,IAAI,EAAE;AADuC,SAA3B,CAAnB;AAGA,OAbW;;AAcZC,MAAAA,YAAY,EAAE5G,mBAdF;;AAeZ6G,MAAAA,OAAO,CAAEC,OAAF,EAAY;AAClBtD,QAAAA,iBAAiB,CAAEsD,OAAF,EAAW;AAAEH,UAAAA,IAAI,EAAE;AAAR,SAAX,CAAjB;AACA;;AAjBW,KAAF,CAAX;AAmBA;;AAED,WAASI,eAAT,CAA0BC,SAA1B,EAAsC;AACrC,UAAMC,sBAAsB,GAAG,CAAE,MAAF,EAAU,MAAV,EAAmBrD,QAAnB,CAA6BoD,SAA7B,IAC5B;AAAExF,MAAAA,KAAK,EAAEiE,SAAT;AAAoBhE,MAAAA,MAAM,EAAEgE;AAA5B,KAD4B,GAE5B,EAFH;AAGArF,IAAAA,aAAa,CAAE,EACd,GAAG6G,sBADW;AAEdhG,MAAAA,KAAK,EAAE+F;AAFO,KAAF,CAAb;AAIA;;AAEDvI,EAAAA,SAAS,CAAE,MAAM;AAChB,QAAK,CAAE4B,UAAP,EAAoB;AACnB4D,MAAAA,iBAAiB,CAAE,KAAF,CAAjB;;AACA,UAAK,CAAEzE,OAAP,EAAiB;AAChBuC,QAAAA,cAAc,CAAE,KAAF,CAAd;AACA;AACD;AACD,GAPQ,EAON,CAAE1B,UAAF,EAAcb,OAAd,CAPM,CAAT;AASA,QAAM0H,YAAY,GAAGhG,EAAE,IAAIoE,YAAN,IAAsBC,aAAtB,IAAuC1C,YAA5D;AACA,QAAMsE,SAAS,GAAG,CAAEhF,mBAAF,IAAyB+E,YAAzB,IAAyC,CAAElD,cAA7D;;AAEA,WAASoD,aAAT,GAAyB;AACxB9D,IAAAA,aAAa,CACZzC,QADY,EAEZzB,iBAAiB,CAAE6C,QAAQ,CAAEpB,QAAF,CAAV,EAAwB,YAAxB,CAFL,CAAb;AAIA;;AAED,QAAMwG,QAAQ,GACb,8BACC,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACG,CAAEvG,eAAF,IACD,cAAC,qBAAD;AACC,IAAA,KAAK,EAAGG,KADT;AAEC,IAAA,QAAQ,EAAG8F;AAFZ,IAFF,EAOG,CAAEjG,eAAF,IACD,cAAC,aAAD;AACC,IAAA,OAAO,EAAG,MAAM;AACfiB,MAAAA,cAAc,CAAE,CAAED,WAAJ,CAAd;;AACA,UAAKA,WAAW,IAAItC,OAApB,EAA8B;AAC7BY,QAAAA,aAAa,CAAE;AAAEZ,UAAAA,OAAO,EAAEiG;AAAX,SAAF,CAAb;AACA;AACD,KANF;AAOC,IAAA,IAAI,EAAGhG,WAPR;AAQC,IAAA,SAAS,EAAGqC,WARb;AASC,IAAA,KAAK,EACJA,WAAW,GACRhD,EAAE,CAAE,gBAAF,CADM,GAERA,EAAE,CAAE,aAAF;AAZP,IARF,EAwBG,CAAEqD,mBAAF,IAAyB,CAAE6B,cAA3B,IACD,cAAC,eAAD;AACC,IAAA,GAAG,EAAG7C,IAAI,IAAI,EADf;AAEC,IAAA,WAAW,EAAG4E,SAFf;AAGC,IAAA,eAAe,EAAGzE,eAHnB;AAIC,IAAA,QAAQ,EAAKY,KAAK,IAAIA,KAAK,CAACoF,UAAjB,IAAiCvG,GAJ7C;AAKC,IAAA,SAAS,EAAGmB,KAAK,IAAIA,KAAK,CAACqF,IAL5B;AAMC,IAAA,UAAU,EAAG7F,UANd;AAOC,IAAA,SAAS,EAAGL,SAPb;AAQC,IAAA,GAAG,EAAGD;AARP,IAzBF,EAoCG+F,SAAS,IACV,cAAC,aAAD;AACC,IAAA,OAAO,EAAG,MAAMlD,iBAAiB,CAAE,IAAF,CADlC;AAEC,IAAA,IAAI,EAAG5E,IAFR;AAGC,IAAA,KAAK,EAAGP,EAAE,CAAE,MAAF;AAHX,IArCF,EA2CGoF,YAAY,IACb,cAAC,aAAD;AACC,IAAA,OAAO,EAAGqC,cADX;AAEC,IAAA,IAAI,EAAGhH,MAFR;AAGC,IAAA,KAAK,EAAGT,EAAE,CAAE,uBAAF;AAHX,IA5CF,EAkDG,CAAEqD,mBAAF,IAAyBS,cAAzB,IACD,cAAC,aAAD;AACC,IAAA,IAAI,EAAGtD,WADR;AAEC,IAAA,KAAK,EAAGR,EAAE,CAAE,qBAAF,CAFX;AAGC,IAAA,OAAO,EAAGsI;AAHX,IAnDF,CADD,EA2DG,CAAEjF,mBAAF,IAAyB,CAAE6B,cAA3B,IACD,cAAC,aAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,cAAC,gBAAD;AACC,IAAA,OAAO,EAAG9C,EADX;AAEC,IAAA,QAAQ,EAAGH,GAFZ;AAGC,IAAA,YAAY,EAAGf,mBAHhB;AAIC,IAAA,MAAM,EAAC,SAJR;AAKC,IAAA,QAAQ,EAAGQ,aALZ;AAMC,IAAA,WAAW,EAAGC,WANf;AAOC,IAAA,OAAO,EAAGC;AAPX,IADD,CA5DF,EAwEC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAG5B,EAAE,CAAE,UAAF;AAArB,KACG,CAAEqD,mBAAF,IACD,cAAC,eAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGrD,EAAE,CAAE,6BAAF,CAFX;AAGC,IAAA,KAAK,EAAGkC,GAHT;AAIC,IAAA,QAAQ,EAAGkF,SAJZ;AAKC,IAAA,IAAI,EACH,8BACC,cAAC,YAAD;AAAc,MAAA,IAAI,EAAC;AAAnB,OACGpH,EAAE,CACH,mCADG,CADL,CADD,EAMGA,EAAE,CACH,gDADG,CANL;AANF,IAFF,EAqBC,cAAC,gBAAD;AACC,IAAA,aAAa,EAAGsH,WADjB;AAEC,IAAA,QAAQ,EAAKzB,KAAF,IAAavE,aAAa,CAAEuE,KAAF,CAFtC;AAGC,IAAA,IAAI,EAAGhD,QAHR;AAIC,IAAA,KAAK,EAAGH,KAJT;AAKC,IAAA,MAAM,EAAGC,MALV;AAMC,IAAA,gBAAgB,EAAG6C,gBANpB;AAOC,IAAA,WAAW,EAAGD,WAPf;AAQC,IAAA,UAAU,EAAGiB,YARd;AASC,IAAA,WAAW,EAAGC;AATf,IArBD,CADD,CAxED,EA2GC,cAAC,iBAAD;AAAmB,IAAA,KAAK,EAAC;AAAzB,KACC,cAAC,WAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGzG,EAAE,CAAE,iBAAF,CAFX;AAGC,IAAA,KAAK,EAAGyC,KAAK,IAAI,EAHlB;AAIC,IAAA,QAAQ,EAAG0E,UAJZ;AAKC,IAAA,IAAI,EACH,8BACGnH,EAAE,CACH,8CADG,CADL,EAIC,cAAC,YAAD;AAAc,MAAA,IAAI,EAAC;AAAnB,OACGA,EAAE,CACH,6DADG,CADL,CAJD;AANF,IADD,CA3GD,CADD;AAmIA,QAAM0I,QAAQ,GAAGvI,WAAW,CAAE8B,GAAF,CAA5B;AACA,MAAI0G,YAAJ;;AAEA,MAAKzG,GAAL,EAAW;AACVyG,IAAAA,YAAY,GAAGzG,GAAf;AACA,GAFD,MAEO,IAAKwG,QAAL,EAAgB;AACtBC,IAAAA,YAAY,GAAG1I,OAAO;AACrB;AACAD,IAAAA,EAAE,CAAE,4DAAF,CAFmB,EAGrB0I,QAHqB,CAAtB;AAKA,GANM,MAMA;AACNC,IAAAA,YAAY,GAAG3I,EAAE,CAAE,uCAAF,CAAjB;AACA;;AAED,QAAM4I,WAAW,GAAGlJ,cAAc,CAAE2B,UAAF,CAAlC;AACA,QAAMwH,SAAS,4BAAGxH,UAAU,CAACyH,SAAd,0DAAG,sBAAsBhE,QAAtB,CAAgC,kBAAhC,CAAlB;AACA,QAAMiE,eAAe,GACpB,CAAC,CAAEH,WAAW,CAACE,SAAf,IAA4B,CAAEhL,OAAO,CAAE8K,WAAW,CAACI,KAAd,CADtC;AAGA,MAAIpB,GAAG,GACN;AACA;;AACA;AACA,gCACC;AACC,IAAA,GAAG,EAAGxG,YAAY,IAAIa,GADvB;AAEC,IAAA,GAAG,EAAG0G,YAFP;AAGC,IAAA,OAAO,EAAG,MAAM5B,YAAY,EAH7B;AAIC,IAAA,MAAM,EAAKkC,KAAF,IAAa;AAAA;;AACrBhE,MAAAA,oBAAoB,CAAE;AACrBF,QAAAA,kBAAkB,mBAAEkE,KAAK,CAACC,MAAR,kDAAE,cAAc1C,YADb;AAErBxB,QAAAA,mBAAmB,oBAAEiE,KAAK,CAACC,MAAR,mDAAE,eAAczC;AAFd,OAAF,CAApB;AAIA,KATF;AAUC,IAAA,GAAG,EAAG3D,QAVP;AAWC,IAAA,SAAS,EAAG8F,WAAW,CAACE,SAXzB;AAYC,IAAA,KAAK,EAAGF,WAAW,CAACI;AAZrB,IADD,EAeG5H,YAAY,IAAI,cAAC,OAAD,OAfnB;AAiBA;AArBD;AAwBA,MAAI+H,yBAAJ;AACA,MAAIC,0BAAJ;;AAEA,MAAK9D,WAAW,IAAIkB,YAAf,IAA+BC,aAApC,EAAoD;AACnD,UAAM4C,cAAc,GAAG7C,YAAY,GAAGlB,WAAtC;AACA,UAAMgE,KAAK,GAAG7C,aAAa,GAAGD,YAA9B;AACA2C,IAAAA,yBAAyB,GAAGE,cAAc,GAAG/D,WAAH,GAAiBkB,YAA3D;AACA4C,IAAAA,0BAA0B,GAAGC,cAAc,GACxC/D,WAAW,GAAGgE,KAD0B,GAExC7C,aAFH;AAGA;;AAED,MAAK2B,YAAY,IAAIlD,cAArB,EAAsC;AACrC0C,IAAAA,GAAG,GACF,cAAC,WAAD;AACC,MAAA,EAAE,EAAGxF,EADN;AAEC,MAAA,GAAG,EAAGH,GAFP;AAGC,MAAA,KAAK,EAAGS,KAHT;AAIC,MAAA,MAAM,EAAGC,MAJV;AAKC,MAAA,WAAW,EAAG2C,WALf;AAMC,MAAA,aAAa,EAAGmB,aANjB;AAOC,MAAA,YAAY,EAAGD,YAPhB;AAQC,MAAA,WAAW,EAAK+C,eAAF,IACbjI,aAAa,CAAEiI,eAAF,CATf;AAWC,MAAA,eAAe,EAAG,MAAM;AACvBpE,QAAAA,iBAAiB,CAAE,KAAF,CAAjB;AACA,OAbF;AAcC,MAAA,WAAW,EAAG0D,SAAS,GAAGlC,SAAH,GAAeiC;AAdvC,MADD;AAkBA,GAnBD,MAmBO,IAAK,CAAErD,WAAF,IAAiB,CAAE4D,yBAAxB,EAAoD;AAC1DvB,IAAAA,GAAG,GAAG;AAAK,MAAA,KAAK,EAAG;AAAElF,QAAAA,KAAF;AAASC,QAAAA;AAAT;AAAb,OAAmCiF,GAAnC,CAAN;AACA,GAFM,MAEA;AACN,UAAM4B,YAAY,GAAG9G,KAAK,IAAIyG,yBAA9B;AACA,UAAMM,aAAa,GAAG9G,MAAM,IAAIyG,0BAAhC;AAEA,UAAME,KAAK,GAAG9C,YAAY,GAAGC,aAA7B;AACA,UAAMiD,QAAQ,GACblD,YAAY,GAAGC,aAAf,GAA+BxF,QAA/B,GAA0CA,QAAQ,GAAGqI,KADtD;AAEA,UAAMK,SAAS,GACdlD,aAAa,GAAGD,YAAhB,GAA+BvF,QAA/B,GAA0CA,QAAQ,GAAGqI,KADtD,CAPM,CAUN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,UAAMM,cAAc,GAAG3F,QAAQ,GAAG,GAAlC;AAEA,QAAI4F,eAAe,GAAG,KAAtB;AACA,QAAIC,cAAc,GAAG,KAArB;AAEA;AACA;;AACA,QAAK3H,KAAK,KAAK,QAAf,EAA0B;AACzB;AACA0H,MAAAA,eAAe,GAAG,IAAlB;AACAC,MAAAA,cAAc,GAAG,IAAjB;AACA,KAJD,MAIO,IAAK5J,KAAK,EAAV,EAAe;AACrB;AACA;AACA;AACA,UAAKiC,KAAK,KAAK,MAAf,EAAwB;AACvB0H,QAAAA,eAAe,GAAG,IAAlB;AACA,OAFD,MAEO;AACNC,QAAAA,cAAc,GAAG,IAAjB;AACA;AACD,KATM,MASA;AACN;AACA;AACA,UAAK3H,KAAK,KAAK,OAAf,EAAyB;AACxB2H,QAAAA,cAAc,GAAG,IAAjB;AACA,OAFD,MAEO;AACND,QAAAA,eAAe,GAAG,IAAlB;AACA;AACD;AACD;;;AAEAjC,IAAAA,GAAG,GACF,cAAC,YAAD;AACC,MAAA,IAAI,EAAG;AACNlF,QAAAA,KAAK,EAAEA,KAAF,aAAEA,KAAF,cAAEA,KAAF,GAAW,MADV;AAENC,QAAAA,MAAM,EAAEA,MAAM,IAAI,CAAEoG,eAAZ,GAA8BpG,MAA9B,GAAuC;AAFzC,OADR;AAKC,MAAA,UAAU,EAAGpB,UALd;AAMC,MAAA,QAAQ,EAAGmI,QANZ;AAOC,MAAA,QAAQ,EAAGE,cAPZ;AAQC,MAAA,SAAS,EAAGD,SARb;AASC,MAAA,SAAS,EAAGC,cAAc,GAAGN,KAT9B;AAUC,MAAA,eAAe,MAVhB;AAWC,MAAA,MAAM,EAAG;AACRS,QAAAA,GAAG,EAAE,KADG;AAERC,QAAAA,KAAK,EAAEH,eAFC;AAGRI,QAAAA,MAAM,EAAE,IAHA;AAIRC,QAAAA,IAAI,EAAEJ;AAJE,OAXV;AAiBC,MAAA,aAAa,EAAGjD,aAjBjB;AAkBC,MAAA,YAAY,EAAG,CAAEoC,KAAF,EAASkB,SAAT,EAAoBC,GAApB,EAAyBC,KAAzB,KAAoC;AAClDvD,QAAAA,YAAY;AACZxF,QAAAA,aAAa,CAAE;AACdoB,UAAAA,KAAK,EAAE4H,QAAQ,CAAEd,YAAY,GAAGa,KAAK,CAAC3H,KAAvB,EAA8B,EAA9B,CADD;AAEdC,UAAAA,MAAM,EAAE2H,QAAQ,CAAEb,aAAa,GAAGY,KAAK,CAAC1H,MAAxB,EAAgC,EAAhC;AAFF,SAAF,CAAb;AAIA,OAxBF;AAyBC,MAAA,WAAW,EAAGR,KAAK,KAAK,QAAV,GAAqB,CAArB,GAAyB;AAzBxC,OA2BGyF,GA3BH,CADD;AA+BA;;AAED,SACC,8BAGG,CAAExG,YAAF,IAAkBmH,QAHrB,EAIGX,GAJH,EAKG5E,WAAW,KACV,CAAEnE,QAAQ,CAACf,OAAT,CAAkB4C,OAAlB,CAAF,IAAiCa,UADvB,CAAX,IAEA,cAAC,QAAD;AACC,IAAA,UAAU,EAAC,SADZ;AAEC,IAAA,SAAS,EAAG/B,iCAAiC,CAC5C,SAD4C,CAF9C;AAKC,IAAA,GAAG,EAAG6G,UALP;AAMC,IAAA,OAAO,EAAC,YANT;AAOC,kBAAarG,EAAE,CAAE,oBAAF,CAPhB;AAQC,IAAA,WAAW,EAAGA,EAAE,CAAE,aAAF,CARjB;AASC,IAAA,KAAK,EAAGU,OATT;AAUC,IAAA,QAAQ,EAAKmF,KAAF,IACVvE,aAAa,CAAE;AAAEZ,MAAAA,OAAO,EAAEmF;AAAX,KAAF,CAXf;AAaC,IAAA,aAAa,MAbd;AAcC,IAAA,sBAAsB,EAAG,MACxBrE,iBAAiB,CAChBpB,WAAW,CAAEC,mBAAmB,EAArB,CADK;AAfnB,IAPH,CADD;AA+BA","sourcesContent":["/**\n * External dependencies\n */\nimport { get, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { isBlobURL } from '@wordpress/blob';\nimport {\n\tExternalLink,\n\tPanelBody,\n\tResizableBox,\n\tSpinner,\n\tTextareaControl,\n\tTextControl,\n\tToolbarButton,\n} from '@wordpress/components';\nimport { useViewportMatch, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalImageSizeControl as ImageSizeControl,\n\t__experimentalImageURLInputUI as ImageURLInputUI,\n\tMediaReplaceFlow,\n\tstore as blockEditorStore,\n\tBlockAlignmentControl,\n\t__experimentalImageEditor as ImageEditor,\n\t__experimentalGetElementClassName,\n\t__experimentalUseBorderProps as useBorderProps,\n} from '@wordpress/block-editor';\nimport {\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tuseCallback,\n} from '@wordpress/element';\nimport { __, sprintf, isRTL } from '@wordpress/i18n';\nimport { getFilename } from '@wordpress/url';\nimport {\n\tcreateBlock,\n\tgetDefaultBlockName,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tcrop,\n\toverlayText,\n\tupload,\n\tcaption as captionIcon,\n} from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport useClientWidth from './use-client-width';\nimport { isExternalImage } from './edit';\n\n/**\n * Module constants\n */\nimport { MIN_SIZE, ALLOWED_MEDIA_TYPES } from './constants';\n\nexport default function Image( {\n\ttemporaryURL,\n\tattributes,\n\tsetAttributes,\n\tisSelected,\n\tinsertBlocksAfter,\n\tonReplace,\n\tonSelectImage,\n\tonSelectURL,\n\tonUploadError,\n\tcontainerRef,\n\tcontext,\n\tclientId,\n\tisContentLocked,\n} ) {\n\tconst {\n\t\turl = '',\n\t\talt,\n\t\tcaption,\n\t\talign,\n\t\tid,\n\t\thref,\n\t\trel,\n\t\tlinkClass,\n\t\tlinkDestination,\n\t\ttitle,\n\t\twidth,\n\t\theight,\n\t\tlinkTarget,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst imageRef = useRef();\n\tconst prevCaption = usePrevious( caption );\n\tconst [ showCaption, setShowCaption ] = useState( !! caption );\n\tconst { allowResize = true } = context;\n\tconst { getBlock } = useSelect( blockEditorStore );\n\n\tconst { image, multiImageSelection } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getMedia } = select( coreStore );\n\t\t\tconst { getMultiSelectedBlockClientIds, getBlockName } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\t\t\treturn {\n\t\t\t\timage:\n\t\t\t\t\tid && isSelected\n\t\t\t\t\t\t? getMedia( id, { context: 'view' } )\n\t\t\t\t\t\t: null,\n\t\t\t\tmultiImageSelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/image'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ id, isSelected, clientId ]\n\t);\n\tconst { canInsertCover, imageEditing, imageSizes, maxWidth, mediaUpload } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tgetSettings,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\t\t\tconst settings = getSettings();\n\n\t\t\t\treturn {\n\t\t\t\t\timageEditing: settings.imageEditing,\n\t\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\t\tmaxWidth: settings.maxWidth,\n\t\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\t\tcanInsertCover: canInsertBlockType(\n\t\t\t\t\t\t'core/cover',\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ clientId ]\n\t\t);\n\tconst { replaceBlocks, toggleSelection } = useDispatch( blockEditorStore );\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst isWideAligned = [ 'wide', 'full' ].includes( align );\n\tconst [\n\t\t{ loadedNaturalWidth, loadedNaturalHeight },\n\t\tsetLoadedNaturalSize,\n\t] = useState( {} );\n\tconst [ isEditingImage, setIsEditingImage ] = useState( false );\n\tconst [ externalBlob, setExternalBlob ] = useState();\n\tconst clientWidth = useClientWidth( containerRef, [ align ] );\n\tconst isResizable =\n\t\tallowResize &&\n\t\t! isContentLocked &&\n\t\t! ( isWideAligned && isLargeViewport );\n\tconst imageSizeOptions = imageSizes\n\t\t.filter( ( { slug } ) =>\n\t\t\tget( image, [ 'media_details', 'sizes', slug, 'source_url' ] )\n\t\t)\n\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\n\t// If an image is externally hosted, try to fetch the image data. This may\n\t// fail if the image host doesn't allow CORS with the domain. If it works,\n\t// we can enable a button in the toolbar to upload the image.\n\tuseEffect( () => {\n\t\tif ( ! isExternalImage( id, url ) || ! isSelected || externalBlob ) {\n\t\t\treturn;\n\t\t}\n\n\t\twindow\n\t\t\t.fetch( url )\n\t\t\t.then( ( response ) => response.blob() )\n\t\t\t.then( ( blob ) => setExternalBlob( blob ) )\n\t\t\t// Do nothing, cannot upload.\n\t\t\t.catch( () => {} );\n\t}, [ id, url, isSelected, externalBlob ] );\n\n\t// We need to show the caption when changes come from\n\t// history navigation(undo/redo).\n\tuseEffect( () => {\n\t\tif ( caption && ! prevCaption ) {\n\t\t\tsetShowCaption( true );\n\t\t}\n\t}, [ caption, prevCaption ] );\n\n\t// Focus the caption when we click to add one.\n\tconst captionRef = useCallback(\n\t\t( node ) => {\n\t\t\tif ( node && ! caption ) {\n\t\t\t\tnode.focus();\n\t\t\t}\n\t\t},\n\t\t[ caption ]\n\t);\n\n\t// Get naturalWidth and naturalHeight from image ref, and fall back to loaded natural\n\t// width and height. This resolves an issue in Safari where the loaded natural\n\t// width and height is otherwise lost when switching between alignments.\n\t// See: https://github.com/WordPress/gutenberg/pull/37210.\n\tconst { naturalWidth, naturalHeight } = useMemo( () => {\n\t\treturn {\n\t\t\tnaturalWidth:\n\t\t\t\timageRef.current?.naturalWidth ||\n\t\t\t\tloadedNaturalWidth ||\n\t\t\t\tundefined,\n\t\t\tnaturalHeight:\n\t\t\t\timageRef.current?.naturalHeight ||\n\t\t\t\tloadedNaturalHeight ||\n\t\t\t\tundefined,\n\t\t};\n\t}, [\n\t\tloadedNaturalWidth,\n\t\tloadedNaturalHeight,\n\t\timageRef.current?.complete,\n\t] );\n\n\tfunction onResizeStart() {\n\t\ttoggleSelection( false );\n\t}\n\n\tfunction onResizeStop() {\n\t\ttoggleSelection( true );\n\t}\n\n\tfunction onImageError() {\n\t\t// Check if there's an embed block that handles this URL, e.g., instagram URL.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/11472\n\t\tconst embedBlock = createUpgradedEmbedBlock( { attributes: { url } } );\n\n\t\tif ( undefined !== embedBlock ) {\n\t\t\tonReplace( embedBlock );\n\t\t}\n\t}\n\n\tfunction onSetHref( props ) {\n\t\tsetAttributes( props );\n\t}\n\n\tfunction onSetTitle( value ) {\n\t\t// This is the HTML title attribute, separate from the media object\n\t\t// title.\n\t\tsetAttributes( { title: value } );\n\t}\n\n\tfunction updateAlt( newAlt ) {\n\t\tsetAttributes( { alt: newAlt } );\n\t}\n\n\tfunction updateImage( newSizeSlug ) {\n\t\tconst newUrl = get( image, [\n\t\t\t'media_details',\n\t\t\t'sizes',\n\t\t\tnewSizeSlug,\n\t\t\t'source_url',\n\t\t] );\n\t\tif ( ! newUrl ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\turl: newUrl,\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t\tsizeSlug: newSizeSlug,\n\t\t} );\n\t}\n\n\tfunction uploadExternal() {\n\t\tmediaUpload( {\n\t\t\tfilesList: [ externalBlob ],\n\t\t\tonFileChange( [ img ] ) {\n\t\t\t\tonSelectImage( img );\n\n\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsetExternalBlob();\n\t\t\t\tcreateSuccessNotice( __( 'Image uploaded.' ), {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t},\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tonError( message ) {\n\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t},\n\t\t} );\n\t}\n\n\tfunction updateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].includes( nextAlign )\n\t\t\t? { width: undefined, height: undefined }\n\t\t\t: {};\n\t\tsetAttributes( {\n\t\t\t...extraUpdatedAttributes,\n\t\t\talign: nextAlign,\n\t\t} );\n\t}\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsEditingImage( false );\n\t\t\tif ( ! caption ) {\n\t\t\t\tsetShowCaption( false );\n\t\t\t}\n\t\t}\n\t}, [ isSelected, caption ] );\n\n\tconst canEditImage = id && naturalWidth && naturalHeight && imageEditing;\n\tconst allowCrop = ! multiImageSelection && canEditImage && ! isEditingImage;\n\n\tfunction switchToCover() {\n\t\treplaceBlocks(\n\t\t\tclientId,\n\t\t\tswitchToBlockType( getBlock( clientId ), 'core/cover' )\n\t\t);\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<BlockAlignmentControl\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ updateAlignment }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isContentLocked && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetShowCaption( ! showCaption );\n\t\t\t\t\t\t\tif ( showCaption && caption ) {\n\t\t\t\t\t\t\t\tsetAttributes( { caption: undefined } );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\ticon={ captionIcon }\n\t\t\t\t\t\tisPressed={ showCaption }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tshowCaption\n\t\t\t\t\t\t\t\t? __( 'Remove caption' )\n\t\t\t\t\t\t\t\t: __( 'Add caption' )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t\t<ImageURLInputUI\n\t\t\t\t\t\turl={ href || '' }\n\t\t\t\t\t\tonChangeUrl={ onSetHref }\n\t\t\t\t\t\tlinkDestination={ linkDestination }\n\t\t\t\t\t\tmediaUrl={ ( image && image.source_url ) || url }\n\t\t\t\t\t\tmediaLink={ image && image.link }\n\t\t\t\t\t\tlinkTarget={ linkTarget }\n\t\t\t\t\t\tlinkClass={ linkClass }\n\t\t\t\t\t\trel={ rel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ allowCrop && (\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\t{ externalBlob && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tonClick={ uploadExternal }\n\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\tlabel={ __( 'Upload external image' ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! multiImageSelection && canInsertCover && (\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ticon={ overlayText }\n\t\t\t\t\t\tlabel={ __( 'Add text over image' ) }\n\t\t\t\t\t\tonClick={ switchToCover }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t\t{ ! multiImageSelection && ! isEditingImage && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ url }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ ! multiImageSelection && (\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Alt text (alternative text)' ) }\n\t\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\t\tonChange={ updateAlt }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/WAI/tutorials/images/decision-tree\">\n\t\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t\t'Describe the purpose of the image'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t\t'Leave empty if the image is purely decorative.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<ImageSizeControl\n\t\t\t\t\t\tonChangeImage={ updateImage }\n\t\t\t\t\t\tonChange={ ( value ) => setAttributes( value ) }\n\t\t\t\t\t\tslug={ sizeSlug }\n\t\t\t\t\t\twidth={ width }\n\t\t\t\t\t\theight={ height }\n\t\t\t\t\t\timageSizeOptions={ imageSizeOptions }\n\t\t\t\t\t\tisResizable={ isResizable }\n\t\t\t\t\t\timageWidth={ naturalWidth }\n\t\t\t\t\t\timageHeight={ naturalHeight }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Title attribute' ) }\n\t\t\t\t\tvalue={ title || '' }\n\t\t\t\t\tonChange={ onSetTitle }\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Describe the role of this image on the page.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<ExternalLink href=\"https://www.w3.org/TR/html52/dom.html#the-title-attribute\">\n\t\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t\t'(Note: many devices and browsers do not display this text.)'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst filename = getFilename( url );\n\tlet defaultedAlt;\n\n\tif ( alt ) {\n\t\tdefaultedAlt = alt;\n\t} else if ( filename ) {\n\t\tdefaultedAlt = sprintf(\n\t\t\t/* translators: %s: file name */\n\t\t\t__( 'This image has an empty alt attribute; its file name is %s' ),\n\t\t\tfilename\n\t\t);\n\t} else {\n\t\tdefaultedAlt = __( 'This image has an empty alt attribute' );\n\t}\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst isRounded = attributes.className?.includes( 'is-style-rounded' );\n\tconst hasCustomBorder =\n\t\t!! borderProps.className || ! isEmpty( borderProps.style );\n\n\tlet img = (\n\t\t// Disable reason: Image itself is not meant to be interactive, but\n\t\t// should direct focus to block.\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t<>\n\t\t\t<img\n\t\t\t\tsrc={ temporaryURL || url }\n\t\t\t\talt={ defaultedAlt }\n\t\t\t\tonError={ () => onImageError() }\n\t\t\t\tonLoad={ ( event ) => {\n\t\t\t\t\tsetLoadedNaturalSize( {\n\t\t\t\t\t\tloadedNaturalWidth: event.target?.naturalWidth,\n\t\t\t\t\t\tloadedNaturalHeight: event.target?.naturalHeight,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tref={ imageRef }\n\t\t\t\tclassName={ borderProps.className }\n\t\t\t\tstyle={ borderProps.style }\n\t\t\t/>\n\t\t\t{ temporaryURL && <Spinner /> }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events */\n\t);\n\n\tlet imageWidthWithinContainer;\n\tlet imageHeightWithinContainer;\n\n\tif ( clientWidth && naturalWidth && naturalHeight ) {\n\t\tconst exceedMaxWidth = naturalWidth > clientWidth;\n\t\tconst ratio = naturalHeight / naturalWidth;\n\t\timageWidthWithinContainer = exceedMaxWidth ? clientWidth : naturalWidth;\n\t\timageHeightWithinContainer = exceedMaxWidth\n\t\t\t? clientWidth * ratio\n\t\t\t: naturalHeight;\n\t}\n\n\tif ( canEditImage && isEditingImage ) {\n\t\timg = (\n\t\t\t<ImageEditor\n\t\t\t\tid={ id }\n\t\t\t\turl={ url }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t\tclientWidth={ clientWidth }\n\t\t\t\tnaturalHeight={ naturalHeight }\n\t\t\t\tnaturalWidth={ naturalWidth }\n\t\t\t\tonSaveImage={ ( imageAttributes ) =>\n\t\t\t\t\tsetAttributes( imageAttributes )\n\t\t\t\t}\n\t\t\t\tonFinishEditing={ () => {\n\t\t\t\t\tsetIsEditingImage( false );\n\t\t\t\t} }\n\t\t\t\tborderProps={ isRounded ? undefined : borderProps }\n\t\t\t/>\n\t\t);\n\t} else if ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\timg = <div style={ { width, height } }>{ img }</div>;\n\t} else {\n\t\tconst currentWidth = width || imageWidthWithinContainer;\n\t\tconst currentHeight = height || imageHeightWithinContainer;\n\n\t\tconst ratio = naturalWidth / naturalHeight;\n\t\tconst minWidth =\n\t\t\tnaturalWidth < naturalHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\tconst minHeight =\n\t\t\tnaturalHeight < naturalWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t// With the current implementation of ResizableBox, an image needs an\n\t\t// explicit pixel value for the max-width. In absence of being able to\n\t\t// set the content-width, this max-width is currently dictated by the\n\t\t// vanilla editor style. The following variable adds a buffer to this\n\t\t// vanilla style, so 3rd party themes have some wiggleroom. This does,\n\t\t// in most cases, allow you to scale the image beyond the width of the\n\t\t// main column, though not infinitely.\n\t\t// @todo It would be good to revisit this once a content-width variable\n\t\t// becomes available.\n\t\tconst maxWidthBuffer = maxWidth * 2.5;\n\n\t\tlet showRightHandle = false;\n\t\tlet showLeftHandle = false;\n\n\t\t/* eslint-disable no-lonely-if */\n\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\tif ( align === 'center' ) {\n\t\t\t// When the image is centered, show both handles.\n\t\t\tshowRightHandle = true;\n\t\t\tshowLeftHandle = true;\n\t\t} else if ( isRTL() ) {\n\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t// Show the right handle and hide the left handle only when it is\n\t\t\t// aligned left. Otherwise always show the left handle.\n\t\t\tif ( align === 'left' ) {\n\t\t\t\tshowRightHandle = true;\n\t\t\t} else {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t}\n\t\t} else {\n\t\t\t// Show the left handle and hide the right handle only when the\n\t\t\t// image is aligned right. Otherwise always show the right handle.\n\t\t\tif ( align === 'right' ) {\n\t\t\t\tshowLeftHandle = true;\n\t\t\t} else {\n\t\t\t\tshowRightHandle = true;\n\t\t\t}\n\t\t}\n\t\t/* eslint-enable no-lonely-if */\n\n\t\timg = (\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: width ?? 'auto',\n\t\t\t\t\theight: height && ! hasCustomBorder ? height : 'auto',\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\tresizeRatio={ align === 'center' ? 2 : 1 }\n\t\t\t>\n\t\t\t\t{ img }\n\t\t\t</ResizableBox>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Hide controls during upload to avoid component remount,\n\t\t\t\twhich causes duplicated image upload. */ }\n\t\t\t{ ! temporaryURL && controls }\n\t\t\t{ img }\n\t\t\t{ showCaption &&\n\t\t\t\t( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tidentifier=\"caption\"\n\t\t\t\t\t\tclassName={ __experimentalGetElementClassName(\n\t\t\t\t\t\t\t'caption'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tref={ captionRef }\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\taria-label={ __( 'Image caption text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add caption' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { caption: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t__unstableOnSplitAtEnd={ () =>\n\t\t\t\t\t\t\tinsertBlocksAfter(\n\t\t\t\t\t\t\t\tcreateBlock( getDefaultBlockName() )\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</>\n\t);\n}\n"]}
|
|
@@ -32,6 +32,11 @@ export default function LatestComments(_ref) {
|
|
|
32
32
|
displayDate,
|
|
33
33
|
displayExcerpt
|
|
34
34
|
} = attributes;
|
|
35
|
+
const serverSideAttributes = { ...attributes,
|
|
36
|
+
style: { ...(attributes === null || attributes === void 0 ? void 0 : attributes.style),
|
|
37
|
+
spacing: undefined
|
|
38
|
+
}
|
|
39
|
+
};
|
|
35
40
|
return createElement("div", useBlockProps(), createElement(InspectorControls, null, createElement(PanelBody, {
|
|
36
41
|
title: __('Settings')
|
|
37
42
|
}, createElement(ToggleControl, {
|
|
@@ -64,8 +69,7 @@ export default function LatestComments(_ref) {
|
|
|
64
69
|
required: true
|
|
65
70
|
}))), createElement(Disabled, null, createElement(ServerSideRender, {
|
|
66
71
|
block: "core/latest-comments",
|
|
67
|
-
attributes:
|
|
68
|
-
skipBlockSupportAttributes: true // The preview uses the site's locale to make it more true to how
|
|
72
|
+
attributes: serverSideAttributes // The preview uses the site's locale to make it more true to how
|
|
69
73
|
// the block appears on the frontend. Setting the locale
|
|
70
74
|
// explicitly prevents any middleware from setting it to 'user'.
|
|
71
75
|
,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/latest-comments/edit.js"],"names":["InspectorControls","useBlockProps","Disabled","PanelBody","RangeControl","ToggleControl","ServerSideRender","__","MIN_COMMENTS","MAX_COMMENTS","LatestComments","attributes","setAttributes","commentsToShow","displayAvatar","displayDate","displayExcerpt","value","_locale"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,iBAAT,EAA4BC,aAA5B,QAAiD,yBAAjD;AACA,SACCC,QADD,EAECC,SAFD,EAGCC,YAHD,EAICC,aAJD,QAKO,uBALP;AAMA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,CAArB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,GAArB;AAEA,eAAe,SAASC,cAAT,OAAyD;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AACvE,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,aAAlB;AAAiCC,IAAAA,WAAjC;AAA8CC,IAAAA;AAA9C,MACLL,UADD;AAGA,SACC,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/latest-comments/edit.js"],"names":["InspectorControls","useBlockProps","Disabled","PanelBody","RangeControl","ToggleControl","ServerSideRender","__","MIN_COMMENTS","MAX_COMMENTS","LatestComments","attributes","setAttributes","commentsToShow","displayAvatar","displayDate","displayExcerpt","serverSideAttributes","style","spacing","undefined","value","_locale"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,iBAAT,EAA4BC,aAA5B,QAAiD,yBAAjD;AACA,SACCC,QADD,EAECC,SAFD,EAGCC,YAHD,EAICC,aAJD,QAKO,uBALP;AAMA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,CAArB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,GAArB;AAEA,eAAe,SAASC,cAAT,OAAyD;AAAA,MAAhC;AAAEC,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAgC;AACvE,QAAM;AAAEC,IAAAA,cAAF;AAAkBC,IAAAA,aAAlB;AAAiCC,IAAAA,WAAjC;AAA8CC,IAAAA;AAA9C,MACLL,UADD;AAGA,QAAMM,oBAAoB,GAAG,EAC5B,GAAGN,UADyB;AAE5BO,IAAAA,KAAK,EAAE,EACN,IAAGP,UAAH,aAAGA,UAAH,uBAAGA,UAAU,CAAEO,KAAf,CADM;AAENC,MAAAA,OAAO,EAAEC;AAFH;AAFqB,GAA7B;AAQA,SACC,qBAAUnB,aAAa,EAAvB,EACC,cAAC,iBAAD,QACC,cAAC,SAAD;AAAW,IAAA,KAAK,EAAGM,EAAE,CAAE,UAAF;AAArB,KACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGA,EAAE,CAAE,gBAAF,CADX;AAEC,IAAA,OAAO,EAAGO,aAFX;AAGC,IAAA,QAAQ,EAAG,MACVF,aAAa,CAAE;AAAEE,MAAAA,aAAa,EAAE,CAAEA;AAAnB,KAAF;AAJf,IADD,EAQC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGP,EAAE,CAAE,cAAF,CADX;AAEC,IAAA,OAAO,EAAGQ,WAFX;AAGC,IAAA,QAAQ,EAAG,MACVH,aAAa,CAAE;AAAEG,MAAAA,WAAW,EAAE,CAAEA;AAAjB,KAAF;AAJf,IARD,EAeC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGR,EAAE,CAAE,iBAAF,CADX;AAEC,IAAA,OAAO,EAAGS,cAFX;AAGC,IAAA,QAAQ,EAAG,MACVJ,aAAa,CAAE;AACdI,MAAAA,cAAc,EAAE,CAAEA;AADJ,KAAF;AAJf,IAfD,EAwBC,cAAC,YAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAGT,EAAE,CAAE,oBAAF,CAFX;AAGC,IAAA,KAAK,EAAGM,cAHT;AAIC,IAAA,QAAQ,EAAKQ,KAAF,IACVT,aAAa,CAAE;AAAEC,MAAAA,cAAc,EAAEQ;AAAlB,KAAF,CALf;AAOC,IAAA,GAAG,EAAGb,YAPP;AAQC,IAAA,GAAG,EAAGC,YARP;AASC,IAAA,QAAQ;AATT,IAxBD,CADD,CADD,EAuCC,cAAC,QAAD,QACC,cAAC,gBAAD;AACC,IAAA,KAAK,EAAC,sBADP;AAEC,IAAA,UAAU,EAAGQ,oBAFd,CAGC;AACA;AACA;AALD;AAMC,IAAA,YAAY,EAAG;AAAEK,MAAAA,OAAO,EAAE;AAAX;AANhB,IADD,CAvCD,CADD;AAoDA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { InspectorControls, useBlockProps } from '@wordpress/block-editor';\nimport {\n\tDisabled,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Minimum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_COMMENTS = 1;\n/**\n * Maximum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_COMMENTS = 100;\n\nexport default function LatestComments( { attributes, setAttributes } ) {\n\tconst { commentsToShow, displayAvatar, displayDate, displayExcerpt } =\n\t\tattributes;\n\n\tconst serverSideAttributes = {\n\t\t...attributes,\n\t\tstyle: {\n\t\t\t...attributes?.style,\n\t\t\tspacing: undefined,\n\t\t},\n\t};\n\n\treturn (\n\t\t<div { ...useBlockProps() }>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display avatar' ) }\n\t\t\t\t\t\tchecked={ displayAvatar }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayAvatar: ! displayAvatar } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display date' ) }\n\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { displayDate: ! displayDate } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display excerpt' ) }\n\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayExcerpt: ! displayExcerpt,\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<RangeControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Number of comments' ) }\n\t\t\t\t\t\tvalue={ commentsToShow }\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( { commentsToShow: value } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmin={ MIN_COMMENTS }\n\t\t\t\t\t\tmax={ MAX_COMMENTS }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<Disabled>\n\t\t\t\t<ServerSideRender\n\t\t\t\t\tblock=\"core/latest-comments\"\n\t\t\t\t\tattributes={ serverSideAttributes }\n\t\t\t\t\t// The preview uses the site's locale to make it more true to how\n\t\t\t\t\t// the block appears on the frontend. Setting the locale\n\t\t\t\t\t// explicitly prevents any middleware from setting it to 'user'.\n\t\t\t\t\turlQueryArgs={ { _locale: 'site' } }\n\t\t\t\t/>\n\t\t\t</Disabled>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -43,6 +43,19 @@ const metadata = {
|
|
|
43
43
|
spacing: {
|
|
44
44
|
margin: true,
|
|
45
45
|
padding: true
|
|
46
|
+
},
|
|
47
|
+
typography: {
|
|
48
|
+
fontSize: true,
|
|
49
|
+
lineHeight: true,
|
|
50
|
+
__experimentalFontFamily: true,
|
|
51
|
+
__experimentalFontWeight: true,
|
|
52
|
+
__experimentalFontStyle: true,
|
|
53
|
+
__experimentalTextTransform: true,
|
|
54
|
+
__experimentalTextDecoration: true,
|
|
55
|
+
__experimentalLetterSpacing: true,
|
|
56
|
+
__experimentalDefaultControls: {
|
|
57
|
+
fontSize: true
|
|
58
|
+
}
|
|
46
59
|
}
|
|
47
60
|
},
|
|
48
61
|
editorStyle: "wp-block-latest-comments-editor",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/latest-comments/index.js"],"names":["comment","icon","initBlock","edit","name","metadata","settings","example","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,IAApB,QAAgC,kBAAhC;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/latest-comments/index.js"],"names":["comment","icon","initBlock","edit","name","metadata","settings","example","init"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,OAAO,IAAIC,IAApB,QAAgC,kBAAhC;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,qBAAtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBL,EAAAA,IADuB;AAEvBM,EAAAA,OAAO,EAAE,EAFc;AAGvBJ,EAAAA;AAHuB,CAAjB;AAMP,OAAO,MAAMK,IAAI,GAAG,MAAMN,SAAS,CAAE;AAAEE,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAF,CAA5B","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { comment as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tedit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
|
|
@@ -12,7 +12,6 @@ import { __, sprintf } from '@wordpress/i18n';
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import NavigationMenuSelector from './navigation-menu-selector';
|
|
15
|
-
import { LeafMoreMenu } from '../leaf-more-menu';
|
|
16
15
|
import { unlock } from '../../private-apis';
|
|
17
16
|
import DeletedNavigationWarning from './deleted-navigation-warning';
|
|
18
17
|
import useNavigationMenu from '../use-navigation-menu';
|
|
@@ -29,7 +28,8 @@ const MainContent = _ref => {
|
|
|
29
28
|
onCreateNew
|
|
30
29
|
} = _ref;
|
|
31
30
|
const {
|
|
32
|
-
OffCanvasEditor
|
|
31
|
+
OffCanvasEditor,
|
|
32
|
+
LeafMoreMenu
|
|
33
33
|
} = unlock(blockEditorPrivateApis); // Provide a hierarchy of clientIds for the given Navigation block (clientId).
|
|
34
34
|
// This is required else the list view will display the entire block tree.
|
|
35
35
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/menu-inspector-controls.js"],"names":["privateApis","blockEditorPrivateApis","InspectorControls","store","blockEditorStore","PanelBody","__experimentalHStack","HStack","__experimentalHeading","Heading","Spinner","useSelect","__","sprintf","NavigationMenuSelector","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/menu-inspector-controls.js"],"names":["privateApis","blockEditorPrivateApis","InspectorControls","store","blockEditorStore","PanelBody","__experimentalHStack","HStack","__experimentalHeading","Heading","Spinner","useSelect","__","sprintf","NavigationMenuSelector","unlock","DeletedNavigationWarning","useNavigationMenu","actionLabel","MainContent","clientId","currentMenuId","isLoading","isNavigationMenuMissing","onCreateNew","OffCanvasEditor","LeafMoreMenu","clientIdsTree","select","__unstableGetClientIdsTree","navigationMenu","description","title","MenuInspectorControls","props","createNavigationMenuIsSuccess","createNavigationMenuIsError","onSelectClassicMenu","onSelectNavigationMenu","isManageMenusButtonDisabled","process","env","IS_GUTENBERG_PLUGIN"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n\tSpinner,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport { unlock } from '../../private-apis';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport useNavigationMenu from '../use-navigation-menu';\n\n/* translators: %s: The name of a menu. */\nconst actionLabel = __( \"Switch to '%s'\" );\n\nconst MainContent = ( {\n\tclientId,\n\tcurrentMenuId,\n\tisLoading,\n\tisNavigationMenuMissing,\n\tonCreateNew,\n} ) => {\n\tconst { OffCanvasEditor, LeafMoreMenu } = unlock( blockEditorPrivateApis );\n\t// Provide a hierarchy of clientIds for the given Navigation block (clientId).\n\t// This is required else the list view will display the entire block tree.\n\tconst clientIdsTree = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __unstableGetClientIdsTree } = select( blockEditorStore );\n\t\t\treturn __unstableGetClientIdsTree( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { navigationMenu } = useNavigationMenu( currentMenuId );\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn <p>{ __( 'Select or create a menu' ) }</p>;\n\t}\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn <DeletedNavigationWarning onCreateNew={ onCreateNew } />;\n\t}\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tconst description = navigationMenu\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t__( 'Structure for navigation menu: %s' ),\n\t\t\t\tnavigationMenu?.title || __( 'Untitled menu' )\n\t\t )\n\t\t: __(\n\t\t\t\t'You have not yet created any menus. Displaying a list of your Pages'\n\t\t );\n\treturn (\n\t\t<OffCanvasEditor\n\t\t\tblocks={ clientIdsTree }\n\t\t\tisExpanded={ true }\n\t\t\tLeafMoreMenu={ LeafMoreMenu }\n\t\t\tdescription={ description }\n\t\t/>\n\t);\n};\n\nconst MenuInspectorControls = ( props ) => {\n\tconst {\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcreateNavigationMenuIsError,\n\t\tcurrentMenuId = null,\n\t\tonCreateNew,\n\t\tonSelectClassicMenu,\n\t\tonSelectNavigationMenu,\n\t\tisManageMenusButtonDisabled,\n\t} = props;\n\n\treturn (\n\t\t<InspectorControls group=\"list\">\n\t\t\t<PanelBody\n\t\t\t\ttitle={ process.env.IS_GUTENBERG_PLUGIN ? null : __( 'Menu' ) }\n\t\t\t>\n\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t<Heading\n\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Menu' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\tonCreateNew={ onCreateNew }\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t}\n\t\t\t\t\t\tactionLabel={ actionLabel }\n\t\t\t\t\t\tisManageMenusButtonDisabled={\n\t\t\t\t\t\t\tisManageMenusButtonDisabled\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t<MainContent { ...props } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default MenuInspectorControls;\n"]}
|
|
@@ -4,7 +4,6 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
6
|
import { MenuGroup, MenuItem, MenuItemsChoice, DropdownMenu } from '@wordpress/components';
|
|
7
|
-
import { useEntityProp } from '@wordpress/core-data';
|
|
8
7
|
import { moreVertical } from '@wordpress/icons';
|
|
9
8
|
import { __, sprintf } from '@wordpress/i18n';
|
|
10
9
|
import { decodeEntities } from '@wordpress/html-entities';
|
|
@@ -39,18 +38,16 @@ function NavigationMenuSelector(_ref) {
|
|
|
39
38
|
const {
|
|
40
39
|
navigationMenus,
|
|
41
40
|
hasResolvedNavigationMenus,
|
|
42
|
-
isNavigationMenuResolved,
|
|
43
41
|
canUserCreateNavigationMenu,
|
|
44
42
|
canSwitchNavigationMenu
|
|
45
43
|
} = useNavigationMenu();
|
|
46
|
-
const [currentTitle] = useEntityProp('postType', 'wp_navigation', 'title');
|
|
47
44
|
const menuChoices = useMemo(() => {
|
|
48
45
|
return (navigationMenus === null || navigationMenus === void 0 ? void 0 : navigationMenus.map((_ref2, index) => {
|
|
49
46
|
let {
|
|
50
47
|
id,
|
|
51
48
|
title
|
|
52
49
|
} = _ref2;
|
|
53
|
-
const label = decodeEntities(title.rendered) ||
|
|
50
|
+
const label = decodeEntities(title === null || title === void 0 ? void 0 : title.rendered) ||
|
|
54
51
|
/* translators: %s is the index of the menu in the list of menus. */
|
|
55
52
|
sprintf(__('(no title %s)'), index + 1);
|
|
56
53
|
|
|
@@ -66,7 +63,7 @@ function NavigationMenuSelector(_ref) {
|
|
|
66
63
|
ariaLabel: sprintf(actionLabel, label)
|
|
67
64
|
};
|
|
68
65
|
})) || [];
|
|
69
|
-
}, [
|
|
66
|
+
}, [currentMenuId, navigationMenus, actionLabel]);
|
|
70
67
|
const hasNavigationMenus = !!(navigationMenus !== null && navigationMenus !== void 0 && navigationMenus.length);
|
|
71
68
|
const hasClassicMenus = !!(classicMenus !== null && classicMenus !== void 0 && classicMenus.length);
|
|
72
69
|
const showNavigationMenus = !!canSwitchNavigationMenu;
|
|
@@ -75,16 +72,16 @@ function NavigationMenuSelector(_ref) {
|
|
|
75
72
|
const noBlockMenus = !hasNavigationMenus && hasResolvedNavigationMenus;
|
|
76
73
|
const menuUnavailable = hasResolvedNavigationMenus && currentMenuId === null;
|
|
77
74
|
useEffect(() => {
|
|
78
|
-
if (!hasResolvedNavigationMenus) {
|
|
75
|
+
if (!hasResolvedNavigationMenus && !canUserCreateNavigationMenu) {
|
|
79
76
|
setSelectorLabel(__('Loading …'));
|
|
80
77
|
} else if (noMenuSelected || noBlockMenus || menuUnavailable) {
|
|
81
|
-
setSelectorLabel(__('Choose a Navigation menu'));
|
|
78
|
+
setSelectorLabel(__('Choose or create a Navigation menu'));
|
|
82
79
|
}
|
|
83
80
|
|
|
84
81
|
if (isCreatingMenu && (createNavigationMenuIsSuccess || createNavigationMenuIsError)) {
|
|
85
82
|
setIsCreatingMenu(false);
|
|
86
83
|
}
|
|
87
|
-
}, [
|
|
84
|
+
}, [hasResolvedNavigationMenus, createNavigationMenuIsSuccess]);
|
|
88
85
|
const NavigationMenuSelectorDropdown = createElement(DropdownMenu, {
|
|
89
86
|
label: selectorLabel,
|
|
90
87
|
icon: moreVertical,
|
|
@@ -100,9 +97,13 @@ function NavigationMenuSelector(_ref) {
|
|
|
100
97
|
}, createElement(MenuItemsChoice, {
|
|
101
98
|
value: currentMenuId,
|
|
102
99
|
onSelect: menuId => {
|
|
100
|
+
setSelectorLabel(__('Loading …'));
|
|
101
|
+
setIsCreatingMenu(true);
|
|
103
102
|
onSelectNavigationMenu(menuId);
|
|
103
|
+
onClose();
|
|
104
104
|
},
|
|
105
|
-
choices: menuChoices
|
|
105
|
+
choices: menuChoices,
|
|
106
|
+
disabled: isCreatingMenu
|
|
106
107
|
})), showClassicMenus && hasClassicMenus && createElement(MenuGroup, {
|
|
107
108
|
label: __('Import Classic Menus')
|
|
108
109
|
}, classicMenus === null || classicMenus === void 0 ? void 0 : classicMenus.map(menu => {
|
|
@@ -110,15 +111,18 @@ function NavigationMenuSelector(_ref) {
|
|
|
110
111
|
return createElement(MenuItem, {
|
|
111
112
|
onClick: () => {
|
|
112
113
|
setSelectorLabel(__('Loading …'));
|
|
114
|
+
setIsCreatingMenu(true);
|
|
113
115
|
onSelectClassicMenu(menu);
|
|
114
116
|
onClose();
|
|
115
117
|
},
|
|
116
118
|
key: menu.id,
|
|
117
|
-
"aria-label": sprintf(createActionLabel, label)
|
|
119
|
+
"aria-label": sprintf(createActionLabel, label),
|
|
120
|
+
disabled: isCreatingMenu
|
|
118
121
|
}, label);
|
|
119
122
|
})), canUserCreateNavigationMenu && createElement(MenuGroup, {
|
|
120
123
|
label: __('Tools')
|
|
121
124
|
}, createElement(MenuItem, {
|
|
125
|
+
disabled: isCreatingMenu,
|
|
122
126
|
onClick: () => {
|
|
123
127
|
onClose();
|
|
124
128
|
onCreateNew();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"names":["MenuGroup","MenuItem","MenuItemsChoice","DropdownMenu","useEntityProp","moreVertical","__","sprintf","decodeEntities","useEffect","useMemo","useState","useNavigationMenu","useNavigationEntities","NavigationMenuSelector","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","selectorLabel","setSelectorLabel","isCreatingMenu","setIsCreatingMenu","menus","classicMenus","navigationMenus","hasResolvedNavigationMenus","isNavigationMenuResolved","canUserCreateNavigationMenu","canSwitchNavigationMenu","currentTitle","menuChoices","map","index","id","title","label","rendered","value","ariaLabel","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","NavigationMenuSelectorDropdown","isSmall","onClose","menuId","menu","name"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ selectorLabel, setSelectorLabel ] = useState( '' );\n\tconst [ isCreatingMenu, setIsCreatingMenu ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tisNavigationMenuResolved,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title'\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title }, index ) => {\n\t\t\t\tconst label =\n\t\t\t\t\tdecodeEntities( title.rendered ) ||\n\t\t\t\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\t\t\t\tsprintf( __( '(no title %s)' ), index + 1 );\n\n\t\t\t\tif ( id === currentMenuId && ! isCreatingMenu ) {\n\t\t\t\t\tsetSelectorLabel(\n\t\t\t\t\t\t/* translators: %s is the name of a navigation menu. */\n\t\t\t\t\t\tsprintf( __( 'You are currently editing %s' ), label )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [\n\t\tcurrentTitle,\n\t\tcurrentMenuId,\n\t\tnavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisNavigationMenuResolved,\n\t\thasResolvedNavigationMenus,\n\t] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\n\tuseEffect( () => {\n\t\tif ( ! hasResolvedNavigationMenus ) {\n\t\t\tsetSelectorLabel( __( 'Loading …' ) );\n\t\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\n\t\t\tsetSelectorLabel( __( 'Choose a Navigation menu' ) );\n\t\t}\n\n\t\tif (\n\t\t\tisCreatingMenu &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsCreatingMenu( false );\n\t\t}\n\t}, [\n\t\tcurrentMenuId,\n\t\thasNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tisNavigationMenuResolved,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { isSmall: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectorLabel(\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Loading …' )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tonSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\tonCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\tsetSelectorLabel( __( 'Loading …' ) );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/navigation-menu-selector.js"],"names":["MenuGroup","MenuItem","MenuItemsChoice","DropdownMenu","moreVertical","__","sprintf","decodeEntities","useEffect","useMemo","useState","useNavigationMenu","useNavigationEntities","NavigationMenuSelector","currentMenuId","onSelectNavigationMenu","onSelectClassicMenu","onCreateNew","actionLabel","createNavigationMenuIsSuccess","createNavigationMenuIsError","createActionLabel","selectorLabel","setSelectorLabel","isCreatingMenu","setIsCreatingMenu","menus","classicMenus","navigationMenus","hasResolvedNavigationMenus","canUserCreateNavigationMenu","canSwitchNavigationMenu","menuChoices","map","index","id","title","label","rendered","value","ariaLabel","hasNavigationMenus","length","hasClassicMenus","showNavigationMenus","showClassicMenus","noMenuSelected","noBlockMenus","menuUnavailable","NavigationMenuSelectorDropdown","isSmall","onClose","menuId","menu","name"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ selectorLabel, setSelectorLabel ] = useState( '' );\n\tconst [ isCreatingMenu, setIsCreatingMenu ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenu,\n\t\tcanSwitchNavigationMenu,\n\t} = useNavigationMenu();\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title }, index ) => {\n\t\t\t\tconst label =\n\t\t\t\t\tdecodeEntities( title?.rendered ) ||\n\t\t\t\t\t/* translators: %s is the index of the menu in the list of menus. */\n\t\t\t\t\tsprintf( __( '(no title %s)' ), index + 1 );\n\n\t\t\t\tif ( id === currentMenuId && ! isCreatingMenu ) {\n\t\t\t\t\tsetSelectorLabel(\n\t\t\t\t\t\t/* translators: %s is the name of a navigation menu. */\n\t\t\t\t\t\tsprintf( __( 'You are currently editing %s' ), label )\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [ currentMenuId, navigationMenus, actionLabel ] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenu;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\n\tuseEffect( () => {\n\t\tif ( ! hasResolvedNavigationMenus && ! canUserCreateNavigationMenu ) {\n\t\t\tsetSelectorLabel( __( 'Loading …' ) );\n\t\t} else if ( noMenuSelected || noBlockMenus || menuUnavailable ) {\n\t\t\tsetSelectorLabel( __( 'Choose or create a Navigation menu' ) );\n\t\t}\n\n\t\tif (\n\t\t\tisCreatingMenu &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsCreatingMenu( false );\n\t\t}\n\t}, [ hasResolvedNavigationMenus, createNavigationMenuIsSuccess ] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { isSmall: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tsetSelectorLabel( __( 'Loading …' ) );\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetSelectorLabel(\n\t\t\t\t\t\t\t\t\t\t\t\t__( 'Loading …' )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\t\t\tonSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenu && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tdisabled={ isCreatingMenu }\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\tonCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsCreatingMenu( true );\n\t\t\t\t\t\t\t\t\tsetSelectorLabel( __( 'Loading …' ) );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Create new menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"]}
|
|
@@ -17,7 +17,7 @@ export default function useNavigationMenu(ref) {
|
|
|
17
17
|
navigationMenus,
|
|
18
18
|
isResolvingNavigationMenus,
|
|
19
19
|
hasResolvedNavigationMenus
|
|
20
|
-
} = selectNavigationMenus(select
|
|
20
|
+
} = selectNavigationMenus(select);
|
|
21
21
|
const {
|
|
22
22
|
navigationMenu,
|
|
23
23
|
isNavigationMenuResolved,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["store","coreStore","useResourcePermissions","useSelect","useNavigationMenu","ref","permissions","select","canCreate","canUpdate","canDelete","isResolving","hasResolved","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","selectNavigationMenus","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","selectExistingMenu","canSwitchNavigationMenu","length","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","undefined","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","getEntityRecords","hasFinishedResolution","args","per_page","status","getEntityRecord","getEditedEntityRecord","editedNavigationMenu","hasResolvedNavigationMenu","isNavigationMenuPublishedOrDraft"],"mappings":"AAAA;AACA;AACA;AACA,SACCA,KAAK,IAAIC,SADV,EAECC,sBAFD,QAGO,sBAHP;AAIA,SAASC,SAAT,QAA0B,iBAA1B;AAEA,eAAe,SAASC,iBAAT,CAA4BC,GAA5B,EAAkC;AAChD,QAAMC,WAAW,GAAGJ,sBAAsB,CAAE,YAAF,EAAgBG,GAAhB,CAA1C;AAEA,SAAOF,SAAS,CACbI,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,SADK;AAELC,MAAAA,SAFK;AAGLC,MAAAA,SAHK;AAILC,MAAAA,WAJK;AAKLC,MAAAA;AALK,QAMFN,WANJ;AAQA,UAAM;AACLO,MAAAA,eADK;AAELC,MAAAA,0BAFK;AAGLC,MAAAA;AAHK,QAIFC,qBAAqB,CAAET,MAAF,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-navigation-menu.js"],"names":["store","coreStore","useResourcePermissions","useSelect","useNavigationMenu","ref","permissions","select","canCreate","canUpdate","canDelete","isResolving","hasResolved","navigationMenus","isResolvingNavigationMenus","hasResolvedNavigationMenus","selectNavigationMenus","navigationMenu","isNavigationMenuResolved","isNavigationMenuMissing","selectExistingMenu","canSwitchNavigationMenu","length","canUserCreateNavigationMenu","isResolvingCanUserCreateNavigationMenu","hasResolvedCanUserCreateNavigationMenu","canUserUpdateNavigationMenu","hasResolvedCanUserUpdateNavigationMenu","undefined","canUserDeleteNavigationMenu","hasResolvedCanUserDeleteNavigationMenu","getEntityRecords","hasFinishedResolution","args","per_page","status","getEntityRecord","getEditedEntityRecord","editedNavigationMenu","hasResolvedNavigationMenu","isNavigationMenuPublishedOrDraft"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tstore as coreStore,\n\tuseResourcePermissions,\n} from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\n\nexport default function useNavigationMenu( ref ) {\n\tconst permissions = useResourcePermissions( 'navigation', ref );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanCreate,\n\t\t\t\tcanUpdate,\n\t\t\t\tcanDelete,\n\t\t\t\tisResolving,\n\t\t\t\thasResolved,\n\t\t\t} = permissions;\n\n\t\t\tconst {\n\t\t\t\tnavigationMenus,\n\t\t\t\tisResolvingNavigationMenus,\n\t\t\t\thasResolvedNavigationMenus,\n\t\t\t} = selectNavigationMenus( select );\n\n\t\t\tconst {\n\t\t\t\tnavigationMenu,\n\t\t\t\tisNavigationMenuResolved,\n\t\t\t\tisNavigationMenuMissing,\n\t\t\t} = selectExistingMenu( select, ref );\n\n\t\t\treturn {\n\t\t\t\tnavigationMenus,\n\t\t\t\tisResolvingNavigationMenus,\n\t\t\t\thasResolvedNavigationMenus,\n\n\t\t\t\tnavigationMenu,\n\t\t\t\tisNavigationMenuResolved,\n\t\t\t\tisNavigationMenuMissing,\n\n\t\t\t\tcanSwitchNavigationMenu: ref\n\t\t\t\t\t? navigationMenus?.length > 1\n\t\t\t\t\t: navigationMenus?.length > 0,\n\n\t\t\t\tcanUserCreateNavigationMenu: canCreate,\n\t\t\t\tisResolvingCanUserCreateNavigationMenu: isResolving,\n\t\t\t\thasResolvedCanUserCreateNavigationMenu: hasResolved,\n\n\t\t\t\tcanUserUpdateNavigationMenu: canUpdate,\n\t\t\t\thasResolvedCanUserUpdateNavigationMenu: ref\n\t\t\t\t\t? hasResolved\n\t\t\t\t\t: undefined,\n\n\t\t\t\tcanUserDeleteNavigationMenu: canDelete,\n\t\t\t\thasResolvedCanUserDeleteNavigationMenu: ref\n\t\t\t\t\t? hasResolved\n\t\t\t\t\t: undefined,\n\t\t\t};\n\t\t},\n\t\t[ ref, permissions ]\n\t);\n}\n\nfunction selectNavigationMenus( select ) {\n\tconst { getEntityRecords, hasFinishedResolution, isResolving } =\n\t\tselect( coreStore );\n\n\tconst args = [\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t{ per_page: -1, status: [ 'publish', 'draft' ] },\n\t];\n\treturn {\n\t\tnavigationMenus: getEntityRecords( ...args ),\n\t\tisResolvingNavigationMenus: isResolving( 'getEntityRecords', args ),\n\t\thasResolvedNavigationMenus: hasFinishedResolution(\n\t\t\t'getEntityRecords',\n\t\t\targs\n\t\t),\n\t};\n}\n\nfunction selectExistingMenu( select, ref ) {\n\tif ( ! ref ) {\n\t\treturn {\n\t\t\tisNavigationMenuResolved: false,\n\t\t\tisNavigationMenuMissing: true,\n\t\t};\n\t}\n\n\tconst { getEntityRecord, getEditedEntityRecord, hasFinishedResolution } =\n\t\tselect( coreStore );\n\n\tconst args = [ 'postType', 'wp_navigation', ref ];\n\tconst navigationMenu = getEntityRecord( ...args );\n\tconst editedNavigationMenu = getEditedEntityRecord( ...args );\n\tconst hasResolvedNavigationMenu = hasFinishedResolution(\n\t\t'getEditedEntityRecord',\n\t\targs\n\t);\n\n\t// Only published Navigation posts are considered valid.\n\t// Draft Navigation posts are valid only on the editor,\n\t// requiring a post update to publish to show in frontend.\n\t// To achieve that, index.php must reflect this validation only for published.\n\tconst isNavigationMenuPublishedOrDraft =\n\t\teditedNavigationMenu.status === 'publish' ||\n\t\teditedNavigationMenu.status === 'draft';\n\n\treturn {\n\t\tisNavigationMenuResolved: hasResolvedNavigationMenu,\n\t\tisNavigationMenuMissing:\n\t\t\thasResolvedNavigationMenu &&\n\t\t\t( ! navigationMenu || ! isNavigationMenuPublishedOrDraft ),\n\n\t\t// getEditedEntityRecord will return the post regardless of status.\n\t\t// Therefore if the found post is not published then we should ignore it.\n\t\tnavigationMenu: isNavigationMenuPublishedOrDraft\n\t\t\t? editedNavigationMenu\n\t\t\t: null,\n\t};\n}\n"]}
|
|
@@ -301,6 +301,10 @@ export default function NavigationLinkEdit(_ref) {
|
|
|
301
301
|
useEffect(() => {
|
|
302
302
|
// If block has inner blocks, transform to Submenu.
|
|
303
303
|
if (hasChildren) {
|
|
304
|
+
// This side-effect should not create an undo level as those should
|
|
305
|
+
// only be created via user interactions.
|
|
306
|
+
__unstableMarkNextChangeAsNotPersistent();
|
|
307
|
+
|
|
304
308
|
transformToSubmenu();
|
|
305
309
|
}
|
|
306
310
|
}, [hasChildren]);
|