@wordpress/editor 14.50.0 → 14.51.1-next.v.202607070741.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 +10 -0
- package/build/components/collab-sidebar/format.cjs +83 -0
- package/build/components/collab-sidebar/format.cjs.map +7 -0
- package/build/components/collab-sidebar/hooks.cjs +117 -16
- package/build/components/collab-sidebar/hooks.cjs.map +2 -2
- package/build/components/collab-sidebar/index.cjs +18 -2
- package/build/components/collab-sidebar/index.cjs.map +2 -2
- package/build/components/collab-sidebar/note-highlight-styles.cjs +67 -0
- package/build/components/collab-sidebar/note-highlight-styles.cjs.map +7 -0
- package/build/components/collab-sidebar/utils.cjs +139 -0
- package/build/components/collab-sidebar/utils.cjs.map +2 -2
- package/build/components/collaborators-presence/use-collaborator-notifications.cjs +55 -30
- package/build/components/collaborators-presence/use-collaborator-notifications.cjs.map +2 -2
- package/build/components/commands/index.cjs +99 -3
- package/build/components/commands/index.cjs.map +2 -2
- package/build/components/document-bar/index.cjs +28 -34
- package/build/components/document-bar/index.cjs.map +2 -2
- package/build/components/entities-saved-states/index.cjs +1 -4
- package/build/components/entities-saved-states/index.cjs.map +2 -2
- package/build/components/media-categories/index.cjs +92 -6
- package/build/components/media-categories/index.cjs.map +2 -2
- package/build/components/page-attributes/parent.cjs +0 -1
- package/build/components/page-attributes/parent.cjs.map +2 -2
- package/build/components/post-author/combobox.cjs +0 -1
- package/build/components/post-author/combobox.cjs.map +2 -2
- package/build/components/post-author/select.cjs +0 -1
- package/build/components/post-author/select.cjs.map +2 -2
- package/build/components/post-preview-button/index.cjs +29 -2
- package/build/components/post-preview-button/index.cjs.map +2 -2
- package/build/components/post-publish-panel/maybe-upload-media.cjs +15 -26
- package/build/components/post-publish-panel/maybe-upload-media.cjs.map +3 -3
- package/build/components/post-revisions-preview/revisions-slider.cjs +3 -1
- package/build/components/post-revisions-preview/revisions-slider.cjs.map +2 -2
- package/build/components/post-taxonomies/flat-term-selector.cjs +0 -1
- package/build/components/post-taxonomies/flat-term-selector.cjs.map +2 -2
- package/build/components/post-taxonomies/hierarchical-term-selector.cjs +0 -2
- package/build/components/post-taxonomies/hierarchical-term-selector.cjs.map +2 -2
- package/build/components/post-template/classic-theme.cjs +0 -1
- package/build/components/post-template/classic-theme.cjs.map +2 -2
- package/build/components/preferences-modal/index.cjs +54 -28
- package/build/components/preferences-modal/index.cjs.map +2 -2
- package/build/components/preview-dropdown/index.cjs +3 -3
- package/build/components/preview-dropdown/index.cjs.map +2 -2
- package/build/components/provider/use-block-editor-settings.cjs +23 -3
- package/build/components/provider/use-block-editor-settings.cjs.map +3 -3
- package/build/components/sidebar/dataform-post-summary.cjs +5 -1
- package/build/components/sidebar/dataform-post-summary.cjs.map +3 -3
- package/build/components/sidebar/index.cjs +29 -38
- package/build/components/sidebar/index.cjs.map +3 -3
- package/build/components/sidebar/post-summary.cjs +0 -13
- package/build/components/sidebar/post-summary.cjs.map +3 -3
- package/build/dataviews/store/private-actions.cjs +24 -19
- package/build/dataviews/store/private-actions.cjs.map +2 -2
- package/build/store/private-actions.cjs +5 -2
- package/build/store/private-actions.cjs.map +2 -2
- package/build/utils/media-sideload-from-url/index.cjs +63 -0
- package/build/utils/media-sideload-from-url/index.cjs.map +7 -0
- package/build-module/components/collab-sidebar/format.mjs +57 -0
- package/build-module/components/collab-sidebar/format.mjs.map +7 -0
- package/build-module/components/collab-sidebar/hooks.mjs +121 -16
- package/build-module/components/collab-sidebar/hooks.mjs.map +2 -2
- package/build-module/components/collab-sidebar/index.mjs +21 -5
- package/build-module/components/collab-sidebar/index.mjs.map +2 -2
- package/build-module/components/collab-sidebar/note-highlight-styles.mjs +41 -0
- package/build-module/components/collab-sidebar/note-highlight-styles.mjs.map +7 -0
- package/build-module/components/collab-sidebar/utils.mjs +133 -0
- package/build-module/components/collab-sidebar/utils.mjs.map +2 -2
- package/build-module/components/collaborators-presence/use-collaborator-notifications.mjs +55 -30
- package/build-module/components/collaborators-presence/use-collaborator-notifications.mjs.map +2 -2
- package/build-module/components/commands/index.mjs +99 -3
- package/build-module/components/commands/index.mjs.map +2 -2
- package/build-module/components/document-bar/index.mjs +28 -34
- package/build-module/components/document-bar/index.mjs.map +2 -2
- package/build-module/components/entities-saved-states/index.mjs +1 -4
- package/build-module/components/entities-saved-states/index.mjs.map +2 -2
- package/build-module/components/media-categories/index.mjs +93 -7
- package/build-module/components/media-categories/index.mjs.map +2 -2
- package/build-module/components/page-attributes/parent.mjs +0 -1
- package/build-module/components/page-attributes/parent.mjs.map +2 -2
- package/build-module/components/post-author/combobox.mjs +0 -1
- package/build-module/components/post-author/combobox.mjs.map +2 -2
- package/build-module/components/post-author/select.mjs +0 -1
- package/build-module/components/post-author/select.mjs.map +2 -2
- package/build-module/components/post-preview-button/index.mjs +29 -2
- package/build-module/components/post-preview-button/index.mjs.map +2 -2
- package/build-module/components/post-publish-panel/maybe-upload-media.mjs +19 -27
- package/build-module/components/post-publish-panel/maybe-upload-media.mjs.map +2 -2
- package/build-module/components/post-revisions-preview/revisions-slider.mjs +3 -1
- package/build-module/components/post-revisions-preview/revisions-slider.mjs.map +2 -2
- package/build-module/components/post-taxonomies/flat-term-selector.mjs +0 -1
- package/build-module/components/post-taxonomies/flat-term-selector.mjs.map +2 -2
- package/build-module/components/post-taxonomies/hierarchical-term-selector.mjs +0 -2
- package/build-module/components/post-taxonomies/hierarchical-term-selector.mjs.map +2 -2
- package/build-module/components/post-template/classic-theme.mjs +0 -1
- package/build-module/components/post-template/classic-theme.mjs.map +2 -2
- package/build-module/components/preferences-modal/index.mjs +54 -28
- package/build-module/components/preferences-modal/index.mjs.map +2 -2
- package/build-module/components/preview-dropdown/index.mjs +3 -3
- package/build-module/components/preview-dropdown/index.mjs.map +2 -2
- package/build-module/components/provider/use-block-editor-settings.mjs +23 -3
- package/build-module/components/provider/use-block-editor-settings.mjs.map +2 -2
- package/build-module/components/sidebar/dataform-post-summary.mjs +6 -2
- package/build-module/components/sidebar/dataform-post-summary.mjs.map +2 -2
- package/build-module/components/sidebar/index.mjs +29 -42
- package/build-module/components/sidebar/index.mjs.map +2 -2
- package/build-module/components/sidebar/post-summary.mjs +0 -13
- package/build-module/components/sidebar/post-summary.mjs.map +2 -2
- package/build-module/dataviews/store/private-actions.mjs +26 -19
- package/build-module/dataviews/store/private-actions.mjs.map +2 -2
- package/build-module/store/private-actions.mjs +5 -2
- package/build-module/store/private-actions.mjs.map +2 -2
- package/build-module/utils/media-sideload-from-url/index.mjs +32 -0
- package/build-module/utils/media-sideload-from-url/index.mjs.map +7 -0
- package/build-style/style-rtl.css +65 -33
- package/build-style/style.css +65 -33
- package/build-types/components/collab-sidebar/format.d.ts +17 -0
- package/build-types/components/collab-sidebar/format.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/hooks.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/index.d.ts.map +1 -1
- package/build-types/components/collab-sidebar/note-highlight-styles.d.ts +31 -0
- package/build-types/components/collab-sidebar/note-highlight-styles.d.ts.map +1 -0
- package/build-types/components/collab-sidebar/utils.d.ts +82 -2
- package/build-types/components/collab-sidebar/utils.d.ts.map +1 -1
- package/build-types/components/collaborators-presence/use-collaborator-notifications.d.ts.map +1 -1
- package/build-types/components/commands/index.d.ts.map +1 -1
- package/build-types/components/document-bar/index.d.ts.map +1 -1
- package/build-types/components/entities-saved-states/index.d.ts.map +1 -1
- package/build-types/components/media-categories/index.d.ts +12 -3
- package/build-types/components/media-categories/index.d.ts.map +1 -1
- package/build-types/components/page-attributes/parent.d.ts.map +1 -1
- package/build-types/components/post-author/combobox.d.ts.map +1 -1
- package/build-types/components/post-author/select.d.ts.map +1 -1
- package/build-types/components/post-preview-button/index.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/maybe-upload-media.d.ts.map +1 -1
- package/build-types/components/post-revisions-preview/revisions-slider.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/flat-term-selector.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/hierarchical-term-selector.d.ts.map +1 -1
- package/build-types/components/post-template/classic-theme.d.ts.map +1 -1
- package/build-types/components/provider/use-block-editor-settings.d.ts.map +1 -1
- package/build-types/components/sidebar/dataform-post-summary.d.ts.map +1 -1
- package/build-types/components/sidebar/index.d.ts.map +1 -1
- package/build-types/components/sidebar/post-summary.d.ts.map +1 -1
- package/build-types/dataviews/store/private-actions.d.ts.map +1 -1
- package/build-types/store/private-actions.d.ts.map +1 -1
- package/build-types/store/selectors.d.ts.map +1 -1
- package/build-types/utils/get-template-part-icon.d.ts.map +1 -1
- package/build-types/utils/media-sideload-from-url/index.d.ts +18 -0
- package/build-types/utils/media-sideload-from-url/index.d.ts.map +1 -0
- package/package.json +48 -46
- package/src/components/collab-sidebar/format.js +72 -0
- package/src/components/collab-sidebar/hooks.js +203 -22
- package/src/components/collab-sidebar/index.js +19 -5
- package/src/components/collab-sidebar/note-highlight-styles.js +83 -0
- package/src/components/collab-sidebar/style.scss +9 -0
- package/src/components/collab-sidebar/test/note-highlight-styles.js +106 -0
- package/src/components/collab-sidebar/test/utils.js +471 -0
- package/src/components/collab-sidebar/utils.js +225 -2
- package/src/components/collaborators-presence/test/use-collaborator-notifications.ts +265 -262
- package/src/components/collaborators-presence/use-collaborator-notifications.ts +70 -34
- package/src/components/commands/index.js +142 -0
- package/src/components/document-bar/index.js +0 -9
- package/src/components/document-bar/style.scss +0 -17
- package/src/components/entities-saved-states/index.js +1 -5
- package/src/components/header/style.scss +7 -3
- package/src/components/media-categories/index.js +160 -6
- package/src/components/media-categories/test/index.js +202 -0
- package/src/components/page-attributes/parent.js +0 -1
- package/src/components/post-author/combobox.js +0 -1
- package/src/components/post-author/select.js +0 -1
- package/src/components/post-preview-button/index.js +68 -2
- package/src/components/post-publish-panel/maybe-upload-media.js +25 -30
- package/src/components/post-publish-panel/style.scss +1 -1
- package/src/components/post-publish-panel/test/__snapshots__/index.js.snap +11 -127
- package/src/components/post-revisions-preview/revisions-slider.js +4 -1
- package/src/components/post-revisions-preview/test/block-diff.js +2 -2
- package/src/components/post-taxonomies/flat-term-selector.js +0 -1
- package/src/components/post-taxonomies/hierarchical-term-selector.js +0 -2
- package/src/components/post-template/classic-theme.js +0 -1
- package/src/components/preferences-modal/index.js +40 -22
- package/src/components/preferences-modal/test/index.js +83 -0
- package/src/components/preview-dropdown/index.js +3 -3
- package/src/components/provider/use-block-editor-settings.js +42 -1
- package/src/components/sidebar/dataform-post-summary.js +13 -1
- package/src/components/sidebar/index.js +32 -47
- package/src/components/sidebar/post-summary.js +0 -17
- package/src/dataviews/store/private-actions.ts +30 -26
- package/src/store/private-actions.js +6 -2
- package/src/utils/media-sideload-from-url/index.js +54 -0
- package/src/utils/media-sideload-from-url/test/index.js +162 -0
- package/build/components/post-publish-panel/media-util.cjs +0 -72
- package/build/components/post-publish-panel/media-util.cjs.map +0 -7
- package/build-module/components/post-publish-panel/media-util.mjs +0 -46
- package/build-module/components/post-publish-panel/media-util.mjs.map +0 -7
- package/build-types/components/post-publish-panel/media-util.d.ts +0 -20
- package/build-types/components/post-publish-panel/media-util.d.ts.map +0 -1
- package/src/components/post-publish-panel/media-util.js +0 -87
- package/src/components/post-publish-panel/test/media-util.js +0 -118
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/post-taxonomies/hierarchical-term-selector.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tSpinner,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport {\n\tstore as coreStore,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { normalizeTextString } = unlock( componentsPrivateApis );\nconst { RECEIVE_INTERMEDIATE_RESULTS } = unlock( coreDataPrivateApis );\n\n/**\n * Module Constants\n */\nconst DEFAULT_QUERY = {\n\tper_page: -1,\n\torderby: 'name',\n\torder: 'asc',\n\t_fields: 'id,name,parent',\n\tcontext: 'view',\n\t[ RECEIVE_INTERMEDIATE_RESULTS ]: true,\n};\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\nconst EMPTY_ARRAY = [];\n\n/**\n * Sort Terms by Selected.\n *\n * @param {Object[]} termsTree Array of terms in tree format.\n * @param {number[]} terms Selected terms.\n *\n * @return {Object[]} Sorted array of terms.\n */\nexport function sortBySelected( termsTree, terms ) {\n\tconst treeHasSelection = ( termTree ) => {\n\t\tif ( terms.indexOf( termTree.id ) !== -1 ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( undefined === termTree.children ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\ttermTree.children\n\t\t\t\t.map( treeHasSelection )\n\t\t\t\t.filter( ( child ) => child ).length > 0\n\t\t);\n\t};\n\tconst termOrChildIsSelected = ( termA, termB ) => {\n\t\tconst termASelected = treeHasSelection( termA );\n\t\tconst termBSelected = treeHasSelection( termB );\n\n\t\tif ( termASelected === termBSelected ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( termASelected && ! termBSelected ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif ( ! termASelected && termBSelected ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t};\n\tconst newTermTree = [ ...termsTree ];\n\tnewTermTree.sort( termOrChildIsSelected );\n\treturn newTermTree;\n}\n\n/**\n * Find term by parent id or name.\n *\n * @param {Object[]} terms Array of Terms.\n * @param {number|string} parent id.\n * @param {string} name Term name.\n * @return {Object} Term object.\n */\nexport function findTerm( terms, parent, name ) {\n\treturn terms.find( ( term ) => {\n\t\treturn (\n\t\t\t( ( ! term.parent && ! parent ) ||\n\t\t\t\tparseInt( term.parent ) === parseInt( parent ) ) &&\n\t\t\tterm.name.toLowerCase() === name.toLowerCase()\n\t\t);\n\t} );\n}\n\n/**\n * Get filter matcher function.\n *\n * @param {string} filterValue Filter value.\n * @return {(function(Object): (Object|boolean))} Matcher function.\n */\nexport function getFilterMatcher( filterValue ) {\n\tconst matchTermsForFilter = ( originalTerm ) => {\n\t\tif ( '' === filterValue ) {\n\t\t\treturn originalTerm;\n\t\t}\n\n\t\t// Shallow clone, because we'll be filtering the term's children and\n\t\t// don't want to modify the original term.\n\t\tconst term = { ...originalTerm };\n\n\t\t// Map and filter the children, recursive so we deal with grandchildren\n\t\t// and any deeper levels.\n\t\tif ( term.children.length > 0 ) {\n\t\t\tterm.children = term.children\n\t\t\t\t.map( matchTermsForFilter )\n\t\t\t\t.filter( ( child ) => child );\n\t\t}\n\n\t\t// If the term's name contains the filterValue, or it has children\n\t\t// (i.e. some child matched at some point in the tree) then return it.\n\t\tif (\n\t\t\t-1 !==\n\t\t\t\tnormalizeTextString( term.name ).indexOf(\n\t\t\t\t\tnormalizeTextString( filterValue )\n\t\t\t\t) ||\n\t\t\tterm.children.length > 0\n\t\t) {\n\t\t\treturn term;\n\t\t}\n\n\t\t// Otherwise, return false. After mapping, the list of terms will need\n\t\t// to have false values filtered out.\n\t\treturn false;\n\t};\n\treturn matchTermsForFilter;\n}\n\n/**\n * Hierarchical term selector.\n *\n * @param {Object} props Component props.\n * @param {string} props.slug Taxonomy slug.\n * @return {Element} Hierarchical term selector component.\n */\nexport function HierarchicalTermSelector( { slug } ) {\n\tconst [ adding, setAdding ] = useState( false );\n\tconst [ formName, setFormName ] = useState( '' );\n\t/**\n\t * @type {[number|'', Function]}\n\t */\n\tconst [ formParent, setFormParent ] = useState( '' );\n\tconst [ showForm, setShowForm ] = useState( false );\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ filteredTermsTree, setFilteredTermsTree ] = useState( [] );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tconst {\n\t\thasCreateAction,\n\t\thasAssignAction,\n\t\tterms,\n\t\tloading,\n\t\tavailableTerms,\n\t\ttaxonomy,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecord, getEntityRecords, isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getEntityRecord( 'root', 'taxonomy', slug );\n\t\t\tconst post = getCurrentPost();\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? !! post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ]\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? !! post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ]\n\t\t\t\t\t: false,\n\t\t\t\tterms: _taxonomy\n\t\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\tloading: isResolving( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tDEFAULT_QUERY,\n\t\t\t\t] ),\n\t\t\t\tavailableTerms:\n\t\t\t\t\tgetEntityRecords( 'taxonomy', slug, DEFAULT_QUERY ) ||\n\t\t\t\t\tEMPTY_ARRAY,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst availableTermsTree = useMemo(\n\t\t() => sortBySelected( buildTermsTree( availableTerms ), terms ),\n\t\t// Remove `terms` from the dependency list to avoid reordering every time\n\t\t// checking or unchecking a term.\n\t\t[ availableTerms ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Append new term.\n\t *\n\t * @param {Object} term Term object.\n\t * @return {Promise} A promise that resolves to save term object.\n\t */\n\tconst addTerm = ( term ) => {\n\t\treturn saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\tthrowOnError: true,\n\t\t} );\n\t};\n\n\t/**\n\t * Update terms for post.\n\t *\n\t * @param {number[]} termIds Term ids.\n\t */\n\tconst onUpdateTerms = ( termIds ) => {\n\t\teditPost( { [ taxonomy.rest_base ]: termIds } );\n\t};\n\n\t/**\n\t * Handler for checking term.\n\t *\n\t * @param {number} termId\n\t */\n\tconst onChange = ( termId ) => {\n\t\tconst hasTerm = terms.includes( termId );\n\t\tconst newTerms = hasTerm\n\t\t\t? terms.filter( ( id ) => id !== termId )\n\t\t\t: [ ...terms, termId ];\n\t\tonUpdateTerms( newTerms );\n\t};\n\n\tconst onChangeFormName = ( value ) => {\n\t\tsetFormName( value );\n\t};\n\n\t/**\n\t * Handler for changing form parent.\n\t *\n\t * @param {number|''} parentId Parent post id.\n\t */\n\tconst onChangeFormParent = ( parentId ) => {\n\t\tsetFormParent( parentId );\n\t};\n\n\tconst onToggleForm = () => {\n\t\tsetShowForm( ! showForm );\n\t};\n\n\tconst onAddTerm = async ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( formName === '' || adding ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the term we are adding already exists.\n\t\tconst existingTerm = findTerm( availableTerms, formParent, formName );\n\t\tif ( existingTerm ) {\n\t\t\t// If the term we are adding exists but is not selected select it.\n\t\t\tif ( ! terms.some( ( term ) => term === existingTerm.id ) ) {\n\t\t\t\tonUpdateTerms( [ ...terms, existingTerm.id ] );\n\t\t\t}\n\n\t\t\tsetFormName( '' );\n\t\t\tsetFormParent( '' );\n\n\t\t\treturn;\n\t\t}\n\t\tsetAdding( true );\n\t\tlet newTerm;\n\t\ttry {\n\t\t\tnewTerm = await addTerm( {\n\t\t\t\tname: formName,\n\t\t\t\tparent: formParent ? formParent : undefined,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\tconst defaultName =\n\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: term name. */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ decodeEntities( term.name ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! term.children.length && (\n\t\t\t\t\t\t<div className=\"editor-post-taxonomies__hierarchical-terms-subchoices\">\n\t\t\t\t\t\t\t{ renderTerms( term.children ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\t};\n\n\tconst labelWithFallback = (\n\t\tlabelProperty,\n\t\tfallbackIsCategory,\n\t\tfallbackIsNotCategory\n\t) =>\n\t\ttaxonomy?.labels?.[ labelProperty ] ??\n\t\t( slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory );\n\n\tconst newTermButtonLabel = labelWithFallback(\n\t\t'add_new_item',\n\t\t__( 'Add Category' ),\n\t\t__( 'Add Term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add Category' ),\n\t\t__( 'Add Term' )\n\t);\n\tconst parentSelectLabel = labelWithFallback(\n\t\t'parent_item',\n\t\t__( 'Parent Category' ),\n\t\t__( 'Parent Term' )\n\t);\n\tconst noParentOption = `— ${ parentSelectLabel } —`;\n\tconst newTermSubmitLabel = newTermButtonLabel;\n\tconst filterLabel = taxonomy?.labels?.search_items ?? __( 'Search Terms' );\n\tconst groupLabel = taxonomy?.name ?? __( 'Terms' );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t{ showFilter && ! loading && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tplaceholder={ filterLabel }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ setFilter }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ loading && (\n\t\t\t\t<Flex\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t// Match SearchControl height to prevent layout shift.\n\t\t\t\t\t\theight: '40px',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-list\"\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"group\"\n\t\t\t\taria-label={ groupLabel }\n\t\t\t>\n\t\t\t\t{ renderTerms(\n\t\t\t\t\t'' !== filterValue ? filteredTermsTree : availableTermsTree\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! loading && hasCreateAction && (\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-input\"\n\t\t\t\t\t\t\tlabel={ newTermLabel }\n\t\t\t\t\t\t\tvalue={ formName }\n\t\t\t\t\t\t\tonChange={ onChangeFormName }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ !! availableTerms.length && (\n\t\t\t\t\t\t\t<TreeSelect\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tlabel={ parentSelectLabel }\n\t\t\t\t\t\t\t\tnoOptionLabel={ noParentOption }\n\t\t\t\t\t\t\t\tonChange={ onChangeFormParent }\n\t\t\t\t\t\t\t\tselectedId={ formParent }\n\t\t\t\t\t\t\t\ttree={ availableTermsTree }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-submit\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ newTermSubmitLabel }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</Flex>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )(\n\tHierarchicalTermSelector\n);\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\n\tFlex,\n\tFlexItem,\n\tSearchControl,\n\tSpinner,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport {\n\tstore as coreStore,\n\tprivateApis as coreDataPrivateApis,\n} from '@wordpress/core-data';\nimport { speak } from '@wordpress/a11y';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { normalizeTextString } = unlock( componentsPrivateApis );\nconst { RECEIVE_INTERMEDIATE_RESULTS } = unlock( coreDataPrivateApis );\n\n/**\n * Module Constants\n */\nconst DEFAULT_QUERY = {\n\tper_page: -1,\n\torderby: 'name',\n\torder: 'asc',\n\t_fields: 'id,name,parent',\n\tcontext: 'view',\n\t[ RECEIVE_INTERMEDIATE_RESULTS ]: true,\n};\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\nconst EMPTY_ARRAY = [];\n\n/**\n * Sort Terms by Selected.\n *\n * @param {Object[]} termsTree Array of terms in tree format.\n * @param {number[]} terms Selected terms.\n *\n * @return {Object[]} Sorted array of terms.\n */\nexport function sortBySelected( termsTree, terms ) {\n\tconst treeHasSelection = ( termTree ) => {\n\t\tif ( terms.indexOf( termTree.id ) !== -1 ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( undefined === termTree.children ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn (\n\t\t\ttermTree.children\n\t\t\t\t.map( treeHasSelection )\n\t\t\t\t.filter( ( child ) => child ).length > 0\n\t\t);\n\t};\n\tconst termOrChildIsSelected = ( termA, termB ) => {\n\t\tconst termASelected = treeHasSelection( termA );\n\t\tconst termBSelected = treeHasSelection( termB );\n\n\t\tif ( termASelected === termBSelected ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif ( termASelected && ! termBSelected ) {\n\t\t\treturn -1;\n\t\t}\n\n\t\tif ( ! termASelected && termBSelected ) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 0;\n\t};\n\tconst newTermTree = [ ...termsTree ];\n\tnewTermTree.sort( termOrChildIsSelected );\n\treturn newTermTree;\n}\n\n/**\n * Find term by parent id or name.\n *\n * @param {Object[]} terms Array of Terms.\n * @param {number|string} parent id.\n * @param {string} name Term name.\n * @return {Object} Term object.\n */\nexport function findTerm( terms, parent, name ) {\n\treturn terms.find( ( term ) => {\n\t\treturn (\n\t\t\t( ( ! term.parent && ! parent ) ||\n\t\t\t\tparseInt( term.parent ) === parseInt( parent ) ) &&\n\t\t\tterm.name.toLowerCase() === name.toLowerCase()\n\t\t);\n\t} );\n}\n\n/**\n * Get filter matcher function.\n *\n * @param {string} filterValue Filter value.\n * @return {(function(Object): (Object|boolean))} Matcher function.\n */\nexport function getFilterMatcher( filterValue ) {\n\tconst matchTermsForFilter = ( originalTerm ) => {\n\t\tif ( '' === filterValue ) {\n\t\t\treturn originalTerm;\n\t\t}\n\n\t\t// Shallow clone, because we'll be filtering the term's children and\n\t\t// don't want to modify the original term.\n\t\tconst term = { ...originalTerm };\n\n\t\t// Map and filter the children, recursive so we deal with grandchildren\n\t\t// and any deeper levels.\n\t\tif ( term.children.length > 0 ) {\n\t\t\tterm.children = term.children\n\t\t\t\t.map( matchTermsForFilter )\n\t\t\t\t.filter( ( child ) => child );\n\t\t}\n\n\t\t// If the term's name contains the filterValue, or it has children\n\t\t// (i.e. some child matched at some point in the tree) then return it.\n\t\tif (\n\t\t\t-1 !==\n\t\t\t\tnormalizeTextString( term.name ).indexOf(\n\t\t\t\t\tnormalizeTextString( filterValue )\n\t\t\t\t) ||\n\t\t\tterm.children.length > 0\n\t\t) {\n\t\t\treturn term;\n\t\t}\n\n\t\t// Otherwise, return false. After mapping, the list of terms will need\n\t\t// to have false values filtered out.\n\t\treturn false;\n\t};\n\treturn matchTermsForFilter;\n}\n\n/**\n * Hierarchical term selector.\n *\n * @param {Object} props Component props.\n * @param {string} props.slug Taxonomy slug.\n * @return {Element} Hierarchical term selector component.\n */\nexport function HierarchicalTermSelector( { slug } ) {\n\tconst [ adding, setAdding ] = useState( false );\n\tconst [ formName, setFormName ] = useState( '' );\n\t/**\n\t * @type {[number|'', Function]}\n\t */\n\tconst [ formParent, setFormParent ] = useState( '' );\n\tconst [ showForm, setShowForm ] = useState( false );\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ filteredTermsTree, setFilteredTermsTree ] = useState( [] );\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\n\tconst {\n\t\thasCreateAction,\n\t\thasAssignAction,\n\t\tterms,\n\t\tloading,\n\t\tavailableTerms,\n\t\ttaxonomy,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecord, getEntityRecords, isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getEntityRecord( 'root', 'taxonomy', slug );\n\t\t\tconst post = getCurrentPost();\n\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? !! post._links?.[\n\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base\n\t\t\t\t\t ]\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? !! post._links?.[\n\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base\n\t\t\t\t\t ]\n\t\t\t\t\t: false,\n\t\t\t\tterms: _taxonomy\n\t\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\tloading: isResolving( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tDEFAULT_QUERY,\n\t\t\t\t] ),\n\t\t\t\tavailableTerms:\n\t\t\t\t\tgetEntityRecords( 'taxonomy', slug, DEFAULT_QUERY ) ||\n\t\t\t\t\tEMPTY_ARRAY,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst availableTermsTree = useMemo(\n\t\t() => sortBySelected( buildTermsTree( availableTerms ), terms ),\n\t\t// Remove `terms` from the dependency list to avoid reordering every time\n\t\t// checking or unchecking a term.\n\t\t[ availableTerms ]\n\t);\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Append new term.\n\t *\n\t * @param {Object} term Term object.\n\t * @return {Promise} A promise that resolves to save term object.\n\t */\n\tconst addTerm = ( term ) => {\n\t\treturn saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\tthrowOnError: true,\n\t\t} );\n\t};\n\n\t/**\n\t * Update terms for post.\n\t *\n\t * @param {number[]} termIds Term ids.\n\t */\n\tconst onUpdateTerms = ( termIds ) => {\n\t\teditPost( { [ taxonomy.rest_base ]: termIds } );\n\t};\n\n\t/**\n\t * Handler for checking term.\n\t *\n\t * @param {number} termId\n\t */\n\tconst onChange = ( termId ) => {\n\t\tconst hasTerm = terms.includes( termId );\n\t\tconst newTerms = hasTerm\n\t\t\t? terms.filter( ( id ) => id !== termId )\n\t\t\t: [ ...terms, termId ];\n\t\tonUpdateTerms( newTerms );\n\t};\n\n\tconst onChangeFormName = ( value ) => {\n\t\tsetFormName( value );\n\t};\n\n\t/**\n\t * Handler for changing form parent.\n\t *\n\t * @param {number|''} parentId Parent post id.\n\t */\n\tconst onChangeFormParent = ( parentId ) => {\n\t\tsetFormParent( parentId );\n\t};\n\n\tconst onToggleForm = () => {\n\t\tsetShowForm( ! showForm );\n\t};\n\n\tconst onAddTerm = async ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( formName === '' || adding ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if the term we are adding already exists.\n\t\tconst existingTerm = findTerm( availableTerms, formParent, formName );\n\t\tif ( existingTerm ) {\n\t\t\t// If the term we are adding exists but is not selected select it.\n\t\t\tif ( ! terms.some( ( term ) => term === existingTerm.id ) ) {\n\t\t\t\tonUpdateTerms( [ ...terms, existingTerm.id ] );\n\t\t\t}\n\n\t\t\tsetFormName( '' );\n\t\t\tsetFormParent( '' );\n\n\t\t\treturn;\n\t\t}\n\t\tsetAdding( true );\n\t\tlet newTerm;\n\t\ttry {\n\t\t\tnewTerm = await addTerm( {\n\t\t\t\tname: formName,\n\t\t\t\tparent: formParent ? formParent : undefined,\n\t\t\t} );\n\t\t} catch ( error ) {\n\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\ttype: 'snackbar',\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\tconst defaultName =\n\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' );\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: term name. */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\ttaxonomy?.labels?.singular_name ?? defaultName\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ decodeEntities( term.name ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! term.children.length && (\n\t\t\t\t\t\t<div className=\"editor-post-taxonomies__hierarchical-terms-subchoices\">\n\t\t\t\t\t\t\t{ renderTerms( term.children ) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t);\n\t\t} );\n\t};\n\n\tconst labelWithFallback = (\n\t\tlabelProperty,\n\t\tfallbackIsCategory,\n\t\tfallbackIsNotCategory\n\t) =>\n\t\ttaxonomy?.labels?.[ labelProperty ] ??\n\t\t( slug === 'category' ? fallbackIsCategory : fallbackIsNotCategory );\n\n\tconst newTermButtonLabel = labelWithFallback(\n\t\t'add_new_item',\n\t\t__( 'Add Category' ),\n\t\t__( 'Add Term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add Category' ),\n\t\t__( 'Add Term' )\n\t);\n\tconst parentSelectLabel = labelWithFallback(\n\t\t'parent_item',\n\t\t__( 'Parent Category' ),\n\t\t__( 'Parent Term' )\n\t);\n\tconst noParentOption = `— ${ parentSelectLabel } —`;\n\tconst newTermSubmitLabel = newTermButtonLabel;\n\tconst filterLabel = taxonomy?.labels?.search_items ?? __( 'Search Terms' );\n\tconst groupLabel = taxonomy?.name ?? __( 'Terms' );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t{ showFilter && ! loading && (\n\t\t\t\t<SearchControl\n\t\t\t\t\tlabel={ filterLabel }\n\t\t\t\t\tplaceholder={ filterLabel }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ setFilter }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ loading && (\n\t\t\t\t<Flex\n\t\t\t\t\tjustify=\"center\"\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t// Match SearchControl height to prevent layout shift.\n\t\t\t\t\t\theight: '40px',\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<Spinner />\n\t\t\t\t</Flex>\n\t\t\t) }\n\t\t\t<div\n\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-list\"\n\t\t\t\ttabIndex=\"0\"\n\t\t\t\trole=\"group\"\n\t\t\t\taria-label={ groupLabel }\n\t\t\t>\n\t\t\t\t{ renderTerms(\n\t\t\t\t\t'' !== filterValue ? filteredTermsTree : availableTermsTree\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! loading && hasCreateAction && (\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<Flex direction=\"column\" gap=\"4\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-input\"\n\t\t\t\t\t\t\tlabel={ newTermLabel }\n\t\t\t\t\t\t\tvalue={ formName }\n\t\t\t\t\t\t\tonChange={ onChangeFormName }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ !! availableTerms.length && (\n\t\t\t\t\t\t\t<TreeSelect\n\t\t\t\t\t\t\t\tlabel={ parentSelectLabel }\n\t\t\t\t\t\t\t\tnoOptionLabel={ noParentOption }\n\t\t\t\t\t\t\t\tonChange={ onChangeFormParent }\n\t\t\t\t\t\t\t\tselectedId={ formParent }\n\t\t\t\t\t\t\t\ttree={ availableTermsTree }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-submit\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ newTermSubmitLabel }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</Flex>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )(\n\tHierarchicalTermSelector\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["componentsPrivateApis", "coreDataPrivateApis", "editorStore", "coreStore", "noticesStore"]
|
|
7
7
|
}
|
|
@@ -144,7 +144,6 @@ function PostTemplateDropdownContent({ onClose }) {
|
|
|
144
144
|
!allowSwitchingTemplate ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.Notice, { status: "warning", isDismissible: false, children: (0, import_i18n.__)("The posts page template cannot be changed.") }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
145
145
|
import_components.SelectControl,
|
|
146
146
|
{
|
|
147
|
-
__next40pxDefaultSize: true,
|
|
148
147
|
hideLabelFromVision: true,
|
|
149
148
|
label: (0, import_i18n.__)("Template"),
|
|
150
149
|
value: selectedOption?.value ?? "",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/post-template/classic-theme.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl, Dropdown, Button, Notice } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useState, useMemo } from '@wordpress/element';\nimport { addTemplate } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport CreateNewTemplateModal from './create-new-template-modal';\nimport { useAllowSwitchingTemplates } from './hooks';\nimport PostPanelRow from '../post-panel-row';\n\nfunction PostTemplateToggle( { isOpen, onClick } ) {\n\tconst templateTitle = useSelect( ( select ) => {\n\t\tconst templateSlug =\n\t\t\tselect( editorStore ).getEditedPostAttribute( 'template' );\n\n\t\tconst { supportsTemplateMode, availableTemplates } =\n\t\t\tselect( editorStore ).getEditorSettings();\n\t\tif ( ! supportsTemplateMode && availableTemplates[ templateSlug ] ) {\n\t\t\treturn availableTemplates[ templateSlug ];\n\t\t}\n\t\tconst template =\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} ) && select( editorStore ).getCurrentTemplateId();\n\t\treturn (\n\t\t\ttemplate?.title ||\n\t\t\ttemplate?.slug ||\n\t\t\tavailableTemplates?.[ templateSlug ]\n\t\t);\n\t}, [] );\n\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\taria-label={ __( 'Template options' ) }\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ templateTitle ?? __( 'Default template' ) }\n\t\t</Button>\n\t);\n}\n\n/**\n * Renders the dropdown content for selecting a post template.\n *\n * @param {Object} props The component props.\n * @param {Function} props.onClose The function to close the dropdown.\n *\n * @return {React.ReactNode} The rendered dropdown content.\n */\nfunction PostTemplateDropdownContent( { onClose } ) {\n\tconst allowSwitchingTemplate = useAllowSwitchingTemplates();\n\tconst {\n\t\tavailableTemplates,\n\t\tfetchedTemplates,\n\t\tselectedTemplateSlug,\n\t\tcanCreate,\n\t\tcanEdit,\n\t\tcurrentTemplateId,\n\t\tonNavigateToEntityRecord,\n\t\tgetEditorSettings,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser, getEntityRecords } = select( coreStore );\n\t\t\tconst editorSettings = select( editorStore ).getEditorSettings();\n\t\t\tconst canCreateTemplates = canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\tconst _currentTemplateId =\n\t\t\t\tselect( editorStore ).getCurrentTemplateId();\n\t\t\treturn {\n\t\t\t\tavailableTemplates: editorSettings.availableTemplates,\n\t\t\t\tfetchedTemplates: canCreateTemplates\n\t\t\t\t\t? getEntityRecords( 'postType', 'wp_template', {\n\t\t\t\t\t\t\tpost_type:\n\t\t\t\t\t\t\t\tselect( editorStore ).getCurrentPostType(),\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t } )\n\t\t\t\t\t: undefined,\n\t\t\t\tselectedTemplateSlug:\n\t\t\t\t\tselect( editorStore ).getEditedPostAttribute( 'template' ),\n\t\t\t\tcanCreate:\n\t\t\t\t\tallowSwitchingTemplate &&\n\t\t\t\t\tcanCreateTemplates &&\n\t\t\t\t\teditorSettings.supportsTemplateMode,\n\t\t\t\tcanEdit:\n\t\t\t\t\tallowSwitchingTemplate &&\n\t\t\t\t\tcanCreateTemplates &&\n\t\t\t\t\teditorSettings.supportsTemplateMode &&\n\t\t\t\t\t!! _currentTemplateId,\n\t\t\t\tcurrentTemplateId: _currentTemplateId,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\teditorSettings.onNavigateToEntityRecord,\n\t\t\t\tgetEditorSettings: select( editorStore ).getEditorSettings,\n\t\t\t};\n\t\t},\n\t\t[ allowSwitchingTemplate ]\n\t);\n\n\tconst options = useMemo(\n\t\t() =>\n\t\t\tObject.entries( {\n\t\t\t\t...availableTemplates,\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t( fetchedTemplates ?? [] ).map( ( { slug, title } ) => [\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\ttitle.rendered,\n\t\t\t\t\t] )\n\t\t\t\t),\n\t\t\t} ).map( ( [ slug, title ] ) => ( { value: slug, label: title } ) ),\n\t\t[ availableTemplates, fetchedTemplates ]\n\t);\n\n\tconst selectedOption =\n\t\toptions.find( ( option ) => option.value === selectedTemplateSlug ) ??\n\t\toptions.find( ( option ) => ! option.value ); // The default option has '' value.\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isCreateModalOpen, setIsCreateModalOpen ] = useState( false );\n\n\treturn (\n\t\t<div className=\"editor-post-template__classic-theme-dropdown\">\n\t\t\t<InspectorPopoverHeader\n\t\t\t\ttitle={ __( 'Template' ) }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Templates define the way content is displayed when viewing your site.'\n\t\t\t\t) }\n\t\t\t\tactions={\n\t\t\t\t\tcanCreate\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ticon: addTemplate,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Add template' ),\n\t\t\t\t\t\t\t\t\tonClick: () => setIsCreateModalOpen( true ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t ]\n\t\t\t\t\t\t: []\n\t\t\t\t}\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t\t{ ! allowSwitchingTemplate ? (\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __( 'The posts page template cannot be changed.' ) }\n\t\t\t\t</Notice>\n\t\t\t) : (\n\t\t\t\t<SelectControl\n\t\t\t\t\
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl, Dropdown, Button, Notice } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { useState, useMemo } from '@wordpress/element';\nimport { addTemplate } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport CreateNewTemplateModal from './create-new-template-modal';\nimport { useAllowSwitchingTemplates } from './hooks';\nimport PostPanelRow from '../post-panel-row';\n\nfunction PostTemplateToggle( { isOpen, onClick } ) {\n\tconst templateTitle = useSelect( ( select ) => {\n\t\tconst templateSlug =\n\t\t\tselect( editorStore ).getEditedPostAttribute( 'template' );\n\n\t\tconst { supportsTemplateMode, availableTemplates } =\n\t\t\tselect( editorStore ).getEditorSettings();\n\t\tif ( ! supportsTemplateMode && availableTemplates[ templateSlug ] ) {\n\t\t\treturn availableTemplates[ templateSlug ];\n\t\t}\n\t\tconst template =\n\t\t\tselect( coreStore ).canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} ) && select( editorStore ).getCurrentTemplateId();\n\t\treturn (\n\t\t\ttemplate?.title ||\n\t\t\ttemplate?.slug ||\n\t\t\tavailableTemplates?.[ templateSlug ]\n\t\t);\n\t}, [] );\n\n\treturn (\n\t\t<Button\n\t\t\t__next40pxDefaultSize\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-expanded={ isOpen }\n\t\t\taria-label={ __( 'Template options' ) }\n\t\t\tonClick={ onClick }\n\t\t>\n\t\t\t{ templateTitle ?? __( 'Default template' ) }\n\t\t</Button>\n\t);\n}\n\n/**\n * Renders the dropdown content for selecting a post template.\n *\n * @param {Object} props The component props.\n * @param {Function} props.onClose The function to close the dropdown.\n *\n * @return {React.ReactNode} The rendered dropdown content.\n */\nfunction PostTemplateDropdownContent( { onClose } ) {\n\tconst allowSwitchingTemplate = useAllowSwitchingTemplates();\n\tconst {\n\t\tavailableTemplates,\n\t\tfetchedTemplates,\n\t\tselectedTemplateSlug,\n\t\tcanCreate,\n\t\tcanEdit,\n\t\tcurrentTemplateId,\n\t\tonNavigateToEntityRecord,\n\t\tgetEditorSettings,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { canUser, getEntityRecords } = select( coreStore );\n\t\t\tconst editorSettings = select( editorStore ).getEditorSettings();\n\t\t\tconst canCreateTemplates = canUser( 'create', {\n\t\t\t\tkind: 'postType',\n\t\t\t\tname: 'wp_template',\n\t\t\t} );\n\t\t\tconst _currentTemplateId =\n\t\t\t\tselect( editorStore ).getCurrentTemplateId();\n\t\t\treturn {\n\t\t\t\tavailableTemplates: editorSettings.availableTemplates,\n\t\t\t\tfetchedTemplates: canCreateTemplates\n\t\t\t\t\t? getEntityRecords( 'postType', 'wp_template', {\n\t\t\t\t\t\t\tpost_type:\n\t\t\t\t\t\t\t\tselect( editorStore ).getCurrentPostType(),\n\t\t\t\t\t\t\tper_page: -1,\n\t\t\t\t\t } )\n\t\t\t\t\t: undefined,\n\t\t\t\tselectedTemplateSlug:\n\t\t\t\t\tselect( editorStore ).getEditedPostAttribute( 'template' ),\n\t\t\t\tcanCreate:\n\t\t\t\t\tallowSwitchingTemplate &&\n\t\t\t\t\tcanCreateTemplates &&\n\t\t\t\t\teditorSettings.supportsTemplateMode,\n\t\t\t\tcanEdit:\n\t\t\t\t\tallowSwitchingTemplate &&\n\t\t\t\t\tcanCreateTemplates &&\n\t\t\t\t\teditorSettings.supportsTemplateMode &&\n\t\t\t\t\t!! _currentTemplateId,\n\t\t\t\tcurrentTemplateId: _currentTemplateId,\n\t\t\t\tonNavigateToEntityRecord:\n\t\t\t\t\teditorSettings.onNavigateToEntityRecord,\n\t\t\t\tgetEditorSettings: select( editorStore ).getEditorSettings,\n\t\t\t};\n\t\t},\n\t\t[ allowSwitchingTemplate ]\n\t);\n\n\tconst options = useMemo(\n\t\t() =>\n\t\t\tObject.entries( {\n\t\t\t\t...availableTemplates,\n\t\t\t\t...Object.fromEntries(\n\t\t\t\t\t( fetchedTemplates ?? [] ).map( ( { slug, title } ) => [\n\t\t\t\t\t\tslug,\n\t\t\t\t\t\ttitle.rendered,\n\t\t\t\t\t] )\n\t\t\t\t),\n\t\t\t} ).map( ( [ slug, title ] ) => ( { value: slug, label: title } ) ),\n\t\t[ availableTemplates, fetchedTemplates ]\n\t);\n\n\tconst selectedOption =\n\t\toptions.find( ( option ) => option.value === selectedTemplateSlug ) ??\n\t\toptions.find( ( option ) => ! option.value ); // The default option has '' value.\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst [ isCreateModalOpen, setIsCreateModalOpen ] = useState( false );\n\n\treturn (\n\t\t<div className=\"editor-post-template__classic-theme-dropdown\">\n\t\t\t<InspectorPopoverHeader\n\t\t\t\ttitle={ __( 'Template' ) }\n\t\t\t\thelp={ __(\n\t\t\t\t\t'Templates define the way content is displayed when viewing your site.'\n\t\t\t\t) }\n\t\t\t\tactions={\n\t\t\t\t\tcanCreate\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ticon: addTemplate,\n\t\t\t\t\t\t\t\t\tlabel: __( 'Add template' ),\n\t\t\t\t\t\t\t\t\tonClick: () => setIsCreateModalOpen( true ),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t ]\n\t\t\t\t\t\t: []\n\t\t\t\t}\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t\t{ ! allowSwitchingTemplate ? (\n\t\t\t\t<Notice status=\"warning\" isDismissible={ false }>\n\t\t\t\t\t{ __( 'The posts page template cannot be changed.' ) }\n\t\t\t\t</Notice>\n\t\t\t) : (\n\t\t\t\t<SelectControl\n\t\t\t\t\thideLabelFromVision\n\t\t\t\t\tlabel={ __( 'Template' ) }\n\t\t\t\t\tvalue={ selectedOption?.value ?? '' }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tonChange={ ( slug ) =>\n\t\t\t\t\t\teditPost( { template: slug || '' } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ canEdit && onNavigateToEntityRecord && (\n\t\t\t\t<p>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonNavigateToEntityRecord( {\n\t\t\t\t\t\t\t\tpostId: currentTemplateId,\n\t\t\t\t\t\t\t\tpostType: 'wp_template',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'Editing template. Changes made here affect all posts and pages that use the template.'\n\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\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tlabel: __( 'Go back' ),\n\t\t\t\t\t\t\t\t\t\t\tonClick: () =>\n\t\t\t\t\t\t\t\t\t\t\t\tgetEditorSettings().onNavigateToPreviousEntityRecord(),\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}\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{ __( 'Edit template' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</p>\n\t\t\t) }\n\t\t\t{ isCreateModalOpen && (\n\t\t\t\t<CreateNewTemplateModal\n\t\t\t\t\tonClose={ () => setIsCreateModalOpen( false ) }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction ClassicThemeControl() {\n\tconst [ popoverAnchor, setPopoverAnchor ] = useState( null );\n\t// Memoize popoverProps to avoid returning a new object every time.\n\tconst popoverProps = useMemo(\n\t\t() => ( {\n\t\t\t// Anchor the popover to the middle of the entire row so that it doesn't\n\t\t\t// move around when the label changes.\n\t\t\tanchor: popoverAnchor,\n\t\t\tclassName: 'editor-post-template__dropdown',\n\t\t\tplacement: 'left-start',\n\t\t\toffset: 36,\n\t\t\tshift: true,\n\t\t} ),\n\t\t[ popoverAnchor ]\n\t);\n\n\treturn (\n\t\t<PostPanelRow label={ __( 'Template' ) } ref={ setPopoverAnchor }>\n\t\t\t<Dropdown\n\t\t\t\tpopoverProps={ popoverProps }\n\t\t\t\tfocusOnMount\n\t\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t\t<PostTemplateToggle\n\t\t\t\t\t\tisOpen={ isOpen }\n\t\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t\t<PostTemplateDropdownContent onClose={ onClose } />\n\t\t\t\t) }\n\t\t\t/>\n\t\t</PostPanelRow>\n\t);\n}\n\n/**\n * Provides a dropdown menu for selecting and managing post templates.\n *\n * The dropdown menu includes a button for toggling the menu, a list of available templates, and options for creating and editing templates.\n *\n * @return {React.ReactNode} The rendered ClassicThemeControl component.\n */\nexport default ClassicThemeControl;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["editorStore", "coreStore", "noticesStore", "InspectorPopoverHeader", "CreateNewTemplateModal", "PostPanelRow"]
|
|
7
7
|
}
|
|
@@ -141,34 +141,60 @@ function PreferencesModalContents({ extraSections = {} }) {
|
|
|
141
141
|
label: (0, import_i18n.__)("Show starter patterns")
|
|
142
142
|
}
|
|
143
143
|
),
|
|
144
|
-
showCollaborationOptions && /* @__PURE__ */ (0, import_jsx_runtime.
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
144
|
+
showCollaborationOptions && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
145
|
+
PreferenceToggleControl,
|
|
146
|
+
{
|
|
147
|
+
scope: "core",
|
|
148
|
+
featureName: "showCollaborationCursor",
|
|
149
|
+
help: (0, import_i18n.__)(
|
|
150
|
+
"Show your own avatar inside blocks during collaborative editing sessions."
|
|
151
|
+
),
|
|
152
|
+
label: (0, import_i18n.__)("Show avatar in blocks")
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
),
|
|
158
|
+
showCollaborationOptions && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
159
|
+
PreferencesModalSection,
|
|
160
|
+
{
|
|
161
|
+
title: (0, import_i18n.__)(
|
|
162
|
+
"Collaboration notifications"
|
|
163
|
+
),
|
|
164
|
+
children: [
|
|
165
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
166
|
+
PreferenceToggleControl,
|
|
167
|
+
{
|
|
168
|
+
scope: "core",
|
|
169
|
+
featureName: "showCollaborationJoinNotifications",
|
|
170
|
+
help: (0, import_i18n.__)(
|
|
171
|
+
"Show notifications when collaborators join the post."
|
|
172
|
+
),
|
|
173
|
+
label: (0, import_i18n.__)("Collaborator joined")
|
|
174
|
+
}
|
|
175
|
+
),
|
|
176
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
177
|
+
PreferenceToggleControl,
|
|
178
|
+
{
|
|
179
|
+
scope: "core",
|
|
180
|
+
featureName: "showCollaborationLeaveNotifications",
|
|
181
|
+
help: (0, import_i18n.__)(
|
|
182
|
+
"Show notifications when collaborators leave the post."
|
|
183
|
+
),
|
|
184
|
+
label: (0, import_i18n.__)("Collaborator left")
|
|
185
|
+
}
|
|
186
|
+
),
|
|
187
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
188
|
+
PreferenceToggleControl,
|
|
189
|
+
{
|
|
190
|
+
scope: "core",
|
|
191
|
+
featureName: "showCollaborationPostSaveNotifications",
|
|
192
|
+
help: (0, import_i18n.__)(
|
|
193
|
+
"Show notifications when collaborators save, update, or publish the post."
|
|
194
|
+
),
|
|
195
|
+
label: (0, import_i18n.__)("Post updated")
|
|
196
|
+
}
|
|
197
|
+
)
|
|
172
198
|
]
|
|
173
199
|
}
|
|
174
200
|
),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/preferences-modal/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\n\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tstore as preferencesStore,\n\tprivateApis as preferencesPrivateApis,\n} from '@wordpress/preferences';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport EnablePanelOption from './enable-panel';\nimport EnablePluginDocumentSettingPanelOption from './enable-plugin-document-setting-panel';\nimport EnablePublishSidebarOption from './enable-publish-sidebar';\nimport BlockVisibility from '../block-visibility';\nimport PostTaxonomies from '../post-taxonomies';\nimport PostFeaturedImageCheck from '../post-featured-image/check';\nimport PostExcerptCheck from '../post-excerpt/check';\nimport PageAttributesCheck from '../page-attributes/check';\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tPreferencesModal,\n\tPreferencesModalTabs,\n\tPreferencesModalSection,\n\tPreferenceToggleControl,\n} = unlock( preferencesPrivateApis );\n\nexport default function EditorPreferencesModal( { extraSections = {} } ) {\n\tconst isActive = useSelect( ( select ) => {\n\t\treturn select( interfaceStore ).isModalActive( 'editor/preferences' );\n\t}, [] );\n\tconst { closeModal } = useDispatch( interfaceStore );\n\n\tif ( ! isActive ) {\n\t\treturn null;\n\t}\n\n\t// Please wrap all contents inside PreferencesModalContents to prevent all\n\t// hooks from executing when the modal is not open.\n\treturn (\n\t\t<PreferencesModal closeModal={ closeModal }>\n\t\t\t<PreferencesModalContents extraSections={ extraSections } />\n\t\t</PreferencesModal>\n\t);\n}\n\nfunction PreferencesModalContents( { extraSections = {} } ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { showBlockBreadcrumbsOption, showCollaborationOptions } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditorSettings, isCollaborationEnabledForCurrentPost } =\n\t\t\t\tunlock( select( editorStore ) );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst isRichEditingEnabled = getEditorSettings().richEditingEnabled;\n\t\t\tconst isDistractionFreeEnabled = get( 'core', 'distractionFree' );\n\t\t\treturn {\n\t\t\t\tshowBlockBreadcrumbsOption:\n\t\t\t\t\t! isDistractionFreeEnabled &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisRichEditingEnabled,\n\t\t\t\tshowCollaborationOptions:\n\t\t\t\t\tisCollaborationEnabledForCurrentPost(),\n\t\t\t};\n\t\t},\n\t\t[ isLargeViewport ]\n\t);\n\n\tconst { setIsListViewOpened, setIsInserterOpened } =\n\t\tuseDispatch( editorStore );\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\n\tconst sections = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tname: 'general',\n\t\t\t\t\ttabLabel: __( 'General' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Interface' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"showListViewByDefault\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Opens the List View panel by default.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always open List View' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ showBlockBreadcrumbsOption && (\n\t\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\t\tfeatureName=\"showBlockBreadcrumbs\"\n\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Display the block hierarchy trail at the bottom of the editor.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show block breadcrumbs' ) }\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\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"allowRightClickOverrides\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Allows contextual List View menus via right-click, overriding browser defaults.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Allow right-click contextual menus'\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\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"enableChoosePatternModal\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Pick from starter content when creating a new page.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show starter patterns' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ showCollaborationOptions && (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\t\t\tfeatureName=\"showCollaborationCursor\"\n\t\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Show your own avatar inside blocks during collaborative editing sessions.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Show avatar in blocks'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\t\t\tfeatureName=\"showCollaborationNotifications\"\n\t\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Show notifications when collaborators join, leave, or save the post.'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t\t'Show collaboration notifications'\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Document settings' ) }\n\t\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t\t'Select what settings are shown in the document panel.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<EnablePluginDocumentSettingPanelOption.Slot />\n\t\t\t\t\t\t\t\t<PostTaxonomies\n\t\t\t\t\t\t\t\t\ttaxonomyWrapper={ ( content, taxonomy ) => (\n\t\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\t\tlabel={ taxonomy.labels.menu_name }\n\t\t\t\t\t\t\t\t\t\t\tpanelName={ `taxonomy-panel-${ taxonomy.slug }` }\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/>\n\t\t\t\t\t\t\t\t<PostFeaturedImageCheck>\n\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Featured image' ) }\n\t\t\t\t\t\t\t\t\t\tpanelName=\"featured-image\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PostFeaturedImageCheck>\n\t\t\t\t\t\t\t\t<PostExcerptCheck>\n\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Excerpt' ) }\n\t\t\t\t\t\t\t\t\t\tpanelName=\"post-excerpt\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PostExcerptCheck>\n\t\t\t\t\t\t\t\t<PostTypeSupportCheck\n\t\t\t\t\t\t\t\t\tsupportKeys={ [ 'comments', 'trackbacks' ] }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Discussion' ) }\n\t\t\t\t\t\t\t\t\t\tpanelName=\"discussion-panel\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PostTypeSupportCheck>\n\t\t\t\t\t\t\t\t<PageAttributesCheck>\n\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Page attributes' ) }\n\t\t\t\t\t\t\t\t\t\tpanelName=\"page-attributes\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PageAttributesCheck>\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\t\ttitle={ __( 'Publishing' ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EnablePublishSidebarOption\n\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Review settings, such as visibility and tags.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Enable pre-publish checks'\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</PreferencesModalSection>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ extraSections?.general }\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'appearance',\n\t\t\t\t\ttabLabel: __( 'Appearance' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\ttitle={ __( 'Appearance' ) }\n\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t'Customize the editor interface to suit your needs.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tfeatureName=\"fixedToolbar\"\n\t\t\t\t\t\t\t\tonToggle={ () =>\n\t\t\t\t\t\t\t\t\tsetPreference(\n\t\t\t\t\t\t\t\t\t\t'core',\n\t\t\t\t\t\t\t\t\t\t'distractionFree',\n\t\t\t\t\t\t\t\t\t\tfalse\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\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Access all block and document tools in a single place.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Top toolbar' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tfeatureName=\"distractionFree\"\n\t\t\t\t\t\t\t\tonToggle={ () => {\n\t\t\t\t\t\t\t\t\tsetPreference(\n\t\t\t\t\t\t\t\t\t\t'core',\n\t\t\t\t\t\t\t\t\t\t'fixedToolbar',\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tsetIsInserterOpened( false );\n\t\t\t\t\t\t\t\t\tsetIsListViewOpened( false );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Reduce visual distractions by hiding the toolbar and other elements to focus on writing.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Distraction free' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tfeatureName=\"focusMode\"\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Highlights the current block and fades other content.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Spotlight mode' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ extraSections?.appearance }\n\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'accessibility',\n\t\t\t\t\ttabLabel: __( 'Accessibility' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Navigation' ) }\n\t\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t\t'Optimize the editing experience for enhanced control.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"keepCaretInsideBlock\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Keeps the text cursor within blocks while navigating with arrow keys, preventing it from moving to other blocks and enhancing accessibility for keyboard users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Contain text cursor inside block'\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</PreferencesModalSection>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Interface' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"showIconLabels\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show button text labels' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Show text instead of icons on buttons across the interface.'\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</PreferencesModalSection>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'blocks',\n\t\t\t\t\ttabLabel: __( 'Blocks' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PreferencesModalSection title={ __( 'Inserter' ) }>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"mostUsedBlocks\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Adds a category with the most frequently used blocks in the inserter.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show most used blocks' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Manage block visibility' ) }\n\t\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t\t\"Disable blocks that you don't want to appear in the inserter. They can always be toggled back on later.\"\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockVisibility />\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\twindow.__clientSideMediaProcessing && {\n\t\t\t\t\tname: 'media',\n\t\t\t\t\ttabLabel: __( 'Media' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'General' ) }\n\t\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t\t'Customize options related to the media upload flow.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core/media\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"optimizeOnUpload\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Compress media items before uploading to the server.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Pre-upload compression' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core/media\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"requireApproval\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Require approval step when optimizing existing media.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Approval step' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t].filter( Boolean ),\n\t\t[\n\t\t\tshowBlockBreadcrumbsOption,\n\t\t\tshowCollaborationOptions,\n\t\t\textraSections,\n\t\t\tsetIsInserterOpened,\n\t\t\tsetIsListViewOpened,\n\t\t\tsetPreference,\n\t\t\tisLargeViewport,\n\t\t]\n\t);\n\n\treturn <PreferencesModalTabs sections={ sections } />;\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,kBAAmB;AACnB,qBAAiC;AACjC,kBAAuC;AACvC,qBAAwB;AACxB,yBAGO;AACP,uBAAwC;AAKxC,0BAA8B;AAC9B,kDAAmD;AACnD,oCAAuC;AACvC,8BAA4B;AAC5B,6BAA2B;AAC3B,mBAAmC;AACnC,IAAAA,gBAA6B;AAC7B,IAAAA,gBAAgC;AAChC,qCAAiC;AACjC,mBAAqC;AACrC,yBAAuB;AAuBpB;AArBH,IAAM;AAAA,EACL;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,QAAI,2BAAQ,mBAAAC,WAAuB;AAEpB,SAAR,uBAAyC,EAAE,gBAAgB,CAAC,EAAE,GAAI;AACxE,QAAM,eAAW,uBAAW,CAAE,WAAY;AACzC,WAAO,OAAQ,iBAAAC,KAAe,EAAE,cAAe,oBAAqB;AAAA,EACrE,GAAG,CAAC,CAAE;AACN,QAAM,EAAE,WAAW,QAAI,yBAAa,iBAAAA,KAAe;AAEnD,MAAK,CAAE,UAAW;AACjB,WAAO;AAAA,EACR;AAIA,SACC,4CAAC,oBAAiB,YACjB,sDAAC,4BAAyB,eAAgC,GAC3D;AAEF;AAEA,SAAS,yBAA0B,EAAE,gBAAgB,CAAC,EAAE,GAAI;AAC3D,QAAM,sBAAkB,iCAAkB,QAAS;AACnD,QAAM,EAAE,4BAA4B,yBAAyB,QAAI;AAAA,IAChE,CAAE,WAAY;AACb,YAAM,EAAE,mBAAmB,qCAAqC,QAC/D,2BAAQ,OAAQ,aAAAC,KAAY,CAAE;AAC/B,YAAM,EAAE,IAAI,IAAI,OAAQ,mBAAAC,KAAiB;AACzC,YAAM,uBAAuB,kBAAkB,EAAE;AACjD,YAAM,2BAA2B,IAAK,QAAQ,iBAAkB;AAChE,aAAO;AAAA,QACN,4BACC,CAAE,4BACF,mBACA;AAAA,QACD,0BACC,qCAAqC;AAAA,MACvC;AAAA,IACD;AAAA,IACA,CAAE,eAAgB;AAAA,EACnB;AAEA,QAAM,EAAE,qBAAqB,oBAAoB,QAChD,yBAAa,aAAAD,KAAY;AAC1B,QAAM,EAAE,KAAK,cAAc,QAAI,yBAAa,mBAAAC,KAAiB;AAE7D,QAAM,eAAW;AAAA,IAChB,MACC;AAAA,MACC;AAAA,QACC,MAAM;AAAA,QACN,cAAU,gBAAI,SAAU;AAAA,QACxB,SACC,4EACC;AAAA;AAAA,YAAC;AAAA;AAAA,cACA,WAAQ,gBAAI,WAAY;AAAA,cAExB;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAM;AAAA,oBACN,aAAY;AAAA,oBACZ,UAAO;AAAA,sBACN;AAAA,oBACD;AAAA,oBACA,WAAQ,gBAAI,uBAAwB;AAAA;AAAA,gBACrC;AAAA,gBACE,8BACD;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAM;AAAA,oBACN,aAAY;AAAA,oBACZ,UAAO;AAAA,sBACN;AAAA,oBACD;AAAA,oBACA,WAAQ,gBAAI,wBAAyB;AAAA;AAAA,gBACtC;AAAA,gBAED;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAM;AAAA,oBACN,aAAY;AAAA,oBACZ,UAAO;AAAA,sBACN;AAAA,oBACD;AAAA,oBACA,WAAQ;AAAA,sBACP;AAAA,oBACD;AAAA;AAAA,gBACD;AAAA,gBACA;AAAA,kBAAC;AAAA;AAAA,oBACA,OAAM;AAAA,oBACN,aAAY;AAAA,oBACZ,UAAO;AAAA,sBACN;AAAA,oBACD;AAAA,oBACA,WAAQ,gBAAI,uBAAwB;AAAA;AAAA,gBACrC;AAAA,gBACE,4BACD
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\n\nimport { __ } from '@wordpress/i18n';\nimport { useViewportMatch } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport {\n\tstore as preferencesStore,\n\tprivateApis as preferencesPrivateApis,\n} from '@wordpress/preferences';\nimport { store as interfaceStore } from '@wordpress/interface';\n\n/**\n * Internal dependencies\n */\nimport EnablePanelOption from './enable-panel';\nimport EnablePluginDocumentSettingPanelOption from './enable-plugin-document-setting-panel';\nimport EnablePublishSidebarOption from './enable-publish-sidebar';\nimport BlockVisibility from '../block-visibility';\nimport PostTaxonomies from '../post-taxonomies';\nimport PostFeaturedImageCheck from '../post-featured-image/check';\nimport PostExcerptCheck from '../post-excerpt/check';\nimport PageAttributesCheck from '../page-attributes/check';\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tPreferencesModal,\n\tPreferencesModalTabs,\n\tPreferencesModalSection,\n\tPreferenceToggleControl,\n} = unlock( preferencesPrivateApis );\n\nexport default function EditorPreferencesModal( { extraSections = {} } ) {\n\tconst isActive = useSelect( ( select ) => {\n\t\treturn select( interfaceStore ).isModalActive( 'editor/preferences' );\n\t}, [] );\n\tconst { closeModal } = useDispatch( interfaceStore );\n\n\tif ( ! isActive ) {\n\t\treturn null;\n\t}\n\n\t// Please wrap all contents inside PreferencesModalContents to prevent all\n\t// hooks from executing when the modal is not open.\n\treturn (\n\t\t<PreferencesModal closeModal={ closeModal }>\n\t\t\t<PreferencesModalContents extraSections={ extraSections } />\n\t\t</PreferencesModal>\n\t);\n}\n\nfunction PreferencesModalContents( { extraSections = {} } ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { showBlockBreadcrumbsOption, showCollaborationOptions } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditorSettings, isCollaborationEnabledForCurrentPost } =\n\t\t\t\tunlock( select( editorStore ) );\n\t\t\tconst { get } = select( preferencesStore );\n\t\t\tconst isRichEditingEnabled = getEditorSettings().richEditingEnabled;\n\t\t\tconst isDistractionFreeEnabled = get( 'core', 'distractionFree' );\n\t\t\treturn {\n\t\t\t\tshowBlockBreadcrumbsOption:\n\t\t\t\t\t! isDistractionFreeEnabled &&\n\t\t\t\t\tisLargeViewport &&\n\t\t\t\t\tisRichEditingEnabled,\n\t\t\t\tshowCollaborationOptions:\n\t\t\t\t\tisCollaborationEnabledForCurrentPost(),\n\t\t\t};\n\t\t},\n\t\t[ isLargeViewport ]\n\t);\n\n\tconst { setIsListViewOpened, setIsInserterOpened } =\n\t\tuseDispatch( editorStore );\n\tconst { set: setPreference } = useDispatch( preferencesStore );\n\n\tconst sections = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t{\n\t\t\t\t\tname: 'general',\n\t\t\t\t\ttabLabel: __( 'General' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Interface' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"showListViewByDefault\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Opens the List View panel by default.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Always open List View' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ showBlockBreadcrumbsOption && (\n\t\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\t\tfeatureName=\"showBlockBreadcrumbs\"\n\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Display the block hierarchy trail at the bottom of the editor.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show block breadcrumbs' ) }\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\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"allowRightClickOverrides\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Allows contextual List View menus via right-click, overriding browser defaults.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Allow right-click contextual menus'\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\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"enableChoosePatternModal\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Pick from starter content when creating a new page.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show starter patterns' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{ showCollaborationOptions && (\n\t\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\t\tfeatureName=\"showCollaborationCursor\"\n\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Show your own avatar inside blocks during collaborative editing sessions.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Show avatar in blocks' ) }\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</PreferencesModalSection>\n\t\t\t\t\t\t\t{ showCollaborationOptions && (\n\t\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\t\ttitle={ __(\n\t\t\t\t\t\t\t\t\t\t'Collaboration notifications'\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\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\t\tfeatureName=\"showCollaborationJoinNotifications\"\n\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Show notifications when collaborators join the post.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Collaborator joined' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\t\tfeatureName=\"showCollaborationLeaveNotifications\"\n\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Show notifications when collaborators leave the post.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Collaborator left' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\t\tfeatureName=\"showCollaborationPostSaveNotifications\"\n\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Show notifications when collaborators save, update, or publish the post.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Post updated' ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Document settings' ) }\n\t\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t\t'Select what settings are shown in the document panel.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<EnablePluginDocumentSettingPanelOption.Slot />\n\t\t\t\t\t\t\t\t<PostTaxonomies\n\t\t\t\t\t\t\t\t\ttaxonomyWrapper={ ( content, taxonomy ) => (\n\t\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\t\tlabel={ taxonomy.labels.menu_name }\n\t\t\t\t\t\t\t\t\t\t\tpanelName={ `taxonomy-panel-${ taxonomy.slug }` }\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/>\n\t\t\t\t\t\t\t\t<PostFeaturedImageCheck>\n\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Featured image' ) }\n\t\t\t\t\t\t\t\t\t\tpanelName=\"featured-image\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PostFeaturedImageCheck>\n\t\t\t\t\t\t\t\t<PostExcerptCheck>\n\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Excerpt' ) }\n\t\t\t\t\t\t\t\t\t\tpanelName=\"post-excerpt\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PostExcerptCheck>\n\t\t\t\t\t\t\t\t<PostTypeSupportCheck\n\t\t\t\t\t\t\t\t\tsupportKeys={ [ 'comments', 'trackbacks' ] }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Discussion' ) }\n\t\t\t\t\t\t\t\t\t\tpanelName=\"discussion-panel\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PostTypeSupportCheck>\n\t\t\t\t\t\t\t\t<PageAttributesCheck>\n\t\t\t\t\t\t\t\t\t<EnablePanelOption\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Page attributes' ) }\n\t\t\t\t\t\t\t\t\t\tpanelName=\"page-attributes\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</PageAttributesCheck>\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t\t{ isLargeViewport && (\n\t\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\t\ttitle={ __( 'Publishing' ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<EnablePublishSidebarOption\n\t\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Review settings, such as visibility and tags.'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t\t'Enable pre-publish checks'\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</PreferencesModalSection>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t{ extraSections?.general }\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'appearance',\n\t\t\t\t\ttabLabel: __( 'Appearance' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\ttitle={ __( 'Appearance' ) }\n\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t'Customize the editor interface to suit your needs.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tfeatureName=\"fixedToolbar\"\n\t\t\t\t\t\t\t\tonToggle={ () =>\n\t\t\t\t\t\t\t\t\tsetPreference(\n\t\t\t\t\t\t\t\t\t\t'core',\n\t\t\t\t\t\t\t\t\t\t'distractionFree',\n\t\t\t\t\t\t\t\t\t\tfalse\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\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Access all block and document tools in a single place.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Top toolbar' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tfeatureName=\"distractionFree\"\n\t\t\t\t\t\t\t\tonToggle={ () => {\n\t\t\t\t\t\t\t\t\tsetPreference(\n\t\t\t\t\t\t\t\t\t\t'core',\n\t\t\t\t\t\t\t\t\t\t'fixedToolbar',\n\t\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tsetIsInserterOpened( false );\n\t\t\t\t\t\t\t\t\tsetIsListViewOpened( false );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Reduce visual distractions by hiding the toolbar and other elements to focus on writing.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Distraction free' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\tfeatureName=\"focusMode\"\n\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t'Highlights the current block and fades other content.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tlabel={ __( 'Spotlight mode' ) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ extraSections?.appearance }\n\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'accessibility',\n\t\t\t\t\ttabLabel: __( 'Accessibility' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Navigation' ) }\n\t\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t\t'Optimize the editing experience for enhanced control.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"keepCaretInsideBlock\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Keeps the text cursor within blocks while navigating with arrow keys, preventing it from moving to other blocks and enhancing accessibility for keyboard users.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __(\n\t\t\t\t\t\t\t\t\t\t'Contain text cursor inside block'\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</PreferencesModalSection>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Interface' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"showIconLabels\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show button text labels' ) }\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Show text instead of icons on buttons across the interface.'\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</PreferencesModalSection>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tname: 'blocks',\n\t\t\t\t\ttabLabel: __( 'Blocks' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PreferencesModalSection title={ __( 'Inserter' ) }>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"mostUsedBlocks\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Adds a category with the most frequently used blocks in the inserter.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Show most used blocks' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'Manage block visibility' ) }\n\t\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t\t\"Disable blocks that you don't want to appear in the inserter. They can always be toggled back on later.\"\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<BlockVisibility />\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\twindow.__clientSideMediaProcessing && {\n\t\t\t\t\tname: 'media',\n\t\t\t\t\ttabLabel: __( 'Media' ),\n\t\t\t\t\tcontent: (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<PreferencesModalSection\n\t\t\t\t\t\t\t\ttitle={ __( 'General' ) }\n\t\t\t\t\t\t\t\tdescription={ __(\n\t\t\t\t\t\t\t\t\t'Customize options related to the media upload flow.'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core/media\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"optimizeOnUpload\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Compress media items before uploading to the server.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Pre-upload compression' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<PreferenceToggleControl\n\t\t\t\t\t\t\t\t\tscope=\"core/media\"\n\t\t\t\t\t\t\t\t\tfeatureName=\"requireApproval\"\n\t\t\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t\t\t'Require approval step when optimizing existing media.'\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Approval step' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</PreferencesModalSection>\n\t\t\t\t\t\t</>\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t].filter( Boolean ),\n\t\t[\n\t\t\tshowBlockBreadcrumbsOption,\n\t\t\tshowCollaborationOptions,\n\t\t\textraSections,\n\t\t\tsetIsInserterOpened,\n\t\t\tsetIsListViewOpened,\n\t\t\tsetPreference,\n\t\t\tisLargeViewport,\n\t\t]\n\t);\n\n\treturn <PreferencesModalTabs sections={ sections } />;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_check", "preferencesPrivateApis", "interfaceStore", "editorStore", "preferencesStore", "EnablePluginDocumentSettingPanelOption", "PostTaxonomies", "EnablePanelOption", "PostFeaturedImageCheck", "PostExcerptCheck", "PostTypeSupportCheck", "PageAttributesCheck", "EnablePublishSidebarOption", "BlockVisibility"]
|
|
7
7
|
}
|
|
@@ -132,13 +132,13 @@ function PreviewDropdown({ forceIsAutosaveable, disabled }) {
|
|
|
132
132
|
value: "Tablet",
|
|
133
133
|
label: (0, import_i18n.__)("Tablet"),
|
|
134
134
|
icon: import_icons.tablet,
|
|
135
|
-
info: isResponsiveEditing ? (0, import_i18n.__)("Make tablet exclusive changes.") : (0, import_i18n.__)("Preview tablet viewport.")
|
|
135
|
+
info: isResponsiveEditing ? (0, import_i18n.__)("Make tablet exclusive style changes.") : (0, import_i18n.__)("Preview tablet viewport.")
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
138
|
value: "Mobile",
|
|
139
139
|
label: (0, import_i18n.__)("Mobile"),
|
|
140
140
|
icon: import_icons.mobile,
|
|
141
|
-
info: isResponsiveEditing ? (0, import_i18n.__)("Make mobile exclusive changes.") : (0, import_i18n.__)("Preview mobile viewport.")
|
|
141
|
+
info: isResponsiveEditing ? (0, import_i18n.__)("Make mobile exclusive style changes.") : (0, import_i18n.__)("Preview mobile viewport.")
|
|
142
142
|
}
|
|
143
143
|
];
|
|
144
144
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -171,7 +171,7 @@ function PreviewDropdown({ forceIsAutosaveable, disabled }) {
|
|
|
171
171
|
role: "menuitemcheckbox",
|
|
172
172
|
onClick: handleResponsiveEditingChange,
|
|
173
173
|
info: (0, import_i18n.__)(
|
|
174
|
-
"
|
|
174
|
+
"Style changes apply only to the current viewport."
|
|
175
175
|
),
|
|
176
176
|
children: (0, import_i18n.__)("Responsive editing")
|
|
177
177
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/preview-dropdown/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tIcon as WCIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { desktop, mobile, tablet, external, check } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { ActionItem } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport PostPreviewButton from '../post-preview-button';\nimport { VIEWPORT_STATE_BY_DEVICE_TYPE } from '../../utils/device-type';\nimport { unlock } from '../../lock-unlock';\n\nexport default function PreviewDropdown( { forceIsAutosaveable, disabled } ) {\n\tconst {\n\t\tdeviceType,\n\t\thomeUrl,\n\t\tisTemplate,\n\t\tisViewable,\n\t\tshowIconLabels,\n\t\tisTemplateHidden,\n\t\ttemplateId,\n\t\tisResponsiveEditing,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentTemplateId,\n\t\t\tgetRenderingMode,\n\t\t\tgetDeviceType,\n\t\t} = unlock( select( editorStore ) );\n\t\tconst { isResponsiveEditing: _isResponsiveEditing } = unlock(\n\t\t\tselect( blockEditorStore )\n\t\t);\n\t\tconst { getEntityRecord, getPostType } = select( coreStore );\n\t\tconst { get } = select( preferencesStore );\n\t\tconst _currentPostType = getCurrentPostType();\n\t\treturn {\n\t\t\tdeviceType: getDeviceType(),\n\t\t\thomeUrl: getEntityRecord( 'root', '__unstableBase' )?.home,\n\t\t\tisTemplate: _currentPostType === 'wp_template',\n\t\t\tisViewable: getPostType( _currentPostType )?.viewable ?? false,\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\tisTemplateHidden: getRenderingMode() === 'post-only',\n\t\t\ttemplateId: getCurrentTemplateId(),\n\t\t\tisResponsiveEditing: _isResponsiveEditing(),\n\t\t};\n\t}, [] );\n\tconst { setDeviceType, setRenderingMode, setDefaultRenderingMode } = unlock(\n\t\tuseDispatch( editorStore )\n\t);\n\tconst { resetZoomLevel, setStyleStateViewport, setResponsiveEditing } =\n\t\tunlock( useDispatch( blockEditorStore ) );\n\n\tconst handleDevicePreviewChange = ( newDeviceType ) => {\n\t\tsetDeviceType( newDeviceType );\n\t\tresetZoomLevel();\n\t};\n\n\tconst handleResponsiveEditingChange = () => {\n\t\tconst newIsResponsiveEditing = ! isResponsiveEditing;\n\t\tsetResponsiveEditing( newIsResponsiveEditing );\n\t\tsetStyleStateViewport(\n\t\t\tnewIsResponsiveEditing\n\t\t\t\t? VIEWPORT_STATE_BY_DEVICE_TYPE[ deviceType ] ?? 'default'\n\t\t\t\t: 'default'\n\t\t);\n\t};\n\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\tconst popoverProps = {\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'editor-preview-dropdown__toggle',\n\t\ticonPosition: 'right',\n\t\tsize: 'compact',\n\t\tshowTooltip: ! showIconLabels,\n\t\tdisabled,\n\t\taccessibleWhenDisabled: disabled,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tdesktop,\n\t\tmobile,\n\t\ttablet,\n\t};\n\n\t/**\n\t * The choices for the device type.\n\t * Duplicated in block-editor block-visibility constants and edit-site\n\t * use-viewport-sync. Update all three when adding new viewport types.\n\t *\n\t * @type {Array}\n\t */\n\tconst choices = [\n\t\t{\n\t\t\tvalue: 'Desktop',\n\t\t\tlabel: __( 'Desktop' ),\n\t\t\ticon: desktop,\n\t\t\tinfo: isResponsiveEditing\n\t\t\t\t? __( 'Edit across all breakpoints.' )\n\t\t\t\t: __( 'Preview desktop viewport.' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'Tablet',\n\t\t\tlabel: __( 'Tablet' ),\n\t\t\ticon: tablet,\n\t\t\tinfo: isResponsiveEditing\n\t\t\t\t? __( 'Make tablet exclusive changes.' )\n\t\t\t\t: __( 'Preview tablet viewport.' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'Mobile',\n\t\t\tlabel: __( 'Mobile' ),\n\t\t\ticon: mobile,\n\t\t\tinfo: isResponsiveEditing\n\t\t\t\t? __( 'Make mobile exclusive changes.' )\n\t\t\t\t: __( 'Preview mobile viewport.' ),\n\t\t},\n\t];\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ clsx(\n\t\t\t\t'editor-preview-dropdown',\n\t\t\t\t`editor-preview-dropdown--${ deviceType.toLowerCase() }`\n\t\t\t) }\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\tlabel={ __( 'View' ) }\n\t\t\tdisableOpenOnArrowDown={ disabled }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ choices }\n\t\t\t\t\t\t\tvalue={ deviceType }\n\t\t\t\t\t\t\tonSelect={ handleDevicePreviewChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ isResponsiveEditing ? check : undefined }\n\t\t\t\t\t\t\tisSelected={ isResponsiveEditing }\n\t\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t\t\tonClick={ handleResponsiveEditingChange }\n\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t'
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAiB;AAKjB,qBAAiC;AACjC,wBAMO;AACP,kBAAmB;AACnB,mBAAyD;AACzD,kBAAuC;AACvC,uBAAmC;AACnC,yBAA0C;AAC1C,uBAA2B;AAC3B,0BAA0C;AAC1C,gBAA+B;AAK/B,mBAAqC;AACrC,iCAA8B;AAC9B,yBAA8C;AAC9C,yBAAuB;AAqIjB;AAnIS,SAAR,gBAAkC,EAAE,qBAAqB,SAAS,GAAI;AAC5E,QAAM;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,QAAI,uBAAW,CAAE,WAAY;AAC5B,UAAM;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,QAAI,2BAAQ,OAAQ,aAAAA,KAAY,CAAE;AAClC,UAAM,EAAE,qBAAqB,qBAAqB,QAAI;AAAA,MACrD,OAAQ,oBAAAC,KAAiB;AAAA,IAC1B;AACA,UAAM,EAAE,iBAAiB,YAAY,IAAI,OAAQ,iBAAAC,KAAU;AAC3D,UAAM,EAAE,IAAI,IAAI,OAAQ,mBAAAC,KAAiB;AACzC,UAAM,mBAAmB,mBAAmB;AAC5C,WAAO;AAAA,MACN,YAAY,cAAc;AAAA,MAC1B,SAAS,gBAAiB,QAAQ,gBAAiB,GAAG;AAAA,MACtD,YAAY,qBAAqB;AAAA,MACjC,YAAY,YAAa,gBAAiB,GAAG,YAAY;AAAA,MACzD,gBAAgB,IAAK,QAAQ,gBAAiB;AAAA,MAC9C,kBAAkB,iBAAiB,MAAM;AAAA,MACzC,YAAY,qBAAqB;AAAA,MACjC,qBAAqB,qBAAqB;AAAA,IAC3C;AAAA,EACD,GAAG,CAAC,CAAE;AACN,QAAM,EAAE,eAAe,kBAAkB,wBAAwB,QAAI;AAAA,QACpE,yBAAa,aAAAH,KAAY;AAAA,EAC1B;AACA,QAAM,EAAE,gBAAgB,uBAAuB,qBAAqB,QACnE,+BAAQ,yBAAa,oBAAAC,KAAiB,CAAE;AAEzC,QAAM,4BAA4B,CAAE,kBAAmB;AACtD,kBAAe,aAAc;AAC7B,mBAAe;AAAA,EAChB;AAEA,QAAM,gCAAgC,MAAM;AAC3C,UAAM,yBAAyB,CAAE;AACjC,yBAAsB,sBAAuB;AAC7C;AAAA,MACC,yBACG,iDAA+B,UAAW,KAAK,YAC/C;AAAA,IACJ;AAAA,EACD;AAEA,QAAM,eAAW,iCAAkB,UAAU,GAAI;AACjD,MAAK,UAAW;AACf,WAAO;AAAA,EACR;AAEA,QAAM,eAAe;AAAA,IACpB,WAAW;AAAA,EACZ;AACA,QAAM,cAAc;AAAA,IACnB,WAAW;AAAA,IACX,cAAc;AAAA,IACd,MAAM;AAAA,IACN,aAAa,CAAE;AAAA,IACf;AAAA,IACA,wBAAwB;AAAA,EACzB;AACA,QAAM,YAAY;AAAA,IACjB,kBAAc,gBAAI,cAAe;AAAA,EAClC;AAEA,QAAM,cAAc;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,EACD;AASA,QAAM,UAAU;AAAA,IACf;AAAA,MACC,OAAO;AAAA,MACP,WAAO,gBAAI,SAAU;AAAA,MACrB,MAAM;AAAA,MACN,MAAM,0BACH,gBAAI,8BAA+B,QACnC,gBAAI,2BAA4B;AAAA,IACpC;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,WAAO,gBAAI,QAAS;AAAA,MACpB,MAAM;AAAA,MACN,MAAM,0BACH,gBAAI,
|
|
4
|
+
"sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useViewportMatch } from '@wordpress/compose';\nimport {\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tIcon as WCIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { desktop, mobile, tablet, external, check } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { ActionItem } from '@wordpress/interface';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { VisuallyHidden } from '@wordpress/ui';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport PostPreviewButton from '../post-preview-button';\nimport { VIEWPORT_STATE_BY_DEVICE_TYPE } from '../../utils/device-type';\nimport { unlock } from '../../lock-unlock';\n\nexport default function PreviewDropdown( { forceIsAutosaveable, disabled } ) {\n\tconst {\n\t\tdeviceType,\n\t\thomeUrl,\n\t\tisTemplate,\n\t\tisViewable,\n\t\tshowIconLabels,\n\t\tisTemplateHidden,\n\t\ttemplateId,\n\t\tisResponsiveEditing,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentTemplateId,\n\t\t\tgetRenderingMode,\n\t\t\tgetDeviceType,\n\t\t} = unlock( select( editorStore ) );\n\t\tconst { isResponsiveEditing: _isResponsiveEditing } = unlock(\n\t\t\tselect( blockEditorStore )\n\t\t);\n\t\tconst { getEntityRecord, getPostType } = select( coreStore );\n\t\tconst { get } = select( preferencesStore );\n\t\tconst _currentPostType = getCurrentPostType();\n\t\treturn {\n\t\t\tdeviceType: getDeviceType(),\n\t\t\thomeUrl: getEntityRecord( 'root', '__unstableBase' )?.home,\n\t\t\tisTemplate: _currentPostType === 'wp_template',\n\t\t\tisViewable: getPostType( _currentPostType )?.viewable ?? false,\n\t\t\tshowIconLabels: get( 'core', 'showIconLabels' ),\n\t\t\tisTemplateHidden: getRenderingMode() === 'post-only',\n\t\t\ttemplateId: getCurrentTemplateId(),\n\t\t\tisResponsiveEditing: _isResponsiveEditing(),\n\t\t};\n\t}, [] );\n\tconst { setDeviceType, setRenderingMode, setDefaultRenderingMode } = unlock(\n\t\tuseDispatch( editorStore )\n\t);\n\tconst { resetZoomLevel, setStyleStateViewport, setResponsiveEditing } =\n\t\tunlock( useDispatch( blockEditorStore ) );\n\n\tconst handleDevicePreviewChange = ( newDeviceType ) => {\n\t\tsetDeviceType( newDeviceType );\n\t\tresetZoomLevel();\n\t};\n\n\tconst handleResponsiveEditingChange = () => {\n\t\tconst newIsResponsiveEditing = ! isResponsiveEditing;\n\t\tsetResponsiveEditing( newIsResponsiveEditing );\n\t\tsetStyleStateViewport(\n\t\t\tnewIsResponsiveEditing\n\t\t\t\t? VIEWPORT_STATE_BY_DEVICE_TYPE[ deviceType ] ?? 'default'\n\t\t\t\t: 'default'\n\t\t);\n\t};\n\n\tconst isMobile = useViewportMatch( 'medium', '<' );\n\tif ( isMobile ) {\n\t\treturn null;\n\t}\n\n\tconst popoverProps = {\n\t\tplacement: 'bottom-end',\n\t};\n\tconst toggleProps = {\n\t\tclassName: 'editor-preview-dropdown__toggle',\n\t\ticonPosition: 'right',\n\t\tsize: 'compact',\n\t\tshowTooltip: ! showIconLabels,\n\t\tdisabled,\n\t\taccessibleWhenDisabled: disabled,\n\t};\n\tconst menuProps = {\n\t\t'aria-label': __( 'View options' ),\n\t};\n\n\tconst deviceIcons = {\n\t\tdesktop,\n\t\tmobile,\n\t\ttablet,\n\t};\n\n\t/**\n\t * The choices for the device type.\n\t * Duplicated in block-editor block-visibility constants and edit-site\n\t * use-viewport-sync. Update all three when adding new viewport types.\n\t *\n\t * @type {Array}\n\t */\n\tconst choices = [\n\t\t{\n\t\t\tvalue: 'Desktop',\n\t\t\tlabel: __( 'Desktop' ),\n\t\t\ticon: desktop,\n\t\t\tinfo: isResponsiveEditing\n\t\t\t\t? __( 'Edit across all breakpoints.' )\n\t\t\t\t: __( 'Preview desktop viewport.' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'Tablet',\n\t\t\tlabel: __( 'Tablet' ),\n\t\t\ticon: tablet,\n\t\t\tinfo: isResponsiveEditing\n\t\t\t\t? __( 'Make tablet exclusive style changes.' )\n\t\t\t\t: __( 'Preview tablet viewport.' ),\n\t\t},\n\t\t{\n\t\t\tvalue: 'Mobile',\n\t\t\tlabel: __( 'Mobile' ),\n\t\t\ticon: mobile,\n\t\t\tinfo: isResponsiveEditing\n\t\t\t\t? __( 'Make mobile exclusive style changes.' )\n\t\t\t\t: __( 'Preview mobile viewport.' ),\n\t\t},\n\t];\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName={ clsx(\n\t\t\t\t'editor-preview-dropdown',\n\t\t\t\t`editor-preview-dropdown--${ deviceType.toLowerCase() }`\n\t\t\t) }\n\t\t\tpopoverProps={ popoverProps }\n\t\t\ttoggleProps={ toggleProps }\n\t\t\tmenuProps={ menuProps }\n\t\t\ticon={ deviceIcons[ deviceType.toLowerCase() ] }\n\t\t\tlabel={ __( 'View' ) }\n\t\t\tdisableOpenOnArrowDown={ disabled }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\tchoices={ choices }\n\t\t\t\t\t\t\tvalue={ deviceType }\n\t\t\t\t\t\t\tonSelect={ handleDevicePreviewChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ isResponsiveEditing ? check : undefined }\n\t\t\t\t\t\t\tisSelected={ isResponsiveEditing }\n\t\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t\t\tonClick={ handleResponsiveEditingChange }\n\t\t\t\t\t\t\tinfo={ __(\n\t\t\t\t\t\t\t\t'Style changes apply only to the current viewport.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Responsive editing' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t{ isTemplate && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\thref={ homeUrl }\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'View site' ) }\n\t\t\t\t\t\t\t\t<VisuallyHidden render={ <span /> }>\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isTemplate && !! templateId && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\ticon={ ! isTemplateHidden ? check : undefined }\n\t\t\t\t\t\t\t\tisSelected={ ! isTemplateHidden }\n\t\t\t\t\t\t\t\trole=\"menuitemcheckbox\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tconst newRenderingMode = isTemplateHidden\n\t\t\t\t\t\t\t\t\t\t? 'template-locked'\n\t\t\t\t\t\t\t\t\t\t: 'post-only';\n\t\t\t\t\t\t\t\t\tsetRenderingMode( newRenderingMode );\n\t\t\t\t\t\t\t\t\tsetDefaultRenderingMode( newRenderingMode );\n\t\t\t\t\t\t\t\t\tresetZoomLevel();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Show template' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isViewable && (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t<PostPreviewButton\n\t\t\t\t\t\t\t\tclassName=\"editor-preview-dropdown__button-external\"\n\t\t\t\t\t\t\t\trole=\"menuitem\"\n\t\t\t\t\t\t\t\tforceIsAutosaveable={ forceIsAutosaveable }\n\t\t\t\t\t\t\t\taria-label={ __( 'Preview in new tab' ) }\n\t\t\t\t\t\t\t\ttextContent={\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Preview in new tab' ) }\n\t\t\t\t\t\t\t\t\t\t<WCIcon icon={ external } />\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\tonPreview={ onClose }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t<ActionItem.Slot\n\t\t\t\t\t\tname=\"core/plugin-preview-menu\"\n\t\t\t\t\t\tfillProps={ { onClick: onClose } }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["editorStore", "blockEditorStore", "coreStore", "preferencesStore", "clsx", "PostPreviewButton", "WCIcon"]
|
|
7
7
|
}
|
|
@@ -46,6 +46,7 @@ var import_media_categories = __toESM(require("../media-categories/index.cjs"));
|
|
|
46
46
|
var import_utils = require("../../utils/index.cjs");
|
|
47
47
|
var import_on_success = __toESM(require("../../utils/media-upload/on-success.cjs"));
|
|
48
48
|
var import_media_sideload = __toESM(require("../../utils/media-sideload/index.cjs"));
|
|
49
|
+
var import_media_sideload_from_url = __toESM(require("../../utils/media-sideload-from-url/index.cjs"));
|
|
49
50
|
var import_media_finalize = __toESM(require("../../utils/media-finalize/index.cjs"));
|
|
50
51
|
var import_media_delete = __toESM(require("../../utils/media-delete/index.cjs"));
|
|
51
52
|
var import_store = require("../../store/index.cjs");
|
|
@@ -131,6 +132,7 @@ var {
|
|
|
131
132
|
isNavigationOverlayContextKey,
|
|
132
133
|
isNavigationPostEditorKey,
|
|
133
134
|
mediaUploadOnSuccessKey,
|
|
135
|
+
mediaSideloadFromUrlKey,
|
|
134
136
|
openMediaEditorModalKey
|
|
135
137
|
} = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
|
|
136
138
|
function useBlockEditorSettings(settings, postType, postId, renderingMode) {
|
|
@@ -154,17 +156,21 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
|
|
|
154
156
|
sectionRootClientId,
|
|
155
157
|
deviceType,
|
|
156
158
|
isNavigationOverlayContext,
|
|
157
|
-
isRevisionsMode
|
|
159
|
+
isRevisionsMode,
|
|
160
|
+
viewablePostTypeLabel,
|
|
161
|
+
currentPostId
|
|
158
162
|
} = (0, import_data.useSelect)(
|
|
159
163
|
(select) => {
|
|
160
164
|
const {
|
|
161
165
|
canUser,
|
|
162
166
|
getRawEntityRecord,
|
|
163
167
|
getEntityRecord,
|
|
164
|
-
getBlockPatternCategories
|
|
168
|
+
getBlockPatternCategories,
|
|
169
|
+
getPostType
|
|
165
170
|
} = select(import_core_data.store);
|
|
166
171
|
const { get } = select(import_preferences.store);
|
|
167
172
|
const { getBlockTypes } = select(import_blocks.store);
|
|
173
|
+
const { getCurrentPostId, getCurrentPostType } = select(import_store.store);
|
|
168
174
|
const { getDeviceType, isRevisionsMode: _isRevisionsMode } = (0, import_lock_unlock.unlock)(
|
|
169
175
|
select(import_store.store)
|
|
170
176
|
);
|
|
@@ -174,6 +180,8 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
|
|
|
174
180
|
name: "site"
|
|
175
181
|
}) ? getEntityRecord("root", "site") : void 0;
|
|
176
182
|
const baseData = getEntityRecord("root", "__unstableBase");
|
|
183
|
+
const currentPostType = getCurrentPostType();
|
|
184
|
+
const postTypeObject = currentPostType ? getPostType(currentPostType) : void 0;
|
|
177
185
|
function getSectionRootBlock() {
|
|
178
186
|
if (renderingMode === "template-locked") {
|
|
179
187
|
return getBlocksByName("core/post-content")?.[0] ?? "";
|
|
@@ -210,6 +218,12 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
|
|
|
210
218
|
}),
|
|
211
219
|
pageOnFront: siteSettings?.page_on_front,
|
|
212
220
|
pageForPosts: siteSettings?.page_for_posts,
|
|
221
|
+
// The post type's singular name, but only for real, front-end
|
|
222
|
+
// rendered content (`viewable`). Empty for synced patterns,
|
|
223
|
+
// navigation and templates, which gates the attached-images
|
|
224
|
+
// category off for them and words its copy for everything else.
|
|
225
|
+
viewablePostTypeLabel: postTypeObject?.viewable ? postTypeObject?.labels?.singular_name : void 0,
|
|
226
|
+
currentPostId: getCurrentPostId(),
|
|
213
227
|
restBlockPatternCategories: getBlockPatternCategories(),
|
|
214
228
|
sectionRootClientId: getSectionRootBlock(),
|
|
215
229
|
deviceType: getDeviceType(),
|
|
@@ -274,6 +288,10 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
|
|
|
274
288
|
return settings.allowedBlockTypes;
|
|
275
289
|
}, [settings.allowedBlockTypes, hiddenBlockTypes, blockTypes]);
|
|
276
290
|
const forceDisableFocusMode = settings.focusMode === false;
|
|
291
|
+
const inserterMediaCategories = (0, import_element.useMemo)(
|
|
292
|
+
() => (0, import_media_categories.default)(currentPostId, viewablePostTypeLabel),
|
|
293
|
+
[currentPostId, viewablePostTypeLabel]
|
|
294
|
+
);
|
|
277
295
|
return (0, import_element.useMemo)(() => {
|
|
278
296
|
const blockEditorSettings = {
|
|
279
297
|
...Object.fromEntries(
|
|
@@ -303,6 +321,7 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
|
|
|
303
321
|
mediaUpload: hasUploadPermissions ? import_utils.mediaUpload : void 0,
|
|
304
322
|
[mediaUploadOnSuccessKey]: hasUploadPermissions ? import_on_success.default : void 0,
|
|
305
323
|
mediaSideload: hasUploadPermissions ? import_media_sideload.default : void 0,
|
|
324
|
+
[mediaSideloadFromUrlKey]: hasUploadPermissions ? import_media_sideload_from_url.default : void 0,
|
|
306
325
|
mediaFinalize: hasUploadPermissions ? import_media_finalize.default : void 0,
|
|
307
326
|
mediaDelete: hasUploadPermissions ? import_media_delete.default : void 0,
|
|
308
327
|
__experimentalBlockPatterns: blockPatterns,
|
|
@@ -315,7 +334,7 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
|
|
|
315
334
|
[userPatternCategoriesSelectKey]: __experimentalUserPatternCategoriesSelect,
|
|
316
335
|
__experimentalBlockPatternCategories: blockPatternCategories,
|
|
317
336
|
__experimentalFetchLinkSuggestions: (search, searchOptions) => (0, import_core_data.__experimentalFetchLinkSuggestions)(search, searchOptions, settings),
|
|
318
|
-
inserterMediaCategories
|
|
337
|
+
inserterMediaCategories,
|
|
319
338
|
__experimentalFetchRichUrlData: import_core_data.__experimentalFetchUrlData,
|
|
320
339
|
// Todo: This only checks the top level post, not the post within a template or any other entity that can be edited.
|
|
321
340
|
// This might be better as a generic "canUser" selector.
|
|
@@ -367,6 +386,7 @@ function useBlockEditorSettings(settings, postType, postId, renderingMode) {
|
|
|
367
386
|
hasUploadPermissions,
|
|
368
387
|
blockPatterns,
|
|
369
388
|
blockPatternCategories,
|
|
389
|
+
inserterMediaCategories,
|
|
370
390
|
canUseUnfilteredHTML,
|
|
371
391
|
undo,
|
|
372
392
|
createPageEntity,
|