@wordpress/block-library 9.31.1-next.233ccab9b.0 → 9.32.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/accordion/edit.js +62 -12
- package/build/accordion/edit.js.map +1 -1
- package/build/accordion/index.js +15 -7
- package/build/accordion/index.js.map +1 -1
- package/build/accordion/view.js +15 -15
- package/build/accordion/view.js.map +1 -1
- package/build/accordion-heading/edit.js +68 -0
- package/build/accordion-heading/edit.js.map +1 -0
- package/build/accordion-heading/icon.js.map +1 -0
- package/build/{accordion-header → accordion-heading}/index.js +9 -12
- package/build/accordion-heading/index.js.map +1 -0
- package/build/{accordion-content → accordion-heading}/init.js.map +1 -1
- package/build/{accordion-header → accordion-heading}/save.js +6 -8
- package/build/accordion-heading/save.js.map +1 -0
- package/build/{accordion-content → accordion-item}/edit.js +8 -2
- package/build/accordion-item/edit.js.map +1 -0
- package/build/accordion-item/icon.js.map +1 -0
- package/build/{accordion-content → accordion-item}/index.js +5 -5
- package/build/accordion-item/index.js.map +1 -0
- package/build/accordion-item/init.js.map +1 -0
- package/build/accordion-item/save.js.map +1 -0
- package/build/accordion-panel/index.js +3 -2
- package/build/accordion-panel/index.js.map +1 -1
- package/build/block/index.js +1 -0
- package/build/block/index.js.map +1 -1
- package/build/index.js +24 -4
- package/build/index.js.map +1 -1
- package/build/navigation-link/edit.js +3 -140
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/shared/controls.js +171 -0
- package/build/navigation-link/shared/controls.js.map +1 -0
- package/build/navigation-link/shared/index.js +13 -0
- package/build/navigation-link/shared/index.js.map +1 -0
- package/build/navigation-submenu/edit.js +5 -110
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/pattern/index.js +1 -0
- package/build/pattern/index.js.map +1 -1
- package/build/post-time-to-read/edit.js +16 -61
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-time-to-read/index.js +5 -7
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/post-time-to-read/variations.js +41 -0
- package/build/post-time-to-read/variations.js.map +1 -0
- package/build/query-title/edit.js +1 -1
- package/build/query-title/edit.js.map +1 -1
- package/build/template-part/index.js +1 -0
- package/build/template-part/index.js.map +1 -1
- package/build/utils/get-transformed-metadata.js +7 -0
- package/build/utils/get-transformed-metadata.js.map +1 -1
- package/build-module/accordion/edit.js +66 -16
- package/build-module/accordion/edit.js.map +1 -1
- package/build-module/accordion/index.js +15 -7
- package/build-module/accordion/index.js.map +1 -1
- package/build-module/accordion/view.js +15 -15
- package/build-module/accordion/view.js.map +1 -1
- package/build-module/accordion-heading/edit.js +61 -0
- package/build-module/accordion-heading/edit.js.map +1 -0
- package/build-module/accordion-heading/icon.js.map +1 -0
- package/build-module/{accordion-header → accordion-heading}/index.js +9 -12
- package/build-module/accordion-heading/index.js.map +1 -0
- package/build-module/{accordion-content → accordion-heading}/init.js.map +1 -1
- package/build-module/{accordion-header → accordion-heading}/save.js +6 -8
- package/build-module/accordion-heading/save.js.map +1 -0
- package/build-module/{accordion-content → accordion-item}/edit.js +8 -2
- package/build-module/accordion-item/edit.js.map +1 -0
- package/build-module/accordion-item/icon.js.map +1 -0
- package/build-module/{accordion-content → accordion-item}/index.js +5 -5
- package/build-module/accordion-item/index.js.map +1 -0
- package/build-module/accordion-item/init.js.map +1 -0
- package/build-module/accordion-item/save.js.map +1 -0
- package/build-module/accordion-panel/index.js +3 -2
- package/build-module/accordion-panel/index.js.map +1 -1
- package/build-module/block/index.js +1 -0
- package/build-module/block/index.js.map +1 -1
- package/build-module/index.js +25 -5
- package/build-module/index.js.map +1 -1
- package/build-module/navigation-link/edit.js +4 -141
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/shared/controls.js +165 -0
- package/build-module/navigation-link/shared/controls.js.map +1 -0
- package/build-module/navigation-link/shared/index.js +9 -0
- package/build-module/navigation-link/shared/index.js.map +1 -0
- package/build-module/navigation-submenu/edit.js +6 -111
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/pattern/index.js +1 -0
- package/build-module/pattern/index.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +17 -62
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/post-time-to-read/index.js +5 -7
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/post-time-to-read/variations.js +33 -0
- package/build-module/post-time-to-read/variations.js.map +1 -0
- package/build-module/query-title/edit.js +1 -1
- package/build-module/query-title/edit.js.map +1 -1
- package/build-module/template-part/index.js +1 -0
- package/build-module/template-part/index.js.map +1 -1
- package/build-module/utils/get-transformed-metadata.js +7 -0
- package/build-module/utils/get-transformed-metadata.js.map +1 -1
- package/build-style/{accordion-header → accordion-heading}/style-rtl.css +8 -7
- package/build-style/{accordion-header → accordion-heading}/style.css +8 -7
- package/build-style/{accordion-content → accordion-item}/style-rtl.css +5 -5
- package/build-style/{accordion-content → accordion-item}/style.css +5 -5
- package/build-style/style-rtl.css +13 -12
- package/build-style/style.css +13 -12
- package/package.json +35 -35
- package/src/accordion/block.json +11 -3
- package/src/accordion/edit.js +70 -13
- package/src/accordion/index.js +4 -4
- package/src/accordion/index.php +1 -1
- package/src/accordion/view.js +15 -15
- package/src/{accordion-header → accordion-heading}/block.json +10 -12
- package/src/accordion-heading/edit.js +70 -0
- package/src/{accordion-header → accordion-heading}/save.js +6 -8
- package/src/{accordion-header → accordion-heading}/style.scss +11 -7
- package/src/{accordion-content → accordion-item}/block.json +5 -5
- package/src/{accordion-content → accordion-item}/edit.js +12 -2
- package/src/{accordion-content → accordion-item}/index.php +11 -11
- package/src/{accordion-content → accordion-item}/style.scss +3 -3
- package/src/accordion-panel/block.json +3 -2
- package/src/block/block.json +1 -0
- package/src/index.js +23 -4
- package/src/navigation-link/edit.js +3 -142
- package/src/navigation-link/shared/README.md +47 -0
- package/src/navigation-link/shared/controls.js +167 -0
- package/src/navigation-link/shared/index.js +8 -0
- package/src/navigation-link/shared/test/controls.js +210 -0
- package/src/navigation-submenu/edit.js +7 -125
- package/src/pattern/block.json +1 -0
- package/src/post-time-to-read/block.json +3 -7
- package/src/post-time-to-read/edit.js +36 -94
- package/src/post-time-to-read/index.js +2 -0
- package/src/post-time-to-read/index.php +12 -7
- package/src/post-time-to-read/variations.js +39 -0
- package/src/query-title/edit.js +2 -1
- package/src/query-title/index.php +3 -1
- package/src/style.scss +2 -2
- package/src/template-part/block.json +1 -0
- package/src/utils/get-transformed-metadata.js +8 -0
- package/build/accordion-content/edit.js.map +0 -1
- package/build/accordion-content/icon.js.map +0 -1
- package/build/accordion-content/index.js.map +0 -1
- package/build/accordion-content/save.js.map +0 -1
- package/build/accordion-header/edit.js +0 -84
- package/build/accordion-header/edit.js.map +0 -1
- package/build/accordion-header/icon.js.map +0 -1
- package/build/accordion-header/index.js.map +0 -1
- package/build/accordion-header/init.js.map +0 -1
- package/build/accordion-header/save.js.map +0 -1
- package/build-module/accordion-content/edit.js.map +0 -1
- package/build-module/accordion-content/icon.js.map +0 -1
- package/build-module/accordion-content/index.js.map +0 -1
- package/build-module/accordion-content/save.js.map +0 -1
- package/build-module/accordion-header/edit.js +0 -77
- package/build-module/accordion-header/edit.js.map +0 -1
- package/build-module/accordion-header/icon.js.map +0 -1
- package/build-module/accordion-header/index.js.map +0 -1
- package/build-module/accordion-header/init.js.map +0 -1
- package/build-module/accordion-header/save.js.map +0 -1
- package/src/accordion-header/edit.js +0 -87
- /package/build/{accordion-header → accordion-heading}/icon.js +0 -0
- /package/build/{accordion-content → accordion-heading}/init.js +0 -0
- /package/build/{accordion-content → accordion-item}/icon.js +0 -0
- /package/build/{accordion-header → accordion-item}/init.js +0 -0
- /package/build/{accordion-content → accordion-item}/save.js +0 -0
- /package/build-module/{accordion-header → accordion-heading}/icon.js +0 -0
- /package/build-module/{accordion-content → accordion-heading}/init.js +0 -0
- /package/build-module/{accordion-content → accordion-item}/icon.js +0 -0
- /package/build-module/{accordion-header → accordion-item}/init.js +0 -0
- /package/build-module/{accordion-content → accordion-item}/save.js +0 -0
- /package/src/{accordion-header → accordion-heading}/icon.js +0 -0
- /package/src/{accordion-content → accordion-heading}/index.js +0 -0
- /package/src/{accordion-content → accordion-heading}/init.js +0 -0
- /package/src/{accordion-content → accordion-item}/icon.js +0 -0
- /package/src/{accordion-header → accordion-item}/index.js +0 -0
- /package/src/{accordion-header → accordion-item}/init.js +0 -0
- /package/src/{accordion-content → accordion-item}/save.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_components","_keycodes","_i18n","_blockEditor","_url","_element","_icons","_a11y","_blocks","_compose","_icons2","_linkUi","_updateAttributes","_utils","_hooks","_constants","_jsxRuntime","ALLOWED_BLOCKS","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","useState","useEffect","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","NavigationSubmenuEdit","attributes","isSelected","setAttributes","mergeBlocks","onReplace","context","clientId","label","url","description","rel","opensInNewTab","showSubmenuIcon","maxNestingLevel","openSubmenusOnClick","__unstableMarkNextChangeAsNotPersistent","replaceBlock","selectBlock","useDispatch","blockEditorStore","isLinkOpen","setIsLinkOpen","openedBy","setOpenedBy","popoverAnchor","setPopoverAnchor","listItemRef","useRef","itemLabelPlaceholder","__","ref","dropdownMenuProps","useToolsPanelDropdownMenuProps","parentCount","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasChildren","selectedBlockHasChildren","onlyDescendantIsEmptyLink","useSelect","select","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","getBlock","getBlockCount","getBlockOrder","_onlyDescendantIsEmptyLink","selectedBlockId","selectedBlockChildren","length","singleBlock","name","prevHasChildren","usePrevious","isURL","prependHTTP","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","textColor","customTextColor","backgroundColor","customBackgroundColor","getColors","onKeyDown","isKeyboardEvent","primary","preventDefault","stopPropagation","blockProps","useBlockProps","useMergeRefs","className","clsx","getColorClassName","style","color","innerBlocksColors","allowedBlocks","filter","blockName","navigationChildBlockProps","getNavigationChildBlockProps","innerBlocksProps","useInnerBlocksProps","defaultBlock","DEFAULT_BLOCK","directInsert","__experimentalCaptureToolbars","renderAppender","InnerBlocks","ButtonBlockAppender","ParentElement","transformToLink","newLinkBlock","createBlock","canConvertToLink","jsxs","Fragment","children","jsx","BlockControls","ToolbarGroup","ToolbarButton","icon","linkIcon","title","shortcut","displayShortcut","onClick","currentTarget","removeSubmenu","disabled","InspectorControls","__experimentalToolsPanel","resetAll","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","TextControl","__nextHasNoMarginBottom","__next40pxDefaultSize","value","onChange","labelValue","autoComplete","urlValue","type","CheckboxControl","checked","TextareaControl","descriptionValue","help","relValue","RichText","identifier","onMerge","placeholder","withoutInteractiveFormatting","LinkUI","link","onClose","anchor","onRemove","speak","updatedValue","updateAttributes","ItemSubmenuIcon"],"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tCheckboxControl,\n\tTextControl,\n\tTextareaControl,\n\tToolbarButton,\n\tToolbarGroup,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { LinkUI } from '../navigation-link/link-ui';\nimport { updateAttributes } from '../navigation-link/update-attributes';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\nimport { DEFAULT_BLOCK } from '../navigation/constants';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n\t'core/page-list',\n];\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n */\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, url, description, rel, opensInNewTab } = attributes;\n\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlock,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)\n\tconst [ openedBy, setOpenedBy ] = useState( null );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst {\n\t\tparentCount,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tparentCount: getBlockParentsByBlockName(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'core/navigation-submenu'\n\t\t\t\t).length,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst prevHasChildren = usePrevious( hasChildren );\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, parentCount > 0 );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\t// Required to prevent the command center from opening,\n\t\t\t// as it shares the CMD+K shortcut.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/59845.\n\t\t\tevent.preventDefault();\n\t\t\t// If we don't stop propagation, this event bubbles up to the parent submenu item\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsLinkOpen( true );\n\t\t\tsetOpenedBy( ref.current );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks =\n\t\tparentCount >= maxNestingLevel\n\t\t\t? ALLOWED_BLOCKS.filter(\n\t\t\t\t\t( blockName ) => blockName !== 'core/navigation-submenu'\n\t\t\t )\n\t\t\t: ALLOWED_BLOCKS;\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {\n\t\tallowedBlocks,\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\n\t\t// Ensure block toolbar is not too far removed from item\n\t\t// being edited.\n\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t__experimentalCaptureToolbars: true,\n\n\t\trenderAppender:\n\t\t\tisSelected ||\n\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\thasChildren\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: false,\n\t} );\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tuseEffect( () => {\n\t\t// If block becomes empty, transform to Navigation Link.\n\t\tif ( ! hasChildren && prevHasChildren ) {\n\t\t\t// This side-effect should not create an undo level as those should\n\t\t\t// only be created via user interactions.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\ttransformToLink();\n\t\t}\n\t}, [ hasChildren, prevHasChildren ] );\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( event.currentTarget );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tdisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ /* Warning, this duplicated in packages/block-library/src/navigation-link/edit.js */ }\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tlabel: '',\n\t\t\t\t\t\t\turl: '',\n\t\t\t\t\t\t\tdescription: '',\n\t\t\t\t\t\t\trel: '',\n\t\t\t\t\t\t\topensInNewTab: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! label }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { label: '' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalue={ label || '' }\n\t\t\t\t\t\t\tonChange={ ( labelValue ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { label: labelValue } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Text' ) }\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! url }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { url: '' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\t\tonChange={ ( urlValue ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: urlValue } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Link' ) }\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\ttype=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\thasValue={ () => !! opensInNewTab }\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { opensInNewTab: false } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\t\tchecked={ opensInNewTab }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetAttributes( { opensInNewTab: value } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! description }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetAttributes( { description: '' } )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tvalue={ description || '' }\n\t\t\t\t\t\t\tonChange={ ( descriptionValue ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdescription: descriptionValue,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Description' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The description will be displayed in the menu if the current theme supports it.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Rel attribute' ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\thasValue={ () => !! rel }\n\t\t\t\t\t\tonDeselect={ () => setAttributes( { rel: '' } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvalue={ rel || '' }\n\t\t\t\t\t\t\tonChange={ ( relValue ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { rel: relValue } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tlabel={ __( 'Rel attribute' ) }\n\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'The relationship of the linked URL as space-separated link types.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( ref.current );\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{ description && (\n\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( false );\n\t\t\t\t\t\t\t\tif ( openedBy ) {\n\t\t\t\t\t\t\t\t\topenedBy.focus();\n\t\t\t\t\t\t\t\t\tsetOpenedBy( null );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\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</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_components","_keycodes","_i18n","_blockEditor","_url","_element","_icons","_a11y","_blocks","_compose","_icons2","_linkUi","_updateAttributes","_shared","_utils","_constants","_jsxRuntime","ALLOWED_BLOCKS","useIsDraggingWithin","elementRef","isDraggingWithin","setIsDraggingWithin","useState","useEffect","ownerDocument","current","handleDragStart","event","handleDragEnter","handleDragEnd","contains","target","addEventListener","removeEventListener","NavigationSubmenuEdit","attributes","isSelected","setAttributes","mergeBlocks","onReplace","context","clientId","label","url","description","showSubmenuIcon","maxNestingLevel","openSubmenusOnClick","__unstableMarkNextChangeAsNotPersistent","replaceBlock","selectBlock","useDispatch","blockEditorStore","isLinkOpen","setIsLinkOpen","openedBy","setOpenedBy","popoverAnchor","setPopoverAnchor","listItemRef","useRef","itemLabelPlaceholder","__","ref","parentCount","isParentOfSelectedBlock","isImmediateParentOfSelectedBlock","hasChildren","selectedBlockHasChildren","onlyDescendantIsEmptyLink","useSelect","select","hasSelectedInnerBlock","getSelectedBlockClientId","getBlockParentsByBlockName","getBlock","getBlockCount","getBlockOrder","_onlyDescendantIsEmptyLink","selectedBlockId","selectedBlockChildren","length","singleBlock","name","prevHasChildren","usePrevious","isURL","prependHTTP","test","selectLabelText","focus","defaultView","selection","getSelection","range","createRange","selectNodeContents","removeAllRanges","addRange","textColor","customTextColor","backgroundColor","customBackgroundColor","getColors","onKeyDown","isKeyboardEvent","primary","preventDefault","stopPropagation","blockProps","useBlockProps","useMergeRefs","className","clsx","getColorClassName","style","color","innerBlocksColors","allowedBlocks","filter","blockName","navigationChildBlockProps","getNavigationChildBlockProps","innerBlocksProps","useInnerBlocksProps","defaultBlock","DEFAULT_BLOCK","directInsert","__experimentalCaptureToolbars","renderAppender","InnerBlocks","ButtonBlockAppender","ParentElement","transformToLink","newLinkBlock","createBlock","canConvertToLink","jsxs","Fragment","children","jsx","BlockControls","ToolbarGroup","ToolbarButton","icon","linkIcon","title","shortcut","displayShortcut","onClick","currentTarget","removeSubmenu","disabled","InspectorControls","Controls","RichText","identifier","value","onChange","labelValue","onMerge","placeholder","withoutInteractiveFormatting","LinkUI","link","onClose","anchor","onRemove","speak","updatedValue","updateAttributes","ItemSubmenuIcon"],"sources":["@wordpress/block-library/src/navigation-submenu/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { displayShortcut, isKeyboardEvent } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockControls,\n\tInnerBlocks,\n\tuseInnerBlocksProps,\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n\tgetColorClassName,\n} from '@wordpress/block-editor';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport { useState, useEffect, useRef } from '@wordpress/element';\nimport { link as linkIcon, removeSubmenu } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { createBlock } from '@wordpress/blocks';\nimport { useMergeRefs, usePrevious } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { ItemSubmenuIcon } from './icons';\nimport { LinkUI } from '../navigation-link/link-ui';\nimport { updateAttributes } from '../navigation-link/update-attributes';\nimport { Controls } from '../navigation-link/shared';\nimport {\n\tgetColors,\n\tgetNavigationChildBlockProps,\n} from '../navigation/edit/utils';\nimport { DEFAULT_BLOCK } from '../navigation/constants';\n\nconst ALLOWED_BLOCKS = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n\t'core/page-list',\n];\n\n/**\n * A React hook to determine if it's dragging within the target element.\n *\n * @typedef {import('@wordpress/element').RefObject} RefObject\n *\n * @param {RefObject<HTMLElement>} elementRef The target elementRef object.\n *\n * @return {boolean} Is dragging within the target element.\n */\nconst useIsDraggingWithin = ( elementRef ) => {\n\tconst [ isDraggingWithin, setIsDraggingWithin ] = useState( false );\n\n\tuseEffect( () => {\n\t\tconst { ownerDocument } = elementRef.current;\n\n\t\tfunction handleDragStart( event ) {\n\t\t\t// Check the first time when the dragging starts.\n\t\t\thandleDragEnter( event );\n\t\t}\n\n\t\t// Set to false whenever the user cancel the drag event by either releasing the mouse or press Escape.\n\t\tfunction handleDragEnd() {\n\t\t\tsetIsDraggingWithin( false );\n\t\t}\n\n\t\tfunction handleDragEnter( event ) {\n\t\t\t// Check if the current target is inside the item element.\n\t\t\tif ( elementRef.current.contains( event.target ) ) {\n\t\t\t\tsetIsDraggingWithin( true );\n\t\t\t} else {\n\t\t\t\tsetIsDraggingWithin( false );\n\t\t\t}\n\t\t}\n\n\t\t// Bind these events to the document to catch all drag events.\n\t\t// Ideally, we can also use `event.relatedTarget`, but sadly that\n\t\t// doesn't work in Safari.\n\t\townerDocument.addEventListener( 'dragstart', handleDragStart );\n\t\townerDocument.addEventListener( 'dragend', handleDragEnd );\n\t\townerDocument.addEventListener( 'dragenter', handleDragEnter );\n\n\t\treturn () => {\n\t\t\townerDocument.removeEventListener( 'dragstart', handleDragStart );\n\t\t\townerDocument.removeEventListener( 'dragend', handleDragEnd );\n\t\t\townerDocument.removeEventListener( 'dragenter', handleDragEnter );\n\t\t};\n\t}, [] );\n\n\treturn isDraggingWithin;\n};\n\n/**\n * @typedef {'post-type'|'custom'|'taxonomy'|'post-type-archive'} WPNavigationLinkKind\n */\n\n/**\n * Navigation Link Block Attributes\n *\n * @typedef {Object} WPNavigationLinkBlockAttributes\n *\n * @property {string} [label] Link text.\n * @property {WPNavigationLinkKind} [kind] Kind is used to differentiate between term and post ids to check post draft status.\n * @property {string} [type] The type such as post, page, tag, category and other custom types.\n * @property {string} [rel] The relationship of the linked URL.\n * @property {number} [id] A post or term id.\n * @property {boolean} [opensInNewTab] Sets link target to _blank when true.\n * @property {string} [url] Link href.\n */\n\nexport default function NavigationSubmenuEdit( {\n\tattributes,\n\tisSelected,\n\tsetAttributes,\n\tmergeBlocks,\n\tonReplace,\n\tcontext,\n\tclientId,\n} ) {\n\tconst { label, url, description } = attributes;\n\n\tconst { showSubmenuIcon, maxNestingLevel, openSubmenusOnClick } = context;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlock,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst [ isLinkOpen, setIsLinkOpen ] = useState( false );\n\t// Store what element opened the popover, so we know where to return focus to (toolbar button vs navigation link text)\n\tconst [ openedBy, setOpenedBy ] = useState( null );\n\t// Use internal state instead of a ref to make sure that the component\n\t// re-renders when the popover's anchor updates.\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\tconst listItemRef = useRef( null );\n\tconst isDraggingWithin = useIsDraggingWithin( listItemRef );\n\tconst itemLabelPlaceholder = __( 'Add text…' );\n\tconst ref = useRef();\n\n\tconst {\n\t\tparentCount,\n\t\tisParentOfSelectedBlock,\n\t\tisImmediateParentOfSelectedBlock,\n\t\thasChildren,\n\t\tselectedBlockHasChildren,\n\t\tonlyDescendantIsEmptyLink,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetBlockParentsByBlockName,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockOrder,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet _onlyDescendantIsEmptyLink;\n\n\t\t\tconst selectedBlockId = getSelectedBlockClientId();\n\n\t\t\tconst selectedBlockChildren = getBlockOrder( selectedBlockId );\n\n\t\t\t// Check for a single descendant in the submenu. If that block\n\t\t\t// is a link block in a \"placeholder\" state with no label then\n\t\t\t// we can consider as an \"empty\" link.\n\t\t\tif ( selectedBlockChildren?.length === 1 ) {\n\t\t\t\tconst singleBlock = getBlock( selectedBlockChildren[ 0 ] );\n\n\t\t\t\t_onlyDescendantIsEmptyLink =\n\t\t\t\t\tsingleBlock?.name === 'core/navigation-link' &&\n\t\t\t\t\t! singleBlock?.attributes?.label;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tparentCount: getBlockParentsByBlockName(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'core/navigation-submenu'\n\t\t\t\t).length,\n\t\t\t\tisParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t\t\tisImmediateParentOfSelectedBlock: hasSelectedInnerBlock(\n\t\t\t\t\tclientId,\n\t\t\t\t\tfalse\n\t\t\t\t),\n\t\t\t\thasChildren: !! getBlockCount( clientId ),\n\t\t\t\tselectedBlockHasChildren: !! selectedBlockChildren?.length,\n\t\t\t\tonlyDescendantIsEmptyLink: _onlyDescendantIsEmptyLink,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst prevHasChildren = usePrevious( hasChildren );\n\n\t// Show the LinkControl on mount if the URL is empty\n\t// ( When adding a new menu item)\n\t// This can't be done in the useState call because it conflicts\n\t// with the autofocus behavior of the BlockListBlock component.\n\tuseEffect( () => {\n\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\tsetIsLinkOpen( true );\n\t\t}\n\t}, [] );\n\n\t/**\n\t * The hook shouldn't be necessary but due to a focus loss happening\n\t * when selecting a suggestion in the link popover, we force close on block unselection.\n\t */\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tsetIsLinkOpen( false );\n\t\t}\n\t}, [ isSelected ] );\n\n\t// If the LinkControl popover is open and the URL has changed, close the LinkControl and focus the label text.\n\tuseEffect( () => {\n\t\tif ( isLinkOpen && url ) {\n\t\t\t// Does this look like a URL and have something TLD-ish?\n\t\t\tif (\n\t\t\t\tisURL( prependHTTP( label ) ) &&\n\t\t\t\t/^.+\\.[a-z]+/.test( label )\n\t\t\t) {\n\t\t\t\t// Focus and select the label text.\n\t\t\t\tselectLabelText();\n\t\t\t}\n\t\t}\n\t}, [ url ] );\n\n\t/**\n\t * Focus the Link label text and select it.\n\t */\n\tfunction selectLabelText() {\n\t\tref.current.focus();\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { defaultView } = ownerDocument;\n\t\tconst selection = defaultView.getSelection();\n\t\tconst range = ownerDocument.createRange();\n\t\t// Get the range of the current ref contents so we can add this range to the selection.\n\t\trange.selectNodeContents( ref.current );\n\t\tselection.removeAllRanges();\n\t\tselection.addRange( range );\n\t}\n\n\tconst {\n\t\ttextColor,\n\t\tcustomTextColor,\n\t\tbackgroundColor,\n\t\tcustomBackgroundColor,\n\t} = getColors( context, parentCount > 0 );\n\n\tfunction onKeyDown( event ) {\n\t\tif ( isKeyboardEvent.primary( event, 'k' ) ) {\n\t\t\t// Required to prevent the command center from opening,\n\t\t\t// as it shares the CMD+K shortcut.\n\t\t\t// See https://github.com/WordPress/gutenberg/pull/59845.\n\t\t\tevent.preventDefault();\n\t\t\t// If we don't stop propagation, this event bubbles up to the parent submenu item\n\t\t\tevent.stopPropagation();\n\t\t\tsetIsLinkOpen( true );\n\t\t\tsetOpenedBy( ref.current );\n\t\t}\n\t}\n\n\tconst blockProps = useBlockProps( {\n\t\tref: useMergeRefs( [ setPopoverAnchor, listItemRef ] ),\n\t\tclassName: clsx( 'wp-block-navigation-item', {\n\t\t\t'is-editing': isSelected || isParentOfSelectedBlock,\n\t\t\t'is-dragging-within': isDraggingWithin,\n\t\t\t'has-link': !! url,\n\t\t\t'has-child': hasChildren,\n\t\t\t'has-text-color': !! textColor || !! customTextColor,\n\t\t\t[ getColorClassName( 'color', textColor ) ]: !! textColor,\n\t\t\t'has-background': !! backgroundColor || customBackgroundColor,\n\t\t\t[ getColorClassName( 'background-color', backgroundColor ) ]:\n\t\t\t\t!! backgroundColor,\n\t\t\t'open-on-click': openSubmenusOnClick,\n\t\t} ),\n\t\tstyle: {\n\t\t\tcolor: ! textColor && customTextColor,\n\t\t\tbackgroundColor: ! backgroundColor && customBackgroundColor,\n\t\t},\n\t\tonKeyDown,\n\t} );\n\n\t// Always use overlay colors for submenus.\n\tconst innerBlocksColors = getColors( context, true );\n\n\tconst allowedBlocks =\n\t\tparentCount >= maxNestingLevel\n\t\t\t? ALLOWED_BLOCKS.filter(\n\t\t\t\t\t( blockName ) => blockName !== 'core/navigation-submenu'\n\t\t\t )\n\t\t\t: ALLOWED_BLOCKS;\n\n\tconst navigationChildBlockProps =\n\t\tgetNavigationChildBlockProps( innerBlocksColors );\n\tconst innerBlocksProps = useInnerBlocksProps( navigationChildBlockProps, {\n\t\tallowedBlocks,\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\n\t\t// Ensure block toolbar is not too far removed from item\n\t\t// being edited.\n\t\t// see: https://github.com/WordPress/gutenberg/pull/34615.\n\t\t__experimentalCaptureToolbars: true,\n\n\t\trenderAppender:\n\t\t\tisSelected ||\n\t\t\t( isImmediateParentOfSelectedBlock &&\n\t\t\t\t! selectedBlockHasChildren ) ||\n\t\t\t// Show the appender while dragging to allow inserting element between item and the appender.\n\t\t\thasChildren\n\t\t\t\t? InnerBlocks.ButtonBlockAppender\n\t\t\t\t: false,\n\t} );\n\n\tconst ParentElement = openSubmenusOnClick ? 'button' : 'a';\n\n\tfunction transformToLink() {\n\t\tconst newLinkBlock = createBlock( 'core/navigation-link', attributes );\n\t\treplaceBlock( clientId, newLinkBlock );\n\t}\n\n\tuseEffect( () => {\n\t\t// If block becomes empty, transform to Navigation Link.\n\t\tif ( ! hasChildren && prevHasChildren ) {\n\t\t\t// This side-effect should not create an undo level as those should\n\t\t\t// only be created via user interactions.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\ttransformToLink();\n\t\t}\n\t}, [ hasChildren, prevHasChildren ] );\n\n\tconst canConvertToLink =\n\t\t! selectedBlockHasChildren || onlyDescendantIsEmptyLink;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t{ ! openSubmenusOnClick && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\tname=\"link\"\n\t\t\t\t\t\t\ticon={ linkIcon }\n\t\t\t\t\t\t\ttitle={ __( 'Link' ) }\n\t\t\t\t\t\t\tshortcut={ displayShortcut.primary( 'k' ) }\n\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( event.currentTarget );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\tname=\"revert\"\n\t\t\t\t\t\ticon={ removeSubmenu }\n\t\t\t\t\t\ttitle={ __( 'Convert to Link' ) }\n\t\t\t\t\t\tonClick={ transformToLink }\n\t\t\t\t\t\tclassName=\"wp-block-navigation__submenu__revert\"\n\t\t\t\t\t\tdisabled={ ! canConvertToLink }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<Controls\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>\n\t\t\t\t{ /* eslint-disable jsx-a11y/anchor-is-valid */ }\n\t\t\t\t<ParentElement className=\"wp-block-navigation-item__content\">\n\t\t\t\t\t{ /* eslint-enable */ }\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\tidentifier=\"label\"\n\t\t\t\t\t\tclassName=\"wp-block-navigation-item__label\"\n\t\t\t\t\t\tvalue={ label }\n\t\t\t\t\t\tonChange={ ( labelValue ) =>\n\t\t\t\t\t\t\tsetAttributes( { label: labelValue } )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\taria-label={ __( 'Navigation link text' ) }\n\t\t\t\t\t\tplaceholder={ itemLabelPlaceholder }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tif ( ! openSubmenusOnClick && ! url ) {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( true );\n\t\t\t\t\t\t\t\tsetOpenedBy( ref.current );\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{ description && (\n\t\t\t\t\t\t<span className=\"wp-block-navigation-item__description\">\n\t\t\t\t\t\t\t{ description }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! openSubmenusOnClick && isLinkOpen && (\n\t\t\t\t\t\t<LinkUI\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tlink={ attributes }\n\t\t\t\t\t\t\tonClose={ () => {\n\t\t\t\t\t\t\t\tsetIsLinkOpen( false );\n\t\t\t\t\t\t\t\tif ( openedBy ) {\n\t\t\t\t\t\t\t\t\topenedBy.focus();\n\t\t\t\t\t\t\t\t\tsetOpenedBy( null );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tanchor={ popoverAnchor }\n\t\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( { url: '' } );\n\t\t\t\t\t\t\t\tspeak( __( 'Link removed.' ), 'assertive' );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\t\t\t\tsetAttributes,\n\t\t\t\t\t\t\t\t\tattributes\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</ParentElement>\n\t\t\t\t{ ( showSubmenuIcon || openSubmenusOnClick ) && (\n\t\t\t\t\t<span className=\"wp-block-navigation__submenu-icon\">\n\t\t\t\t\t\t<ItemSubmenuIcon />\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t<div { ...innerBlocksProps } />\n\t\t\t</div>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
package/build/pattern/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","metadata","exports","$schema","apiVersion","name","title","category","description","supports","html","inserter","renaming","interactivity","clientNavigation","textdomain","attributes","slug","type","settings","edit","PatternEdit","init","initBlock"],"sources":["@wordpress/block-library/src/pattern/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport PatternEdit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit: PatternEdit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AALA;AACA;AACA;AAFA,MAAAE,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAC,IAAA;IAAA;EAAA;AAAA;AAOA,MAAM;
|
|
1
|
+
{"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","metadata","exports","$schema","apiVersion","name","title","category","description","supports","html","inserter","renaming","blockVisibility","interactivity","clientNavigation","textdomain","attributes","slug","type","settings","edit","PatternEdit","init","initBlock"],"sources":["@wordpress/block-library/src/pattern/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport PatternEdit from './edit';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\tedit: PatternEdit,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AALA;AACA;AACA;AAFA,MAAAE,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,eAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAC,IAAA;IAAA;EAAA;AAAA;AAOA,MAAM;EAAEd;AAAK,CAAC,GAAGJ,QAAQ;AAACC,OAAA,CAAAG,IAAA,GAAAA,IAAA;AAGnB,MAAMe,QAAQ,GAAAlB,OAAA,CAAAkB,QAAA,GAAG;EACvBC,IAAI,EAAEC;AACP,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAEnB,IAAI;EAAEJ,QAAQ;EAAEmB;AAAS,CAAE,CAAC;AAAClB,OAAA,CAAAqB,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
@@ -35,8 +35,7 @@ function PostTimeToReadEdit({
|
|
|
35
35
|
const {
|
|
36
36
|
textAlign,
|
|
37
37
|
displayAsRange,
|
|
38
|
-
|
|
39
|
-
showWordCount,
|
|
38
|
+
displayMode,
|
|
40
39
|
averageReadingSpeed
|
|
41
40
|
} = attributes;
|
|
42
41
|
const {
|
|
@@ -71,11 +70,9 @@ function PostTimeToReadEdit({
|
|
|
71
70
|
*/
|
|
72
71
|
const wordCountType = (0, _i18n._x)('words', 'Word count type. Do not translate!');
|
|
73
72
|
const totalWords = (0, _wordcount.count)(content || '', wordCountType);
|
|
74
|
-
const parts = [];
|
|
75
73
|
|
|
76
74
|
// Add "time to read" part, if enabled.
|
|
77
|
-
if (
|
|
78
|
-
let timeString;
|
|
75
|
+
if (displayMode === 'time') {
|
|
79
76
|
if (displayAsRange) {
|
|
80
77
|
let maxMinutes = Math.max(1, Math.round(totalWords / averageReadingSpeed * 1.2));
|
|
81
78
|
const minMinutes = Math.max(1, Math.round(totalWords / averageReadingSpeed * 0.8));
|
|
@@ -84,28 +81,20 @@ function PostTimeToReadEdit({
|
|
|
84
81
|
}
|
|
85
82
|
// translators: %1$s: minimum minutes, %2$s: maximum minutes to read the post.
|
|
86
83
|
const rangeLabel = (0, _i18n._x)('%1$s–%2$s minutes', 'Range of minutes to read');
|
|
87
|
-
|
|
88
|
-
} else {
|
|
89
|
-
const minutesToRead = Math.max(1, Math.round(totalWords / averageReadingSpeed));
|
|
90
|
-
timeString = (0, _i18n.sprintf)(/* translators: %s: the number of minutes to read the post. */
|
|
91
|
-
(0, _i18n._n)('%s minute', '%s minutes', minutesToRead), minutesToRead);
|
|
84
|
+
return (0, _i18n.sprintf)(rangeLabel, minMinutes, maxMinutes);
|
|
92
85
|
}
|
|
93
|
-
|
|
86
|
+
const minutesToRead = Math.max(1, Math.round(totalWords / averageReadingSpeed));
|
|
87
|
+
return (0, _i18n.sprintf)(/* translators: %s: the number of minutes to read the post. */
|
|
88
|
+
(0, _i18n._n)('%s minute', '%s minutes', minutesToRead), minutesToRead);
|
|
94
89
|
}
|
|
95
90
|
|
|
96
91
|
// Add "word count" part, if enabled.
|
|
97
|
-
if (
|
|
98
|
-
|
|
99
|
-
(0, _i18n._n)('%s word', '%s words', totalWords), totalWords.toLocaleString())
|
|
100
|
-
|
|
92
|
+
if (displayMode === 'words') {
|
|
93
|
+
return wordCountType === 'words' ? (0, _i18n.sprintf)(/* translators: %s: the number of words in the post. */
|
|
94
|
+
(0, _i18n._n)('%s word', '%s words', totalWords), totalWords.toLocaleString()) : (0, _i18n.sprintf)(/* translators: %s: the number of characters in the post. */
|
|
95
|
+
(0, _i18n._n)('%s character', '%s characters', totalWords), totalWords.toLocaleString());
|
|
101
96
|
}
|
|
102
|
-
|
|
103
|
-
return parts[0];
|
|
104
|
-
}
|
|
105
|
-
return parts.map((part, index) => /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
|
|
106
|
-
children: [part, index < parts.length - 1 && /*#__PURE__*/(0, _jsxRuntime.jsx)("br", {})]
|
|
107
|
-
}, index));
|
|
108
|
-
}, [contentStructure, blocks, displayAsRange, showTimeToRead, showWordCount, averageReadingSpeed]);
|
|
97
|
+
}, [contentStructure, blocks, displayAsRange, displayMode, averageReadingSpeed]);
|
|
109
98
|
const blockProps = (0, _blockEditor.useBlockProps)({
|
|
110
99
|
className: (0, _clsx.default)({
|
|
111
100
|
[`has-text-align-${textAlign}`]: textAlign
|
|
@@ -122,34 +111,16 @@ function PostTimeToReadEdit({
|
|
|
122
111
|
});
|
|
123
112
|
}
|
|
124
113
|
})
|
|
125
|
-
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
|
|
126
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
114
|
+
}), displayMode === 'time' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_blockEditor.InspectorControls, {
|
|
115
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanel, {
|
|
127
116
|
label: (0, _i18n.__)('Settings'),
|
|
128
117
|
resetAll: () => {
|
|
129
118
|
setAttributes({
|
|
130
|
-
displayAsRange: true
|
|
131
|
-
showTimeToRead: true,
|
|
132
|
-
showWordCount: false
|
|
119
|
+
displayAsRange: true
|
|
133
120
|
});
|
|
134
121
|
},
|
|
135
122
|
dropdownMenuProps: dropdownMenuProps,
|
|
136
|
-
children:
|
|
137
|
-
label: (0, _i18n.__)('Show time to read'),
|
|
138
|
-
hasValue: () => !showTimeToRead,
|
|
139
|
-
onDeselect: () => {
|
|
140
|
-
setAttributes({
|
|
141
|
-
showTimeToRead: true
|
|
142
|
-
});
|
|
143
|
-
},
|
|
144
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
|
|
145
|
-
__nextHasNoMarginBottom: true,
|
|
146
|
-
label: (0, _i18n.__)('Show time to read'),
|
|
147
|
-
checked: !!showTimeToRead,
|
|
148
|
-
onChange: () => setAttributes({
|
|
149
|
-
showTimeToRead: !showTimeToRead
|
|
150
|
-
})
|
|
151
|
-
})
|
|
152
|
-
}), showTimeToRead && /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
|
|
123
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.__experimentalToolsPanelItem, {
|
|
153
124
|
isShownByDefault: true,
|
|
154
125
|
label: (0, _i18n._x)('Display as range', 'Turns reading time range display on or off'),
|
|
155
126
|
hasValue: () => !displayAsRange,
|
|
@@ -166,23 +137,7 @@ function PostTimeToReadEdit({
|
|
|
166
137
|
displayAsRange: !displayAsRange
|
|
167
138
|
})
|
|
168
139
|
})
|
|
169
|
-
})
|
|
170
|
-
label: (0, _i18n.__)('Show word count'),
|
|
171
|
-
hasValue: () => !!showWordCount,
|
|
172
|
-
onDeselect: () => {
|
|
173
|
-
setAttributes({
|
|
174
|
-
showWordCount: false
|
|
175
|
-
});
|
|
176
|
-
},
|
|
177
|
-
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_components.ToggleControl, {
|
|
178
|
-
__nextHasNoMarginBottom: true,
|
|
179
|
-
label: (0, _i18n.__)('Show word count'),
|
|
180
|
-
checked: !!showWordCount,
|
|
181
|
-
onChange: () => setAttributes({
|
|
182
|
-
showWordCount: !showWordCount
|
|
183
|
-
})
|
|
184
|
-
})
|
|
185
|
-
})]
|
|
140
|
+
})
|
|
186
141
|
})
|
|
187
142
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
188
143
|
...blockProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_element","_blockEditor","_components","_blocks","_coreData","_wordcount","_hooks","_jsxRuntime","PostTimeToReadEdit","attributes","setAttributes","context","textAlign","displayAsRange","showTimeToRead","showWordCount","averageReadingSpeed","postId","postType","dropdownMenuProps","useToolsPanelDropdownMenuProps","contentStructure","useEntityProp","blocks","useEntityBlockEditor","id","displayString","useMemo","content","Function","__unstableSerializeAndClean","wordCountType","_x","totalWords","wordCount","parts","timeString","maxMinutes","Math","max","round","minMinutes","rangeLabel","sprintf","minutesToRead","_n","push","wordCountString","toLocaleString","length","map","part","index","jsxs","children","jsx","blockProps","useBlockProps","className","clsx","Fragment","BlockControls","group","AlignmentControl","value","onChange","nextAlign","InspectorControls","__experimentalToolsPanel","label","__","resetAll","__experimentalToolsPanelItem","hasValue","onDeselect","ToggleControl","__nextHasNoMarginBottom","checked","isShownByDefault","_default","exports","default"],"sources":["@wordpress/block-library/src/post-time-to-read/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction PostTimeToReadEdit( { attributes, setAttributes, context } ) {\n\tconst {\n\t\ttextAlign,\n\t\tdisplayAsRange,\n\t\tshowTimeToRead,\n\t\tshowWordCount,\n\t\taverageReadingSpeed,\n\t} = attributes;\n\n\tconst { postId, postType } = context;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst [ contentStructure ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', postType, {\n\t\tid: postId,\n\t} );\n\n\tconst displayString = useMemo( () => {\n\t\t// Replicates the logic found in getEditedPostContent().\n\t\tlet content;\n\t\tif ( contentStructure instanceof Function ) {\n\t\t\tcontent = contentStructure( { blocks } );\n\t\t} else if ( blocks ) {\n\t\t\t// If we have parsed blocks already, they should be our source of truth.\n\t\t\t// Parsing applies block deprecations and legacy block conversions that\n\t\t\t// unparsed content will not have.\n\t\t\tcontent = __unstableSerializeAndClean( blocks );\n\t\t} else {\n\t\t\tcontent = contentStructure;\n\t\t}\n\n\t\t/*\n\t\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t\t * Do not translate into your own language.\n\t\t */\n\t\tconst wordCountType = _x(\n\t\t\t'words',\n\t\t\t'Word count type. Do not translate!'\n\t\t);\n\n\t\tconst totalWords = wordCount( content || '', wordCountType );\n\n\t\tconst parts = [];\n\n\t\t// Add \"time to read\" part, if enabled.\n\t\tif ( showTimeToRead ) {\n\t\t\tlet timeString;\n\t\t\tif ( displayAsRange ) {\n\t\t\t\tlet maxMinutes = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 1.2 )\n\t\t\t\t);\n\t\t\t\tconst minMinutes = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 0.8 )\n\t\t\t\t);\n\n\t\t\t\tif ( minMinutes === maxMinutes ) {\n\t\t\t\t\tmaxMinutes = maxMinutes + 1;\n\t\t\t\t}\n\t\t\t\t// translators: %1$s: minimum minutes, %2$s: maximum minutes to read the post.\n\t\t\t\tconst rangeLabel = _x(\n\t\t\t\t\t'%1$s–%2$s minutes',\n\t\t\t\t\t'Range of minutes to read'\n\t\t\t\t);\n\t\t\t\ttimeString = sprintf( rangeLabel, minMinutes, maxMinutes );\n\t\t\t} else {\n\t\t\t\tconst minutesToRead = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( totalWords / averageReadingSpeed )\n\t\t\t\t);\n\n\t\t\t\ttimeString = sprintf(\n\t\t\t\t\t/* translators: %s: the number of minutes to read the post. */\n\t\t\t\t\t_n( '%s minute', '%s minutes', minutesToRead ),\n\t\t\t\t\tminutesToRead\n\t\t\t\t);\n\t\t\t}\n\t\t\tparts.push( timeString );\n\t\t}\n\n\t\t// Add \"word count\" part, if enabled.\n\t\tif ( showWordCount ) {\n\t\t\tconst wordCountString = sprintf(\n\t\t\t\t/* translators: %s: the number of words in the post. */\n\t\t\t\t_n( '%s word', '%s words', totalWords ),\n\t\t\t\ttotalWords.toLocaleString()\n\t\t\t);\n\t\t\tparts.push( wordCountString );\n\t\t}\n\n\t\tif ( parts.length === 1 ) {\n\t\t\treturn parts[ 0 ];\n\t\t}\n\t\treturn parts.map( ( part, index ) => (\n\t\t\t<span key={ index }>\n\t\t\t\t{ part }\n\t\t\t\t{ index < parts.length - 1 && <br /> }\n\t\t\t</span>\n\t\t) );\n\t}, [\n\t\tcontentStructure,\n\t\tblocks,\n\t\tdisplayAsRange,\n\t\tshowTimeToRead,\n\t\tshowWordCount,\n\t\taverageReadingSpeed,\n\t] );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t\tshowTimeToRead: true,\n\t\t\t\t\t\t\tshowWordCount: false,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show time to read' ) }\n\t\t\t\t\t\thasValue={ () => ! showTimeToRead }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowTimeToRead: true,\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\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show time to read' ) }\n\t\t\t\t\t\t\tchecked={ !! showTimeToRead }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowTimeToRead: ! showTimeToRead,\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</ToolsPanelItem>\n\t\t\t\t\t{ showTimeToRead && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Display as range',\n\t\t\t\t\t\t\t\t'Turns reading time range display on or off'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\thasValue={ () => ! displayAsRange }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Display as range' ) }\n\t\t\t\t\t\t\t\tchecked={ !! displayAsRange }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdisplayAsRange: ! displayAsRange,\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</ToolsPanelItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\tlabel={ __( 'Show word count' ) }\n\t\t\t\t\t\thasValue={ () => !! showWordCount }\n\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowWordCount: false,\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\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Show word count' ) }\n\t\t\t\t\t\t\tchecked={ !! showWordCount }\n\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tshowWordCount: ! showWordCount,\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</ToolsPanelItem>\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<div { ...blockProps }>{ displayString }</div>\n\t\t</>\n\t);\n}\n\nexport default PostTimeToReadEdit;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_i18n","_element","_blockEditor","_components","_blocks","_coreData","_wordcount","_hooks","_jsxRuntime","PostTimeToReadEdit","attributes","setAttributes","context","textAlign","displayAsRange","displayMode","averageReadingSpeed","postId","postType","dropdownMenuProps","useToolsPanelDropdownMenuProps","contentStructure","useEntityProp","blocks","useEntityBlockEditor","id","displayString","useMemo","content","Function","__unstableSerializeAndClean","wordCountType","_x","totalWords","wordCount","maxMinutes","Math","max","round","minMinutes","rangeLabel","sprintf","minutesToRead","_n","toLocaleString","blockProps","useBlockProps","className","clsx","jsxs","Fragment","children","jsx","BlockControls","group","AlignmentControl","value","onChange","nextAlign","InspectorControls","__experimentalToolsPanel","label","__","resetAll","__experimentalToolsPanelItem","isShownByDefault","hasValue","onDeselect","ToggleControl","__nextHasNoMarginBottom","checked","_default","exports","default"],"sources":["@wordpress/block-library/src/post-time-to-read/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, _n, sprintf } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __unstableSerializeAndClean } from '@wordpress/blocks';\nimport { useEntityProp, useEntityBlockEditor } from '@wordpress/core-data';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nfunction PostTimeToReadEdit( { attributes, setAttributes, context } ) {\n\tconst { textAlign, displayAsRange, displayMode, averageReadingSpeed } =\n\t\tattributes;\n\n\tconst { postId, postType } = context;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst [ contentStructure ] = useEntityProp(\n\t\t'postType',\n\t\tpostType,\n\t\t'content',\n\t\tpostId\n\t);\n\n\tconst [ blocks ] = useEntityBlockEditor( 'postType', postType, {\n\t\tid: postId,\n\t} );\n\n\tconst displayString = useMemo( () => {\n\t\t// Replicates the logic found in getEditedPostContent().\n\t\tlet content;\n\t\tif ( contentStructure instanceof Function ) {\n\t\t\tcontent = contentStructure( { blocks } );\n\t\t} else if ( blocks ) {\n\t\t\t// If we have parsed blocks already, they should be our source of truth.\n\t\t\t// Parsing applies block deprecations and legacy block conversions that\n\t\t\t// unparsed content will not have.\n\t\t\tcontent = __unstableSerializeAndClean( blocks );\n\t\t} else {\n\t\t\tcontent = contentStructure;\n\t\t}\n\n\t\t/*\n\t\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t\t * Do not translate into your own language.\n\t\t */\n\t\tconst wordCountType = _x(\n\t\t\t'words',\n\t\t\t'Word count type. Do not translate!'\n\t\t);\n\n\t\tconst totalWords = wordCount( content || '', wordCountType );\n\n\t\t// Add \"time to read\" part, if enabled.\n\t\tif ( displayMode === 'time' ) {\n\t\t\tif ( displayAsRange ) {\n\t\t\t\tlet maxMinutes = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 1.2 )\n\t\t\t\t);\n\t\t\t\tconst minMinutes = Math.max(\n\t\t\t\t\t1,\n\t\t\t\t\tMath.round( ( totalWords / averageReadingSpeed ) * 0.8 )\n\t\t\t\t);\n\n\t\t\t\tif ( minMinutes === maxMinutes ) {\n\t\t\t\t\tmaxMinutes = maxMinutes + 1;\n\t\t\t\t}\n\t\t\t\t// translators: %1$s: minimum minutes, %2$s: maximum minutes to read the post.\n\t\t\t\tconst rangeLabel = _x(\n\t\t\t\t\t'%1$s–%2$s minutes',\n\t\t\t\t\t'Range of minutes to read'\n\t\t\t\t);\n\t\t\t\treturn sprintf( rangeLabel, minMinutes, maxMinutes );\n\t\t\t}\n\t\t\tconst minutesToRead = Math.max(\n\t\t\t\t1,\n\t\t\t\tMath.round( totalWords / averageReadingSpeed )\n\t\t\t);\n\n\t\t\treturn sprintf(\n\t\t\t\t/* translators: %s: the number of minutes to read the post. */\n\t\t\t\t_n( '%s minute', '%s minutes', minutesToRead ),\n\t\t\t\tminutesToRead\n\t\t\t);\n\t\t}\n\n\t\t// Add \"word count\" part, if enabled.\n\t\tif ( displayMode === 'words' ) {\n\t\t\treturn wordCountType === 'words'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: the number of words in the post. */\n\t\t\t\t\t\t_n( '%s word', '%s words', totalWords ),\n\t\t\t\t\t\ttotalWords.toLocaleString()\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: the number of characters in the post. */\n\t\t\t\t\t\t_n( '%s character', '%s characters', totalWords ),\n\t\t\t\t\t\ttotalWords.toLocaleString()\n\t\t\t\t );\n\t\t}\n\t}, [\n\t\tcontentStructure,\n\t\tblocks,\n\t\tdisplayAsRange,\n\t\tdisplayMode,\n\t\taverageReadingSpeed,\n\t] );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ displayMode === 'time' && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t\tlabel={ _x(\n\t\t\t\t\t\t\t\t'Display as range',\n\t\t\t\t\t\t\t\t'Turns reading time range display on or off'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\thasValue={ () => ! displayAsRange }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tdisplayAsRange: true,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Display as range' ) }\n\t\t\t\t\t\t\t\tchecked={ !! displayAsRange }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tdisplayAsRange: ! displayAsRange,\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</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<div { ...blockProps }>{ displayString }</div>\n\t\t</>\n\t);\n}\n\nexport default PostTimeToReadEdit;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAMA,IAAAI,WAAA,GAAAJ,OAAA;AAKA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAKA,IAAAQ,MAAA,GAAAR,OAAA;AAAgE,IAAAS,WAAA,GAAAT,OAAA;AA5BhE;AACA;AACA;;AAGA;AACA;AACA;;AAkBA;AACA;AACA;;AAGA,SAASU,kBAAkBA,CAAE;EAAEC,UAAU;EAAEC,aAAa;EAAEC;AAAQ,CAAC,EAAG;EACrE,MAAM;IAAEC,SAAS;IAAEC,cAAc;IAAEC,WAAW;IAAEC;EAAoB,CAAC,GACpEN,UAAU;EAEX,MAAM;IAAEO,MAAM;IAAEC;EAAS,CAAC,GAAGN,OAAO;EACpC,MAAMO,iBAAiB,GAAG,IAAAC,qCAA8B,EAAC,CAAC;EAE1D,MAAM,CAAEC,gBAAgB,CAAE,GAAG,IAAAC,uBAAa,EACzC,UAAU,EACVJ,QAAQ,EACR,SAAS,EACTD,MACD,CAAC;EAED,MAAM,CAAEM,MAAM,CAAE,GAAG,IAAAC,8BAAoB,EAAE,UAAU,EAAEN,QAAQ,EAAE;IAC9DO,EAAE,EAAER;EACL,CAAE,CAAC;EAEH,MAAMS,aAAa,GAAG,IAAAC,gBAAO,EAAE,MAAM;IACpC;IACA,IAAIC,OAAO;IACX,IAAKP,gBAAgB,YAAYQ,QAAQ,EAAG;MAC3CD,OAAO,GAAGP,gBAAgB,CAAE;QAAEE;MAAO,CAAE,CAAC;IACzC,CAAC,MAAM,IAAKA,MAAM,EAAG;MACpB;MACA;MACA;MACAK,OAAO,GAAG,IAAAE,mCAA2B,EAAEP,MAAO,CAAC;IAChD,CAAC,MAAM;MACNK,OAAO,GAAGP,gBAAgB;IAC3B;;IAEA;AACF;AACA;AACA;AACA;IACE,MAAMU,aAAa,GAAG,IAAAC,QAAE,EACvB,OAAO,EACP,oCACD,CAAC;IAED,MAAMC,UAAU,GAAG,IAAAC,gBAAS,EAAEN,OAAO,IAAI,EAAE,EAAEG,aAAc,CAAC;;IAE5D;IACA,IAAKhB,WAAW,KAAK,MAAM,EAAG;MAC7B,IAAKD,cAAc,EAAG;QACrB,IAAIqB,UAAU,GAAGC,IAAI,CAACC,GAAG,CACxB,CAAC,EACDD,IAAI,CAACE,KAAK,CAAIL,UAAU,GAAGjB,mBAAmB,GAAK,GAAI,CACxD,CAAC;QACD,MAAMuB,UAAU,GAAGH,IAAI,CAACC,GAAG,CAC1B,CAAC,EACDD,IAAI,CAACE,KAAK,CAAIL,UAAU,GAAGjB,mBAAmB,GAAK,GAAI,CACxD,CAAC;QAED,IAAKuB,UAAU,KAAKJ,UAAU,EAAG;UAChCA,UAAU,GAAGA,UAAU,GAAG,CAAC;QAC5B;QACA;QACA,MAAMK,UAAU,GAAG,IAAAR,QAAE,EACpB,mBAAmB,EACnB,0BACD,CAAC;QACD,OAAO,IAAAS,aAAO,EAAED,UAAU,EAAED,UAAU,EAAEJ,UAAW,CAAC;MACrD;MACA,MAAMO,aAAa,GAAGN,IAAI,CAACC,GAAG,CAC7B,CAAC,EACDD,IAAI,CAACE,KAAK,CAAEL,UAAU,GAAGjB,mBAAoB,CAC9C,CAAC;MAED,OAAO,IAAAyB,aAAO,EACb;MACA,IAAAE,QAAE,EAAE,WAAW,EAAE,YAAY,EAAED,aAAc,CAAC,EAC9CA,aACD,CAAC;IACF;;IAEA;IACA,IAAK3B,WAAW,KAAK,OAAO,EAAG;MAC9B,OAAOgB,aAAa,KAAK,OAAO,GAC7B,IAAAU,aAAO,EACP;MACA,IAAAE,QAAE,EAAE,SAAS,EAAE,UAAU,EAAEV,UAAW,CAAC,EACvCA,UAAU,CAACW,cAAc,CAAC,CAC1B,CAAC,GACD,IAAAH,aAAO,EACP;MACA,IAAAE,QAAE,EAAE,cAAc,EAAE,eAAe,EAAEV,UAAW,CAAC,EACjDA,UAAU,CAACW,cAAc,CAAC,CAC1B,CAAC;IACL;EACD,CAAC,EAAE,CACFvB,gBAAgB,EAChBE,MAAM,EACNT,cAAc,EACdC,WAAW,EACXC,mBAAmB,CAClB,CAAC;EAEH,MAAM6B,UAAU,GAAG,IAAAC,0BAAa,EAAE;IACjCC,SAAS,EAAE,IAAAC,aAAI,EAAE;MAChB,CAAE,kBAAmBnC,SAAS,EAAG,GAAIA;IACtC,CAAE;EACH,CAAE,CAAC;EAEH,oBACC,IAAAL,WAAA,CAAAyC,IAAA,EAAAzC,WAAA,CAAA0C,QAAA;IAAAC,QAAA,gBACC,IAAA3C,WAAA,CAAA4C,GAAA,EAAClD,YAAA,CAAAmD,aAAa;MAACC,KAAK,EAAC,OAAO;MAAAH,QAAA,eAC3B,IAAA3C,WAAA,CAAA4C,GAAA,EAAClD,YAAA,CAAAqD,gBAAgB;QAChBC,KAAK,EAAG3C,SAAW;QACnB4C,QAAQ,EAAKC,SAAS,IAAM;UAC3B/C,aAAa,CAAE;YAAEE,SAAS,EAAE6C;UAAU,CAAE,CAAC;QAC1C;MAAG,CACH;IAAC,CACY,CAAC,EACd3C,WAAW,KAAK,MAAM,iBACvB,IAAAP,WAAA,CAAA4C,GAAA,EAAClD,YAAA,CAAAyD,iBAAiB;MAAAR,QAAA,eACjB,IAAA3C,WAAA,CAAA4C,GAAA,EAACjD,WAAA,CAAAyD,wBAAU;QACVC,KAAK,EAAG,IAAAC,QAAE,EAAE,UAAW,CAAG;QAC1BC,QAAQ,EAAGA,CAAA,KAAM;UAChBpD,aAAa,CAAE;YACdG,cAAc,EAAE;UACjB,CAAE,CAAC;QACJ,CAAG;QACHK,iBAAiB,EAAGA,iBAAmB;QAAAgC,QAAA,eAEvC,IAAA3C,WAAA,CAAA4C,GAAA,EAACjD,WAAA,CAAA6D,4BAAc;UACdC,gBAAgB;UAChBJ,KAAK,EAAG,IAAA7B,QAAE,EACT,kBAAkB,EAClB,4CACD,CAAG;UACHkC,QAAQ,EAAGA,CAAA,KAAM,CAAEpD,cAAgB;UACnCqD,UAAU,EAAGA,CAAA,KAAM;YAClBxD,aAAa,CAAE;cACdG,cAAc,EAAE;YACjB,CAAE,CAAC;UACJ,CAAG;UAAAqC,QAAA,eAEH,IAAA3C,WAAA,CAAA4C,GAAA,EAACjD,WAAA,CAAAiE,aAAa;YACbC,uBAAuB;YACvBR,KAAK,EAAG,IAAAC,QAAE,EAAE,kBAAmB,CAAG;YAClCQ,OAAO,EAAG,CAAC,CAAExD,cAAgB;YAC7B2C,QAAQ,EAAGA,CAAA,KACV9C,aAAa,CAAE;cACdG,cAAc,EAAE,CAAEA;YACnB,CAAE;UACF,CACD;QAAC,CACa;MAAC,CACN;IAAC,CACK,CACnB,eACD,IAAAN,WAAA,CAAA4C,GAAA;MAAA,GAAUP,UAAU;MAAAM,QAAA,EAAKzB;IAAa,CAAO,CAAC;EAAA,CAC7C,CAAC;AAEL;AAAC,IAAA6C,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEchE,kBAAkB","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ exports.settings = exports.name = exports.metadata = exports.init = void 0;
|
|
|
8
8
|
var _initBlock = _interopRequireDefault(require("../utils/init-block"));
|
|
9
9
|
var _edit = _interopRequireDefault(require("./edit"));
|
|
10
10
|
var _icon = _interopRequireDefault(require("./icon"));
|
|
11
|
+
var _variations = _interopRequireDefault(require("./variations"));
|
|
11
12
|
/**
|
|
12
13
|
* Internal dependencies
|
|
13
14
|
*/
|
|
@@ -29,13 +30,9 @@ const metadata = exports.metadata = {
|
|
|
29
30
|
type: "boolean",
|
|
30
31
|
"default": true
|
|
31
32
|
},
|
|
32
|
-
|
|
33
|
-
type: "
|
|
34
|
-
"default":
|
|
35
|
-
},
|
|
36
|
-
showWordCount: {
|
|
37
|
-
type: "boolean",
|
|
38
|
-
"default": false
|
|
33
|
+
displayMode: {
|
|
34
|
+
type: "string",
|
|
35
|
+
"default": "time"
|
|
39
36
|
},
|
|
40
37
|
averageReadingSpeed: {
|
|
41
38
|
type: "number",
|
|
@@ -90,6 +87,7 @@ exports.name = name;
|
|
|
90
87
|
const settings = exports.settings = {
|
|
91
88
|
icon: _icon.default,
|
|
92
89
|
edit: _edit.default,
|
|
90
|
+
variations: _variations.default,
|
|
93
91
|
example: {}
|
|
94
92
|
};
|
|
95
93
|
const init = () => (0, _initBlock.default)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","_icon","metadata","exports","$schema","apiVersion","__experimental","name","title","category","description","textdomain","usesContext","attributes","textAlign","type","displayAsRange","
|
|
1
|
+
{"version":3,"names":["_initBlock","_interopRequireDefault","require","_edit","_icon","_variations","metadata","exports","$schema","apiVersion","__experimental","name","title","category","description","textdomain","usesContext","attributes","textAlign","type","displayAsRange","displayMode","averageReadingSpeed","supports","color","gradients","__experimentalDefaultControls","background","text","html","spacing","margin","padding","typography","fontSize","lineHeight","__experimentalFontFamily","__experimentalFontWeight","__experimentalFontStyle","__experimentalTextTransform","__experimentalTextDecoration","__experimentalLetterSpacing","interactivity","clientNavigation","__experimentalBorder","radius","width","style","settings","icon","edit","variations","example","init","initBlock"],"sources":["@wordpress/block-library/src/post-time-to-read/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport icon from './icon';\nimport variations from './variations';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tvariations,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":";;;;;;;AAGA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,WAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAPA;AACA;AACA;AAFA,MAAAI,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,WAAA;EAAAC,UAAA;IAAAC,SAAA;MAAAC,IAAA;IAAA;IAAAC,cAAA;MAAAD,IAAA;MAAA;IAAA;IAAAE,WAAA;MAAAF,IAAA;MAAA;IAAA;IAAAG,mBAAA;MAAAH,IAAA;MAAA;IAAA;EAAA;EAAAI,QAAA;IAAAC,KAAA;MAAAC,SAAA;MAAAC,6BAAA;QAAAC,UAAA;QAAAC,IAAA;MAAA;IAAA;IAAAC,IAAA;IAAAC,OAAA;MAAAC,MAAA;MAAAC,OAAA;MAAAN,6BAAA;QAAAK,MAAA;QAAAC,OAAA;MAAA;IAAA;IAAAC,UAAA;MAAAC,QAAA;MAAAC,UAAA;MAAAC,wBAAA;MAAAC,wBAAA;MAAAC,uBAAA;MAAAC,2BAAA;MAAAC,4BAAA;MAAAC,2BAAA;MAAAf,6BAAA;QAAAQ,QAAA;MAAA;IAAA;IAAAQ,aAAA;MAAAC,gBAAA;IAAA;IAAAC,oBAAA;MAAAC,MAAA;MAAArB,KAAA;MAAAsB,KAAA;MAAAC,KAAA;IAAA;EAAA;AAAA;AASA,MAAM;EAAEpC;AAAK,CAAC,GAAGL,QAAQ;AAACC,OAAA,CAAAI,IAAA,GAAAA,IAAA;AAGnB,MAAMqC,QAAQ,GAAAzC,OAAA,CAAAyC,QAAA,GAAG;EACvBC,IAAI,EAAJA,aAAI;EACJC,IAAI,EAAJA,aAAI;EACJC,UAAU,EAAVA,mBAAU;EACVC,OAAO,EAAE,CAAC;AACX,CAAC;AAEM,MAAMC,IAAI,GAAGA,CAAA,KAAM,IAAAC,kBAAS,EAAE;EAAE3C,IAAI;EAAEL,QAAQ;EAAE0C;AAAS,CAAE,CAAC;AAACzC,OAAA,CAAA8C,IAAA,GAAAA,IAAA","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _i18n = require("@wordpress/i18n");
|
|
9
|
+
var _icon = _interopRequireDefault(require("./icon"));
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
const variations = [{
|
|
19
|
+
name: 'time-to-read',
|
|
20
|
+
title: (0, _i18n.__)('Time to Read'),
|
|
21
|
+
description: (0, _i18n.__)('Show minutes required to finish reading the post.'),
|
|
22
|
+
attributes: {
|
|
23
|
+
displayMode: 'time'
|
|
24
|
+
},
|
|
25
|
+
scope: ['inserter', 'transform'],
|
|
26
|
+
isActive: blockAttributes => blockAttributes?.displayMode === 'time',
|
|
27
|
+
icon: _icon.default,
|
|
28
|
+
isDefault: true
|
|
29
|
+
}, {
|
|
30
|
+
name: 'word-count',
|
|
31
|
+
title: (0, _i18n.__)('Word Count'),
|
|
32
|
+
description: (0, _i18n.__)('Show the number of words in the post.'),
|
|
33
|
+
attributes: {
|
|
34
|
+
displayMode: 'words'
|
|
35
|
+
},
|
|
36
|
+
scope: ['inserter', 'transform'],
|
|
37
|
+
isActive: blockAttributes => blockAttributes?.displayMode === 'words',
|
|
38
|
+
icon: _icon.default
|
|
39
|
+
}];
|
|
40
|
+
var _default = exports.default = variations;
|
|
41
|
+
//# sourceMappingURL=variations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_i18n","require","_icon","_interopRequireDefault","variations","name","title","__","description","attributes","displayMode","scope","isActive","blockAttributes","icon","isDefault","_default","exports","default"],"sources":["@wordpress/block-library/src/post-time-to-read/variations.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport icon from './icon';\n\nconst variations = [\n\t{\n\t\tname: 'time-to-read',\n\t\ttitle: __( 'Time to Read' ),\n\t\tdescription: __( 'Show minutes required to finish reading the post.' ),\n\t\tattributes: {\n\t\t\tdisplayMode: 'time',\n\t\t},\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes?.displayMode === 'time',\n\t\ticon,\n\t\tisDefault: true,\n\t},\n\t{\n\t\tname: 'word-count',\n\t\ttitle: __( 'Word Count' ),\n\t\tdescription: __( 'Show the number of words in the post.' ),\n\t\tattributes: {\n\t\t\tdisplayMode: 'words',\n\t\t},\n\t\tscope: [ 'inserter', 'transform' ],\n\t\tisActive: ( blockAttributes ) =>\n\t\t\tblockAttributes?.displayMode === 'words',\n\t\ticon,\n\t},\n];\n\nexport default variations;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AARA;AACA;AACA;;AAGA;AACA;AACA;;AAGA,MAAMG,UAAU,GAAG,CAClB;EACCC,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAE,IAAAC,QAAE,EAAE,cAAe,CAAC;EAC3BC,WAAW,EAAE,IAAAD,QAAE,EAAE,mDAAoD,CAAC;EACtEE,UAAU,EAAE;IACXC,WAAW,EAAE;EACd,CAAC;EACDC,KAAK,EAAE,CAAE,UAAU,EAAE,WAAW,CAAE;EAClCC,QAAQ,EAAIC,eAAe,IAC1BA,eAAe,EAAEH,WAAW,KAAK,MAAM;EACxCI,IAAI,EAAJA,aAAI;EACJC,SAAS,EAAE;AACZ,CAAC,EACD;EACCV,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE,IAAAC,QAAE,EAAE,YAAa,CAAC;EACzBC,WAAW,EAAE,IAAAD,QAAE,EAAE,uCAAwC,CAAC;EAC1DE,UAAU,EAAE;IACXC,WAAW,EAAE;EACd,CAAC;EACDC,KAAK,EAAE,CAAE,UAAU,EAAE,WAAW,CAAE;EAClCC,QAAQ,EAAIC,eAAe,IAC1BA,eAAe,EAAEH,WAAW,KAAK,OAAO;EACzCI,IAAI,EAAJA;AACD,CAAC,CACD;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEad,UAAU","ignoreList":[]}
|
|
@@ -48,7 +48,7 @@ function QueryTitleEdit({
|
|
|
48
48
|
postTypeLabel
|
|
49
49
|
} = (0, _usePostTypeLabel.usePostTypeLabel)(query?.postType);
|
|
50
50
|
const dropdownMenuProps = (0, _hooks.useToolsPanelDropdownMenuProps)();
|
|
51
|
-
const TagName = `h${level}`;
|
|
51
|
+
const TagName = level === 0 ? 'p' : `h${level}`;
|
|
52
52
|
const blockProps = (0, _blockEditor.useBlockProps)({
|
|
53
53
|
className: (0, _clsx.default)('wp-block-query-title__placeholder', {
|
|
54
54
|
[`has-text-align-${textAlign}`]: textAlign
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_blockEditor","_components","_i18n","_useArchiveLabel","_usePostTypeLabel","_hooks","_jsxRuntime","SUPPORTED_TYPES","QueryTitleEdit","attributes","type","level","levelOptions","textAlign","showPrefix","showSearchTerm","setAttributes","context","query","archiveTypeLabel","archiveNameLabel","useArchiveLabel","postTypeLabel","usePostTypeLabel","postType","dropdownMenuProps","useToolsPanelDropdownMenuProps","TagName","blockProps","useBlockProps","className","clsx","includes","jsx","children","Warning","__","titleElement","title","sprintf","_x","jsxs","Fragment","InspectorControls","__experimentalToolsPanel","label","resetAll","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","ToggleControl","__nextHasNoMarginBottom","onChange","checked","BlockControls","group","HeadingLevelDropdown","value","options","newLevel","AlignmentControl","nextAlign"],"sources":["@wordpress/block-library/src/query-title/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useArchiveLabel } from './use-archive-label';\nimport { usePostTypeLabel } from './use-post-type-label';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst SUPPORTED_TYPES = [ 'archive', 'search', 'post-type' ];\n\nexport default function QueryTitleEdit( {\n\tattributes: {\n\t\ttype,\n\t\tlevel,\n\t\tlevelOptions,\n\t\ttextAlign,\n\t\tshowPrefix,\n\t\tshowSearchTerm,\n\t},\n\tsetAttributes,\n\tcontext: { query },\n} ) {\n\tconst { archiveTypeLabel, archiveNameLabel } = useArchiveLabel();\n\tconst { postTypeLabel } = usePostTypeLabel( query?.postType );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst TagName = `h${ level }`;\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-query-title__placeholder', {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tif ( ! SUPPORTED_TYPES.includes( type ) ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>{ __( 'Provided type is not supported.' ) }</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet titleElement;\n\tif ( type === 'archive' ) {\n\t\tlet title;\n\t\tif ( archiveTypeLabel ) {\n\t\t\tif ( showPrefix ) {\n\t\t\t\tif ( archiveNameLabel ) {\n\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t/* translators: 1: Archive type title e.g: \"Category\", 2: Label of the archive e.g: \"Shoes\" */\n\t\t\t\t\t\t_x( '%1$s: %2$s', 'archive label' ),\n\t\t\t\t\t\tarchiveTypeLabel,\n\t\t\t\t\t\tarchiveNameLabel\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t/* translators: %s: Archive type title e.g: \"Category\", \"Tag\"... */\n\t\t\t\t\t\t__( '%s: Name' ),\n\t\t\t\t\t\tarchiveTypeLabel\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if ( archiveNameLabel ) {\n\t\t\t\ttitle = archiveNameLabel;\n\t\t\t} else {\n\t\t\t\ttitle = sprintf(\n\t\t\t\t\t/* translators: %s: Archive type title e.g: \"Category\", \"Tag\"... */\n\t\t\t\t\t__( '%s name' ),\n\t\t\t\t\tarchiveTypeLabel\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = showPrefix\n\t\t\t\t? __( 'Archive type: Name' )\n\t\t\t\t: __( 'Archive title' );\n\t\t}\n\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPrefix: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showPrefix }\n\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowPrefix: ! showPrefix,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showPrefix }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<TagName { ...blockProps }>{ title }</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( type === 'search' ) {\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowSearchTerm: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showSearchTerm }\n\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showSearchTerm: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSearchTerm: ! showSearchTerm,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showSearchTerm }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t{ showSearchTerm\n\t\t\t\t\t\t? __( 'Search results for: “search term”' )\n\t\t\t\t\t\t: __( 'Search results' ) }\n\t\t\t\t</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( type === 'post-type' ) {\n\t\tlet title;\n\t\tif ( postTypeLabel ) {\n\t\t\tif ( showPrefix ) {\n\t\t\t\ttitle = sprintf(\n\t\t\t\t\t/* translators: %s: Singular post type name of the queried object */\n\t\t\t\t\t__( 'Post Type: \"%s\"' ),\n\t\t\t\t\tpostTypeLabel\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttitle = postTypeLabel;\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = showPrefix ? __( 'Post Type: Name' ) : __( 'Name' );\n\t\t}\n\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPrefix: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showPrefix }\n\t\t\t\t\t\t\tlabel={ __( 'Show post type label' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show post type label' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowPrefix: ! showPrefix,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showPrefix }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<TagName { ...blockProps }>{ title }</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tvalue={ level }\n\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ titleElement }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_blockEditor","_components","_i18n","_useArchiveLabel","_usePostTypeLabel","_hooks","_jsxRuntime","SUPPORTED_TYPES","QueryTitleEdit","attributes","type","level","levelOptions","textAlign","showPrefix","showSearchTerm","setAttributes","context","query","archiveTypeLabel","archiveNameLabel","useArchiveLabel","postTypeLabel","usePostTypeLabel","postType","dropdownMenuProps","useToolsPanelDropdownMenuProps","TagName","blockProps","useBlockProps","className","clsx","includes","jsx","children","Warning","__","titleElement","title","sprintf","_x","jsxs","Fragment","InspectorControls","__experimentalToolsPanel","label","resetAll","__experimentalToolsPanelItem","hasValue","onDeselect","isShownByDefault","ToggleControl","__nextHasNoMarginBottom","onChange","checked","BlockControls","group","HeadingLevelDropdown","value","options","newLevel","AlignmentControl","nextAlign"],"sources":["@wordpress/block-library/src/query-title/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAlignmentControl,\n\tBlockControls,\n\tInspectorControls,\n\tuseBlockProps,\n\tWarning,\n\tHeadingLevelDropdown,\n} from '@wordpress/block-editor';\nimport {\n\tToggleControl,\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { __, _x, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { useArchiveLabel } from './use-archive-label';\nimport { usePostTypeLabel } from './use-post-type-label';\nimport { useToolsPanelDropdownMenuProps } from '../utils/hooks';\n\nconst SUPPORTED_TYPES = [ 'archive', 'search', 'post-type' ];\n\nexport default function QueryTitleEdit( {\n\tattributes: {\n\t\ttype,\n\t\tlevel,\n\t\tlevelOptions,\n\t\ttextAlign,\n\t\tshowPrefix,\n\t\tshowSearchTerm,\n\t},\n\tsetAttributes,\n\tcontext: { query },\n} ) {\n\tconst { archiveTypeLabel, archiveNameLabel } = useArchiveLabel();\n\tconst { postTypeLabel } = usePostTypeLabel( query?.postType );\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst TagName = level === 0 ? 'p' : `h${ level }`;\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: clsx( 'wp-block-query-title__placeholder', {\n\t\t\t[ `has-text-align-${ textAlign }` ]: textAlign,\n\t\t} ),\n\t} );\n\n\tif ( ! SUPPORTED_TYPES.includes( type ) ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<Warning>{ __( 'Provided type is not supported.' ) }</Warning>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet titleElement;\n\tif ( type === 'archive' ) {\n\t\tlet title;\n\t\tif ( archiveTypeLabel ) {\n\t\t\tif ( showPrefix ) {\n\t\t\t\tif ( archiveNameLabel ) {\n\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t/* translators: 1: Archive type title e.g: \"Category\", 2: Label of the archive e.g: \"Shoes\" */\n\t\t\t\t\t\t_x( '%1$s: %2$s', 'archive label' ),\n\t\t\t\t\t\tarchiveTypeLabel,\n\t\t\t\t\t\tarchiveNameLabel\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\ttitle = sprintf(\n\t\t\t\t\t\t/* translators: %s: Archive type title e.g: \"Category\", \"Tag\"... */\n\t\t\t\t\t\t__( '%s: Name' ),\n\t\t\t\t\t\tarchiveTypeLabel\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if ( archiveNameLabel ) {\n\t\t\t\ttitle = archiveNameLabel;\n\t\t\t} else {\n\t\t\t\ttitle = sprintf(\n\t\t\t\t\t/* translators: %s: Archive type title e.g: \"Category\", \"Tag\"... */\n\t\t\t\t\t__( '%s name' ),\n\t\t\t\t\tarchiveTypeLabel\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = showPrefix\n\t\t\t\t? __( 'Archive type: Name' )\n\t\t\t\t: __( 'Archive title' );\n\t\t}\n\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPrefix: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showPrefix }\n\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show archive type in title' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowPrefix: ! showPrefix,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showPrefix }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<TagName { ...blockProps }>{ title }</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( type === 'search' ) {\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowSearchTerm: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showSearchTerm }\n\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showSearchTerm: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show search term in title' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowSearchTerm: ! showSearchTerm,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showSearchTerm }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\n\t\t\t\t<TagName { ...blockProps }>\n\t\t\t\t\t{ showSearchTerm\n\t\t\t\t\t\t? __( 'Search results for: “search term”' )\n\t\t\t\t\t\t: __( 'Search results' ) }\n\t\t\t\t</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\tif ( type === 'post-type' ) {\n\t\tlet title;\n\t\tif ( postTypeLabel ) {\n\t\t\tif ( showPrefix ) {\n\t\t\t\ttitle = sprintf(\n\t\t\t\t\t/* translators: %s: Singular post type name of the queried object */\n\t\t\t\t\t__( 'Post Type: \"%s\"' ),\n\t\t\t\t\tpostTypeLabel\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttitle = postTypeLabel;\n\t\t\t}\n\t\t} else {\n\t\t\ttitle = showPrefix ? __( 'Post Type: Name' ) : __( 'Name' );\n\t\t}\n\n\t\ttitleElement = (\n\t\t\t<>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<ToolsPanel\n\t\t\t\t\t\tlabel={ __( 'Settings' ) }\n\t\t\t\t\t\tresetAll={ () =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowPrefix: true,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t\t>\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => ! showPrefix }\n\t\t\t\t\t\t\tlabel={ __( 'Show post type label' ) }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetAttributes( { showPrefix: true } )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\t\tlabel={ __( 'Show post type label' ) }\n\t\t\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tshowPrefix: ! showPrefix,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchecked={ showPrefix }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ToolsPanelItem>\n\t\t\t\t\t</ToolsPanel>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<TagName { ...blockProps }>{ title }</TagName>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"block\">\n\t\t\t\t<HeadingLevelDropdown\n\t\t\t\t\tvalue={ level }\n\t\t\t\t\toptions={ levelOptions }\n\t\t\t\t\tonChange={ ( newLevel ) =>\n\t\t\t\t\t\tsetAttributes( { level: newLevel } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<AlignmentControl\n\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t{ titleElement }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_changeCase","require","_coreData","_data","_icons","_hooks","_htmlEntities","_initBlock","_interopRequireDefault","_edit","_variations","metadata","exports","$schema","apiVersion","name","title","category","description","textdomain","attributes","slug","type","theme","tagName","area","supports","align","html","reusable","renaming","interactivity","clientNavigation","editorStyle","settings","icon","symbolFilled","__experimentalLabel","getCurrentTheme","getEditedEntityRecord","select","coreDataStore","entity","stylesheet","decodeEntities","capitalCase","edit","init","addFilter","enhanceTemplatePartVariations","DISALLOWED_PARENTS","canInsert","blockType","rootClientId","getBlock","getBlockParentsByBlockName","disallowedParentType","hasDisallowedParent","length","initBlock"],"sources":["@wordpress/block-library/src/template-part/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { capitalCase } from 'change-case';\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';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\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 { getCurrentTheme, getEditedEntityRecord } =\n\t\t\tselect( coreDataStore );\n\t\tconst entity = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\t( theme || getCurrentTheme()?.stylesheet ) + '//' + slug\n\t\t);\n\t\tif ( ! entity ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn (\n\t\t\tdecodeEntities( entity.title ) || capitalCase( entity.slug || '' )\n\t\t);\n\t},\n\tedit,\n};\n\nexport const init = () => {\n\taddFilter(\n\t\t'blocks.registerBlockType',\n\t\t'core/template-part',\n\t\tenhanceTemplatePartVariations\n\t);\n\n\t// Prevent adding template parts inside post templates.\n\tconst DISALLOWED_PARENTS = [ 'core/post-template', 'core/post-content' ];\n\taddFilter(\n\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t'core/block-library/removeTemplatePartsFromPostTemplates',\n\t\t(\n\t\t\tcanInsert,\n\t\t\tblockType,\n\t\t\trootClientId,\n\t\t\t{ getBlock, getBlockParentsByBlockName }\n\t\t) => {\n\t\t\tif ( blockType.name !== 'core/template-part' ) {\n\t\t\t\treturn canInsert;\n\t\t\t}\n\n\t\t\tfor ( const disallowedParentType of DISALLOWED_PARENTS ) {\n\t\t\t\tconst hasDisallowedParent =\n\t\t\t\t\tgetBlock( rootClientId )?.name === disallowedParentType ||\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\tdisallowedParentType\n\t\t\t\t\t).length;\n\t\t\t\tif ( hasDisallowedParent ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AAKA,IAAAM,UAAA,GAAAC,sBAAA,CAAAP,OAAA;AAEA,IAAAQ,KAAA,GAAAD,sBAAA,CAAAP,OAAA;AACA,IAAAS,WAAA,GAAAT,OAAA;AApBA;AACA;AACA;AAGA;AACA;AACA;AAOA;AACA;AACA;AAFA,MAAAU,QAAA,GAAAC,OAAA,CAAAD,QAAA;EAAAE,OAAA;EAAAC,UAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,IAAA;MAAAC,IAAA;IAAA;IAAAC,KAAA;MAAAD,IAAA;IAAA;IAAAE,OAAA;MAAAF,IAAA;IAAA;IAAAG,IAAA;MAAAH,IAAA;IAAA;EAAA;EAAAI,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,QAAA;IAAAC,aAAA;MAAAC,gBAAA;IAAA;EAAA;EAAAC,WAAA;AAAA;AAQA,MAAM;
|
|
1
|
+
{"version":3,"names":["_changeCase","require","_coreData","_data","_icons","_hooks","_htmlEntities","_initBlock","_interopRequireDefault","_edit","_variations","metadata","exports","$schema","apiVersion","name","title","category","description","textdomain","attributes","slug","type","theme","tagName","area","supports","align","html","reusable","renaming","blockVisibility","interactivity","clientNavigation","editorStyle","settings","icon","symbolFilled","__experimentalLabel","getCurrentTheme","getEditedEntityRecord","select","coreDataStore","entity","stylesheet","decodeEntities","capitalCase","edit","init","addFilter","enhanceTemplatePartVariations","DISALLOWED_PARENTS","canInsert","blockType","rootClientId","getBlock","getBlockParentsByBlockName","disallowedParentType","hasDisallowedParent","length","initBlock"],"sources":["@wordpress/block-library/src/template-part/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { capitalCase } from 'change-case';\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';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\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 { getCurrentTheme, getEditedEntityRecord } =\n\t\t\tselect( coreDataStore );\n\t\tconst entity = getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\t'wp_template_part',\n\t\t\t( theme || getCurrentTheme()?.stylesheet ) + '//' + slug\n\t\t);\n\t\tif ( ! entity ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn (\n\t\t\tdecodeEntities( entity.title ) || capitalCase( entity.slug || '' )\n\t\t);\n\t},\n\tedit,\n};\n\nexport const init = () => {\n\taddFilter(\n\t\t'blocks.registerBlockType',\n\t\t'core/template-part',\n\t\tenhanceTemplatePartVariations\n\t);\n\n\t// Prevent adding template parts inside post templates.\n\tconst DISALLOWED_PARENTS = [ 'core/post-template', 'core/post-content' ];\n\taddFilter(\n\t\t'blockEditor.__unstableCanInsertBlockType',\n\t\t'core/block-library/removeTemplatePartsFromPostTemplates',\n\t\t(\n\t\t\tcanInsert,\n\t\t\tblockType,\n\t\t\trootClientId,\n\t\t\t{ getBlock, getBlockParentsByBlockName }\n\t\t) => {\n\t\t\tif ( blockType.name !== 'core/template-part' ) {\n\t\t\t\treturn canInsert;\n\t\t\t}\n\n\t\t\tfor ( const disallowedParentType of DISALLOWED_PARENTS ) {\n\t\t\t\tconst hasDisallowedParent =\n\t\t\t\t\tgetBlock( rootClientId )?.name === disallowedParentType ||\n\t\t\t\t\tgetBlockParentsByBlockName(\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\tdisallowedParentType\n\t\t\t\t\t).length;\n\t\t\t\tif ( hasDisallowedParent ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t);\n\n\treturn initBlock( { name, metadata, settings } );\n};\n"],"mappings":"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","ignoreList":[]}
|