@wordpress/editor 14.17.0 → 14.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/bindings/pattern-overrides.js +0 -1
- package/build/bindings/pattern-overrides.js.map +1 -1
- package/build/bindings/post-meta.js +0 -1
- package/build/bindings/post-meta.js.map +1 -1
- package/build/components/autocompleters/user.js +0 -1
- package/build/components/autocompleters/user.js.map +1 -1
- package/build/components/block-removal-warnings/index.js +0 -1
- package/build/components/block-removal-warnings/index.js.map +1 -1
- package/build/components/block-settings-menu/content-only-settings-menu.js +0 -1
- package/build/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
- package/build/components/block-settings-menu/plugin-block-settings-menu-item.js +0 -1
- package/build/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
- package/build/components/collab-sidebar/comments.js +0 -1
- package/build/components/collab-sidebar/comments.js.map +1 -1
- package/build/components/collab-sidebar/index.js +0 -1
- package/build/components/collab-sidebar/index.js.map +1 -1
- package/build/components/collab-sidebar/utils.js +0 -1
- package/build/components/collab-sidebar/utils.js.map +1 -1
- package/build/components/deprecated.js +0 -1
- package/build/components/deprecated.js.map +1 -1
- package/build/components/document-outline/index.js +0 -1
- package/build/components/document-outline/index.js.map +1 -1
- package/build/components/editor/index.js +9 -5
- package/build/components/editor/index.js.map +1 -1
- package/build/components/editor-help/index.native.js +0 -1
- package/build/components/editor-help/index.native.js.map +1 -1
- package/build/components/editor-notices/index.js +0 -1
- package/build/components/editor-notices/index.js.map +1 -1
- package/build/components/editor-snackbars/index.js +0 -1
- package/build/components/editor-snackbars/index.js.map +1 -1
- package/build/components/entities-saved-states/entity-type-list.js +0 -1
- package/build/components/entities-saved-states/entity-type-list.js.map +1 -1
- package/build/components/entities-saved-states/hooks/use-is-dirty.js +0 -1
- package/build/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
- package/build/components/entities-saved-states/index.js +0 -1
- package/build/components/entities-saved-states/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/build/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build/components/keyboard-shortcut-help-modal/shortcut.js +0 -1
- package/build/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
- package/build/components/list-view-sidebar/index.js +0 -1
- package/build/components/list-view-sidebar/index.js.map +1 -1
- package/build/components/local-autosave-monitor/index.js +0 -1
- package/build/components/local-autosave-monitor/index.js.map +1 -1
- package/build/components/mode-switcher/index.js +0 -1
- package/build/components/mode-switcher/index.js.map +1 -1
- package/build/components/page-attributes/parent.js +8 -5
- package/build/components/page-attributes/parent.js.map +1 -1
- package/build/components/post-actions/actions.js +0 -1
- package/build/components/post-actions/actions.js.map +1 -1
- package/build/components/post-actions/index.js +0 -1
- package/build/components/post-actions/index.js.map +1 -1
- package/build/components/post-author/check.js +3 -4
- package/build/components/post-author/check.js.map +1 -1
- package/build/components/post-author/combobox.js +4 -2
- package/build/components/post-author/combobox.js.map +1 -1
- package/build/components/post-author/hook.js +8 -5
- package/build/components/post-author/hook.js.map +1 -1
- package/build/components/post-fields/index.js +0 -1
- package/build/components/post-fields/index.js.map +1 -1
- package/build/components/post-format/index.js +0 -1
- package/build/components/post-format/index.js.map +1 -1
- package/build/components/post-format/panel.js +0 -1
- package/build/components/post-format/panel.js.map +1 -1
- package/build/components/post-publish-button/index.js +0 -1
- package/build/components/post-publish-button/index.js.map +1 -1
- package/build/components/post-publish-panel/maybe-category-panel.js +2 -4
- package/build/components/post-publish-panel/maybe-category-panel.js.map +1 -1
- package/build/components/post-publish-panel/maybe-post-format-panel.js +0 -1
- package/build/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
- package/build/components/post-publish-panel/maybe-tags-panel.js +1 -1
- package/build/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
- package/build/components/post-publish-panel/maybe-upload-media.js +0 -1
- package/build/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build/components/post-publish-panel/media-util.js +0 -1
- package/build/components/post-publish-panel/media-util.js.map +1 -1
- package/build/components/post-saved-state/index.js +0 -1
- package/build/components/post-saved-state/index.js.map +1 -1
- package/build/components/post-schedule/index.js +0 -1
- package/build/components/post-schedule/index.js.map +1 -1
- package/build/components/post-taxonomies/check.js +1 -1
- package/build/components/post-taxonomies/check.js.map +1 -1
- package/build/components/post-taxonomies/flat-term-selector.js +2 -3
- package/build/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/hierarchical-term-selector.js +2 -3
- package/build/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build/components/post-taxonomies/index.js +1 -2
- package/build/components/post-taxonomies/index.js.map +1 -1
- package/build/components/post-taxonomies/most-used-terms.js +0 -1
- package/build/components/post-taxonomies/most-used-terms.js.map +1 -1
- package/build/components/post-template/classic-theme.js +0 -1
- package/build/components/post-template/classic-theme.js.map +1 -1
- package/build/components/post-template/swap-template-button.js +0 -1
- package/build/components/post-template/swap-template-button.js.map +1 -1
- package/build/components/post-transform-panel/hooks.js +0 -1
- package/build/components/post-transform-panel/hooks.js.map +1 -1
- package/build/components/post-type-support-check/index.js +0 -1
- package/build/components/post-type-support-check/index.js.map +1 -1
- package/build/components/preferences-modal/block-visibility.js +0 -1
- package/build/components/preferences-modal/block-visibility.js.map +1 -1
- package/build/components/preferences-modal/index.js +0 -1
- package/build/components/preferences-modal/index.js.map +1 -1
- package/build/components/provider/disable-non-page-content-blocks.js +0 -1
- package/build/components/provider/disable-non-page-content-blocks.js.map +1 -1
- package/build/components/provider/index.js +0 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/provider/index.native.js +0 -1
- package/build/components/provider/index.native.js.map +1 -1
- package/build/components/provider/use-block-editor-settings.js +0 -1
- package/build/components/provider/use-block-editor-settings.js.map +1 -1
- package/build/components/sidebar/index.js +0 -1
- package/build/components/sidebar/index.js.map +1 -1
- package/build/components/start-template-options/index.js +0 -1
- package/build/components/start-template-options/index.js.map +1 -1
- package/build/components/template-part-content-panel/index.js +0 -1
- package/build/components/template-part-content-panel/index.js.map +1 -1
- package/build/components/theme-support-check/index.js +0 -1
- package/build/components/theme-support-check/index.js.map +1 -1
- package/build/components/visual-editor/use-select-nearest-editable-block.js +0 -1
- package/build/components/visual-editor/use-select-nearest-editable-block.js.map +1 -1
- package/build/dataviews/store/private-actions.js +0 -1
- package/build/dataviews/store/private-actions.js.map +1 -1
- package/build/dataviews/store/reducer.js +0 -1
- package/build/dataviews/store/reducer.js.map +1 -1
- package/build/hooks/custom-sources-backwards-compatibility.js +0 -1
- package/build/hooks/custom-sources-backwards-compatibility.js.map +1 -1
- package/build/hooks/pattern-overrides.js +0 -1
- package/build/hooks/pattern-overrides.js.map +1 -1
- package/build/private-apis.js +2 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +0 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +0 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +0 -1
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +0 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/reducer.native.js +0 -1
- package/build/store/reducer.native.js.map +1 -1
- package/build/store/selectors.js +0 -1
- package/build/store/selectors.js.map +1 -1
- package/build/utils/get-template-info.js +0 -1
- package/build/utils/get-template-info.js.map +1 -1
- package/build/utils/terms.js +0 -1
- package/build/utils/terms.js.map +1 -1
- package/build-module/bindings/pattern-overrides.js +0 -1
- package/build-module/bindings/pattern-overrides.js.map +1 -1
- package/build-module/bindings/post-meta.js +0 -1
- package/build-module/bindings/post-meta.js.map +1 -1
- package/build-module/components/autocompleters/user.js +0 -1
- package/build-module/components/autocompleters/user.js.map +1 -1
- package/build-module/components/block-removal-warnings/index.js +0 -1
- package/build-module/components/block-removal-warnings/index.js.map +1 -1
- package/build-module/components/block-settings-menu/content-only-settings-menu.js +0 -1
- package/build-module/components/block-settings-menu/content-only-settings-menu.js.map +1 -1
- package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js +0 -1
- package/build-module/components/block-settings-menu/plugin-block-settings-menu-item.js.map +1 -1
- package/build-module/components/collab-sidebar/comments.js +0 -1
- package/build-module/components/collab-sidebar/comments.js.map +1 -1
- package/build-module/components/collab-sidebar/index.js +0 -1
- package/build-module/components/collab-sidebar/index.js.map +1 -1
- package/build-module/components/collab-sidebar/utils.js +0 -1
- package/build-module/components/collab-sidebar/utils.js.map +1 -1
- package/build-module/components/deprecated.js +0 -1
- package/build-module/components/deprecated.js.map +1 -1
- package/build-module/components/document-outline/index.js +0 -1
- package/build-module/components/document-outline/index.js.map +1 -1
- package/build-module/components/editor/index.js +9 -5
- package/build-module/components/editor/index.js.map +1 -1
- package/build-module/components/editor-help/index.native.js +0 -1
- package/build-module/components/editor-help/index.native.js.map +1 -1
- package/build-module/components/editor-notices/index.js +0 -1
- package/build-module/components/editor-notices/index.js.map +1 -1
- package/build-module/components/editor-snackbars/index.js +0 -1
- package/build-module/components/editor-snackbars/index.js.map +1 -1
- package/build-module/components/entities-saved-states/entity-type-list.js +0 -1
- package/build-module/components/entities-saved-states/entity-type-list.js.map +1 -1
- package/build-module/components/entities-saved-states/hooks/use-is-dirty.js +0 -1
- package/build-module/components/entities-saved-states/hooks/use-is-dirty.js.map +1 -1
- package/build-module/components/entities-saved-states/index.js +0 -1
- package/build-module/components/entities-saved-states/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/index.js.map +1 -1
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js +0 -1
- package/build-module/components/keyboard-shortcut-help-modal/shortcut.js.map +1 -1
- package/build-module/components/list-view-sidebar/index.js +0 -1
- package/build-module/components/list-view-sidebar/index.js.map +1 -1
- package/build-module/components/local-autosave-monitor/index.js +0 -1
- package/build-module/components/local-autosave-monitor/index.js.map +1 -1
- package/build-module/components/mode-switcher/index.js +0 -1
- package/build-module/components/mode-switcher/index.js.map +1 -1
- package/build-module/components/page-attributes/parent.js +8 -5
- package/build-module/components/page-attributes/parent.js.map +1 -1
- package/build-module/components/post-actions/actions.js +0 -1
- package/build-module/components/post-actions/actions.js.map +1 -1
- package/build-module/components/post-actions/index.js +0 -1
- package/build-module/components/post-actions/index.js.map +1 -1
- package/build-module/components/post-author/check.js +3 -4
- package/build-module/components/post-author/check.js.map +1 -1
- package/build-module/components/post-author/combobox.js +4 -2
- package/build-module/components/post-author/combobox.js.map +1 -1
- package/build-module/components/post-author/hook.js +8 -5
- package/build-module/components/post-author/hook.js.map +1 -1
- package/build-module/components/post-fields/index.js +0 -1
- package/build-module/components/post-fields/index.js.map +1 -1
- package/build-module/components/post-format/index.js +0 -1
- package/build-module/components/post-format/index.js.map +1 -1
- package/build-module/components/post-format/panel.js +0 -1
- package/build-module/components/post-format/panel.js.map +1 -1
- package/build-module/components/post-publish-button/index.js +0 -1
- package/build-module/components/post-publish-button/index.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-category-panel.js +2 -4
- package/build-module/components/post-publish-panel/maybe-category-panel.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-post-format-panel.js +0 -1
- package/build-module/components/post-publish-panel/maybe-post-format-panel.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-tags-panel.js +1 -1
- package/build-module/components/post-publish-panel/maybe-tags-panel.js.map +1 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.js +0 -1
- package/build-module/components/post-publish-panel/maybe-upload-media.js.map +1 -1
- package/build-module/components/post-publish-panel/media-util.js +0 -1
- package/build-module/components/post-publish-panel/media-util.js.map +1 -1
- package/build-module/components/post-saved-state/index.js +0 -1
- package/build-module/components/post-saved-state/index.js.map +1 -1
- package/build-module/components/post-schedule/index.js +0 -1
- package/build-module/components/post-schedule/index.js.map +1 -1
- package/build-module/components/post-taxonomies/check.js +1 -1
- package/build-module/components/post-taxonomies/check.js.map +1 -1
- package/build-module/components/post-taxonomies/flat-term-selector.js +2 -3
- package/build-module/components/post-taxonomies/flat-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js +2 -3
- package/build-module/components/post-taxonomies/hierarchical-term-selector.js.map +1 -1
- package/build-module/components/post-taxonomies/index.js +1 -2
- package/build-module/components/post-taxonomies/index.js.map +1 -1
- package/build-module/components/post-taxonomies/most-used-terms.js +0 -1
- package/build-module/components/post-taxonomies/most-used-terms.js.map +1 -1
- package/build-module/components/post-template/classic-theme.js +0 -1
- package/build-module/components/post-template/classic-theme.js.map +1 -1
- package/build-module/components/post-template/swap-template-button.js +0 -1
- package/build-module/components/post-template/swap-template-button.js.map +1 -1
- package/build-module/components/post-transform-panel/hooks.js +0 -1
- package/build-module/components/post-transform-panel/hooks.js.map +1 -1
- package/build-module/components/post-type-support-check/index.js +0 -1
- package/build-module/components/post-type-support-check/index.js.map +1 -1
- package/build-module/components/preferences-modal/block-visibility.js +0 -1
- package/build-module/components/preferences-modal/block-visibility.js.map +1 -1
- package/build-module/components/preferences-modal/index.js +0 -1
- package/build-module/components/preferences-modal/index.js.map +1 -1
- package/build-module/components/provider/disable-non-page-content-blocks.js +0 -1
- package/build-module/components/provider/disable-non-page-content-blocks.js.map +1 -1
- package/build-module/components/provider/index.js +0 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/provider/index.native.js +0 -1
- package/build-module/components/provider/index.native.js.map +1 -1
- package/build-module/components/provider/use-block-editor-settings.js +0 -1
- package/build-module/components/provider/use-block-editor-settings.js.map +1 -1
- package/build-module/components/sidebar/index.js +0 -1
- package/build-module/components/sidebar/index.js.map +1 -1
- package/build-module/components/start-template-options/index.js +0 -1
- package/build-module/components/start-template-options/index.js.map +1 -1
- package/build-module/components/template-part-content-panel/index.js +0 -1
- package/build-module/components/template-part-content-panel/index.js.map +1 -1
- package/build-module/components/theme-support-check/index.js +0 -1
- package/build-module/components/theme-support-check/index.js.map +1 -1
- package/build-module/components/visual-editor/use-select-nearest-editable-block.js +0 -1
- package/build-module/components/visual-editor/use-select-nearest-editable-block.js.map +1 -1
- package/build-module/dataviews/store/private-actions.js +0 -1
- package/build-module/dataviews/store/private-actions.js.map +1 -1
- package/build-module/dataviews/store/reducer.js +0 -1
- package/build-module/dataviews/store/reducer.js.map +1 -1
- package/build-module/hooks/custom-sources-backwards-compatibility.js +0 -1
- package/build-module/hooks/custom-sources-backwards-compatibility.js.map +1 -1
- package/build-module/hooks/pattern-overrides.js +0 -1
- package/build-module/hooks/pattern-overrides.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +0 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +0 -1
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +0 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +0 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/reducer.native.js +0 -1
- package/build-module/store/reducer.native.js.map +1 -1
- package/build-module/store/selectors.js +0 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/get-template-info.js +0 -1
- package/build-module/utils/get-template-info.js.map +1 -1
- package/build-module/utils/terms.js +0 -1
- package/build-module/utils/terms.js.map +1 -1
- package/build-types/components/editor/index.d.ts.map +1 -1
- package/build-types/components/page-attributes/parent.d.ts.map +1 -1
- package/build-types/components/post-author/check.d.ts.map +1 -1
- package/build-types/components/post-author/combobox.d.ts.map +1 -1
- package/build-types/components/post-author/hook.d.ts +1 -0
- package/build-types/components/post-author/hook.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/maybe-category-panel.d.ts.map +1 -1
- package/build-types/components/post-publish-panel/maybe-tags-panel.d.ts.map +1 -1
- package/build-types/components/post-taxonomies/check.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/index.d.ts.map +1 -1
- package/build-types/components/post-template/hooks.d.ts +1 -1
- package/build-types/components/post-template/hooks.d.ts.map +1 -1
- package/build-types/private-apis.d.ts.map +1 -1
- package/package.json +37 -37
- package/src/components/editor/index.js +24 -13
- package/src/components/page-attributes/parent.js +55 -38
- package/src/components/post-author/check.js +7 -4
- package/src/components/post-author/combobox.js +3 -1
- package/src/components/post-author/hook.js +4 -3
- package/src/components/post-publish-panel/maybe-category-panel.js +6 -2
- package/src/components/post-publish-panel/maybe-tags-panel.js +5 -1
- package/src/components/post-taxonomies/check.js +5 -3
- package/src/components/post-taxonomies/flat-term-selector.js +2 -2
- package/src/components/post-taxonomies/hierarchical-term-selector.js +2 -2
- package/src/components/post-taxonomies/index.js +5 -1
- package/src/components/post-taxonomies/test/index.js +32 -18
- package/src/private-apis.js +7 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","_x","sprintf","Fragment","useEffect","useMemo","useState","FormTokenField","withFilters","__experimentalVStack","VStack","useSelect","useDispatch","deprecated","store","coreStore","useDebounce","speak","noticesStore","editorStore","unescapeString","unescapeTerm","MostUsedTerms","jsx","_jsx","jsxs","_jsxs","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","filter","undefined","Wrapper","children","__nextHasNoMarginBottom","spacing","FlatTermSelector","slug","_taxonomy$labels$add_","_taxonomy$labels$sing2","values","setValues","search","setSearch","debouncedSearch","since","version","hint","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getEntityRecords","getTaxonomy","hasFinishedResolution","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","newValues","suggestions","editPost","saveEntityRecord","createErrorNotice","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","appendTerm","_taxonomy$labels$sing","includes","defaultName","termAddedMessage","labels","singular_name","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","onSelect"],"sources":["@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Fragment, useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tFormTokenField,\n\twithFilters,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unescapeString, unescapeTerm } from '../../utils/terms';\nimport MostUsedTerms from './most-used-terms';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * How the max suggestions limit was chosen:\n * - Matches the `per_page` range set by the REST API.\n * - Can't use \"unbound\" query. The `FormTokenField` needs a fixed number.\n * - Matches default for `FormTokenField`.\n */\nconst MAX_TERMS_SUGGESTIONS = 100;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names\n\t\t.map(\n\t\t\t( termName ) =>\n\t\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) )\n\t\t\t\t\t?.id\n\t\t)\n\t\t.filter( ( id ) => id !== undefined );\n};\n\nconst Wrapper = ( { children, __nextHasNoMarginBottom } ) =>\n\t__nextHasNoMarginBottom ? (\n\t\t<VStack spacing={ 4 }>{ children }</VStack>\n\t) : (\n\t\t<Fragment>{ children }</Fragment>\n\t);\n\n/**\n * Renders a flat term selector component.\n *\n * @param {Object} props The component props.\n * @param {string} props.slug The slug of the taxonomy.\n * @param {boolean} props.__nextHasNoMarginBottom Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 7.0. (The prop can be safely removed once this happens.)\n *\n * @return {React.ReactNode} The rendered flat term selector component.\n */\nexport function FlatTermSelector( { slug, __nextHasNoMarginBottom } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated(\n\t\t\t'Bottom margin styles for wp.editor.PostTaxonomiesFlatTermSelector',\n\t\t\t{\n\t\t\t\tsince: '6.7',\n\t\t\t\tversion: '7.0',\n\t\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t\t}\n\t\t);\n\t}\n\n\tconst {\n\t\tterms,\n\t\ttermIds,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecords, getTaxonomy, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst post = getCurrentPost();\n\t\t\tconst _taxonomy = getTaxonomy( slug );\n\t\t\tconst _termIds = _taxonomy\n\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t: EMPTY_ARRAY;\n\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds?.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\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 ] ?? false\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 ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds?.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditPost( { [ taxonomy.rest_base ]: newTermIds } );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\tonUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\t// In case of a failure, try assigning available terms.\n\t\t\t\t// This will invalidate the optimistic update.\n\t\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\t} );\n\t}\n\n\tfunction appendTerm( newTerm ) {\n\t\tif ( termIds.includes( newTerm.id ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newTermIds = [ ...termIds, newTerm.id ];\n\t\tconst defaultName = slug === 'post_tag' ? __( 'Tag' ) : __( '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\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tonUpdateTerms( newTermIds );\n\t}\n\n\tconst newTermLabel =\n\t\ttaxonomy?.labels?.add_new_item ??\n\t\t( slug === 'post_tag' ? __( 'Add new tag' ) : __( 'Add new Term' ) );\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<Wrapper __nextHasNoMarginBottom={ __nextHasNoMarginBottom }>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ newTermLabel }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</Wrapper>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,EAAEC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AACjD,SAASC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,oBAAoB;AAC3E,SACCC,cAAc,EACdC,WAAW,EACXC,oBAAoB,IAAIC,MAAM,QACxB,uBAAuB;AAC9B,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,OAAOC,UAAU,MAAM,uBAAuB;AAC9C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,WAAW,QAAQ,oBAAoB;AAChD,SAASC,KAAK,QAAQ,iBAAiB;AACvC,SAASH,KAAK,IAAII,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASJ,KAAK,IAAIK,WAAW,QAAQ,aAAa;AAClD,SAASC,cAAc,EAAEC,YAAY,QAAQ,mBAAmB;AAChE,OAAOC,aAAa,MAAM,mBAAmB;;AAE7C;AACA;AACA;AACA;AACA;AACA;AALA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAMA,MAAMC,WAAW,GAAG,EAAE;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,qBAAqB,GAAG,GAAG;AACjC,MAAMC,aAAa,GAAG;EACrBC,QAAQ,EAAEF,qBAAqB;EAC/BG,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE;AACV,CAAC;AAED,MAAMC,cAAc,GAAGA,CAAEC,KAAK,EAAEC,KAAK,KACpCf,cAAc,CAAEc,KAAM,CAAC,CAACE,WAAW,CAAC,CAAC,KACrChB,cAAc,CAAEe,KAAM,CAAC,CAACC,WAAW,CAAC,CAAC;AAEtC,MAAMC,cAAc,GAAGA,CAAEC,KAAK,EAAEC,KAAK,KAAM;EAC1C,OAAOD,KAAK,CACVE,GAAG,CACDC,QAAQ,IACTF,KAAK,CAACG,IAAI,CAAIC,IAAI,IAAMV,cAAc,CAAEU,IAAI,CAACC,IAAI,EAAEH,QAAS,CAAE,CAAC,EAC5DI,EACL,CAAC,CACAC,MAAM,CAAID,EAAE,IAAMA,EAAE,KAAKE,SAAU,CAAC;AACvC,CAAC;AAED,MAAMC,OAAO,GAAGA,CAAE;EAAEC,QAAQ;EAAEC;AAAwB,CAAC,KACtDA,uBAAuB,gBACtB1B,IAAA,CAACd,MAAM;EAACyC,OAAO,EAAG,CAAG;EAAAF,QAAA,EAAGA;AAAQ,CAAU,CAAC,gBAE3CzB,IAAA,CAACrB,QAAQ;EAAA8C,QAAA,EAAGA;AAAQ,CAAY,CAChC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,gBAAgBA,CAAE;EAAEC,IAAI;EAAEH;AAAwB,CAAC,EAAG;EAAA,IAAAI,qBAAA,EAAAC,sBAAA;EACrE,MAAM,CAAEC,MAAM,EAAEC,SAAS,CAAE,GAAGnD,QAAQ,CAAE,EAAG,CAAC;EAC5C,MAAM,CAAEoD,MAAM,EAAEC,SAAS,CAAE,GAAGrD,QAAQ,CAAE,EAAG,CAAC;EAC5C,MAAMsD,eAAe,GAAG5C,WAAW,CAAE2C,SAAS,EAAE,GAAI,CAAC;EAErD,IAAK,CAAET,uBAAuB,EAAG;IAChCrC,UAAU,CACT,mEAAmE,EACnE;MACCgD,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,IAAI,EAAE;IACP,CACD,CAAC;EACF;EAEA,MAAM;IACLxB,KAAK;IACLyB,OAAO;IACPC,QAAQ;IACRC,eAAe;IACfC,eAAe;IACfC;EACD,CAAC,GAAGzD,SAAS,CACV0D,MAAM,IAAM;IAAA,IAAAC,YAAA,EAAAC,aAAA;IACb,MAAM;MAAEC,cAAc;MAAEC;IAAuB,CAAC,GAC/CJ,MAAM,CAAElD,WAAY,CAAC;IACtB,MAAM;MAAEuD,gBAAgB;MAAEC,WAAW;MAAEC;IAAsB,CAAC,GAC7DP,MAAM,CAAEtD,SAAU,CAAC;IACpB,MAAM8D,IAAI,GAAGL,cAAc,CAAC,CAAC;IAC7B,MAAMM,SAAS,GAAGH,WAAW,CAAEtB,IAAK,CAAC;IACrC,MAAM0B,QAAQ,GAAGD,SAAS,GACvBL,sBAAsB,CAAEK,SAAS,CAACE,SAAU,CAAC,GAC7CrD,WAAW;IAEd,MAAMsD,KAAK,GAAG;MACb,GAAGpD,aAAa;MAChBqD,OAAO,EAAEH,QAAQ,EAAEI,IAAI,CAAE,GAAI,CAAC;MAC9BrD,QAAQ,EAAE,CAAC;IACZ,CAAC;IAED,OAAO;MACNqC,eAAe,EAAEW,SAAS,IAAAR,YAAA,GACvBO,IAAI,CAACO,MAAM,GACX,mBAAmB,GAAGN,SAAS,CAACE,SAAS,CACxC,cAAAV,YAAA,cAAAA,YAAA,GAAI,KAAK,GACV,KAAK;MACRJ,eAAe,EAAEY,SAAS,IAAAP,aAAA,GACvBM,IAAI,CAACO,MAAM,GACX,mBAAmB,GAAGN,SAAS,CAACE,SAAS,CACxC,cAAAT,aAAA,cAAAA,aAAA,GAAI,KAAK,GACV,KAAK;MACRN,QAAQ,EAAEa,SAAS;MACnBd,OAAO,EAAEe,QAAQ;MACjBxC,KAAK,EAAEwC,QAAQ,EAAEM,MAAM,GACpBX,gBAAgB,CAAE,UAAU,EAAErB,IAAI,EAAE4B,KAAM,CAAC,GAC3CtD,WAAW;MACdyC,gBAAgB,EAAEQ,qBAAqB,CAAE,kBAAkB,EAAE,CAC5D,UAAU,EACVvB,IAAI,EACJ4B,KAAK,CACJ;IACH,CAAC;EACF,CAAC,EACD,CAAE5B,IAAI,CACP,CAAC;EAED,MAAM;IAAEiC;EAAc,CAAC,GAAG3E,SAAS,CAChC0D,MAAM,IAAM;IACb,MAAM;MAAEK;IAAiB,CAAC,GAAGL,MAAM,CAAEtD,SAAU,CAAC;IAEhD,OAAO;MACNuE,aAAa,EAAE,CAAC,CAAE5B,MAAM,GACrBgB,gBAAgB,CAAE,UAAU,EAAErB,IAAI,EAAE;QACpC,GAAGxB,aAAa;QAChB6B;MACA,CAAE,CAAC,GACH/B;IACJ,CAAC;EACF,CAAC,EACD,CAAE+B,MAAM,EAAEL,IAAI,CACf,CAAC;;EAED;EACA;EACA;EACAjD,SAAS,CAAE,MAAM;IAChB,IAAKgE,gBAAgB,EAAG;MACvB,MAAMmB,SAAS,GAAG,CAAEhD,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,EAAGC,GAAG,CAAIG,IAAI,IAC5CvB,cAAc,CAAEuB,IAAI,CAACC,IAAK,CAC3B,CAAC;MAEDa,SAAS,CAAE8B,SAAU,CAAC;IACvB;EACD,CAAC,EAAE,CAAEhD,KAAK,EAAE6B,gBAAgB,CAAG,CAAC;EAEhC,MAAMoB,WAAW,GAAGnF,OAAO,CAAE,MAAM;IAClC,OAAO,CAAEiF,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,EAAE,EAAG9C,GAAG,CAAIG,IAAI,IACzCvB,cAAc,CAAEuB,IAAI,CAACC,IAAK,CAC3B,CAAC;EACF,CAAC,EAAE,CAAE0C,aAAa,CAAG,CAAC;EAEtB,MAAM;IAAEG;EAAS,CAAC,GAAG7E,WAAW,CAAEO,WAAY,CAAC;EAC/C,MAAM;IAAEuE;EAAiB,CAAC,GAAG9E,WAAW,CAAEG,SAAU,CAAC;EACrD,MAAM;IAAE4E;EAAkB,CAAC,GAAG/E,WAAW,CAAEM,YAAa,CAAC;EAEzD,IAAK,CAAEgD,eAAe,EAAG;IACxB,OAAO,IAAI;EACZ;EAEA,eAAe0B,gBAAgBA,CAAEjD,IAAI,EAAG;IACvC,IAAI;MACH,MAAMkD,OAAO,GAAG,MAAMH,gBAAgB,CAAE,UAAU,EAAErC,IAAI,EAAEV,IAAI,EAAE;QAC/DmD,YAAY,EAAE;MACf,CAAE,CAAC;MACH,OAAOzE,YAAY,CAAEwE,OAAQ,CAAC;IAC/B,CAAC,CAAC,OAAQE,KAAK,EAAG;MACjB,IAAKA,KAAK,CAACC,IAAI,KAAK,aAAa,EAAG;QACnC,MAAMD,KAAK;MACZ;MAEA,OAAO;QACNlD,EAAE,EAAEkD,KAAK,CAACE,IAAI,CAACC,OAAO;QACtBtD,IAAI,EAAED,IAAI,CAACC;MACZ,CAAC;IACF;EACD;EAEA,SAASuD,aAAaA,CAAEC,UAAU,EAAG;IACpCX,QAAQ,CAAE;MAAE,CAAExB,QAAQ,CAACe,SAAS,GAAIoB;IAAW,CAAE,CAAC;EACnD;EAEA,SAASC,QAAQA,CAAEC,SAAS,EAAG;IAC9B,MAAMC,cAAc,GAAG,CACtB,IAAKhE,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,EAAE,CAAE,EAClB,IAAK+C,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI,EAAE,CAAE,CAC1B;IACD,MAAMkB,WAAW,GAAGF,SAAS,CAACG,MAAM,CAAE,CAAEC,GAAG,EAAE9D,IAAI,KAAM;MACtD,IACC,CAAE8D,GAAG,CAACC,IAAI,CAAIC,CAAC,IAAMA,CAAC,CAACxE,WAAW,CAAC,CAAC,KAAKQ,IAAI,CAACR,WAAW,CAAC,CAAE,CAAC,EAC5D;QACDsE,GAAG,CAACG,IAAI,CAAEjE,IAAK,CAAC;MACjB;MACA,OAAO8D,GAAG;IACX,CAAC,EAAE,EAAG,CAAC;IAEP,MAAMI,YAAY,GAAGN,WAAW,CAAC1D,MAAM,CACpCL,QAAQ,IACT,CAAE8D,cAAc,CAAC7D,IAAI,CAAIC,IAAI,IAC5BV,cAAc,CAAEU,IAAI,CAACC,IAAI,EAAEH,QAAS,CACrC,CACF,CAAC;;IAED;IACA;IACAgB,SAAS,CAAE+C,WAAY,CAAC;IAExB,IAAKM,YAAY,CAACzB,MAAM,KAAK,CAAC,EAAG;MAChCc,aAAa,CAAE9D,cAAc,CAAEmE,WAAW,EAAED,cAAe,CAAE,CAAC;MAC9D;IACD;IAEA,IAAK,CAAEpC,eAAe,EAAG;MACxB;IACD;IAEA4C,OAAO,CAACC,GAAG,CACVF,YAAY,CAACtE,GAAG,CAAIC,QAAQ,IAC3BmD,gBAAgB,CAAE;MAAEhD,IAAI,EAAEH;IAAS,CAAE,CACtC,CACD,CAAC,CACCwE,IAAI,CAAIC,QAAQ,IAAM;MACtB,MAAMC,iBAAiB,GAAGZ,cAAc,CAACa,MAAM,CAAEF,QAAS,CAAC;MAC3Df,aAAa,CACZ9D,cAAc,CAAEmE,WAAW,EAAEW,iBAAkB,CAChD,CAAC;IACF,CAAE,CAAC,CACFE,KAAK,CAAItB,KAAK,IAAM;MACpBJ,iBAAiB,CAAEI,KAAK,CAACuB,OAAO,EAAE;QACjCC,IAAI,EAAE;MACP,CAAE,CAAC;MACH;MACA;MACApB,aAAa,CAAE9D,cAAc,CAAEmE,WAAW,EAAED,cAAe,CAAE,CAAC;IAC/D,CAAE,CAAC;EACL;EAEA,SAASiB,UAAUA,CAAE3B,OAAO,EAAG;IAAA,IAAA4B,qBAAA;IAC9B,IAAKzD,OAAO,CAAC0D,QAAQ,CAAE7B,OAAO,CAAChD,EAAG,CAAC,EAAG;MACrC;IACD;IAEA,MAAMuD,UAAU,GAAG,CAAE,GAAGpC,OAAO,EAAE6B,OAAO,CAAChD,EAAE,CAAE;IAC7C,MAAM8E,WAAW,GAAGtE,IAAI,KAAK,UAAU,GAAGrD,EAAE,CAAE,KAAM,CAAC,GAAGA,EAAE,CAAE,MAAO,CAAC;IACpE,MAAM4H,gBAAgB,GAAG1H,OAAO,CAC/B;IACAD,EAAE,CAAE,UAAU,EAAE,MAAO,CAAC,GAAAwH,qBAAA,GACxBxD,QAAQ,EAAE4D,MAAM,EAAEC,aAAa,cAAAL,qBAAA,cAAAA,qBAAA,GAAIE,WACpC,CAAC;IAED1G,KAAK,CAAE2G,gBAAgB,EAAE,WAAY,CAAC;IACtCzB,aAAa,CAAEC,UAAW,CAAC;EAC5B;EAEA,MAAM2B,YAAY,IAAAzE,qBAAA,GACjBW,QAAQ,EAAE4D,MAAM,EAAEG,YAAY,cAAA1E,qBAAA,cAAAA,qBAAA,GAC5BD,IAAI,KAAK,UAAU,GAAGrD,EAAE,CAAE,aAAc,CAAC,GAAGA,EAAE,CAAE,cAAe,CAAG;EACrE,MAAMiI,YAAY,IAAA1E,sBAAA,GACjBU,QAAQ,EAAE4D,MAAM,EAAEC,aAAa,cAAAvE,sBAAA,cAAAA,sBAAA,GAC7BF,IAAI,KAAK,UAAU,GAAGrD,EAAE,CAAE,KAAM,CAAC,GAAGA,EAAE,CAAE,MAAO,CAAG;EACrD,MAAMkI,cAAc,GAAGhI,OAAO,CAC7B;EACAD,EAAE,CAAE,UAAU,EAAE,MAAO,CAAC,EACxBgI,YACD,CAAC;EACD,MAAME,gBAAgB,GAAGjI,OAAO,CAC/B;EACAD,EAAE,CAAE,YAAY,EAAE,MAAO,CAAC,EAC1BgI,YACD,CAAC;EACD,MAAMG,eAAe,GAAGlI,OAAO,CAC9B;EACAD,EAAE,CAAE,WAAW,EAAE,MAAO,CAAC,EACzBgI,YACD,CAAC;EAED,oBACCvG,KAAA,CAACsB,OAAO;IAACE,uBAAuB,EAAGA,uBAAyB;IAAAD,QAAA,gBAC3DzB,IAAA,CAACjB,cAAc;MACd8H,qBAAqB;MACrBC,KAAK,EAAG9E,MAAQ;MAChBgC,WAAW,EAAGA,WAAa;MAC3Ba,QAAQ,EAAGA,QAAU;MACrBkC,aAAa,EAAG3E,eAAiB;MACjC4E,cAAc,EAAG5G,qBAAuB;MACxC6G,KAAK,EAAGV,YAAc;MACtBW,QAAQ,EAAG;QACVC,KAAK,EAAET,cAAc;QACrBU,OAAO,EAAET,gBAAgB;QACzBU,MAAM,EAAET;MACT,CAAG;MACHlF,uBAAuB,EAAGA;IAAyB,CACnD,CAAC,eACF1B,IAAA,CAACF,aAAa;MAAC2C,QAAQ,EAAGA,QAAU;MAAC6E,QAAQ,EAAGtB;IAAY,CAAE,CAAC;EAAA,CACvD,CAAC;AAEZ;AAEA,eAAehH,WAAW,CAAE,yBAA0B,CAAC,CAAE4C,gBAAiB,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","_x","sprintf","Fragment","useEffect","useMemo","useState","FormTokenField","withFilters","__experimentalVStack","VStack","useSelect","useDispatch","deprecated","store","coreStore","useDebounce","speak","noticesStore","editorStore","unescapeString","unescapeTerm","MostUsedTerms","jsx","_jsx","jsxs","_jsxs","EMPTY_ARRAY","MAX_TERMS_SUGGESTIONS","DEFAULT_QUERY","per_page","_fields","context","isSameTermName","termA","termB","toLowerCase","termNamesToIds","names","terms","map","termName","find","term","name","id","filter","undefined","Wrapper","children","__nextHasNoMarginBottom","spacing","FlatTermSelector","slug","_taxonomy$labels$add_","_taxonomy$labels$sing2","values","setValues","search","setSearch","debouncedSearch","since","version","hint","termIds","taxonomy","hasAssignAction","hasCreateAction","hasResolvedTerms","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getEntityRecords","getEntityRecord","hasFinishedResolution","post","_taxonomy","_termIds","rest_base","query","include","join","_links","length","searchResults","newValues","suggestions","editPost","saveEntityRecord","createErrorNotice","findOrCreateTerm","newTerm","throwOnError","error","code","data","term_id","onUpdateTerms","newTermIds","onChange","termNames","availableTerms","uniqueTerms","reduce","acc","some","n","push","newTermNames","Promise","all","then","newTerms","newAvailableTerms","concat","catch","message","type","appendTerm","_taxonomy$labels$sing","includes","defaultName","termAddedMessage","labels","singular_name","newTermLabel","add_new_item","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","__next40pxDefaultSize","value","onInputChange","maxSuggestions","label","messages","added","removed","remove","onSelect"],"sources":["@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Fragment, useEffect, useMemo, useState } from '@wordpress/element';\nimport {\n\tFormTokenField,\n\twithFilters,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport { speak } from '@wordpress/a11y';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unescapeString, unescapeTerm } from '../../utils/terms';\nimport MostUsedTerms from './most-used-terms';\n\n/**\n * Shared reference to an empty array for cases where it is important to avoid\n * returning a new array reference on every invocation.\n *\n * @type {Array<any>}\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * How the max suggestions limit was chosen:\n * - Matches the `per_page` range set by the REST API.\n * - Can't use \"unbound\" query. The `FormTokenField` needs a fixed number.\n * - Matches default for `FormTokenField`.\n */\nconst MAX_TERMS_SUGGESTIONS = 100;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\t_fields: 'id,name',\n\tcontext: 'view',\n};\n\nconst isSameTermName = ( termA, termB ) =>\n\tunescapeString( termA ).toLowerCase() ===\n\tunescapeString( termB ).toLowerCase();\n\nconst termNamesToIds = ( names, terms ) => {\n\treturn names\n\t\t.map(\n\t\t\t( termName ) =>\n\t\t\t\tterms.find( ( term ) => isSameTermName( term.name, termName ) )\n\t\t\t\t\t?.id\n\t\t)\n\t\t.filter( ( id ) => id !== undefined );\n};\n\nconst Wrapper = ( { children, __nextHasNoMarginBottom } ) =>\n\t__nextHasNoMarginBottom ? (\n\t\t<VStack spacing={ 4 }>{ children }</VStack>\n\t) : (\n\t\t<Fragment>{ children }</Fragment>\n\t);\n\n/**\n * Renders a flat term selector component.\n *\n * @param {Object} props The component props.\n * @param {string} props.slug The slug of the taxonomy.\n * @param {boolean} props.__nextHasNoMarginBottom Start opting into the new margin-free styles that will become the default in a future version, currently scheduled to be WordPress 7.0. (The prop can be safely removed once this happens.)\n *\n * @return {React.ReactNode} The rendered flat term selector component.\n */\nexport function FlatTermSelector( { slug, __nextHasNoMarginBottom } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\n\n\tif ( ! __nextHasNoMarginBottom ) {\n\t\tdeprecated(\n\t\t\t'Bottom margin styles for wp.editor.PostTaxonomiesFlatTermSelector',\n\t\t\t{\n\t\t\t\tsince: '6.7',\n\t\t\t\tversion: '7.0',\n\t\t\t\thint: 'Set the `__nextHasNoMarginBottom` prop to true to start opting into the new styles, which will become the default in a future version.',\n\t\t\t}\n\t\t);\n\t}\n\n\tconst {\n\t\tterms,\n\t\ttermIds,\n\t\ttaxonomy,\n\t\thasAssignAction,\n\t\thasCreateAction,\n\t\thasResolvedTerms,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getEntityRecords, getEntityRecord, hasFinishedResolution } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst post = getCurrentPost();\n\t\t\tconst _taxonomy = getEntityRecord( 'root', 'taxonomy', slug );\n\t\t\tconst _termIds = _taxonomy\n\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t: EMPTY_ARRAY;\n\n\t\t\tconst query = {\n\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\tinclude: _termIds?.join( ',' ),\n\t\t\t\tper_page: -1,\n\t\t\t};\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 ] ?? false\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 ] ?? false\n\t\t\t\t\t: false,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t\ttermIds: _termIds,\n\t\t\t\tterms: _termIds?.length\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, query )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\thasResolvedTerms: hasFinishedResolution( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tquery,\n\t\t\t\t] ),\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { searchResults } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEntityRecords } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tsearchResults: !! search\n\t\t\t\t\t? getEntityRecords( 'taxonomy', slug, {\n\t\t\t\t\t\t\t...DEFAULT_QUERY,\n\t\t\t\t\t\t\tsearch,\n\t\t\t\t\t } )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t};\n\t\t},\n\t\t[ search, slug ]\n\t);\n\n\t// Update terms state only after the selectors are resolved.\n\t// We're using this to avoid terms temporarily disappearing on slow networks\n\t// while core data makes REST API requests.\n\tuseEffect( () => {\n\t\tif ( hasResolvedTerms ) {\n\t\t\tconst newValues = ( terms ?? [] ).map( ( term ) =>\n\t\t\t\tunescapeString( term.name )\n\t\t\t);\n\n\t\t\tsetValues( newValues );\n\t\t}\n\t}, [ terms, hasResolvedTerms ] );\n\n\tconst suggestions = useMemo( () => {\n\t\treturn ( searchResults ?? [] ).map( ( term ) =>\n\t\t\tunescapeString( term.name )\n\t\t);\n\t}, [ searchResults ] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\n\t}\n\n\tasync function findOrCreateTerm( term ) {\n\t\ttry {\n\t\t\tconst newTerm = await saveEntityRecord( 'taxonomy', slug, term, {\n\t\t\t\tthrowOnError: true,\n\t\t\t} );\n\t\t\treturn unescapeTerm( newTerm );\n\t\t} catch ( error ) {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\tthrow error;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: term.name,\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction onUpdateTerms( newTermIds ) {\n\t\teditPost( { [ taxonomy.rest_base ]: newTermIds } );\n\t}\n\n\tfunction onChange( termNames ) {\n\t\tconst availableTerms = [\n\t\t\t...( terms ?? [] ),\n\t\t\t...( searchResults ?? [] ),\n\t\t];\n\t\tconst uniqueTerms = termNames.reduce( ( acc, name ) => {\n\t\t\tif (\n\t\t\t\t! acc.some( ( n ) => n.toLowerCase() === name.toLowerCase() )\n\t\t\t) {\n\t\t\t\tacc.push( name );\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, [] );\n\n\t\tconst newTermNames = uniqueTerms.filter(\n\t\t\t( termName ) =>\n\t\t\t\t! availableTerms.find( ( term ) =>\n\t\t\t\t\tisSameTermName( term.name, termName )\n\t\t\t\t)\n\t\t);\n\n\t\t// Optimistically update term values.\n\t\t// The selector will always re-fetch terms later.\n\t\tsetValues( uniqueTerms );\n\n\t\tif ( newTermNames.length === 0 ) {\n\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( { name: termName } )\n\t\t\t)\n\t\t)\n\t\t\t.then( ( newTerms ) => {\n\t\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\t\tonUpdateTerms(\n\t\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.catch( ( error ) => {\n\t\t\t\tcreateErrorNotice( error.message, {\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t} );\n\t\t\t\t// In case of a failure, try assigning available terms.\n\t\t\t\t// This will invalidate the optimistic update.\n\t\t\t\tonUpdateTerms( termNamesToIds( uniqueTerms, availableTerms ) );\n\t\t\t} );\n\t}\n\n\tfunction appendTerm( newTerm ) {\n\t\tif ( termIds.includes( newTerm.id ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst newTermIds = [ ...termIds, newTerm.id ];\n\t\tconst defaultName = slug === 'post_tag' ? __( 'Tag' ) : __( '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\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tonUpdateTerms( newTermIds );\n\t}\n\n\tconst newTermLabel =\n\t\ttaxonomy?.labels?.add_new_item ??\n\t\t( slug === 'post_tag' ? __( 'Add new tag' ) : __( 'Add new Term' ) );\n\tconst singularName =\n\t\ttaxonomy?.labels?.singular_name ??\n\t\t( slug === 'post_tag' ? __( 'Tag' ) : __( 'Term' ) );\n\tconst termAddedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s added', 'term' ),\n\t\tsingularName\n\t);\n\tconst termRemovedLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( '%s removed', 'term' ),\n\t\tsingularName\n\t);\n\tconst removeTermLabel = sprintf(\n\t\t/* translators: %s: term name. */\n\t\t_x( 'Remove %s', 'term' ),\n\t\tsingularName\n\t);\n\n\treturn (\n\t\t<Wrapper __nextHasNoMarginBottom={ __nextHasNoMarginBottom }>\n\t\t\t<FormTokenField\n\t\t\t\t__next40pxDefaultSize\n\t\t\t\tvalue={ values }\n\t\t\t\tsuggestions={ suggestions }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonInputChange={ debouncedSearch }\n\t\t\t\tmaxSuggestions={ MAX_TERMS_SUGGESTIONS }\n\t\t\t\tlabel={ newTermLabel }\n\t\t\t\tmessages={ {\n\t\t\t\t\tadded: termAddedLabel,\n\t\t\t\t\tremoved: termRemovedLabel,\n\t\t\t\t\tremove: removeTermLabel,\n\t\t\t\t} }\n\t\t\t\t__nextHasNoMarginBottom={ __nextHasNoMarginBottom }\n\t\t\t/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</Wrapper>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* wp:polyfill */
|
|
2
1
|
/**
|
|
3
2
|
* WordPress dependencies
|
|
4
3
|
*/
|
|
@@ -155,11 +154,11 @@ export function HierarchicalTermSelector({
|
|
|
155
154
|
getEditedPostAttribute
|
|
156
155
|
} = select(editorStore);
|
|
157
156
|
const {
|
|
158
|
-
|
|
157
|
+
getEntityRecord,
|
|
159
158
|
getEntityRecords,
|
|
160
159
|
isResolving
|
|
161
160
|
} = select(coreStore);
|
|
162
|
-
const _taxonomy =
|
|
161
|
+
const _taxonomy = getEntityRecord('root', 'taxonomy', slug);
|
|
163
162
|
const post = getCurrentPost();
|
|
164
163
|
return {
|
|
165
164
|
hasCreateAction: _taxonomy ? (_post$_links = post._links?.['wp:action-create-' + _taxonomy.rest_base]) !== null && _post$_links !== void 0 ? _post$_links : false : false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","_n","_x","sprintf","useMemo","useState","store","noticesStore","Button","CheckboxControl","TextControl","TreeSelect","withFilters","Flex","FlexItem","SearchControl","useDispatch","useSelect","useDebounce","coreStore","speak","decodeEntities","buildTermsTree","editorStore","jsx","_jsx","jsxs","_jsxs","DEFAULT_QUERY","per_page","orderby","order","_fields","context","MIN_TERMS_COUNT_FOR_FILTER","EMPTY_ARRAY","sortBySelected","termsTree","terms","treeHasSelection","termTree","indexOf","id","undefined","children","map","filter","child","length","termOrChildIsSelected","termA","termB","termASelected","termBSelected","newTermTree","sort","findTerm","parent","name","find","term","parseInt","toLowerCase","getFilterMatcher","filterValue","matchTermsForFilter","originalTerm","HierarchicalTermSelector","slug","_taxonomy$labels$sear","_taxonomy$name","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getTaxonomy","getEntityRecords","isResolving","_taxonomy","post","_links","rest_base","editPost","saveEntityRecord","availableTermsTree","createErrorNotice","addTerm","throwOnError","onUpdateTerms","termIds","onChange","termId","hasTerm","includes","newTerms","onChangeFormName","value","onChangeFormParent","parentId","onToggleForm","onAddTerm","event","_taxonomy$labels$sing","preventDefault","existingTerm","some","newTerm","error","message","type","defaultName","termAddedMessage","labels","singular_name","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","renderTerms","renderedTerms","className","__nextHasNoMarginBottom","checked","label","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","_taxonomy$labels$labe","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","search_items","groupLabel","showFilter","direction","gap","__next40pxDefaultSize","placeholder","tabIndex","role","onClick","variant","onSubmit","required","noOptionLabel","selectedId","tree"],"sources":["@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js"],"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} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as coreStore } 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';\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};\n\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\n\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\tterm.name.toLowerCase().indexOf( filterValue.toLowerCase() ) ||\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 { getTaxonomy, getEntityRecords, isResolving } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst _taxonomy = getTaxonomy( 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 ] ?? false\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 ] ?? false\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\t__nextHasNoMarginBottom\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 new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new 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 && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\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<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\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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\t__nextHasNoMarginBottom\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"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","_n","_x","sprintf","useMemo","useState","store","noticesStore","Button","CheckboxControl","TextControl","TreeSelect","withFilters","Flex","FlexItem","SearchControl","useDispatch","useSelect","useDebounce","coreStore","speak","decodeEntities","buildTermsTree","editorStore","jsx","_jsx","jsxs","_jsxs","DEFAULT_QUERY","per_page","orderby","order","_fields","context","MIN_TERMS_COUNT_FOR_FILTER","EMPTY_ARRAY","sortBySelected","termsTree","terms","treeHasSelection","termTree","indexOf","id","undefined","children","map","filter","child","length","termOrChildIsSelected","termA","termB","termASelected","termBSelected","newTermTree","sort","findTerm","parent","name","find","term","parseInt","toLowerCase","getFilterMatcher","filterValue","matchTermsForFilter","originalTerm","HierarchicalTermSelector","slug","_taxonomy$labels$sear","_taxonomy$name","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","hasCreateAction","hasAssignAction","loading","availableTerms","taxonomy","select","_post$_links","_post$_links2","getCurrentPost","getEditedPostAttribute","getEntityRecord","getEntityRecords","isResolving","_taxonomy","post","_links","rest_base","editPost","saveEntityRecord","availableTermsTree","createErrorNotice","addTerm","throwOnError","onUpdateTerms","termIds","onChange","termId","hasTerm","includes","newTerms","onChangeFormName","value","onChangeFormParent","parentId","onToggleForm","onAddTerm","event","_taxonomy$labels$sing","preventDefault","existingTerm","some","newTerm","error","message","type","defaultName","termAddedMessage","labels","singular_name","setFilter","newFilteredTermsTree","getResultCount","count","i","resultCount","resultsFoundMessage","renderTerms","renderedTerms","className","__nextHasNoMarginBottom","checked","label","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","_taxonomy$labels$labe","newTermButtonLabel","newTermLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","search_items","groupLabel","showFilter","direction","gap","__next40pxDefaultSize","placeholder","tabIndex","role","onClick","variant","onSubmit","required","noOptionLabel","selectedId","tree"],"sources":["@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js"],"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} from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useDebounce } from '@wordpress/compose';\nimport { store as coreStore } 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';\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};\n\nconst MIN_TERMS_COUNT_FOR_FILTER = 8;\n\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\tterm.name.toLowerCase().indexOf( filterValue.toLowerCase() ) ||\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 ] ?? false\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 ] ?? false\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\t__nextHasNoMarginBottom\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 new category' ),\n\t\t__( 'Add new term' )\n\t);\n\tconst newTermLabel = labelWithFallback(\n\t\t'new_item_name',\n\t\t__( 'Add new category' ),\n\t\t__( 'Add new 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 && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\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<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\t__next40pxDefaultSize\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\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\t__nextHasNoMarginBottom\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"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* wp:polyfill */
|
|
2
1
|
/**
|
|
3
2
|
* WordPress dependencies
|
|
4
3
|
*/
|
|
@@ -23,7 +22,7 @@ export function PostTaxonomies({
|
|
|
23
22
|
} = useSelect(select => {
|
|
24
23
|
return {
|
|
25
24
|
postType: select(editorStore).getCurrentPostType(),
|
|
26
|
-
taxonomies: select(coreStore).
|
|
25
|
+
taxonomies: select(coreStore).getEntityRecords('root', 'taxonomy', {
|
|
27
26
|
per_page: -1
|
|
28
27
|
})
|
|
29
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Fragment","useSelect","store","coreStore","HierarchicalTermSelector","FlatTermSelector","editorStore","jsx","_jsx","identity","x","PostTaxonomies","taxonomyWrapper","postType","taxonomies","select","getCurrentPostType","
|
|
1
|
+
{"version":3,"names":["Fragment","useSelect","store","coreStore","HierarchicalTermSelector","FlatTermSelector","editorStore","jsx","_jsx","identity","x","PostTaxonomies","taxonomyWrapper","postType","taxonomies","select","getCurrentPostType","getEntityRecords","per_page","visibleTaxonomies","filter","taxonomy","types","includes","visibility","show_ui","map","TaxonomyComponent","hierarchical","taxonomyComponentProps","slug","__nextHasNoMarginBottom","children"],"sources":["@wordpress/editor/src/components/post-taxonomies/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport HierarchicalTermSelector from './hierarchical-term-selector';\nimport FlatTermSelector from './flat-term-selector';\nimport { store as editorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nexport function PostTaxonomies( { taxonomyWrapper = identity } ) {\n\tconst { postType, taxonomies } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t\ttaxonomies: select( coreStore ).getEntityRecords(\n\t\t\t\t'root',\n\t\t\t\t'taxonomy',\n\t\t\t\t{ per_page: -1 }\n\t\t\t),\n\t\t};\n\t}, [] );\n\tconst visibleTaxonomies = ( taxonomies ?? [] ).filter(\n\t\t( taxonomy ) =>\n\t\t\t// In some circumstances .visibility can end up as undefined so optional chaining operator required.\n\t\t\t// https://github.com/WordPress/gutenberg/issues/40326\n\t\t\ttaxonomy.types.includes( postType ) && taxonomy.visibility?.show_ui\n\t);\n\n\treturn visibleTaxonomies.map( ( taxonomy ) => {\n\t\tconst TaxonomyComponent = taxonomy.hierarchical\n\t\t\t? HierarchicalTermSelector\n\t\t\t: FlatTermSelector;\n\t\tconst taxonomyComponentProps = {\n\t\t\tslug: taxonomy.slug,\n\t\t\t...( taxonomy.hierarchical\n\t\t\t\t? {}\n\t\t\t\t: { __nextHasNoMarginBottom: true } ),\n\t\t};\n\n\t\treturn (\n\t\t\t<Fragment key={ `taxonomy-${ taxonomy.slug }` }>\n\t\t\t\t{ taxonomyWrapper(\n\t\t\t\t\t<TaxonomyComponent { ...taxonomyComponentProps } />,\n\t\t\t\t\ttaxonomy\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t} );\n}\n\n/**\n * Renders the taxonomies associated with a post.\n *\n * @param {Object} props The component props.\n * @param {Function} props.taxonomyWrapper The wrapper function for each taxonomy component.\n *\n * @return {Array} An array of JSX elements representing the visible taxonomies.\n */\nexport default PostTaxonomies;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,QAAQ,QAAQ,oBAAoB;AAC7C,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,OAAOC,wBAAwB,MAAM,8BAA8B;AACnE,OAAOC,gBAAgB,MAAM,sBAAsB;AACnD,SAASH,KAAK,IAAII,WAAW,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEnD,MAAMC,QAAQ,GAAKC,CAAC,IAAMA,CAAC;AAE3B,OAAO,SAASC,cAAcA,CAAE;EAAEC,eAAe,GAAGH;AAAS,CAAC,EAAG;EAChE,MAAM;IAAEI,QAAQ;IAAEC;EAAW,CAAC,GAAGb,SAAS,CAAIc,MAAM,IAAM;IACzD,OAAO;MACNF,QAAQ,EAAEE,MAAM,CAAET,WAAY,CAAC,CAACU,kBAAkB,CAAC,CAAC;MACpDF,UAAU,EAAEC,MAAM,CAAEZ,SAAU,CAAC,CAACc,gBAAgB,CAC/C,MAAM,EACN,UAAU,EACV;QAAEC,QAAQ,EAAE,CAAC;MAAE,CAChB;IACD,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMC,iBAAiB,GAAG,CAAEL,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,EAAE,EAAGM,MAAM,CAClDC,QAAQ;EACT;EACA;EACAA,QAAQ,CAACC,KAAK,CAACC,QAAQ,CAAEV,QAAS,CAAC,IAAIQ,QAAQ,CAACG,UAAU,EAAEC,OAC9D,CAAC;EAED,OAAON,iBAAiB,CAACO,GAAG,CAAIL,QAAQ,IAAM;IAC7C,MAAMM,iBAAiB,GAAGN,QAAQ,CAACO,YAAY,GAC5CxB,wBAAwB,GACxBC,gBAAgB;IACnB,MAAMwB,sBAAsB,GAAG;MAC9BC,IAAI,EAAET,QAAQ,CAACS,IAAI;MACnB,IAAKT,QAAQ,CAACO,YAAY,GACvB,CAAC,CAAC,GACF;QAAEG,uBAAuB,EAAE;MAAK,CAAC;IACrC,CAAC;IAED,oBACCvB,IAAA,CAACR,QAAQ;MAAAgC,QAAA,EACNpB,eAAe,cAChBJ,IAAA,CAACmB,iBAAiB;QAAA,GAAME;MAAsB,CAAI,CAAC,EACnDR,QACD;IAAC,GAJc,YAAaA,QAAQ,CAACS,IAAI,EAKhC,CAAC;EAEb,CAAE,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAenB,cAAc","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BaseControl","Button","useSelect","store","coreStore","unescapeTerms","jsx","_jsx","jsxs","_jsxs","MIN_MOST_USED_TERMS","DEFAULT_QUERY","per_page","orderby","order","hide_empty","_fields","context","MostUsedTerms","onSelect","taxonomy","_terms","showTerms","select","mostUsedTerms","getEntityRecords","slug","length","terms","className","children","VisualLabel","as","labels","most_used","role","map","term","__next40pxDefaultSize","variant","onClick","name","id"],"sources":["@wordpress/editor/src/components/post-taxonomies/most-used-terms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BaseControl, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unescapeTerms } from '../../utils/terms';\n\nconst MIN_MOST_USED_TERMS = 3;\nconst DEFAULT_QUERY = {\n\tper_page: 10,\n\torderby: 'count',\n\torder: 'desc',\n\thide_empty: true,\n\t_fields: 'id,name,count',\n\tcontext: 'view',\n};\n\nexport default function MostUsedTerms( { onSelect, taxonomy } ) {\n\tconst { _terms, showTerms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst mostUsedTerms = select( coreStore ).getEntityRecords(\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\tDEFAULT_QUERY\n\t\t\t);\n\t\t\treturn {\n\t\t\t\t_terms: mostUsedTerms,\n\t\t\t\tshowTerms: mostUsedTerms?.length >= MIN_MOST_USED_TERMS,\n\t\t\t};\n\t\t},\n\t\t[ taxonomy.slug ]\n\t);\n\n\tif ( ! showTerms ) {\n\t\treturn null;\n\t}\n\n\tconst terms = unescapeTerms( _terms );\n\n\treturn (\n\t\t<div className=\"editor-post-taxonomies__flat-term-most-used\">\n\t\t\t<BaseControl.VisualLabel\n\t\t\t\tas=\"h3\"\n\t\t\t\tclassName=\"editor-post-taxonomies__flat-term-most-used-label\"\n\t\t\t>\n\t\t\t\t{ taxonomy.labels.most_used }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t{ /*\n\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t */\n\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t<ul\n\t\t\t\trole=\"list\"\n\t\t\t\tclassName=\"editor-post-taxonomies__flat-term-most-used-list\"\n\t\t\t>\n\t\t\t\t{ terms.map( ( term ) => (\n\t\t\t\t\t<li key={ term.id }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ () => onSelect( term ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ term.name }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t</div>\n\t);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["BaseControl","Button","useSelect","store","coreStore","unescapeTerms","jsx","_jsx","jsxs","_jsxs","MIN_MOST_USED_TERMS","DEFAULT_QUERY","per_page","orderby","order","hide_empty","_fields","context","MostUsedTerms","onSelect","taxonomy","_terms","showTerms","select","mostUsedTerms","getEntityRecords","slug","length","terms","className","children","VisualLabel","as","labels","most_used","role","map","term","__next40pxDefaultSize","variant","onClick","name","id"],"sources":["@wordpress/editor/src/components/post-taxonomies/most-used-terms.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BaseControl, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { unescapeTerms } from '../../utils/terms';\n\nconst MIN_MOST_USED_TERMS = 3;\nconst DEFAULT_QUERY = {\n\tper_page: 10,\n\torderby: 'count',\n\torder: 'desc',\n\thide_empty: true,\n\t_fields: 'id,name,count',\n\tcontext: 'view',\n};\n\nexport default function MostUsedTerms( { onSelect, taxonomy } ) {\n\tconst { _terms, showTerms } = useSelect(\n\t\t( select ) => {\n\t\t\tconst mostUsedTerms = select( coreStore ).getEntityRecords(\n\t\t\t\t'taxonomy',\n\t\t\t\ttaxonomy.slug,\n\t\t\t\tDEFAULT_QUERY\n\t\t\t);\n\t\t\treturn {\n\t\t\t\t_terms: mostUsedTerms,\n\t\t\t\tshowTerms: mostUsedTerms?.length >= MIN_MOST_USED_TERMS,\n\t\t\t};\n\t\t},\n\t\t[ taxonomy.slug ]\n\t);\n\n\tif ( ! showTerms ) {\n\t\treturn null;\n\t}\n\n\tconst terms = unescapeTerms( _terms );\n\n\treturn (\n\t\t<div className=\"editor-post-taxonomies__flat-term-most-used\">\n\t\t\t<BaseControl.VisualLabel\n\t\t\t\tas=\"h3\"\n\t\t\t\tclassName=\"editor-post-taxonomies__flat-term-most-used-label\"\n\t\t\t>\n\t\t\t\t{ taxonomy.labels.most_used }\n\t\t\t</BaseControl.VisualLabel>\n\t\t\t{ /*\n\t\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t\t */\n\t\t\t/* eslint-disable jsx-a11y/no-redundant-roles */ }\n\t\t\t<ul\n\t\t\t\trole=\"list\"\n\t\t\t\tclassName=\"editor-post-taxonomies__flat-term-most-used-list\"\n\t\t\t>\n\t\t\t\t{ terms.map( ( term ) => (\n\t\t\t\t\t<li key={ term.id }>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ () => onSelect( term ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ term.name }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</li>\n\t\t\t\t) ) }\n\t\t\t</ul>\n\t\t\t{ /* eslint-enable jsx-a11y/no-redundant-roles */ }\n\t\t</div>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,EAAEC,MAAM,QAAQ,uBAAuB;AAC3D,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASC,aAAa,QAAQ,mBAAmB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,MAAMC,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,aAAa,GAAG;EACrBC,QAAQ,EAAE,EAAE;EACZC,OAAO,EAAE,OAAO;EAChBC,KAAK,EAAE,MAAM;EACbC,UAAU,EAAE,IAAI;EAChBC,OAAO,EAAE,eAAe;EACxBC,OAAO,EAAE;AACV,CAAC;AAED,eAAe,SAASC,aAAaA,CAAE;EAAEC,QAAQ;EAAEC;AAAS,CAAC,EAAG;EAC/D,MAAM;IAAEC,MAAM;IAAEC;EAAU,CAAC,GAAGpB,SAAS,CACpCqB,MAAM,IAAM;IACb,MAAMC,aAAa,GAAGD,MAAM,CAAEnB,SAAU,CAAC,CAACqB,gBAAgB,CACzD,UAAU,EACVL,QAAQ,CAACM,IAAI,EACbf,aACD,CAAC;IACD,OAAO;MACNU,MAAM,EAAEG,aAAa;MACrBF,SAAS,EAAEE,aAAa,EAAEG,MAAM,IAAIjB;IACrC,CAAC;EACF,CAAC,EACD,CAAEU,QAAQ,CAACM,IAAI,CAChB,CAAC;EAED,IAAK,CAAEJ,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,MAAMM,KAAK,GAAGvB,aAAa,CAAEgB,MAAO,CAAC;EAErC,oBACCZ,KAAA;IAAKoB,SAAS,EAAC,6CAA6C;IAAAC,QAAA,gBAC3DvB,IAAA,CAACP,WAAW,CAAC+B,WAAW;MACvBC,EAAE,EAAC,IAAI;MACPH,SAAS,EAAC,mDAAmD;MAAAC,QAAA,EAE3DV,QAAQ,CAACa,MAAM,CAACC;IAAS,CACH,CAAC,eAM1B3B,IAAA;MACC4B,IAAI,EAAC,MAAM;MACXN,SAAS,EAAC,kDAAkD;MAAAC,QAAA,EAE1DF,KAAK,CAACQ,GAAG,CAAIC,IAAI,iBAClB9B,IAAA;QAAAuB,QAAA,eACCvB,IAAA,CAACN,MAAM;UACNqC,qBAAqB;UACrBC,OAAO,EAAC,MAAM;UACdC,OAAO,EAAGA,CAAA,KAAMrB,QAAQ,CAAEkB,IAAK,CAAG;UAAAP,QAAA,EAEhCO,IAAI,CAACI;QAAI,CACJ;MAAC,GAPAJ,IAAI,CAACK,EAQX,CACH;IAAC,CACA,CAAC;EAAA,CAED,CAAC;AAER","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","SelectControl","Dropdown","Button","Notice","useSelect","useDispatch","store","coreStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useState","useMemo","addTemplate","noticesStore","editorStore","CreateNewTemplateModal","useAllowSwitchingTemplates","jsx","_jsx","jsxs","_jsxs","POPOVER_PROPS","className","placement","PostTemplateToggle","isOpen","onClick","templateTitle","select","templateSlug","getEditedPostAttribute","supportsTemplateMode","availableTemplates","getEditorSettings","template","canUser","kind","name","getCurrentTemplateId","title","slug","__next40pxDefaultSize","variant","children","PostTemplateDropdownContent","onClose","_options$find","_selectedOption$value","allowSwitchingTemplate","fetchedTemplates","selectedTemplateSlug","canCreate","canEdit","currentTemplateId","onNavigateToEntityRecord","getEntityRecords","editorSettings","canCreateTemplates","_currentTemplateId","post_type","getCurrentPostType","per_page","undefined","options","Object","entries","fromEntries","map","rendered","value","label","selectedOption","find","option","editPost","createSuccessNotice","isCreateModalOpen","setIsCreateModalOpen","help","actions","icon","status","isDismissible","__nextHasNoMarginBottom","hideLabelFromVision","onChange","postId","postType","type","onNavigateToPreviousEntityRecord","ClassicThemeControl","popoverProps","focusOnMount","renderToggle","onToggle","renderContent"],"sources":["@wordpress/editor/src/components/post-template/classic-theme.js"],"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';\n\nconst POPOVER_PROPS = {\n\tclassName: 'editor-post-template__dropdown',\n\tplacement: 'bottom-start',\n};\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\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\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\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tfocusOnMount\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<PostTemplateToggle isOpen={ isOpen } onClick={ onToggle } />\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<PostTemplateDropdownContent onClose={ onClose } />\n\t\t\t) }\n\t\t/>\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"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,aAAa,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,QAAQ,uBAAuB;AAC/E,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,oCAAoC,IAAIC,sBAAsB,QAAQ,yBAAyB;AACxG,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;AACtD,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASN,KAAK,IAAIO,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASP,KAAK,IAAIQ,WAAW,QAAQ,aAAa;AAClD,OAAOC,sBAAsB,MAAM,6BAA6B;AAChE,SAASC,0BAA0B,QAAQ,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAErD,MAAMC,aAAa,GAAG;EACrBC,SAAS,EAAE,gCAAgC;EAC3CC,SAAS,EAAE;AACZ,CAAC;AAED,SAASC,kBAAkBA,CAAE;EAAEC,MAAM;EAAEC;AAAQ,CAAC,EAAG;EAClD,MAAMC,aAAa,GAAGvB,SAAS,CAAIwB,MAAM,IAAM;IAC9C,MAAMC,YAAY,GACjBD,MAAM,CAAEd,WAAY,CAAC,CAACgB,sBAAsB,CAAE,UAAW,CAAC;IAE3D,MAAM;MAAEC,oBAAoB;MAAEC;IAAmB,CAAC,GACjDJ,MAAM,CAAEd,WAAY,CAAC,CAACmB,iBAAiB,CAAC,CAAC;IAC1C,IAAK,CAAEF,oBAAoB,IAAIC,kBAAkB,CAAEH,YAAY,CAAE,EAAG;MACnE,OAAOG,kBAAkB,CAAEH,YAAY,CAAE;IAC1C;IACA,MAAMK,QAAQ,GACbN,MAAM,CAAErB,SAAU,CAAC,CAAC4B,OAAO,CAAE,QAAQ,EAAE;MACtCC,IAAI,EAAE,UAAU;MAChBC,IAAI,EAAE;IACP,CAAE,CAAC,IAAIT,MAAM,CAAEd,WAAY,CAAC,CAACwB,oBAAoB,CAAC,CAAC;IACpD,OACCJ,QAAQ,EAAEK,KAAK,IACfL,QAAQ,EAAEM,IAAI,IACdR,kBAAkB,GAAIH,YAAY,CAAE;EAEtC,CAAC,EAAE,EAAG,CAAC;EAEP,oBACCX,IAAA,CAAChB,MAAM;IACNuC,qBAAqB;IACrBC,OAAO,EAAC,UAAU;IAClB,iBAAgBjB,MAAQ;IACxB,cAAa1B,EAAE,CAAE,kBAAmB,CAAG;IACvC2B,OAAO,EAAGA,OAAS;IAAAiB,QAAA,EAEjBhB,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI5B,EAAE,CAAE,kBAAmB;EAAC,CACpC,CAAC;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6C,2BAA2BA,CAAE;EAAEC;AAAQ,CAAC,EAAG;EAAA,IAAAC,aAAA,EAAAC,qBAAA;EACnD,MAAMC,sBAAsB,GAAGhC,0BAA0B,CAAC,CAAC;EAC3D,MAAM;IACLgB,kBAAkB;IAClBiB,gBAAgB;IAChBC,oBAAoB;IACpBC,SAAS;IACTC,OAAO;IACPC,iBAAiB;IACjBC,wBAAwB;IACxBrB;EACD,CAAC,GAAG7B,SAAS,CACVwB,MAAM,IAAM;IACb,MAAM;MAAEO,OAAO;MAAEoB;IAAiB,CAAC,GAAG3B,MAAM,CAAErB,SAAU,CAAC;IACzD,MAAMiD,cAAc,GAAG5B,MAAM,CAAEd,WAAY,CAAC,CAACmB,iBAAiB,CAAC,CAAC;IAChE,MAAMwB,kBAAkB,GAAGtB,OAAO,CAAE,QAAQ,EAAE;MAC7CC,IAAI,EAAE,UAAU;MAChBC,IAAI,EAAE;IACP,CAAE,CAAC;IACH,MAAMqB,kBAAkB,GACvB9B,MAAM,CAAEd,WAAY,CAAC,CAACwB,oBAAoB,CAAC,CAAC;IAC7C,OAAO;MACNN,kBAAkB,EAAEwB,cAAc,CAACxB,kBAAkB;MACrDiB,gBAAgB,EAAEQ,kBAAkB,GACjCF,gBAAgB,CAAE,UAAU,EAAE,aAAa,EAAE;QAC7CI,SAAS,EACR/B,MAAM,CAAEd,WAAY,CAAC,CAAC8C,kBAAkB,CAAC,CAAC;QAC3CC,QAAQ,EAAE,CAAC;MACX,CAAE,CAAC,GACHC,SAAS;MACZZ,oBAAoB,EACnBtB,MAAM,CAAEd,WAAY,CAAC,CAACgB,sBAAsB,CAAE,UAAW,CAAC;MAC3DqB,SAAS,EACRH,sBAAsB,IACtBS,kBAAkB,IAClBD,cAAc,CAACzB,oBAAoB;MACpCqB,OAAO,EACNJ,sBAAsB,IACtBS,kBAAkB,IAClBD,cAAc,CAACzB,oBAAoB,IACnC,CAAC,CAAE2B,kBAAkB;MACtBL,iBAAiB,EAAEK,kBAAkB;MACrCJ,wBAAwB,EACvBE,cAAc,CAACF,wBAAwB;MACxCrB,iBAAiB,EAAEL,MAAM,CAAEd,WAAY,CAAC,CAACmB;IAC1C,CAAC;EACF,CAAC,EACD,CAAEe,sBAAsB,CACzB,CAAC;EAED,MAAMe,OAAO,GAAGpD,OAAO,CACtB,MACCqD,MAAM,CAACC,OAAO,CAAE;IACf,GAAGjC,kBAAkB;IACrB,GAAGgC,MAAM,CAACE,WAAW,CACpB,CAAEjB,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAAI,EAAE,EAAGkB,GAAG,CAAE,CAAE;MAAE3B,IAAI;MAAED;IAAM,CAAC,KAAM,CACtDC,IAAI,EACJD,KAAK,CAAC6B,QAAQ,CACb,CACH;EACD,CAAE,CAAC,CAACD,GAAG,CAAE,CAAE,CAAE3B,IAAI,EAAED,KAAK,CAAE,MAAQ;IAAE8B,KAAK,EAAE7B,IAAI;IAAE8B,KAAK,EAAE/B;EAAM,CAAC,CAAG,CAAC,EACpE,CAAEP,kBAAkB,EAAEiB,gBAAgB,CACvC,CAAC;EAED,MAAMsB,cAAc,IAAAzB,aAAA,GACnBiB,OAAO,CAACS,IAAI,CAAIC,MAAM,IAAMA,MAAM,CAACJ,KAAK,KAAKnB,oBAAqB,CAAC,cAAAJ,aAAA,cAAAA,aAAA,GACnEiB,OAAO,CAACS,IAAI,CAAIC,MAAM,IAAM,CAAEA,MAAM,CAACJ,KAAM,CAAC,CAAC,CAAC;;EAE/C,MAAM;IAAEK;EAAS,CAAC,GAAGrE,WAAW,CAAES,WAAY,CAAC;EAC/C,MAAM;IAAE6D;EAAoB,CAAC,GAAGtE,WAAW,CAAEQ,YAAa,CAAC;EAC3D,MAAM,CAAE+D,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGnE,QAAQ,CAAE,KAAM,CAAC;EAErE,oBACCU,KAAA;IAAKE,SAAS,EAAC,8CAA8C;IAAAqB,QAAA,gBAC5DzB,IAAA,CAACT,sBAAsB;MACtB8B,KAAK,EAAGxC,EAAE,CAAE,UAAW,CAAG;MAC1B+E,IAAI,EAAG/E,EAAE,CACR,uEACD,CAAG;MACHgF,OAAO,EACN5B,SAAS,GACN,CACA;QACC6B,IAAI,EAAEpE,WAAW;QACjB0D,KAAK,EAAEvE,EAAE,CAAE,cAAe,CAAC;QAC3B2B,OAAO,EAAEA,CAAA,KAAMmD,oBAAoB,CAAE,IAAK;MAC3C,CAAC,CACA,GACD,EACH;MACDhC,OAAO,EAAGA;IAAS,CACnB,CAAC,EACA,CAAEG,sBAAsB,gBACzB9B,IAAA,CAACf,MAAM;MAAC8E,MAAM,EAAC,SAAS;MAACC,aAAa,EAAG,KAAO;MAAAvC,QAAA,EAC7C5C,EAAE,CAAE,4CAA6C;IAAC,CAC7C,CAAC,gBAETmB,IAAA,CAAClB,aAAa;MACbyC,qBAAqB;MACrB0C,uBAAuB;MACvBC,mBAAmB;MACnBd,KAAK,EAAGvE,EAAE,CAAE,UAAW,CAAG;MAC1BsE,KAAK,GAAAtB,qBAAA,GAAGwB,cAAc,EAAEF,KAAK,cAAAtB,qBAAA,cAAAA,qBAAA,GAAI,EAAI;MACrCgB,OAAO,EAAGA,OAAS;MACnBsB,QAAQ,EAAK7C,IAAI,IAChBkC,QAAQ,CAAE;QAAExC,QAAQ,EAAEM,IAAI,IAAI;MAAG,CAAE;IACnC,CACD,CACD,EACCY,OAAO,IAAIE,wBAAwB,iBACpCpC,IAAA;MAAAyB,QAAA,eACCzB,IAAA,CAAChB,MAAM;QACNuC,qBAAqB;QACrBC,OAAO,EAAC,MAAM;QACdhB,OAAO,EAAGA,CAAA,KAAM;UACf4B,wBAAwB,CAAE;YACzBgC,MAAM,EAAEjC,iBAAiB;YACzBkC,QAAQ,EAAE;UACX,CAAE,CAAC;UACH1C,OAAO,CAAC,CAAC;UACT8B,mBAAmB,CAClB5E,EAAE,CACD,uFACD,CAAC,EACD;YACCyF,IAAI,EAAE,UAAU;YAChBT,OAAO,EAAE,CACR;cACCT,KAAK,EAAEvE,EAAE,CAAE,SAAU,CAAC;cACtB2B,OAAO,EAAEA,CAAA,KACRO,iBAAiB,CAAC,CAAC,CAACwD,gCAAgC,CAAC;YACvD,CAAC;UAEH,CACD,CAAC;QACF,CAAG;QAAA9C,QAAA,EAED5C,EAAE,CAAE,eAAgB;MAAC,CAChB;IAAC,CACP,CACH,EACC6E,iBAAiB,iBAClB1D,IAAA,CAACH,sBAAsB;MACtB8B,OAAO,EAAGA,CAAA,KAAMgC,oBAAoB,CAAE,KAAM;IAAG,CAC/C,CACD;EAAA,CACG,CAAC;AAER;AAEA,SAASa,mBAAmBA,CAAA,EAAG;EAC9B,oBACCxE,IAAA,CAACjB,QAAQ;IACR0F,YAAY,EAAGtE,aAAe;IAC9BuE,YAAY;IACZC,YAAY,EAAGA,CAAE;MAAEpE,MAAM;MAAEqE;IAAS,CAAC,kBACpC5E,IAAA,CAACM,kBAAkB;MAACC,MAAM,EAAGA,MAAQ;MAACC,OAAO,EAAGoE;IAAU,CAAE,CAC1D;IACHC,aAAa,EAAGA,CAAE;MAAElD;IAAQ,CAAC,kBAC5B3B,IAAA,CAAC0B,2BAA2B;MAACC,OAAO,EAAGA;IAAS,CAAE;EAChD,CACH,CAAC;AAEJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe6C,mBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["__","SelectControl","Dropdown","Button","Notice","useSelect","useDispatch","store","coreStore","__experimentalInspectorPopoverHeader","InspectorPopoverHeader","useState","useMemo","addTemplate","noticesStore","editorStore","CreateNewTemplateModal","useAllowSwitchingTemplates","jsx","_jsx","jsxs","_jsxs","POPOVER_PROPS","className","placement","PostTemplateToggle","isOpen","onClick","templateTitle","select","templateSlug","getEditedPostAttribute","supportsTemplateMode","availableTemplates","getEditorSettings","template","canUser","kind","name","getCurrentTemplateId","title","slug","__next40pxDefaultSize","variant","children","PostTemplateDropdownContent","onClose","_options$find","_selectedOption$value","allowSwitchingTemplate","fetchedTemplates","selectedTemplateSlug","canCreate","canEdit","currentTemplateId","onNavigateToEntityRecord","getEntityRecords","editorSettings","canCreateTemplates","_currentTemplateId","post_type","getCurrentPostType","per_page","undefined","options","Object","entries","fromEntries","map","rendered","value","label","selectedOption","find","option","editPost","createSuccessNotice","isCreateModalOpen","setIsCreateModalOpen","help","actions","icon","status","isDismissible","__nextHasNoMarginBottom","hideLabelFromVision","onChange","postId","postType","type","onNavigateToPreviousEntityRecord","ClassicThemeControl","popoverProps","focusOnMount","renderToggle","onToggle","renderContent"],"sources":["@wordpress/editor/src/components/post-template/classic-theme.js"],"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';\n\nconst POPOVER_PROPS = {\n\tclassName: 'editor-post-template__dropdown',\n\tplacement: 'bottom-start',\n};\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\t__next40pxDefaultSize\n\t\t\t\t\t__nextHasNoMarginBottom\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\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tfocusOnMount\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<PostTemplateToggle isOpen={ isOpen } onClick={ onToggle } />\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<PostTemplateDropdownContent onClose={ onClose } />\n\t\t\t) }\n\t\t/>\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"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,aAAa,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,QAAQ,uBAAuB;AAC/E,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;AACzD,SAASC,oCAAoC,IAAIC,sBAAsB,QAAQ,yBAAyB;AACxG,SAASC,QAAQ,EAAEC,OAAO,QAAQ,oBAAoB;AACtD,SAASC,WAAW,QAAQ,kBAAkB;AAC9C,SAASN,KAAK,IAAIO,YAAY,QAAQ,oBAAoB;;AAE1D;AACA;AACA;AACA,SAASP,KAAK,IAAIQ,WAAW,QAAQ,aAAa;AAClD,OAAOC,sBAAsB,MAAM,6BAA6B;AAChE,SAASC,0BAA0B,QAAQ,SAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAErD,MAAMC,aAAa,GAAG;EACrBC,SAAS,EAAE,gCAAgC;EAC3CC,SAAS,EAAE;AACZ,CAAC;AAED,SAASC,kBAAkBA,CAAE;EAAEC,MAAM;EAAEC;AAAQ,CAAC,EAAG;EAClD,MAAMC,aAAa,GAAGvB,SAAS,CAAIwB,MAAM,IAAM;IAC9C,MAAMC,YAAY,GACjBD,MAAM,CAAEd,WAAY,CAAC,CAACgB,sBAAsB,CAAE,UAAW,CAAC;IAE3D,MAAM;MAAEC,oBAAoB;MAAEC;IAAmB,CAAC,GACjDJ,MAAM,CAAEd,WAAY,CAAC,CAACmB,iBAAiB,CAAC,CAAC;IAC1C,IAAK,CAAEF,oBAAoB,IAAIC,kBAAkB,CAAEH,YAAY,CAAE,EAAG;MACnE,OAAOG,kBAAkB,CAAEH,YAAY,CAAE;IAC1C;IACA,MAAMK,QAAQ,GACbN,MAAM,CAAErB,SAAU,CAAC,CAAC4B,OAAO,CAAE,QAAQ,EAAE;MACtCC,IAAI,EAAE,UAAU;MAChBC,IAAI,EAAE;IACP,CAAE,CAAC,IAAIT,MAAM,CAAEd,WAAY,CAAC,CAACwB,oBAAoB,CAAC,CAAC;IACpD,OACCJ,QAAQ,EAAEK,KAAK,IACfL,QAAQ,EAAEM,IAAI,IACdR,kBAAkB,GAAIH,YAAY,CAAE;EAEtC,CAAC,EAAE,EAAG,CAAC;EAEP,oBACCX,IAAA,CAAChB,MAAM;IACNuC,qBAAqB;IACrBC,OAAO,EAAC,UAAU;IAClB,iBAAgBjB,MAAQ;IACxB,cAAa1B,EAAE,CAAE,kBAAmB,CAAG;IACvC2B,OAAO,EAAGA,OAAS;IAAAiB,QAAA,EAEjBhB,aAAa,aAAbA,aAAa,cAAbA,aAAa,GAAI5B,EAAE,CAAE,kBAAmB;EAAC,CACpC,CAAC;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS6C,2BAA2BA,CAAE;EAAEC;AAAQ,CAAC,EAAG;EAAA,IAAAC,aAAA,EAAAC,qBAAA;EACnD,MAAMC,sBAAsB,GAAGhC,0BAA0B,CAAC,CAAC;EAC3D,MAAM;IACLgB,kBAAkB;IAClBiB,gBAAgB;IAChBC,oBAAoB;IACpBC,SAAS;IACTC,OAAO;IACPC,iBAAiB;IACjBC,wBAAwB;IACxBrB;EACD,CAAC,GAAG7B,SAAS,CACVwB,MAAM,IAAM;IACb,MAAM;MAAEO,OAAO;MAAEoB;IAAiB,CAAC,GAAG3B,MAAM,CAAErB,SAAU,CAAC;IACzD,MAAMiD,cAAc,GAAG5B,MAAM,CAAEd,WAAY,CAAC,CAACmB,iBAAiB,CAAC,CAAC;IAChE,MAAMwB,kBAAkB,GAAGtB,OAAO,CAAE,QAAQ,EAAE;MAC7CC,IAAI,EAAE,UAAU;MAChBC,IAAI,EAAE;IACP,CAAE,CAAC;IACH,MAAMqB,kBAAkB,GACvB9B,MAAM,CAAEd,WAAY,CAAC,CAACwB,oBAAoB,CAAC,CAAC;IAC7C,OAAO;MACNN,kBAAkB,EAAEwB,cAAc,CAACxB,kBAAkB;MACrDiB,gBAAgB,EAAEQ,kBAAkB,GACjCF,gBAAgB,CAAE,UAAU,EAAE,aAAa,EAAE;QAC7CI,SAAS,EACR/B,MAAM,CAAEd,WAAY,CAAC,CAAC8C,kBAAkB,CAAC,CAAC;QAC3CC,QAAQ,EAAE,CAAC;MACX,CAAE,CAAC,GACHC,SAAS;MACZZ,oBAAoB,EACnBtB,MAAM,CAAEd,WAAY,CAAC,CAACgB,sBAAsB,CAAE,UAAW,CAAC;MAC3DqB,SAAS,EACRH,sBAAsB,IACtBS,kBAAkB,IAClBD,cAAc,CAACzB,oBAAoB;MACpCqB,OAAO,EACNJ,sBAAsB,IACtBS,kBAAkB,IAClBD,cAAc,CAACzB,oBAAoB,IACnC,CAAC,CAAE2B,kBAAkB;MACtBL,iBAAiB,EAAEK,kBAAkB;MACrCJ,wBAAwB,EACvBE,cAAc,CAACF,wBAAwB;MACxCrB,iBAAiB,EAAEL,MAAM,CAAEd,WAAY,CAAC,CAACmB;IAC1C,CAAC;EACF,CAAC,EACD,CAAEe,sBAAsB,CACzB,CAAC;EAED,MAAMe,OAAO,GAAGpD,OAAO,CACtB,MACCqD,MAAM,CAACC,OAAO,CAAE;IACf,GAAGjC,kBAAkB;IACrB,GAAGgC,MAAM,CAACE,WAAW,CACpB,CAAEjB,gBAAgB,aAAhBA,gBAAgB,cAAhBA,gBAAgB,GAAI,EAAE,EAAGkB,GAAG,CAAE,CAAE;MAAE3B,IAAI;MAAED;IAAM,CAAC,KAAM,CACtDC,IAAI,EACJD,KAAK,CAAC6B,QAAQ,CACb,CACH;EACD,CAAE,CAAC,CAACD,GAAG,CAAE,CAAE,CAAE3B,IAAI,EAAED,KAAK,CAAE,MAAQ;IAAE8B,KAAK,EAAE7B,IAAI;IAAE8B,KAAK,EAAE/B;EAAM,CAAC,CAAG,CAAC,EACpE,CAAEP,kBAAkB,EAAEiB,gBAAgB,CACvC,CAAC;EAED,MAAMsB,cAAc,IAAAzB,aAAA,GACnBiB,OAAO,CAACS,IAAI,CAAIC,MAAM,IAAMA,MAAM,CAACJ,KAAK,KAAKnB,oBAAqB,CAAC,cAAAJ,aAAA,cAAAA,aAAA,GACnEiB,OAAO,CAACS,IAAI,CAAIC,MAAM,IAAM,CAAEA,MAAM,CAACJ,KAAM,CAAC,CAAC,CAAC;;EAE/C,MAAM;IAAEK;EAAS,CAAC,GAAGrE,WAAW,CAAES,WAAY,CAAC;EAC/C,MAAM;IAAE6D;EAAoB,CAAC,GAAGtE,WAAW,CAAEQ,YAAa,CAAC;EAC3D,MAAM,CAAE+D,iBAAiB,EAAEC,oBAAoB,CAAE,GAAGnE,QAAQ,CAAE,KAAM,CAAC;EAErE,oBACCU,KAAA;IAAKE,SAAS,EAAC,8CAA8C;IAAAqB,QAAA,gBAC5DzB,IAAA,CAACT,sBAAsB;MACtB8B,KAAK,EAAGxC,EAAE,CAAE,UAAW,CAAG;MAC1B+E,IAAI,EAAG/E,EAAE,CACR,uEACD,CAAG;MACHgF,OAAO,EACN5B,SAAS,GACN,CACA;QACC6B,IAAI,EAAEpE,WAAW;QACjB0D,KAAK,EAAEvE,EAAE,CAAE,cAAe,CAAC;QAC3B2B,OAAO,EAAEA,CAAA,KAAMmD,oBAAoB,CAAE,IAAK;MAC3C,CAAC,CACA,GACD,EACH;MACDhC,OAAO,EAAGA;IAAS,CACnB,CAAC,EACA,CAAEG,sBAAsB,gBACzB9B,IAAA,CAACf,MAAM;MAAC8E,MAAM,EAAC,SAAS;MAACC,aAAa,EAAG,KAAO;MAAAvC,QAAA,EAC7C5C,EAAE,CAAE,4CAA6C;IAAC,CAC7C,CAAC,gBAETmB,IAAA,CAAClB,aAAa;MACbyC,qBAAqB;MACrB0C,uBAAuB;MACvBC,mBAAmB;MACnBd,KAAK,EAAGvE,EAAE,CAAE,UAAW,CAAG;MAC1BsE,KAAK,GAAAtB,qBAAA,GAAGwB,cAAc,EAAEF,KAAK,cAAAtB,qBAAA,cAAAA,qBAAA,GAAI,EAAI;MACrCgB,OAAO,EAAGA,OAAS;MACnBsB,QAAQ,EAAK7C,IAAI,IAChBkC,QAAQ,CAAE;QAAExC,QAAQ,EAAEM,IAAI,IAAI;MAAG,CAAE;IACnC,CACD,CACD,EACCY,OAAO,IAAIE,wBAAwB,iBACpCpC,IAAA;MAAAyB,QAAA,eACCzB,IAAA,CAAChB,MAAM;QACNuC,qBAAqB;QACrBC,OAAO,EAAC,MAAM;QACdhB,OAAO,EAAGA,CAAA,KAAM;UACf4B,wBAAwB,CAAE;YACzBgC,MAAM,EAAEjC,iBAAiB;YACzBkC,QAAQ,EAAE;UACX,CAAE,CAAC;UACH1C,OAAO,CAAC,CAAC;UACT8B,mBAAmB,CAClB5E,EAAE,CACD,uFACD,CAAC,EACD;YACCyF,IAAI,EAAE,UAAU;YAChBT,OAAO,EAAE,CACR;cACCT,KAAK,EAAEvE,EAAE,CAAE,SAAU,CAAC;cACtB2B,OAAO,EAAEA,CAAA,KACRO,iBAAiB,CAAC,CAAC,CAACwD,gCAAgC,CAAC;YACvD,CAAC;UAEH,CACD,CAAC;QACF,CAAG;QAAA9C,QAAA,EAED5C,EAAE,CAAE,eAAgB;MAAC,CAChB;IAAC,CACP,CACH,EACC6E,iBAAiB,iBAClB1D,IAAA,CAACH,sBAAsB;MACtB8B,OAAO,EAAGA,CAAA,KAAMgC,oBAAoB,CAAE,KAAM;IAAG,CAC/C,CACD;EAAA,CACG,CAAC;AAER;AAEA,SAASa,mBAAmBA,CAAA,EAAG;EAC9B,oBACCxE,IAAA,CAACjB,QAAQ;IACR0F,YAAY,EAAGtE,aAAe;IAC9BuE,YAAY;IACZC,YAAY,EAAGA,CAAE;MAAEpE,MAAM;MAAEqE;IAAS,CAAC,kBACpC5E,IAAA,CAACM,kBAAkB;MAACC,MAAM,EAAGA,MAAQ;MAACC,OAAO,EAAGoE;IAAU,CAAE,CAC1D;IACHC,aAAa,EAAGA,CAAE;MAAElD;IAAQ,CAAC,kBAC5B3B,IAAA,CAAC0B,2BAA2B;MAACC,OAAO,EAAGA;IAAS,CAAE;EAChD,CACH,CAAC;AAEJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe6C,mBAAmB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useState","decodeEntities","__experimentalBlockPatternsList","BlockPatternsList","MenuItem","Modal","__","useDispatch","store","coreStore","parse","useAvailableTemplates","useEditedPostContext","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SwapTemplateButton","onClick","showModal","setShowModal","postType","postId","availableTemplates","editEntityRecord","length","onTemplateSelect","template","name","undoIgnore","children","title","onRequestClose","overlayClassName","isFullScreen","className","TemplatesList","onSelect","templatesAsPatterns","map","slug","blocks","content","raw","rendered","id","label","blockPatterns","onClickPattern"],"sources":["@wordpress/editor/src/components/post-template/swap-template-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { MenuItem, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useAvailableTemplates, useEditedPostContext } from './hooks';\n\nexport default function SwapTemplateButton( { onClick } ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst { postType, postId } = useEditedPostContext();\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tif ( ! availableTemplates?.length ) {\n\t\treturn null;\n\t}\n\tconst onTemplateSelect = async ( template ) => {\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t\t{ template: template.name },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t\tsetShowModal( false ); // Close the template suggestions modal first.\n\t\tonClick();\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setShowModal( true ) }>\n\t\t\t\t{ __( 'Change template' ) }\n\t\t\t</MenuItem>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Choose a template' ) }\n\t\t\t\t\tonRequestClose={ () => setShowModal( false ) }\n\t\t\t\t\toverlayClassName=\"editor-post-template__swap-template-modal\"\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<div className=\"editor-post-template__swap-template-modal-content\">\n\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\tonSelect={ onTemplateSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction TemplatesList( { postType, onSelect } ) {\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst templatesAsPatterns = useMemo(\n\t\t() =>\n\t\t\tavailableTemplates.map( ( template ) => ( {\n\t\t\t\tname: template.slug,\n\t\t\t\tblocks: parse( template.content.raw ),\n\t\t\t\ttitle: decodeEntities( template.title.rendered ),\n\t\t\t\tid: template.id,\n\t\t\t} ) ),\n\t\t[ availableTemplates ]\n\t);\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ templatesAsPatterns }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["useMemo","useState","decodeEntities","__experimentalBlockPatternsList","BlockPatternsList","MenuItem","Modal","__","useDispatch","store","coreStore","parse","useAvailableTemplates","useEditedPostContext","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SwapTemplateButton","onClick","showModal","setShowModal","postType","postId","availableTemplates","editEntityRecord","length","onTemplateSelect","template","name","undoIgnore","children","title","onRequestClose","overlayClassName","isFullScreen","className","TemplatesList","onSelect","templatesAsPatterns","map","slug","blocks","content","raw","rendered","id","label","blockPatterns","onClickPattern"],"sources":["@wordpress/editor/src/components/post-template/swap-template-button.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { __experimentalBlockPatternsList as BlockPatternsList } from '@wordpress/block-editor';\nimport { MenuItem, Modal } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { useAvailableTemplates, useEditedPostContext } from './hooks';\n\nexport default function SwapTemplateButton( { onClick } ) {\n\tconst [ showModal, setShowModal ] = useState( false );\n\tconst { postType, postId } = useEditedPostContext();\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst { editEntityRecord } = useDispatch( coreStore );\n\tif ( ! availableTemplates?.length ) {\n\t\treturn null;\n\t}\n\tconst onTemplateSelect = async ( template ) => {\n\t\teditEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t\t{ template: template.name },\n\t\t\t{ undoIgnore: true }\n\t\t);\n\t\tsetShowModal( false ); // Close the template suggestions modal first.\n\t\tonClick();\n\t};\n\treturn (\n\t\t<>\n\t\t\t<MenuItem onClick={ () => setShowModal( true ) }>\n\t\t\t\t{ __( 'Change template' ) }\n\t\t\t</MenuItem>\n\t\t\t{ showModal && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Choose a template' ) }\n\t\t\t\t\tonRequestClose={ () => setShowModal( false ) }\n\t\t\t\t\toverlayClassName=\"editor-post-template__swap-template-modal\"\n\t\t\t\t\tisFullScreen\n\t\t\t\t>\n\t\t\t\t\t<div className=\"editor-post-template__swap-template-modal-content\">\n\t\t\t\t\t\t<TemplatesList\n\t\t\t\t\t\t\tpostType={ postType }\n\t\t\t\t\t\t\tonSelect={ onTemplateSelect }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nfunction TemplatesList( { postType, onSelect } ) {\n\tconst availableTemplates = useAvailableTemplates( postType );\n\tconst templatesAsPatterns = useMemo(\n\t\t() =>\n\t\t\tavailableTemplates.map( ( template ) => ( {\n\t\t\t\tname: template.slug,\n\t\t\t\tblocks: parse( template.content.raw ),\n\t\t\t\ttitle: decodeEntities( template.title.rendered ),\n\t\t\t\tid: template.id,\n\t\t\t} ) ),\n\t\t[ availableTemplates ]\n\t);\n\treturn (\n\t\t<BlockPatternsList\n\t\t\tlabel={ __( 'Templates' ) }\n\t\t\tblockPatterns={ templatesAsPatterns }\n\t\t\tonClickPattern={ onSelect }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","useMemo","store","coreStore","parse","privateApis","patternsPrivateApis","unlock","editorStore","EXCLUDED_PATTERN_SOURCES","PATTERN_TYPES","injectThemeAttributeInBlockTemplateContent","block","currentThemeStylesheet","innerBlocks","map","innerBlock","name","attributes","theme","undefined","filterPatterns","patterns","template","filterOutDuplicatesByName","currentItem","index","items","findIndex","item","filterOutExcludedPatternSources","pattern","includes","source","filterCompatiblePatterns","templateTypes","slug","blockTypes","area","filter","preparePatterns","keywords","type","blocks","content","__unstableSkipMigrationLogs","useAvailablePatterns","blockPatterns","restBlockPatterns","select","_settings$__experimen","getEditorSettings","settings","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","getBlockPatterns","getCurrentTheme","stylesheet","mergedPatterns","filteredPatterns"],"sources":["@wordpress/editor/src/components/post-transform-panel/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\n\nconst { EXCLUDED_PATTERN_SOURCES, PATTERN_TYPES } =\n\tunlock( patternsPrivateApis );\n\nfunction injectThemeAttributeInBlockTemplateContent(\n\tblock,\n\tcurrentThemeStylesheet\n) {\n\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\treturn injectThemeAttributeInBlockTemplateContent(\n\t\t\tinnerBlock,\n\t\t\tcurrentThemeStylesheet\n\t\t);\n\t} );\n\n\tif (\n\t\tblock.name === 'core/template-part' &&\n\t\tblock.attributes.theme === undefined\n\t) {\n\t\tblock.attributes.theme = currentThemeStylesheet;\n\t}\n\treturn block;\n}\n\n/**\n * Filter all patterns and return only the ones that are compatible with the current template.\n *\n * @param {Array} patterns An array of patterns.\n * @param {Object} template The current template.\n * @return {Array} Array of patterns that are compatible with the current template.\n */\nfunction filterPatterns( patterns, template ) {\n\t// Filter out duplicates.\n\tconst filterOutDuplicatesByName = ( currentItem, index, items ) =>\n\t\tindex === items.findIndex( ( item ) => currentItem.name === item.name );\n\n\t// Filter out core/directory patterns not included in theme.json.\n\tconst filterOutExcludedPatternSources = ( pattern ) =>\n\t\t! EXCLUDED_PATTERN_SOURCES.includes( pattern.source );\n\n\t// Looks for patterns that have the same template type as the current template,\n\t// or have a block type that matches the current template area.\n\tconst filterCompatiblePatterns = ( pattern ) =>\n\t\tpattern.templateTypes?.includes( template.slug ) ||\n\t\tpattern.blockTypes?.includes( 'core/template-part/' + template.area );\n\n\treturn patterns.filter( ( pattern, index, items ) => {\n\t\treturn (\n\t\t\tfilterOutDuplicatesByName( pattern, index, items ) &&\n\t\t\tfilterOutExcludedPatternSources( pattern ) &&\n\t\t\tfilterCompatiblePatterns( pattern )\n\t\t);\n\t} );\n}\n\nfunction preparePatterns( patterns, currentThemeStylesheet ) {\n\treturn patterns.map( ( pattern ) => ( {\n\t\t...pattern,\n\t\tkeywords: pattern.keywords || [],\n\t\ttype: PATTERN_TYPES.theme,\n\t\tblocks: parse( pattern.content, {\n\t\t\t__unstableSkipMigrationLogs: true,\n\t\t} ).map( ( block ) =>\n\t\t\tinjectThemeAttributeInBlockTemplateContent(\n\t\t\t\tblock,\n\t\t\t\tcurrentThemeStylesheet\n\t\t\t)\n\t\t),\n\t} ) );\n}\n\nexport function useAvailablePatterns( template ) {\n\tconst { blockPatterns, restBlockPatterns, currentThemeStylesheet } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getEditorSettings } = select( editorStore );\n\t\t\tconst settings = getEditorSettings();\n\n\t\t\treturn {\n\t\t\t\tblockPatterns:\n\t\t\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\t\t\tsettings.__experimentalBlockPatterns,\n\t\t\t\trestBlockPatterns: select( coreStore ).getBlockPatterns(),\n\t\t\t\tcurrentThemeStylesheet:\n\t\t\t\t\tselect( coreStore ).getCurrentTheme().stylesheet,\n\t\t\t};\n\t\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst mergedPatterns = [\n\t\t\t...( blockPatterns || [] ),\n\t\t\t...( restBlockPatterns || [] ),\n\t\t];\n\t\tconst filteredPatterns = filterPatterns( mergedPatterns, template );\n\t\treturn preparePatterns(\n\t\t\tfilteredPatterns,\n\t\t\ttemplate,\n\t\t\tcurrentThemeStylesheet\n\t\t);\n\t}, [ blockPatterns, restBlockPatterns, template, currentThemeStylesheet ] );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["useSelect","useMemo","store","coreStore","parse","privateApis","patternsPrivateApis","unlock","editorStore","EXCLUDED_PATTERN_SOURCES","PATTERN_TYPES","injectThemeAttributeInBlockTemplateContent","block","currentThemeStylesheet","innerBlocks","map","innerBlock","name","attributes","theme","undefined","filterPatterns","patterns","template","filterOutDuplicatesByName","currentItem","index","items","findIndex","item","filterOutExcludedPatternSources","pattern","includes","source","filterCompatiblePatterns","templateTypes","slug","blockTypes","area","filter","preparePatterns","keywords","type","blocks","content","__unstableSkipMigrationLogs","useAvailablePatterns","blockPatterns","restBlockPatterns","select","_settings$__experimen","getEditorSettings","settings","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","getBlockPatterns","getCurrentTheme","stylesheet","mergedPatterns","filteredPatterns"],"sources":["@wordpress/editor/src/components/post-transform-panel/hooks.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { parse } from '@wordpress/blocks';\nimport { privateApis as patternsPrivateApis } from '@wordpress/patterns';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as editorStore } from '../../store';\n\nconst { EXCLUDED_PATTERN_SOURCES, PATTERN_TYPES } =\n\tunlock( patternsPrivateApis );\n\nfunction injectThemeAttributeInBlockTemplateContent(\n\tblock,\n\tcurrentThemeStylesheet\n) {\n\tblock.innerBlocks = block.innerBlocks.map( ( innerBlock ) => {\n\t\treturn injectThemeAttributeInBlockTemplateContent(\n\t\t\tinnerBlock,\n\t\t\tcurrentThemeStylesheet\n\t\t);\n\t} );\n\n\tif (\n\t\tblock.name === 'core/template-part' &&\n\t\tblock.attributes.theme === undefined\n\t) {\n\t\tblock.attributes.theme = currentThemeStylesheet;\n\t}\n\treturn block;\n}\n\n/**\n * Filter all patterns and return only the ones that are compatible with the current template.\n *\n * @param {Array} patterns An array of patterns.\n * @param {Object} template The current template.\n * @return {Array} Array of patterns that are compatible with the current template.\n */\nfunction filterPatterns( patterns, template ) {\n\t// Filter out duplicates.\n\tconst filterOutDuplicatesByName = ( currentItem, index, items ) =>\n\t\tindex === items.findIndex( ( item ) => currentItem.name === item.name );\n\n\t// Filter out core/directory patterns not included in theme.json.\n\tconst filterOutExcludedPatternSources = ( pattern ) =>\n\t\t! EXCLUDED_PATTERN_SOURCES.includes( pattern.source );\n\n\t// Looks for patterns that have the same template type as the current template,\n\t// or have a block type that matches the current template area.\n\tconst filterCompatiblePatterns = ( pattern ) =>\n\t\tpattern.templateTypes?.includes( template.slug ) ||\n\t\tpattern.blockTypes?.includes( 'core/template-part/' + template.area );\n\n\treturn patterns.filter( ( pattern, index, items ) => {\n\t\treturn (\n\t\t\tfilterOutDuplicatesByName( pattern, index, items ) &&\n\t\t\tfilterOutExcludedPatternSources( pattern ) &&\n\t\t\tfilterCompatiblePatterns( pattern )\n\t\t);\n\t} );\n}\n\nfunction preparePatterns( patterns, currentThemeStylesheet ) {\n\treturn patterns.map( ( pattern ) => ( {\n\t\t...pattern,\n\t\tkeywords: pattern.keywords || [],\n\t\ttype: PATTERN_TYPES.theme,\n\t\tblocks: parse( pattern.content, {\n\t\t\t__unstableSkipMigrationLogs: true,\n\t\t} ).map( ( block ) =>\n\t\t\tinjectThemeAttributeInBlockTemplateContent(\n\t\t\t\tblock,\n\t\t\t\tcurrentThemeStylesheet\n\t\t\t)\n\t\t),\n\t} ) );\n}\n\nexport function useAvailablePatterns( template ) {\n\tconst { blockPatterns, restBlockPatterns, currentThemeStylesheet } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getEditorSettings } = select( editorStore );\n\t\t\tconst settings = getEditorSettings();\n\n\t\t\treturn {\n\t\t\t\tblockPatterns:\n\t\t\t\t\tsettings.__experimentalAdditionalBlockPatterns ??\n\t\t\t\t\tsettings.__experimentalBlockPatterns,\n\t\t\t\trestBlockPatterns: select( coreStore ).getBlockPatterns(),\n\t\t\t\tcurrentThemeStylesheet:\n\t\t\t\t\tselect( coreStore ).getCurrentTheme().stylesheet,\n\t\t\t};\n\t\t}, [] );\n\n\treturn useMemo( () => {\n\t\tconst mergedPatterns = [\n\t\t\t...( blockPatterns || [] ),\n\t\t\t...( restBlockPatterns || [] ),\n\t\t];\n\t\tconst filteredPatterns = filterPatterns( mergedPatterns, template );\n\t\treturn preparePatterns(\n\t\t\tfilteredPatterns,\n\t\t\ttemplate,\n\t\t\tcurrentThemeStylesheet\n\t\t);\n\t}, [ blockPatterns, restBlockPatterns, template, currentThemeStylesheet ] );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","store","coreStore","editorStore","PostTypeSupportCheck","children","supportKeys","postType","select","getEditedPostAttribute","getPostType","isSupported","Array","isArray","some","key","supports"],"sources":["@wordpress/editor/src/components/post-type-support-check/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * A component which renders its own children only if the current editor post\n * type supports one of the given `supportKeys` prop.\n *\n * @param {Object} props Props.\n * @param {React.ReactNode} props.children Children to be rendered if post\n * type supports.\n * @param {(string|string[])} props.supportKeys String or string array of keys\n * to test.\n *\n * @return {React.ReactNode} The component to be rendered.\n */\nfunction PostTypeSupportCheck( { children, supportKeys } ) {\n\tconst postType = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn getPostType( getEditedPostAttribute( 'type' ) );\n\t}, [] );\n\tlet isSupported = !! postType;\n\tif ( postType ) {\n\t\tisSupported = (\n\t\t\tArray.isArray( supportKeys ) ? supportKeys : [ supportKeys ]\n\t\t).some( ( key ) => !! postType.supports[ key ] );\n\t}\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default PostTypeSupportCheck;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["useSelect","store","coreStore","editorStore","PostTypeSupportCheck","children","supportKeys","postType","select","getEditedPostAttribute","getPostType","isSupported","Array","isArray","some","key","supports"],"sources":["@wordpress/editor/src/components/post-type-support-check/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * A component which renders its own children only if the current editor post\n * type supports one of the given `supportKeys` prop.\n *\n * @param {Object} props Props.\n * @param {React.ReactNode} props.children Children to be rendered if post\n * type supports.\n * @param {(string|string[])} props.supportKeys String or string array of keys\n * to test.\n *\n * @return {React.ReactNode} The component to be rendered.\n */\nfunction PostTypeSupportCheck( { children, supportKeys } ) {\n\tconst postType = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn getPostType( getEditedPostAttribute( 'type' ) );\n\t}, [] );\n\tlet isSupported = !! postType;\n\tif ( postType ) {\n\t\tisSupported = (\n\t\t\tArray.isArray( supportKeys ) ? supportKeys : [ supportKeys ]\n\t\t).some( ( key ) => !! postType.supports[ key ] );\n\t}\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default PostTypeSupportCheck;\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,IAAIC,SAAS,QAAQ,sBAAsB;;AAEzD;AACA;AACA;AACA,SAASD,KAAK,IAAIE,WAAW,QAAQ,aAAa;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,oBAAoBA,CAAE;EAAEC,QAAQ;EAAEC;AAAY,CAAC,EAAG;EAC1D,MAAMC,QAAQ,GAAGP,SAAS,CAAIQ,MAAM,IAAM;IACzC,MAAM;MAAEC;IAAuB,CAAC,GAAGD,MAAM,CAAEL,WAAY,CAAC;IACxD,MAAM;MAAEO;IAAY,CAAC,GAAGF,MAAM,CAAEN,SAAU,CAAC;IAC3C,OAAOQ,WAAW,CAAED,sBAAsB,CAAE,MAAO,CAAE,CAAC;EACvD,CAAC,EAAE,EAAG,CAAC;EACP,IAAIE,WAAW,GAAG,CAAC,CAAEJ,QAAQ;EAC7B,IAAKA,QAAQ,EAAG;IACfI,WAAW,GAAG,CACbC,KAAK,CAACC,OAAO,CAAEP,WAAY,CAAC,GAAGA,WAAW,GAAG,CAAEA,WAAW,CAAE,EAC3DQ,IAAI,CAAIC,GAAG,IAAM,CAAC,CAAER,QAAQ,CAACS,QAAQ,CAAED,GAAG,CAAG,CAAC;EACjD;EAEA,IAAK,CAAEJ,WAAW,EAAG;IACpB,OAAO,IAAI;EACZ;EAEA,OAAON,QAAQ;AAChB;AAEA,eAAeD,oBAAoB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","useDispatch","store","preferencesStore","hasBlockSupport","blocksStore","useMemo","privateApis","blockEditorPrivateApis","editorStore","unlock","jsx","_jsx","BlockManager","BlockVisibility","showBlockTypes","hideBlockTypes","blockTypes","allowedBlockTypes","_allowedBlockTypes","hiddenBlockTypes","_hiddenBlockTypes","select","_select$get","getBlockTypes","getEditorSettings","get","filter","name","includes","filteredBlockTypes","blockType","parent","hiddenBlock","some","registeredBlock","selectedBlockTypes","onChangeSelectedBlockTypes","newSelectedBlockTypes","length","blockTypesToHide","find","map","blockTypesToShow","onChange"],"sources":["@wordpress/editor/src/components/preferences-modal/block-visibility.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { BlockManager } = unlock( blockEditorPrivateApis );\n\nexport default function BlockVisibility() {\n\tconst { showBlockTypes, hideBlockTypes } = unlock(\n\t\tuseDispatch( editorStore )\n\t);\n\n\tconst {\n\t\tblockTypes,\n\t\tallowedBlockTypes: _allowedBlockTypes,\n\t\thiddenBlockTypes: _hiddenBlockTypes,\n\t} = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\tallowedBlockTypes:\n\t\t\t\tselect( editorStore ).getEditorSettings().allowedBlockTypes,\n\t\t\thiddenBlockTypes:\n\t\t\t\tselect( preferencesStore ).get( 'core', 'hiddenBlockTypes' ) ??\n\t\t\t\t[],\n\t\t};\n\t}, [] );\n\n\tconst allowedBlockTypes = useMemo( () => {\n\t\tif ( _allowedBlockTypes === true ) {\n\t\t\treturn blockTypes;\n\t\t}\n\t\treturn blockTypes.filter( ( { name } ) => {\n\t\t\treturn _allowedBlockTypes?.includes( name );\n\t\t} );\n\t}, [ _allowedBlockTypes, blockTypes ] );\n\n\tconst filteredBlockTypes = allowedBlockTypes.filter(\n\t\t( blockType ) =>\n\t\t\thasBlockSupport( blockType, 'inserter', true ) &&\n\t\t\t( ! blockType.parent ||\n\t\t\t\tblockType.parent.includes( 'core/post-content' ) )\n\t);\n\n\t// Some hidden blocks become unregistered\n\t// by removing for instance the plugin that registered them, yet\n\t// they're still remain as hidden by the user's action.\n\t// We consider \"hidden\", blocks which were hidden and\n\t// are still registered.\n\tconst hiddenBlockTypes = _hiddenBlockTypes.filter( ( hiddenBlock ) => {\n\t\treturn filteredBlockTypes.some(\n\t\t\t( registeredBlock ) => registeredBlock.name === hiddenBlock\n\t\t);\n\t} );\n\n\tconst selectedBlockTypes = filteredBlockTypes.filter(\n\t\t( blockType ) => ! hiddenBlockTypes.includes( blockType.name )\n\t);\n\n\tconst onChangeSelectedBlockTypes = ( newSelectedBlockTypes ) => {\n\t\tif ( selectedBlockTypes.length > newSelectedBlockTypes.length ) {\n\t\t\tconst blockTypesToHide = selectedBlockTypes.filter(\n\t\t\t\t( blockType ) =>\n\t\t\t\t\t! newSelectedBlockTypes.find(\n\t\t\t\t\t\t( { name } ) => name === blockType.name\n\t\t\t\t\t)\n\t\t\t);\n\t\t\thideBlockTypes( blockTypesToHide.map( ( { name } ) => name ) );\n\t\t} else if ( selectedBlockTypes.length < newSelectedBlockTypes.length ) {\n\t\t\tconst blockTypesToShow = newSelectedBlockTypes.filter(\n\t\t\t\t( blockType ) =>\n\t\t\t\t\t! selectedBlockTypes.find(\n\t\t\t\t\t\t( { name } ) => name === blockType.name\n\t\t\t\t\t)\n\t\t\t);\n\t\t\tshowBlockTypes( blockTypesToShow.map( ( { name } ) => name ) );\n\t\t}\n\t};\n\n\treturn (\n\t\t<BlockManager\n\t\t\tblockTypes={ filteredBlockTypes }\n\t\t\tselectedBlockTypes={ selectedBlockTypes }\n\t\t\tonChange={ onChangeSelectedBlockTypes }\n\t\t/>\n\t);\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["useSelect","useDispatch","store","preferencesStore","hasBlockSupport","blocksStore","useMemo","privateApis","blockEditorPrivateApis","editorStore","unlock","jsx","_jsx","BlockManager","BlockVisibility","showBlockTypes","hideBlockTypes","blockTypes","allowedBlockTypes","_allowedBlockTypes","hiddenBlockTypes","_hiddenBlockTypes","select","_select$get","getBlockTypes","getEditorSettings","get","filter","name","includes","filteredBlockTypes","blockType","parent","hiddenBlock","some","registeredBlock","selectedBlockTypes","onChangeSelectedBlockTypes","newSelectedBlockTypes","length","blockTypesToHide","find","map","blockTypesToShow","onChange"],"sources":["@wordpress/editor/src/components/preferences-modal/block-visibility.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as preferencesStore } from '@wordpress/preferences';\nimport { hasBlockSupport, store as blocksStore } from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nconst { BlockManager } = unlock( blockEditorPrivateApis );\n\nexport default function BlockVisibility() {\n\tconst { showBlockTypes, hideBlockTypes } = unlock(\n\t\tuseDispatch( editorStore )\n\t);\n\n\tconst {\n\t\tblockTypes,\n\t\tallowedBlockTypes: _allowedBlockTypes,\n\t\thiddenBlockTypes: _hiddenBlockTypes,\n\t} = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tblockTypes: select( blocksStore ).getBlockTypes(),\n\t\t\tallowedBlockTypes:\n\t\t\t\tselect( editorStore ).getEditorSettings().allowedBlockTypes,\n\t\t\thiddenBlockTypes:\n\t\t\t\tselect( preferencesStore ).get( 'core', 'hiddenBlockTypes' ) ??\n\t\t\t\t[],\n\t\t};\n\t}, [] );\n\n\tconst allowedBlockTypes = useMemo( () => {\n\t\tif ( _allowedBlockTypes === true ) {\n\t\t\treturn blockTypes;\n\t\t}\n\t\treturn blockTypes.filter( ( { name } ) => {\n\t\t\treturn _allowedBlockTypes?.includes( name );\n\t\t} );\n\t}, [ _allowedBlockTypes, blockTypes ] );\n\n\tconst filteredBlockTypes = allowedBlockTypes.filter(\n\t\t( blockType ) =>\n\t\t\thasBlockSupport( blockType, 'inserter', true ) &&\n\t\t\t( ! blockType.parent ||\n\t\t\t\tblockType.parent.includes( 'core/post-content' ) )\n\t);\n\n\t// Some hidden blocks become unregistered\n\t// by removing for instance the plugin that registered them, yet\n\t// they're still remain as hidden by the user's action.\n\t// We consider \"hidden\", blocks which were hidden and\n\t// are still registered.\n\tconst hiddenBlockTypes = _hiddenBlockTypes.filter( ( hiddenBlock ) => {\n\t\treturn filteredBlockTypes.some(\n\t\t\t( registeredBlock ) => registeredBlock.name === hiddenBlock\n\t\t);\n\t} );\n\n\tconst selectedBlockTypes = filteredBlockTypes.filter(\n\t\t( blockType ) => ! hiddenBlockTypes.includes( blockType.name )\n\t);\n\n\tconst onChangeSelectedBlockTypes = ( newSelectedBlockTypes ) => {\n\t\tif ( selectedBlockTypes.length > newSelectedBlockTypes.length ) {\n\t\t\tconst blockTypesToHide = selectedBlockTypes.filter(\n\t\t\t\t( blockType ) =>\n\t\t\t\t\t! newSelectedBlockTypes.find(\n\t\t\t\t\t\t( { name } ) => name === blockType.name\n\t\t\t\t\t)\n\t\t\t);\n\t\t\thideBlockTypes( blockTypesToHide.map( ( { name } ) => name ) );\n\t\t} else if ( selectedBlockTypes.length < newSelectedBlockTypes.length ) {\n\t\t\tconst blockTypesToShow = newSelectedBlockTypes.filter(\n\t\t\t\t( blockType ) =>\n\t\t\t\t\t! selectedBlockTypes.find(\n\t\t\t\t\t\t( { name } ) => name === blockType.name\n\t\t\t\t\t)\n\t\t\t);\n\t\t\tshowBlockTypes( blockTypesToShow.map( ( { name } ) => name ) );\n\t\t}\n\t};\n\n\treturn (\n\t\t<BlockManager\n\t\t\tblockTypes={ filteredBlockTypes }\n\t\t\tselectedBlockTypes={ selectedBlockTypes }\n\t\t\tonChange={ onChangeSelectedBlockTypes }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|