@wordpress/block-library 6.0.19 → 6.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/gallery/edit.js +0 -7
- package/build/gallery/edit.js.map +1 -1
- package/build/navigation/edit/index.js +8 -2
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/edit/navigation-menu-selector.js +42 -4
- package/build/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build/navigation/edit/placeholder/index.js +6 -41
- package/build/navigation/edit/placeholder/index.js.map +1 -1
- package/build/navigation/index.js +0 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation/use-convert-classic-menu.js +59 -0
- package/build/navigation/use-convert-classic-menu.js.map +1 -0
- package/build/navigation/view.js +1 -1
- package/build/navigation/view.js.map +1 -1
- package/build/template-part/index.js +0 -8
- package/build/template-part/index.js.map +1 -1
- package/build-module/gallery/edit.js +0 -6
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/navigation/edit/index.js +7 -2
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-selector.js +39 -4
- package/build-module/navigation/edit/navigation-menu-selector.js.map +1 -1
- package/build-module/navigation/edit/placeholder/index.js +5 -41
- package/build-module/navigation/edit/placeholder/index.js.map +1 -1
- package/build-module/navigation/index.js +0 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation/use-convert-classic-menu.js +47 -0
- package/build-module/navigation/use-convert-classic-menu.js.map +1 -0
- package/build-module/navigation/view.js +1 -1
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/template-part/index.js +0 -8
- package/build-module/template-part/index.js.map +1 -1
- package/package.json +7 -8
- package/src/gallery/edit.js +0 -7
- package/src/navigation/block.json +0 -1
- package/src/navigation/edit/index.js +9 -1
- package/src/navigation/edit/navigation-menu-selector.js +65 -15
- package/src/navigation/edit/placeholder/index.js +9 -44
- package/src/navigation/use-convert-classic-menu.js +58 -0
- package/src/navigation/view.js +1 -1
- package/src/template-part/block.json +0 -8
- package/build/gallery/use-mobile-warning.js +0 -43
- package/build/gallery/use-mobile-warning.js.map +0 -1
- package/build-module/gallery/use-mobile-warning.js +0 -32
- package/build-module/gallery/use-mobile-warning.js.map +0 -1
- package/src/gallery/use-mobile-warning.js +0 -28
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["ExistingMenusDropdown","canSwitchNavigationMenu","navigationMenus","setSelectedMenu","onFinish","menus","onCreateFromMenu","showClassicMenus","toggleProps","variant","iconPosition","className","isAlternate","onClose","map","menu","id","title","rendered","name","NavigationPlaceholder","clientId","hasResolvedNavigationMenus","canUserCreateNavigation","selectedMenu","isCreatingFromMenu","setIsCreatingFromMenu","menuName","setMenuName","createNavigationMenu","onFinishMenuCreation","blocks","navigationMenuTitle","navigationMenu","isResolvingPages","isResolvingMenus","menuItems","hasResolvedMenuItems","hasPages","hasMenus","isStillLoading","createFromMenu","innerBlocks","menuItemsToBlocks","onCreateEmptyMenu","onCreateAllPages","block","navigation","length","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { useCallback, useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport menuItemsToBlocks from '../../menu-items-to-blocks';\nimport useNavigationMenu from '../../use-navigation-menu';\nimport useCreateNavigationMenu from '../use-create-navigation-menu';\n\nconst ExistingMenusDropdown = ( {\n\tcanSwitchNavigationMenu,\n\tnavigationMenus,\n\tsetSelectedMenu,\n\tonFinish,\n\tmenus,\n\tonCreateFromMenu,\n\tshowClassicMenus = false,\n} ) => {\n\tconst toggleProps = {\n\t\tvariant: 'tertiary',\n\t\ticonPosition: 'right',\n\t\tclassName: 'wp-block-navigation-placeholder__actions__dropdown',\n\t};\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttext={ __( 'Select menu' ) }\n\t\t\ticon={ null }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t{ canSwitchNavigationMenu &&\n\t\t\t\t\t\t\tnavigationMenus?.map( ( menu ) => {\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\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\t\tonFinish( menu );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\tmenu.title.rendered\n\t\t\t\t\t\t\t\t\t\t) }\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</MenuGroup>\n\t\t\t\t\t{ showClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t\t{ menus?.map( ( menu ) => {\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\tsetSelectedMenu( menu.id );\n\t\t\t\t\t\t\t\t\t\t\tonCreateFromMenu( menu.name );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ decodeEntities( menu.name ) }\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\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n};\n\nexport default function NavigationPlaceholder( {\n\tclientId,\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n\tcanUserCreateNavigation = false,\n} ) {\n\tconst [ selectedMenu, setSelectedMenu ] = useState();\n\tconst [ isCreatingFromMenu, setIsCreatingFromMenu ] = useState( false );\n\tconst [ menuName, setMenuName ] = useState( '' );\n\tconst createNavigationMenu = useCreateNavigationMenu( clientId );\n\n\tconst onFinishMenuCreation = async (\n\t\tblocks,\n\t\tnavigationMenuTitle = null\n\t) => {\n\t\tif ( ! canUserCreateNavigation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu, blocks );\n\t};\n\n\tconst {\n\t\tisResolvingPages,\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t\thasPages,\n\t\thasMenus,\n\t} = useNavigationEntities( selectedMenu );\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst createFromMenu = useCallback(\n\t\t( name ) => {\n\t\t\tconst { innerBlocks: blocks } = menuItemsToBlocks( menuItems );\n\t\t\tonFinishMenuCreation( blocks, name );\n\t\t},\n\t\t[ menuItems, menuItemsToBlocks, onFinish ]\n\t);\n\n\tconst onCreateFromMenu = ( name ) => {\n\t\t// If we have menu items, create the block right away.\n\t\tif ( hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( name );\n\t\t\treturn;\n\t\t}\n\n\t\t// Otherwise, create the block when resolution finishes.\n\t\tsetIsCreatingFromMenu( true );\n\t\t// Store the name to use later.\n\t\tsetMenuName( name );\n\t};\n\n\tconst onCreateEmptyMenu = () => {\n\t\tonFinishMenuCreation( [] );\n\t};\n\n\tconst onCreateAllPages = () => {\n\t\tconst block = [ createBlock( 'core/page-list' ) ];\n\t\tonFinishMenuCreation( block );\n\t};\n\n\tuseEffect( () => {\n\t\t// If the user selected a menu but we had to wait for menu items to\n\t\t// finish resolving, then create the block once resolution finishes.\n\t\tif ( isCreatingFromMenu && hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( menuName );\n\t\t\tsetIsCreatingFromMenu( false );\n\t\t}\n\t}, [ isCreatingFromMenu, hasResolvedMenuItems, menuName ] );\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t\t{ hasMenus || navigationMenus?.length ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ExistingMenusDropdown\n\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu={\n\t\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\t\t\t\t\tsetSelectedMenu={ setSelectedMenu }\n\t\t\t\t\t\t\t\t\t\tonFinish={ onFinish }\n\t\t\t\t\t\t\t\t\t\tmenus={ menus }\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu={ onCreateFromMenu }\n\t\t\t\t\t\t\t\t\t\tshowClassicMenus={\n\t\t\t\t\t\t\t\t\t\t\tcanUserCreateNavigation\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<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t{ canUserCreateNavigation && hasPages ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ onCreateAllPages }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Add all pages' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\n\t\t\t\t\t\t\t{ canUserCreateNavigation && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ onCreateEmptyMenu }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/edit/placeholder/index.js"],"names":["ExistingMenusDropdown","canSwitchNavigationMenu","navigationMenus","onFinish","menus","onCreateFromMenu","showClassicMenus","toggleProps","variant","iconPosition","className","isAlternate","onClose","map","menu","id","title","rendered","name","NavigationPlaceholder","clientId","hasResolvedNavigationMenus","canUserCreateNavigation","createNavigationMenu","onFinishMenuCreation","blocks","navigationMenuTitle","navigationMenu","convertClassicMenu","isResolvingPages","isResolvingMenus","hasPages","hasMenus","isStillLoading","onCreateEmptyMenu","onCreateAllPages","block","navigation","length","undefined"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPlaceholder,\n\tButton,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\n\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport useNavigationMenu from '../../use-navigation-menu';\nimport useCreateNavigationMenu from '../use-create-navigation-menu';\nimport useConvertClassicMenu from '../../use-convert-classic-menu';\n\nconst ExistingMenusDropdown = ( {\n\tcanSwitchNavigationMenu,\n\tnavigationMenus,\n\tonFinish,\n\tmenus,\n\tonCreateFromMenu,\n\tshowClassicMenus = false,\n} ) => {\n\tconst toggleProps = {\n\t\tvariant: 'tertiary',\n\t\ticonPosition: 'right',\n\t\tclassName: 'wp-block-navigation-placeholder__actions__dropdown',\n\t};\n\treturn (\n\t\t<DropdownMenu\n\t\t\ttext={ __( 'Select menu' ) }\n\t\t\ticon={ null }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tpopoverProps={ { isAlternate: true } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t{ canSwitchNavigationMenu &&\n\t\t\t\t\t\t\tnavigationMenus?.map( ( menu ) => {\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\tonFinish( menu );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ decodeEntities(\n\t\t\t\t\t\t\t\t\t\t\tmenu.title.rendered\n\t\t\t\t\t\t\t\t\t\t) }\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</MenuGroup>\n\t\t\t\t\t{ showClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Classic Menus' ) }>\n\t\t\t\t\t\t\t{ menus?.map( ( menu ) => {\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\tonCreateFromMenu(\n\t\t\t\t\t\t\t\t\t\t\t\tmenu.id,\n\t\t\t\t\t\t\t\t\t\t\t\tmenu.name\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ decodeEntities( menu.name ) }\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\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n};\n\nexport default function NavigationPlaceholder( {\n\tclientId,\n\tonFinish,\n\tcanSwitchNavigationMenu,\n\thasResolvedNavigationMenus,\n\tcanUserCreateNavigation = false,\n} ) {\n\tconst createNavigationMenu = useCreateNavigationMenu( clientId );\n\n\tconst onFinishMenuCreation = async (\n\t\tblocks,\n\t\tnavigationMenuTitle = null\n\t) => {\n\t\tif ( ! canUserCreateNavigation ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst navigationMenu = await createNavigationMenu(\n\t\t\tnavigationMenuTitle,\n\t\t\tblocks\n\t\t);\n\t\tonFinish( navigationMenu, blocks );\n\t};\n\n\tconst convertClassicMenu = useConvertClassicMenu( onFinishMenuCreation );\n\n\tconst {\n\t\tisResolvingPages,\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\thasPages,\n\t\thasMenus,\n\t} = useNavigationEntities();\n\n\tconst isStillLoading = isResolvingPages || isResolvingMenus;\n\n\tconst onCreateEmptyMenu = () => {\n\t\tonFinishMenuCreation( [] );\n\t};\n\n\tconst onCreateAllPages = () => {\n\t\tconst block = [ createBlock( 'core/page-list' ) ];\n\t\tonFinishMenuCreation( block );\n\t};\n\n\tconst { navigationMenus } = useNavigationMenu();\n\n\treturn (\n\t\t<>\n\t\t\t{ ( ! hasResolvedNavigationMenus || isStillLoading ) && (\n\t\t\t\t<PlaceholderPreview isLoading />\n\t\t\t) }\n\t\t\t{ hasResolvedNavigationMenus && ! isStillLoading && (\n\t\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t\t<PlaceholderPreview />\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__controls\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t\t<Icon icon={ navigation } />{ ' ' }\n\t\t\t\t\t\t\t\t{ __( 'Navigation' ) }\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t\t{ hasMenus || navigationMenus?.length ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<ExistingMenusDropdown\n\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu={\n\t\t\t\t\t\t\t\t\t\t\tcanSwitchNavigationMenu\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tnavigationMenus={ navigationMenus }\n\t\t\t\t\t\t\t\t\t\tonFinish={ onFinish }\n\t\t\t\t\t\t\t\t\t\tmenus={ menus }\n\t\t\t\t\t\t\t\t\t\tonCreateFromMenu={ convertClassicMenu }\n\t\t\t\t\t\t\t\t\t\tshowClassicMenus={\n\t\t\t\t\t\t\t\t\t\t\tcanUserCreateNavigation\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<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\t\t\t\t\t\t\t{ canUserCreateNavigation && hasPages ? (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ onCreateAllPages }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Add all pages' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t<hr />\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) : undefined }\n\n\t\t\t\t\t\t\t{ canUserCreateNavigation && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\tonClick={ onCreateEmptyMenu }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Placeholder>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/index.js"],"names":["name","metadata","settings","icon","example","innerBlocks","attributes","label","url","edit","save","deprecated"],"mappings":";;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/index.js"],"names":["name","metadata","settings","icon","example","innerBlocks","attributes","label","url","edit","save","deprecated"],"mappings":";;;;;;;;;AAGA;;AACA;;AAMA;;AACA;;AACA;;AAZA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,iBADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,WAAW,EAAE,CACZ;AACCL,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,MAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KADY,EASZ;AACCR,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,OAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KATY,EAiBZ;AACCR,MAAAA,IAAI,EAAE,sBADP;AAECM,MAAAA,UAAU,EAAE;AACX;AACAC,QAAAA,KAAK,EAAE,cAAI,SAAJ,CAFI;AAGXC,QAAAA,GAAG,EAAE;AAHM;AAFb,KAjBY;AADL,GAFc;AA8BvBC,EAAAA,IAAI,EAAJA,aA9BuB;AA+BvBC,EAAAA,IAAI,EAAJA,aA/BuB;AAgCvBC,EAAAA,UAAU,EAAVA;AAhCuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { navigation as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\nimport deprecated from './deprecated';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tinnerBlocks: [\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Home' as in a website's home page.\n\t\t\t\t\tlabel: __( 'Home' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'About' as in a website's about page.\n\t\t\t\t\tlabel: __( 'About' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'core/navigation-link',\n\t\t\t\tattributes: {\n\t\t\t\t\t// translators: 'Contact' as in a website's contact page.\n\t\t\t\t\tlabel: __( 'Contact' ),\n\t\t\t\t\turl: 'https://make.wordpress.org/',\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\tedit,\n\tsave,\n\tdeprecated,\n};\n"]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = useConvertClassicMenu;
|
|
9
|
+
|
|
10
|
+
var _element = require("@wordpress/element");
|
|
11
|
+
|
|
12
|
+
var _useNavigationEntities = _interopRequireDefault(require("./use-navigation-entities"));
|
|
13
|
+
|
|
14
|
+
var _menuItemsToBlocks = _interopRequireDefault(require("./menu-items-to-blocks"));
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* WordPress dependencies
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Internal dependencies
|
|
22
|
+
*/
|
|
23
|
+
function useConvertClassicMenu(onFinish) {
|
|
24
|
+
const [selectedMenu, setSelectedMenu] = (0, _element.useState)();
|
|
25
|
+
const [isAwaitingMenuItemResolution, setIsAwaitingMenuItemResolution] = (0, _element.useState)(false);
|
|
26
|
+
const [menuName, setMenuName] = (0, _element.useState)('');
|
|
27
|
+
const {
|
|
28
|
+
menuItems,
|
|
29
|
+
hasResolvedMenuItems
|
|
30
|
+
} = (0, _useNavigationEntities.default)(selectedMenu);
|
|
31
|
+
const createFromMenu = (0, _element.useCallback)(name => {
|
|
32
|
+
const {
|
|
33
|
+
innerBlocks: blocks
|
|
34
|
+
} = (0, _menuItemsToBlocks.default)(menuItems);
|
|
35
|
+
onFinish(blocks, name);
|
|
36
|
+
}, [menuItems, _menuItemsToBlocks.default, onFinish]);
|
|
37
|
+
(0, _element.useEffect)(() => {
|
|
38
|
+
// If the user selected a menu but we had to wait for menu items to
|
|
39
|
+
// finish resolving, then create the block once resolution finishes.
|
|
40
|
+
if (isAwaitingMenuItemResolution && hasResolvedMenuItems) {
|
|
41
|
+
createFromMenu(menuName);
|
|
42
|
+
setIsAwaitingMenuItemResolution(false);
|
|
43
|
+
}
|
|
44
|
+
}, [isAwaitingMenuItemResolution, hasResolvedMenuItems, menuName]);
|
|
45
|
+
return (0, _element.useCallback)((id, name) => {
|
|
46
|
+
setSelectedMenu(id); // If we have menu items, create the block right away.
|
|
47
|
+
|
|
48
|
+
if (hasResolvedMenuItems) {
|
|
49
|
+
createFromMenu(name);
|
|
50
|
+
return;
|
|
51
|
+
} // Otherwise, create the block when resolution finishes.
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
setIsAwaitingMenuItemResolution(true); // Store the name to use later.
|
|
55
|
+
|
|
56
|
+
setMenuName(name);
|
|
57
|
+
}, [hasResolvedMenuItems, createFromMenu]);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=use-convert-classic-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/use-convert-classic-menu.js"],"names":["useConvertClassicMenu","onFinish","selectedMenu","setSelectedMenu","isAwaitingMenuItemResolution","setIsAwaitingMenuItemResolution","menuName","setMenuName","menuItems","hasResolvedMenuItems","createFromMenu","name","innerBlocks","blocks","menuItemsToBlocks","id"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIe,SAASA,qBAAT,CAAgCC,QAAhC,EAA2C;AACzD,QAAM,CAAEC,YAAF,EAAgBC,eAAhB,IAAoC,wBAA1C;AACA,QAAM,CACLC,4BADK,EAELC,+BAFK,IAGF,uBAAU,KAAV,CAHJ;AAIA,QAAM,CAAEC,QAAF,EAAYC,WAAZ,IAA4B,uBAAU,EAAV,CAAlC;AAEA,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAAsC,oCAC3CP,YAD2C,CAA5C;AAIA,QAAMQ,cAAc,GAAG,0BACpBC,IAAF,IAAY;AACX,UAAM;AAAEC,MAAAA,WAAW,EAAEC;AAAf,QAA0B,gCAAmBL,SAAnB,CAAhC;AACAP,IAAAA,QAAQ,CAAEY,MAAF,EAAUF,IAAV,CAAR;AACA,GAJqB,EAKtB,CAAEH,SAAF,EAAaM,0BAAb,EAAgCb,QAAhC,CALsB,CAAvB;AAQA,0BAAW,MAAM;AAChB;AACA;AACA,QAAKG,4BAA4B,IAAIK,oBAArC,EAA4D;AAC3DC,MAAAA,cAAc,CAAEJ,QAAF,CAAd;AACAD,MAAAA,+BAA+B,CAAE,KAAF,CAA/B;AACA;AACD,GAPD,EAOG,CAAED,4BAAF,EAAgCK,oBAAhC,EAAsDH,QAAtD,CAPH;AASA,SAAO,0BACN,CAAES,EAAF,EAAMJ,IAAN,KAAgB;AACfR,IAAAA,eAAe,CAAEY,EAAF,CAAf,CADe,CAGf;;AACA,QAAKN,oBAAL,EAA4B;AAC3BC,MAAAA,cAAc,CAAEC,IAAF,CAAd;AACA;AACA,KAPc,CASf;;;AACAN,IAAAA,+BAA+B,CAAE,IAAF,CAA/B,CAVe,CAWf;;AACAE,IAAAA,WAAW,CAAEI,IAAF,CAAX;AACA,GAdK,EAeN,CAAEF,oBAAF,EAAwBC,cAAxB,CAfM,CAAP;AAiBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationEntities from './use-navigation-entities';\nimport menuItemsToBlocks from './menu-items-to-blocks';\n\nexport default function useConvertClassicMenu( onFinish ) {\n\tconst [ selectedMenu, setSelectedMenu ] = useState();\n\tconst [\n\t\tisAwaitingMenuItemResolution,\n\t\tsetIsAwaitingMenuItemResolution,\n\t] = useState( false );\n\tconst [ menuName, setMenuName ] = useState( '' );\n\n\tconst { menuItems, hasResolvedMenuItems } = useNavigationEntities(\n\t\tselectedMenu\n\t);\n\n\tconst createFromMenu = useCallback(\n\t\t( name ) => {\n\t\t\tconst { innerBlocks: blocks } = menuItemsToBlocks( menuItems );\n\t\t\tonFinish( blocks, name );\n\t\t},\n\t\t[ menuItems, menuItemsToBlocks, onFinish ]\n\t);\n\n\tuseEffect( () => {\n\t\t// If the user selected a menu but we had to wait for menu items to\n\t\t// finish resolving, then create the block once resolution finishes.\n\t\tif ( isAwaitingMenuItemResolution && hasResolvedMenuItems ) {\n\t\t\tcreateFromMenu( menuName );\n\t\t\tsetIsAwaitingMenuItemResolution( false );\n\t\t}\n\t}, [ isAwaitingMenuItemResolution, hasResolvedMenuItems, menuName ] );\n\n\treturn useCallback(\n\t\t( id, name ) => {\n\t\t\tsetSelectedMenu( id );\n\n\t\t\t// If we have menu items, create the block right away.\n\t\t\tif ( hasResolvedMenuItems ) {\n\t\t\t\tcreateFromMenu( name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Otherwise, create the block when resolution finishes.\n\t\t\tsetIsAwaitingMenuItemResolution( true );\n\t\t\t// Store the name to use later.\n\t\t\tsetMenuName( name );\n\t\t},\n\t\t[ hasResolvedMenuItems, createFromMenu ]\n\t);\n}\n"]}
|
package/build/navigation/view.js
CHANGED
|
@@ -9,7 +9,7 @@ var _micromodal = _interopRequireDefault(require("micromodal"));
|
|
|
9
9
|
*/
|
|
10
10
|
// Responsive navigation toggle.
|
|
11
11
|
function navigationToggleModal(modal) {
|
|
12
|
-
const dialogContainer =
|
|
12
|
+
const dialogContainer = modal.querySelector(`.wp-block-navigation__responsive-dialog`);
|
|
13
13
|
const isHidden = 'true' === modal.getAttribute('aria-hidden');
|
|
14
14
|
modal.classList.toggle('has-modal-open', !isHidden);
|
|
15
15
|
dialogContainer.toggleAttribute('aria-modal', !isHidden);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/navigation/view.js"],"names":["navigationToggleModal","modal","dialogContainer","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/navigation/view.js"],"names":["navigationToggleModal","modal","dialogContainer","querySelector","isHidden","getAttribute","classList","toggle","toggleAttribute","removeAttribute","setAttribute","htmlElement","document","documentElement","closeSubmenus","element","querySelectorAll","forEach","toggleSubmenuOnClick","event","buttonToggle","target","closest","isSubmenuOpen","parentElement","navigationParent","child","window","addEventListener","MicroModal","init","onShow","onClose","openClass","submenuButtons","button","navigationBlocks","block","contains","submenuBlocks"],"mappings":";;;;AAGA;;AAHA;AACA;AACA;AAGA;AACA,SAASA,qBAAT,CAAgCC,KAAhC,EAAwC;AACvC,QAAMC,eAAe,GAAGD,KAAK,CAACE,aAAN,CACtB,yCADsB,CAAxB;AAIA,QAAMC,QAAQ,GAAG,WAAWH,KAAK,CAACI,YAAN,CAAoB,aAApB,CAA5B;AAEAJ,EAAAA,KAAK,CAACK,SAAN,CAAgBC,MAAhB,CAAwB,gBAAxB,EAA0C,CAAEH,QAA5C;AACAF,EAAAA,eAAe,CAACM,eAAhB,CAAiC,YAAjC,EAA+C,CAAEJ,QAAjD;;AAEA,MAAKA,QAAL,EAAgB;AACfF,IAAAA,eAAe,CAACO,eAAhB,CAAiC,MAAjC;AACAP,IAAAA,eAAe,CAACO,eAAhB,CAAiC,YAAjC;AACA,GAHD,MAGO;AACNP,IAAAA,eAAe,CAACQ,YAAhB,CAA8B,MAA9B,EAAsC,QAAtC;AACAR,IAAAA,eAAe,CAACQ,YAAhB,CAA8B,YAA9B,EAA4C,MAA5C;AACA,GAhBsC,CAkBvC;;;AACA,QAAMC,WAAW,GAAGC,QAAQ,CAACC,eAA7B;AACAF,EAAAA,WAAW,CAACL,SAAZ,CAAsBC,MAAtB,CAA8B,gBAA9B;AACA,C,CAED;;;AACA,SAASO,aAAT,CAAwBC,OAAxB,EAAkC;AACjCA,EAAAA,OAAO,CACLC,gBADF,CACoB,wBADpB,EAEEC,OAFF,CAEW,UAAWV,MAAX,EAAoB;AAC7BA,IAAAA,MAAM,CAACG,YAAP,CAAqB,eAArB,EAAsC,OAAtC;AACA,GAJF;AAKA;;AAED,SAASQ,oBAAT,CAA+BC,KAA/B,EAAuC;AACtC,QAAMC,YAAY,GAAGD,KAAK,CAACE,MAAN,CAAaC,OAAb,CAAsB,iBAAtB,CAArB;AACA,QAAMC,aAAa,GAAGH,YAAY,CAACf,YAAb,CAA2B,eAA3B,CAAtB;;AAEA,MAAKkB,aAAa,KAAK,MAAvB,EAAgC;AAC/BT,IAAAA,aAAa,CAAEM,YAAY,CAACE,OAAb,CAAsB,2BAAtB,CAAF,CAAb;AACA,GAFD,MAEO;AACN;AACA,UAAME,aAAa,GAAGJ,YAAY,CAACE,OAAb,CACrB,2BADqB,CAAtB;AAGA,UAAMG,gBAAgB,GAAGL,YAAY,CAACE,OAAb,CACxB,+FADwB,CAAzB;AAGAG,IAAAA,gBAAgB,CACdT,gBADF,CACoB,2BADpB,EAEEC,OAFF,CAEW,UAAWS,KAAX,EAAmB;AAC5B,UAAKA,KAAK,KAAKF,aAAf,EAA+B;AAC9BV,QAAAA,aAAa,CAAEY,KAAF,CAAb;AACA;AACD,KANF,EARM,CAeN;;AACAN,IAAAA,YAAY,CAACV,YAAb,CAA2B,eAA3B,EAA4C,MAA5C;AACA;AACD,C,CAED;AACA;;;AACAiB,MAAM,CAACC,gBAAP,CAAyB,MAAzB,EAAiC,MAAM;AACtCC,sBAAWC,IAAX,CAAiB;AAChBC,IAAAA,MAAM,EAAE/B,qBADQ;AAEhBgC,IAAAA,OAAO,EAAEhC,qBAFO;AAGhBiC,IAAAA,SAAS,EAAE;AAHK,GAAjB;;AAMA,QAAMC,cAAc,GAAGtB,QAAQ,CAACI,gBAAT,CACtB,sCADsB,CAAvB;AAIAkB,EAAAA,cAAc,CAACjB,OAAf,CAAwB,UAAWkB,MAAX,EAAoB;AAC3CA,IAAAA,MAAM,CAACP,gBAAP,CAAyB,OAAzB,EAAkCV,oBAAlC;AACA,GAFD,EAXsC,CAetC;;AACAN,EAAAA,QAAQ,CAACgB,gBAAT,CAA2B,OAA3B,EAAoC,UAAWT,KAAX,EAAmB;AACtD,UAAMiB,gBAAgB,GAAGxB,QAAQ,CAACI,gBAAT,CACxB,sBADwB,CAAzB;AAGAoB,IAAAA,gBAAgB,CAACnB,OAAjB,CAA0B,UAAWoB,KAAX,EAAmB;AAC5C,UAAK,CAAEA,KAAK,CAACC,QAAN,CAAgBnB,KAAK,CAACE,MAAtB,CAAP,EAAwC;AACvCP,QAAAA,aAAa,CAAEuB,KAAF,CAAb;AACA;AACD,KAJD;AAKA,GATD,EAhBsC,CA0BtC;;AACAzB,EAAAA,QAAQ,CAACgB,gBAAT,CAA2B,OAA3B,EAAoC,UAAWT,KAAX,EAAmB;AACtD,UAAMoB,aAAa,GAAG3B,QAAQ,CAACI,gBAAT,CACrB,qCADqB,CAAtB;AAGAuB,IAAAA,aAAa,CAACtB,OAAd,CAAuB,UAAWoB,KAAX,EAAmB;AACzC,UAAK,CAAEA,KAAK,CAACC,QAAN,CAAgBnB,KAAK,CAACE,MAAtB,CAAP,EAAwC;AACvCP,QAAAA,aAAa,CAAEuB,KAAF,CAAb;AACA;AACD,KAJD;AAKA,GATD;AAUA,CArCD","sourcesContent":["/**\n * External dependencies\n */\nimport MicroModal from 'micromodal';\n\n// Responsive navigation toggle.\nfunction navigationToggleModal( modal ) {\n\tconst dialogContainer = modal.querySelector(\n\t\t`.wp-block-navigation__responsive-dialog`\n\t);\n\n\tconst isHidden = 'true' === modal.getAttribute( 'aria-hidden' );\n\n\tmodal.classList.toggle( 'has-modal-open', ! isHidden );\n\tdialogContainer.toggleAttribute( 'aria-modal', ! isHidden );\n\n\tif ( isHidden ) {\n\t\tdialogContainer.removeAttribute( 'role' );\n\t\tdialogContainer.removeAttribute( 'aria-modal' );\n\t} else {\n\t\tdialogContainer.setAttribute( 'role', 'dialog' );\n\t\tdialogContainer.setAttribute( 'aria-modal', 'true' );\n\t}\n\n\t// Add a class to indicate the modal is open.\n\tconst htmlElement = document.documentElement;\n\thtmlElement.classList.toggle( 'has-modal-open' );\n}\n\n// Open on click functionality.\nfunction closeSubmenus( element ) {\n\telement\n\t\t.querySelectorAll( '[aria-expanded=\"true\"]' )\n\t\t.forEach( function ( toggle ) {\n\t\t\ttoggle.setAttribute( 'aria-expanded', 'false' );\n\t\t} );\n}\n\nfunction toggleSubmenuOnClick( event ) {\n\tconst buttonToggle = event.target.closest( '[aria-expanded]' );\n\tconst isSubmenuOpen = buttonToggle.getAttribute( 'aria-expanded' );\n\n\tif ( isSubmenuOpen === 'true' ) {\n\t\tcloseSubmenus( buttonToggle.closest( '.wp-block-navigation-item' ) );\n\t} else {\n\t\t// Close all sibling submenus.\n\t\tconst parentElement = buttonToggle.closest(\n\t\t\t'.wp-block-navigation-item'\n\t\t);\n\t\tconst navigationParent = buttonToggle.closest(\n\t\t\t'.wp-block-navigation__submenu-container, .wp-block-navigation__container, .wp-block-page-list'\n\t\t);\n\t\tnavigationParent\n\t\t\t.querySelectorAll( '.wp-block-navigation-item' )\n\t\t\t.forEach( function ( child ) {\n\t\t\t\tif ( child !== parentElement ) {\n\t\t\t\t\tcloseSubmenus( child );\n\t\t\t\t}\n\t\t\t} );\n\t\t// Open submenu.\n\t\tbuttonToggle.setAttribute( 'aria-expanded', 'true' );\n\t}\n}\n\n// Necessary for some themes such as TT1 Blocks, where\n// scripts could be loaded before the body.\nwindow.addEventListener( 'load', () => {\n\tMicroModal.init( {\n\t\tonShow: navigationToggleModal,\n\t\tonClose: navigationToggleModal,\n\t\topenClass: 'is-menu-open',\n\t} );\n\n\tconst submenuButtons = document.querySelectorAll(\n\t\t'.wp-block-navigation-submenu__toggle'\n\t);\n\n\tsubmenuButtons.forEach( function ( button ) {\n\t\tbutton.addEventListener( 'click', toggleSubmenuOnClick );\n\t} );\n\n\t// Close on click outside.\n\tdocument.addEventListener( 'click', function ( event ) {\n\t\tconst navigationBlocks = document.querySelectorAll(\n\t\t\t'.wp-block-navigation'\n\t\t);\n\t\tnavigationBlocks.forEach( function ( block ) {\n\t\t\tif ( ! block.contains( event.target ) ) {\n\t\t\t\tcloseSubmenus( block );\n\t\t\t}\n\t\t} );\n\t} );\n\t// Close on focus outside.\n\tdocument.addEventListener( 'keyup', function ( event ) {\n\t\tconst submenuBlocks = document.querySelectorAll(\n\t\t\t'.wp-block-navigation-item.has-child'\n\t\t);\n\t\tsubmenuBlocks.forEach( function ( block ) {\n\t\t\tif ( ! block.contains( event.target ) ) {\n\t\t\t\tcloseSubmenus( block );\n\t\t\t}\n\t\t} );\n\t} );\n} );\n"]}
|
|
@@ -56,14 +56,6 @@ const metadata = {
|
|
|
56
56
|
supports: {
|
|
57
57
|
align: true,
|
|
58
58
|
html: false,
|
|
59
|
-
color: {
|
|
60
|
-
gradients: true,
|
|
61
|
-
link: true
|
|
62
|
-
},
|
|
63
|
-
spacing: {
|
|
64
|
-
padding: true
|
|
65
|
-
},
|
|
66
|
-
__experimentalLayout: true,
|
|
67
59
|
reusable: false
|
|
68
60
|
},
|
|
69
61
|
editorStyle: "wp-block-template-part-editor"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/template-part/index.js"],"names":["name","metadata","settings","icon","symbolFilled","__experimentalLabel","slug","theme","entity","coreDataStore","getEntityRecord","title","rendered","edit","enhanceTemplatePartVariations","DISALLOWED_PARENTS","can","blockType","rootClientId","getBlock","getBlockParentsByBlockName","disallowedParentType","hasDisallowedParent","length"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/template-part/index.js"],"names":["name","metadata","settings","icon","symbolFilled","__experimentalLabel","slug","theme","entity","coreDataStore","getEntityRecord","title","rendered","edit","enhanceTemplatePartVariations","DISALLOWED_PARENTS","can","blockType","rootClientId","getBlock","getBlockParentsByBlockName","disallowedParentType","hasDisallowedParent","length"],"mappings":";;;;;;;;;AAGA;;AAKA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAGO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAEC,mBADiB;AAEvBC,EAAAA,mBAAmB,EAAE,QAAuB;AAAA;;AAAA,QAArB;AAAEC,MAAAA,IAAF;AAAQC,MAAAA;AAAR,KAAqB;;AAC3C;AACA;AACA,QAAK,CAAED,IAAP,EAAc;AACb;AACA;;AAED,UAAME,MAAM,GAAG,kBAAQC,eAAR,EAAwBC,eAAxB,CACd,UADc,EAEd,kBAFc,EAGdH,KAAK,GAAG,IAAR,GAAeD,IAHD,CAAf;;AAKA,QAAK,CAAEE,MAAP,EAAgB;AACf;AACA;;AAED,WAAO,uBAAW,kBAAAA,MAAM,CAACG,KAAP,gEAAcC,QAAd,KAA0BJ,MAAM,CAACF,IAA5C,CAAP;AACA,GAnBsB;AAoBvBO,EAAAA,IAAI,EAAJA;AApBuB,CAAjB,C,CAuBP;;;AACA,sBACC,0BADD,EAEC,oBAFD,EAGCC,yCAHD,E,CAMA;;AACA,MAAMC,kBAAkB,GAAG,CAAE,oBAAF,EAAwB,mBAAxB,CAA3B;AACA,sBACC,0CADD,EAEC,sCAFD,EAGC,CACCC,GADD,EAECC,SAFD,EAGCC,YAHD,YAKK;AAAA,MADJ;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,GACI;;AACJ,MAAKH,SAAS,CAACjB,IAAV,KAAmB,oBAAxB,EAA+C;AAC9C,WAAOgB,GAAP;AACA;;AAED,OAAM,MAAMK,oBAAZ,IAAoCN,kBAApC,EAAyD;AAAA;;AACxD,UAAMO,mBAAmB,GACxB,cAAAH,QAAQ,CAAED,YAAF,CAAR,wDAA0BlB,IAA1B,MAAmCqB,oBAAnC,IACAD,0BAA0B,CAAEF,YAAF,EAAgBG,oBAAhB,CAA1B,CACEE,MAHH;;AAIA,QAAKD,mBAAL,EAA2B;AAC1B,aAAO,KAAP;AACA;AACD;;AACD,SAAO,IAAP;AACA,CAvBF","sourcesContent":["/**\n * External dependencies\n */\nimport { startCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { store as coreDataStore } from '@wordpress/core-data';\nimport { select } from '@wordpress/data';\nimport { symbolFilled } from '@wordpress/icons';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport { enhanceTemplatePartVariations } from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon: symbolFilled,\n\t__experimentalLabel: ( { slug, theme } ) => {\n\t\t// Attempt to find entity title if block is a template part.\n\t\t// Require slug to request, otherwise entity is uncreated and will throw 404.\n\t\tif ( ! slug ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst entity = select( coreDataStore ).getEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\ttheme + '//' + slug\n\t\t);\n\t\tif ( ! entity ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn startCase( entity.title?.rendered || entity.slug );\n\t},\n\tedit,\n};\n\n// Importing this file includes side effects. This is whitelisted in block-library/package.json under sideEffects\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/template-part',\n\tenhanceTemplatePartVariations\n);\n\n// Prevent adding template parts inside post templates.\nconst DISALLOWED_PARENTS = [ 'core/post-template', 'core/post-content' ];\naddFilter(\n\t'blockEditor.__unstableCanInsertBlockType',\n\t'removeTemplatePartsFromPostTemplates',\n\t(\n\t\tcan,\n\t\tblockType,\n\t\trootClientId,\n\t\t{ getBlock, getBlockParentsByBlockName }\n\t) => {\n\t\tif ( blockType.name !== 'core/template-part' ) {\n\t\t\treturn can;\n\t\t}\n\n\t\tfor ( const disallowedParentType of DISALLOWED_PARENTS ) {\n\t\t\tconst hasDisallowedParent =\n\t\t\t\tgetBlock( rootClientId )?.name === disallowedParentType ||\n\t\t\t\tgetBlockParentsByBlockName( rootClientId, disallowedParentType )\n\t\t\t\t\t.length;\n\t\t\tif ( hasDisallowedParent ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n);\n"]}
|
|
@@ -35,11 +35,6 @@ import useImageSizes from './use-image-sizes';
|
|
|
35
35
|
import useShortCodeTransform from './use-short-code-transform';
|
|
36
36
|
import useGetNewImages from './use-get-new-images';
|
|
37
37
|
import useGetMedia from './use-get-media';
|
|
38
|
-
/**
|
|
39
|
-
* Internal dependencies
|
|
40
|
-
*/
|
|
41
|
-
|
|
42
|
-
import useMobileWarning from './use-mobile-warning';
|
|
43
38
|
const MAX_COLUMNS = 8;
|
|
44
39
|
const linkOptions = [{
|
|
45
40
|
value: LINK_DESTINATION_ATTACHMENT,
|
|
@@ -113,7 +108,6 @@ function GalleryEdit(props) {
|
|
|
113
108
|
})), [innerBlockImages]);
|
|
114
109
|
const imageData = useGetMedia(innerBlockImages);
|
|
115
110
|
const newImages = useGetNewImages(images, imageData);
|
|
116
|
-
useMobileWarning(newImages);
|
|
117
111
|
useEffect(() => {
|
|
118
112
|
newImages === null || newImages === void 0 ? void 0 : newImages.forEach(newImage => {
|
|
119
113
|
updateBlockAttributes(newImage.clientId, { ...buildImageAttributes(newImage.attributes),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","concat","find","compose","BaseControl","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useShortCodeTransform","useGetNewImages","useGetMedia","useMobileWarning","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","noticeOperations","isSelected","noticeUI","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","shortCodeTransforms","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","createSuccessNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","shortCodeImages","updateImages","imageSizeOptions","imageAttributes","image","newClassName","isValidFileType","file","some","mediaType","indexOf","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","removeAllNotices","createErrorNotice","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","caption","alt","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","newLinkTarget","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","length","hasImageIds","imagesUploading","mediaPlaceholder","title","instructions","blockProps","hasLinkTo","Math","min","isWeb","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { concat, find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useShortCodeTransform from './use-short-code-transform';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\n\n/**\n * Internal dependencies\n */\nimport useMobileWarning from './use-mobile-warning';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tnoticeOperations,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\tcolumns,\n\t\timageCrop,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tshortCodeTransforms,\n\t\tsizeSlug,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseMobileWarning( newImages );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst shortCodeImages = useShortCodeTransform( shortCodeTransforms );\n\n\tuseEffect( () => {\n\t\tif ( ! shortCodeTransforms || ! shortCodeImages ) {\n\t\t\treturn;\n\t\t}\n\t\tupdateImages( shortCodeImages );\n\t\tsetAttributes( { shortCodeTransforms: undefined } );\n\t}, [ shortCodeTransforms, shortCodeImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? find( imageData, { id: imageAttributes.id } )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( imageAttributes, sizeSlug ),\n\t\t\t...getHrefAndDestination( image, linkTo ),\n\t\t\t...getUpdatedLinkTargetSettings( linkTarget, attributes ),\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => file.type?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tnoticeOperations.removeAllNotices();\n\t\t\tnoticeOperations.createErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\tconcat( existingImageBlocks, newBlocks ).sort(\n\t\t\t\t( a, b ) =>\n\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some(\n\t\t( img ) => ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t);\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\thandleUpload={ false }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading\n\t\t\t}\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Gallery settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\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={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/edit.js"],"names":["classnames","concat","find","compose","BaseControl","PanelBody","SelectControl","ToggleControl","withNotices","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useShortCodeTransform","useGetNewImages","useGetMedia","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","setAttributes","attributes","className","clientId","noticeOperations","isSelected","noticeUI","insertBlocksAfter","columns","imageCrop","linkTarget","linkTo","shortCodeTransforms","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","createSuccessNotice","getBlock","getSettings","preferredStyle","select","settings","preferredStyleVariations","__experimentalPreferredStyleVariations","innerBlockImages","innerBlocks","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","shortCodeImages","updateImages","imageSizeOptions","imageAttributes","image","newClassName","isValidFileType","file","some","mediaType","indexOf","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","every","removeAllNotices","createErrorNotice","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","caption","alt","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","toggleOpenInNewTab","openInNewTab","newLinkTarget","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","defaultProps","link","hasImages","length","hasImageIds","imagesUploading","mediaPlaceholder","title","instructions","blockProps","hasLinkTo","Math","min","isWeb","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { concat, find } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useShortCodeTransform from './use-short-code-transform';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'ADD MEDIA' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tnoticeOperations,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tinsertBlocksAfter,\n\t} = props;\n\n\tconst {\n\t\tcolumns,\n\t\timageCrop,\n\t\tlinkTarget,\n\t\tlinkTo,\n\t\tshortCodeTransforms,\n\t\tsizeSlug,\n\t} = attributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\n\tconst { getBlock, getSettings, preferredStyle } = useSelect( ( select ) => {\n\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\tconst preferredStyleVariations =\n\t\t\tsettings.__experimentalPreferredStyleVariations;\n\t\treturn {\n\t\t\tgetBlock: select( blockEditorStore ).getBlock,\n\t\t\tgetSettings: select( blockEditorStore ).getSettings,\n\t\t\tpreferredStyle: preferredStyleVariations?.value?.[ 'core/image' ],\n\t\t};\n\t}, [] );\n\n\tconst innerBlockImages = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlock( clientId )?.innerBlocks;\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst shortCodeImages = useShortCodeTransform( shortCodeTransforms );\n\n\tuseEffect( () => {\n\t\tif ( ! shortCodeTransforms || ! shortCodeImages ) {\n\t\t\treturn;\n\t\t}\n\t\tupdateImages( shortCodeImages );\n\t\tsetAttributes( { shortCodeTransforms: undefined } );\n\t}, [ shortCodeTransforms, shortCodeImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? find( imageData, { id: imageAttributes.id } )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( imageAttributes, sizeSlug ),\n\t\t\t...getHrefAndDestination( image, linkTo ),\n\t\t\t...getUpdatedLinkTargetSettings( linkTarget, attributes ),\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => file.type?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tnoticeOperations.removeAllNotices();\n\t\t\tnoticeOperations.createErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\tconcat( existingImageBlocks, newBlocks ).sort(\n\t\t\t\t( a, b ) =>\n\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t)\n\t\t);\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? find( imageData, { id: block.attributes.id } )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some(\n\t\t( img ) => ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t);\n\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\thandleUpload={ false }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading\n\t\t\t}\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Gallery settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\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={ __( 'Crop images' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\n\t\t\t\t\t/>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image size' ) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Image size' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
@@ -21,6 +21,7 @@ import { __ } from '@wordpress/i18n';
|
|
|
21
21
|
|
|
22
22
|
import useListViewModal from './use-list-view-modal';
|
|
23
23
|
import useNavigationMenu from '../use-navigation-menu';
|
|
24
|
+
import useNavigationEntities from '../use-navigation-entities';
|
|
24
25
|
import Placeholder from './placeholder';
|
|
25
26
|
import PlaceholderPreview from './placeholder/placeholder-preview';
|
|
26
27
|
import ResponsiveWrapper from './responsive-wrapper';
|
|
@@ -109,7 +110,10 @@ function Navigation(_ref) {
|
|
|
109
110
|
setAreaMenu(postId);
|
|
110
111
|
}
|
|
111
112
|
}, [navigationArea]);
|
|
112
|
-
const [hasAlreadyRendered, RecursionProvider] = useNoRecursiveRenders(`navigationMenu/${ref}`);
|
|
113
|
+
const [hasAlreadyRendered, RecursionProvider] = useNoRecursiveRenders(`navigationMenu/${ref}`); // Preload classic menus, so that they don't suddenly pop-in when viewing
|
|
114
|
+
// the Select Menu dropdown.
|
|
115
|
+
|
|
116
|
+
useNavigationEntities();
|
|
113
117
|
const {
|
|
114
118
|
hasUncontrolledInnerBlocks,
|
|
115
119
|
uncontrolledInnerBlocks,
|
|
@@ -333,6 +337,7 @@ function Navigation(_ref) {
|
|
|
333
337
|
onClose
|
|
334
338
|
} = _ref2;
|
|
335
339
|
return createElement(NavigationMenuSelector, {
|
|
340
|
+
clientId: clientId,
|
|
336
341
|
onSelect: _ref3 => {
|
|
337
342
|
let {
|
|
338
343
|
id
|
|
@@ -341,7 +346,7 @@ function Navigation(_ref) {
|
|
|
341
346
|
onClose();
|
|
342
347
|
},
|
|
343
348
|
onCreateNew: startWithEmptyMenu,
|
|
344
|
-
|
|
349
|
+
canUserCreateNavigation: canUserCreateNavigation
|
|
345
350
|
});
|
|
346
351
|
})), createElement(ToolbarGroup, null, listViewToolbarButton)), listViewModal, createElement(InspectorControls, null, hasSubmenuIndicatorSetting && createElement(PanelBody, {
|
|
347
352
|
title: __('Display')
|