UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 12.2 kB
{ "version": 3, "sources": ["../../../../src/terms-query/edit/inspector-controls/index.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\t__experimentalToolsPanel as ToolsPanel,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { InspectorControls } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { useToolsPanelDropdownMenuProps } from '../../../utils/hooks';\nimport { usePublicTaxonomies } from '../../utils';\nimport TaxonomyControl from './taxonomy-control';\nimport OrderControl from './order-control';\nimport EmptyTermsControl from './empty-terms-control';\nimport NestedTermsControl from './nested-terms-control';\nimport InheritControl from './inherit-control';\nimport MaxTermsControl from './max-terms-control';\nimport AdvancedControls from './advanced-controls';\nimport IncludeControl from './include-control';\n\nexport default function TermsQueryInspectorControls( {\n\tattributes,\n\tsetQuery,\n\tsetAttributes,\n\tclientId,\n\ttemplateSlug,\n} ) {\n\tconst { termQuery, tagName: TagName } = attributes;\n\tconst {\n\t\ttaxonomy,\n\t\torderBy,\n\t\torder,\n\t\thideEmpty,\n\t\tinherit,\n\t\tshowNested,\n\t\tperPage,\n\t\tinclude,\n\t} = termQuery;\n\tconst dropdownMenuProps = useToolsPanelDropdownMenuProps();\n\n\tconst taxonomies = usePublicTaxonomies();\n\n\tconst isTaxonomyHierarchical = taxonomies.find(\n\t\t( _taxonomy ) => _taxonomy.slug === taxonomy\n\t)?.hierarchical;\n\tconst inheritQuery = !! inherit;\n\t// Display the inherit control when we're in a taxonomy-related\n\t// template (category, tag, or custom taxonomy).\n\tconst displayInheritControl =\n\t\t[ 'taxonomy', 'category', 'tag', 'archive' ].includes( templateSlug ) ||\n\t\ttemplateSlug?.startsWith( 'taxonomy-' ) ||\n\t\ttemplateSlug?.startsWith( 'category-' ) ||\n\t\ttemplateSlug?.startsWith( 'tag-' );\n\t// Display the showNested control if the taxonomy is hierarchical.\n\tconst displayShowNestedControl = isTaxonomyHierarchical;\n\tconst hasIncludeFilter = !! include?.length;\n\n\t// Labels shared between ToolsPanelItem and its child control.\n\tconst queryTypeControlLabel = __( 'Query type' );\n\tconst taxonomyControlLabel = __( 'Taxonomy' );\n\tconst orderByControlLabel = __( 'Order by' );\n\tconst emptyTermsControlLabel = __( 'Show empty terms' );\n\tconst nestedTermsControlLabel = __( 'Show nested terms' );\n\tconst maxTermsControlLabel = __( 'Max terms' );\n\tconst includeControlLabel = __( 'Selected terms' );\n\n\treturn (\n\t\t<>\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\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\tinclude: [],\n\t\t\t\t\t\t\t\thideEmpty: true,\n\t\t\t\t\t\t\t\tshowNested: false,\n\t\t\t\t\t\t\t\tinherit: 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} );\n\t\t\t\t\t} }\n\t\t\t\t\tdropdownMenuProps={ dropdownMenuProps }\n\t\t\t\t>\n\t\t\t\t\t{ displayInheritControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => inherit !== false }\n\t\t\t\t\t\t\tlabel={ queryTypeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => setQuery( { inherit: false } ) }\n\t\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<InheritControl\n\t\t\t\t\t\t\t\tlabel={ queryTypeControlLabel }\n\t\t\t\t\t\t\t\tvalue={ inherit }\n\t\t\t\t\t\t\t\tonChange={ setQuery }\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{ ! inheritQuery && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => taxonomy !== 'category' }\n\t\t\t\t\t\t\tlabel={ taxonomyControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () => {\n\t\t\t\t\t\t\t\tsetQuery( { taxonomy: 'category' } );\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<TaxonomyControl\n\t\t\t\t\t\t\t\tlabel={ taxonomyControlLabel }\n\t\t\t\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\t// We also need to reset the include filter when changing taxonomy.\n\t\t\t\t\t\t\t\t\tsetQuery( { taxonomy: value, include: [] } )\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\thasValue={ () => orderBy !== 'name' || order !== 'asc' }\n\t\t\t\t\t\tlabel={ orderByControlLabel }\n\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\tsetQuery( { orderBy: 'name', order: 'asc' } )\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<OrderControl\n\t\t\t\t\t\t\tlabel={ orderByControlLabel }\n\t\t\t\t\t\t\t{ ...{ orderBy, order } }\n\t\t\t\t\t\t\tonChange={ ( newOrderBy, newOrder ) => {\n\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\torderBy: newOrderBy,\n\t\t\t\t\t\t\t\t\torder: newOrder,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisabled={ hasIncludeFilter }\n\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\thasIncludeFilter\n\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t'When specific terms are selected, the order is based on their selection order.'\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: undefined\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{ ! inheritQuery && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => !! include?.length }\n\t\t\t\t\t\t\tlabel={ includeControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( {\n\t\t\t\t\t\t\t\t\tinclude: [],\n\t\t\t\t\t\t\t\t\torderBy: 'name',\n\t\t\t\t\t\t\t\t\torder: 'asc',\n\t\t\t\t\t\t\t\t} )\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<IncludeControl\n\t\t\t\t\t\t\t\tlabel={ includeControlLabel }\n\t\t\t\t\t\t\t\ttaxonomy={ taxonomy }\n\t\t\t\t\t\t\t\tvalue={ include }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { include: value } )\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\thasValue={ () => hideEmpty !== true }\n\t\t\t\t\t\tlabel={ emptyTermsControlLabel }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { hideEmpty: true } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<EmptyTermsControl\n\t\t\t\t\t\t\tlabel={ emptyTermsControlLabel }\n\t\t\t\t\t\t\tvalue={ hideEmpty }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { hideEmpty: value } )\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{ displayShowNestedControl && (\n\t\t\t\t\t\t<ToolsPanelItem\n\t\t\t\t\t\t\thasValue={ () => showNested !== false }\n\t\t\t\t\t\t\tlabel={ nestedTermsControlLabel }\n\t\t\t\t\t\t\tonDeselect={ () =>\n\t\t\t\t\t\t\t\tsetQuery( { showNested: false } )\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<NestedTermsControl\n\t\t\t\t\t\t\t\tlabel={ nestedTermsControlLabel }\n\t\t\t\t\t\t\t\tvalue={ showNested }\n\t\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\t\tsetQuery( { showNested: value } )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tdisabled={ hasIncludeFilter }\n\t\t\t\t\t\t\t\thelp={\n\t\t\t\t\t\t\t\t\thasIncludeFilter\n\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t'When specific terms are selected, only those are displayed.'\n\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t: undefined\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\thasValue={ () => perPage !== 10 }\n\t\t\t\t\t\tlabel={ maxTermsControlLabel }\n\t\t\t\t\t\tonDeselect={ () => setQuery( { perPage: 10 } ) }\n\t\t\t\t\t\tisShownByDefault\n\t\t\t\t\t>\n\t\t\t\t\t\t<MaxTermsControl\n\t\t\t\t\t\t\tlabel={ maxTermsControlLabel }\n\t\t\t\t\t\t\tvalue={ perPage }\n\t\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\t\tsetQuery( { perPage: value } )\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<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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", "names": ["ToolsPanel", "ToolsPanelItem", "InheritControl", "TaxonomyControl", "OrderControl", "IncludeControl", "EmptyTermsControl", "NestedTermsControl", "MaxTermsControl", "AdvancedControls"] }