@wordpress/block-library 9.31.0 → 9.31.1-next.233ccab9b.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/build/accordion/edit.js +6 -5
- package/build/accordion/edit.js.map +1 -1
- package/build/accordion/index.js +39 -4
- package/build/accordion/index.js.map +1 -1
- package/build/accordion/save.js +2 -19
- package/build/accordion/save.js.map +1 -1
- package/build/accordion/view.js +50 -16
- package/build/accordion/view.js.map +1 -1
- package/build/accordion-content/index.js +17 -3
- package/build/accordion-content/index.js.map +1 -1
- package/build/accordion-content/save.js +5 -7
- package/build/accordion-content/save.js.map +1 -1
- package/build/accordion-header/edit.js +13 -47
- package/build/accordion-header/edit.js.map +1 -1
- package/build/accordion-header/index.js +6 -11
- package/build/accordion-header/index.js.map +1 -1
- package/build/accordion-header/save.js +11 -44
- package/build/accordion-header/save.js.map +1 -1
- package/build/accordion-panel/edit.js +2 -1
- package/build/accordion-panel/edit.js.map +1 -1
- package/build/accordion-panel/index.js +3 -3
- package/build/accordion-panel/index.js.map +1 -1
- package/build/accordion-panel/save.js +3 -1
- package/build/accordion-panel/save.js.map +1 -1
- package/build/avatar/hooks.js +7 -17
- package/build/avatar/hooks.js.map +1 -1
- package/build/group/variations.js +3 -4
- package/build/group/variations.js.map +1 -1
- package/build/navigation/edit/leaf-more-menu.js +6 -1
- package/build/navigation/edit/leaf-more-menu.js.map +1 -1
- package/build/navigation/index.js +2 -1
- package/build/navigation/index.js.map +1 -1
- package/build/navigation-link/index.js +2 -1
- package/build/navigation-link/index.js.map +1 -1
- package/build/navigation-submenu/edit.js +2 -4
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/navigation-submenu/index.js +2 -1
- package/build/navigation-submenu/index.js.map +1 -1
- package/build/page-list/index.js +2 -1
- package/build/page-list/index.js.map +1 -1
- package/build/post-author/edit.js +7 -6
- package/build/post-author/edit.js.map +1 -1
- package/build/post-date/edit.js +16 -3
- package/build/post-date/edit.js.map +1 -1
- package/build/post-time-to-read/edit.js +111 -11
- package/build/post-time-to-read/edit.js.map +1 -1
- package/build/post-time-to-read/index.js +17 -1
- package/build/post-time-to-read/index.js.map +1 -1
- package/build/table-of-contents/index.js +1 -0
- package/build/table-of-contents/index.js.map +1 -1
- package/build/term-description/edit.js +18 -2
- package/build/term-description/edit.js.map +1 -1
- package/build/term-description/index.js +1 -0
- package/build/term-description/index.js.map +1 -1
- package/build/term-description/use-term-description.js +85 -0
- package/build/term-description/use-term-description.js.map +1 -0
- package/build/term-template/edit.js +11 -7
- package/build/term-template/edit.js.map +1 -1
- package/build/term-template/index.js +1 -1
- package/build/terms-query/index.js +8 -2
- package/build/terms-query/index.js.map +1 -1
- package/build/terms-query/inspector-controls/advanced-controls.js +51 -0
- package/build/terms-query/inspector-controls/advanced-controls.js.map +1 -0
- package/build/terms-query/inspector-controls/display-options.js +87 -0
- package/build/terms-query/inspector-controls/display-options.js.map +1 -0
- package/build/terms-query/inspector-controls/empty-terms-control.js +38 -0
- package/build/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
- package/build/terms-query/inspector-controls/hierarchy-control.js +40 -0
- package/build/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
- package/build/terms-query/inspector-controls/index.js +127 -0
- package/build/terms-query/inspector-controls/index.js.map +1 -0
- package/build/terms-query/inspector-controls/max-terms-control.js +50 -0
- package/build/terms-query/inspector-controls/max-terms-control.js.map +1 -0
- package/build/terms-query/inspector-controls/ordering-controls.js +57 -0
- package/build/terms-query/inspector-controls/ordering-controls.js.map +1 -0
- package/build/terms-query/inspector-controls/taxonomy-control.js +52 -0
- package/build/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
- package/build/utils/hooks.js +15 -0
- package/build/utils/hooks.js.map +1 -1
- package/build-module/accordion/edit.js +6 -5
- package/build-module/accordion/edit.js.map +1 -1
- package/build-module/accordion/index.js +40 -4
- package/build-module/accordion/index.js.map +1 -1
- package/build-module/accordion/save.js +2 -17
- package/build-module/accordion/save.js.map +1 -1
- package/build-module/accordion/view.js +51 -17
- package/build-module/accordion/view.js.map +1 -1
- package/build-module/accordion-content/index.js +17 -3
- package/build-module/accordion-content/index.js.map +1 -1
- package/build-module/accordion-content/save.js +5 -7
- package/build-module/accordion-content/save.js.map +1 -1
- package/build-module/accordion-header/edit.js +14 -45
- package/build-module/accordion-header/edit.js.map +1 -1
- package/build-module/accordion-header/index.js +6 -11
- package/build-module/accordion-header/index.js.map +1 -1
- package/build-module/accordion-header/save.js +12 -42
- package/build-module/accordion-header/save.js.map +1 -1
- package/build-module/accordion-panel/edit.js +2 -1
- package/build-module/accordion-panel/edit.js.map +1 -1
- package/build-module/accordion-panel/index.js +3 -3
- package/build-module/accordion-panel/index.js.map +1 -1
- package/build-module/accordion-panel/save.js +3 -1
- package/build-module/accordion-panel/save.js.map +1 -1
- package/build-module/avatar/hooks.js +5 -15
- package/build-module/avatar/hooks.js.map +1 -1
- package/build-module/group/variations.js +3 -4
- package/build-module/group/variations.js.map +1 -1
- package/build-module/navigation/edit/leaf-more-menu.js +6 -1
- package/build-module/navigation/edit/leaf-more-menu.js.map +1 -1
- package/build-module/navigation/index.js +2 -1
- package/build-module/navigation/index.js.map +1 -1
- package/build-module/navigation-link/index.js +2 -1
- package/build-module/navigation-link/index.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +1 -3
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/navigation-submenu/index.js +2 -1
- package/build-module/navigation-submenu/index.js.map +1 -1
- package/build-module/page-list/index.js +2 -1
- package/build-module/page-list/index.js.map +1 -1
- package/build-module/post-author/edit.js +8 -7
- package/build-module/post-author/edit.js.map +1 -1
- package/build-module/post-date/edit.js +17 -4
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/post-time-to-read/edit.js +112 -14
- package/build-module/post-time-to-read/edit.js.map +1 -1
- package/build-module/post-time-to-read/index.js +17 -1
- package/build-module/post-time-to-read/index.js.map +1 -1
- package/build-module/table-of-contents/index.js +1 -0
- package/build-module/table-of-contents/index.js.map +1 -1
- package/build-module/term-description/edit.js +18 -2
- package/build-module/term-description/edit.js.map +1 -1
- package/build-module/term-description/index.js +1 -0
- package/build-module/term-description/index.js.map +1 -1
- package/build-module/term-description/use-term-description.js +79 -0
- package/build-module/term-description/use-term-description.js.map +1 -0
- package/build-module/term-template/edit.js +11 -7
- package/build-module/term-template/edit.js.map +1 -1
- package/build-module/term-template/index.js +1 -1
- package/build-module/terms-query/index.js +8 -2
- package/build-module/terms-query/index.js.map +1 -1
- package/build-module/terms-query/inspector-controls/advanced-controls.js +44 -0
- package/build-module/terms-query/inspector-controls/advanced-controls.js.map +1 -0
- package/build-module/terms-query/inspector-controls/display-options.js +80 -0
- package/build-module/terms-query/inspector-controls/display-options.js.map +1 -0
- package/build-module/terms-query/inspector-controls/empty-terms-control.js +31 -0
- package/build-module/terms-query/inspector-controls/empty-terms-control.js.map +1 -0
- package/build-module/terms-query/inspector-controls/hierarchy-control.js +33 -0
- package/build-module/terms-query/inspector-controls/hierarchy-control.js.map +1 -0
- package/build-module/terms-query/inspector-controls/index.js +119 -0
- package/build-module/terms-query/inspector-controls/index.js.map +1 -0
- package/build-module/terms-query/inspector-controls/max-terms-control.js +43 -0
- package/build-module/terms-query/inspector-controls/max-terms-control.js.map +1 -0
- package/build-module/terms-query/inspector-controls/ordering-controls.js +50 -0
- package/build-module/terms-query/inspector-controls/ordering-controls.js.map +1 -0
- package/build-module/terms-query/inspector-controls/taxonomy-control.js +45 -0
- package/build-module/terms-query/inspector-controls/taxonomy-control.js.map +1 -0
- package/build-module/utils/hooks.js +14 -0
- package/build-module/utils/hooks.js.map +1 -1
- package/build-style/accordion-content/style-rtl.css +155 -0
- package/build-style/accordion-content/style.css +155 -0
- package/build-style/{accordion → accordion-header}/style-rtl.css +12 -51
- package/build-style/{accordion → accordion-header}/style.css +12 -51
- package/build-style/accordion-panel/style-rtl.css +140 -0
- package/build-style/accordion-panel/style.css +140 -0
- package/build-style/style-rtl.css +25 -38
- package/build-style/style.css +25 -38
- package/package.json +35 -35
- package/src/accordion/block.json +16 -3
- package/src/accordion/edit.js +39 -34
- package/src/accordion/index.js +35 -1
- package/src/accordion/index.php +3 -19
- package/src/accordion/save.js +2 -16
- package/src/accordion/view.js +64 -15
- package/src/accordion-content/block.json +17 -3
- package/src/accordion-content/index.php +3 -2
- package/src/accordion-content/save.js +4 -10
- package/src/accordion-content/style.scss +21 -0
- package/src/accordion-header/block.json +6 -11
- package/src/accordion-header/edit.js +17 -61
- package/src/accordion-header/save.js +24 -54
- package/src/accordion-header/style.scss +39 -0
- package/src/accordion-panel/block.json +3 -3
- package/src/accordion-panel/edit.js +1 -0
- package/src/accordion-panel/save.js +3 -1
- package/src/accordion-panel/style.scss +8 -0
- package/src/avatar/hooks.js +5 -10
- package/src/comments/index.php +2 -2
- package/src/group/variations.js +3 -14
- package/src/navigation/block.json +2 -1
- package/src/navigation/edit/leaf-more-menu.js +9 -1
- package/src/navigation/index.php +2 -2
- package/src/navigation-link/block.json +2 -1
- package/src/navigation-submenu/block.json +2 -1
- package/src/navigation-submenu/edit.js +1 -4
- package/src/page-list/block.json +2 -1
- package/src/post-author/edit.js +16 -7
- package/src/post-date/edit.js +16 -16
- package/src/post-time-to-read/block.json +17 -1
- package/src/post-time-to-read/edit.js +167 -20
- package/src/post-time-to-read/index.php +47 -15
- package/src/social-link/index.php +2 -2
- package/src/style.scss +3 -1
- package/src/table-of-contents/block.json +1 -0
- package/src/table-of-contents/index.php +44 -0
- package/src/term-description/block.json +1 -0
- package/src/term-description/edit.js +18 -3
- package/src/term-description/use-term-description.js +109 -0
- package/src/term-template/block.json +1 -1
- package/src/term-template/edit.js +11 -6
- package/src/term-template/index.php +13 -7
- package/src/terms-query/block.json +8 -2
- package/src/terms-query/inspector-controls/advanced-controls.js +37 -0
- package/src/terms-query/inspector-controls/display-options.js +87 -0
- package/src/terms-query/inspector-controls/empty-terms-control.js +30 -0
- package/src/terms-query/inspector-controls/hierarchy-control.js +30 -0
- package/src/terms-query/inspector-controls/index.js +137 -0
- package/src/terms-query/inspector-controls/max-terms-control.js +44 -0
- package/src/terms-query/inspector-controls/ordering-controls.js +55 -0
- package/src/terms-query/inspector-controls/taxonomy-control.js +41 -0
- package/src/utils/hooks.js +9 -0
- package/build/accordion-content/icons.js +0 -30
- package/build/accordion-content/icons.js.map +0 -1
- package/build/terms-query/inspector-controls.js +0 -231
- package/build/terms-query/inspector-controls.js.map +0 -1
- package/build-module/accordion-content/icons.js +0 -22
- package/build-module/accordion-content/icons.js.map +0 -1
- package/build-module/terms-query/inspector-controls.js +0 -224
- package/build-module/terms-query/inspector-controls.js.map +0 -1
- package/src/accordion/style.scss +0 -82
- package/src/accordion-content/icons.js +0 -23
- package/src/terms-query/inspector-controls.js +0 -239
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","memo","useMemo","useState","useSelect","useDispatch","layout","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","__experimentalBlockVariationPicker","BlockVariationPicker","useBlockProps","useInnerBlocksProps","store","blockEditorStore","useEntityRecords","createBlocksFromInnerBlocksTemplate","blocksStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TEMPLATE","type","orientation","style","spacing","blockGap","metadata","name","bindings","content","source","args","key","placeholder","TermTemplateInnerBlocks","classList","innerBlocksProps","className","template","__unstableDisableLayoutClassNames","TermTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","display","undefined","tabIndex","role","onClick","onKeyPress","MemoizedTermTemplateBlockPreview","buildTermsTree","terms","termsById","rootTerms","forEach","term","id","children","parent","push","renderTermNode","termNode","renderTerm","length","map","child","isActiveTerm","termId","activeBlockContextId","blockContexts","TermTemplateEdit","clientId","setAttributes","context","termQuery","taxonomy","order","orderBy","hideEmpty","hierarchical","perPage","__unstableLayoutClassNames","replaceInnerBlocks","queryArgs","orderby","hide_empty","per_page","records","isResolving","filteredTerms","filter","variations","defaultVariation","select","getBlocks","getBlockVariations","getDefaultBlockVariation","blockProps","termData","icon","label","instructions","onSelect","nextVariation","attributes","innerBlocks","allowSkip","blockContext","value","slice"],"sources":["@wordpress/block-library/src/term-template/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\t__experimentalBlockVariationPicker as BlockVariationPicker,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/group',\n\t\t{\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\torientation: 'horizontal',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tblockGap: '0.5rem',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\tname: __( 'Term Name with Count' ),\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Name' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'name',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tplaceholder: __( '(count)' ),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Count' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'count',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\n\nfunction TermTemplateInnerBlocks( { classList } ) {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: clsx( 'wp-block-term', classList ) },\n\t\t{ template: TEMPLATE, __unstableDisableLayoutClassNames: true }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction TermTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tclassList,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: clsx( 'wp-block-term', classList ),\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\n// Prevent re-rendering of the block preview when the terms data changes.\nconst MemoizedTermTemplateBlockPreview = memo( TermTemplateBlockPreview );\n\n/**\n * Builds a hierarchical tree structure from flat terms array.\n *\n * @param {Array} terms Array of term objects.\n * @return {Array} Tree structure with parent/child relationships.\n */\nfunction buildTermsTree( terms ) {\n\tconst termsById = {};\n\tconst rootTerms = [];\n\n\tterms.forEach( ( term ) => {\n\t\ttermsById[ term.id ] = {\n\t\t\tterm,\n\t\t\tchildren: [],\n\t\t};\n\t} );\n\n\tterms.forEach( ( term ) => {\n\t\tif ( term.parent && termsById[ term.parent ] ) {\n\t\t\ttermsById[ term.parent ].children.push( termsById[ term.id ] );\n\t\t} else {\n\t\t\trootTerms.push( termsById[ term.id ] );\n\t\t}\n\t} );\n\n\treturn rootTerms;\n}\n\n/**\n * Renders a single term node and its children recursively.\n *\n * @param {Object} termNode Term node with term object and children.\n * @param {Function} renderTerm Function to render individual terms.\n * @return {JSX.Element} Rendered term node with children.\n */\nfunction renderTermNode( termNode, renderTerm ) {\n\treturn (\n\t\t<li className=\"wp-block-term\">\n\t\t\t{ renderTerm( termNode.term ) }\n\t\t\t{ termNode.children.length > 0 && (\n\t\t\t\t<ul>\n\t\t\t\t\t{ termNode.children.map( ( child ) =>\n\t\t\t\t\t\trenderTermNode( child, renderTerm )\n\t\t\t\t\t) }\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\n/**\n * Checks if a term is the currently active term.\n *\n * @param {number} termId The term ID to check.\n * @param {number} activeBlockContextId The currently active block context ID.\n * @param {Array} blockContexts Array of block contexts.\n * @return {boolean} True if the term is active, false otherwise.\n */\nfunction isActiveTerm( termId, activeBlockContextId, blockContexts ) {\n\treturn termId === ( activeBlockContextId || blockContexts[ 0 ]?.termId );\n}\n\nexport default function TermTemplateEdit( {\n\tclientId,\n\tsetAttributes,\n\tcontext: {\n\t\ttermQuery: {\n\t\t\ttaxonomy,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\thideEmpty,\n\t\t\thierarchical,\n\t\t\tparent,\n\t\t\tperPage = 10,\n\t\t} = {},\n\t},\n\t__unstableLayoutClassNames,\n} ) {\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst queryArgs = {\n\t\torder,\n\t\torderby: orderBy,\n\t\thide_empty: hideEmpty,\n\t\t// To preview the data the closest to the frontend, we fetch the largest number of terms\n\t\t// and limit them during rendering. This is because WP_Term_Query fetches data in hierarchical manner,\n\t\t// while in editor we build the hierarchy manually. It also allows us to avoid re-fetching data when max terms changes.\n\t\tper_page: 100,\n\t};\n\n\tconst { records: terms, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\tqueryArgs\n\t);\n\n\t// Filter to show only top-level terms if \"Show only top-level terms\" is enabled.\n\tconst filteredTerms = useMemo( () => {\n\t\tif ( ! terms || parent !== 0 ) {\n\t\t\treturn terms;\n\t\t}\n\t\treturn terms.filter( ( term ) => ! term.parent );\n\t}, [ terms, parent ] );\n\n\tconst { blocks, variations, defaultVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t\tvariations: getBlockVariations( 'core/term-template', 'block' ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation(\n\t\t\t\t\t'core/term-template',\n\t\t\t\t\t'block'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: __unstableLayoutClassNames,\n\t} );\n\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tfilteredTerms?.map( ( term ) => ( {\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId: term.id,\n\t\t\t\tclassList: `term-${ term.id }`,\n\t\t\t\ttermData: term,\n\t\t\t} ) ),\n\t\t[ filteredTerms, taxonomy ]\n\t);\n\n\t// Show variation picker if no blocks exist.\n\tif ( ! blocks?.length ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<BlockVariationPicker\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tlabel={ __( 'Term Template' ) }\n\t\t\t\t\tvariations={ variations }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Choose a layout for displaying terms:'\n\t\t\t\t\t) }\n\t\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttrue\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\tallowSkip\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isResolving ) {\n\t\treturn (\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t);\n\t}\n\n\tif ( ! filteredTerms?.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No terms found.' ) }</p>;\n\t}\n\n\tconst renderTerm = ( term ) => {\n\t\tconst blockContext = {\n\t\t\ttaxonomy,\n\t\t\ttermId: term.id,\n\t\t\tclassList: `term-${ term.id }`,\n\t\t\ttermData: term,\n\t\t};\n\n\t\treturn (\n\t\t\t<BlockContextProvider key={ term.id } value={ blockContext }>\n\t\t\t\t{ isActiveTerm(\n\t\t\t\t\tterm.id,\n\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\tblockContexts\n\t\t\t\t) ? (\n\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tblockContextId={ term.id }\n\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\tisHidden={ isActiveTerm(\n\t\t\t\t\t\tterm.id,\n\t\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\t\tblockContexts\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</BlockContextProvider>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ hierarchical\n\t\t\t\t\t? buildTermsTree( filteredTerms ).map( ( termNode ) =>\n\t\t\t\t\t\t\trenderTermNode( termNode, renderTerm )\n\t\t\t\t\t )\n\t\t\t\t\t: blockContexts &&\n\t\t\t\t\t blockContexts\n\t\t\t\t\t\t\t.slice( 0, perPage )\n\t\t\t\t\t\t\t.map( ( blockContext ) => (\n\t\t\t\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\t\t\t\tkey={ blockContext.termId }\n\t\t\t\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ blockContext.termId ===\n\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId ) ? (\n\t\t\t\t\t\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tblockContextId={ blockContext.termId }\n\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId={\n\t\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\t\t\t\tblockContext.termId ===\n\t\t\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","memo","useMemo","useState","useSelect","useDispatch","layout","__","BlockContextProvider","__experimentalUseBlockPreview","useBlockPreview","__experimentalBlockVariationPicker","BlockVariationPicker","useBlockProps","useInnerBlocksProps","store","blockEditorStore","useEntityRecords","createBlocksFromInnerBlocksTemplate","blocksStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","TEMPLATE","type","orientation","style","spacing","blockGap","metadata","name","bindings","content","source","args","key","placeholder","TermTemplateInnerBlocks","classList","innerBlocksProps","className","template","__unstableDisableLayoutClassNames","TermTemplateBlockPreview","blocks","blockContextId","isHidden","setActiveBlockContextId","blockPreviewProps","props","handleOnClick","display","undefined","tabIndex","role","onClick","onKeyPress","MemoizedTermTemplateBlockPreview","buildTermsTree","terms","termsById","rootTerms","forEach","term","id","children","parent","push","renderTermNode","termNode","renderTerm","length","map","child","isActiveTerm","termId","activeBlockContextId","blockContexts","TermTemplateEdit","clientId","setAttributes","context","termsToShow","termQuery","taxonomy","order","orderBy","hideEmpty","hierarchical","perPage","__unstableLayoutClassNames","replaceInnerBlocks","queryArgs","orderby","hide_empty","per_page","records","isResolving","filteredTerms","filter","variations","defaultVariation","select","getBlocks","getBlockVariations","getDefaultBlockVariation","blockProps","termData","icon","label","instructions","onSelect","nextVariation","attributes","innerBlocks","allowSkip","blockContext","value","slice"],"sources":["@wordpress/block-library/src/term-template/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { layout } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBlockContextProvider,\n\t__experimentalUseBlockPreview as useBlockPreview,\n\t__experimentalBlockVariationPicker as BlockVariationPicker,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEntityRecords } from '@wordpress/core-data';\nimport {\n\tcreateBlocksFromInnerBlocksTemplate,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\n\nconst TEMPLATE = [\n\t[\n\t\t'core/group',\n\t\t{\n\t\t\tlayout: {\n\t\t\t\ttype: 'flex',\n\t\t\t\torientation: 'horizontal',\n\t\t\t},\n\t\t\tstyle: {\n\t\t\t\tspacing: {\n\t\t\t\t\tblockGap: '0.5rem',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmetadata: {\n\t\t\t\tname: __( 'Term Name with Count' ),\n\t\t\t},\n\t\t},\n\t\t[\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Name' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'name',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\t[\n\t\t\t\t'core/paragraph',\n\t\t\t\t{\n\t\t\t\t\tplaceholder: __( '(count)' ),\n\t\t\t\t\tmetadata: {\n\t\t\t\t\t\tname: __( 'Term Count' ),\n\t\t\t\t\t\tbindings: {\n\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\tsource: 'core/term-data',\n\t\t\t\t\t\t\t\targs: {\n\t\t\t\t\t\t\t\t\tkey: 'count',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t],\n\t],\n];\n\nfunction TermTemplateInnerBlocks( { classList } ) {\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{ className: clsx( 'wp-block-term', classList ) },\n\t\t{ template: TEMPLATE, __unstableDisableLayoutClassNames: true }\n\t);\n\treturn <li { ...innerBlocksProps } />;\n}\n\nfunction TermTemplateBlockPreview( {\n\tblocks,\n\tblockContextId,\n\tclassList,\n\tisHidden,\n\tsetActiveBlockContextId,\n} ) {\n\tconst blockPreviewProps = useBlockPreview( {\n\t\tblocks,\n\t\tprops: {\n\t\t\tclassName: clsx( 'wp-block-term', classList ),\n\t\t},\n\t} );\n\n\tconst handleOnClick = () => {\n\t\tsetActiveBlockContextId( blockContextId );\n\t};\n\n\tconst style = {\n\t\tdisplay: isHidden ? 'none' : undefined,\n\t};\n\n\treturn (\n\t\t<li\n\t\t\t{ ...blockPreviewProps }\n\t\t\ttabIndex={ 0 }\n\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-to-interactive-role\n\t\t\trole=\"button\"\n\t\t\tonClick={ handleOnClick }\n\t\t\tonKeyPress={ handleOnClick }\n\t\t\tstyle={ style }\n\t\t/>\n\t);\n}\n\n// Prevent re-rendering of the block preview when the terms data changes.\nconst MemoizedTermTemplateBlockPreview = memo( TermTemplateBlockPreview );\n\n/**\n * Builds a hierarchical tree structure from flat terms array.\n *\n * @param {Array} terms Array of term objects.\n * @return {Array} Tree structure with parent/child relationships.\n */\nfunction buildTermsTree( terms ) {\n\tconst termsById = {};\n\tconst rootTerms = [];\n\n\tterms.forEach( ( term ) => {\n\t\ttermsById[ term.id ] = {\n\t\t\tterm,\n\t\t\tchildren: [],\n\t\t};\n\t} );\n\n\tterms.forEach( ( term ) => {\n\t\tif ( term.parent && termsById[ term.parent ] ) {\n\t\t\ttermsById[ term.parent ].children.push( termsById[ term.id ] );\n\t\t} else {\n\t\t\trootTerms.push( termsById[ term.id ] );\n\t\t}\n\t} );\n\n\treturn rootTerms;\n}\n\n/**\n * Renders a single term node and its children recursively.\n *\n * @param {Object} termNode Term node with term object and children.\n * @param {Function} renderTerm Function to render individual terms.\n * @return {JSX.Element} Rendered term node with children.\n */\nfunction renderTermNode( termNode, renderTerm ) {\n\treturn (\n\t\t<li className=\"wp-block-term\">\n\t\t\t{ renderTerm( termNode.term ) }\n\t\t\t{ termNode.children.length > 0 && (\n\t\t\t\t<ul>\n\t\t\t\t\t{ termNode.children.map( ( child ) =>\n\t\t\t\t\t\trenderTermNode( child, renderTerm )\n\t\t\t\t\t) }\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\n/**\n * Checks if a term is the currently active term.\n *\n * @param {number} termId The term ID to check.\n * @param {number} activeBlockContextId The currently active block context ID.\n * @param {Array} blockContexts Array of block contexts.\n * @return {boolean} True if the term is active, false otherwise.\n */\nfunction isActiveTerm( termId, activeBlockContextId, blockContexts ) {\n\treturn termId === ( activeBlockContextId || blockContexts[ 0 ]?.termId );\n}\n\nexport default function TermTemplateEdit( {\n\tclientId,\n\tsetAttributes,\n\tcontext: {\n\t\ttermsToShow,\n\t\ttermQuery: {\n\t\t\ttaxonomy,\n\t\t\torder,\n\t\t\torderBy,\n\t\t\thideEmpty,\n\t\t\thierarchical,\n\t\t\tperPage = 10,\n\t\t} = {},\n\t},\n\t__unstableLayoutClassNames,\n} ) {\n\tconst [ activeBlockContextId, setActiveBlockContextId ] = useState();\n\tconst { replaceInnerBlocks } = useDispatch( blockEditorStore );\n\n\tconst queryArgs = {\n\t\torder,\n\t\torderby: orderBy,\n\t\thide_empty: hideEmpty,\n\t\t// To preview the data the closest to the frontend, we fetch the largest number of terms\n\t\t// and limit them during rendering. This is because WP_Term_Query fetches data in hierarchical manner,\n\t\t// while in editor we build the hierarchy manually. It also allows us to avoid re-fetching data when max terms changes.\n\t\tper_page: 100,\n\t};\n\n\tconst { records: terms, isResolving } = useEntityRecords(\n\t\t'taxonomy',\n\t\ttaxonomy,\n\t\tqueryArgs\n\t);\n\n\tconst filteredTerms = useMemo( () => {\n\t\tif ( ! terms ) {\n\t\t\treturn [];\n\t\t}\n\t\tif ( termsToShow === 'top-level' ) {\n\t\t\treturn terms.filter( ( term ) => ! term.parent );\n\t\t}\n\t\tif ( termsToShow === 'subterms' ) {\n\t\t\treturn terms.filter( ( term ) => term.parent );\n\t\t}\n\t\treturn terms;\n\t}, [ terms, termsToShow ] );\n\n\tconst { blocks, variations, defaultVariation } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlocks } = select( blockEditorStore );\n\t\t\tconst { getBlockVariations, getDefaultBlockVariation } =\n\t\t\t\tselect( blocksStore );\n\n\t\t\treturn {\n\t\t\t\tblocks: getBlocks( clientId ),\n\t\t\t\tvariations: getBlockVariations( 'core/term-template', 'block' ),\n\t\t\t\tdefaultVariation: getDefaultBlockVariation(\n\t\t\t\t\t'core/term-template',\n\t\t\t\t\t'block'\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: __unstableLayoutClassNames,\n\t} );\n\n\tconst blockContexts = useMemo(\n\t\t() =>\n\t\t\tfilteredTerms?.map( ( term ) => ( {\n\t\t\t\ttaxonomy,\n\t\t\t\ttermId: term.id,\n\t\t\t\tclassList: `term-${ term.id }`,\n\t\t\t\ttermData: term,\n\t\t\t} ) ),\n\t\t[ filteredTerms, taxonomy ]\n\t);\n\n\t// Show variation picker if no blocks exist.\n\tif ( ! blocks?.length ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<BlockVariationPicker\n\t\t\t\t\ticon={ layout }\n\t\t\t\t\tlabel={ __( 'Term Template' ) }\n\t\t\t\t\tvariations={ variations }\n\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t'Choose a layout for displaying terms:'\n\t\t\t\t\t) }\n\t\t\t\t\tonSelect={ ( nextVariation = defaultVariation ) => {\n\t\t\t\t\t\tif ( nextVariation.attributes ) {\n\t\t\t\t\t\t\tsetAttributes( nextVariation.attributes );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( nextVariation.innerBlocks ) {\n\t\t\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tnextVariation.innerBlocks\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\ttrue\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\tallowSkip\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tif ( isResolving ) {\n\t\treturn (\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t\t<li className=\"wp-block-term term-loading\">\n\t\t\t\t\t<div className=\"term-loading-placeholder\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t);\n\t}\n\n\tif ( ! filteredTerms?.length ) {\n\t\treturn <p { ...blockProps }> { __( 'No terms found.' ) }</p>;\n\t}\n\n\tconst renderTerm = ( term ) => {\n\t\tconst blockContext = {\n\t\t\ttaxonomy,\n\t\t\ttermId: term.id,\n\t\t\tclassList: `term-${ term.id }`,\n\t\t\ttermData: term,\n\t\t};\n\n\t\treturn (\n\t\t\t<BlockContextProvider key={ term.id } value={ blockContext }>\n\t\t\t\t{ isActiveTerm(\n\t\t\t\t\tterm.id,\n\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\tblockContexts\n\t\t\t\t) ? (\n\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tblockContextId={ term.id }\n\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\tsetActiveBlockContextId={ setActiveBlockContextId }\n\t\t\t\t\tisHidden={ isActiveTerm(\n\t\t\t\t\t\tterm.id,\n\t\t\t\t\t\tactiveBlockContextId,\n\t\t\t\t\t\tblockContexts\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</BlockContextProvider>\n\t\t);\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ul { ...blockProps }>\n\t\t\t\t{ hierarchical\n\t\t\t\t\t? buildTermsTree( filteredTerms ).map( ( termNode ) =>\n\t\t\t\t\t\t\trenderTermNode( termNode, renderTerm )\n\t\t\t\t\t )\n\t\t\t\t\t: blockContexts &&\n\t\t\t\t\t blockContexts\n\t\t\t\t\t\t\t.slice( 0, perPage )\n\t\t\t\t\t\t\t.map( ( blockContext ) => (\n\t\t\t\t\t\t\t\t<BlockContextProvider\n\t\t\t\t\t\t\t\t\tkey={ blockContext.termId }\n\t\t\t\t\t\t\t\t\tvalue={ blockContext }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ blockContext.termId ===\n\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId ) ? (\n\t\t\t\t\t\t\t\t\t\t<TermTemplateInnerBlocks\n\t\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t) : null }\n\t\t\t\t\t\t\t\t\t<MemoizedTermTemplateBlockPreview\n\t\t\t\t\t\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\t\t\t\t\t\tblockContextId={ blockContext.termId }\n\t\t\t\t\t\t\t\t\t\tclassList={ blockContext.classList }\n\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId={\n\t\t\t\t\t\t\t\t\t\t\tsetActiveBlockContextId\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisHidden={\n\t\t\t\t\t\t\t\t\t\t\tblockContext.termId ===\n\t\t\t\t\t\t\t\t\t\t\t( activeBlockContextId ||\n\t\t\t\t\t\t\t\t\t\t\t\tblockContexts[ 0 ]?.termId )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</BlockContextProvider>\n\t\t\t\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@ const metadata = {
|
|
|
17
17
|
ancestor: ["core/terms-query"],
|
|
18
18
|
description: "Contains the block elements used to render a taxonomy term, like the name, description, and more.",
|
|
19
19
|
textdomain: "default",
|
|
20
|
-
usesContext: ["termQuery"],
|
|
20
|
+
usesContext: ["termQuery", "termsToShow"],
|
|
21
21
|
attributes: {
|
|
22
22
|
namespace: {
|
|
23
23
|
type: "string"
|
|
@@ -32,10 +32,15 @@ const metadata = {
|
|
|
32
32
|
hideEmpty: true,
|
|
33
33
|
include: [],
|
|
34
34
|
exclude: [],
|
|
35
|
-
parent:
|
|
35
|
+
parent: false,
|
|
36
36
|
hierarchical: false
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
|
+
termsToShow: {
|
|
40
|
+
type: "string",
|
|
41
|
+
"default": "all",
|
|
42
|
+
"enum": ["all", "top-level", "subterms"]
|
|
43
|
+
},
|
|
39
44
|
tagName: {
|
|
40
45
|
type: "string",
|
|
41
46
|
"default": "div"
|
|
@@ -46,7 +51,8 @@ const metadata = {
|
|
|
46
51
|
},
|
|
47
52
|
providesContext: {
|
|
48
53
|
termQueryId: "termQueryId",
|
|
49
|
-
termQuery: "termQuery"
|
|
54
|
+
termQuery: "termQuery",
|
|
55
|
+
termsToShow: "termsToShow"
|
|
50
56
|
},
|
|
51
57
|
supports: {
|
|
52
58
|
align: ["wide", "full"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["loop","icon","initBlock","metadata","$schema","apiVersion","__experimental","name","title","category","description","keywords","textdomain","attributes","termQueryId","type","termQuery","perPage","pages","taxonomy","order","orderBy","hideEmpty","include","exclude","parent","hierarchical","tagName","namespace","providesContext","supports","align","html","interactivity","allowedBlocks","style","edit","save","settings","example","init"],"sources":["@wordpress/block-library/src/terms-query/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,IAAIC,IAAI,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,WAAA;MAAAC,IAAA;IAAA;IAAAC,SAAA;MAAAD,IAAA;MAAA;QAAAE,OAAA;QAAAC,KAAA;QAAAC,QAAA;QAAAC,KAAA;QAAAC,OAAA;QAAAC,SAAA;QAAAC,OAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,YAAA;MAAA;IAAA;IAAAC,
|
|
1
|
+
{"version":3,"names":["loop","icon","initBlock","metadata","$schema","apiVersion","__experimental","name","title","category","description","keywords","textdomain","attributes","termQueryId","type","termQuery","perPage","pages","taxonomy","order","orderBy","hideEmpty","include","exclude","parent","hierarchical","termsToShow","tagName","namespace","providesContext","supports","align","html","interactivity","allowedBlocks","style","edit","save","settings","example","init"],"sources":["@wordpress/block-library/src/terms-query/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { loop as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport metadata from './block.json';\nimport edit from './edit';\nimport save from './save';\n\nconst { name } = metadata;\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\tedit,\n\tsave,\n\texample: {},\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,IAAI,IAAIC,IAAI,QAAQ,kBAAkB;;AAE/C;AACA;AACA;AACA,OAAOC,SAAS,MAAM,qBAAqB;AAAC,MAAAC,QAAA;EAAAC,OAAA;EAAAC,UAAA;EAAAC,cAAA;EAAAC,IAAA;EAAAC,KAAA;EAAAC,QAAA;EAAAC,WAAA;EAAAC,QAAA;EAAAC,UAAA;EAAAC,UAAA;IAAAC,WAAA;MAAAC,IAAA;IAAA;IAAAC,SAAA;MAAAD,IAAA;MAAA;QAAAE,OAAA;QAAAC,KAAA;QAAAC,QAAA;QAAAC,KAAA;QAAAC,OAAA;QAAAC,SAAA;QAAAC,OAAA;QAAAC,OAAA;QAAAC,MAAA;QAAAC,YAAA;MAAA;IAAA;IAAAC,WAAA;MAAAZ,IAAA;MAAA;MAAA;IAAA;IAAAa,OAAA;MAAAb,IAAA;MAAA;IAAA;IAAAc,SAAA;MAAAd,IAAA;IAAA;EAAA;EAAAe,eAAA;IAAAhB,WAAA;IAAAE,SAAA;IAAAW,WAAA;EAAA;EAAAI,QAAA;IAAAC,KAAA;IAAAC,IAAA;IAAAC,aAAA;EAAA;EAAAC,aAAA;EAAAC,KAAA;AAAA;AAE5C,OAAOC,IAAI,MAAM,QAAQ;AACzB,OAAOC,IAAI,MAAM,QAAQ;AAEzB,MAAM;EAAE/B;AAAK,CAAC,GAAGJ,QAAQ;AACzB,SAASA,QAAQ,EAAEI,IAAI;AAEvB,OAAO,MAAMgC,QAAQ,GAAG;EACvBtC,IAAI;EACJoC,IAAI;EACJC,IAAI;EACJE,OAAO,EAAE,CAAC;AACX,CAAC;AAED,OAAO,MAAMC,IAAI,GAAGA,CAAA,KAAMvC,SAAS,CAAE;EAAEK,IAAI;EAAEJ,QAAQ;EAAEoC;AAAS,CAAE,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { InspectorControls, privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { unlock } from '../../lock-unlock';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
const {
|
|
13
|
+
HTMLElementControl
|
|
14
|
+
} = unlock(blockEditorPrivateApis);
|
|
15
|
+
export default function AdvancedControls({
|
|
16
|
+
TagName,
|
|
17
|
+
setAttributes,
|
|
18
|
+
clientId
|
|
19
|
+
}) {
|
|
20
|
+
return /*#__PURE__*/_jsx(InspectorControls, {
|
|
21
|
+
group: "advanced",
|
|
22
|
+
children: /*#__PURE__*/_jsx(HTMLElementControl, {
|
|
23
|
+
tagName: TagName,
|
|
24
|
+
onChange: value => setAttributes({
|
|
25
|
+
tagName: value
|
|
26
|
+
}),
|
|
27
|
+
clientId: clientId,
|
|
28
|
+
options: [{
|
|
29
|
+
label: __('Default (<div>)'),
|
|
30
|
+
value: 'div'
|
|
31
|
+
}, {
|
|
32
|
+
label: '<main>',
|
|
33
|
+
value: 'main'
|
|
34
|
+
}, {
|
|
35
|
+
label: '<section>',
|
|
36
|
+
value: 'section'
|
|
37
|
+
}, {
|
|
38
|
+
label: '<aside>',
|
|
39
|
+
value: 'aside'
|
|
40
|
+
}]
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=advanced-controls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","InspectorControls","privateApis","blockEditorPrivateApis","unlock","jsx","_jsx","HTMLElementControl","AdvancedControls","TagName","setAttributes","clientId","group","children","tagName","onChange","value","options","label"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/advanced-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tprivateApis as blockEditorPrivateApis,\n} from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\n\nconst { HTMLElementControl } = unlock( blockEditorPrivateApis );\n\nexport default function AdvancedControls( {\n\tTagName,\n\tsetAttributes,\n\tclientId,\n} ) {\n\treturn (\n\t\t<InspectorControls group=\"advanced\">\n\t\t\t<HTMLElementControl\n\t\t\t\ttagName={ TagName }\n\t\t\t\tonChange={ ( value ) => setAttributes( { tagName: value } ) }\n\t\t\t\tclientId={ clientId }\n\t\t\t\toptions={ [\n\t\t\t\t\t{ label: __( 'Default (<div>)' ), value: 'div' },\n\t\t\t\t\t{ label: '<main>', value: 'main' },\n\t\t\t\t\t{ label: '<section>', value: 'section' },\n\t\t\t\t\t{ label: '<aside>', value: 'aside' },\n\t\t\t\t] }\n\t\t\t/>\n\t\t</InspectorControls>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,iBAAiB,EACjBC,WAAW,IAAIC,sBAAsB,QAC/B,yBAAyB;;AAEhC;AACA;AACA;AACA,SAASC,MAAM,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,MAAM;EAAEC;AAAmB,CAAC,GAAGH,MAAM,CAAED,sBAAuB,CAAC;AAE/D,eAAe,SAASK,gBAAgBA,CAAE;EACzCC,OAAO;EACPC,aAAa;EACbC;AACD,CAAC,EAAG;EACH,oBACCL,IAAA,CAACL,iBAAiB;IAACW,KAAK,EAAC,UAAU;IAAAC,QAAA,eAClCP,IAAA,CAACC,kBAAkB;MAClBO,OAAO,EAAGL,OAAS;MACnBM,QAAQ,EAAKC,KAAK,IAAMN,aAAa,CAAE;QAAEI,OAAO,EAAEE;MAAM,CAAE,CAAG;MAC7DL,QAAQ,EAAGA,QAAU;MACrBM,OAAO,EAAG,CACT;QAAEC,KAAK,EAAElB,EAAE,CAAE,iBAAkB,CAAC;QAAEgB,KAAK,EAAE;MAAM,CAAC,EAChD;QAAEE,KAAK,EAAE,QAAQ;QAAEF,KAAK,EAAE;MAAO,CAAC,EAClC;QAAEE,KAAK,EAAE,WAAW;QAAEF,KAAK,EAAE;MAAU,CAAC,EACxC;QAAEE,KAAK,EAAE,SAAS;QAAEF,KAAK,EAAE;MAAQ,CAAC;IAClC,CACH;EAAC,CACgB,CAAC;AAEtB","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { __experimentalToolsPanelItem as ToolsPanelItem, RadioControl } from '@wordpress/components';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const getOptions = (displayTopLevelControl, displaySubtermsControl) => {
|
|
8
|
+
const options = [{
|
|
9
|
+
label: __('Show all'),
|
|
10
|
+
value: 'all'
|
|
11
|
+
}];
|
|
12
|
+
if (displayTopLevelControl) {
|
|
13
|
+
options.push({
|
|
14
|
+
label: __('Show only top level terms'),
|
|
15
|
+
value: 'top-level'
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
if (displaySubtermsControl) {
|
|
19
|
+
options.push({
|
|
20
|
+
label: __('Show subterms only'),
|
|
21
|
+
value: 'subterms',
|
|
22
|
+
description: __('Display subterms of the current term. E.g. subcategories of current category.')
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return options;
|
|
26
|
+
};
|
|
27
|
+
const allTermsQuery = {
|
|
28
|
+
include: [],
|
|
29
|
+
exclude: [],
|
|
30
|
+
parent: false
|
|
31
|
+
};
|
|
32
|
+
const topLevelTermsQuery = {
|
|
33
|
+
include: [],
|
|
34
|
+
exclude: [],
|
|
35
|
+
parent: 0,
|
|
36
|
+
hierarchical: false
|
|
37
|
+
};
|
|
38
|
+
const getQueryAttributes = value => {
|
|
39
|
+
if (value === 'top-level') {
|
|
40
|
+
return topLevelTermsQuery;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// For 'all' and 'subterms', we fetch all terms and then filter them as the tree is built in Term Template.
|
|
44
|
+
return allTermsQuery;
|
|
45
|
+
};
|
|
46
|
+
export default function DisplayOptions({
|
|
47
|
+
attributes,
|
|
48
|
+
displayTopLevelControl,
|
|
49
|
+
displaySubtermsControl,
|
|
50
|
+
setAttributes
|
|
51
|
+
}) {
|
|
52
|
+
const {
|
|
53
|
+
termQuery,
|
|
54
|
+
termsToShow
|
|
55
|
+
} = attributes;
|
|
56
|
+
return /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
57
|
+
hasValue: () => termsToShow !== 'all',
|
|
58
|
+
label: __('Terms to show'),
|
|
59
|
+
onDeselect: () => setAttributes({
|
|
60
|
+
termsToShow: 'all'
|
|
61
|
+
}),
|
|
62
|
+
isShownByDefault: true,
|
|
63
|
+
children: /*#__PURE__*/_jsx(RadioControl, {
|
|
64
|
+
label: __('Terms to show'),
|
|
65
|
+
options: getOptions(displayTopLevelControl, displaySubtermsControl),
|
|
66
|
+
selected: termsToShow,
|
|
67
|
+
onChange: value => {
|
|
68
|
+
const queryAttributes = getQueryAttributes(value);
|
|
69
|
+
setAttributes({
|
|
70
|
+
termsToShow: value,
|
|
71
|
+
termQuery: {
|
|
72
|
+
...termQuery,
|
|
73
|
+
...queryAttributes
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
})
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=display-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","RadioControl","jsx","_jsx","getOptions","displayTopLevelControl","displaySubtermsControl","options","label","value","push","description","allTermsQuery","include","exclude","parent","topLevelTermsQuery","hierarchical","getQueryAttributes","DisplayOptions","attributes","setAttributes","termQuery","termsToShow","hasValue","onDeselect","isShownByDefault","children","selected","onChange","queryAttributes"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/display-options.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tRadioControl,\n} from '@wordpress/components';\n\nconst getOptions = ( displayTopLevelControl, displaySubtermsControl ) => {\n\tconst options = [ { label: __( 'Show all' ), value: 'all' } ];\n\n\tif ( displayTopLevelControl ) {\n\t\toptions.push( {\n\t\t\tlabel: __( 'Show only top level terms' ),\n\t\t\tvalue: 'top-level',\n\t\t} );\n\t}\n\n\tif ( displaySubtermsControl ) {\n\t\toptions.push( {\n\t\t\tlabel: __( 'Show subterms only' ),\n\t\t\tvalue: 'subterms',\n\t\t\tdescription: __(\n\t\t\t\t'Display subterms of the current term. E.g. subcategories of current category.'\n\t\t\t),\n\t\t} );\n\t}\n\n\treturn options;\n};\n\nconst allTermsQuery = {\n\tinclude: [],\n\texclude: [],\n\tparent: false,\n};\n\nconst topLevelTermsQuery = {\n\tinclude: [],\n\texclude: [],\n\tparent: 0,\n\thierarchical: false,\n};\n\nconst getQueryAttributes = ( value ) => {\n\tif ( value === 'top-level' ) {\n\t\treturn topLevelTermsQuery;\n\t}\n\n\t// For 'all' and 'subterms', we fetch all terms and then filter them as the tree is built in Term Template.\n\treturn allTermsQuery;\n};\n\nexport default function DisplayOptions( {\n\tattributes,\n\tdisplayTopLevelControl,\n\tdisplaySubtermsControl,\n\tsetAttributes,\n} ) {\n\tconst { termQuery, termsToShow } = attributes;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => termsToShow !== 'all' }\n\t\t\tlabel={ __( 'Terms to show' ) }\n\t\t\tonDeselect={ () => setAttributes( { termsToShow: 'all' } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<RadioControl\n\t\t\t\tlabel={ __( 'Terms to show' ) }\n\t\t\t\toptions={ getOptions(\n\t\t\t\t\tdisplayTopLevelControl,\n\t\t\t\t\tdisplaySubtermsControl\n\t\t\t\t) }\n\t\t\t\tselected={ termsToShow }\n\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\tconst queryAttributes = getQueryAttributes( value );\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\ttermsToShow: value,\n\t\t\t\t\t\ttermQuery: { ...termQuery, ...queryAttributes },\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,YAAY,QACN,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,MAAMC,UAAU,GAAGA,CAAEC,sBAAsB,EAAEC,sBAAsB,KAAM;EACxE,MAAMC,OAAO,GAAG,CAAE;IAAEC,KAAK,EAAEV,EAAE,CAAE,UAAW,CAAC;IAAEW,KAAK,EAAE;EAAM,CAAC,CAAE;EAE7D,IAAKJ,sBAAsB,EAAG;IAC7BE,OAAO,CAACG,IAAI,CAAE;MACbF,KAAK,EAAEV,EAAE,CAAE,2BAA4B,CAAC;MACxCW,KAAK,EAAE;IACR,CAAE,CAAC;EACJ;EAEA,IAAKH,sBAAsB,EAAG;IAC7BC,OAAO,CAACG,IAAI,CAAE;MACbF,KAAK,EAAEV,EAAE,CAAE,oBAAqB,CAAC;MACjCW,KAAK,EAAE,UAAU;MACjBE,WAAW,EAAEb,EAAE,CACd,+EACD;IACD,CAAE,CAAC;EACJ;EAEA,OAAOS,OAAO;AACf,CAAC;AAED,MAAMK,aAAa,GAAG;EACrBC,OAAO,EAAE,EAAE;EACXC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE;AACT,CAAC;AAED,MAAMC,kBAAkB,GAAG;EAC1BH,OAAO,EAAE,EAAE;EACXC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE,CAAC;EACTE,YAAY,EAAE;AACf,CAAC;AAED,MAAMC,kBAAkB,GAAKT,KAAK,IAAM;EACvC,IAAKA,KAAK,KAAK,WAAW,EAAG;IAC5B,OAAOO,kBAAkB;EAC1B;;EAEA;EACA,OAAOJ,aAAa;AACrB,CAAC;AAED,eAAe,SAASO,cAAcA,CAAE;EACvCC,UAAU;EACVf,sBAAsB;EACtBC,sBAAsB;EACtBe;AACD,CAAC,EAAG;EACH,MAAM;IAAEC,SAAS;IAAEC;EAAY,CAAC,GAAGH,UAAU;EAE7C,oBACCjB,IAAA,CAACH,cAAc;IACdwB,QAAQ,EAAGA,CAAA,KAAMD,WAAW,KAAK,KAAO;IACxCf,KAAK,EAAGV,EAAE,CAAE,eAAgB,CAAG;IAC/B2B,UAAU,EAAGA,CAAA,KAAMJ,aAAa,CAAE;MAAEE,WAAW,EAAE;IAAM,CAAE,CAAG;IAC5DG,gBAAgB;IAAAC,QAAA,eAEhBxB,IAAA,CAACF,YAAY;MACZO,KAAK,EAAGV,EAAE,CAAE,eAAgB,CAAG;MAC/BS,OAAO,EAAGH,UAAU,CACnBC,sBAAsB,EACtBC,sBACD,CAAG;MACHsB,QAAQ,EAAGL,WAAa;MACxBM,QAAQ,EAAKpB,KAAK,IAAM;QACvB,MAAMqB,eAAe,GAAGZ,kBAAkB,CAAET,KAAM,CAAC;QACnDY,aAAa,CAAE;UACdE,WAAW,EAAEd,KAAK;UAClBa,SAAS,EAAE;YAAE,GAAGA,SAAS;YAAE,GAAGQ;UAAgB;QAC/C,CAAE,CAAC;MACJ;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { __experimentalToolsPanelItem as ToolsPanelItem, ToggleControl } from '@wordpress/components';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export default function EmptyTermsControl({
|
|
8
|
+
attributes,
|
|
9
|
+
setQuery
|
|
10
|
+
}) {
|
|
11
|
+
const {
|
|
12
|
+
termQuery
|
|
13
|
+
} = attributes;
|
|
14
|
+
return /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
15
|
+
hasValue: () => termQuery.hideEmpty !== true,
|
|
16
|
+
label: __('Show empty terms'),
|
|
17
|
+
onDeselect: () => setQuery({
|
|
18
|
+
hideEmpty: true
|
|
19
|
+
}),
|
|
20
|
+
isShownByDefault: true,
|
|
21
|
+
children: /*#__PURE__*/_jsx(ToggleControl, {
|
|
22
|
+
__nextHasNoMarginBottom: true,
|
|
23
|
+
label: __('Show empty terms'),
|
|
24
|
+
checked: !termQuery.hideEmpty,
|
|
25
|
+
onChange: showEmpty => setQuery({
|
|
26
|
+
hideEmpty: !showEmpty
|
|
27
|
+
})
|
|
28
|
+
})
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=empty-terms-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","ToggleControl","jsx","_jsx","EmptyTermsControl","attributes","setQuery","termQuery","hasValue","hideEmpty","label","onDeselect","isShownByDefault","children","__nextHasNoMarginBottom","checked","onChange","showEmpty"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/empty-terms-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n} from '@wordpress/components';\n\nexport default function EmptyTermsControl( { attributes, setQuery } ) {\n\tconst { termQuery } = attributes;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => termQuery.hideEmpty !== true }\n\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\tonDeselect={ () => setQuery( { hideEmpty: true } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Show empty terms' ) }\n\t\t\t\tchecked={ ! termQuery.hideEmpty }\n\t\t\t\tonChange={ ( showEmpty ) =>\n\t\t\t\t\tsetQuery( { hideEmpty: ! showEmpty } )\n\t\t\t\t}\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,aAAa,QACP,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,eAAe,SAASC,iBAAiBA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACrE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;EAEhC,oBACCF,IAAA,CAACH,cAAc;IACdQ,QAAQ,EAAGA,CAAA,KAAMD,SAAS,CAACE,SAAS,KAAK,IAAM;IAC/CC,KAAK,EAAGZ,EAAE,CAAE,kBAAmB,CAAG;IAClCa,UAAU,EAAGA,CAAA,KAAML,QAAQ,CAAE;MAAEG,SAAS,EAAE;IAAK,CAAE,CAAG;IACpDG,gBAAgB;IAAAC,QAAA,eAEhBV,IAAA,CAACF,aAAa;MACba,uBAAuB;MACvBJ,KAAK,EAAGZ,EAAE,CAAE,kBAAmB,CAAG;MAClCiB,OAAO,EAAG,CAAER,SAAS,CAACE,SAAW;MACjCO,QAAQ,EAAKC,SAAS,IACrBX,QAAQ,CAAE;QAAEG,SAAS,EAAE,CAAEQ;MAAU,CAAE;IACrC,CACD;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { __experimentalToolsPanelItem as ToolsPanelItem, ToggleControl } from '@wordpress/components';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export default function HierarchyControl({
|
|
8
|
+
attributes,
|
|
9
|
+
setQuery
|
|
10
|
+
}) {
|
|
11
|
+
const {
|
|
12
|
+
termQuery
|
|
13
|
+
} = attributes;
|
|
14
|
+
return /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
15
|
+
hasValue: () => termQuery.hierarchical !== false,
|
|
16
|
+
label: __('Show hierarchy'),
|
|
17
|
+
onDeselect: () => setQuery({
|
|
18
|
+
hierarchical: false
|
|
19
|
+
}),
|
|
20
|
+
isShownByDefault: true,
|
|
21
|
+
children: /*#__PURE__*/_jsx(ToggleControl, {
|
|
22
|
+
__nextHasNoMarginBottom: true,
|
|
23
|
+
label: __('Show hierarchy'),
|
|
24
|
+
checked: termQuery.hierarchical,
|
|
25
|
+
onChange: hierarchical => {
|
|
26
|
+
setQuery({
|
|
27
|
+
hierarchical
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=hierarchy-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","ToggleControl","jsx","_jsx","HierarchyControl","attributes","setQuery","termQuery","hasValue","hierarchical","label","onDeselect","isShownByDefault","children","__nextHasNoMarginBottom","checked","onChange"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/hierarchy-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tToggleControl,\n} from '@wordpress/components';\n\nexport default function HierarchyControl( { attributes, setQuery } ) {\n\tconst { termQuery } = attributes;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => termQuery.hierarchical !== false }\n\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\tonDeselect={ () => setQuery( { hierarchical: false } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<ToggleControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tlabel={ __( 'Show hierarchy' ) }\n\t\t\t\tchecked={ termQuery.hierarchical }\n\t\t\t\tonChange={ ( hierarchical ) => {\n\t\t\t\t\tsetQuery( { hierarchical } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,aAAa,QACP,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,eAAe,SAASC,gBAAgBA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACpE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;EAEhC,oBACCF,IAAA,CAACH,cAAc;IACdQ,QAAQ,EAAGA,CAAA,KAAMD,SAAS,CAACE,YAAY,KAAK,KAAO;IACnDC,KAAK,EAAGZ,EAAE,CAAE,gBAAiB,CAAG;IAChCa,UAAU,EAAGA,CAAA,KAAML,QAAQ,CAAE;MAAEG,YAAY,EAAE;IAAM,CAAE,CAAG;IACxDG,gBAAgB;IAAAC,QAAA,eAEhBV,IAAA,CAACF,aAAa;MACba,uBAAuB;MACvBJ,KAAK,EAAGZ,EAAE,CAAE,gBAAiB,CAAG;MAChCiB,OAAO,EAAGR,SAAS,CAACE,YAAc;MAClCO,QAAQ,EAAKP,YAAY,IAAM;QAC9BH,QAAQ,CAAE;UAAEG;QAAa,CAAE,CAAC;MAC7B;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';
|
|
6
|
+
import { InspectorControls } from '@wordpress/block-editor';
|
|
7
|
+
import { store as coreStore } from '@wordpress/core-data';
|
|
8
|
+
import { useSelect } from '@wordpress/data';
|
|
9
|
+
import { useMemo } from '@wordpress/element';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Internal dependencies
|
|
13
|
+
*/
|
|
14
|
+
import { useToolsPanelDropdownMenuProps } from '../../utils/hooks';
|
|
15
|
+
import TaxonomyControl from './taxonomy-control';
|
|
16
|
+
import OrderingControls from './ordering-controls';
|
|
17
|
+
import DisplayOptions from './display-options';
|
|
18
|
+
import HierarchyControl from './hierarchy-control';
|
|
19
|
+
import EmptyTermsControl from './empty-terms-control';
|
|
20
|
+
import MaxTermsControl from './max-terms-control';
|
|
21
|
+
import AdvancedControls from './advanced-controls';
|
|
22
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
23
|
+
const usePublicTaxonomies = () => {
|
|
24
|
+
const taxonomies = useSelect(select => select(coreStore).getTaxonomies({
|
|
25
|
+
per_page: -1
|
|
26
|
+
}), []);
|
|
27
|
+
return useMemo(() => {
|
|
28
|
+
return taxonomies?.filter(({
|
|
29
|
+
visibility
|
|
30
|
+
}) => visibility?.publicly_queryable) || [];
|
|
31
|
+
}, [taxonomies]);
|
|
32
|
+
};
|
|
33
|
+
export default function TermsQueryInspectorControls({
|
|
34
|
+
attributes,
|
|
35
|
+
setQuery,
|
|
36
|
+
setAttributes,
|
|
37
|
+
TagName,
|
|
38
|
+
clientId
|
|
39
|
+
}) {
|
|
40
|
+
const {
|
|
41
|
+
termQuery,
|
|
42
|
+
termsToShow
|
|
43
|
+
} = attributes;
|
|
44
|
+
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
|
|
45
|
+
const taxonomies = usePublicTaxonomies();
|
|
46
|
+
const {
|
|
47
|
+
templateSlug
|
|
48
|
+
} = useSelect(select => {
|
|
49
|
+
// @wordpress/block-library should not depend on @wordpress/editor.
|
|
50
|
+
// Blocks can be loaded into a *non-post* block editor, so to avoid
|
|
51
|
+
// declaring @wordpress/editor as a dependency, we must access its
|
|
52
|
+
// store by string.
|
|
53
|
+
// The solution here is to split WP specific blocks from generic blocks.
|
|
54
|
+
// eslint-disable-next-line @wordpress/data-no-store-string-literals
|
|
55
|
+
const {
|
|
56
|
+
getEditedPostSlug
|
|
57
|
+
} = select('core/editor');
|
|
58
|
+
return {
|
|
59
|
+
templateSlug: getEditedPostSlug()
|
|
60
|
+
};
|
|
61
|
+
}, []);
|
|
62
|
+
const taxonomyOptions = taxonomies.map(taxonomy => ({
|
|
63
|
+
label: taxonomy.name,
|
|
64
|
+
value: taxonomy.slug
|
|
65
|
+
}));
|
|
66
|
+
const isTaxonomyHierarchical = taxonomies.find(taxonomy => taxonomy.slug === termQuery.taxonomy)?.hierarchical;
|
|
67
|
+
const isTaxonomyMatchingTemplate = typeof templateSlug === 'string' && templateSlug.includes(termQuery.taxonomy);
|
|
68
|
+
const displaySubtermsControl = isTaxonomyHierarchical && isTaxonomyMatchingTemplate;
|
|
69
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
70
|
+
children: [/*#__PURE__*/_jsx(InspectorControls, {
|
|
71
|
+
children: /*#__PURE__*/_jsxs(ToolsPanel, {
|
|
72
|
+
label: __('Terms Query Settings'),
|
|
73
|
+
resetAll: () => {
|
|
74
|
+
setAttributes({
|
|
75
|
+
termQuery: {
|
|
76
|
+
taxonomy: 'category',
|
|
77
|
+
order: 'asc',
|
|
78
|
+
orderBy: 'name',
|
|
79
|
+
hideEmpty: true,
|
|
80
|
+
hierarchical: false,
|
|
81
|
+
parent: false,
|
|
82
|
+
perPage: 10
|
|
83
|
+
},
|
|
84
|
+
termsToShow: 'all'
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
dropdownMenuProps: dropdownMenuProps,
|
|
88
|
+
children: [/*#__PURE__*/_jsx(TaxonomyControl, {
|
|
89
|
+
attributes: attributes,
|
|
90
|
+
setQuery: setQuery,
|
|
91
|
+
setAttributes: setAttributes,
|
|
92
|
+
taxonomyOptions: taxonomyOptions
|
|
93
|
+
}), /*#__PURE__*/_jsx(OrderingControls, {
|
|
94
|
+
attributes: attributes,
|
|
95
|
+
setQuery: setQuery
|
|
96
|
+
}), /*#__PURE__*/_jsx(EmptyTermsControl, {
|
|
97
|
+
attributes: attributes,
|
|
98
|
+
setQuery: setQuery
|
|
99
|
+
}), /*#__PURE__*/_jsx(DisplayOptions, {
|
|
100
|
+
attributes: attributes,
|
|
101
|
+
setAttributes: setAttributes,
|
|
102
|
+
displayTopLevelControl: isTaxonomyHierarchical,
|
|
103
|
+
displaySubtermsControl: displaySubtermsControl
|
|
104
|
+
}), /*#__PURE__*/_jsx(MaxTermsControl, {
|
|
105
|
+
attributes: attributes,
|
|
106
|
+
setQuery: setQuery
|
|
107
|
+
}), isTaxonomyHierarchical && termsToShow === 'all' && /*#__PURE__*/_jsx(HierarchyControl, {
|
|
108
|
+
attributes: attributes,
|
|
109
|
+
setQuery: setQuery
|
|
110
|
+
})]
|
|
111
|
+
})
|
|
112
|
+
}), /*#__PURE__*/_jsx(AdvancedControls, {
|
|
113
|
+
TagName: TagName,
|
|
114
|
+
setAttributes: setAttributes,
|
|
115
|
+
clientId: clientId
|
|
116
|
+
})]
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","__experimentalToolsPanel","ToolsPanel","InspectorControls","store","coreStore","useSelect","useMemo","useToolsPanelDropdownMenuProps","TaxonomyControl","OrderingControls","DisplayOptions","HierarchyControl","EmptyTermsControl","MaxTermsControl","AdvancedControls","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","usePublicTaxonomies","taxonomies","select","getTaxonomies","per_page","filter","visibility","publicly_queryable","TermsQueryInspectorControls","attributes","setQuery","setAttributes","TagName","clientId","termQuery","termsToShow","dropdownMenuProps","templateSlug","getEditedPostSlug","taxonomyOptions","map","taxonomy","label","name","value","slug","isTaxonomyHierarchical","find","hierarchical","isTaxonomyMatchingTemplate","includes","displaySubtermsControl","children","resetAll","order","orderBy","hideEmpty","parent","perPage","displayTopLevelControl"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { __experimentalToolsPanel as ToolsPanel } from '@wordpress/components';\nimport { InspectorControls } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../../utils/hooks';\nimport TaxonomyControl from './taxonomy-control';\nimport OrderingControls from './ordering-controls';\nimport DisplayOptions from './display-options';\nimport HierarchyControl from './hierarchy-control';\nimport EmptyTermsControl from './empty-terms-control';\nimport MaxTermsControl from './max-terms-control';\nimport AdvancedControls from './advanced-controls';\n\nconst usePublicTaxonomies = () => {\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\treturn useMemo( () => {\n\t\treturn (\n\t\t\ttaxonomies?.filter(\n\t\t\t\t( { visibility } ) => visibility?.publicly_queryable\n\t\t\t) || []\n\t\t);\n\t}, [ taxonomies ] );\n};\n\nexport default function TermsQueryInspectorControls( {\n\tattributes,\n\tsetQuery,\n\tsetAttributes,\n\tTagName,\n\tclientId,\n} ) {\n\tconst { termQuery, termsToShow } = attributes;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\tconst taxonomies = usePublicTaxonomies();\n\n\tconst { templateSlug } = useSelect( ( select ) => {\n\t\t// @wordpress/block-library should not depend on @wordpress/editor.\n\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t// store by string.\n\t\t// The solution here is to split WP specific blocks from generic blocks.\n\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\tconst { getEditedPostSlug } = select( 'core/editor' );\n\t\treturn {\n\t\t\ttemplateSlug: getEditedPostSlug(),\n\t\t};\n\t}, [] );\n\n\tconst taxonomyOptions = taxonomies.map( ( taxonomy ) => ( {\n\t\tlabel: taxonomy.name,\n\t\tvalue: taxonomy.slug,\n\t} ) );\n\n\tconst isTaxonomyHierarchical = taxonomies.find(\n\t\t( taxonomy ) => taxonomy.slug === termQuery.taxonomy\n\t)?.hierarchical;\n\n\tconst isTaxonomyMatchingTemplate =\n\t\ttypeof templateSlug === 'string' &&\n\t\ttemplateSlug.includes( termQuery.taxonomy );\n\n\tconst displaySubtermsControl =\n\t\tisTaxonomyHierarchical && isTaxonomyMatchingTemplate;\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<ToolsPanel\n\t\t\t\t\tlabel={ __( 'Terms Query Settings' ) }\n\t\t\t\t\tresetAll={ () => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\ttermQuery: {\n\t\t\t\t\t\t\t\ttaxonomy: 'category',\n\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\thideEmpty: true,\n\t\t\t\t\t\t\t\thierarchical: false,\n\t\t\t\t\t\t\t\tparent: false,\n\t\t\t\t\t\t\t\tperPage: 10,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttermsToShow: 'all',\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<TaxonomyControl\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\ttaxonomyOptions={ taxonomyOptions }\n\t\t\t\t\t/>\n\t\t\t\t\t<OrderingControls\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t/>\n\t\t\t\t\t<EmptyTermsControl\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t/>\n\t\t\t\t\t<DisplayOptions\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tdisplayTopLevelControl={ isTaxonomyHierarchical }\n\t\t\t\t\t\tdisplaySubtermsControl={ displaySubtermsControl }\n\t\t\t\t\t/>\n\t\t\t\t\t<MaxTermsControl\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isTaxonomyHierarchical && termsToShow === 'all' && (\n\t\t\t\t\t\t<HierarchyControl\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tsetQuery={ setQuery }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</ToolsPanel>\n\t\t\t</InspectorControls>\n\t\t\t<AdvancedControls\n\t\t\t\tTagName={ TagName }\n\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\tclientId={ clientId }\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { __experimentalToolsPanelItem as ToolsPanelItem, RangeControl } from '@wordpress/components';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export default function MaxTermsControl({
|
|
8
|
+
attributes,
|
|
9
|
+
setQuery
|
|
10
|
+
}) {
|
|
11
|
+
const {
|
|
12
|
+
termQuery
|
|
13
|
+
} = attributes;
|
|
14
|
+
|
|
15
|
+
// Only show pagination control when not hierarchical.
|
|
16
|
+
if (termQuery.hierarchical) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
20
|
+
hasValue: () => termQuery.perPage !== 10,
|
|
21
|
+
label: __('Max terms'),
|
|
22
|
+
onDeselect: () => setQuery({
|
|
23
|
+
perPage: 10
|
|
24
|
+
}),
|
|
25
|
+
isShownByDefault: true,
|
|
26
|
+
children: /*#__PURE__*/_jsx(RangeControl, {
|
|
27
|
+
__nextHasNoMarginBottom: true,
|
|
28
|
+
__next40pxDefaultSize: true,
|
|
29
|
+
label: __('Max terms'),
|
|
30
|
+
value: termQuery.perPage,
|
|
31
|
+
min: 0,
|
|
32
|
+
max: 100,
|
|
33
|
+
onChange: perPage => {
|
|
34
|
+
// Show all terms (-1) when 0 is selected.
|
|
35
|
+
setQuery({
|
|
36
|
+
perPage: perPage === 0 ? -1 : perPage
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
help: __('Limit the number of terms you want to show. To show all terms, use 0 (zero).')
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=max-terms-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","RangeControl","jsx","_jsx","MaxTermsControl","attributes","setQuery","termQuery","hierarchical","hasValue","perPage","label","onDeselect","isShownByDefault","children","__nextHasNoMarginBottom","__next40pxDefaultSize","value","min","max","onChange","help"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/max-terms-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tRangeControl,\n} from '@wordpress/components';\n\nexport default function MaxTermsControl( { attributes, setQuery } ) {\n\tconst { termQuery } = attributes;\n\n\t// Only show pagination control when not hierarchical.\n\tif ( termQuery.hierarchical ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () => termQuery.perPage !== 10 }\n\t\t\tlabel={ __( 'Max terms' ) }\n\t\t\tonDeselect={ () => setQuery( { perPage: 10 } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<RangeControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Max terms' ) }\n\t\t\t\tvalue={ termQuery.perPage }\n\t\t\t\tmin={ 0 }\n\t\t\t\tmax={ 100 }\n\t\t\t\tonChange={ ( perPage ) => {\n\t\t\t\t\t// Show all terms (-1) when 0 is selected.\n\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\tperPage: perPage === 0 ? -1 : perPage,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Limit the number of terms you want to show. To show all terms, use 0 (zero).'\n\t\t\t\t) }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,YAAY,QACN,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,eAAe,SAASC,eAAeA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACnE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;;EAEhC;EACA,IAAKE,SAAS,CAACC,YAAY,EAAG;IAC7B,OAAO,IAAI;EACZ;EAEA,oBACCL,IAAA,CAACH,cAAc;IACdS,QAAQ,EAAGA,CAAA,KAAMF,SAAS,CAACG,OAAO,KAAK,EAAI;IAC3CC,KAAK,EAAGb,EAAE,CAAE,WAAY,CAAG;IAC3Bc,UAAU,EAAGA,CAAA,KAAMN,QAAQ,CAAE;MAAEI,OAAO,EAAE;IAAG,CAAE,CAAG;IAChDG,gBAAgB;IAAAC,QAAA,eAEhBX,IAAA,CAACF,YAAY;MACZc,uBAAuB;MACvBC,qBAAqB;MACrBL,KAAK,EAAGb,EAAE,CAAE,WAAY,CAAG;MAC3BmB,KAAK,EAAGV,SAAS,CAACG,OAAS;MAC3BQ,GAAG,EAAG,CAAG;MACTC,GAAG,EAAG,GAAK;MACXC,QAAQ,EAAKV,OAAO,IAAM;QACzB;QACAJ,QAAQ,CAAE;UACTI,OAAO,EAAEA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAGA;QAC/B,CAAE,CAAC;MACJ,CAAG;MACHW,IAAI,EAAGvB,EAAE,CACR,8EACD;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WordPress dependencies
|
|
3
|
+
*/
|
|
4
|
+
import { __ } from '@wordpress/i18n';
|
|
5
|
+
import { __experimentalToolsPanelItem as ToolsPanelItem, SelectControl } from '@wordpress/components';
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
export default function OrderingControls({
|
|
8
|
+
attributes,
|
|
9
|
+
setQuery
|
|
10
|
+
}) {
|
|
11
|
+
const {
|
|
12
|
+
termQuery
|
|
13
|
+
} = attributes;
|
|
14
|
+
return /*#__PURE__*/_jsx(ToolsPanelItem, {
|
|
15
|
+
hasValue: () => termQuery.orderBy !== 'name' || termQuery.order !== 'asc',
|
|
16
|
+
label: __('Order by'),
|
|
17
|
+
onDeselect: () => setQuery({
|
|
18
|
+
orderBy: 'name',
|
|
19
|
+
order: 'asc'
|
|
20
|
+
}),
|
|
21
|
+
isShownByDefault: true,
|
|
22
|
+
children: /*#__PURE__*/_jsx(SelectControl, {
|
|
23
|
+
__nextHasNoMarginBottom: true,
|
|
24
|
+
__next40pxDefaultSize: true,
|
|
25
|
+
label: __('Order by'),
|
|
26
|
+
options: [{
|
|
27
|
+
label: __('Name: A → Z'),
|
|
28
|
+
value: 'name/asc'
|
|
29
|
+
}, {
|
|
30
|
+
label: __('Name: Z → A'),
|
|
31
|
+
value: 'name/desc'
|
|
32
|
+
}, {
|
|
33
|
+
label: __('Count, high to low'),
|
|
34
|
+
value: 'count/desc'
|
|
35
|
+
}, {
|
|
36
|
+
label: __('Count, low to high'),
|
|
37
|
+
value: 'count/asc'
|
|
38
|
+
}],
|
|
39
|
+
value: termQuery.orderBy + '/' + termQuery.order,
|
|
40
|
+
onChange: orderBy => {
|
|
41
|
+
const [newOrderBy, newOrder] = orderBy.split('/');
|
|
42
|
+
setQuery({
|
|
43
|
+
orderBy: newOrderBy,
|
|
44
|
+
order: newOrder
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=ordering-controls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__","__experimentalToolsPanelItem","ToolsPanelItem","SelectControl","jsx","_jsx","OrderingControls","attributes","setQuery","termQuery","hasValue","orderBy","order","label","onDeselect","isShownByDefault","children","__nextHasNoMarginBottom","__next40pxDefaultSize","options","value","onChange","newOrderBy","newOrder","split"],"sources":["@wordpress/block-library/src/terms-query/inspector-controls/ordering-controls.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n\tSelectControl,\n} from '@wordpress/components';\n\nexport default function OrderingControls( { attributes, setQuery } ) {\n\tconst { termQuery } = attributes;\n\n\treturn (\n\t\t<ToolsPanelItem\n\t\t\thasValue={ () =>\n\t\t\t\ttermQuery.orderBy !== 'name' || termQuery.order !== 'asc'\n\t\t\t}\n\t\t\tlabel={ __( 'Order by' ) }\n\t\t\tonDeselect={ () => setQuery( { orderBy: 'name', order: 'asc' } ) }\n\t\t\tisShownByDefault\n\t\t>\n\t\t\t<SelectControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tlabel={ __( 'Order by' ) }\n\t\t\t\toptions={ [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Name: A → Z' ),\n\t\t\t\t\t\tvalue: 'name/asc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Name: Z → A' ),\n\t\t\t\t\t\tvalue: 'name/desc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Count, high to low' ),\n\t\t\t\t\t\tvalue: 'count/desc',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Count, low to high' ),\n\t\t\t\t\t\tvalue: 'count/asc',\n\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t\tvalue={ termQuery.orderBy + '/' + termQuery.order }\n\t\t\t\tonChange={ ( orderBy ) => {\n\t\t\t\t\tconst [ newOrderBy, newOrder ] = orderBy.split( '/' );\n\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\torderBy: newOrderBy,\n\t\t\t\t\t\torder: newOrder,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t/>\n\t\t</ToolsPanelItem>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SACCC,4BAA4B,IAAIC,cAAc,EAC9CC,aAAa,QACP,uBAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/B,eAAe,SAASC,gBAAgBA,CAAE;EAAEC,UAAU;EAAEC;AAAS,CAAC,EAAG;EACpE,MAAM;IAAEC;EAAU,CAAC,GAAGF,UAAU;EAEhC,oBACCF,IAAA,CAACH,cAAc;IACdQ,QAAQ,EAAGA,CAAA,KACVD,SAAS,CAACE,OAAO,KAAK,MAAM,IAAIF,SAAS,CAACG,KAAK,KAAK,KACpD;IACDC,KAAK,EAAGb,EAAE,CAAE,UAAW,CAAG;IAC1Bc,UAAU,EAAGA,CAAA,KAAMN,QAAQ,CAAE;MAAEG,OAAO,EAAE,MAAM;MAAEC,KAAK,EAAE;IAAM,CAAE,CAAG;IAClEG,gBAAgB;IAAAC,QAAA,eAEhBX,IAAA,CAACF,aAAa;MACbc,uBAAuB;MACvBC,qBAAqB;MACrBL,KAAK,EAAGb,EAAE,CAAE,UAAW,CAAG;MAC1BmB,OAAO,EAAG,CACT;QACCN,KAAK,EAAEb,EAAE,CAAE,aAAc,CAAC;QAC1BoB,KAAK,EAAE;MACR,CAAC,EACD;QACCP,KAAK,EAAEb,EAAE,CAAE,aAAc,CAAC;QAC1BoB,KAAK,EAAE;MACR,CAAC,EACD;QACCP,KAAK,EAAEb,EAAE,CAAE,oBAAqB,CAAC;QACjCoB,KAAK,EAAE;MACR,CAAC,EACD;QACCP,KAAK,EAAEb,EAAE,CAAE,oBAAqB,CAAC;QACjCoB,KAAK,EAAE;MACR,CAAC,CACC;MACHA,KAAK,EAAGX,SAAS,CAACE,OAAO,GAAG,GAAG,GAAGF,SAAS,CAACG,KAAO;MACnDS,QAAQ,EAAKV,OAAO,IAAM;QACzB,MAAM,CAAEW,UAAU,EAAEC,QAAQ,CAAE,GAAGZ,OAAO,CAACa,KAAK,CAAE,GAAI,CAAC;QACrDhB,QAAQ,CAAE;UACTG,OAAO,EAAEW,UAAU;UACnBV,KAAK,EAAEW;QACR,CAAE,CAAC;MACJ;IAAG,CACH;EAAC,CACa,CAAC;AAEnB","ignoreList":[]}
|