%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/dordingu/public_html/hardkjarni/wp-content/plugins/gutenberg/build/editor/
Upload File :
Create Path :
Current File : /home/dordingu/public_html/hardkjarni/wp-content/plugins/gutenberg/build/editor/index.min.js.map

{"version":3,"file":"./build/editor/index.min.js","mappings":"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,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,KACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,KACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,KACL,EAAK,IACL,EAAK,IACL,EAAK,KACL,EAAK,KACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,EAAK,IACL,EAAK,IACL,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM,IACN,GAAM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","sources":["webpack://wp/./node_modules/autosize/dist/autosize.js","webpack://wp/./node_modules/classnames/index.js","webpack://wp/./node_modules/computed-style/dist/computedStyle.commonjs.js","webpack://wp/./node_modules/line-height/lib/line-height.js","webpack://wp/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://wp/./node_modules/prop-types/index.js","webpack://wp/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://wp/./node_modules/react-autosize-textarea/lib/TextareaAutosize.js","webpack://wp/./node_modules/react-autosize-textarea/lib/index.js","webpack://wp/./node_modules/remove-accents/index.js","webpack://wp/external window \"React\"","webpack://wp/webpack/bootstrap","webpack://wp/webpack/runtime/compat get default export","webpack://wp/webpack/runtime/define property getters","webpack://wp/webpack/runtime/hasOwnProperty shorthand","webpack://wp/webpack/runtime/make namespace object","webpack://wp/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wp/external window [\"wp\",\"element\"]","webpack://wp/external window \"lodash\"","webpack://wp/external window [\"wp\",\"blocks\"]","webpack://wp/external window [\"wp\",\"data\"]","webpack://wp/external window [\"wp\",\"coreData\"]","webpack://wp/external window [\"wp\",\"compose\"]","webpack://wp/external window [\"wp\",\"hooks\"]","webpack://wp/external window [\"wp\",\"blockEditor\"]","webpack://wp/./packages/editor/build-module/store/@wordpress/editor/src/store/defaults.js","webpack://wp/./packages/editor/build-module/store/@wordpress/editor/src/store/reducer.js","webpack://wp/./node_modules/rememo/es/rememo.js","webpack://wp/external window [\"wp\",\"date\"]","webpack://wp/external window [\"wp\",\"url\"]","webpack://wp/external window [\"wp\",\"deprecated\"]","webpack://wp/external window [\"wp\",\"primitives\"]","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/layout.js","webpack://wp/external window [\"wp\",\"preferences\"]","webpack://wp/./packages/editor/build-module/store/@wordpress/editor/src/store/constants.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/header.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/footer.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/sidebar.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/symbol-filled.js","webpack://wp/./packages/editor/build-module/utils/@wordpress/editor/src/utils/get-template-part-icon.js","webpack://wp/./packages/editor/build-module/store/@wordpress/editor/src/store/selectors.js","webpack://wp/external window [\"wp\",\"apiFetch\"]","webpack://wp/external window [\"wp\",\"notices\"]","webpack://wp/./packages/editor/build-module/store/@wordpress/editor/src/store/local-autosave.js","webpack://wp/external window [\"wp\",\"i18n\"]","webpack://wp/./packages/editor/build-module/store/utils/@wordpress/editor/src/store/utils/notice-builder.js","webpack://wp/./packages/editor/build-module/store/@wordpress/editor/src/store/actions.js","webpack://wp/./packages/editor/build-module/store/@wordpress/editor/src/store/index.js","webpack://wp/./packages/editor/build-module/hooks/@wordpress/editor/src/hooks/custom-sources-backwards-compatibility.js","webpack://wp/./packages/editor/build-module/components/autocompleters/@wordpress/editor/src/components/autocompleters/user.js","webpack://wp/./packages/editor/build-module/hooks/@wordpress/editor/src/hooks/default-autocompleters.js","webpack://wp/./packages/editor/build-module/components/autosave-monitor/@wordpress/editor/src/components/autosave-monitor/index.js","webpack://wp/external window [\"wp\",\"richText\"]","webpack://wp/./packages/editor/build-module/components/document-outline/@wordpress/editor/src/components/document-outline/item.js","webpack://wp/./packages/editor/build-module/components/document-outline/@wordpress/editor/src/components/document-outline/index.js","webpack://wp/./packages/editor/build-module/components/document-outline/@wordpress/editor/src/components/document-outline/check.js","webpack://wp/external window [\"wp\",\"keyboardShortcuts\"]","webpack://wp/./packages/editor/build-module/components/global-keyboard-shortcuts/@wordpress/editor/src/components/global-keyboard-shortcuts/save-shortcut.js","webpack://wp/./packages/editor/build-module/components/global-keyboard-shortcuts/@wordpress/editor/src/components/global-keyboard-shortcuts/visual-editor-shortcuts.js","webpack://wp/./packages/editor/build-module/components/global-keyboard-shortcuts/@wordpress/editor/src/components/global-keyboard-shortcuts/text-editor-shortcuts.js","webpack://wp/external window [\"wp\",\"keycodes\"]","webpack://wp/./packages/editor/build-module/components/global-keyboard-shortcuts/@wordpress/editor/src/components/global-keyboard-shortcuts/register-shortcuts.js","webpack://wp/external window [\"wp\",\"components\"]","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/redo.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/undo.js","webpack://wp/./packages/editor/build-module/components/editor-history/@wordpress/editor/src/components/editor-history/redo.js","webpack://wp/./packages/editor/build-module/components/editor-history/@wordpress/editor/src/components/editor-history/undo.js","webpack://wp/./packages/editor/build-module/components/template-validation-notice/@wordpress/editor/src/components/template-validation-notice/index.js","webpack://wp/./packages/editor/build-module/components/editor-notices/@wordpress/editor/src/components/editor-notices/index.js","webpack://wp/./packages/editor/build-module/components/editor-snackbars/@wordpress/editor/src/components/editor-snackbars/index.js","webpack://wp/external window [\"wp\",\"htmlEntities\"]","webpack://wp/./packages/editor/build-module/components/entities-saved-states/@wordpress/editor/src/components/entities-saved-states/entity-record-item.js","webpack://wp/./packages/editor/build-module/components/entities-saved-states/@wordpress/editor/src/components/entities-saved-states/entity-type-list.js","webpack://wp/./packages/editor/build-module/components/entities-saved-states/@wordpress/editor/src/components/entities-saved-states/index.js","webpack://wp/./packages/editor/build-module/components/error-boundary/@wordpress/editor/src/components/error-boundary/index.js","webpack://wp/./packages/editor/build-module/components/local-autosave-monitor/@wordpress/editor/src/components/local-autosave-monitor/index.js","webpack://wp/./packages/editor/build-module/components/page-attributes/@wordpress/editor/src/components/page-attributes/check.js","webpack://wp/./packages/editor/build-module/components/post-type-support-check/@wordpress/editor/src/components/post-type-support-check/index.js","webpack://wp/./packages/editor/build-module/components/page-attributes/@wordpress/editor/src/components/page-attributes/order.js","webpack://wp/./packages/editor/build-module/utils/@wordpress/editor/src/utils/terms.js","webpack://wp/./packages/editor/build-module/components/page-attributes/@wordpress/editor/src/components/page-attributes/parent.js","webpack://wp/./packages/editor/build-module/components/post-template/@wordpress/editor/src/components/post-template/index.js","webpack://wp/./packages/editor/build-module/components/post-author/@wordpress/editor/src/components/post-author/constants.js","webpack://wp/./packages/editor/build-module/components/post-author/@wordpress/editor/src/components/post-author/combobox.js","webpack://wp/./packages/editor/build-module/components/post-author/@wordpress/editor/src/components/post-author/select.js","webpack://wp/./packages/editor/build-module/components/post-author/@wordpress/editor/src/components/post-author/index.js","webpack://wp/./packages/editor/build-module/components/post-author/@wordpress/editor/src/components/post-author/check.js","webpack://wp/./packages/editor/build-module/components/post-comments/@wordpress/editor/src/components/post-comments/index.js","webpack://wp/./packages/editor/build-module/components/post-excerpt/@wordpress/editor/src/components/post-excerpt/index.js","webpack://wp/./packages/editor/build-module/components/post-excerpt/@wordpress/editor/src/components/post-excerpt/check.js","webpack://wp/external window [\"wp\",\"blob\"]","webpack://wp/./packages/editor/build-module/components/theme-support-check/@wordpress/editor/src/components/theme-support-check/index.js","webpack://wp/./packages/editor/build-module/components/post-featured-image/@wordpress/editor/src/components/post-featured-image/check.js","webpack://wp/./packages/editor/build-module/components/post-featured-image/@wordpress/editor/src/components/post-featured-image/index.js","webpack://wp/./packages/editor/build-module/components/post-format/@wordpress/editor/src/components/post-format/check.js","webpack://wp/./packages/editor/build-module/components/post-format/@wordpress/editor/src/components/post-format/index.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/backup.js","webpack://wp/./packages/editor/build-module/components/post-last-revision/@wordpress/editor/src/components/post-last-revision/check.js","webpack://wp/./packages/editor/build-module/components/post-last-revision/@wordpress/editor/src/components/post-last-revision/index.js","webpack://wp/./packages/editor/build-module/components/post-locked-modal/@wordpress/editor/src/components/post-locked-modal/index.js","webpack://wp/./packages/editor/build-module/components/post-pending-status/@wordpress/editor/src/components/post-pending-status/check.js","webpack://wp/./packages/editor/build-module/components/post-pending-status/@wordpress/editor/src/components/post-pending-status/index.js","webpack://wp/./packages/editor/build-module/components/post-pingbacks/@wordpress/editor/src/components/post-pingbacks/index.js","webpack://wp/./packages/editor/build-module/components/post-preview-button/@wordpress/editor/src/components/post-preview-button/index.js","webpack://wp/./packages/editor/build-module/components/post-publish-button/@wordpress/editor/src/components/post-publish-button/label.js","webpack://wp/./packages/editor/build-module/components/post-publish-button/@wordpress/editor/src/components/post-publish-button/index.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/close-small.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/wordpress.js","webpack://wp/./packages/editor/build-module/components/post-visibility/@wordpress/editor/src/components/post-visibility/utils.js","webpack://wp/./packages/editor/build-module/components/post-visibility/@wordpress/editor/src/components/post-visibility/index.js","webpack://wp/./packages/editor/build-module/components/post-visibility/@wordpress/editor/src/components/post-visibility/label.js","webpack://wp/./packages/editor/build-module/components/post-schedule/@wordpress/editor/src/components/post-schedule/index.js","webpack://wp/./packages/editor/build-module/components/post-schedule/@wordpress/editor/src/components/post-schedule/label.js","webpack://wp/external window [\"wp\",\"a11y\"]","webpack://wp/./packages/editor/build-module/components/post-taxonomies/@wordpress/editor/src/components/post-taxonomies/most-used-terms.js","webpack://wp/./packages/editor/build-module/components/post-taxonomies/@wordpress/editor/src/components/post-taxonomies/flat-term-selector.js","webpack://wp/./packages/editor/build-module/components/post-publish-panel/@wordpress/editor/src/components/post-publish-panel/maybe-tags-panel.js","webpack://wp/./packages/editor/build-module/components/post-publish-panel/@wordpress/editor/src/components/post-publish-panel/maybe-post-format-panel.js","webpack://wp/./packages/editor/build-module/components/post-taxonomies/@wordpress/editor/src/components/post-taxonomies/hierarchical-term-selector.js","webpack://wp/./packages/editor/build-module/components/post-publish-panel/@wordpress/editor/src/components/post-publish-panel/maybe-category-panel.js","webpack://wp/./packages/editor/build-module/components/post-publish-panel/@wordpress/editor/src/components/post-publish-panel/prepublish.js","webpack://wp/./packages/editor/build-module/components/post-publish-panel/@wordpress/editor/src/components/post-publish-panel/postpublish.js","webpack://wp/./packages/editor/build-module/components/post-publish-panel/@wordpress/editor/src/components/post-publish-panel/index.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/cloud-upload.js","webpack://wp/./packages/icons/build-module/icon/@wordpress/icons/src/icon/index.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/check.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/cloud.js","webpack://wp/./packages/editor/build-module/components/post-switch-to-draft-button/@wordpress/editor/src/components/post-switch-to-draft-button/index.js","webpack://wp/./packages/editor/build-module/components/post-saved-state/@wordpress/editor/src/components/post-saved-state/index.js","webpack://wp/./packages/editor/build-module/components/post-schedule/@wordpress/editor/src/components/post-schedule/check.js","webpack://wp/./packages/editor/build-module/components/post-slug/@wordpress/editor/src/components/post-slug/check.js","webpack://wp/./packages/editor/build-module/components/post-slug/@wordpress/editor/src/components/post-slug/index.js","webpack://wp/./packages/editor/build-module/components/post-sticky/@wordpress/editor/src/components/post-sticky/check.js","webpack://wp/./packages/editor/build-module/components/post-sticky/@wordpress/editor/src/components/post-sticky/index.js","webpack://wp/./packages/editor/build-module/components/post-taxonomies/@wordpress/editor/src/components/post-taxonomies/index.js","webpack://wp/./packages/editor/build-module/components/post-taxonomies/@wordpress/editor/src/components/post-taxonomies/check.js","webpack://wp/./packages/editor/build-module/components/post-text-editor/@wordpress/editor/src/components/post-text-editor/index.js","webpack://wp/./packages/editor/build-module/components/post-title/@wordpress/editor/src/components/post-title/index.js","webpack://wp/./packages/editor/build-module/components/post-trash/@wordpress/editor/src/components/post-trash/index.js","webpack://wp/./packages/editor/build-module/components/post-trash/@wordpress/editor/src/components/post-trash/check.js","webpack://wp/./packages/editor/build-module/components/post-url/@wordpress/editor/src/components/post-url/index.js","webpack://wp/./packages/editor/build-module/components/post-url/@wordpress/editor/src/components/post-url/check.js","webpack://wp/./packages/editor/build-module/components/post-url/@wordpress/editor/src/components/post-url/label.js","webpack://wp/./packages/editor/build-module/components/post-visibility/@wordpress/editor/src/components/post-visibility/check.js","webpack://wp/./packages/icons/build-module/library/@wordpress/icons/src/library/info.js","webpack://wp/external window [\"wp\",\"wordcount\"]","webpack://wp/./packages/editor/build-module/components/word-count/@wordpress/editor/src/components/word-count/index.js","webpack://wp/./packages/editor/build-module/components/time-to-read/@wordpress/editor/src/components/time-to-read/index.js","webpack://wp/./packages/editor/build-module/components/character-count/@wordpress/editor/src/components/character-count/index.js","webpack://wp/./packages/editor/build-module/components/table-of-contents/@wordpress/editor/src/components/table-of-contents/panel.js","webpack://wp/./packages/editor/build-module/components/table-of-contents/@wordpress/editor/src/components/table-of-contents/index.js","webpack://wp/./packages/editor/build-module/components/unsaved-changes-warning/@wordpress/editor/src/components/unsaved-changes-warning/index.js","webpack://wp/external window [\"wp\",\"reusableBlocks\"]","webpack://wp/./packages/editor/build-module/components/provider/@wordpress/editor/src/components/provider/with-registry-provider.js","webpack://wp/external window [\"wp\",\"mediaUtils\"]","webpack://wp/./packages/editor/build-module/utils/media-upload/@wordpress/editor/src/utils/media-upload/index.js","webpack://wp/./packages/editor/build-module/components/provider/@wordpress/editor/src/components/provider/use-block-editor-settings.js","webpack://wp/./packages/editor/build-module/components/provider/@wordpress/editor/src/components/provider/index.js","webpack://wp/external window [\"wp\",\"serverSideRender\"]","webpack://wp/./packages/editor/build-module/components/@wordpress/editor/src/components/deprecated.js","webpack://wp/./packages/editor/build-module/utils/@wordpress/editor/src/utils/url.js"],"sourcesContent":["/*!\n\tautosize 4.0.2\n\tlicense: MIT\n\thttp://www.jacklmoore.com/autosize\n*/\n(function (global, factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine(['module', 'exports'], factory);\n\t} else if (typeof exports !== \"undefined\") {\n\t\tfactory(module, exports);\n\t} else {\n\t\tvar mod = {\n\t\t\texports: {}\n\t\t};\n\t\tfactory(mod, mod.exports);\n\t\tglobal.autosize = mod.exports;\n\t}\n})(this, function (module, exports) {\n\t'use strict';\n\n\tvar map = typeof Map === \"function\" ? new Map() : function () {\n\t\tvar keys = [];\n\t\tvar values = [];\n\n\t\treturn {\n\t\t\thas: function has(key) {\n\t\t\t\treturn keys.indexOf(key) > -1;\n\t\t\t},\n\t\t\tget: function get(key) {\n\t\t\t\treturn values[keys.indexOf(key)];\n\t\t\t},\n\t\t\tset: function set(key, value) {\n\t\t\t\tif (keys.indexOf(key) === -1) {\n\t\t\t\t\tkeys.push(key);\n\t\t\t\t\tvalues.push(value);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete: function _delete(key) {\n\t\t\t\tvar index = keys.indexOf(key);\n\t\t\t\tif (index > -1) {\n\t\t\t\t\tkeys.splice(index, 1);\n\t\t\t\t\tvalues.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}();\n\n\tvar createEvent = function createEvent(name) {\n\t\treturn new Event(name, { bubbles: true });\n\t};\n\ttry {\n\t\tnew Event('test');\n\t} catch (e) {\n\t\t// IE does not support `new Event()`\n\t\tcreateEvent = function createEvent(name) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent(name, true, false);\n\t\t\treturn evt;\n\t\t};\n\t}\n\n\tfunction assign(ta) {\n\t\tif (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;\n\n\t\tvar heightOffset = null;\n\t\tvar clientWidth = null;\n\t\tvar cachedHeight = null;\n\n\t\tfunction init() {\n\t\t\tvar style = window.getComputedStyle(ta, null);\n\n\t\t\tif (style.resize === 'vertical') {\n\t\t\t\tta.style.resize = 'none';\n\t\t\t} else if (style.resize === 'both') {\n\t\t\t\tta.style.resize = 'horizontal';\n\t\t\t}\n\n\t\t\tif (style.boxSizing === 'content-box') {\n\t\t\t\theightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));\n\t\t\t} else {\n\t\t\t\theightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n\t\t\t}\n\t\t\t// Fix when a textarea is not on document body and heightOffset is Not a Number\n\t\t\tif (isNaN(heightOffset)) {\n\t\t\t\theightOffset = 0;\n\t\t\t}\n\n\t\t\tupdate();\n\t\t}\n\n\t\tfunction changeOverflow(value) {\n\t\t\t{\n\t\t\t\t// Chrome/Safari-specific fix:\n\t\t\t\t// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space\n\t\t\t\t// made available by removing the scrollbar. The following forces the necessary text reflow.\n\t\t\t\tvar width = ta.style.width;\n\t\t\t\tta.style.width = '0px';\n\t\t\t\t// Force reflow:\n\t\t\t\t/* jshint ignore:start */\n\t\t\t\tta.offsetWidth;\n\t\t\t\t/* jshint ignore:end */\n\t\t\t\tta.style.width = width;\n\t\t\t}\n\n\t\t\tta.style.overflowY = value;\n\t\t}\n\n\t\tfunction getParentOverflows(el) {\n\t\t\tvar arr = [];\n\n\t\t\twhile (el && el.parentNode && el.parentNode instanceof Element) {\n\t\t\t\tif (el.parentNode.scrollTop) {\n\t\t\t\t\tarr.push({\n\t\t\t\t\t\tnode: el.parentNode,\n\t\t\t\t\t\tscrollTop: el.parentNode.scrollTop\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tel = el.parentNode;\n\t\t\t}\n\n\t\t\treturn arr;\n\t\t}\n\n\t\tfunction resize() {\n\t\t\tif (ta.scrollHeight === 0) {\n\t\t\t\t// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar overflows = getParentOverflows(ta);\n\t\t\tvar docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)\n\n\t\t\tta.style.height = '';\n\t\t\tta.style.height = ta.scrollHeight + heightOffset + 'px';\n\n\t\t\t// used to check if an update is actually necessary on window.resize\n\t\t\tclientWidth = ta.clientWidth;\n\n\t\t\t// prevents scroll-position jumping\n\t\t\toverflows.forEach(function (el) {\n\t\t\t\tel.node.scrollTop = el.scrollTop;\n\t\t\t});\n\n\t\t\tif (docTop) {\n\t\t\t\tdocument.documentElement.scrollTop = docTop;\n\t\t\t}\n\t\t}\n\n\t\tfunction update() {\n\t\t\tresize();\n\n\t\t\tvar styleHeight = Math.round(parseFloat(ta.style.height));\n\t\t\tvar computed = window.getComputedStyle(ta, null);\n\n\t\t\t// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box\n\t\t\tvar actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;\n\n\t\t\t// The actual height not matching the style height (set via the resize method) indicates that \n\t\t\t// the max-height has been exceeded, in which case the overflow should be allowed.\n\t\t\tif (actualHeight < styleHeight) {\n\t\t\t\tif (computed.overflowY === 'hidden') {\n\t\t\t\t\tchangeOverflow('scroll');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.\n\t\t\t\tif (computed.overflowY !== 'hidden') {\n\t\t\t\t\tchangeOverflow('hidden');\n\t\t\t\t\tresize();\n\t\t\t\t\tactualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (cachedHeight !== actualHeight) {\n\t\t\t\tcachedHeight = actualHeight;\n\t\t\t\tvar evt = createEvent('autosize:resized');\n\t\t\t\ttry {\n\t\t\t\t\tta.dispatchEvent(evt);\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Firefox will throw an error on dispatchEvent for a detached element\n\t\t\t\t\t// https://bugzilla.mozilla.org/show_bug.cgi?id=889376\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar pageResize = function pageResize() {\n\t\t\tif (ta.clientWidth !== clientWidth) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t};\n\n\t\tvar destroy = function (style) {\n\t\t\twindow.removeEventListener('resize', pageResize, false);\n\t\t\tta.removeEventListener('input', update, false);\n\t\t\tta.removeEventListener('keyup', update, false);\n\t\t\tta.removeEventListener('autosize:destroy', destroy, false);\n\t\t\tta.removeEventListener('autosize:update', update, false);\n\n\t\t\tObject.keys(style).forEach(function (key) {\n\t\t\t\tta.style[key] = style[key];\n\t\t\t});\n\n\t\t\tmap.delete(ta);\n\t\t}.bind(ta, {\n\t\t\theight: ta.style.height,\n\t\t\tresize: ta.style.resize,\n\t\t\toverflowY: ta.style.overflowY,\n\t\t\toverflowX: ta.style.overflowX,\n\t\t\twordWrap: ta.style.wordWrap\n\t\t});\n\n\t\tta.addEventListener('autosize:destroy', destroy, false);\n\n\t\t// IE9 does not fire onpropertychange or oninput for deletions,\n\t\t// so binding to onkeyup to catch most of those events.\n\t\t// There is no way that I know of to detect something like 'cut' in IE9.\n\t\tif ('onpropertychange' in ta && 'oninput' in ta) {\n\t\t\tta.addEventListener('keyup', update, false);\n\t\t}\n\n\t\twindow.addEventListener('resize', pageResize, false);\n\t\tta.addEventListener('input', update, false);\n\t\tta.addEventListener('autosize:update', update, false);\n\t\tta.style.overflowX = 'hidden';\n\t\tta.style.wordWrap = 'break-word';\n\n\t\tmap.set(ta, {\n\t\t\tdestroy: destroy,\n\t\t\tupdate: update\n\t\t});\n\n\t\tinit();\n\t}\n\n\tfunction destroy(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.destroy();\n\t\t}\n\t}\n\n\tfunction update(ta) {\n\t\tvar methods = map.get(ta);\n\t\tif (methods) {\n\t\t\tmethods.update();\n\t\t}\n\t}\n\n\tvar autosize = null;\n\n\t// Do nothing in Node.js environment and IE8 (or lower)\n\tif (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {\n\t\tautosize = function autosize(el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\treturn el;\n\t\t};\n\t} else {\n\t\tautosize = function autosize(el, options) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], function (x) {\n\t\t\t\t\treturn assign(x, options);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.destroy = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], destroy);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t\tautosize.update = function (el) {\n\t\t\tif (el) {\n\t\t\t\tArray.prototype.forEach.call(el.length ? el : [el], update);\n\t\t\t}\n\t\t\treturn el;\n\t\t};\n\t}\n\n\texports.default = autosize;\n\tmodule.exports = exports['default'];\n});","/*!\n  Copyright (c) 2018 Jed Watson.\n  Licensed under the MIT License (MIT), see\n  http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// This code has been refactored for 140 bytes\n// You can see the original here: https://github.com/twolfson/computedStyle/blob/04cd1da2e30fa45844f95f5cb1ac898e9b9ef050/lib/computedStyle.js\nvar computedStyle = function (el, prop, getComputedStyle) {\n  getComputedStyle = window.getComputedStyle;\n\n  // In one fell swoop\n  return (\n    // If we have getComputedStyle\n    getComputedStyle ?\n      // Query it\n      // TODO: From CSS-Query notes, we might need (node, null) for FF\n      getComputedStyle(el) :\n\n    // Otherwise, we are in IE and use currentStyle\n      el.currentStyle\n  )[\n    // Switch to camelCase for CSSOM\n    // DEV: Grabbed from jQuery\n    // https://github.com/jquery/jquery/blob/1.9-stable/src/css.js#L191-L194\n    // https://github.com/jquery/jquery/blob/1.9-stable/src/core.js#L593-L597\n    prop.replace(/-(\\w)/gi, function (word, letter) {\n      return letter.toUpperCase();\n    })\n  ];\n};\n\nmodule.exports = computedStyle;\n","// Load in dependencies\nvar computedStyle = require('computed-style');\n\n/**\n * Calculate the `line-height` of a given node\n * @param {HTMLElement} node Element to calculate line height of. Must be in the DOM.\n * @returns {Number} `line-height` of the element in pixels\n */\nfunction lineHeight(node) {\n  // Grab the line-height via style\n  var lnHeightStr = computedStyle(node, 'line-height');\n  var lnHeight = parseFloat(lnHeightStr, 10);\n\n  // If the lineHeight did not contain a unit (i.e. it was numeric), convert it to ems (e.g. '2.3' === '2.3em')\n  if (lnHeightStr === lnHeight + '') {\n    // Save the old lineHeight style and update the em unit to the element\n    var _lnHeightStyle = node.style.lineHeight;\n    node.style.lineHeight = lnHeightStr + 'em';\n\n    // Calculate the em based height\n    lnHeightStr = computedStyle(node, 'line-height');\n    lnHeight = parseFloat(lnHeightStr, 10);\n\n    // Revert the lineHeight style\n    if (_lnHeightStyle) {\n      node.style.lineHeight = _lnHeightStyle;\n    } else {\n      delete node.style.lineHeight;\n    }\n  }\n\n  // If the lineHeight is in `pt`, convert it to pixels (4px for 3pt)\n  // DEV: `em` units are converted to `pt` in IE6\n  // Conversion ratio from https://developer.mozilla.org/en-US/docs/Web/CSS/length\n  if (lnHeightStr.indexOf('pt') !== -1) {\n    lnHeight *= 4;\n    lnHeight /= 3;\n  // Otherwise, if the lineHeight is in `mm`, convert it to pixels (96px for 25.4mm)\n  } else if (lnHeightStr.indexOf('mm') !== -1) {\n    lnHeight *= 96;\n    lnHeight /= 25.4;\n  // Otherwise, if the lineHeight is in `cm`, convert it to pixels (96px for 2.54cm)\n  } else if (lnHeightStr.indexOf('cm') !== -1) {\n    lnHeight *= 96;\n    lnHeight /= 2.54;\n  // Otherwise, if the lineHeight is in `in`, convert it to pixels (96px for 1in)\n  } else if (lnHeightStr.indexOf('in') !== -1) {\n    lnHeight *= 96;\n  // Otherwise, if the lineHeight is in `pc`, convert it to pixels (12pt for 1pc)\n  } else if (lnHeightStr.indexOf('pc') !== -1) {\n    lnHeight *= 16;\n  }\n\n  // Continue our computation\n  lnHeight = Math.round(lnHeight);\n\n  // If the line-height is \"normal\", calculate by font-size\n  if (lnHeightStr === 'normal') {\n    // Create a temporary node\n    var nodeName = node.nodeName;\n    var _node = document.createElement(nodeName);\n    _node.innerHTML = '&nbsp;';\n\n    // If we have a text area, reset it to only 1 row\n    // https://github.com/twolfson/line-height/issues/4\n    if (nodeName.toUpperCase() === 'TEXTAREA') {\n      _node.setAttribute('rows', '1');\n    }\n\n    // Set the font-size of the element\n    var fontSizeStr = computedStyle(node, 'font-size');\n    _node.style.fontSize = fontSizeStr;\n\n    // Remove default padding/border which can affect offset height\n    // https://github.com/twolfson/line-height/issues/4\n    // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetHeight\n    _node.style.padding = '0px';\n    _node.style.border = '0px';\n\n    // Append it to the body\n    var body = document.body;\n    body.appendChild(_node);\n\n    // Assume the line height of the element is the height\n    var height = _node.offsetHeight;\n    lnHeight = height;\n\n    // Remove our child from the DOM\n    body.removeChild(_node);\n  }\n\n  // Return the calculated height\n  return lnHeight;\n}\n\n// Export lineHeight\nmodule.exports = lineHeight;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = Object.setPrototypeOf ||\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n    for (var s, i = 1, n = arguments.length; i < n; i++) {\n        s = arguments[i];\n        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n            t[p] = s[p];\n    }\n    return t;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n    var t = {};\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n        t[p] = s[p];\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\n            t[p[i]] = s[p[i]];\n    return t;\n};\nexports.__esModule = true;\nvar React = require(\"react\");\nvar PropTypes = require(\"prop-types\");\nvar autosize = require(\"autosize\");\nvar _getLineHeight = require(\"line-height\");\nvar getLineHeight = _getLineHeight;\nvar RESIZED = \"autosize:resized\";\n/**\n * A light replacement for built-in textarea component\n * which automaticaly adjusts its height to match the content\n */\nvar TextareaAutosizeClass = /** @class */ (function (_super) {\n    __extends(TextareaAutosizeClass, _super);\n    function TextareaAutosizeClass() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.state = {\n            lineHeight: null\n        };\n        _this.textarea = null;\n        _this.onResize = function (e) {\n            if (_this.props.onResize) {\n                _this.props.onResize(e);\n            }\n        };\n        _this.updateLineHeight = function () {\n            if (_this.textarea) {\n                _this.setState({\n                    lineHeight: getLineHeight(_this.textarea)\n                });\n            }\n        };\n        _this.onChange = function (e) {\n            var onChange = _this.props.onChange;\n            _this.currentValue = e.currentTarget.value;\n            onChange && onChange(e);\n        };\n        return _this;\n    }\n    TextareaAutosizeClass.prototype.componentDidMount = function () {\n        var _this = this;\n        var _a = this.props, maxRows = _a.maxRows, async = _a.async;\n        if (typeof maxRows === \"number\") {\n            this.updateLineHeight();\n        }\n        if (typeof maxRows === \"number\" || async) {\n            /*\n              the defer is needed to:\n                - force \"autosize\" to activate the scrollbar when this.props.maxRows is passed\n                - support StyledComponents (see #71)\n            */\n            setTimeout(function () { return _this.textarea && autosize(_this.textarea); });\n        }\n        else {\n            this.textarea && autosize(this.textarea);\n        }\n        if (this.textarea) {\n            this.textarea.addEventListener(RESIZED, this.onResize);\n        }\n    };\n    TextareaAutosizeClass.prototype.componentWillUnmount = function () {\n        if (this.textarea) {\n            this.textarea.removeEventListener(RESIZED, this.onResize);\n            autosize.destroy(this.textarea);\n        }\n    };\n    TextareaAutosizeClass.prototype.render = function () {\n        var _this = this;\n        var _a = this, _b = _a.props, onResize = _b.onResize, maxRows = _b.maxRows, onChange = _b.onChange, style = _b.style, innerRef = _b.innerRef, children = _b.children, props = __rest(_b, [\"onResize\", \"maxRows\", \"onChange\", \"style\", \"innerRef\", \"children\"]), lineHeight = _a.state.lineHeight;\n        var maxHeight = maxRows && lineHeight ? lineHeight * maxRows : null;\n        return (React.createElement(\"textarea\", __assign({}, props, { onChange: this.onChange, style: maxHeight ? __assign({}, style, { maxHeight: maxHeight }) : style, ref: function (element) {\n                _this.textarea = element;\n                if (typeof _this.props.innerRef === 'function') {\n                    _this.props.innerRef(element);\n                }\n                else if (_this.props.innerRef) {\n                    _this.props.innerRef.current = element;\n                }\n            } }), children));\n    };\n    TextareaAutosizeClass.prototype.componentDidUpdate = function () {\n        this.textarea && autosize.update(this.textarea);\n    };\n    TextareaAutosizeClass.defaultProps = {\n        rows: 1,\n        async: false\n    };\n    TextareaAutosizeClass.propTypes = {\n        rows: PropTypes.number,\n        maxRows: PropTypes.number,\n        onResize: PropTypes.func,\n        innerRef: PropTypes.any,\n        async: PropTypes.bool\n    };\n    return TextareaAutosizeClass;\n}(React.Component));\nexports.TextareaAutosize = React.forwardRef(function (props, ref) {\n    return React.createElement(TextareaAutosizeClass, __assign({}, props, { innerRef: ref }));\n});\n","\"use strict\";\nexports.__esModule = true;\nvar TextareaAutosize_1 = require(\"./TextareaAutosize\");\nexports[\"default\"] = TextareaAutosize_1.TextareaAutosize;\n","var characterMap = {\r\n\t\"À\": \"A\",\r\n\t\"Á\": \"A\",\r\n\t\"Â\": \"A\",\r\n\t\"Ã\": \"A\",\r\n\t\"Ä\": \"A\",\r\n\t\"Å\": \"A\",\r\n\t\"Ấ\": \"A\",\r\n\t\"Ắ\": \"A\",\r\n\t\"Ẳ\": \"A\",\r\n\t\"Ẵ\": \"A\",\r\n\t\"Ặ\": \"A\",\r\n\t\"Æ\": \"AE\",\r\n\t\"Ầ\": \"A\",\r\n\t\"Ằ\": \"A\",\r\n\t\"Ȃ\": \"A\",\r\n\t\"Ç\": \"C\",\r\n\t\"Ḉ\": \"C\",\r\n\t\"È\": \"E\",\r\n\t\"É\": \"E\",\r\n\t\"Ê\": \"E\",\r\n\t\"Ë\": \"E\",\r\n\t\"Ế\": \"E\",\r\n\t\"Ḗ\": \"E\",\r\n\t\"Ề\": \"E\",\r\n\t\"Ḕ\": \"E\",\r\n\t\"Ḝ\": \"E\",\r\n\t\"Ȇ\": \"E\",\r\n\t\"Ì\": \"I\",\r\n\t\"Í\": \"I\",\r\n\t\"Î\": \"I\",\r\n\t\"Ï\": \"I\",\r\n\t\"Ḯ\": \"I\",\r\n\t\"Ȋ\": \"I\",\r\n\t\"Ð\": \"D\",\r\n\t\"Ñ\": \"N\",\r\n\t\"Ò\": \"O\",\r\n\t\"Ó\": \"O\",\r\n\t\"Ô\": \"O\",\r\n\t\"Õ\": \"O\",\r\n\t\"Ö\": \"O\",\r\n\t\"Ø\": \"O\",\r\n\t\"Ố\": \"O\",\r\n\t\"Ṍ\": \"O\",\r\n\t\"Ṓ\": \"O\",\r\n\t\"Ȏ\": \"O\",\r\n\t\"Ù\": \"U\",\r\n\t\"Ú\": \"U\",\r\n\t\"Û\": \"U\",\r\n\t\"Ü\": \"U\",\r\n\t\"Ý\": \"Y\",\r\n\t\"à\": \"a\",\r\n\t\"á\": \"a\",\r\n\t\"â\": \"a\",\r\n\t\"ã\": \"a\",\r\n\t\"ä\": \"a\",\r\n\t\"å\": \"a\",\r\n\t\"ấ\": \"a\",\r\n\t\"ắ\": \"a\",\r\n\t\"ẳ\": \"a\",\r\n\t\"ẵ\": \"a\",\r\n\t\"ặ\": \"a\",\r\n\t\"æ\": \"ae\",\r\n\t\"ầ\": \"a\",\r\n\t\"ằ\": \"a\",\r\n\t\"ȃ\": \"a\",\r\n\t\"ç\": \"c\",\r\n\t\"ḉ\": \"c\",\r\n\t\"è\": \"e\",\r\n\t\"é\": \"e\",\r\n\t\"ê\": \"e\",\r\n\t\"ë\": \"e\",\r\n\t\"ế\": \"e\",\r\n\t\"ḗ\": \"e\",\r\n\t\"ề\": \"e\",\r\n\t\"ḕ\": \"e\",\r\n\t\"ḝ\": \"e\",\r\n\t\"ȇ\": \"e\",\r\n\t\"ì\": \"i\",\r\n\t\"í\": \"i\",\r\n\t\"î\": \"i\",\r\n\t\"ï\": \"i\",\r\n\t\"ḯ\": \"i\",\r\n\t\"ȋ\": \"i\",\r\n\t\"ð\": \"d\",\r\n\t\"ñ\": \"n\",\r\n\t\"ò\": \"o\",\r\n\t\"ó\": \"o\",\r\n\t\"ô\": \"o\",\r\n\t\"õ\": \"o\",\r\n\t\"ö\": \"o\",\r\n\t\"ø\": \"o\",\r\n\t\"ố\": \"o\",\r\n\t\"ṍ\": \"o\",\r\n\t\"ṓ\": \"o\",\r\n\t\"ȏ\": \"o\",\r\n\t\"ù\": \"u\",\r\n\t\"ú\": \"u\",\r\n\t\"û\": \"u\",\r\n\t\"ü\": \"u\",\r\n\t\"ý\": \"y\",\r\n\t\"ÿ\": \"y\",\r\n\t\"Ā\": \"A\",\r\n\t\"ā\": \"a\",\r\n\t\"Ă\": \"A\",\r\n\t\"ă\": \"a\",\r\n\t\"Ą\": \"A\",\r\n\t\"ą\": \"a\",\r\n\t\"Ć\": \"C\",\r\n\t\"ć\": \"c\",\r\n\t\"Ĉ\": \"C\",\r\n\t\"ĉ\": \"c\",\r\n\t\"Ċ\": \"C\",\r\n\t\"ċ\": \"c\",\r\n\t\"Č\": \"C\",\r\n\t\"č\": \"c\",\r\n\t\"C̆\": \"C\",\r\n\t\"c̆\": \"c\",\r\n\t\"Ď\": \"D\",\r\n\t\"ď\": \"d\",\r\n\t\"Đ\": \"D\",\r\n\t\"đ\": \"d\",\r\n\t\"Ē\": \"E\",\r\n\t\"ē\": \"e\",\r\n\t\"Ĕ\": \"E\",\r\n\t\"ĕ\": \"e\",\r\n\t\"Ė\": \"E\",\r\n\t\"ė\": \"e\",\r\n\t\"Ę\": \"E\",\r\n\t\"ę\": \"e\",\r\n\t\"Ě\": \"E\",\r\n\t\"ě\": \"e\",\r\n\t\"Ĝ\": \"G\",\r\n\t\"Ǵ\": \"G\",\r\n\t\"ĝ\": \"g\",\r\n\t\"ǵ\": \"g\",\r\n\t\"Ğ\": \"G\",\r\n\t\"ğ\": \"g\",\r\n\t\"Ġ\": \"G\",\r\n\t\"ġ\": \"g\",\r\n\t\"Ģ\": \"G\",\r\n\t\"ģ\": \"g\",\r\n\t\"Ĥ\": \"H\",\r\n\t\"ĥ\": \"h\",\r\n\t\"Ħ\": \"H\",\r\n\t\"ħ\": \"h\",\r\n\t\"Ḫ\": \"H\",\r\n\t\"ḫ\": \"h\",\r\n\t\"Ĩ\": \"I\",\r\n\t\"ĩ\": \"i\",\r\n\t\"Ī\": \"I\",\r\n\t\"ī\": \"i\",\r\n\t\"Ĭ\": \"I\",\r\n\t\"ĭ\": \"i\",\r\n\t\"Į\": \"I\",\r\n\t\"į\": \"i\",\r\n\t\"İ\": \"I\",\r\n\t\"ı\": \"i\",\r\n\t\"IJ\": \"IJ\",\r\n\t\"ij\": \"ij\",\r\n\t\"Ĵ\": \"J\",\r\n\t\"ĵ\": \"j\",\r\n\t\"Ķ\": \"K\",\r\n\t\"ķ\": \"k\",\r\n\t\"Ḱ\": \"K\",\r\n\t\"ḱ\": \"k\",\r\n\t\"K̆\": \"K\",\r\n\t\"k̆\": \"k\",\r\n\t\"Ĺ\": \"L\",\r\n\t\"ĺ\": \"l\",\r\n\t\"Ļ\": \"L\",\r\n\t\"ļ\": \"l\",\r\n\t\"Ľ\": \"L\",\r\n\t\"ľ\": \"l\",\r\n\t\"Ŀ\": \"L\",\r\n\t\"ŀ\": \"l\",\r\n\t\"Ł\": \"l\",\r\n\t\"ł\": \"l\",\r\n\t\"Ḿ\": \"M\",\r\n\t\"ḿ\": \"m\",\r\n\t\"M̆\": \"M\",\r\n\t\"m̆\": \"m\",\r\n\t\"Ń\": \"N\",\r\n\t\"ń\": \"n\",\r\n\t\"Ņ\": \"N\",\r\n\t\"ņ\": \"n\",\r\n\t\"Ň\": \"N\",\r\n\t\"ň\": \"n\",\r\n\t\"ʼn\": \"n\",\r\n\t\"N̆\": \"N\",\r\n\t\"n̆\": \"n\",\r\n\t\"Ō\": \"O\",\r\n\t\"ō\": \"o\",\r\n\t\"Ŏ\": \"O\",\r\n\t\"ŏ\": \"o\",\r\n\t\"Ő\": \"O\",\r\n\t\"ő\": \"o\",\r\n\t\"Œ\": \"OE\",\r\n\t\"œ\": \"oe\",\r\n\t\"P̆\": \"P\",\r\n\t\"p̆\": \"p\",\r\n\t\"Ŕ\": \"R\",\r\n\t\"ŕ\": \"r\",\r\n\t\"Ŗ\": \"R\",\r\n\t\"ŗ\": \"r\",\r\n\t\"Ř\": \"R\",\r\n\t\"ř\": \"r\",\r\n\t\"R̆\": \"R\",\r\n\t\"r̆\": \"r\",\r\n\t\"Ȓ\": \"R\",\r\n\t\"ȓ\": \"r\",\r\n\t\"Ś\": \"S\",\r\n\t\"ś\": \"s\",\r\n\t\"Ŝ\": \"S\",\r\n\t\"ŝ\": \"s\",\r\n\t\"Ş\": \"S\",\r\n\t\"Ș\": \"S\",\r\n\t\"ș\": \"s\",\r\n\t\"ş\": \"s\",\r\n\t\"Š\": \"S\",\r\n\t\"š\": \"s\",\r\n\t\"Ţ\": \"T\",\r\n\t\"ţ\": \"t\",\r\n\t\"ț\": \"t\",\r\n\t\"Ț\": \"T\",\r\n\t\"Ť\": \"T\",\r\n\t\"ť\": \"t\",\r\n\t\"Ŧ\": \"T\",\r\n\t\"ŧ\": \"t\",\r\n\t\"T̆\": \"T\",\r\n\t\"t̆\": \"t\",\r\n\t\"Ũ\": \"U\",\r\n\t\"ũ\": \"u\",\r\n\t\"Ū\": \"U\",\r\n\t\"ū\": \"u\",\r\n\t\"Ŭ\": \"U\",\r\n\t\"ŭ\": \"u\",\r\n\t\"Ů\": \"U\",\r\n\t\"ů\": \"u\",\r\n\t\"Ű\": \"U\",\r\n\t\"ű\": \"u\",\r\n\t\"Ų\": \"U\",\r\n\t\"ų\": \"u\",\r\n\t\"Ȗ\": \"U\",\r\n\t\"ȗ\": \"u\",\r\n\t\"V̆\": \"V\",\r\n\t\"v̆\": \"v\",\r\n\t\"Ŵ\": \"W\",\r\n\t\"ŵ\": \"w\",\r\n\t\"Ẃ\": \"W\",\r\n\t\"ẃ\": \"w\",\r\n\t\"X̆\": \"X\",\r\n\t\"x̆\": \"x\",\r\n\t\"Ŷ\": \"Y\",\r\n\t\"ŷ\": \"y\",\r\n\t\"Ÿ\": \"Y\",\r\n\t\"Y̆\": \"Y\",\r\n\t\"y̆\": \"y\",\r\n\t\"Ź\": \"Z\",\r\n\t\"ź\": \"z\",\r\n\t\"Ż\": \"Z\",\r\n\t\"ż\": \"z\",\r\n\t\"Ž\": \"Z\",\r\n\t\"ž\": \"z\",\r\n\t\"ſ\": \"s\",\r\n\t\"ƒ\": \"f\",\r\n\t\"Ơ\": \"O\",\r\n\t\"ơ\": \"o\",\r\n\t\"Ư\": \"U\",\r\n\t\"ư\": \"u\",\r\n\t\"Ǎ\": \"A\",\r\n\t\"ǎ\": \"a\",\r\n\t\"Ǐ\": \"I\",\r\n\t\"ǐ\": \"i\",\r\n\t\"Ǒ\": \"O\",\r\n\t\"ǒ\": \"o\",\r\n\t\"Ǔ\": \"U\",\r\n\t\"ǔ\": \"u\",\r\n\t\"Ǖ\": \"U\",\r\n\t\"ǖ\": \"u\",\r\n\t\"Ǘ\": \"U\",\r\n\t\"ǘ\": \"u\",\r\n\t\"Ǚ\": \"U\",\r\n\t\"ǚ\": \"u\",\r\n\t\"Ǜ\": \"U\",\r\n\t\"ǜ\": \"u\",\r\n\t\"Ứ\": \"U\",\r\n\t\"ứ\": \"u\",\r\n\t\"Ṹ\": \"U\",\r\n\t\"ṹ\": \"u\",\r\n\t\"Ǻ\": \"A\",\r\n\t\"ǻ\": \"a\",\r\n\t\"Ǽ\": \"AE\",\r\n\t\"ǽ\": \"ae\",\r\n\t\"Ǿ\": \"O\",\r\n\t\"ǿ\": \"o\",\r\n\t\"Þ\": \"TH\",\r\n\t\"þ\": \"th\",\r\n\t\"Ṕ\": \"P\",\r\n\t\"ṕ\": \"p\",\r\n\t\"Ṥ\": \"S\",\r\n\t\"ṥ\": \"s\",\r\n\t\"X́\": \"X\",\r\n\t\"x́\": \"x\",\r\n\t\"Ѓ\": \"Г\",\r\n\t\"ѓ\": \"г\",\r\n\t\"Ќ\": \"К\",\r\n\t\"ќ\": \"к\",\r\n\t\"A̋\": \"A\",\r\n\t\"a̋\": \"a\",\r\n\t\"E̋\": \"E\",\r\n\t\"e̋\": \"e\",\r\n\t\"I̋\": \"I\",\r\n\t\"i̋\": \"i\",\r\n\t\"Ǹ\": \"N\",\r\n\t\"ǹ\": \"n\",\r\n\t\"Ồ\": \"O\",\r\n\t\"ồ\": \"o\",\r\n\t\"Ṑ\": \"O\",\r\n\t\"ṑ\": \"o\",\r\n\t\"Ừ\": \"U\",\r\n\t\"ừ\": \"u\",\r\n\t\"Ẁ\": \"W\",\r\n\t\"ẁ\": \"w\",\r\n\t\"Ỳ\": \"Y\",\r\n\t\"ỳ\": \"y\",\r\n\t\"Ȁ\": \"A\",\r\n\t\"ȁ\": \"a\",\r\n\t\"Ȅ\": \"E\",\r\n\t\"ȅ\": \"e\",\r\n\t\"Ȉ\": \"I\",\r\n\t\"ȉ\": \"i\",\r\n\t\"Ȍ\": \"O\",\r\n\t\"ȍ\": \"o\",\r\n\t\"Ȑ\": \"R\",\r\n\t\"ȑ\": \"r\",\r\n\t\"Ȕ\": \"U\",\r\n\t\"ȕ\": \"u\",\r\n\t\"B̌\": \"B\",\r\n\t\"b̌\": \"b\",\r\n\t\"Č̣\": \"C\",\r\n\t\"č̣\": \"c\",\r\n\t\"Ê̌\": \"E\",\r\n\t\"ê̌\": \"e\",\r\n\t\"F̌\": \"F\",\r\n\t\"f̌\": \"f\",\r\n\t\"Ǧ\": \"G\",\r\n\t\"ǧ\": \"g\",\r\n\t\"Ȟ\": \"H\",\r\n\t\"ȟ\": \"h\",\r\n\t\"J̌\": \"J\",\r\n\t\"ǰ\": \"j\",\r\n\t\"Ǩ\": \"K\",\r\n\t\"ǩ\": \"k\",\r\n\t\"M̌\": \"M\",\r\n\t\"m̌\": \"m\",\r\n\t\"P̌\": \"P\",\r\n\t\"p̌\": \"p\",\r\n\t\"Q̌\": \"Q\",\r\n\t\"q̌\": \"q\",\r\n\t\"Ř̩\": \"R\",\r\n\t\"ř̩\": \"r\",\r\n\t\"Ṧ\": \"S\",\r\n\t\"ṧ\": \"s\",\r\n\t\"V̌\": \"V\",\r\n\t\"v̌\": \"v\",\r\n\t\"W̌\": \"W\",\r\n\t\"w̌\": \"w\",\r\n\t\"X̌\": \"X\",\r\n\t\"x̌\": \"x\",\r\n\t\"Y̌\": \"Y\",\r\n\t\"y̌\": \"y\",\r\n\t\"A̧\": \"A\",\r\n\t\"a̧\": \"a\",\r\n\t\"B̧\": \"B\",\r\n\t\"b̧\": \"b\",\r\n\t\"Ḑ\": \"D\",\r\n\t\"ḑ\": \"d\",\r\n\t\"Ȩ\": \"E\",\r\n\t\"ȩ\": \"e\",\r\n\t\"Ɛ̧\": \"E\",\r\n\t\"ɛ̧\": \"e\",\r\n\t\"Ḩ\": \"H\",\r\n\t\"ḩ\": \"h\",\r\n\t\"I̧\": \"I\",\r\n\t\"i̧\": \"i\",\r\n\t\"Ɨ̧\": \"I\",\r\n\t\"ɨ̧\": \"i\",\r\n\t\"M̧\": \"M\",\r\n\t\"m̧\": \"m\",\r\n\t\"O̧\": \"O\",\r\n\t\"o̧\": \"o\",\r\n\t\"Q̧\": \"Q\",\r\n\t\"q̧\": \"q\",\r\n\t\"U̧\": \"U\",\r\n\t\"u̧\": \"u\",\r\n\t\"X̧\": \"X\",\r\n\t\"x̧\": \"x\",\r\n\t\"Z̧\": \"Z\",\r\n\t\"z̧\": \"z\",\r\n};\r\n\r\nvar chars = Object.keys(characterMap).join('|');\r\nvar allAccents = new RegExp(chars, 'g');\r\nvar firstAccent = new RegExp(chars, '');\r\n\r\nvar removeAccents = function(string) {\t\r\n\treturn string.replace(allAccents, function(match) {\r\n\t\treturn characterMap[match];\r\n\t});\r\n};\r\n\r\nvar hasAccents = function(string) {\r\n\treturn !!string.match(firstAccent);\r\n};\r\n\r\nmodule.exports = removeAccents;\r\nmodule.exports.has = hasAccents;\r\nmodule.exports.remove = removeAccents;\r\n","module.exports = window[\"React\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"element\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"lodash\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blocks\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"data\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"coreData\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"compose\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"hooks\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blockEditor\"];","/**\n * WordPress dependencies\n */\nimport { SETTINGS_DEFAULTS } from '@wordpress/block-editor';\n\n/**\n * The default post editor settings.\n *\n * @property {boolean|Array} allowedBlockTypes     Allowed block types\n * @property {boolean}       richEditingEnabled    Whether rich editing is enabled or not\n * @property {boolean}       codeEditingEnabled    Whether code editing is enabled or not\n * @property {boolean}       enableCustomFields    Whether the WordPress custom fields are enabled or not.\n *                                                 true  = the user has opted to show the Custom Fields panel at the bottom of the editor.\n *                                                 false = the user has opted to hide the Custom Fields panel at the bottom of the editor.\n *                                                 undefined = the current environment does not support Custom Fields, so the option toggle in Preferences -> Panels to enable the Custom Fields panel is not displayed.\n * @property {number}        autosaveInterval      How often in seconds the post will be auto-saved via the REST API.\n * @property {number}        localAutosaveInterval How often in seconds the post will be backed up to sessionStorage.\n * @property {Array?}        availableTemplates    The available post templates\n * @property {boolean}       disablePostFormats    Whether or not the post formats are disabled\n * @property {Array?}        allowedMimeTypes      List of allowed mime types and file extensions\n * @property {number}        maxUploadFileSize     Maximum upload file size\n * @property {boolean}       supportsLayout        Whether the editor supports layouts.\n */\nexport const EDITOR_SETTINGS_DEFAULTS = {\n\t...SETTINGS_DEFAULTS,\n\n\trichEditingEnabled: true,\n\tcodeEditingEnabled: true,\n\tenableCustomFields: undefined,\n\tsupportsLayout: true,\n};\n","/**\n * WordPress dependencies\n */\nimport { combineReducers } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { EDITOR_SETTINGS_DEFAULTS } from './defaults';\n\n/**\n * Returns a post attribute value, flattening nested rendered content using its\n * raw value in place of its original object form.\n *\n * @param {*} value Original value.\n *\n * @return {*} Raw value.\n */\nexport function getPostRawValue( value ) {\n\tif ( value && 'object' === typeof value && 'raw' in value ) {\n\t\treturn value.raw;\n\t}\n\n\treturn value;\n}\n\n/**\n * Returns true if the two object arguments have the same keys, or false\n * otherwise.\n *\n * @param {Object} a First object.\n * @param {Object} b Second object.\n *\n * @return {boolean} Whether the two objects have the same keys.\n */\nexport function hasSameKeys( a, b ) {\n\tconst keysA = Object.keys( a ).sort();\n\tconst keysB = Object.keys( b ).sort();\n\treturn (\n\t\tkeysA.length === keysB.length &&\n\t\tkeysA.every( ( key, index ) => keysB[ index ] === key )\n\t);\n}\n\n/**\n * Returns true if, given the currently dispatching action and the previously\n * dispatched action, the two actions are editing the same post property, or\n * false otherwise.\n *\n * @param {Object} action         Currently dispatching action.\n * @param {Object} previousAction Previously dispatched action.\n *\n * @return {boolean} Whether actions are updating the same post property.\n */\nexport function isUpdatingSamePostProperty( action, previousAction ) {\n\treturn (\n\t\taction.type === 'EDIT_POST' &&\n\t\thasSameKeys( action.edits, previousAction.edits )\n\t);\n}\n\n/**\n * Returns true if, given the currently dispatching action and the previously\n * dispatched action, the two actions are modifying the same property such that\n * undo history should be batched.\n *\n * @param {Object} action         Currently dispatching action.\n * @param {Object} previousAction Previously dispatched action.\n *\n * @return {boolean} Whether to overwrite present state.\n */\nexport function shouldOverwriteState( action, previousAction ) {\n\tif ( action.type === 'RESET_EDITOR_BLOCKS' ) {\n\t\treturn ! action.shouldCreateUndoLevel;\n\t}\n\n\tif ( ! previousAction || action.type !== previousAction.type ) {\n\t\treturn false;\n\t}\n\n\treturn isUpdatingSamePostProperty( action, previousAction );\n}\n\nexport function postId( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SETUP_EDITOR_STATE':\n\t\t\treturn action.post.id;\n\t}\n\n\treturn state;\n}\n\nexport function postType( state = null, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SETUP_EDITOR_STATE':\n\t\t\treturn action.post.type;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning whether the post blocks match the defined template or not.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {boolean} Updated state.\n */\nexport function template( state = { isValid: true }, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SET_TEMPLATE_VALIDITY':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisValid: action.isValid,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning current network request state (whether a request to\n * the WP REST API is in progress, successful, or failed).\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function saving( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REQUEST_POST_UPDATE_START':\n\t\tcase 'REQUEST_POST_UPDATE_FINISH':\n\t\t\treturn {\n\t\t\t\tpending: action.type === 'REQUEST_POST_UPDATE_START',\n\t\t\t\toptions: action.options || {},\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning deleting post request state.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function deleting( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'REQUEST_POST_DELETE_START':\n\t\tcase 'REQUEST_POST_DELETE_FINISH':\n\t\t\treturn {\n\t\t\t\tpending: action.type === 'REQUEST_POST_DELETE_START',\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\n/**\n * Post Lock State.\n *\n * @typedef {Object} PostLockState\n *\n * @property {boolean}  isLocked       Whether the post is locked.\n * @property {?boolean} isTakeover     Whether the post editing has been taken over.\n * @property {?boolean} activePostLock Active post lock value.\n * @property {?Object}  user           User that took over the post.\n */\n\n/**\n * Reducer returning the post lock status.\n *\n * @param {PostLockState} state  Current state.\n * @param {Object}        action Dispatched action.\n *\n * @return {PostLockState} Updated state.\n */\nexport function postLock( state = { isLocked: false }, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_POST_LOCK':\n\t\t\treturn action.lock;\n\t}\n\n\treturn state;\n}\n\n/**\n * Post saving lock.\n *\n * When post saving is locked, the post cannot be published or updated.\n *\n * @param {PostLockState} state  Current state.\n * @param {Object}        action Dispatched action.\n *\n * @return {PostLockState} Updated state.\n */\nexport function postSavingLock( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'LOCK_POST_SAVING':\n\t\t\treturn { ...state, [ action.lockName ]: true };\n\n\t\tcase 'UNLOCK_POST_SAVING': {\n\t\t\tconst { [ action.lockName ]: removedLockName, ...restState } =\n\t\t\t\tstate;\n\t\t\treturn restState;\n\t\t}\n\t}\n\treturn state;\n}\n\n/**\n * Post autosaving lock.\n *\n * When post autosaving is locked, the post will not autosave.\n *\n * @param {PostLockState} state  Current state.\n * @param {Object}        action Dispatched action.\n *\n * @return {PostLockState} Updated state.\n */\nexport function postAutosavingLock( state = {}, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'LOCK_POST_AUTOSAVING':\n\t\t\treturn { ...state, [ action.lockName ]: true };\n\n\t\tcase 'UNLOCK_POST_AUTOSAVING': {\n\t\t\tconst { [ action.lockName ]: removedLockName, ...restState } =\n\t\t\t\tstate;\n\t\t\treturn restState;\n\t\t}\n\t}\n\treturn state;\n}\n\n/**\n * Reducer returning whether the editor is ready to be rendered.\n * The editor is considered ready to be rendered once\n * the post object is loaded properly and the initial blocks parsed.\n *\n * @param {boolean} state\n * @param {Object}  action\n *\n * @return {boolean} Updated state.\n */\nexport function isReady( state = false, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'SETUP_EDITOR_STATE':\n\t\t\treturn true;\n\n\t\tcase 'TEAR_DOWN_EDITOR':\n\t\t\treturn false;\n\t}\n\n\treturn state;\n}\n\n/**\n * Reducer returning the post editor setting.\n *\n * @param {Object} state  Current state.\n * @param {Object} action Dispatched action.\n *\n * @return {Object} Updated state.\n */\nexport function editorSettings( state = EDITOR_SETTINGS_DEFAULTS, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'UPDATE_EDITOR_SETTINGS':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\t...action.settings,\n\t\t\t};\n\t}\n\n\treturn state;\n}\n\nexport default combineReducers( {\n\tpostId,\n\tpostType,\n\tsaving,\n\tdeleting,\n\tpostLock,\n\ttemplate,\n\tpostSavingLock,\n\tisReady,\n\teditorSettings,\n\tpostAutosavingLock,\n} );\n","'use strict';\n\n/** @typedef {(...args: any[]) => *[]} GetDependants */\n\n/** @typedef {() => void} Clear */\n\n/**\n * @typedef {{\n *   getDependants: GetDependants,\n *   clear: Clear\n * }} EnhancedSelector\n */\n\n/**\n * Internal cache entry.\n *\n * @typedef CacheNode\n *\n * @property {?CacheNode|undefined} [prev] Previous node.\n * @property {?CacheNode|undefined} [next] Next node.\n * @property {*[]} args Function arguments for cache entry.\n * @property {*} val Function result.\n */\n\n/**\n * @typedef Cache\n *\n * @property {Clear} clear Function to clear cache.\n * @property {boolean} [isUniqueByDependants] Whether dependants are valid in\n * considering cache uniqueness. A cache is unique if dependents are all arrays\n * or objects.\n * @property {CacheNode?} [head] Cache head.\n * @property {*[]} [lastDependants] Dependants from previous invocation.\n */\n\n/**\n * Arbitrary value used as key for referencing cache object in WeakMap tree.\n *\n * @type {{}}\n */\nvar LEAF_KEY = {};\n\n/**\n * Returns the first argument as the sole entry in an array.\n *\n * @template T\n *\n * @param {T} value Value to return.\n *\n * @return {[T]} Value returned as entry in array.\n */\nfunction arrayOf(value) {\n\treturn [value];\n}\n\n/**\n * Returns true if the value passed is object-like, or false otherwise. A value\n * is object-like if it can support property assignment, e.g. object or array.\n *\n * @param {*} value Value to test.\n *\n * @return {boolean} Whether value is object-like.\n */\nfunction isObjectLike(value) {\n\treturn !!value && 'object' === typeof value;\n}\n\n/**\n * Creates and returns a new cache object.\n *\n * @return {Cache} Cache object.\n */\nfunction createCache() {\n\t/** @type {Cache} */\n\tvar cache = {\n\t\tclear: function () {\n\t\t\tcache.head = null;\n\t\t},\n\t};\n\n\treturn cache;\n}\n\n/**\n * Returns true if entries within the two arrays are strictly equal by\n * reference from a starting index.\n *\n * @param {*[]} a First array.\n * @param {*[]} b Second array.\n * @param {number} fromIndex Index from which to start comparison.\n *\n * @return {boolean} Whether arrays are shallowly equal.\n */\nfunction isShallowEqual(a, b, fromIndex) {\n\tvar i;\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\tfor (i = fromIndex; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n\n/**\n * Returns a memoized selector function. The getDependants function argument is\n * called before the memoized selector and is expected to return an immutable\n * reference or array of references on which the selector depends for computing\n * its own return value. The memoize cache is preserved only as long as those\n * dependant references remain the same. If getDependants returns a different\n * reference(s), the cache is cleared and the selector value regenerated.\n *\n * @template {(...args: *[]) => *} S\n *\n * @param {S} selector Selector function.\n * @param {GetDependants=} getDependants Dependant getter returning an array of\n * references used in cache bust consideration.\n */\nexport default function (selector, getDependants) {\n\t/** @type {WeakMap<*,*>} */\n\tvar rootCache;\n\n\t/** @type {GetDependants} */\n\tvar normalizedGetDependants = getDependants ? getDependants : arrayOf;\n\n\t/**\n\t * Returns the cache for a given dependants array. When possible, a WeakMap\n\t * will be used to create a unique cache for each set of dependants. This\n\t * is feasible due to the nature of WeakMap in allowing garbage collection\n\t * to occur on entries where the key object is no longer referenced. Since\n\t * WeakMap requires the key to be an object, this is only possible when the\n\t * dependant is object-like. The root cache is created as a hierarchy where\n\t * each top-level key is the first entry in a dependants set, the value a\n\t * WeakMap where each key is the next dependant, and so on. This continues\n\t * so long as the dependants are object-like. If no dependants are object-\n\t * like, then the cache is shared across all invocations.\n\t *\n\t * @see isObjectLike\n\t *\n\t * @param {*[]} dependants Selector dependants.\n\t *\n\t * @return {Cache} Cache object.\n\t */\n\tfunction getCache(dependants) {\n\t\tvar caches = rootCache,\n\t\t\tisUniqueByDependants = true,\n\t\t\ti,\n\t\t\tdependant,\n\t\t\tmap,\n\t\t\tcache;\n\n\t\tfor (i = 0; i < dependants.length; i++) {\n\t\t\tdependant = dependants[i];\n\n\t\t\t// Can only compose WeakMap from object-like key.\n\t\t\tif (!isObjectLike(dependant)) {\n\t\t\t\tisUniqueByDependants = false;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Does current segment of cache already have a WeakMap?\n\t\t\tif (caches.has(dependant)) {\n\t\t\t\t// Traverse into nested WeakMap.\n\t\t\t\tcaches = caches.get(dependant);\n\t\t\t} else {\n\t\t\t\t// Create, set, and traverse into a new one.\n\t\t\t\tmap = new WeakMap();\n\t\t\t\tcaches.set(dependant, map);\n\t\t\t\tcaches = map;\n\t\t\t}\n\t\t}\n\n\t\t// We use an arbitrary (but consistent) object as key for the last item\n\t\t// in the WeakMap to serve as our running cache.\n\t\tif (!caches.has(LEAF_KEY)) {\n\t\t\tcache = createCache();\n\t\t\tcache.isUniqueByDependants = isUniqueByDependants;\n\t\t\tcaches.set(LEAF_KEY, cache);\n\t\t}\n\n\t\treturn caches.get(LEAF_KEY);\n\t}\n\n\t/**\n\t * Resets root memoization cache.\n\t */\n\tfunction clear() {\n\t\trootCache = new WeakMap();\n\t}\n\n\t/* eslint-disable jsdoc/check-param-names */\n\t/**\n\t * The augmented selector call, considering first whether dependants have\n\t * changed before passing it to underlying memoize function.\n\t *\n\t * @param {*}    source    Source object for derivation.\n\t * @param {...*} extraArgs Additional arguments to pass to selector.\n\t *\n\t * @return {*} Selector result.\n\t */\n\t/* eslint-enable jsdoc/check-param-names */\n\tfunction callSelector(/* source, ...extraArgs */) {\n\t\tvar len = arguments.length,\n\t\t\tcache,\n\t\t\tnode,\n\t\t\ti,\n\t\t\targs,\n\t\t\tdependants;\n\n\t\t// Create copy of arguments (avoid leaking deoptimization).\n\t\targs = new Array(len);\n\t\tfor (i = 0; i < len; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\n\t\tdependants = normalizedGetDependants.apply(null, args);\n\t\tcache = getCache(dependants);\n\n\t\t// If not guaranteed uniqueness by dependants (primitive type), shallow\n\t\t// compare against last dependants and, if references have changed,\n\t\t// destroy cache to recalculate result.\n\t\tif (!cache.isUniqueByDependants) {\n\t\t\tif (\n\t\t\t\tcache.lastDependants &&\n\t\t\t\t!isShallowEqual(dependants, cache.lastDependants, 0)\n\t\t\t) {\n\t\t\t\tcache.clear();\n\t\t\t}\n\n\t\t\tcache.lastDependants = dependants;\n\t\t}\n\n\t\tnode = cache.head;\n\t\twhile (node) {\n\t\t\t// Check whether node arguments match arguments\n\t\t\tif (!isShallowEqual(node.args, args, 1)) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif (node !== cache.head) {\n\t\t\t\t// Adjust siblings to point to each other.\n\t\t\t\t/** @type {CacheNode} */ (node.prev).next = node.next;\n\t\t\t\tif (node.next) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = cache.head;\n\t\t\t\tnode.prev = null;\n\t\t\t\t/** @type {CacheNode} */ (cache.head).prev = node;\n\t\t\t\tcache.head = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\tnode = /** @type {CacheNode} */ ({\n\t\t\t// Generate the result from original function\n\t\t\tval: selector.apply(null, args),\n\t\t});\n\n\t\t// Avoid including the source object in the cache.\n\t\targs[0] = null;\n\t\tnode.args = args;\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif (cache.head) {\n\t\t\tcache.head.prev = node;\n\t\t\tnode.next = cache.head;\n\t\t}\n\n\t\tcache.head = node;\n\n\t\treturn node.val;\n\t}\n\n\tcallSelector.getDependants = normalizedGetDependants;\n\tcallSelector.clear = clear;\n\tclear();\n\n\treturn /** @type {S & EnhancedSelector} */ (callSelector);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"date\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"url\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"deprecated\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"primitives\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst layout = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\" />\n\t</SVG>\n);\n\nexport default layout;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"preferences\"];","/**\n * Set of post properties for which edits should assume a merging behavior,\n * assuming an object value.\n *\n * @type {Set}\n */\nexport const EDIT_MERGE_PROPERTIES = new Set( [ 'meta' ] );\n\n/**\n * Constant for the store module (or reducer) key.\n *\n * @type {string}\n */\nexport const STORE_NAME = 'core/editor';\n\nexport const SAVE_POST_NOTICE_ID = 'SAVE_POST_NOTICE_ID';\nexport const TRASH_POST_NOTICE_ID = 'TRASH_POST_NOTICE_ID';\nexport const PERMALINK_POSTNAME_REGEX = /%(?:postname|pagename)%/;\nexport const ONE_MINUTE_IN_MS = 60 * 1000;\nexport const AUTOSAVE_PROPERTIES = [ 'title', 'excerpt', 'content' ];\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst header = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18.5 10.5H10v8h8a.5.5 0 00.5-.5v-7.5zm-10 0h-3V18a.5.5 0 00.5.5h2.5v-8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\" />\n\t</SVG>\n);\n\nexport default header;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst footer = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path\n\t\t\tfillRule=\"evenodd\"\n\t\t\td=\"M18 5.5h-8v8h8.5V6a.5.5 0 00-.5-.5zm-9.5 8h-3V6a.5.5 0 01.5-.5h2.5v8zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\"\n\t\t/>\n\t</SVG>\n);\n\nexport default footer;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst sidebar = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18 5.5H6a.5.5 0 00-.5.5v3h13V6a.5.5 0 00-.5-.5zm.5 5H10v8h8a.5.5 0 00.5-.5v-7.5zM6 4h12a2 2 0 012 2v12a2 2 0 01-2 2H6a2 2 0 01-2-2V6a2 2 0 012-2z\" />\n\t</SVG>\n);\n\nexport default sidebar;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst symbolFilled = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M21.3 10.8l-5.6-5.6c-.7-.7-1.8-.7-2.5 0l-5.6 5.6c-.7.7-.7 1.8 0 2.5l5.6 5.6c.3.3.8.5 1.2.5s.9-.2 1.2-.5l5.6-5.6c.8-.7.8-1.9.1-2.5zm-17.6 1L10 5.5l-1-1-6.3 6.3c-.7.7-.7 1.8 0 2.5L9 19.5l1.1-1.1-6.3-6.3c-.2 0-.2-.2-.1-.3z\" />\n\t</SVG>\n);\n\nexport default symbolFilled;\n","/**\n * WordPress dependencies\n */\nimport {\n\theader as headerIcon,\n\tfooter as footerIcon,\n\tsidebar as sidebarIcon,\n\tsymbolFilled as symbolFilledIcon,\n} from '@wordpress/icons';\n/**\n * Helper function to retrieve the corresponding icon by name.\n *\n * @param {string} iconName The name of the icon.\n *\n * @return {Object} The corresponding icon.\n */\nexport function getTemplatePartIcon( iconName ) {\n\tif ( 'header' === iconName ) {\n\t\treturn headerIcon;\n\t} else if ( 'footer' === iconName ) {\n\t\treturn footerIcon;\n\t} else if ( 'sidebar' === iconName ) {\n\t\treturn sidebarIcon;\n\t}\n\treturn symbolFilledIcon;\n}\n","/**\n * External dependencies\n */\nimport createSelector from 'rememo';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetFreeformContentHandlerName,\n\tgetDefaultBlockName,\n\t__unstableSerializeAndClean,\n} from '@wordpress/blocks';\nimport { isInTheFuture, getDate } from '@wordpress/date';\nimport { addQueryArgs, cleanForSlug } from '@wordpress/url';\nimport { createRegistrySelector } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { Platform } from '@wordpress/element';\nimport { layout } from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport {\n\tEDIT_MERGE_PROPERTIES,\n\tPERMALINK_POSTNAME_REGEX,\n\tONE_MINUTE_IN_MS,\n\tAUTOSAVE_PROPERTIES,\n} from './constants';\nimport { getPostRawValue } from './reducer';\nimport { getTemplatePartIcon } from '../utils/get-template-part-icon';\n\n/**\n * Shared reference to an empty object for cases where it is important to avoid\n * returning a new object reference on every invocation, as in a connected or\n * other pure component which performs `shouldComponentUpdate` check on props.\n * This should be used as a last resort, since the normalized data should be\n * maintained by the reducer result in state.\n */\nconst EMPTY_OBJECT = {};\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, as in a connected or\n * other pure component which performs `shouldComponentUpdate` check on props.\n * This should be used as a last resort, since the normalized data should be\n * maintained by the reducer result in state.\n */\nconst EMPTY_ARRAY = [];\n\n/**\n * Returns true if any past editor history snapshots exist, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether undo history exists.\n */\nexport const hasEditorUndo = createRegistrySelector( ( select ) => () => {\n\treturn select( coreStore ).hasUndo();\n} );\n\n/**\n * Returns true if any future editor history snapshots exist, or false\n * otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether redo history exists.\n */\nexport const hasEditorRedo = createRegistrySelector( ( select ) => () => {\n\treturn select( coreStore ).hasRedo();\n} );\n\n/**\n * Returns true if the currently edited post is yet to be saved, or false if\n * the post has been saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post is new.\n */\nexport function isEditedPostNew( state ) {\n\treturn getCurrentPost( state ).status === 'auto-draft';\n}\n\n/**\n * Returns true if content includes unsaved changes, or false otherwise.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether content includes unsaved changes.\n */\nexport function hasChangedContent( state ) {\n\tconst edits = getPostEdits( state );\n\n\treturn (\n\t\t'blocks' in edits ||\n\t\t// `edits` is intended to contain only values which are different from\n\t\t// the saved post, so the mere presence of a property is an indicator\n\t\t// that the value is different than what is known to be saved. While\n\t\t// content in Visual mode is represented by the blocks state, in Text\n\t\t// mode it is tracked by `edits.content`.\n\t\t'content' in edits\n\t);\n}\n\n/**\n * Returns true if there are unsaved values for the current edit session, or\n * false if the editing state matches the saved or new post.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether unsaved values exist.\n */\nexport const isEditedPostDirty = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\t// Edits should contain only fields which differ from the saved post (reset\n\t\t// at initial load and save complete). Thus, a non-empty edits state can be\n\t\t// inferred to contain unsaved values.\n\t\tconst postType = getCurrentPostType( state );\n\t\tconst postId = getCurrentPostId( state );\n\t\tif (\n\t\t\tselect( coreStore ).hasEditsForEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpostType,\n\t\t\t\tpostId\n\t\t\t)\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n);\n\n/**\n * Returns true if there are unsaved edits for entities other than\n * the editor's post, and false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether there are edits or not.\n */\nexport const hasNonPostEntityChanges = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst dirtyEntityRecords =\n\t\t\tselect( coreStore ).__experimentalGetDirtyEntityRecords();\n\t\tconst { type, id } = getCurrentPost( state );\n\t\treturn dirtyEntityRecords.some(\n\t\t\t( entityRecord ) =>\n\t\t\t\tentityRecord.kind !== 'postType' ||\n\t\t\t\tentityRecord.name !== type ||\n\t\t\t\tentityRecord.key !== id\n\t\t);\n\t}\n);\n\n/**\n * Returns true if there are no unsaved values for the current edit session and\n * if the currently edited post is new (has never been saved before).\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether new post and unsaved values exist.\n */\nexport function isCleanNewPost( state ) {\n\treturn ! isEditedPostDirty( state ) && isEditedPostNew( state );\n}\n\n/**\n * Returns the post currently being edited in its last known saved state, not\n * including unsaved edits. Returns an object containing relevant default post\n * values if the post has not yet been saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Post object.\n */\nexport const getCurrentPost = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst postId = getCurrentPostId( state );\n\t\tconst postType = getCurrentPostType( state );\n\n\t\tconst post = select( coreStore ).getRawEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId\n\t\t);\n\t\tif ( post ) {\n\t\t\treturn post;\n\t\t}\n\n\t\t// This exists for compatibility with the previous selector behavior\n\t\t// which would guarantee an object return based on the editor reducer's\n\t\t// default empty object state.\n\t\treturn EMPTY_OBJECT;\n\t}\n);\n\n/**\n * Returns the post type of the post currently being edited.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Post type.\n */\nexport function getCurrentPostType( state ) {\n\treturn state.postType;\n}\n\n/**\n * Returns the ID of the post currently being edited, or null if the post has\n * not yet been saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {?number} ID of current post.\n */\nexport function getCurrentPostId( state ) {\n\treturn state.postId;\n}\n\n/**\n * Returns the number of revisions of the post currently being edited.\n *\n * @param {Object} state Global application state.\n *\n * @return {number} Number of revisions.\n */\nexport function getCurrentPostRevisionsCount( state ) {\n\treturn (\n\t\tgetCurrentPost( state )._links?.[ 'version-history' ]?.[ 0 ]?.count ?? 0\n\t);\n}\n\n/**\n * Returns the last revision ID of the post currently being edited,\n * or null if the post has no revisions.\n *\n * @param {Object} state Global application state.\n *\n * @return {?number} ID of the last revision.\n */\nexport function getCurrentPostLastRevisionId( state ) {\n\treturn (\n\t\tgetCurrentPost( state )._links?.[ 'predecessor-version' ]?.[ 0 ]?.id ??\n\t\tnull\n\t);\n}\n\n/**\n * Returns any post values which have been changed in the editor but not yet\n * been saved.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} Object of key value pairs comprising unsaved edits.\n */\nexport const getPostEdits = createRegistrySelector( ( select ) => ( state ) => {\n\tconst postType = getCurrentPostType( state );\n\tconst postId = getCurrentPostId( state );\n\treturn (\n\t\tselect( coreStore ).getEntityRecordEdits(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId\n\t\t) || EMPTY_OBJECT\n\t);\n} );\n\n/**\n * Returns an attribute value of the saved post.\n *\n * @param {Object} state         Global application state.\n * @param {string} attributeName Post attribute name.\n *\n * @return {*} Post attribute value.\n */\nexport function getCurrentPostAttribute( state, attributeName ) {\n\tswitch ( attributeName ) {\n\t\tcase 'type':\n\t\t\treturn getCurrentPostType( state );\n\n\t\tcase 'id':\n\t\t\treturn getCurrentPostId( state );\n\n\t\tdefault:\n\t\t\tconst post = getCurrentPost( state );\n\t\t\tif ( ! post.hasOwnProperty( attributeName ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn getPostRawValue( post[ attributeName ] );\n\t}\n}\n\n/**\n * Returns a single attribute of the post being edited, preferring the unsaved\n * edit if one exists, but merging with the attribute value for the last known\n * saved state of the post (this is needed for some nested attributes like meta).\n *\n * @param {Object} state         Global application state.\n * @param {string} attributeName Post attribute name.\n *\n * @return {*} Post attribute value.\n */\nconst getNestedEditedPostProperty = ( state, attributeName ) => {\n\tconst edits = getPostEdits( state );\n\tif ( ! edits.hasOwnProperty( attributeName ) ) {\n\t\treturn getCurrentPostAttribute( state, attributeName );\n\t}\n\n\treturn {\n\t\t...getCurrentPostAttribute( state, attributeName ),\n\t\t...edits[ attributeName ],\n\t};\n};\n\n/**\n * Returns a single attribute of the post being edited, preferring the unsaved\n * edit if one exists, but falling back to the attribute for the last known\n * saved state of the post.\n *\n * @param {Object} state         Global application state.\n * @param {string} attributeName Post attribute name.\n *\n * @return {*} Post attribute value.\n */\nexport function getEditedPostAttribute( state, attributeName ) {\n\t// Special cases.\n\tswitch ( attributeName ) {\n\t\tcase 'content':\n\t\t\treturn getEditedPostContent( state );\n\t}\n\n\t// Fall back to saved post value if not edited.\n\tconst edits = getPostEdits( state );\n\tif ( ! edits.hasOwnProperty( attributeName ) ) {\n\t\treturn getCurrentPostAttribute( state, attributeName );\n\t}\n\n\t// Merge properties are objects which contain only the patch edit in state,\n\t// and thus must be merged with the current post attribute.\n\tif ( EDIT_MERGE_PROPERTIES.has( attributeName ) ) {\n\t\treturn getNestedEditedPostProperty( state, attributeName );\n\t}\n\n\treturn edits[ attributeName ];\n}\n\n/**\n * Returns an attribute value of the current autosave revision for a post, or\n * null if there is no autosave for the post.\n *\n * @deprecated since 5.6. Callers should use the `getAutosave( postType, postId, userId )` selector\n * \t\t\t   from the '@wordpress/core-data' package and access properties on the returned\n * \t\t\t   autosave object using getPostRawValue.\n *\n * @param {Object} state         Global application state.\n * @param {string} attributeName Autosave attribute name.\n *\n * @return {*} Autosave attribute value.\n */\nexport const getAutosaveAttribute = createRegistrySelector(\n\t( select ) => ( state, attributeName ) => {\n\t\tif (\n\t\t\t! AUTOSAVE_PROPERTIES.includes( attributeName ) &&\n\t\t\tattributeName !== 'preview_link'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst postType = getCurrentPostType( state );\n\t\tconst postId = getCurrentPostId( state );\n\t\tconst currentUserId = select( coreStore ).getCurrentUser()?.id;\n\t\tconst autosave = select( coreStore ).getAutosave(\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t\tcurrentUserId\n\t\t);\n\n\t\tif ( autosave ) {\n\t\t\treturn getPostRawValue( autosave[ attributeName ] );\n\t\t}\n\t}\n);\n\n/**\n * Returns the current visibility of the post being edited, preferring the\n * unsaved value if different than the saved post. The return value is one of\n * \"private\", \"password\", or \"public\".\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Post visibility.\n */\nexport function getEditedPostVisibility( state ) {\n\tconst status = getEditedPostAttribute( state, 'status' );\n\tif ( status === 'private' ) {\n\t\treturn 'private';\n\t}\n\n\tconst password = getEditedPostAttribute( state, 'password' );\n\tif ( password ) {\n\t\treturn 'password';\n\t}\n\n\treturn 'public';\n}\n\n/**\n * Returns true if post is pending review.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether current post is pending review.\n */\nexport function isCurrentPostPending( state ) {\n\treturn getCurrentPost( state ).status === 'pending';\n}\n\n/**\n * Return true if the current post has already been published.\n *\n * @param {Object}  state       Global application state.\n * @param {Object?} currentPost Explicit current post for bypassing registry selector.\n *\n * @return {boolean} Whether the post has been published.\n */\nexport function isCurrentPostPublished( state, currentPost ) {\n\tconst post = currentPost || getCurrentPost( state );\n\n\treturn (\n\t\t[ 'publish', 'private' ].indexOf( post.status ) !== -1 ||\n\t\t( post.status === 'future' &&\n\t\t\t! isInTheFuture(\n\t\t\t\tnew Date( Number( getDate( post.date ) ) - ONE_MINUTE_IN_MS )\n\t\t\t) )\n\t);\n}\n\n/**\n * Returns true if post is already scheduled.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether current post is scheduled to be posted.\n */\nexport function isCurrentPostScheduled( state ) {\n\treturn (\n\t\tgetCurrentPost( state ).status === 'future' &&\n\t\t! isCurrentPostPublished( state )\n\t);\n}\n\n/**\n * Return true if the post being edited can be published.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post can been published.\n */\nexport function isEditedPostPublishable( state ) {\n\tconst post = getCurrentPost( state );\n\n\t// TODO: Post being publishable should be superset of condition of post\n\t// being saveable. Currently this restriction is imposed at UI.\n\t//\n\t//  See: <PostPublishButton /> (`isButtonEnabled` assigned by `isSaveable`).\n\n\treturn (\n\t\tisEditedPostDirty( state ) ||\n\t\t[ 'publish', 'private', 'future' ].indexOf( post.status ) === -1\n\t);\n}\n\n/**\n * Returns true if the post can be saved, or false otherwise. A post must\n * contain a title, an excerpt, or non-empty content to be valid for save.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post can be saved.\n */\nexport function isEditedPostSaveable( state ) {\n\tif ( isSavingPost( state ) ) {\n\t\treturn false;\n\t}\n\n\t// TODO: Post should not be saveable if not dirty. Cannot be added here at\n\t// this time since posts where meta boxes are present can be saved even if\n\t// the post is not dirty. Currently this restriction is imposed at UI, but\n\t// should be moved here.\n\t//\n\t//  See: `isEditedPostPublishable` (includes `isEditedPostDirty` condition)\n\t//  See: <PostSavedState /> (`forceIsDirty` prop)\n\t//  See: <PostPublishButton /> (`forceIsDirty` prop)\n\t//  See: https://github.com/WordPress/gutenberg/pull/4184.\n\n\treturn (\n\t\t!! getEditedPostAttribute( state, 'title' ) ||\n\t\t!! getEditedPostAttribute( state, 'excerpt' ) ||\n\t\t! isEditedPostEmpty( state ) ||\n\t\tPlatform.OS === 'native'\n\t);\n}\n\n/**\n * Returns true if the edited post has content. A post has content if it has at\n * least one saveable block or otherwise has a non-empty content property\n * assigned.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether post has content.\n */\nexport function isEditedPostEmpty( state ) {\n\t// While the condition of truthy content string is sufficient to determine\n\t// emptiness, testing saveable blocks length is a trivial operation. Since\n\t// this function can be called frequently, optimize for the fast case as a\n\t// condition of the mere existence of blocks. Note that the value of edited\n\t// content takes precedent over block content, and must fall through to the\n\t// default logic.\n\tconst blocks = getEditorBlocks( state );\n\n\tif ( blocks.length ) {\n\t\t// Pierce the abstraction of the serializer in knowing that blocks are\n\t\t// joined with newlines such that even if every individual block\n\t\t// produces an empty save result, the serialized content is non-empty.\n\t\tif ( blocks.length > 1 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// There are two conditions under which the optimization cannot be\n\t\t// assumed, and a fallthrough to getEditedPostContent must occur:\n\t\t//\n\t\t// 1. getBlocksForSerialization has special treatment in omitting a\n\t\t//    single unmodified default block.\n\t\t// 2. Comment delimiters are omitted for a freeform or unregistered\n\t\t//    block in its serialization. The freeform block specifically may\n\t\t//    produce an empty string in its saved output.\n\t\t//\n\t\t// For all other content, the single block is assumed to make a post\n\t\t// non-empty, if only by virtue of its own comment delimiters.\n\t\tconst blockName = blocks[ 0 ].name;\n\t\tif (\n\t\t\tblockName !== getDefaultBlockName() &&\n\t\t\tblockName !== getFreeformContentHandlerName()\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn ! getEditedPostContent( state );\n}\n\n/**\n * Returns true if the post can be autosaved, or false otherwise.\n *\n * @param {Object} state    Global application state.\n * @param {Object} autosave A raw autosave object from the REST API.\n *\n * @return {boolean} Whether the post can be autosaved.\n */\nexport const isEditedPostAutosaveable = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\t// A post must contain a title, an excerpt, or non-empty content to be valid for autosaving.\n\t\tif ( ! isEditedPostSaveable( state ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// A post is not autosavable when there is a post autosave lock.\n\t\tif ( isPostAutosavingLocked( state ) ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst postType = getCurrentPostType( state );\n\t\tconst postId = getCurrentPostId( state );\n\t\tconst hasFetchedAutosave = select( coreStore ).hasFetchedAutosaves(\n\t\t\tpostType,\n\t\t\tpostId\n\t\t);\n\t\tconst currentUserId = select( coreStore ).getCurrentUser()?.id;\n\n\t\t// Disable reason - this line causes the side-effect of fetching the autosave\n\t\t// via a resolver, moving below the return would result in the autosave never\n\t\t// being fetched.\n\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\tconst autosave = select( coreStore ).getAutosave(\n\t\t\tpostType,\n\t\t\tpostId,\n\t\t\tcurrentUserId\n\t\t);\n\n\t\t// If any existing autosaves have not yet been fetched, this function is\n\t\t// unable to determine if the post is autosaveable, so return false.\n\t\tif ( ! hasFetchedAutosave ) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// If we don't already have an autosave, the post is autosaveable.\n\t\tif ( ! autosave ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// To avoid an expensive content serialization, use the content dirtiness\n\t\t// flag in place of content field comparison against the known autosave.\n\t\t// This is not strictly accurate, and relies on a tolerance toward autosave\n\t\t// request failures for unnecessary saves.\n\t\tif ( hasChangedContent( state ) ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If the title or excerpt has changed, the post is autosaveable.\n\t\treturn [ 'title', 'excerpt' ].some(\n\t\t\t( field ) =>\n\t\t\t\tgetPostRawValue( autosave[ field ] ) !==\n\t\t\t\tgetEditedPostAttribute( state, field )\n\t\t);\n\t}\n);\n\n/**\n * Return true if the post being edited is being scheduled. Preferring the\n * unsaved status values.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post has been published.\n */\nexport function isEditedPostBeingScheduled( state ) {\n\tconst date = getEditedPostAttribute( state, 'date' );\n\t// Offset the date by one minute (network latency).\n\tconst checkedDate = new Date(\n\t\tNumber( getDate( date ) ) - ONE_MINUTE_IN_MS\n\t);\n\n\treturn isInTheFuture( checkedDate );\n}\n\n/**\n * Returns whether the current post should be considered to have a \"floating\"\n * date (i.e. that it would publish \"Immediately\" rather than at a set time).\n *\n * Unlike in the PHP backend, the REST API returns a full date string for posts\n * where the 0000-00-00T00:00:00 placeholder is present in the database. To\n * infer that a post is set to publish \"Immediately\" we check whether the date\n * and modified date are the same.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether the edited post has a floating date value.\n */\nexport function isEditedPostDateFloating( state ) {\n\tconst date = getEditedPostAttribute( state, 'date' );\n\tconst modified = getEditedPostAttribute( state, 'modified' );\n\n\t// This should be the status of the persisted post\n\t// It shouldn't use the \"edited\" status otherwise it breaks the\n\t// inferred post data floating status\n\t// See https://github.com/WordPress/gutenberg/issues/28083.\n\tconst status = getCurrentPost( state ).status;\n\tif (\n\t\tstatus === 'draft' ||\n\t\tstatus === 'auto-draft' ||\n\t\tstatus === 'pending'\n\t) {\n\t\treturn date === modified || date === null;\n\t}\n\treturn false;\n}\n\n/**\n * Returns true if the post is currently being deleted, or false otherwise.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether post is being deleted.\n */\nexport function isDeletingPost( state ) {\n\treturn !! state.deleting.pending;\n}\n\n/**\n * Returns true if the post is currently being saved, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether post is being saved.\n */\nexport const isSavingPost = createRegistrySelector( ( select ) => ( state ) => {\n\tconst postType = getCurrentPostType( state );\n\tconst postId = getCurrentPostId( state );\n\treturn select( coreStore ).isSavingEntityRecord(\n\t\t'postType',\n\t\tpostType,\n\t\tpostId\n\t);\n} );\n\n/**\n * Returns true if non-post entities are currently being saved, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether non-post entities are being saved.\n */\nexport const isSavingNonPostEntityChanges = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst entitiesBeingSaved =\n\t\t\tselect( coreStore ).__experimentalGetEntitiesBeingSaved();\n\t\tconst { type, id } = getCurrentPost( state );\n\t\treturn entitiesBeingSaved.some(\n\t\t\t( entityRecord ) =>\n\t\t\t\tentityRecord.kind !== 'postType' ||\n\t\t\t\tentityRecord.name !== type ||\n\t\t\t\tentityRecord.key !== id\n\t\t);\n\t}\n);\n\n/**\n * Returns true if a previous post save was attempted successfully, or false\n * otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post was saved successfully.\n */\nexport const didPostSaveRequestSucceed = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst postType = getCurrentPostType( state );\n\t\tconst postId = getCurrentPostId( state );\n\t\treturn ! select( coreStore ).getLastEntitySaveError(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if a previous post save was attempted but failed, or false\n * otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post save failed.\n */\nexport const didPostSaveRequestFail = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst postType = getCurrentPostType( state );\n\t\tconst postId = getCurrentPostId( state );\n\t\treturn !! select( coreStore ).getLastEntitySaveError(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId\n\t\t);\n\t}\n);\n\n/**\n * Returns true if the post is autosaving, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post is autosaving.\n */\nexport function isAutosavingPost( state ) {\n\tif ( ! isSavingPost( state ) ) {\n\t\treturn false;\n\t}\n\treturn Boolean( state.saving.options?.isAutosave );\n}\n\n/**\n * Returns true if the post is being previewed, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether the post is being previewed.\n */\nexport function isPreviewingPost( state ) {\n\tif ( ! isSavingPost( state ) ) {\n\t\treturn false;\n\t}\n\treturn Boolean( state.saving.options?.isPreview );\n}\n\n/**\n * Returns the post preview link\n *\n * @param {Object} state Global application state.\n *\n * @return {string?} Preview Link.\n */\nexport function getEditedPostPreviewLink( state ) {\n\tif ( state.saving.pending || isSavingPost( state ) ) {\n\t\treturn;\n\t}\n\n\tlet previewLink = getAutosaveAttribute( state, 'preview_link' );\n\t// Fix for issue: https://github.com/WordPress/gutenberg/issues/33616\n\t// If the post is draft, ignore the preview link from the autosave record,\n\t// because the preview could be a stale autosave if the post was switched from\n\t// published to draft.\n\t// See: https://github.com/WordPress/gutenberg/pull/37952.\n\tif ( ! previewLink || 'draft' === getCurrentPost( state ).status ) {\n\t\tpreviewLink = getEditedPostAttribute( state, 'link' );\n\t\tif ( previewLink ) {\n\t\t\tpreviewLink = addQueryArgs( previewLink, { preview: true } );\n\t\t}\n\t}\n\tconst featuredImageId = getEditedPostAttribute( state, 'featured_media' );\n\n\tif ( previewLink && featuredImageId ) {\n\t\treturn addQueryArgs( previewLink, { _thumbnail_id: featuredImageId } );\n\t}\n\n\treturn previewLink;\n}\n\n/**\n * Returns a suggested post format for the current post, inferred only if there\n * is a single block within the post and it is of a type known to match a\n * default post format. Returns null if the format cannot be determined.\n *\n * @param {Object} state Global application state.\n *\n * @return {?string} Suggested post format.\n */\nexport function getSuggestedPostFormat( state ) {\n\tconst blocks = getEditorBlocks( state );\n\n\tif ( blocks.length > 2 ) return null;\n\n\tlet name;\n\t// If there is only one block in the content of the post grab its name\n\t// so we can derive a suitable post format from it.\n\tif ( blocks.length === 1 ) {\n\t\tname = blocks[ 0 ].name;\n\t\t// Check for core/embed `video` and `audio` eligible suggestions.\n\t\tif ( name === 'core/embed' ) {\n\t\t\tconst provider = blocks[ 0 ].attributes?.providerNameSlug;\n\t\t\tif ( [ 'youtube', 'vimeo' ].includes( provider ) ) {\n\t\t\t\tname = 'core/video';\n\t\t\t} else if ( [ 'spotify', 'soundcloud' ].includes( provider ) ) {\n\t\t\t\tname = 'core/audio';\n\t\t\t}\n\t\t}\n\t}\n\n\t// If there are two blocks in the content and the last one is a text blocks\n\t// grab the name of the first one to also suggest a post format from it.\n\tif ( blocks.length === 2 && blocks[ 1 ].name === 'core/paragraph' ) {\n\t\tname = blocks[ 0 ].name;\n\t}\n\n\t// We only convert to default post formats in core.\n\tswitch ( name ) {\n\t\tcase 'core/image':\n\t\t\treturn 'image';\n\t\tcase 'core/quote':\n\t\tcase 'core/pullquote':\n\t\t\treturn 'quote';\n\t\tcase 'core/gallery':\n\t\t\treturn 'gallery';\n\t\tcase 'core/video':\n\t\t\treturn 'video';\n\t\tcase 'core/audio':\n\t\t\treturn 'audio';\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\n/**\n * Returns the content of the post being edited.\n *\n * @param {Object} state Global application state.\n *\n * @return {string} Post content.\n */\nexport const getEditedPostContent = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst postId = getCurrentPostId( state );\n\t\tconst postType = getCurrentPostType( state );\n\t\tconst record = select( coreStore ).getEditedEntityRecord(\n\t\t\t'postType',\n\t\t\tpostType,\n\t\t\tpostId\n\t\t);\n\t\tif ( record ) {\n\t\t\tif ( typeof record.content === 'function' ) {\n\t\t\t\treturn record.content( record );\n\t\t\t} else if ( record.blocks ) {\n\t\t\t\treturn __unstableSerializeAndClean( record.blocks );\n\t\t\t} else if ( record.content ) {\n\t\t\t\treturn record.content;\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t}\n);\n\n/**\n * Returns true if the post is being published, or false otherwise.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Whether post is being published.\n */\nexport function isPublishingPost( state ) {\n\treturn (\n\t\tisSavingPost( state ) &&\n\t\t! isCurrentPostPublished( state ) &&\n\t\tgetEditedPostAttribute( state, 'status' ) === 'publish'\n\t);\n}\n\n/**\n * Returns whether the permalink is editable or not.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether or not the permalink is editable.\n */\nexport function isPermalinkEditable( state ) {\n\tconst permalinkTemplate = getEditedPostAttribute(\n\t\tstate,\n\t\t'permalink_template'\n\t);\n\n\treturn PERMALINK_POSTNAME_REGEX.test( permalinkTemplate );\n}\n\n/**\n * Returns the permalink for the post.\n *\n * @param {Object} state Editor state.\n *\n * @return {?string} The permalink, or null if the post is not viewable.\n */\nexport function getPermalink( state ) {\n\tconst permalinkParts = getPermalinkParts( state );\n\tif ( ! permalinkParts ) {\n\t\treturn null;\n\t}\n\n\tconst { prefix, postName, suffix } = permalinkParts;\n\n\tif ( isPermalinkEditable( state ) ) {\n\t\treturn prefix + postName + suffix;\n\t}\n\n\treturn prefix;\n}\n\n/**\n * Returns the slug for the post being edited, preferring a manually edited\n * value if one exists, then a sanitized version of the current post title, and\n * finally the post ID.\n *\n * @param {Object} state Editor state.\n *\n * @return {string} The current slug to be displayed in the editor\n */\nexport function getEditedPostSlug( state ) {\n\treturn (\n\t\tgetEditedPostAttribute( state, 'slug' ) ||\n\t\tcleanForSlug( getEditedPostAttribute( state, 'title' ) ) ||\n\t\tgetCurrentPostId( state )\n\t);\n}\n\n/**\n * Returns the permalink for a post, split into it's three parts: the prefix,\n * the postName, and the suffix.\n *\n * @param {Object} state Editor state.\n *\n * @return {Object} An object containing the prefix, postName, and suffix for\n *                  the permalink, or null if the post is not viewable.\n */\nexport function getPermalinkParts( state ) {\n\tconst permalinkTemplate = getEditedPostAttribute(\n\t\tstate,\n\t\t'permalink_template'\n\t);\n\tif ( ! permalinkTemplate ) {\n\t\treturn null;\n\t}\n\n\tconst postName =\n\t\tgetEditedPostAttribute( state, 'slug' ) ||\n\t\tgetEditedPostAttribute( state, 'generated_slug' );\n\n\tconst [ prefix, suffix ] = permalinkTemplate.split(\n\t\tPERMALINK_POSTNAME_REGEX\n\t);\n\n\treturn {\n\t\tprefix,\n\t\tpostName,\n\t\tsuffix,\n\t};\n}\n\n/**\n * Returns whether the post is locked.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Is locked.\n */\nexport function isPostLocked( state ) {\n\treturn state.postLock.isLocked;\n}\n\n/**\n * Returns whether post saving is locked.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Is locked.\n */\nexport function isPostSavingLocked( state ) {\n\treturn Object.keys( state.postSavingLock ).length > 0;\n}\n\n/**\n * Returns whether post autosaving is locked.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Is locked.\n */\nexport function isPostAutosavingLocked( state ) {\n\treturn Object.keys( state.postAutosavingLock ).length > 0;\n}\n\n/**\n * Returns whether the edition of the post has been taken over.\n *\n * @param {Object} state Global application state.\n *\n * @return {boolean} Is post lock takeover.\n */\nexport function isPostLockTakeover( state ) {\n\treturn state.postLock.isTakeover;\n}\n\n/**\n * Returns details about the post lock user.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} A user object.\n */\nexport function getPostLockUser( state ) {\n\treturn state.postLock.user;\n}\n\n/**\n * Returns the active post lock.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The lock object.\n */\nexport function getActivePostLock( state ) {\n\treturn state.postLock.activePostLock;\n}\n\n/**\n * Returns whether or not the user has the unfiltered_html capability.\n *\n * @param {Object} state Editor state.\n *\n * @return {boolean} Whether the user can or can't post unfiltered HTML.\n */\nexport function canUserUseUnfilteredHTML( state ) {\n\treturn Boolean(\n\t\tgetCurrentPost( state )._links?.hasOwnProperty(\n\t\t\t'wp:action-unfiltered-html'\n\t\t)\n\t);\n}\n\n/**\n * Returns whether the pre-publish panel should be shown\n * or skipped when the user clicks the \"publish\" button.\n *\n * @return {boolean} Whether the pre-publish panel should be shown or not.\n */\nexport const isPublishSidebarEnabled = createRegistrySelector(\n\t( select ) => () =>\n\t\t!! select( preferencesStore ).get(\n\t\t\t'core/edit-post',\n\t\t\t'isPublishSidebarEnabled'\n\t\t)\n);\n\n/**\n * Return the current block list.\n *\n * @param {Object} state\n * @return {Array} Block list.\n */\nexport function getEditorBlocks( state ) {\n\treturn getEditedPostAttribute( state, 'blocks' ) || EMPTY_ARRAY;\n}\n\n/**\n * A block selection object.\n *\n * @typedef {Object} WPBlockSelection\n *\n * @property {string} clientId     A block client ID.\n * @property {string} attributeKey A block attribute key.\n * @property {number} offset       An attribute value offset, based on the rich\n *                                 text value. See `wp.richText.create`.\n */\n\n/**\n * Returns the current selection start.\n *\n * @param {Object} state\n * @return {WPBlockSelection} The selection start.\n *\n * @deprecated since Gutenberg 10.0.0.\n */\nexport function getEditorSelectionStart( state ) {\n\tdeprecated( \"select('core/editor').getEditorSelectionStart\", {\n\t\tsince: '5.8',\n\t\talternative: \"select('core/editor').getEditorSelection\",\n\t} );\n\treturn getEditedPostAttribute( state, 'selection' )?.selectionStart;\n}\n\n/**\n * Returns the current selection end.\n *\n * @param {Object} state\n * @return {WPBlockSelection} The selection end.\n *\n * @deprecated since Gutenberg 10.0.0.\n */\nexport function getEditorSelectionEnd( state ) {\n\tdeprecated( \"select('core/editor').getEditorSelectionStart\", {\n\t\tsince: '5.8',\n\t\talternative: \"select('core/editor').getEditorSelection\",\n\t} );\n\treturn getEditedPostAttribute( state, 'selection' )?.selectionEnd;\n}\n\n/**\n * Returns the current selection.\n *\n * @param {Object} state\n * @return {WPBlockSelection} The selection end.\n */\nexport function getEditorSelection( state ) {\n\treturn getEditedPostAttribute( state, 'selection' );\n}\n\n/**\n * Is the editor ready\n *\n * @param {Object} state\n * @return {boolean} is Ready.\n */\nexport function __unstableIsEditorReady( state ) {\n\treturn state.isReady;\n}\n\n/**\n * Returns the post editor settings.\n *\n * @param {Object} state Editor state.\n *\n * @return {Object} The editor settings object.\n */\nexport function getEditorSettings( state ) {\n\treturn state.editorSettings;\n}\n\n/*\n * Backward compatibility\n */\n\n/**\n * Returns state object prior to a specified optimist transaction ID, or `null`\n * if the transaction corresponding to the given ID cannot be found.\n *\n * @deprecated since Gutenberg 9.7.0.\n */\nexport function getStateBeforeOptimisticTransaction() {\n\tdeprecated( \"select('core/editor').getStateBeforeOptimisticTransaction\", {\n\t\tsince: '5.7',\n\t\thint: 'No state history is kept on this store anymore',\n\t} );\n\n\treturn null;\n}\n/**\n * Returns true if an optimistic transaction is pending commit, for which the\n * before state satisfies the given predicate function.\n *\n * @deprecated since Gutenberg 9.7.0.\n */\nexport function inSomeHistory() {\n\tdeprecated( \"select('core/editor').inSomeHistory\", {\n\t\tsince: '5.7',\n\t\thint: 'No state history is kept on this store anymore',\n\t} );\n\treturn false;\n}\n\nfunction getBlockEditorSelector( name ) {\n\treturn createRegistrySelector( ( select ) => ( state, ...args ) => {\n\t\tdeprecated( \"`wp.data.select( 'core/editor' ).\" + name + '`', {\n\t\t\tsince: '5.3',\n\t\t\talternative: \"`wp.data.select( 'core/block-editor' ).\" + name + '`',\n\t\t\tversion: '6.2',\n\t\t} );\n\n\t\treturn select( blockEditorStore )[ name ]( ...args );\n\t} );\n}\n\n/**\n * @see getBlockName in core/block-editor store.\n */\nexport const getBlockName = getBlockEditorSelector( 'getBlockName' );\n\n/**\n * @see isBlockValid in core/block-editor store.\n */\nexport const isBlockValid = getBlockEditorSelector( 'isBlockValid' );\n\n/**\n * @see getBlockAttributes in core/block-editor store.\n */\nexport const getBlockAttributes =\n\tgetBlockEditorSelector( 'getBlockAttributes' );\n\n/**\n * @see getBlock in core/block-editor store.\n */\nexport const getBlock = getBlockEditorSelector( 'getBlock' );\n\n/**\n * @see getBlocks in core/block-editor store.\n */\nexport const getBlocks = getBlockEditorSelector( 'getBlocks' );\n\n/**\n * @see getClientIdsOfDescendants in core/block-editor store.\n */\nexport const getClientIdsOfDescendants = getBlockEditorSelector(\n\t'getClientIdsOfDescendants'\n);\n\n/**\n * @see getClientIdsWithDescendants in core/block-editor store.\n */\nexport const getClientIdsWithDescendants = getBlockEditorSelector(\n\t'getClientIdsWithDescendants'\n);\n\n/**\n * @see getGlobalBlockCount in core/block-editor store.\n */\nexport const getGlobalBlockCount = getBlockEditorSelector(\n\t'getGlobalBlockCount'\n);\n\n/**\n * @see getBlocksByClientId in core/block-editor store.\n */\nexport const getBlocksByClientId = getBlockEditorSelector(\n\t'getBlocksByClientId'\n);\n\n/**\n * @see getBlockCount in core/block-editor store.\n */\nexport const getBlockCount = getBlockEditorSelector( 'getBlockCount' );\n\n/**\n * @see getBlockSelectionStart in core/block-editor store.\n */\nexport const getBlockSelectionStart = getBlockEditorSelector(\n\t'getBlockSelectionStart'\n);\n\n/**\n * @see getBlockSelectionEnd in core/block-editor store.\n */\nexport const getBlockSelectionEnd = getBlockEditorSelector(\n\t'getBlockSelectionEnd'\n);\n\n/**\n * @see getSelectedBlockCount in core/block-editor store.\n */\nexport const getSelectedBlockCount = getBlockEditorSelector(\n\t'getSelectedBlockCount'\n);\n\n/**\n * @see hasSelectedBlock in core/block-editor store.\n */\nexport const hasSelectedBlock = getBlockEditorSelector( 'hasSelectedBlock' );\n\n/**\n * @see getSelectedBlockClientId in core/block-editor store.\n */\nexport const getSelectedBlockClientId = getBlockEditorSelector(\n\t'getSelectedBlockClientId'\n);\n\n/**\n * @see getSelectedBlock in core/block-editor store.\n */\nexport const getSelectedBlock = getBlockEditorSelector( 'getSelectedBlock' );\n\n/**\n * @see getBlockRootClientId in core/block-editor store.\n */\nexport const getBlockRootClientId = getBlockEditorSelector(\n\t'getBlockRootClientId'\n);\n\n/**\n * @see getBlockHierarchyRootClientId in core/block-editor store.\n */\nexport const getBlockHierarchyRootClientId = getBlockEditorSelector(\n\t'getBlockHierarchyRootClientId'\n);\n\n/**\n * @see getAdjacentBlockClientId in core/block-editor store.\n */\nexport const getAdjacentBlockClientId = getBlockEditorSelector(\n\t'getAdjacentBlockClientId'\n);\n\n/**\n * @see getPreviousBlockClientId in core/block-editor store.\n */\nexport const getPreviousBlockClientId = getBlockEditorSelector(\n\t'getPreviousBlockClientId'\n);\n\n/**\n * @see getNextBlockClientId in core/block-editor store.\n */\nexport const getNextBlockClientId = getBlockEditorSelector(\n\t'getNextBlockClientId'\n);\n\n/**\n * @see getSelectedBlocksInitialCaretPosition in core/block-editor store.\n */\nexport const getSelectedBlocksInitialCaretPosition = getBlockEditorSelector(\n\t'getSelectedBlocksInitialCaretPosition'\n);\n\n/**\n * @see getMultiSelectedBlockClientIds in core/block-editor store.\n */\nexport const getMultiSelectedBlockClientIds = getBlockEditorSelector(\n\t'getMultiSelectedBlockClientIds'\n);\n\n/**\n * @see getMultiSelectedBlocks in core/block-editor store.\n */\nexport const getMultiSelectedBlocks = getBlockEditorSelector(\n\t'getMultiSelectedBlocks'\n);\n\n/**\n * @see getFirstMultiSelectedBlockClientId in core/block-editor store.\n */\nexport const getFirstMultiSelectedBlockClientId = getBlockEditorSelector(\n\t'getFirstMultiSelectedBlockClientId'\n);\n\n/**\n * @see getLastMultiSelectedBlockClientId in core/block-editor store.\n */\nexport const getLastMultiSelectedBlockClientId = getBlockEditorSelector(\n\t'getLastMultiSelectedBlockClientId'\n);\n\n/**\n * @see isFirstMultiSelectedBlock in core/block-editor store.\n */\nexport const isFirstMultiSelectedBlock = getBlockEditorSelector(\n\t'isFirstMultiSelectedBlock'\n);\n\n/**\n * @see isBlockMultiSelected in core/block-editor store.\n */\nexport const isBlockMultiSelected = getBlockEditorSelector(\n\t'isBlockMultiSelected'\n);\n\n/**\n * @see isAncestorMultiSelected in core/block-editor store.\n */\nexport const isAncestorMultiSelected = getBlockEditorSelector(\n\t'isAncestorMultiSelected'\n);\n\n/**\n * @see getMultiSelectedBlocksStartClientId in core/block-editor store.\n */\nexport const getMultiSelectedBlocksStartClientId = getBlockEditorSelector(\n\t'getMultiSelectedBlocksStartClientId'\n);\n\n/**\n * @see getMultiSelectedBlocksEndClientId in core/block-editor store.\n */\nexport const getMultiSelectedBlocksEndClientId = getBlockEditorSelector(\n\t'getMultiSelectedBlocksEndClientId'\n);\n\n/**\n * @see getBlockOrder in core/block-editor store.\n */\nexport const getBlockOrder = getBlockEditorSelector( 'getBlockOrder' );\n\n/**\n * @see getBlockIndex in core/block-editor store.\n */\nexport const getBlockIndex = getBlockEditorSelector( 'getBlockIndex' );\n\n/**\n * @see isBlockSelected in core/block-editor store.\n */\nexport const isBlockSelected = getBlockEditorSelector( 'isBlockSelected' );\n\n/**\n * @see hasSelectedInnerBlock in core/block-editor store.\n */\nexport const hasSelectedInnerBlock = getBlockEditorSelector(\n\t'hasSelectedInnerBlock'\n);\n\n/**\n * @see isBlockWithinSelection in core/block-editor store.\n */\nexport const isBlockWithinSelection = getBlockEditorSelector(\n\t'isBlockWithinSelection'\n);\n\n/**\n * @see hasMultiSelection in core/block-editor store.\n */\nexport const hasMultiSelection = getBlockEditorSelector( 'hasMultiSelection' );\n\n/**\n * @see isMultiSelecting in core/block-editor store.\n */\nexport const isMultiSelecting = getBlockEditorSelector( 'isMultiSelecting' );\n\n/**\n * @see isSelectionEnabled in core/block-editor store.\n */\nexport const isSelectionEnabled =\n\tgetBlockEditorSelector( 'isSelectionEnabled' );\n\n/**\n * @see getBlockMode in core/block-editor store.\n */\nexport const getBlockMode = getBlockEditorSelector( 'getBlockMode' );\n\n/**\n * @see isTyping in core/block-editor store.\n */\nexport const isTyping = getBlockEditorSelector( 'isTyping' );\n\n/**\n * @see isCaretWithinFormattedText in core/block-editor store.\n */\nexport const isCaretWithinFormattedText = getBlockEditorSelector(\n\t'isCaretWithinFormattedText'\n);\n\n/**\n * @see getBlockInsertionPoint in core/block-editor store.\n */\nexport const getBlockInsertionPoint = getBlockEditorSelector(\n\t'getBlockInsertionPoint'\n);\n\n/**\n * @see isBlockInsertionPointVisible in core/block-editor store.\n */\nexport const isBlockInsertionPointVisible = getBlockEditorSelector(\n\t'isBlockInsertionPointVisible'\n);\n\n/**\n * @see isValidTemplate in core/block-editor store.\n */\nexport const isValidTemplate = getBlockEditorSelector( 'isValidTemplate' );\n\n/**\n * @see getTemplate in core/block-editor store.\n */\nexport const getTemplate = getBlockEditorSelector( 'getTemplate' );\n\n/**\n * @see getTemplateLock in core/block-editor store.\n */\nexport const getTemplateLock = getBlockEditorSelector( 'getTemplateLock' );\n\n/**\n * @see canInsertBlockType in core/block-editor store.\n */\nexport const canInsertBlockType =\n\tgetBlockEditorSelector( 'canInsertBlockType' );\n\n/**\n * @see getInserterItems in core/block-editor store.\n */\nexport const getInserterItems = getBlockEditorSelector( 'getInserterItems' );\n\n/**\n * @see hasInserterItems in core/block-editor store.\n */\nexport const hasInserterItems = getBlockEditorSelector( 'hasInserterItems' );\n\n/**\n * @see getBlockListSettings in core/block-editor store.\n */\nexport const getBlockListSettings = getBlockEditorSelector(\n\t'getBlockListSettings'\n);\n\n/**\n * Returns the default template types.\n *\n * @param {Object} state Global application state.\n *\n * @return {Object} The template types.\n */\nexport function __experimentalGetDefaultTemplateTypes( state ) {\n\treturn getEditorSettings( state )?.defaultTemplateTypes;\n}\n\n/**\n * Returns the default template part areas.\n *\n * @param {Object} state Global application state.\n *\n * @return {Array} The template part areas.\n */\nexport const __experimentalGetDefaultTemplatePartAreas = createSelector(\n\t( state ) => {\n\t\tconst areas =\n\t\t\tgetEditorSettings( state )?.defaultTemplatePartAreas || [];\n\t\treturn areas?.map( ( item ) => {\n\t\t\treturn { ...item, icon: getTemplatePartIcon( item.icon ) };\n\t\t} );\n\t},\n\t( state ) => [ getEditorSettings( state )?.defaultTemplatePartAreas ]\n);\n\n/**\n * Returns a default template type searched by slug.\n *\n * @param {Object} state Global application state.\n * @param {string} slug  The template type slug.\n *\n * @return {Object} The template type.\n */\nexport const __experimentalGetDefaultTemplateType = createSelector(\n\t( state, slug ) => {\n\t\tconst templateTypes = __experimentalGetDefaultTemplateTypes( state );\n\t\tif ( ! templateTypes ) {\n\t\t\treturn EMPTY_OBJECT;\n\t\t}\n\n\t\treturn (\n\t\t\tObject.values( templateTypes ).find(\n\t\t\t\t( type ) => type.slug === slug\n\t\t\t) ?? EMPTY_OBJECT\n\t\t);\n\t},\n\t( state, slug ) => [ __experimentalGetDefaultTemplateTypes( state ), slug ]\n);\n\n/**\n * Given a template entity, return information about it which is ready to be\n * rendered, such as the title, description, and icon.\n *\n * @param {Object} state    Global application state.\n * @param {Object} template The template for which we need information.\n * @return {Object} Information about the template, including title, description, and icon.\n */\nexport function __experimentalGetTemplateInfo( state, template ) {\n\tif ( ! template ) {\n\t\treturn EMPTY_OBJECT;\n\t}\n\n\tconst { description, slug, title, area } = template;\n\tconst { title: defaultTitle, description: defaultDescription } =\n\t\t__experimentalGetDefaultTemplateType( state, slug );\n\n\tconst templateTitle = typeof title === 'string' ? title : title?.rendered;\n\tconst templateDescription =\n\t\ttypeof description === 'string' ? description : description?.raw;\n\tconst templateIcon =\n\t\t__experimentalGetDefaultTemplatePartAreas( state ).find(\n\t\t\t( item ) => area === item.area\n\t\t)?.icon || layout;\n\n\treturn {\n\t\ttitle:\n\t\t\ttemplateTitle && templateTitle !== slug\n\t\t\t\t? templateTitle\n\t\t\t\t: defaultTitle || slug,\n\t\tdescription: templateDescription || defaultDescription,\n\t\ticon: templateIcon,\n\t};\n}\n\n/**\n * Returns a post type label depending on the current post.\n *\n * @param {Object} state Global application state.\n *\n * @return {string|undefined} The post type label if available, otherwise undefined.\n */\nexport const getPostTypeLabel = createRegistrySelector(\n\t( select ) => ( state ) => {\n\t\tconst currentPostType = getCurrentPostType( state );\n\t\tconst postType = select( coreStore ).getPostType( currentPostType );\n\t\t// Disable reason: Post type labels object is shaped like this.\n\t\t// eslint-disable-next-line camelcase\n\t\treturn postType?.labels?.singular_name;\n\t}\n);\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"apiFetch\"];","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"notices\"];","/**\n * Function returning a sessionStorage key to set or retrieve a given post's\n * automatic session backup.\n *\n * Keys are crucially prefixed with 'wp-autosave-' so that wp-login.php's\n * `loggedout` handler can clear sessionStorage of any user-private content.\n *\n * @see https://github.com/WordPress/wordpress-develop/blob/6dad32d2aed47e6c0cf2aee8410645f6d7aba6bd/src/wp-login.php#L103\n *\n * @param {string}  postId    Post ID.\n * @param {boolean} isPostNew Whether post new.\n *\n * @return {string} sessionStorage key\n */\nfunction postKey( postId, isPostNew ) {\n\treturn `wp-autosave-block-editor-post-${\n\t\tisPostNew ? 'auto-draft' : postId\n\t}`;\n}\n\nexport function localAutosaveGet( postId, isPostNew ) {\n\treturn window.sessionStorage.getItem( postKey( postId, isPostNew ) );\n}\n\nexport function localAutosaveSet( postId, isPostNew, title, content, excerpt ) {\n\twindow.sessionStorage.setItem(\n\t\tpostKey( postId, isPostNew ),\n\t\tJSON.stringify( {\n\t\t\tpost_title: title,\n\t\t\tcontent,\n\t\t\texcerpt,\n\t\t} )\n\t);\n}\n\nexport function localAutosaveClear( postId, isPostNew ) {\n\twindow.sessionStorage.removeItem( postKey( postId, isPostNew ) );\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"i18n\"];","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { SAVE_POST_NOTICE_ID, TRASH_POST_NOTICE_ID } from '../constants';\n\n/**\n * External dependencies\n */\nimport { get, includes } from 'lodash';\n\n/**\n * Builds the arguments for a success notification dispatch.\n *\n * @param {Object} data Incoming data to build the arguments from.\n *\n * @return {Array} Arguments for dispatch. An empty array signals no\n *                 notification should be sent.\n */\nexport function getNotificationArgumentsForSaveSuccess( data ) {\n\tconst { previousPost, post, postType } = data;\n\t// Autosaves are neither shown a notice nor redirected.\n\tif ( get( data.options, [ 'isAutosave' ] ) ) {\n\t\treturn [];\n\t}\n\n\t// No notice is shown after trashing a post\n\tif ( post.status === 'trash' && previousPost.status !== 'trash' ) {\n\t\treturn [];\n\t}\n\n\tconst publishStatus = [ 'publish', 'private', 'future' ];\n\tconst isPublished = includes( publishStatus, previousPost.status );\n\tconst willPublish = includes( publishStatus, post.status );\n\n\tlet noticeMessage;\n\tlet shouldShowLink = get( postType, [ 'viewable' ], false );\n\tlet isDraft;\n\n\t// Always should a notice, which will be spoken for accessibility.\n\tif ( ! isPublished && ! willPublish ) {\n\t\t// If saving a non-published post, don't show notice.\n\t\tnoticeMessage = __( 'Draft saved.' );\n\t\tisDraft = true;\n\t} else if ( isPublished && ! willPublish ) {\n\t\t// If undoing publish status, show specific notice.\n\t\tnoticeMessage = postType.labels.item_reverted_to_draft;\n\t\tshouldShowLink = false;\n\t} else if ( ! isPublished && willPublish ) {\n\t\t// If publishing or scheduling a post, show the corresponding\n\t\t// publish message.\n\t\tnoticeMessage = {\n\t\t\tpublish: postType.labels.item_published,\n\t\t\tprivate: postType.labels.item_published_privately,\n\t\t\tfuture: postType.labels.item_scheduled,\n\t\t}[ post.status ];\n\t} else {\n\t\t// Generic fallback notice.\n\t\tnoticeMessage = postType.labels.item_updated;\n\t}\n\n\tconst actions = [];\n\tif ( shouldShowLink ) {\n\t\tactions.push( {\n\t\t\tlabel: isDraft ? __( 'View Preview' ) : postType.labels.view_item,\n\t\t\turl: post.link,\n\t\t} );\n\t}\n\treturn [\n\t\tnoticeMessage,\n\t\t{\n\t\t\tid: SAVE_POST_NOTICE_ID,\n\t\t\ttype: 'snackbar',\n\t\t\tactions,\n\t\t},\n\t];\n}\n\n/**\n * Builds the fail notification arguments for dispatch.\n *\n * @param {Object} data Incoming data to build the arguments with.\n *\n * @return {Array} Arguments for dispatch. An empty array signals no\n *                 notification should be sent.\n */\nexport function getNotificationArgumentsForSaveFail( data ) {\n\tconst { post, edits, error } = data;\n\tif ( error && 'rest_autosave_no_changes' === error.code ) {\n\t\t// Autosave requested a new autosave, but there were no changes. This shouldn't\n\t\t// result in an error notice for the user.\n\t\treturn [];\n\t}\n\n\tconst publishStatus = [ 'publish', 'private', 'future' ];\n\tconst isPublished = publishStatus.indexOf( post.status ) !== -1;\n\t// If the post was being published, we show the corresponding publish error message\n\t// Unless we publish an \"updating failed\" message.\n\tconst messages = {\n\t\tpublish: __( 'Publishing failed.' ),\n\t\tprivate: __( 'Publishing failed.' ),\n\t\tfuture: __( 'Scheduling failed.' ),\n\t};\n\tlet noticeMessage =\n\t\t! isPublished && publishStatus.indexOf( edits.status ) !== -1\n\t\t\t? messages[ edits.status ]\n\t\t\t: __( 'Updating failed.' );\n\n\t// Check if message string contains HTML. Notice text is currently only\n\t// supported as plaintext, and stripping the tags may muddle the meaning.\n\tif ( error.message && ! /<\\/?[^>]*>/.test( error.message ) ) {\n\t\tnoticeMessage = [ noticeMessage, error.message ].join( ' ' );\n\t}\n\treturn [\n\t\tnoticeMessage,\n\t\t{\n\t\t\tid: SAVE_POST_NOTICE_ID,\n\t\t},\n\t];\n}\n\n/**\n * Builds the trash fail notification arguments for dispatch.\n *\n * @param {Object} data\n *\n * @return {Array} Arguments for dispatch.\n */\nexport function getNotificationArgumentsForTrashFail( data ) {\n\treturn [\n\t\tdata.error.message && data.error.code !== 'unknown_error'\n\t\t\t? data.error.message\n\t\t\t: __( 'Trashing failed' ),\n\t\t{\n\t\t\tid: TRASH_POST_NOTICE_ID,\n\t\t},\n\t];\n}\n","/**\n * WordPress dependencies\n */\nimport apiFetch from '@wordpress/api-fetch';\nimport deprecated from '@wordpress/deprecated';\nimport {\n\tparse,\n\tsynchronizeBlocksWithTemplate,\n\t__unstableSerializeAndClean,\n} from '@wordpress/blocks';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as preferencesStore } from '@wordpress/preferences';\n\n/**\n * Internal dependencies\n */\nimport { TRASH_POST_NOTICE_ID } from './constants';\nimport { localAutosaveSet } from './local-autosave';\nimport {\n\tgetNotificationArgumentsForSaveSuccess,\n\tgetNotificationArgumentsForSaveFail,\n\tgetNotificationArgumentsForTrashFail,\n} from './utils/notice-builder';\n\n/**\n * Returns an action generator used in signalling that editor has initialized with\n * the specified post object and editor settings.\n *\n * @param {Object} post     Post object.\n * @param {Object} edits    Initial edited attributes object.\n * @param {Array?} template Block Template.\n */\nexport const setupEditor =\n\t( post, edits, template ) =>\n\t( { dispatch } ) => {\n\t\tdispatch.setupEditorState( post );\n\t\t// Apply a template for new posts only, if exists.\n\t\tconst isNewPost = post.status === 'auto-draft';\n\t\tif ( isNewPost && template ) {\n\t\t\t// In order to ensure maximum of a single parse during setup, edits are\n\t\t\t// included as part of editor setup action. Assume edited content as\n\t\t\t// canonical if provided, falling back to post.\n\t\t\tlet content;\n\t\t\tif ( 'content' in edits ) {\n\t\t\t\tcontent = edits.content;\n\t\t\t} else {\n\t\t\t\tcontent = post.content.raw;\n\t\t\t}\n\t\t\tlet blocks = parse( content );\n\t\t\tblocks = synchronizeBlocksWithTemplate( blocks, template );\n\t\t\tdispatch.resetEditorBlocks( blocks, {\n\t\t\t\t__unstableShouldCreateUndoLevel: false,\n\t\t\t} );\n\t\t}\n\t\tif (\n\t\t\tedits &&\n\t\t\tObject.values( edits ).some(\n\t\t\t\t( [ key, edit ] ) =>\n\t\t\t\t\tedit !== ( post[ key ]?.raw ?? post[ key ] )\n\t\t\t)\n\t\t) {\n\t\t\tdispatch.editPost( edits );\n\t\t}\n\t};\n\n/**\n * Returns an action object signalling that the editor is being destroyed and\n * that any necessary state or side-effect cleanup should occur.\n *\n * @return {Object} Action object.\n */\nexport function __experimentalTearDownEditor() {\n\treturn { type: 'TEAR_DOWN_EDITOR' };\n}\n\n/**\n * Returns an action object used in signalling that the latest version of the\n * post has been received, either by initialization or save.\n *\n * @deprecated Since WordPress 6.0.\n */\nexport function resetPost() {\n\tdeprecated( \"wp.data.dispatch( 'core/editor' ).resetPost\", {\n\t\tsince: '6.0',\n\t\tversion: '6.3',\n\t\talternative: 'Initialize the editor with the setupEditorState action',\n\t} );\n\treturn { type: 'DO_NOTHING' };\n}\n\n/**\n * Returns an action object used in signalling that a patch of updates for the\n * latest version of the post have been received.\n *\n * @return {Object} Action object.\n * @deprecated since Gutenberg 9.7.0.\n */\nexport function updatePost() {\n\tdeprecated( \"wp.data.dispatch( 'core/editor' ).updatePost\", {\n\t\tsince: '5.7',\n\t\talternative: 'Use the core entities store instead',\n\t} );\n\treturn {\n\t\ttype: 'DO_NOTHING',\n\t};\n}\n\n/**\n * Returns an action object used to setup the editor state when first opening\n * an editor.\n *\n * @param {Object} post Post object.\n *\n * @return {Object} Action object.\n */\nexport function setupEditorState( post ) {\n\treturn {\n\t\ttype: 'SETUP_EDITOR_STATE',\n\t\tpost,\n\t};\n}\n\n/**\n * Returns an action object used in signalling that attributes of the post have\n * been edited.\n *\n * @param {Object} edits   Post attributes to edit.\n * @param {Object} options Options for the edit.\n */\nexport const editPost =\n\t( edits, options ) =>\n\t( { select, registry } ) => {\n\t\tconst { id, type } = select.getCurrentPost();\n\t\tregistry\n\t\t\t.dispatch( coreStore )\n\t\t\t.editEntityRecord( 'postType', type, id, edits, options );\n\t};\n\n/**\n * Action for saving the current post in the editor.\n *\n * @param {Object} options\n */\nexport const savePost =\n\t( options = {} ) =>\n\tasync ( { select, dispatch, registry } ) => {\n\t\tif ( ! select.isEditedPostSaveable() ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst content = select.getEditedPostContent();\n\n\t\tif ( ! options.isAutosave ) {\n\t\t\tdispatch.editPost( { content }, { undoIgnore: true } );\n\t\t}\n\n\t\tconst previousRecord = select.getCurrentPost();\n\t\tconst edits = {\n\t\t\tid: previousRecord.id,\n\t\t\t...registry\n\t\t\t\t.select( coreStore )\n\t\t\t\t.getEntityRecordNonTransientEdits(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpreviousRecord.type,\n\t\t\t\t\tpreviousRecord.id\n\t\t\t\t),\n\t\t\tcontent,\n\t\t};\n\t\tdispatch( { type: 'REQUEST_POST_UPDATE_START', options } );\n\t\tawait registry\n\t\t\t.dispatch( coreStore )\n\t\t\t.saveEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\tpreviousRecord.type,\n\t\t\t\tedits,\n\t\t\t\toptions\n\t\t\t);\n\t\tdispatch( { type: 'REQUEST_POST_UPDATE_FINISH', options } );\n\n\t\tconst error = registry\n\t\t\t.select( coreStore )\n\t\t\t.getLastEntitySaveError(\n\t\t\t\t'postType',\n\t\t\t\tpreviousRecord.type,\n\t\t\t\tpreviousRecord.id\n\t\t\t);\n\t\tif ( error ) {\n\t\t\tconst args = getNotificationArgumentsForSaveFail( {\n\t\t\t\tpost: previousRecord,\n\t\t\t\tedits,\n\t\t\t\terror,\n\t\t\t} );\n\t\t\tif ( args.length ) {\n\t\t\t\tregistry.dispatch( noticesStore ).createErrorNotice( ...args );\n\t\t\t}\n\t\t} else {\n\t\t\tconst updatedRecord = select.getCurrentPost();\n\t\t\tconst args = getNotificationArgumentsForSaveSuccess( {\n\t\t\t\tpreviousPost: previousRecord,\n\t\t\t\tpost: updatedRecord,\n\t\t\t\tpostType: await registry\n\t\t\t\t\t.resolveSelect( coreStore )\n\t\t\t\t\t.getPostType( updatedRecord.type ),\n\t\t\t\toptions,\n\t\t\t} );\n\t\t\tif ( args.length ) {\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t\t.createSuccessNotice( ...args );\n\t\t\t}\n\t\t\t// Make sure that any edits after saving create an undo level and are\n\t\t\t// considered for change detection.\n\t\t\tif ( ! options.isAutosave ) {\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( blockEditorStore )\n\t\t\t\t\t.__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t}\n\t};\n\n/**\n * Action for refreshing the current post.\n *\n * @deprecated Since WordPress 6.0.\n */\nexport function refreshPost() {\n\tdeprecated( \"wp.data.dispatch( 'core/editor' ).refreshPost\", {\n\t\tsince: '6.0',\n\t\tversion: '6.3',\n\t\talternative: 'Use the core entities store instead',\n\t} );\n\treturn { type: 'DO_NOTHING' };\n}\n\n/**\n * Action for trashing the current post in the editor.\n */\nexport const trashPost =\n\t() =>\n\tasync ( { select, dispatch, registry } ) => {\n\t\tconst postTypeSlug = select.getCurrentPostType();\n\t\tconst postType = await registry\n\t\t\t.resolveSelect( coreStore )\n\t\t\t.getPostType( postTypeSlug );\n\t\tregistry.dispatch( noticesStore ).removeNotice( TRASH_POST_NOTICE_ID );\n\t\tconst { rest_base: restBase, rest_namespace: restNamespace = 'wp/v2' } =\n\t\t\tpostType;\n\t\tdispatch( { type: 'REQUEST_POST_DELETE_START' } );\n\t\ttry {\n\t\t\tconst post = select.getCurrentPost();\n\t\t\tawait apiFetch( {\n\t\t\t\tpath: `/${ restNamespace }/${ restBase }/${ post.id }`,\n\t\t\t\tmethod: 'DELETE',\n\t\t\t} );\n\n\t\t\tawait dispatch.savePost();\n\t\t} catch ( error ) {\n\t\t\tregistry\n\t\t\t\t.dispatch( noticesStore )\n\t\t\t\t.createErrorNotice(\n\t\t\t\t\t...getNotificationArgumentsForTrashFail( { error } )\n\t\t\t\t);\n\t\t}\n\t\tdispatch( { type: 'REQUEST_POST_DELETE_FINISH' } );\n\t};\n\n/**\n * Action that autosaves the current post.  This\n * includes server-side autosaving (default) and client-side (a.k.a. local)\n * autosaving (e.g. on the Web, the post might be committed to Session\n * Storage).\n *\n * @param {Object?} options Extra flags to identify the autosave.\n */\nexport const autosave =\n\t( { local = false, ...options } = {} ) =>\n\tasync ( { select, dispatch } ) => {\n\t\tif ( local ) {\n\t\t\tconst post = select.getCurrentPost();\n\t\t\tconst isPostNew = select.isEditedPostNew();\n\t\t\tconst title = select.getEditedPostAttribute( 'title' );\n\t\t\tconst content = select.getEditedPostAttribute( 'content' );\n\t\t\tconst excerpt = select.getEditedPostAttribute( 'excerpt' );\n\t\t\tlocalAutosaveSet( post.id, isPostNew, title, content, excerpt );\n\t\t} else {\n\t\t\tawait dispatch.savePost( { isAutosave: true, ...options } );\n\t\t}\n\t};\n\n/**\n * Action that restores last popped state in undo history.\n */\nexport const redo =\n\t() =>\n\t( { registry } ) => {\n\t\tregistry.dispatch( coreStore ).redo();\n\t};\n\n/**\n * Action that pops a record from undo history and undoes the edit.\n */\nexport const undo =\n\t() =>\n\t( { registry } ) => {\n\t\tregistry.dispatch( coreStore ).undo();\n\t};\n\n/**\n * Action that creates an undo history record.\n *\n * @deprecated Since WordPress 6.0\n */\nexport function createUndoLevel() {\n\tdeprecated( \"wp.data.dispatch( 'core/editor' ).createUndoLevel\", {\n\t\tsince: '6.0',\n\t\tversion: '6.3',\n\t\talternative: 'Use the core entities store instead',\n\t} );\n\treturn { type: 'DO_NOTHING' };\n}\n\n/**\n * Action that locks the editor.\n *\n * @param {Object} lock Details about the post lock status, user, and nonce.\n * @return {Object} Action object.\n */\nexport function updatePostLock( lock ) {\n\treturn {\n\t\ttype: 'UPDATE_POST_LOCK',\n\t\tlock,\n\t};\n}\n\n/**\n * Enable the publish sidebar.\n */\nexport const enablePublishSidebar =\n\t() =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'isPublishSidebarEnabled', true );\n\t};\n\n/**\n * Disables the publish sidebar.\n */\nexport const disablePublishSidebar =\n\t() =>\n\t( { registry } ) => {\n\t\tregistry\n\t\t\t.dispatch( preferencesStore )\n\t\t\t.set( 'core/edit-post', 'isPublishSidebarEnabled', false );\n\t};\n\n/**\n * Action that locks post saving.\n *\n * @param {string} lockName The lock name.\n *\n * @example\n * ```\n * const { subscribe } = wp.data;\n *\n * const initialPostStatus = wp.data.select( 'core/editor' ).getEditedPostAttribute( 'status' );\n *\n * // Only allow publishing posts that are set to a future date.\n * if ( 'publish' !== initialPostStatus ) {\n *\n * \t// Track locking.\n * \tlet locked = false;\n *\n * \t// Watch for the publish event.\n * \tlet unssubscribe = subscribe( () => {\n * \t\tconst currentPostStatus = wp.data.select( 'core/editor' ).getEditedPostAttribute( 'status' );\n * \t\tif ( 'publish' !== currentPostStatus ) {\n *\n * \t\t\t// Compare the post date to the current date, lock the post if the date isn't in the future.\n * \t\t\tconst postDate = new Date( wp.data.select( 'core/editor' ).getEditedPostAttribute( 'date' ) );\n * \t\t\tconst currentDate = new Date();\n * \t\t\tif ( postDate.getTime() <= currentDate.getTime() ) {\n * \t\t\t\tif ( ! locked ) {\n * \t\t\t\t\tlocked = true;\n * \t\t\t\t\twp.data.dispatch( 'core/editor' ).lockPostSaving( 'futurelock' );\n * \t\t\t\t}\n * \t\t\t} else {\n * \t\t\t\tif ( locked ) {\n * \t\t\t\t\tlocked = false;\n * \t\t\t\t\twp.data.dispatch( 'core/editor' ).unlockPostSaving( 'futurelock' );\n * \t\t\t\t}\n * \t\t\t}\n * \t\t}\n * \t} );\n * }\n * ```\n *\n * @return {Object} Action object\n */\nexport function lockPostSaving( lockName ) {\n\treturn {\n\t\ttype: 'LOCK_POST_SAVING',\n\t\tlockName,\n\t};\n}\n\n/**\n * Action that unlocks post saving.\n *\n * @param {string} lockName The lock name.\n *\n * @example\n * ```\n * // Unlock post saving with the lock key `mylock`:\n * wp.data.dispatch( 'core/editor' ).unlockPostSaving( 'mylock' );\n * ```\n *\n * @return {Object} Action object\n */\nexport function unlockPostSaving( lockName ) {\n\treturn {\n\t\ttype: 'UNLOCK_POST_SAVING',\n\t\tlockName,\n\t};\n}\n\n/**\n * Action that locks post autosaving.\n *\n * @param {string} lockName The lock name.\n *\n * @example\n * ```\n * // Lock post autosaving with the lock key `mylock`:\n * wp.data.dispatch( 'core/editor' ).lockPostAutosaving( 'mylock' );\n * ```\n *\n * @return {Object} Action object\n */\nexport function lockPostAutosaving( lockName ) {\n\treturn {\n\t\ttype: 'LOCK_POST_AUTOSAVING',\n\t\tlockName,\n\t};\n}\n\n/**\n * Action that unlocks post autosaving.\n *\n * @param {string} lockName The lock name.\n *\n * @example\n * ```\n * // Unlock post saving with the lock key `mylock`:\n * wp.data.dispatch( 'core/editor' ).unlockPostAutosaving( 'mylock' );\n * ```\n *\n * @return {Object} Action object\n */\nexport function unlockPostAutosaving( lockName ) {\n\treturn {\n\t\ttype: 'UNLOCK_POST_AUTOSAVING',\n\t\tlockName,\n\t};\n}\n\n/**\n * Returns an action object used to signal that the blocks have been updated.\n *\n * @param {Array}   blocks  Block Array.\n * @param {?Object} options Optional options.\n */\nexport const resetEditorBlocks =\n\t( blocks, options = {} ) =>\n\t( { select, dispatch, registry } ) => {\n\t\tconst { __unstableShouldCreateUndoLevel, selection } = options;\n\t\tconst edits = { blocks, selection };\n\n\t\tif ( __unstableShouldCreateUndoLevel !== false ) {\n\t\t\tconst { id, type } = select.getCurrentPost();\n\t\t\tconst noChange =\n\t\t\t\tregistry\n\t\t\t\t\t.select( coreStore )\n\t\t\t\t\t.getEditedEntityRecord( 'postType', type, id ).blocks ===\n\t\t\t\tedits.blocks;\n\t\t\tif ( noChange ) {\n\t\t\t\tregistry\n\t\t\t\t\t.dispatch( coreStore )\n\t\t\t\t\t.__unstableCreateUndoLevel( 'postType', type, id );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// We create a new function here on every persistent edit\n\t\t\t// to make sure the edit makes the post dirty and creates\n\t\t\t// a new undo level.\n\t\t\tedits.content = ( { blocks: blocksForSerialization = [] } ) =>\n\t\t\t\t__unstableSerializeAndClean( blocksForSerialization );\n\t\t}\n\n\t\tdispatch.editPost( edits );\n\t};\n\n/*\n * Returns an action object used in signalling that the post editor settings have been updated.\n *\n * @param {Object} settings Updated settings\n *\n * @return {Object} Action object\n */\nexport function updateEditorSettings( settings ) {\n\treturn {\n\t\ttype: 'UPDATE_EDITOR_SETTINGS',\n\t\tsettings,\n\t};\n}\n\n/**\n * Backward compatibility\n */\n\nconst getBlockEditorAction =\n\t( name ) =>\n\t( ...args ) =>\n\t( { registry } ) => {\n\t\tdeprecated( \"`wp.data.dispatch( 'core/editor' ).\" + name + '`', {\n\t\t\tsince: '5.3',\n\t\t\talternative:\n\t\t\t\t\"`wp.data.dispatch( 'core/block-editor' ).\" + name + '`',\n\t\t\tversion: '6.2',\n\t\t} );\n\t\tregistry.dispatch( blockEditorStore )[ name ]( ...args );\n\t};\n\n/**\n * @see resetBlocks in core/block-editor store.\n */\nexport const resetBlocks = getBlockEditorAction( 'resetBlocks' );\n\n/**\n * @see receiveBlocks in core/block-editor store.\n */\nexport const receiveBlocks = getBlockEditorAction( 'receiveBlocks' );\n\n/**\n * @see updateBlock in core/block-editor store.\n */\nexport const updateBlock = getBlockEditorAction( 'updateBlock' );\n\n/**\n * @see updateBlockAttributes in core/block-editor store.\n */\nexport const updateBlockAttributes = getBlockEditorAction(\n\t'updateBlockAttributes'\n);\n\n/**\n * @see selectBlock in core/block-editor store.\n */\nexport const selectBlock = getBlockEditorAction( 'selectBlock' );\n\n/**\n * @see startMultiSelect in core/block-editor store.\n */\nexport const startMultiSelect = getBlockEditorAction( 'startMultiSelect' );\n\n/**\n * @see stopMultiSelect in core/block-editor store.\n */\nexport const stopMultiSelect = getBlockEditorAction( 'stopMultiSelect' );\n\n/**\n * @see multiSelect in core/block-editor store.\n */\nexport const multiSelect = getBlockEditorAction( 'multiSelect' );\n\n/**\n * @see clearSelectedBlock in core/block-editor store.\n */\nexport const clearSelectedBlock = getBlockEditorAction( 'clearSelectedBlock' );\n\n/**\n * @see toggleSelection in core/block-editor store.\n */\nexport const toggleSelection = getBlockEditorAction( 'toggleSelection' );\n\n/**\n * @see replaceBlocks in core/block-editor store.\n */\nexport const replaceBlocks = getBlockEditorAction( 'replaceBlocks' );\n\n/**\n * @see replaceBlock in core/block-editor store.\n */\nexport const replaceBlock = getBlockEditorAction( 'replaceBlock' );\n\n/**\n * @see moveBlocksDown in core/block-editor store.\n */\nexport const moveBlocksDown = getBlockEditorAction( 'moveBlocksDown' );\n\n/**\n * @see moveBlocksUp in core/block-editor store.\n */\nexport const moveBlocksUp = getBlockEditorAction( 'moveBlocksUp' );\n\n/**\n * @see moveBlockToPosition in core/block-editor store.\n */\nexport const moveBlockToPosition = getBlockEditorAction(\n\t'moveBlockToPosition'\n);\n\n/**\n * @see insertBlock in core/block-editor store.\n */\nexport const insertBlock = getBlockEditorAction( 'insertBlock' );\n\n/**\n * @see insertBlocks in core/block-editor store.\n */\nexport const insertBlocks = getBlockEditorAction( 'insertBlocks' );\n\n/**\n * @see showInsertionPoint in core/block-editor store.\n */\nexport const showInsertionPoint = getBlockEditorAction( 'showInsertionPoint' );\n\n/**\n * @see hideInsertionPoint in core/block-editor store.\n */\nexport const hideInsertionPoint = getBlockEditorAction( 'hideInsertionPoint' );\n\n/**\n * @see setTemplateValidity in core/block-editor store.\n */\nexport const setTemplateValidity = getBlockEditorAction(\n\t'setTemplateValidity'\n);\n\n/**\n * @see synchronizeTemplate in core/block-editor store.\n */\nexport const synchronizeTemplate = getBlockEditorAction(\n\t'synchronizeTemplate'\n);\n\n/**\n * @see mergeBlocks in core/block-editor store.\n */\nexport const mergeBlocks = getBlockEditorAction( 'mergeBlocks' );\n\n/**\n * @see removeBlocks in core/block-editor store.\n */\nexport const removeBlocks = getBlockEditorAction( 'removeBlocks' );\n\n/**\n * @see removeBlock in core/block-editor store.\n */\nexport const removeBlock = getBlockEditorAction( 'removeBlock' );\n\n/**\n * @see toggleBlockMode in core/block-editor store.\n */\nexport const toggleBlockMode = getBlockEditorAction( 'toggleBlockMode' );\n\n/**\n * @see startTyping in core/block-editor store.\n */\nexport const startTyping = getBlockEditorAction( 'startTyping' );\n\n/**\n * @see stopTyping in core/block-editor store.\n */\nexport const stopTyping = getBlockEditorAction( 'stopTyping' );\n\n/**\n * @see enterFormattedText in core/block-editor store.\n */\nexport const enterFormattedText = getBlockEditorAction( 'enterFormattedText' );\n\n/**\n * @see exitFormattedText in core/block-editor store.\n */\nexport const exitFormattedText = getBlockEditorAction( 'exitFormattedText' );\n\n/**\n * @see insertDefaultBlock in core/block-editor store.\n */\nexport const insertDefaultBlock = getBlockEditorAction( 'insertDefaultBlock' );\n\n/**\n * @see updateBlockListSettings in core/block-editor store.\n */\nexport const updateBlockListSettings = getBlockEditorAction(\n\t'updateBlockListSettings'\n);\n","/**\n * WordPress dependencies\n */\nimport { createReduxStore, register } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport reducer from './reducer';\nimport * as selectors from './selectors';\nimport * as actions from './actions';\nimport { STORE_NAME } from './constants';\n\n/**\n * Post editor data store configuration.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#registerStore\n *\n * @type {Object}\n */\nexport const storeConfig = {\n\treducer,\n\tselectors,\n\tactions,\n};\n\n/**\n * Store definition for the editor namespace.\n *\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/data/README.md#createReduxStore\n *\n * @type {Object}\n */\nexport const store = createReduxStore( STORE_NAME, {\n\t...storeConfig,\n} );\n\nregister( store );\n","/**\n * External dependencies\n */\nimport { pickBy, mapValues, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { store as blocksStore } from '@wordpress/blocks';\nimport { select as globalSelect, useSelect } from '@wordpress/data';\nimport { useEntityProp } from '@wordpress/core-data';\nimport { useMemo } from '@wordpress/element';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../store';\n\n/** @typedef {import('@wordpress/compose').WPHigherOrderComponent} WPHigherOrderComponent */\n/** @typedef {import('@wordpress/blocks').WPBlockSettings} WPBlockSettings */\n\n/**\n * Object whose keys are the names of block attributes, where each value\n * represents the meta key to which the block attribute is intended to save.\n *\n * @see https://developer.wordpress.org/reference/functions/register_meta/\n *\n * @typedef {Object<string,string>} WPMetaAttributeMapping\n */\n\n/**\n * Given a mapping of attribute names (meta source attributes) to their\n * associated meta key, returns a higher order component that overrides its\n * `attributes` and `setAttributes` props to sync any changes with the edited\n * post's meta keys.\n *\n * @param {WPMetaAttributeMapping} metaAttributes Meta attribute mapping.\n *\n * @return {WPHigherOrderComponent} Higher-order component.\n */\nconst createWithMetaAttributeSource = ( metaAttributes ) =>\n\tcreateHigherOrderComponent(\n\t\t( BlockEdit ) =>\n\t\t\t( { attributes, setAttributes, ...props } ) => {\n\t\t\t\tconst postType = useSelect(\n\t\t\t\t\t( select ) => select( editorStore ).getCurrentPostType(),\n\t\t\t\t\t[]\n\t\t\t\t);\n\t\t\t\tconst [ meta, setMeta ] = useEntityProp(\n\t\t\t\t\t'postType',\n\t\t\t\t\tpostType,\n\t\t\t\t\t'meta'\n\t\t\t\t);\n\n\t\t\t\tconst mergedAttributes = useMemo(\n\t\t\t\t\t() => ( {\n\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t...mapValues(\n\t\t\t\t\t\t\tmetaAttributes,\n\t\t\t\t\t\t\t( metaKey ) => meta[ metaKey ]\n\t\t\t\t\t\t),\n\t\t\t\t\t} ),\n\t\t\t\t\t[ attributes, meta ]\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\tattributes={ mergedAttributes }\n\t\t\t\t\t\tsetAttributes={ ( nextAttributes ) => {\n\t\t\t\t\t\t\tconst nextMeta = Object.fromEntries(\n\t\t\t\t\t\t\t\tObject.entries(\n\t\t\t\t\t\t\t\t\t// Filter to intersection of keys between the updated\n\t\t\t\t\t\t\t\t\t// attributes and those with an associated meta key.\n\t\t\t\t\t\t\t\t\tpickBy(\n\t\t\t\t\t\t\t\t\t\tnextAttributes,\n\t\t\t\t\t\t\t\t\t\t( value, key ) => metaAttributes[ key ]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t).map( ( [ attributeKey, value ] ) => [\n\t\t\t\t\t\t\t\t\t// Rename the keys to the expected meta key name.\n\t\t\t\t\t\t\t\t\tmetaAttributes[ attributeKey ],\n\t\t\t\t\t\t\t\t\tvalue,\n\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( ! isEmpty( nextMeta ) ) {\n\t\t\t\t\t\t\t\tsetMeta( nextMeta );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetAttributes( nextAttributes );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t'withMetaAttributeSource'\n\t);\n\n/**\n * Filters a registered block's settings to enhance a block's `edit` component\n * to upgrade meta-sourced attributes to use the post's meta entity property.\n *\n * @param {WPBlockSettings} settings Registered block settings.\n *\n * @return {WPBlockSettings} Filtered block settings.\n */\nfunction shimAttributeSource( settings ) {\n\t/** @type {WPMetaAttributeMapping} */\n\tconst metaAttributes = mapValues(\n\t\tpickBy( settings.attributes, { source: 'meta' } ),\n\t\t'meta'\n\t);\n\tif ( ! isEmpty( metaAttributes ) ) {\n\t\tsettings.edit = createWithMetaAttributeSource( metaAttributes )(\n\t\t\tsettings.edit\n\t\t);\n\t}\n\n\treturn settings;\n}\n\naddFilter(\n\t'blocks.registerBlockType',\n\t'core/editor/custom-sources-backwards-compatibility/shim-attribute-source',\n\tshimAttributeSource\n);\n\n// The above filter will only capture blocks registered after the filter was\n// added. There may already be blocks registered by this point, and those must\n// be updated to apply the shim.\n//\n// The following implementation achieves this, albeit with a couple caveats:\n// - Only blocks registered on the global store will be modified.\n// - The block settings are directly mutated, since there is currently no\n//   mechanism to update an existing block registration. This is the reason for\n//   `getBlockType` separate from `getBlockTypes`, since the latter returns a\n//   _copy_ of the block registration (i.e. the mutation would not affect the\n//   actual registered block settings).\n//\n// `getBlockTypes` or `getBlockType` implementation could change in the future\n// in regards to creating settings clones, but the corresponding end-to-end\n// tests for meta blocks should cover against any potential regressions.\n//\n// In the future, we could support updating block settings, at which point this\n// implementation could use that mechanism instead.\nglobalSelect( blocksStore )\n\t.getBlockTypes()\n\t.map( ( { name } ) => globalSelect( blocksStore ).getBlockType( name ) )\n\t.forEach( shimAttributeSource );\n","/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\nexport function getUserLabel( user ) {\n\tconst avatar =\n\t\tuser.avatar_urls && user.avatar_urls[ 24 ] ? (\n\t\t\t<img\n\t\t\t\tclassName=\"editor-autocompleters__user-avatar\"\n\t\t\t\talt=\"\"\n\t\t\t\tsrc={ user.avatar_urls[ 24 ] }\n\t\t\t/>\n\t\t) : (\n\t\t\t<span className=\"editor-autocompleters__no-avatar\"></span>\n\t\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ avatar }\n\t\t\t<span className=\"editor-autocompleters__user-name\">\n\t\t\t\t{ user.name }\n\t\t\t</span>\n\t\t\t<span className=\"editor-autocompleters__user-slug\">\n\t\t\t\t{ user.slug }\n\t\t\t</span>\n\t\t</>\n\t);\n}\n\n/**\n * A user mentions completer.\n *\n * @type {WPCompleter}\n */\nexport default {\n\tname: 'users',\n\tclassName: 'editor-autocompleters__user',\n\ttriggerPrefix: '@',\n\n\tuseItems( filterValue ) {\n\t\tconst users = useSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst { getUsers } = select( coreStore );\n\t\t\t\treturn getUsers( {\n\t\t\t\t\tcontext: 'view',\n\t\t\t\t\tsearch: encodeURIComponent( filterValue ),\n\t\t\t\t} );\n\t\t\t},\n\t\t\t[ filterValue ]\n\t\t);\n\n\t\tconst options = useMemo(\n\t\t\t() =>\n\t\t\t\tusers\n\t\t\t\t\t? users.map( ( user ) => ( {\n\t\t\t\t\t\t\tkey: `user-${ user.slug }`,\n\t\t\t\t\t\t\tvalue: user,\n\t\t\t\t\t\t\tlabel: getUserLabel( user ),\n\t\t\t\t\t  } ) )\n\t\t\t\t\t: [],\n\t\t\t[ users ]\n\t\t);\n\n\t\treturn [ options ];\n\t},\n\n\tgetOptionCompletion( user ) {\n\t\treturn `@${ user.slug }`;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { clone } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { addFilter } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { userAutocompleter } from '../components';\n\nfunction setDefaultCompleters( completers = [] ) {\n\t// Provide copies so filters may directly modify them.\n\tcompleters.push( clone( userAutocompleter ) );\n\n\treturn completers;\n}\n\naddFilter(\n\t'editor.Autocomplete.completers',\n\t'editor/autocompleters/set-default-completers',\n\tsetDefaultCompleters\n);\n","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } 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 * AutosaveMonitor invokes `props.autosave()` within at most `interval` seconds after an unsaved change is detected.\n *\n * The logic is straightforward: a check is performed every `props.interval` seconds. If any changes are detected, `props.autosave()` is called.\n * The time between the change and the autosave varies but is no larger than `props.interval` seconds. Refer to the code below for more details, such as\n * the specific way of detecting changes.\n *\n * There are two caveats:\n * * If `props.isAutosaveable` happens to be false at a time of checking for changes, the check is retried every second.\n * * The timer may be disabled by setting `props.disableIntervalChecks` to `true`. In that mode, any change will immediately trigger `props.autosave()`.\n */\nexport class AutosaveMonitor extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.needsAutosave = !! ( props.isDirty && props.isAutosaveable );\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( ! this.props.disableIntervalChecks ) {\n\t\t\tthis.setAutosaveTimer();\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( this.props.disableIntervalChecks ) {\n\t\t\tif ( this.props.editsReference !== prevProps.editsReference ) {\n\t\t\t\tthis.props.autosave();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.props.interval !== prevProps.interval ) {\n\t\t\tclearTimeout( this.timerId );\n\t\t\tthis.setAutosaveTimer();\n\t\t}\n\n\t\tif ( ! this.props.isDirty ) {\n\t\t\tthis.needsAutosave = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.props.isAutosaving && ! prevProps.isAutosaving ) {\n\t\t\tthis.needsAutosave = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.props.editsReference !== prevProps.editsReference ) {\n\t\t\tthis.needsAutosave = true;\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timerId );\n\t}\n\n\tsetAutosaveTimer( timeout = this.props.interval * 1000 ) {\n\t\tthis.timerId = setTimeout( () => {\n\t\t\tthis.autosaveTimerHandler();\n\t\t}, timeout );\n\t}\n\n\tautosaveTimerHandler() {\n\t\tif ( ! this.props.isAutosaveable ) {\n\t\t\tthis.setAutosaveTimer( 1000 );\n\t\t\treturn;\n\t\t}\n\n\t\tif ( this.needsAutosave ) {\n\t\t\tthis.needsAutosave = false;\n\t\t\tthis.props.autosave();\n\t\t}\n\n\t\tthis.setAutosaveTimer();\n\t}\n\n\trender() {\n\t\treturn null;\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst { getReferenceByDistinctEdits } = select( coreStore );\n\n\t\tconst {\n\t\t\tisEditedPostDirty,\n\t\t\tisEditedPostAutosaveable,\n\t\t\tisAutosavingPost,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\n\t\tconst { interval = getEditorSettings().autosaveInterval } = ownProps;\n\n\t\treturn {\n\t\t\teditsReference: getReferenceByDistinctEdits(),\n\t\t\tisDirty: isEditedPostDirty(),\n\t\t\tisAutosaveable: isEditedPostAutosaveable(),\n\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\tinterval,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => ( {\n\t\tautosave() {\n\t\t\tconst { autosave = dispatch( editorStore ).autosave } = ownProps;\n\t\t\tautosave();\n\t\t},\n\t} ) ),\n] )( AutosaveMonitor );\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"richText\"];","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nconst TableOfContentsItem = ( {\n\tchildren,\n\tisValid,\n\tlevel,\n\thref,\n\tonSelect,\n} ) => (\n\t<li\n\t\tclassName={ classnames(\n\t\t\t'document-outline__item',\n\t\t\t`is-${ level.toLowerCase() }`,\n\t\t\t{\n\t\t\t\t'is-invalid': ! isValid,\n\t\t\t}\n\t\t) }\n\t>\n\t\t<a\n\t\t\thref={ href }\n\t\t\tclassName=\"document-outline__button\"\n\t\t\tonClick={ onSelect }\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName=\"document-outline__emdash\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t></span>\n\t\t\t<strong className=\"document-outline__level\">{ level }</strong>\n\t\t\t<span className=\"document-outline__item-content\">{ children }</span>\n\t\t</a>\n\t</li>\n);\n\nexport default TableOfContentsItem;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { create, getTextContent } from '@wordpress/rich-text';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport DocumentOutlineItem from './item';\nimport { store as editorStore } from '../../store';\n\n/**\n * Module constants\n */\nconst emptyHeadingContent = <em>{ __( '(Empty heading)' ) }</em>;\nconst incorrectLevelContent = [\n\t<br key=\"incorrect-break\" />,\n\t<em key=\"incorrect-message\">{ __( '(Incorrect heading level)' ) }</em>,\n];\nconst singleH1Headings = [\n\t<br key=\"incorrect-break-h1\" />,\n\t<em key=\"incorrect-message-h1\">\n\t\t{ __( '(Your theme may already use a H1 for the post title)' ) }\n\t</em>,\n];\nconst multipleH1Headings = [\n\t<br key=\"incorrect-break-multiple-h1\" />,\n\t<em key=\"incorrect-message-multiple-h1\">\n\t\t{ __( '(Multiple H1 headings are not recommended)' ) }\n\t</em>,\n];\n\n/**\n * Returns an array of heading blocks enhanced with the following properties:\n * level   - An integer with the heading level.\n * isEmpty - Flag indicating if the heading has no content.\n *\n * @param {?Array} blocks An array of blocks.\n *\n * @return {Array} An array of heading blocks enhanced with the properties described above.\n */\nconst computeOutlineHeadings = ( blocks = [] ) => {\n\treturn blocks.flatMap( ( block = {} ) => {\n\t\tif ( block.name === 'core/heading' ) {\n\t\t\treturn {\n\t\t\t\t...block,\n\t\t\t\tlevel: block.attributes.level,\n\t\t\t\tisEmpty: isEmptyHeading( block ),\n\t\t\t};\n\t\t}\n\t\treturn computeOutlineHeadings( block.innerBlocks );\n\t} );\n};\n\nconst isEmptyHeading = ( heading ) =>\n\t! heading.attributes.content || heading.attributes.content.length === 0;\n\nexport const DocumentOutline = ( {\n\tblocks = [],\n\ttitle,\n\tonSelect,\n\tisTitleSupported,\n\thasOutlineItemsDisabled,\n} ) => {\n\tconst headings = computeOutlineHeadings( blocks );\n\n\tif ( headings.length < 1 ) {\n\t\treturn null;\n\t}\n\n\tlet prevHeadingLevel = 1;\n\n\t// Not great but it's the simplest way to locate the title right now.\n\tconst titleNode = document.querySelector( '.editor-post-title__input' );\n\tconst hasTitle = isTitleSupported && title && titleNode;\n\tconst countByLevel = headings.reduce(\n\t\t( acc, heading ) => ( {\n\t\t\t...acc,\n\t\t\t[ heading.level ]: ( acc[ heading.level ] || 0 ) + 1,\n\t\t} ),\n\t\t{}\n\t);\n\tconst hasMultipleH1 = countByLevel[ 1 ] > 1;\n\n\treturn (\n\t\t<div className=\"document-outline\">\n\t\t\t<ul>\n\t\t\t\t{ hasTitle && (\n\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\tlevel={ __( 'Title' ) }\n\t\t\t\t\t\tisValid\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\thref={ `#${ titleNode.id }` }\n\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ title }\n\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t) }\n\t\t\t\t{ headings.map( ( item, index ) => {\n\t\t\t\t\t// Headings remain the same, go up by one, or down by any amount.\n\t\t\t\t\t// Otherwise there are missing levels.\n\t\t\t\t\tconst isIncorrectLevel = item.level > prevHeadingLevel + 1;\n\n\t\t\t\t\tconst isValid =\n\t\t\t\t\t\t! item.isEmpty &&\n\t\t\t\t\t\t! isIncorrectLevel &&\n\t\t\t\t\t\t!! item.level &&\n\t\t\t\t\t\t( item.level !== 1 ||\n\t\t\t\t\t\t\t( ! hasMultipleH1 && ! hasTitle ) );\n\t\t\t\t\tprevHeadingLevel = item.level;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<DocumentOutlineItem\n\t\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\t\tlevel={ `H${ item.level }` }\n\t\t\t\t\t\t\tisValid={ isValid }\n\t\t\t\t\t\t\tisDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t\t\thref={ `#block-${ item.clientId }` }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ item.isEmpty\n\t\t\t\t\t\t\t\t? emptyHeadingContent\n\t\t\t\t\t\t\t\t: getTextContent(\n\t\t\t\t\t\t\t\t\t\tcreate( {\n\t\t\t\t\t\t\t\t\t\t\thtml: item.attributes.content,\n\t\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{ isIncorrectLevel && incorrectLevelContent }\n\t\t\t\t\t\t\t{ item.level === 1 &&\n\t\t\t\t\t\t\t\thasMultipleH1 &&\n\t\t\t\t\t\t\t\tmultipleH1Headings }\n\t\t\t\t\t\t\t{ hasTitle &&\n\t\t\t\t\t\t\t\titem.level === 1 &&\n\t\t\t\t\t\t\t\t! hasMultipleH1 &&\n\t\t\t\t\t\t\t\tsingleH1Headings }\n\t\t\t\t\t\t</DocumentOutlineItem>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t</div>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { getBlocks } = select( blockEditorStore );\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\tblocks: getBlocks(),\n\t\t\tisTitleSupported: postType?.supports?.title ?? false,\n\t\t};\n\t} )\n)( DocumentOutline );\n","/**\n * External dependencies\n */\nimport { filter } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction DocumentOutlineCheck( { blocks, children } ) {\n\tconst headings = filter(\n\t\tblocks,\n\t\t( block ) => block.name === 'core/heading'\n\t);\n\n\tif ( headings.length < 1 ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => ( {\n\tblocks: select( blockEditorStore ).getBlocks(),\n} ) )( DocumentOutlineCheck );\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"keyboardShortcuts\"];","/**\n * WordPress dependencies\n */\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { parse } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction SaveShortcut( { resetBlocksOnSave } ) {\n\tconst { resetEditorBlocks, savePost } = useDispatch( editorStore );\n\tconst { isEditedPostDirty, getPostEdits, isPostSavingLocked } =\n\t\tuseSelect( editorStore );\n\n\tuseShortcut( 'core/editor/save', ( event ) => {\n\t\tevent.preventDefault();\n\n\t\t/**\n\t\t * Do not save the post if post saving is locked.\n\t\t */\n\t\tif ( isPostSavingLocked() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// TODO: This should be handled in the `savePost` effect in\n\t\t// considering `isSaveable`. See note on `isEditedPostSaveable`\n\t\t// selector about dirtiness and meta-boxes.\n\t\t//\n\t\t// See: `isEditedPostSaveable`\n\t\tif ( ! isEditedPostDirty() ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The text editor requires that editor blocks are updated for a\n\t\t// save to work correctly. Usually this happens when the textarea\n\t\t// for the code editors blurs, but the shortcut can be used without\n\t\t// blurring the textarea.\n\t\tif ( resetBlocksOnSave ) {\n\t\t\tconst postEdits = getPostEdits();\n\t\t\tif ( postEdits.content && typeof postEdits.content === 'string' ) {\n\t\t\t\tconst blocks = parse( postEdits.content );\n\t\t\t\tresetEditorBlocks( blocks );\n\t\t\t}\n\t\t}\n\n\t\tsavePost();\n\t} );\n\n\treturn null;\n}\n\nexport default SaveShortcut;\n","/**\n * WordPress dependencies\n */\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\nimport { useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SaveShortcut from './save-shortcut';\nimport { store as editorStore } from '../../store';\n\nfunction VisualEditorGlobalKeyboardShortcuts() {\n\tconst { redo, undo } = useDispatch( editorStore );\n\n\tuseShortcut( 'core/editor/undo', ( event ) => {\n\t\tundo();\n\t\tevent.preventDefault();\n\t} );\n\n\tuseShortcut( 'core/editor/redo', ( event ) => {\n\t\tredo();\n\t\tevent.preventDefault();\n\t} );\n\n\treturn <SaveShortcut />;\n}\n\nexport default VisualEditorGlobalKeyboardShortcuts;\n","/**\n * Internal dependencies\n */\nimport SaveShortcut from './save-shortcut';\n\nexport default function TextEditorGlobalKeyboardShortcuts() {\n\treturn <SaveShortcut resetBlocksOnSave />;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"keycodes\"];","/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { BlockEditorKeyboardShortcuts } from '@wordpress/block-editor';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\nimport { isAppleOS } from '@wordpress/keycodes';\n\nfunction EditorKeyboardShortcutsRegister() {\n\t// Registering the shortcuts.\n\tconst { registerShortcut } = useDispatch( keyboardShortcutsStore );\n\tuseEffect( () => {\n\t\tregisterShortcut( {\n\t\t\tname: 'core/editor/save',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Save your changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 's',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/editor/undo',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Undo your last changes.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primary',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t} );\n\n\t\tregisterShortcut( {\n\t\t\tname: 'core/editor/redo',\n\t\t\tcategory: 'global',\n\t\t\tdescription: __( 'Redo your last undo.' ),\n\t\t\tkeyCombination: {\n\t\t\t\tmodifier: 'primaryShift',\n\t\t\t\tcharacter: 'z',\n\t\t\t},\n\t\t\t// Disable on Apple OS because it conflicts with the browser's\n\t\t\t// history shortcut. It's a fine alias for both Windows and Linux.\n\t\t\t// Since there's no conflict for Ctrl+Shift+Z on both Windows and\n\t\t\t// Linux, we keep it as the default for consistency.\n\t\t\taliases: isAppleOS()\n\t\t\t\t? []\n\t\t\t\t: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tmodifier: 'primary',\n\t\t\t\t\t\t\tcharacter: 'y',\n\t\t\t\t\t\t},\n\t\t\t\t  ],\n\t\t} );\n\t}, [ registerShortcut ] );\n\n\treturn <BlockEditorKeyboardShortcuts.Register />;\n}\n\nexport default EditorKeyboardShortcutsRegister;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"components\"];","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst redo = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M15.6 6.5l-1.1 1 2.9 3.3H8c-.9 0-1.7.3-2.3.9-1.4 1.5-1.4 4.2-1.4 5.6v.2h1.5v-.3c0-1.1 0-3.5 1-4.5.3-.3.7-.5 1.3-.5h9.2L14.5 15l1.1 1.1 4.6-4.6-4.6-5z\" />\n\t</SVG>\n);\n\nexport default redo;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst undo = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M18.3 11.7c-.6-.6-1.4-.9-2.3-.9H6.7l2.9-3.3-1.1-1-4.5 5L8.5 16l1-1-2.7-2.7H16c.5 0 .9.2 1.3.5 1 1 1 3.4 1 4.5v.3h1.5v-.2c0-1.5 0-4.3-1.5-5.7z\" />\n\t</SVG>\n);\n\nexport default undo;\n","/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { displayShortcut, isAppleOS } from '@wordpress/keycodes';\nimport { redo as redoIcon, undo as undoIcon } from '@wordpress/icons';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction EditorHistoryRedo( props, ref ) {\n\tconst shortcut = isAppleOS()\n\t\t? displayShortcut.primaryShift( 'z' )\n\t\t: displayShortcut.primary( 'y' );\n\n\tconst hasRedo = useSelect(\n\t\t( select ) => select( editorStore ).hasEditorRedo(),\n\t\t[]\n\t);\n\tconst { redo } = useDispatch( editorStore );\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tref={ ref }\n\t\t\ticon={ ! isRTL() ? redoIcon : undoIcon }\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\tlabel={ __( 'Redo' ) }\n\t\t\tshortcut={ shortcut }\n\t\t\t// If there are no redo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasRedo }\n\t\t\tonClick={ hasRedo ? redo : undefined }\n\t\t\tclassName=\"editor-history__redo\"\n\t\t/>\n\t);\n}\n\nexport default forwardRef( EditorHistoryRedo );\n","/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { displayShortcut } from '@wordpress/keycodes';\nimport { undo as undoIcon, redo as redoIcon } from '@wordpress/icons';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction EditorHistoryUndo( props, ref ) {\n\tconst hasUndo = useSelect(\n\t\t( select ) => select( editorStore ).hasEditorUndo(),\n\t\t[]\n\t);\n\tconst { undo } = useDispatch( editorStore );\n\treturn (\n\t\t<Button\n\t\t\t{ ...props }\n\t\t\tref={ ref }\n\t\t\ticon={ ! isRTL() ? undoIcon : redoIcon }\n\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\tlabel={ __( 'Undo' ) }\n\t\t\tshortcut={ displayShortcut.primary( 'z' ) }\n\t\t\t// If there are no undo levels we don't want to actually disable this\n\t\t\t// button, because it will remove focus for keyboard users.\n\t\t\t// See: https://github.com/WordPress/gutenberg/issues/3486\n\t\t\taria-disabled={ ! hasUndo }\n\t\t\tonClick={ hasUndo ? undo : undefined }\n\t\t\tclassName=\"editor-history__undo\"\n\t\t/>\n\t);\n}\n\nexport default forwardRef( EditorHistoryUndo );\n","/**\n * WordPress dependencies\n */\nimport { Notice } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\nfunction TemplateValidationNotice( { isValid, ...props } ) {\n\tif ( isValid ) {\n\t\treturn null;\n\t}\n\n\tconst confirmSynchronization = () => {\n\t\tif (\n\t\t\t// eslint-disable-next-line no-alert\n\t\t\twindow.confirm(\n\t\t\t\t__(\n\t\t\t\t\t'Resetting the template may result in loss of content, do you want to continue?'\n\t\t\t\t)\n\t\t\t)\n\t\t) {\n\t\t\tprops.synchronizeTemplate();\n\t\t}\n\t};\n\n\treturn (\n\t\t<Notice\n\t\t\tclassName=\"editor-template-validation-notice\"\n\t\t\tisDismissible={ false }\n\t\t\tstatus=\"warning\"\n\t\t\tactions={ [\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Keep it as is' ),\n\t\t\t\t\tonClick: props.resetTemplateValidity,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: __( 'Reset the template' ),\n\t\t\t\t\tonClick: confirmSynchronization,\n\t\t\t\t},\n\t\t\t] }\n\t\t>\n\t\t\t{ __(\n\t\t\t\t'The content of your post doesn’t match the template assigned to your post type.'\n\t\t\t) }\n\t\t</Notice>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => ( {\n\t\tisValid: select( blockEditorStore ).isValidTemplate(),\n\t} ) ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { setTemplateValidity, synchronizeTemplate } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tresetTemplateValidity: () => setTemplateValidity( true ),\n\t\t\tsynchronizeTemplate,\n\t\t};\n\t} ),\n] )( TemplateValidationNotice );\n","/**\n * External dependencies\n */\nimport { filter } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { NoticeList } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport TemplateValidationNotice from '../template-validation-notice';\n\nexport function EditorNotices( { notices, onRemove } ) {\n\tconst dismissibleNotices = filter( notices, {\n\t\tisDismissible: true,\n\t\ttype: 'default',\n\t} );\n\tconst nonDismissibleNotices = filter( notices, {\n\t\tisDismissible: false,\n\t\ttype: 'default',\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<NoticeList\n\t\t\t\tnotices={ nonDismissibleNotices }\n\t\t\t\tclassName=\"components-editor-notices__pinned\"\n\t\t\t/>\n\t\t\t<NoticeList\n\t\t\t\tnotices={ dismissibleNotices }\n\t\t\t\tclassName=\"components-editor-notices__dismissible\"\n\t\t\t\tonRemove={ onRemove }\n\t\t\t>\n\t\t\t\t<TemplateValidationNotice />\n\t\t\t</NoticeList>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => ( {\n\t\tnotices: select( noticesStore ).getNotices(),\n\t} ) ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tonRemove: dispatch( noticesStore ).removeNotice,\n\t} ) ),\n] )( EditorNotices );\n","/**\n * External dependencies\n */\nimport { filter } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { SnackbarList } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\n\nexport default function EditorSnackbars() {\n\tconst notices = useSelect(\n\t\t( select ) => select( noticesStore ).getNotices(),\n\t\t[]\n\t);\n\tconst { removeNotice } = useDispatch( noticesStore );\n\tconst snackbarNotices = filter( notices, {\n\t\ttype: 'snackbar',\n\t} );\n\n\treturn (\n\t\t<SnackbarList\n\t\t\tnotices={ snackbarNotices }\n\t\t\tclassName=\"components-editor-notices__snackbar\"\n\t\t\tonRemove={ removeNotice }\n\t\t/>\n\t);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"htmlEntities\"];","/**\n * WordPress dependencies\n */\nimport { CheckboxControl, Button, PanelRow } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function EntityRecordItem( {\n\trecord,\n\tchecked,\n\tonChange,\n\tclosePanel,\n} ) {\n\tconst { name, kind, title, key } = record;\n\tconst parentBlockId = useSelect( ( select ) => {\n\t\t// Get entity's blocks.\n\t\tconst { blocks = [] } = select( coreStore ).getEditedEntityRecord(\n\t\t\tkind,\n\t\t\tname,\n\t\t\tkey\n\t\t);\n\t\t// Get parents of the entity's first block.\n\t\tconst parents = select( blockEditorStore ).getBlockParents(\n\t\t\tblocks[ 0 ]?.clientId\n\t\t);\n\t\t// Return closest parent block's clientId.\n\t\treturn parents[ parents.length - 1 ];\n\t}, [] );\n\n\t// Handle templates that might use default descriptive titles.\n\tconst entityRecordTitle = useSelect(\n\t\t( select ) => {\n\t\t\tif ( 'postType' !== kind || 'wp_template' !== name ) {\n\t\t\t\treturn title;\n\t\t\t}\n\n\t\t\tconst template = select( coreStore ).getEditedEntityRecord(\n\t\t\t\tkind,\n\t\t\t\tname,\n\t\t\t\tkey\n\t\t\t);\n\t\t\treturn select( editorStore ).__experimentalGetTemplateInfo(\n\t\t\t\ttemplate\n\t\t\t).title;\n\t\t},\n\t\t[ name, kind, title, key ]\n\t);\n\n\tconst isSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst selectedBlockId =\n\t\t\t\tselect( blockEditorStore ).getSelectedBlockClientId();\n\t\t\treturn selectedBlockId === parentBlockId;\n\t\t},\n\t\t[ parentBlockId ]\n\t);\n\tconst isSelectedText = isSelected ? __( 'Selected' ) : __( 'Select' );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst selectParentBlock = useCallback(\n\t\t() => selectBlock( parentBlockId ),\n\t\t[ parentBlockId ]\n\t);\n\tconst selectAndDismiss = useCallback( () => {\n\t\tselectBlock( parentBlockId );\n\t\tclosePanel();\n\t}, [ parentBlockId ] );\n\n\treturn (\n\t\t<PanelRow>\n\t\t\t<CheckboxControl\n\t\t\t\tlabel={\n\t\t\t\t\t<strong>\n\t\t\t\t\t\t{ decodeEntities( entityRecordTitle ) ||\n\t\t\t\t\t\t\t__( 'Untitled' ) }\n\t\t\t\t\t</strong>\n\t\t\t\t}\n\t\t\t\tchecked={ checked }\n\t\t\t\tonChange={ onChange }\n\t\t\t/>\n\t\t\t{ parentBlockId ? (\n\t\t\t\t<>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ selectParentBlock }\n\t\t\t\t\t\tclassName=\"entities-saved-states__find-entity\"\n\t\t\t\t\t\tdisabled={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelectedText }\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tonClick={ selectAndDismiss }\n\t\t\t\t\t\tclassName=\"entities-saved-states__find-entity-small\"\n\t\t\t\t\t\tdisabled={ isSelected }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelectedText }\n\t\t\t\t\t</Button>\n\t\t\t\t</>\n\t\t\t) : null }\n\t\t</PanelRow>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { some } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody, PanelRow } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport EntityRecordItem from './entity-record-item';\n\nfunction getEntityDescription( entity, count ) {\n\tswitch ( entity ) {\n\t\tcase 'site':\n\t\t\treturn 1 === count\n\t\t\t\t? __( 'This change will affect your whole site.' )\n\t\t\t\t: __( 'These changes will affect your whole site.' );\n\t\tcase 'wp_template':\n\t\t\treturn __(\n\t\t\t\t'This change will affect pages and posts that use this template.'\n\t\t\t);\n\t\tcase 'page':\n\t\tcase 'post':\n\t\t\treturn __( 'The following content has been modified.' );\n\t}\n}\n\nexport default function EntityTypeList( {\n\tlist,\n\tunselectedEntities,\n\tsetUnselectedEntities,\n\tclosePanel,\n} ) {\n\tconst count = list.length;\n\tconst firstRecord = list[ 0 ];\n\tconst entityConfig = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityConfig(\n\t\t\t\tfirstRecord.kind,\n\t\t\t\tfirstRecord.name\n\t\t\t),\n\t\t[ firstRecord.kind, firstRecord.name ]\n\t);\n\tconst { name } = firstRecord;\n\n\tlet entityLabel = entityConfig.label;\n\tif ( name === 'wp_template_part' ) {\n\t\tentityLabel =\n\t\t\t1 === count ? __( 'Template Part' ) : __( 'Template Parts' );\n\t}\n\t// Set description based on type of entity.\n\tconst description = getEntityDescription( name, count );\n\n\treturn (\n\t\t<PanelBody title={ entityLabel } initialOpen={ true }>\n\t\t\t{ description && <PanelRow>{ description }</PanelRow> }\n\t\t\t{ list.map( ( record ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityRecordItem\n\t\t\t\t\t\tkey={ record.key || record.property }\n\t\t\t\t\t\trecord={ record }\n\t\t\t\t\t\tchecked={\n\t\t\t\t\t\t\t! some(\n\t\t\t\t\t\t\t\tunselectedEntities,\n\t\t\t\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\t\t\t\telt.kind === record.kind &&\n\t\t\t\t\t\t\t\t\telt.name === record.name &&\n\t\t\t\t\t\t\t\t\telt.key === record.key &&\n\t\t\t\t\t\t\t\t\telt.property === record.property\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetUnselectedEntities( record, value )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tclosePanel={ closePanel }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</PanelBody>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { some, groupBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Button, Flex, FlexItem } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useState, useCallback, useRef } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { __experimentalUseDialog as useDialog } from '@wordpress/compose';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport EntityTypeList from './entity-type-list';\n\nconst TRANSLATED_SITE_PROPERTIES = {\n\ttitle: __( 'Title' ),\n\tdescription: __( 'Tagline' ),\n\tsite_logo: __( 'Logo' ),\n\tsite_icon: __( 'Icon' ),\n\tshow_on_front: __( 'Show on front' ),\n\tpage_on_front: __( 'Page on front' ),\n};\n\nconst PUBLISH_ON_SAVE_ENTITIES = [\n\t{\n\t\tkind: 'postType',\n\t\tname: 'wp_navigation',\n\t},\n];\n\nexport default function EntitiesSavedStates( { close } ) {\n\tconst saveButtonRef = useRef();\n\tconst { dirtyEntityRecords } = useSelect( ( select ) => {\n\t\tconst dirtyRecords =\n\t\t\tselect( coreStore ).__experimentalGetDirtyEntityRecords();\n\n\t\t// Remove site object and decouple into its edited pieces.\n\t\tconst dirtyRecordsWithoutSite = dirtyRecords.filter(\n\t\t\t( record ) => ! ( record.kind === 'root' && record.name === 'site' )\n\t\t);\n\n\t\tconst siteEdits = select( coreStore ).getEntityRecordEdits(\n\t\t\t'root',\n\t\t\t'site'\n\t\t);\n\n\t\tconst siteEditsAsEntities = [];\n\t\tfor ( const property in siteEdits ) {\n\t\t\tsiteEditsAsEntities.push( {\n\t\t\t\tkind: 'root',\n\t\t\t\tname: 'site',\n\t\t\t\ttitle: TRANSLATED_SITE_PROPERTIES[ property ] || property,\n\t\t\t\tproperty,\n\t\t\t} );\n\t\t}\n\t\tconst dirtyRecordsWithSiteItems = [\n\t\t\t...dirtyRecordsWithoutSite,\n\t\t\t...siteEditsAsEntities,\n\t\t];\n\n\t\treturn {\n\t\t\tdirtyEntityRecords: dirtyRecordsWithSiteItems,\n\t\t};\n\t}, [] );\n\tconst {\n\t\teditEntityRecord,\n\t\tsaveEditedEntityRecord,\n\t\t__experimentalSaveSpecifiedEntityEdits: saveSpecifiedEntityEdits,\n\t} = useDispatch( coreStore );\n\n\tconst { __unstableMarkLastChangeAsPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\t// To group entities by type.\n\tconst partitionedSavables = groupBy( dirtyEntityRecords, 'name' );\n\n\t// Sort entity groups.\n\tconst {\n\t\tsite: siteSavables,\n\t\twp_template: templateSavables,\n\t\twp_template_part: templatePartSavables,\n\t\t...contentSavables\n\t} = partitionedSavables;\n\tconst sortedPartitionedSavables = [\n\t\tsiteSavables,\n\t\ttemplateSavables,\n\t\ttemplatePartSavables,\n\t\t...Object.values( contentSavables ),\n\t].filter( Array.isArray );\n\n\t// Unchecked entities to be ignored by save function.\n\tconst [ unselectedEntities, _setUnselectedEntities ] = useState( [] );\n\n\tconst setUnselectedEntities = (\n\t\t{ kind, name, key, property },\n\t\tchecked\n\t) => {\n\t\tif ( checked ) {\n\t\t\t_setUnselectedEntities(\n\t\t\t\tunselectedEntities.filter(\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind !== kind ||\n\t\t\t\t\t\telt.name !== name ||\n\t\t\t\t\t\telt.key !== key ||\n\t\t\t\t\t\telt.property !== property\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\t_setUnselectedEntities( [\n\t\t\t\t...unselectedEntities,\n\t\t\t\t{ kind, name, key, property },\n\t\t\t] );\n\t\t}\n\t};\n\n\tconst saveCheckedEntities = () => {\n\t\tconst entitiesToSave = dirtyEntityRecords.filter(\n\t\t\t( { kind, name, key, property } ) => {\n\t\t\t\treturn ! some(\n\t\t\t\t\tunselectedEntities,\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === kind &&\n\t\t\t\t\t\telt.name === name &&\n\t\t\t\t\t\telt.key === key &&\n\t\t\t\t\t\telt.property === property\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\n\t\tclose( entitiesToSave );\n\n\t\tconst siteItemsToSave = [];\n\t\tconst pendingSavedRecords = [];\n\t\tentitiesToSave.forEach( ( { kind, name, key, property } ) => {\n\t\t\tif ( 'root' === kind && 'site' === name ) {\n\t\t\t\tsiteItemsToSave.push( property );\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tPUBLISH_ON_SAVE_ENTITIES.some(\n\t\t\t\t\t\t( typeToPublish ) =>\n\t\t\t\t\t\t\ttypeToPublish.kind === kind &&\n\t\t\t\t\t\t\ttypeToPublish.name === name\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\teditEntityRecord( kind, name, key, { status: 'publish' } );\n\t\t\t\t}\n\n\t\t\t\tpendingSavedRecords.push(\n\t\t\t\t\tsaveEditedEntityRecord( kind, name, key )\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t\tif ( siteItemsToSave.length ) {\n\t\t\tpendingSavedRecords.push(\n\t\t\t\tsaveSpecifiedEntityEdits(\n\t\t\t\t\t'root',\n\t\t\t\t\t'site',\n\t\t\t\t\tundefined,\n\t\t\t\t\tsiteItemsToSave\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\t__unstableMarkLastChangeAsPersistent();\n\n\t\tPromise.all( pendingSavedRecords )\n\t\t\t.then( ( values ) => {\n\t\t\t\tif (\n\t\t\t\t\tvalues.some( ( value ) => typeof value === 'undefined' )\n\t\t\t\t) {\n\t\t\t\t\tcreateErrorNotice( __( 'Saving failed.' ) );\n\t\t\t\t} else {\n\t\t\t\t\tcreateSuccessNotice( __( 'Site updated.' ), {\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} )\n\t\t\t.catch( ( error ) =>\n\t\t\t\tcreateErrorNotice( `${ __( 'Saving failed.' ) } ${ error }` )\n\t\t\t);\n\t};\n\n\t// Explicitly define this with no argument passed.  Using `close` on\n\t// its own will use the event object in place of the expected saved entities.\n\tconst dismissPanel = useCallback( () => close(), [ close ] );\n\n\tconst [ saveDialogRef, saveDialogProps ] = useDialog( {\n\t\tonClose: () => dismissPanel(),\n\t} );\n\n\treturn (\n\t\t<div\n\t\t\tref={ saveDialogRef }\n\t\t\t{ ...saveDialogProps }\n\t\t\tclassName=\"entities-saved-states__panel\"\n\t\t>\n\t\t\t<Flex className=\"entities-saved-states__panel-header\" gap={ 2 }>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tref={ saveButtonRef }\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tdisabled={\n\t\t\t\t\t\tdirtyEntityRecords.length -\n\t\t\t\t\t\t\tunselectedEntities.length ===\n\t\t\t\t\t\t0\n\t\t\t\t\t}\n\t\t\t\t\tonClick={ saveCheckedEntities }\n\t\t\t\t\tclassName=\"editor-entities-saved-states__save-button\"\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem\n\t\t\t\t\tisBlock\n\t\t\t\t\tas={ Button }\n\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\tonClick={ dismissPanel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\n\t\t\t<div className=\"entities-saved-states__text-prompt\">\n\t\t\t\t<strong>{ __( 'Are you ready to save?' ) }</strong>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'The following changes have been made to your site, templates, and content.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{ sortedPartitionedSavables.map( ( list ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<EntityTypeList\n\t\t\t\t\t\tkey={ list[ 0 ].name }\n\t\t\t\t\t\tlist={ list }\n\t\t\t\t\t\tclosePanel={ dismissPanel }\n\t\t\t\t\t\tunselectedEntities={ unselectedEntities }\n\t\t\t\t\t\tsetUnselectedEntities={ setUnselectedEntities }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { select } from '@wordpress/data';\nimport { Warning } from '@wordpress/block-editor';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { doAction } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction CopyButton( { text, children } ) {\n\tconst ref = useCopyToClipboard( text );\n\treturn (\n\t\t<Button variant=\"secondary\" ref={ ref }>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\nclass ErrorBoundary extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.reboot = this.reboot.bind( this );\n\t\tthis.getContent = this.getContent.bind( this );\n\n\t\tthis.state = {\n\t\t\terror: null,\n\t\t};\n\t}\n\n\tcomponentDidCatch( error ) {\n\t\tthis.setState( { error } );\n\n\t\tdoAction( 'editor.ErrorBoundary.errorLogged', error );\n\t}\n\n\treboot() {\n\t\tthis.props.onError();\n\t}\n\n\tgetContent() {\n\t\ttry {\n\t\t\t// While `select` in a component is generally discouraged, it is\n\t\t\t// used here because it (a) reduces the chance of data loss in the\n\t\t\t// case of additional errors by performing a direct retrieval and\n\t\t\t// (b) avoids the performance cost associated with unnecessary\n\t\t\t// content serialization throughout the lifetime of a non-erroring\n\t\t\t// application.\n\t\t\treturn select( editorStore ).getEditedPostContent();\n\t\t} catch ( error ) {}\n\t}\n\n\trender() {\n\t\tconst { error } = this.state;\n\t\tif ( ! error ) {\n\t\t\treturn this.props.children;\n\t\t}\n\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tclassName=\"editor-error-boundary\"\n\t\t\t\tactions={ [\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey=\"recovery\"\n\t\t\t\t\t\tonClick={ this.reboot }\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Attempt Recovery' ) }\n\t\t\t\t\t</Button>,\n\t\t\t\t\t<CopyButton key=\"copy-post\" text={ this.getContent }>\n\t\t\t\t\t\t{ __( 'Copy Post Text' ) }\n\t\t\t\t\t</CopyButton>,\n\t\t\t\t\t<CopyButton key=\"copy-error\" text={ error.stack }>\n\t\t\t\t\t\t{ __( 'Copy Error' ) }\n\t\t\t\t\t</CopyButton>,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ __( 'The editor has encountered an unexpected error.' ) }\n\t\t\t</Warning>\n\t\t);\n\t}\n}\n\nexport default ErrorBoundary;\n","/**\n * WordPress dependencies\n */\nimport { useCallback, useEffect, useRef } from '@wordpress/element';\nimport { ifCondition, usePrevious } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { parse } from '@wordpress/blocks';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport AutosaveMonitor from '../autosave-monitor';\nimport {\n\tlocalAutosaveGet,\n\tlocalAutosaveClear,\n} from '../../store/local-autosave';\nimport { store as editorStore } from '../../store';\n\nconst requestIdleCallback = window.requestIdleCallback\n\t? window.requestIdleCallback\n\t: window.requestAnimationFrame;\n\nlet hasStorageSupport;\nlet uniqueId = 0;\n\n/**\n * Function which returns true if the current environment supports browser\n * sessionStorage, or false otherwise. The result of this function is cached and\n * reused in subsequent invocations.\n */\nconst hasSessionStorageSupport = () => {\n\tif ( typeof hasStorageSupport === 'undefined' ) {\n\t\ttry {\n\t\t\t// Private Browsing in Safari 10 and earlier will throw an error when\n\t\t\t// attempting to set into sessionStorage. The test here is intentional in\n\t\t\t// causing a thrown error as condition bailing from local autosave.\n\t\t\twindow.sessionStorage.setItem( '__wpEditorTestSessionStorage', '' );\n\t\t\twindow.sessionStorage.removeItem( '__wpEditorTestSessionStorage' );\n\t\t\thasStorageSupport = true;\n\t\t} catch ( error ) {\n\t\t\thasStorageSupport = false;\n\t\t}\n\t}\n\n\treturn hasStorageSupport;\n};\n\n/**\n * Custom hook which manages the creation of a notice prompting the user to\n * restore a local autosave, if one exists.\n */\nfunction useAutosaveNotice() {\n\tconst { postId, isEditedPostNew, hasRemoteAutosave } = useSelect(\n\t\t( select ) => ( {\n\t\t\tpostId: select( editorStore ).getCurrentPostId(),\n\t\t\tisEditedPostNew: select( editorStore ).isEditedPostNew(),\n\t\t\thasRemoteAutosave:\n\t\t\t\t!! select( editorStore ).getEditorSettings().autosave,\n\t\t} ),\n\t\t[]\n\t);\n\tconst { getEditedPostAttribute } = useSelect( editorStore );\n\n\tconst { createWarningNotice, removeNotice } = useDispatch( noticesStore );\n\tconst { editPost, resetEditorBlocks } = useDispatch( editorStore );\n\n\tuseEffect( () => {\n\t\tlet localAutosave = localAutosaveGet( postId, isEditedPostNew );\n\t\tif ( ! localAutosave ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tlocalAutosave = JSON.parse( localAutosave );\n\t\t} catch ( error ) {\n\t\t\t// Not usable if it can't be parsed.\n\t\t\treturn;\n\t\t}\n\n\t\tconst { post_title: title, content, excerpt } = localAutosave;\n\t\tconst edits = { title, content, excerpt };\n\n\t\t{\n\t\t\t// Only display a notice if there is a difference between what has been\n\t\t\t// saved and that which is stored in sessionStorage.\n\t\t\tconst hasDifference = Object.keys( edits ).some( ( key ) => {\n\t\t\t\treturn edits[ key ] !== getEditedPostAttribute( key );\n\t\t\t} );\n\n\t\t\tif ( ! hasDifference ) {\n\t\t\t\t// If there is no difference, it can be safely ejected from storage.\n\t\t\t\tlocalAutosaveClear( postId, isEditedPostNew );\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif ( hasRemoteAutosave ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst noticeId = `wpEditorAutosaveRestore${ ++uniqueId }`;\n\t\tcreateWarningNotice(\n\t\t\t__(\n\t\t\t\t'The backup of this post in your browser is different from the version below.'\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: noticeId,\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: __( 'Restore the backup' ),\n\t\t\t\t\t\tonClick() {\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\tcontent: editsContent,\n\t\t\t\t\t\t\t\t...editsWithoutContent\n\t\t\t\t\t\t\t} = edits;\n\t\t\t\t\t\t\teditPost( editsWithoutContent );\n\t\t\t\t\t\t\tresetEditorBlocks( parse( edits.content ) );\n\t\t\t\t\t\t\tremoveNotice( noticeId );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t);\n\t}, [ isEditedPostNew, postId ] );\n}\n\n/**\n * Custom hook which ejects a local autosave after a successful save occurs.\n */\nfunction useAutosavePurge() {\n\tconst { postId, isEditedPostNew, isDirty, isAutosaving, didError } =\n\t\tuseSelect(\n\t\t\t( select ) => ( {\n\t\t\t\tpostId: select( editorStore ).getCurrentPostId(),\n\t\t\t\tisEditedPostNew: select( editorStore ).isEditedPostNew(),\n\t\t\t\tisDirty: select( editorStore ).isEditedPostDirty(),\n\t\t\t\tisAutosaving: select( editorStore ).isAutosavingPost(),\n\t\t\t\tdidError: select( editorStore ).didPostSaveRequestFail(),\n\t\t\t} ),\n\t\t\t[]\n\t\t);\n\n\tconst lastIsDirty = useRef( isDirty );\n\tconst lastIsAutosaving = useRef( isAutosaving );\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\t! didError &&\n\t\t\t( ( lastIsAutosaving.current && ! isAutosaving ) ||\n\t\t\t\t( lastIsDirty.current && ! isDirty ) )\n\t\t) {\n\t\t\tlocalAutosaveClear( postId, isEditedPostNew );\n\t\t}\n\n\t\tlastIsDirty.current = isDirty;\n\t\tlastIsAutosaving.current = isAutosaving;\n\t}, [ isDirty, isAutosaving, didError ] );\n\n\t// Once the isEditedPostNew changes from true to false, let's clear the auto-draft autosave.\n\tconst wasEditedPostNew = usePrevious( isEditedPostNew );\n\tconst prevPostId = usePrevious( postId );\n\tuseEffect( () => {\n\t\tif ( prevPostId === postId && wasEditedPostNew && ! isEditedPostNew ) {\n\t\t\tlocalAutosaveClear( postId, true );\n\t\t}\n\t}, [ isEditedPostNew, postId ] );\n}\n\nfunction LocalAutosaveMonitor() {\n\tconst { autosave } = useDispatch( editorStore );\n\tconst deferredAutosave = useCallback( () => {\n\t\trequestIdleCallback( () => autosave( { local: true } ) );\n\t}, [] );\n\tuseAutosaveNotice();\n\tuseAutosavePurge();\n\n\tconst { localAutosaveInterval } = useSelect(\n\t\t( select ) => ( {\n\t\t\tlocalAutosaveInterval:\n\t\t\t\tselect( editorStore ).getEditorSettings().localAutosaveInterval,\n\t\t} ),\n\t\t[]\n\t);\n\n\treturn (\n\t\t<AutosaveMonitor\n\t\t\tinterval={ localAutosaveInterval }\n\t\t\tautosave={ deferredAutosave }\n\t\t/>\n\t);\n}\n\nexport default ifCondition( hasSessionStorageSupport )( LocalAutosaveMonitor );\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\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\nexport function PageAttributesCheck( { children } ) {\n\tconst postType = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\n\t\treturn getPostType( getEditedPostAttribute( 'type' ) );\n\t}, [] );\n\tconst supportsPageAttributes = get(\n\t\tpostType,\n\t\t[ 'supports', 'page-attributes' ],\n\t\tfalse\n\t);\n\n\t// Only render fields if post type supports page attributes or available templates exist.\n\tif ( ! supportsPageAttributes ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default PageAttributesCheck;\n","/**\n * External dependencies\n */\nimport { some, castArray } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } 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 {string}            [props.postType]  Current post type.\n * @param {WPElement}         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 {WPComponent} The component to be rendered.\n */\nexport function PostTypeSupportCheck( { postType, children, supportKeys } ) {\n\tlet isSupported = true;\n\tif ( postType ) {\n\t\tisSupported = some(\n\t\t\tcastArray( supportKeys ),\n\t\t\t( key ) => !! postType.supports[ key ]\n\t\t);\n\t}\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getEditedPostAttribute } = select( editorStore );\n\tconst { getPostType } = select( coreStore );\n\treturn {\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t};\n} )( PostTypeSupportCheck );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { TextControl } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\nexport const PageAttributesOrder = ( { onUpdateOrder, order = 0 } ) => {\n\tconst [ orderInput, setOrderInput ] = useState( null );\n\n\tconst setUpdatedOrder = ( value ) => {\n\t\tsetOrderInput( value );\n\t\tconst newOrder = Number( value );\n\t\tif ( Number.isInteger( newOrder ) && value.trim?.() !== '' ) {\n\t\t\tonUpdateOrder( Number( value ) );\n\t\t}\n\t};\n\tconst value = orderInput === null ? order : orderInput;\n\treturn (\n\t\t<TextControl\n\t\t\tclassName=\"editor-page-attributes__order\"\n\t\t\ttype=\"number\"\n\t\t\tlabel={ __( 'Order' ) }\n\t\t\tvalue={ value }\n\t\t\tonChange={ setUpdatedOrder }\n\t\t\tsize={ 6 }\n\t\t\tonBlur={ () => {\n\t\t\t\tsetOrderInput( null );\n\t\t\t} }\n\t\t/>\n\t);\n};\n\nfunction PageAttributesOrderWithChecks( props ) {\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"page-attributes\">\n\t\t\t<PageAttributesOrder { ...props } />\n\t\t</PostTypeSupportCheck>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\torder: select( editorStore ).getEditedPostAttribute( 'menu_order' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tonUpdateOrder( order ) {\n\t\t\tdispatch( editorStore ).editPost( {\n\t\t\t\tmenu_order: order,\n\t\t\t} );\n\t\t},\n\t} ) ),\n] )( PageAttributesOrderWithChecks );\n","/**\n * External dependencies\n */\nimport { groupBy, map, unescape as lodashUnescapeString } from 'lodash';\n\n/**\n * Returns terms in a tree form.\n *\n * @param {Array} flatTerms Array of terms in flat format.\n *\n * @return {Array} Array of terms in tree format.\n */\nexport function buildTermsTree( flatTerms ) {\n\tconst flatTermsWithParentAndChildren = flatTerms.map( ( term ) => {\n\t\treturn {\n\t\t\tchildren: [],\n\t\t\tparent: null,\n\t\t\t...term,\n\t\t};\n\t} );\n\n\tconst termsByParent = groupBy( flatTermsWithParentAndChildren, 'parent' );\n\tif ( termsByParent.null && termsByParent.null.length ) {\n\t\treturn flatTermsWithParentAndChildren;\n\t}\n\tconst fillWithChildren = ( terms ) => {\n\t\treturn terms.map( ( term ) => {\n\t\t\tconst children = termsByParent[ term.id ];\n\t\t\treturn {\n\t\t\t\t...term,\n\t\t\t\tchildren:\n\t\t\t\t\tchildren && children.length\n\t\t\t\t\t\t? fillWithChildren( children )\n\t\t\t\t\t\t: [],\n\t\t\t};\n\t\t} );\n\t};\n\n\treturn fillWithChildren( termsByParent[ '0' ] || [] );\n}\n\n// Lodash unescape function handles &#39; but not &#039; which may be return in some API requests.\nexport const unescapeString = ( arg ) => {\n\treturn lodashUnescapeString( arg.replace( '&#039;', \"'\" ) );\n};\n\n/**\n * Returns a term object with name unescaped.\n * The unescape of the name property is done using lodash unescape function.\n *\n * @param {Object} term The term object to unescape.\n *\n * @return {Object} Term object with name property unescaped.\n */\nexport const unescapeTerm = ( term ) => {\n\treturn {\n\t\t...term,\n\t\tname: unescapeString( term.name ),\n\t};\n};\n\n/**\n * Returns an array of term objects with names unescaped.\n * The unescape of each term is performed using the unescapeTerm function.\n *\n * @param {Object[]} terms Array of term objects to unescape.\n *\n * @return {Object[]} Array of term objects unescaped.\n */\nexport const unescapeTerms = ( terms ) => {\n\treturn map( terms, unescapeTerm );\n};\n","/**\n * External dependencies\n */\nimport { get, unescape as unescapeString, find } from 'lodash';\nimport removeAccents from 'remove-accents';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ComboboxControl } from '@wordpress/components';\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { buildTermsTree } from '../../utils/terms';\nimport { store as editorStore } from '../../store';\n\nfunction getTitle( post ) {\n\treturn post?.title?.rendered\n\t\t? decodeEntities( post.title.rendered )\n\t\t: `#${ post.id } (${ __( 'no title' ) })`;\n}\n\nexport const getItemPriority = ( name, searchValue ) => {\n\tconst normalizedName = removeAccents( name || '' ).toLowerCase();\n\tconst normalizedSearch = removeAccents( searchValue || '' ).toLowerCase();\n\tif ( normalizedName === normalizedSearch ) {\n\t\treturn 0;\n\t}\n\n\tif ( normalizedName.startsWith( normalizedSearch ) ) {\n\t\treturn normalizedName.length;\n\t}\n\n\treturn Infinity;\n};\n\nexport function PageAttributesParent() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst [ fieldValue, setFieldValue ] = useState( false );\n\tconst { parentPost, parentPostId, items, postType } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getPostType, getEntityRecords, getEntityRecord } =\n\t\t\t\tselect( coreStore );\n\t\t\tconst { getCurrentPostId, getEditedPostAttribute } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst postTypeSlug = getEditedPostAttribute( 'type' );\n\t\t\tconst pageId = getEditedPostAttribute( 'parent' );\n\t\t\tconst pType = getPostType( postTypeSlug );\n\t\t\tconst postId = getCurrentPostId();\n\t\t\tconst isHierarchical = get( pType, [ 'hierarchical' ], false );\n\t\t\tconst query = {\n\t\t\t\tper_page: 100,\n\t\t\t\texclude: postId,\n\t\t\t\tparent_exclude: postId,\n\t\t\t\torderby: 'menu_order',\n\t\t\t\torder: 'asc',\n\t\t\t\t_fields: 'id,title,parent',\n\t\t\t};\n\n\t\t\t// Perform a search when the field is changed.\n\t\t\tif ( !! fieldValue ) {\n\t\t\t\tquery.search = fieldValue;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tparentPostId: pageId,\n\t\t\t\tparentPost: pageId\n\t\t\t\t\t? getEntityRecord( 'postType', postTypeSlug, pageId )\n\t\t\t\t\t: null,\n\t\t\t\titems: isHierarchical\n\t\t\t\t\t? getEntityRecords( 'postType', postTypeSlug, query )\n\t\t\t\t\t: [],\n\t\t\t\tpostType: pType,\n\t\t\t};\n\t\t},\n\t\t[ fieldValue ]\n\t);\n\n\tconst isHierarchical = get( postType, [ 'hierarchical' ], false );\n\tconst parentPageLabel = get( postType, [ 'labels', 'parent_item_colon' ] );\n\tconst pageItems = items || [];\n\n\tconst parentOptions = useMemo( () => {\n\t\tconst getOptionsFromTree = ( tree, level = 0 ) => {\n\t\t\tconst mappedNodes = tree.map( ( treeNode ) => [\n\t\t\t\t{\n\t\t\t\t\tvalue: treeNode.id,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\t'— '.repeat( level ) + unescapeString( treeNode.name ),\n\t\t\t\t\trawName: treeNode.name,\n\t\t\t\t},\n\t\t\t\t...getOptionsFromTree( treeNode.children || [], level + 1 ),\n\t\t\t] );\n\n\t\t\tconst sortedNodes = mappedNodes.sort( ( [ a ], [ b ] ) => {\n\t\t\t\tconst priorityA = getItemPriority( a.rawName, fieldValue );\n\t\t\t\tconst priorityB = getItemPriority( b.rawName, fieldValue );\n\t\t\t\treturn priorityA >= priorityB ? 1 : -1;\n\t\t\t} );\n\n\t\t\treturn sortedNodes.flat();\n\t\t};\n\n\t\tlet tree = pageItems.map( ( item ) => ( {\n\t\t\tid: item.id,\n\t\t\tparent: item.parent,\n\t\t\tname: getTitle( item ),\n\t\t} ) );\n\n\t\t// Only build a hierarchical tree when not searching.\n\t\tif ( ! fieldValue ) {\n\t\t\ttree = buildTermsTree( tree );\n\t\t}\n\n\t\tconst opts = getOptionsFromTree( tree );\n\n\t\t// Ensure the current parent is in the options list.\n\t\tconst optsHasParent = find(\n\t\t\topts,\n\t\t\t( item ) => item.value === parentPostId\n\t\t);\n\t\tif ( parentPost && ! optsHasParent ) {\n\t\t\topts.unshift( {\n\t\t\t\tvalue: parentPostId,\n\t\t\t\tlabel: getTitle( parentPost ),\n\t\t\t} );\n\t\t}\n\t\treturn opts;\n\t}, [ pageItems, fieldValue ] );\n\n\tif ( ! isHierarchical || ! parentPageLabel ) {\n\t\treturn null;\n\t}\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {Object} selectedPostId The selected Author.\n\t */\n\tconst handleChange = ( selectedPostId ) => {\n\t\teditPost( { parent: selectedPostId } );\n\t};\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\tclassName=\"editor-page-attributes__parent\"\n\t\t\tlabel={ parentPageLabel }\n\t\t\tvalue={ parentPostId }\n\t\t\toptions={ parentOptions }\n\t\t\tonFilterValueChange={ debounce( handleKeydown, 300 ) }\n\t\t\tonChange={ handleChange }\n\t\t/>\n\t);\n}\n\nexport default PageAttributesParent;\n","/**\n * External dependencies\n */\nimport { isEmpty, map } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SelectControl } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostTemplate() {\n\tconst { availableTemplates, selectedTemplate, isViewable } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t\tgetEditorSettings,\n\t\t\t\tgetCurrentPostType,\n\t\t\t} = select( editorStore );\n\t\t\tconst { getPostType } = select( coreStore );\n\n\t\t\treturn {\n\t\t\t\tselectedTemplate: getEditedPostAttribute( 'template' ),\n\t\t\t\tavailableTemplates: getEditorSettings().availableTemplates,\n\t\t\t\tisViewable:\n\t\t\t\t\tgetPostType( getCurrentPostType() )?.viewable ?? false,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tif ( ! isViewable || isEmpty( availableTemplates ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<SelectControl\n\t\t\tlabel={ __( 'Template:' ) }\n\t\t\tvalue={ selectedTemplate }\n\t\t\tonChange={ ( templateSlug ) => {\n\t\t\t\teditPost( {\n\t\t\t\t\ttemplate: templateSlug || '',\n\t\t\t\t} );\n\t\t\t} }\n\t\t\toptions={ map(\n\t\t\t\tavailableTemplates,\n\t\t\t\t( templateName, templateSlug ) => ( {\n\t\t\t\t\tvalue: templateSlug,\n\t\t\t\t\tlabel: templateName,\n\t\t\t\t} )\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default PostTemplate;\n","export const AUTHORS_QUERY = {\n\twho: 'authors',\n\tper_page: 50,\n\t_fields: 'id,name',\n\tcontext: 'view', // Allows non-admins to perform requests.\n};\n","/**\n * WordPress dependencies\n */\nimport { debounce } from '@wordpress/compose';\nimport { useState, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { ComboboxControl } from '@wordpress/components';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { AUTHORS_QUERY } from './constants';\n\nfunction PostAuthorCombobox() {\n\tconst [ fieldValue, setFieldValue ] = useState();\n\n\tconst { authorId, isLoading, authors, postAuthor } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getUser, getUsers, isResolving } = select( coreStore );\n\t\t\tconst { getEditedPostAttribute } = select( editorStore );\n\t\t\tconst author = getUser( getEditedPostAttribute( 'author' ), {\n\t\t\t\tcontext: 'view',\n\t\t\t} );\n\t\t\tconst query = { ...AUTHORS_QUERY };\n\n\t\t\tif ( fieldValue ) {\n\t\t\t\tquery.search = fieldValue;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tauthorId: getEditedPostAttribute( 'author' ),\n\t\t\t\tpostAuthor: author,\n\t\t\t\tauthors: getUsers( query ),\n\t\t\t\tisLoading: isResolving( 'core', 'getUsers', [ query ] ),\n\t\t\t};\n\t\t},\n\t\t[ fieldValue ]\n\t);\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst authorOptions = useMemo( () => {\n\t\tconst fetchedAuthors = ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\n\t\t// Ensure the current author is included in the dropdown list.\n\t\tconst foundAuthor = fetchedAuthors.findIndex(\n\t\t\t( { value } ) => postAuthor?.id === value\n\t\t);\n\n\t\tif ( foundAuthor < 0 && postAuthor ) {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tvalue: postAuthor.id,\n\t\t\t\t\tlabel: decodeEntities( postAuthor.name ),\n\t\t\t\t},\n\t\t\t\t...fetchedAuthors,\n\t\t\t];\n\t\t}\n\n\t\treturn fetchedAuthors;\n\t}, [ authors, postAuthor ] );\n\n\t/**\n\t * Handle author selection.\n\t *\n\t * @param {number} postAuthorId The selected Author.\n\t */\n\tconst handleSelect = ( postAuthorId ) => {\n\t\tif ( ! postAuthorId ) {\n\t\t\treturn;\n\t\t}\n\t\teditPost( { author: postAuthorId } );\n\t};\n\n\t/**\n\t * Handle user input.\n\t *\n\t * @param {string} inputValue The current value of the input field.\n\t */\n\tconst handleKeydown = ( inputValue ) => {\n\t\tsetFieldValue( inputValue );\n\t};\n\n\tif ( ! postAuthor ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ComboboxControl\n\t\t\tlabel={ __( 'Author' ) }\n\t\t\toptions={ authorOptions }\n\t\t\tvalue={ authorId }\n\t\t\tonFilterValueChange={ debounce( handleKeydown, 300 ) }\n\t\t\tonChange={ handleSelect }\n\t\t\tisLoading={ isLoading }\n\t\t\tallowReset={ false }\n\t\t/>\n\t);\n}\n\nexport default PostAuthorCombobox;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { SelectControl } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\nimport { AUTHORS_QUERY } from './constants';\n\nfunction PostAuthorSelect() {\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { postAuthor, authors } = useSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostAuthor:\n\t\t\t\tselect( editorStore ).getEditedPostAttribute( 'author' ),\n\t\t\tauthors: select( coreStore ).getUsers( AUTHORS_QUERY ),\n\t\t};\n\t}, [] );\n\n\tconst authorOptions = useMemo( () => {\n\t\treturn ( authors ?? [] ).map( ( author ) => {\n\t\t\treturn {\n\t\t\t\tvalue: author.id,\n\t\t\t\tlabel: decodeEntities( author.name ),\n\t\t\t};\n\t\t} );\n\t}, [ authors ] );\n\n\tconst setAuthorId = ( value ) => {\n\t\tconst author = Number( value );\n\t\teditPost( { author } );\n\t};\n\n\treturn (\n\t\t<SelectControl\n\t\t\tclassName=\"post-author-selector\"\n\t\t\tlabel={ __( 'Author' ) }\n\t\t\toptions={ authorOptions }\n\t\t\tonChange={ setAuthorId }\n\t\t\tvalue={ postAuthor }\n\t\t/>\n\t);\n}\n\nexport default PostAuthorSelect;\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostAuthorCombobox from './combobox';\nimport PostAuthorSelect from './select';\nimport { AUTHORS_QUERY } from './constants';\n\nconst minimumUsersForCombobox = 25;\n\nfunction PostAuthor() {\n\tconst showCombobox = useSelect( ( select ) => {\n\t\tconst authors = select( coreStore ).getUsers( AUTHORS_QUERY );\n\n\t\treturn authors?.length >= minimumUsersForCombobox;\n\t}, [] );\n\n\tif ( showCombobox ) {\n\t\treturn <PostAuthorCombobox />;\n\t}\n\treturn <PostAuthorSelect />;\n}\n\nexport default PostAuthor;\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\nimport { AUTHORS_QUERY } from './constants';\n\nexport default function PostAuthorCheck( { children } ) {\n\tconst { hasAssignAuthorAction, hasAuthors } = useSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tconst authors = select( coreStore ).getUsers( AUTHORS_QUERY );\n\t\treturn {\n\t\t\thasAssignAuthorAction: get(\n\t\t\t\tpost,\n\t\t\t\t[ '_links', 'wp:action-assign-author' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\thasAuthors: authors?.length >= 1,\n\t\t};\n\t}, [] );\n\n\tif ( ! hasAssignAuthorAction || ! hasAuthors ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"author\">\n\t\t\t{ children }\n\t\t</PostTypeSupportCheck>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\nimport { compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction PostComments( { commentStatus = 'open', ...props } ) {\n\tconst onToggleComments = () =>\n\t\tprops.editPost( {\n\t\t\tcomment_status: commentStatus === 'open' ? 'closed' : 'open',\n\t\t} );\n\n\treturn (\n\t\t<CheckboxControl\n\t\t\tlabel={ __( 'Allow comments' ) }\n\t\t\tchecked={ commentStatus === 'open' }\n\t\t\tonChange={ onToggleComments }\n\t\t/>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tcommentStatus:\n\t\t\t\tselect( editorStore ).getEditedPostAttribute(\n\t\t\t\t\t'comment_status'\n\t\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => ( {\n\t\teditPost: dispatch( editorStore ).editPost,\n\t} ) ),\n] )( PostComments );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ExternalLink, TextareaControl } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction PostExcerpt( { excerpt, onUpdateExcerpt } ) {\n\treturn (\n\t\t<div className=\"editor-post-excerpt\">\n\t\t\t<TextareaControl\n\t\t\t\tlabel={ __( 'Write an excerpt (optional)' ) }\n\t\t\t\tclassName=\"editor-post-excerpt__textarea\"\n\t\t\t\tonChange={ ( value ) => onUpdateExcerpt( value ) }\n\t\t\t\tvalue={ excerpt }\n\t\t\t/>\n\t\t\t<ExternalLink\n\t\t\t\thref={ __(\n\t\t\t\t\t'https://wordpress.org/support/article/settings-sidebar/#excerpt'\n\t\t\t\t) }\n\t\t\t>\n\t\t\t\t{ __( 'Learn more about manual excerpts' ) }\n\t\t\t</ExternalLink>\n\t\t</div>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\texcerpt: select( editorStore ).getEditedPostAttribute( 'excerpt' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tonUpdateExcerpt( excerpt ) {\n\t\t\tdispatch( editorStore ).editPost( { excerpt } );\n\t\t},\n\t} ) ),\n] )( PostExcerpt );\n","/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\n\nfunction PostExcerptCheck( props ) {\n\treturn <PostTypeSupportCheck { ...props } supportKeys=\"excerpt\" />;\n}\n\nexport default PostExcerptCheck;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"blob\"];","/**\n * External dependencies\n */\nimport { castArray, includes, get, some } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function ThemeSupportCheck( {\n\tthemeSupports,\n\tchildren,\n\tpostType,\n\tsupportKeys,\n} ) {\n\tconst isSupported = some( castArray( supportKeys ), ( key ) => {\n\t\tconst supported = get( themeSupports, [ key ], false );\n\t\t// 'post-thumbnails' can be boolean or an array of post types.\n\t\t// In the latter case, we need to verify `postType` exists\n\t\t// within `supported`. If `postType` isn't passed, then the check\n\t\t// should fail.\n\t\tif ( 'post-thumbnails' === key && Array.isArray( supported ) ) {\n\t\t\treturn includes( supported, postType );\n\t\t}\n\t\treturn supported;\n\t} );\n\n\tif ( ! isSupported ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getThemeSupports } = select( coreStore );\n\tconst { getEditedPostAttribute } = select( editorStore );\n\treturn {\n\t\tpostType: getEditedPostAttribute( 'type' ),\n\t\tthemeSupports: getThemeSupports(),\n\t};\n} )( ThemeSupportCheck );\n","/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport ThemeSupportCheck from '../theme-support-check';\n\nfunction PostFeaturedImageCheck( props ) {\n\treturn (\n\t\t<ThemeSupportCheck supportKeys=\"post-thumbnails\">\n\t\t\t<PostTypeSupportCheck { ...props } supportKeys=\"thumbnail\" />\n\t\t</ThemeSupportCheck>\n\t);\n}\n\nexport default PostFeaturedImageCheck;\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { applyFilters } from '@wordpress/hooks';\nimport {\n\tDropZone,\n\tButton,\n\tSpinner,\n\tResponsiveWrapper,\n\twithNotices,\n\twithFilters,\n} from '@wordpress/components';\nimport { isBlobURL } from '@wordpress/blob';\nimport { useState } from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport { useSelect, withDispatch, withSelect } from '@wordpress/data';\nimport {\n\tMediaUpload,\n\tMediaUploadCheck,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFeaturedImageCheck from './check';\nimport { store as editorStore } from '../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\n// Used when labels from post type were not yet loaded or when they are not present.\nconst DEFAULT_FEATURE_IMAGE_LABEL = __( 'Featured image' );\nconst DEFAULT_SET_FEATURE_IMAGE_LABEL = __( 'Set featured image' );\nconst DEFAULT_REMOVE_FEATURE_IMAGE_LABEL = __( 'Remove image' );\n\nconst instructions = (\n\t<p>\n\t\t{ __(\n\t\t\t'To edit the featured image, you need permission to upload media.'\n\t\t) }\n\t</p>\n);\n\nfunction getMediaDetails( media, postId ) {\n\tif ( ! media ) {\n\t\treturn {};\n\t}\n\n\tconst defaultSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'large',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( defaultSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ defaultSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ defaultSize ].height,\n\t\t\tmediaSourceUrl: media.media_details.sizes[ defaultSize ].source_url,\n\t\t};\n\t}\n\n\t// Use fallbackSize when defaultSize is not available.\n\tconst fallbackSize = applyFilters(\n\t\t'editor.PostFeaturedImage.imageSize',\n\t\t'thumbnail',\n\t\tmedia.id,\n\t\tpostId\n\t);\n\tif ( fallbackSize in ( media?.media_details?.sizes ?? {} ) ) {\n\t\treturn {\n\t\t\tmediaWidth: media.media_details.sizes[ fallbackSize ].width,\n\t\t\tmediaHeight: media.media_details.sizes[ fallbackSize ].height,\n\t\t\tmediaSourceUrl:\n\t\t\t\tmedia.media_details.sizes[ fallbackSize ].source_url,\n\t\t};\n\t}\n\n\t// Use full image size when fallbackSize and defaultSize are not available.\n\treturn {\n\t\tmediaWidth: media.media_details.width,\n\t\tmediaHeight: media.media_details.height,\n\t\tmediaSourceUrl: media.source_url,\n\t};\n}\n\nfunction PostFeaturedImage( {\n\tcurrentPostId,\n\tfeaturedImageId,\n\tonUpdateImage,\n\tonRemoveImage,\n\tmedia,\n\tpostType,\n\tnoticeUI,\n\tnoticeOperations,\n} ) {\n\tconst [ isLoading, setIsLoading ] = useState( false );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst postLabel = get( postType, [ 'labels' ], {} );\n\tconst { mediaWidth, mediaHeight, mediaSourceUrl } = getMediaDetails(\n\t\tmedia,\n\t\tcurrentPostId\n\t);\n\n\tfunction onDropFiles( filesList ) {\n\t\tmediaUpload( {\n\t\t\tallowedTypes: [ 'image' ],\n\t\t\tfilesList,\n\t\t\tonFileChange( [ image ] ) {\n\t\t\t\tif ( isBlobURL( image?.url ) ) {\n\t\t\t\t\tsetIsLoading( true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonUpdateImage( image );\n\t\t\t\tsetIsLoading( false );\n\t\t\t},\n\t\t\tonError( message ) {\n\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t},\n\t\t} );\n\t}\n\n\treturn (\n\t\t<PostFeaturedImageCheck>\n\t\t\t{ noticeUI }\n\t\t\t<div className=\"editor-post-featured-image\">\n\t\t\t\t{ media && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={ `editor-post-featured-image-${ featuredImageId }-describedby` }\n\t\t\t\t\t\tclassName=\"hidden\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image alt text.\n\t\t\t\t\t\t\t\t__( 'Current image: %s' ),\n\t\t\t\t\t\t\t\tmedia.alt_text\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! media.alt_text &&\n\t\t\t\t\t\t\tsprintf(\n\t\t\t\t\t\t\t\t// Translators: %s: The selected image filename.\n\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t'The current image has no alternative text. The file name is: %s'\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tmedia.media_details.sizes?.full?.file ||\n\t\t\t\t\t\t\t\t\tmedia.slug\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t<MediaUploadCheck fallback={ instructions }>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\tpostLabel.featured_image ||\n\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t<div className=\"editor-post-featured-image__container\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? 'editor-post-featured-image__toggle'\n\t\t\t\t\t\t\t\t\t\t\t: 'editor-post-featured-image__preview'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit or update the image' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t! featuredImageId\n\t\t\t\t\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t\t\t\t\t: `editor-post-featured-image-${ featuredImageId }-describedby`\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ !! featuredImageId && media && (\n\t\t\t\t\t\t\t\t\t\t<ResponsiveWrapper\n\t\t\t\t\t\t\t\t\t\t\tnaturalWidth={ mediaWidth }\n\t\t\t\t\t\t\t\t\t\t\tnaturalHeight={ mediaHeight }\n\t\t\t\t\t\t\t\t\t\t\tisInline\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\t\t\t\tsrc={ mediaSourceUrl }\n\t\t\t\t\t\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</ResponsiveWrapper>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ isLoading && <Spinner /> }\n\t\t\t\t\t\t\t\t\t{ ! featuredImageId &&\n\t\t\t\t\t\t\t\t\t\t! isLoading &&\n\t\t\t\t\t\t\t\t\t\t( postLabel.set_featured_image ||\n\t\t\t\t\t\t\t\t\t\t\tDEFAULT_SET_FEATURE_IMAGE_LABEL ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t<DropZone onFilesDrop={ onDropFiles } />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tvalue={ featuredImageId }\n\t\t\t\t\t/>\n\t\t\t\t</MediaUploadCheck>\n\t\t\t\t{ !! featuredImageId && (\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t{ media && (\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\t\tpostLabel.featured_image ||\n\t\t\t\t\t\t\t\t\tDEFAULT_FEATURE_IMAGE_LABEL\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonSelect={ onUpdateImage }\n\t\t\t\t\t\t\t\tunstableFeaturedImageFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\tmodalClass=\"editor-post-featured-image__media-modal\"\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Replace Image' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onRemoveImage }\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tisDestructive\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ postLabel.remove_featured_image ||\n\t\t\t\t\t\t\t\tDEFAULT_REMOVE_FEATURE_IMAGE_LABEL }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PostFeaturedImageCheck>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select ) => {\n\tconst { getMedia, getPostType } = select( coreStore );\n\tconst { getCurrentPostId, getEditedPostAttribute } = select( editorStore );\n\tconst featuredImageId = getEditedPostAttribute( 'featured_media' );\n\n\treturn {\n\t\tmedia: featuredImageId\n\t\t\t? getMedia( featuredImageId, { context: 'view' } )\n\t\t\t: null,\n\t\tcurrentPostId: getCurrentPostId(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tfeaturedImageId,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch(\n\t( dispatch, { noticeOperations }, { select } ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateImage( image ) {\n\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t},\n\t\t\tonDropImage( filesList ) {\n\t\t\t\tselect( blockEditorStore )\n\t\t\t\t\t.getSettings()\n\t\t\t\t\t.mediaUpload( {\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t\tfilesList,\n\t\t\t\t\t\tonFileChange( [ image ] ) {\n\t\t\t\t\t\t\teditPost( { featured_media: image.id } );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tnoticeOperations.removeAllNotices();\n\t\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t},\n\t\t\tonRemoveImage() {\n\t\t\t\teditPost( { featured_media: 0 } );\n\t\t\t},\n\t\t};\n\t}\n);\n\nexport default compose(\n\twithNotices,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\twithFilters( 'editor.PostFeaturedImage' )\n)( PostFeaturedImage );\n","/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\nfunction PostFormatCheck( { disablePostFormats, ...props } ) {\n\treturn (\n\t\t! disablePostFormats && (\n\t\t\t<PostTypeSupportCheck { ...props } supportKeys=\"post-formats\" />\n\t\t)\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\tconst editorSettings = select( editorStore ).getEditorSettings();\n\treturn {\n\t\tdisablePostFormats: editorSettings.disablePostFormats,\n\t};\n} )( PostFormatCheck );\n","/**\n * External dependencies\n */\nimport { find, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Button, SelectControl } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostFormatCheck from './check';\nimport { store as editorStore } from '../../store';\n\n// All WP post formats, sorted alphabetically by translated name.\nexport const POST_FORMATS = [\n\t{ id: 'aside', caption: __( 'Aside' ) },\n\t{ id: 'audio', caption: __( 'Audio' ) },\n\t{ id: 'chat', caption: __( 'Chat' ) },\n\t{ id: 'gallery', caption: __( 'Gallery' ) },\n\t{ id: 'image', caption: __( 'Image' ) },\n\t{ id: 'link', caption: __( 'Link' ) },\n\t{ id: 'quote', caption: __( 'Quote' ) },\n\t{ id: 'standard', caption: __( 'Standard' ) },\n\t{ id: 'status', caption: __( 'Status' ) },\n\t{ id: 'video', caption: __( 'Video' ) },\n].sort( ( a, b ) => {\n\tconst normalizedA = a.caption.toUpperCase();\n\tconst normalizedB = b.caption.toUpperCase();\n\n\tif ( normalizedA < normalizedB ) {\n\t\treturn -1;\n\t}\n\tif ( normalizedA > normalizedB ) {\n\t\treturn 1;\n\t}\n\treturn 0;\n} );\n\nexport default function PostFormat() {\n\tconst instanceId = useInstanceId( PostFormat );\n\tconst postFormatSelectorId = `post-format-selector-${ instanceId }`;\n\n\tconst { postFormat, suggestedFormat, supportedFormats } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostAttribute, getSuggestedPostFormat } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst _postFormat = getEditedPostAttribute( 'format' );\n\t\t\tconst themeSupports = select( coreStore ).getThemeSupports();\n\t\t\treturn {\n\t\t\t\tpostFormat: _postFormat ?? 'standard',\n\t\t\t\tsuggestedFormat: getSuggestedPostFormat(),\n\t\t\t\tsupportedFormats: themeSupports.formats,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tconst formats = POST_FORMATS.filter( ( format ) => {\n\t\t// Ensure current format is always in the set.\n\t\t// The current format may not be a format supported by the theme.\n\t\treturn (\n\t\t\tincludes( supportedFormats, format.id ) || postFormat === format.id\n\t\t);\n\t} );\n\tconst suggestion = find(\n\t\tformats,\n\t\t( format ) => format.id === suggestedFormat\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst onUpdatePostFormat = ( format ) => editPost( { format } );\n\n\treturn (\n\t\t<PostFormatCheck>\n\t\t\t<div className=\"editor-post-format\">\n\t\t\t\t<SelectControl\n\t\t\t\t\tlabel={ __( 'Post Format' ) }\n\t\t\t\t\tvalue={ postFormat }\n\t\t\t\t\tonChange={ ( format ) => onUpdatePostFormat( format ) }\n\t\t\t\t\tid={ postFormatSelectorId }\n\t\t\t\t\toptions={ formats.map( ( format ) => ( {\n\t\t\t\t\t\tlabel: format.caption,\n\t\t\t\t\t\tvalue: format.id,\n\t\t\t\t\t} ) ) }\n\t\t\t\t/>\n\t\t\t\t{ suggestion && suggestion.id !== postFormat && (\n\t\t\t\t\t<p className=\"editor-post-format__suggestion\">\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\tonUpdatePostFormat( suggestion.id )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: post format */\n\t\t\t\t\t\t\t\t__( 'Apply suggested format: %s' ),\n\t\t\t\t\t\t\t\tsuggestion.caption\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</p>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t</PostFormatCheck>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst backup = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M5.5 12h1.75l-2.5 3-2.5-3H4a8 8 0 113.134 6.35l.907-1.194A6.5 6.5 0 105.5 12zm9.53 1.97l-2.28-2.28V8.5a.75.75 0 00-1.5 0V12a.747.747 0 00.218.529l1.282-.84-1.28.842 2.5 2.5a.75.75 0 101.06-1.061z\" />\n\t</SVG>\n);\n\nexport default backup;\n","/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\nexport function PostLastRevisionCheck( {\n\tlastRevisionId,\n\trevisionsCount,\n\tchildren,\n} ) {\n\tif ( ! lastRevisionId || revisionsCount < 2 ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"revisions\">\n\t\t\t{ children }\n\t\t</PostTypeSupportCheck>\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getCurrentPostLastRevisionId, getCurrentPostRevisionsCount } =\n\t\tselect( editorStore );\n\treturn {\n\t\tlastRevisionId: getCurrentPostLastRevisionId(),\n\t\trevisionsCount: getCurrentPostRevisionsCount(),\n\t};\n} )( PostLastRevisionCheck );\n","/**\n * WordPress dependencies\n */\nimport { sprintf, _n } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { backup } from '@wordpress/icons';\nimport { addQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport PostLastRevisionCheck from './check';\nimport { store as editorStore } from '../../store';\n\nfunction LastRevision( { lastRevisionId, revisionsCount } ) {\n\treturn (\n\t\t<PostLastRevisionCheck>\n\t\t\t<Button\n\t\t\t\thref={ addQueryArgs( 'revision.php', {\n\t\t\t\t\trevision: lastRevisionId,\n\t\t\t\t\tgutenberg: true,\n\t\t\t\t} ) }\n\t\t\t\tclassName=\"editor-post-last-revision__title\"\n\t\t\t\ticon={ backup }\n\t\t\t>\n\t\t\t\t{ sprintf(\n\t\t\t\t\t/* translators: %d: number of revisions */\n\t\t\t\t\t_n( '%d Revision', '%d Revisions', revisionsCount ),\n\t\t\t\t\trevisionsCount\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t</PostLastRevisionCheck>\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getCurrentPostLastRevisionId, getCurrentPostRevisionsCount } =\n\t\tselect( editorStore );\n\treturn {\n\t\tlastRevisionId: getCurrentPostLastRevisionId(),\n\t\trevisionsCount: getCurrentPostRevisionsCount(),\n\t};\n} )( LastRevision );\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tModal,\n\tButton,\n\tExternalLink,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { addQueryArgs } from '@wordpress/url';\nimport { useEffect, createInterpolateElement } from '@wordpress/element';\nimport { addAction, removeAction } from '@wordpress/hooks';\nimport { useInstanceId } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostLockedModal() {\n\tconst instanceId = useInstanceId( PostLockedModal );\n\tconst hookName = 'core/editor/post-locked-modal-' + instanceId;\n\tconst { autosave, updatePostLock } = useDispatch( editorStore );\n\tconst {\n\t\tisLocked,\n\t\tisTakeover,\n\t\tuser,\n\t\tpostId,\n\t\tpostLockUtils,\n\t\tactivePostLock,\n\t\tpostType,\n\t\tpreviewLink,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tisPostLocked,\n\t\t\tisPostLockTakeover,\n\t\t\tgetPostLockUser,\n\t\t\tgetCurrentPostId,\n\t\t\tgetActivePostLock,\n\t\t\tgetEditedPostAttribute,\n\t\t\tgetEditedPostPreviewLink,\n\t\t\tgetEditorSettings,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\t\treturn {\n\t\t\tisLocked: isPostLocked(),\n\t\t\tisTakeover: isPostLockTakeover(),\n\t\t\tuser: getPostLockUser(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tpostLockUtils: getEditorSettings().postLockUtils,\n\t\t\tactivePostLock: getActivePostLock(),\n\t\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\t\tpreviewLink: getEditedPostPreviewLink(),\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t/**\n\t\t * Keep the lock refreshed.\n\t\t *\n\t\t * When the user does not send a heartbeat in a heartbeat-tick\n\t\t * the user is no longer editing and another user can start editing.\n\t\t *\n\t\t * @param {Object} data Data to send in the heartbeat request.\n\t\t */\n\t\tfunction sendPostLock( data ) {\n\t\t\tif ( isLocked ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdata[ 'wp-refresh-post-lock' ] = {\n\t\t\t\tlock: activePostLock,\n\t\t\t\tpost_id: postId,\n\t\t\t};\n\t\t}\n\n\t\t/**\n\t\t * Refresh post locks: update the lock string or show the dialog if somebody has taken over editing.\n\t\t *\n\t\t * @param {Object} data Data received in the heartbeat request\n\t\t */\n\t\tfunction receivePostLock( data ) {\n\t\t\tif ( ! data[ 'wp-refresh-post-lock' ] ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst received = data[ 'wp-refresh-post-lock' ];\n\t\t\tif ( received.lock_error ) {\n\t\t\t\t// Auto save and display the takeover modal.\n\t\t\t\tautosave();\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: true,\n\t\t\t\t\tisTakeover: true,\n\t\t\t\t\tuser: {\n\t\t\t\t\t\tname: received.lock_error.name,\n\t\t\t\t\t\tavatar: received.lock_error.avatar_src_2x,\n\t\t\t\t\t},\n\t\t\t\t} );\n\t\t\t} else if ( received.new_lock ) {\n\t\t\t\tupdatePostLock( {\n\t\t\t\t\tisLocked: false,\n\t\t\t\t\tactivePostLock: received.new_lock,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Unlock the post before the window is exited.\n\t\t */\n\t\tfunction releasePostLock() {\n\t\t\tif ( isLocked || ! activePostLock ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst data = new window.FormData();\n\t\t\tdata.append( 'action', 'wp-remove-post-lock' );\n\t\t\tdata.append( '_wpnonce', postLockUtils.unlockNonce );\n\t\t\tdata.append( 'post_ID', postId );\n\t\t\tdata.append( 'active_post_lock', activePostLock );\n\n\t\t\tif ( window.navigator.sendBeacon ) {\n\t\t\t\twindow.navigator.sendBeacon( postLockUtils.ajaxUrl, data );\n\t\t\t} else {\n\t\t\t\tconst xhr = new window.XMLHttpRequest();\n\t\t\t\txhr.open( 'POST', postLockUtils.ajaxUrl, false );\n\t\t\t\txhr.send( data );\n\t\t\t}\n\t\t}\n\n\t\t// Details on these events on the Heartbeat API docs\n\t\t// https://developer.wordpress.org/plugins/javascript/heartbeat-api/\n\t\taddAction( 'heartbeat.send', hookName, sendPostLock );\n\t\taddAction( 'heartbeat.tick', hookName, receivePostLock );\n\t\twindow.addEventListener( 'beforeunload', releasePostLock );\n\n\t\treturn () => {\n\t\t\tremoveAction( 'heartbeat.send', hookName );\n\t\t\tremoveAction( 'heartbeat.tick', hookName );\n\t\t\twindow.removeEventListener( 'beforeunload', releasePostLock );\n\t\t};\n\t}, [] );\n\n\tif ( ! isLocked ) {\n\t\treturn null;\n\t}\n\n\tconst userDisplayName = user.name;\n\tconst userAvatar = user.avatar;\n\n\tconst unlockUrl = addQueryArgs( 'post.php', {\n\t\t'get-post-lock': '1',\n\t\tlockKey: true,\n\t\tpost: postId,\n\t\taction: 'edit',\n\t\t_wpnonce: postLockUtils.nonce,\n\t} );\n\tconst allPostsUrl = addQueryArgs( 'edit.php', {\n\t\tpost_type: get( postType, [ 'slug' ] ),\n\t} );\n\tconst allPostsLabel = __( 'Exit editor' );\n\treturn (\n\t\t<Modal\n\t\t\ttitle={\n\t\t\t\tisTakeover\n\t\t\t\t\t? __( 'Someone else has taken over this post' )\n\t\t\t\t\t: __( 'This post is already being edited' )\n\t\t\t}\n\t\t\tfocusOnMount={ true }\n\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\tshouldCloseOnEsc={ false }\n\t\t\tisDismissible={ false }\n\t\t\tclassName=\"editor-post-locked-modal\"\n\t\t>\n\t\t\t{ !! userAvatar && (\n\t\t\t\t<img\n\t\t\t\t\tsrc={ userAvatar }\n\t\t\t\t\talt={ __( 'Avatar' ) }\n\t\t\t\t\tclassName=\"editor-post-locked-modal__avatar\"\n\t\t\t\t\twidth={ 64 }\n\t\t\t\t\theight={ 64 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t<div>\n\t\t\t\t{ !! isTakeover && (\n\t\t\t\t\t<p>\n\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t'<strong>%s</strong> now has editing control of this post (<PreviewLink />). Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\tuserDisplayName\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\t\t'Another user now has editing control of this post (<PreviewLink />). Don’t worry, your changes up to this moment have been saved.'\n\t\t\t\t\t\t\t\t  ),\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstrong: <strong />,\n\t\t\t\t\t\t\t\tPreviewLink: (\n\t\t\t\t\t\t\t\t\t<ExternalLink href={ previewLink }>\n\t\t\t\t\t\t\t\t\t\t{ __( 'preview' ) }\n\t\t\t\t\t\t\t\t\t</ExternalLink>\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</p>\n\t\t\t\t) }\n\t\t\t\t{ ! isTakeover && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ createInterpolateElement(\n\t\t\t\t\t\t\t\tuserDisplayName\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: user's display name */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'<strong>%s</strong> is currently working on this post (<PreviewLink />), which means you cannot make changes, unless you take over.'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tuserDisplayName\n\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\t\t\t'Another user is currently working on this post (<PreviewLink />), which means you cannot make changes, unless you take over.'\n\t\t\t\t\t\t\t\t\t  ),\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tstrong: <strong />,\n\t\t\t\t\t\t\t\t\tPreviewLink: (\n\t\t\t\t\t\t\t\t\t\t<ExternalLink href={ previewLink }>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'preview' ) }\n\t\t\t\t\t\t\t\t\t\t</ExternalLink>\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</p>\n\t\t\t\t\t\t<p>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'If you take over, the other user will lose editing control to the post, but their changes will be saved.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t<Flex\n\t\t\t\t\tclassName=\"editor-post-locked-modal__buttons\"\n\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\texpanded={ false }\n\t\t\t\t>\n\t\t\t\t\t{ ! isTakeover && (\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button variant=\"tertiary\" href={ unlockUrl }>\n\t\t\t\t\t\t\t\t{ __( 'Take over' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t) }\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<Button variant=\"primary\" href={ allPostsUrl }>\n\t\t\t\t\t\t\t{ allPostsLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</div>\n\t\t</Modal>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostPendingStatusCheck( {\n\thasPublishAction,\n\tisPublished,\n\tchildren,\n} ) {\n\tif ( isPublished || ! hasPublishAction ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { isCurrentPostPublished, getCurrentPostType, getCurrentPost } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\thasPublishAction: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t} )\n)( PostPendingStatusCheck );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostPendingStatusCheck from './check';\nimport { store as editorStore } from '../../store';\n\nexport function PostPendingStatus( { status, onUpdateStatus } ) {\n\tconst togglePendingStatus = () => {\n\t\tconst updatedStatus = status === 'pending' ? 'draft' : 'pending';\n\t\tonUpdateStatus( updatedStatus );\n\t};\n\n\treturn (\n\t\t<PostPendingStatusCheck>\n\t\t\t<CheckboxControl\n\t\t\t\tlabel={ __( 'Pending review' ) }\n\t\t\t\tchecked={ status === 'pending' }\n\t\t\t\tonChange={ togglePendingStatus }\n\t\t\t/>\n\t\t</PostPendingStatusCheck>\n\t);\n}\n\nexport default compose(\n\twithSelect( ( select ) => ( {\n\t\tstatus: select( editorStore ).getEditedPostAttribute( 'status' ),\n\t} ) ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tonUpdateStatus( status ) {\n\t\t\tdispatch( editorStore ).editPost( { status } );\n\t\t},\n\t} ) )\n)( PostPendingStatus );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction PostPingbacks( { pingStatus = 'open', ...props } ) {\n\tconst onTogglePingback = () =>\n\t\tprops.editPost( {\n\t\t\tping_status: pingStatus === 'open' ? 'closed' : 'open',\n\t\t} );\n\n\treturn (\n\t\t<CheckboxControl\n\t\t\tlabel={ __( 'Allow pingbacks & trackbacks' ) }\n\t\t\tchecked={ pingStatus === 'open' }\n\t\t\tonChange={ onTogglePingback }\n\t\t/>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tpingStatus:\n\t\t\t\tselect( editorStore ).getEditedPostAttribute( 'ping_status' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => ( {\n\t\teditPost: dispatch( editorStore ).editPost,\n\t} ) ),\n] )( PostPingbacks );\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, renderToString } from '@wordpress/element';\nimport { Button, Path, SVG, VisuallyHidden } from '@wordpress/components';\nimport { __, _x } from '@wordpress/i18n';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { ifCondition, compose } from '@wordpress/compose';\nimport { applyFilters } from '@wordpress/hooks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction writeInterstitialMessage( targetDocument ) {\n\tlet markup = renderToString(\n\t\t<div className=\"editor-post-preview-button__interstitial-message\">\n\t\t\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 96 96\">\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"outer\"\n\t\t\t\t\td=\"M48 12c19.9 0 36 16.1 36 36S67.9 84 48 84 12 67.9 12 48s16.1-36 36-36\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t\t<Path\n\t\t\t\t\tclassName=\"inner\"\n\t\t\t\t\td=\"M69.5 46.4c0-3.9-1.4-6.7-2.6-8.8-1.6-2.6-3.1-4.9-3.1-7.5 0-2.9 2.2-5.7 5.4-5.7h.4C63.9 19.2 56.4 16 48 16c-11.2 0-21 5.7-26.7 14.4h2.1c3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3L40 67.5l7-20.9L42 33c-1.7-.1-3.3-.3-3.3-.3-1.7-.1-1.5-2.7.2-2.6 0 0 5.3.4 8.4.4 3.3 0 8.5-.4 8.5-.4 1.7-.1 1.9 2.4.2 2.6 0 0-1.7.2-3.7.3l11.5 34.3 3.3-10.4c1.6-4.5 2.4-7.8 2.4-10.5zM16.1 48c0 12.6 7.3 23.5 18 28.7L18.8 35c-1.7 4-2.7 8.4-2.7 13zm32.5 2.8L39 78.6c2.9.8 5.9 1.3 9 1.3 3.7 0 7.3-.6 10.6-1.8-.1-.1-.2-.3-.2-.4l-9.8-26.9zM76.2 36c0 3.2-.6 6.9-2.4 11.4L64 75.6c9.5-5.5 15.9-15.8 15.9-27.6 0-5.5-1.4-10.8-3.9-15.3.1 1 .2 2.1.2 3.3z\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t/>\n\t\t\t</SVG>\n\t\t\t<p>{ __( 'Generating preview…' ) }</p>\n\t\t</div>\n\t);\n\n\tmarkup += `\n\t\t<style>\n\t\t\tbody {\n\t\t\t\tmargin: 0;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\theight: 100vh;\n\t\t\t\twidth: 100vw;\n\t\t\t}\n\t\t\t@-webkit-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-moz-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@-o-keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t@keyframes paint {\n\t\t\t\t0% {\n\t\t\t\t\tstroke-dashoffset: 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg {\n\t\t\t\twidth: 192px;\n\t\t\t\theight: 192px;\n\t\t\t\tstroke: #555d66;\n\t\t\t\tstroke-width: 0.75;\n\t\t\t}\n\t\t\t.editor-post-preview-button__interstitial-message svg .outer,\n\t\t\t.editor-post-preview-button__interstitial-message svg .inner {\n\t\t\t\tstroke-dasharray: 280;\n\t\t\t\tstroke-dashoffset: 280;\n\t\t\t\t-webkit-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-moz-animation: paint 1.5s ease infinite alternate;\n\t\t\t\t-o-animation: paint 1.5s ease infinite alternate;\n\t\t\t\tanimation: paint 1.5s ease infinite alternate;\n\t\t\t}\n\t\t\tp {\n\t\t\t\ttext-align: center;\n\t\t\t\tfont-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen-Sans, Ubuntu, Cantarell, \"Helvetica Neue\", sans-serif;\n\t\t\t}\n\t\t</style>\n\t`;\n\n\t/**\n\t * Filters the interstitial message shown when generating previews.\n\t *\n\t * @param {string} markup The preview interstitial markup.\n\t */\n\tmarkup = applyFilters( 'editor.PostPreview.interstitialMarkup', markup );\n\n\ttargetDocument.write( markup );\n\ttargetDocument.title = __( 'Generating preview…' );\n\ttargetDocument.close();\n}\n\nexport class PostPreviewButton extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.buttonRef = createRef();\n\n\t\tthis.openPreviewWindow = this.openPreviewWindow.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { previewLink } = this.props;\n\t\t// This relies on the window being responsible to unset itself when\n\t\t// navigation occurs or a new preview window is opened, to avoid\n\t\t// unintentional forceful redirects.\n\t\tif ( previewLink && ! prevProps.previewLink ) {\n\t\t\tthis.setPreviewWindowLink( previewLink );\n\t\t}\n\t}\n\n\t/**\n\t * Sets the preview window's location to the given URL, if a preview window\n\t * exists and is not closed.\n\t *\n\t * @param {string} url URL to assign as preview window location.\n\t */\n\tsetPreviewWindowLink( url ) {\n\t\tconst { previewWindow } = this;\n\n\t\tif ( previewWindow && ! previewWindow.closed ) {\n\t\t\tpreviewWindow.location = url;\n\t\t\tif ( this.buttonRef.current ) {\n\t\t\t\tthis.buttonRef.current.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tgetWindowTarget() {\n\t\tconst { postId } = this.props;\n\t\treturn `wp-preview-${ postId }`;\n\t}\n\n\topenPreviewWindow( event ) {\n\t\t// Our Preview button has its 'href' and 'target' set correctly for a11y\n\t\t// purposes. Unfortunately, though, we can't rely on the default 'click'\n\t\t// handler since sometimes it incorrectly opens a new tab instead of reusing\n\t\t// the existing one.\n\t\t// https://github.com/WordPress/gutenberg/pull/8330\n\t\tevent.preventDefault();\n\n\t\t// Open up a Preview tab if needed. This is where we'll show the preview.\n\t\tif ( ! this.previewWindow || this.previewWindow.closed ) {\n\t\t\tthis.previewWindow = window.open( '', this.getWindowTarget() );\n\t\t}\n\n\t\t// Focus the Preview tab. This might not do anything, depending on the browser's\n\t\t// and user's preferences.\n\t\t// https://html.spec.whatwg.org/multipage/interaction.html#dom-window-focus\n\t\tthis.previewWindow.focus();\n\n\t\tif (\n\t\t\t// If we don't need to autosave the post before previewing, then we simply\n\t\t\t// load the Preview URL in the Preview tab.\n\t\t\t! this.props.isAutosaveable ||\n\t\t\t// Do not save or overwrite the post, if the post is already locked.\n\t\t\tthis.props.isPostLocked\n\t\t) {\n\t\t\tthis.setPreviewWindowLink( event.target.href );\n\t\t\treturn;\n\t\t}\n\n\t\t// Request an autosave. This happens asynchronously and causes the component\n\t\t// to update when finished.\n\t\tif ( this.props.isDraft ) {\n\t\t\tthis.props.savePost( { isPreview: true } );\n\t\t} else {\n\t\t\tthis.props.autosave( { isPreview: true } );\n\t\t}\n\n\t\t// Display a 'Generating preview' message in the Preview tab while we wait for the\n\t\t// autosave to finish.\n\t\twriteInterstitialMessage( this.previewWindow.document );\n\t}\n\n\trender() {\n\t\tconst { previewLink, currentPostLink, isSaveable, role } = this.props;\n\n\t\t// Link to the `?preview=true` URL if we have it, since this lets us see\n\t\t// changes that were autosaved since the post was last published. Otherwise,\n\t\t// just link to the post's URL.\n\t\tconst href = previewLink || currentPostLink;\n\n\t\tconst classNames = classnames(\n\t\t\t{\n\t\t\t\t'editor-post-preview': ! this.props.className,\n\t\t\t},\n\t\t\tthis.props.className\n\t\t);\n\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tvariant={ ! this.props.className ? 'tertiary' : undefined }\n\t\t\t\tclassName={ classNames }\n\t\t\t\thref={ href }\n\t\t\t\ttarget={ this.getWindowTarget() }\n\t\t\t\tdisabled={ ! isSaveable }\n\t\t\t\tonClick={ this.openPreviewWindow }\n\t\t\t\tref={ this.buttonRef }\n\t\t\t\trole={ role }\n\t\t\t>\n\t\t\t\t{ this.props.textContent ? (\n\t\t\t\t\tthis.props.textContent\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ _x( 'Preview', 'imperative verb' ) }\n\t\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t/* translators: accessibility text */\n\t\t\t\t\t\t\t\t__( '(opens in a new tab)' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { forcePreviewLink, forceIsAutosaveable } ) => {\n\t\tconst {\n\t\t\tgetCurrentPostId,\n\t\t\tgetCurrentPostAttribute,\n\t\t\tgetEditedPostAttribute,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostAutosaveable,\n\t\t\tgetEditedPostPreviewLink,\n\t\t\tisPostLocked,\n\t\t} = select( editorStore );\n\t\tconst { getPostType } = select( coreStore );\n\n\t\tconst previewLink = getEditedPostPreviewLink();\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\tpostId: getCurrentPostId(),\n\t\t\tcurrentPostLink: getCurrentPostAttribute( 'link' ),\n\t\t\tpreviewLink:\n\t\t\t\tforcePreviewLink !== undefined ? forcePreviewLink : previewLink,\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisAutosaveable: forceIsAutosaveable || isEditedPostAutosaveable(),\n\t\t\tisViewable: get( postType, [ 'viewable' ], false ),\n\t\t\tisDraft:\n\t\t\t\t[ 'draft', 'auto-draft' ].indexOf(\n\t\t\t\t\tgetEditedPostAttribute( 'status' )\n\t\t\t\t) !== -1,\n\t\t\tisPostLocked: isPostLocked(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => ( {\n\t\tautosave: dispatch( editorStore ).autosave,\n\t\tsavePost: dispatch( editorStore ).savePost,\n\t} ) ),\n\tifCondition( ( { isViewable } ) => isViewable ),\n] )( PostPreviewButton );\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PublishButtonLabel( {\n\tisPublished,\n\tisBeingScheduled,\n\tisSaving,\n\tisPublishing,\n\thasPublishAction,\n\tisAutosaving,\n\thasNonPostEntityChanges,\n} ) {\n\tif ( isPublishing ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Publishing…' );\n\t} else if ( isPublished && isSaving && ! isAutosaving ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Updating…' );\n\t} else if ( isBeingScheduled && isSaving && ! isAutosaving ) {\n\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\treturn __( 'Scheduling…' );\n\t}\n\n\tif ( ! hasPublishAction ) {\n\t\treturn hasNonPostEntityChanges\n\t\t\t? __( 'Submit for Review…' )\n\t\t\t: __( 'Submit for Review' );\n\t} else if ( isPublished ) {\n\t\treturn hasNonPostEntityChanges ? __( 'Update…' ) : __( 'Update' );\n\t} else if ( isBeingScheduled ) {\n\t\treturn hasNonPostEntityChanges ? __( 'Schedule…' ) : __( 'Schedule' );\n\t}\n\n\treturn __( 'Publish' );\n}\n\nexport default compose( [\n\twithSelect( ( select, { forceIsSaving } ) => {\n\t\tconst {\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tisSavingPost,\n\t\t\tisPublishingPost,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tisAutosavingPost,\n\t\t} = select( editorStore );\n\t\treturn {\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisSaving: forceIsSaving || isSavingPost(),\n\t\t\tisPublishing: isPublishingPost(),\n\t\t\thasPublishAction: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tisAutosaving: isAutosavingPost(),\n\t\t};\n\t} ),\n] )( PublishButtonLabel );\n","/**\n * External dependencies\n */\nimport { get, some } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PublishButtonLabel from './label';\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\nexport class PostPublishButton extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.buttonNode = createRef();\n\n\t\tthis.createOnClick = this.createOnClick.bind( this );\n\t\tthis.closeEntitiesSavedStates =\n\t\t\tthis.closeEntitiesSavedStates.bind( this );\n\n\t\tthis.state = {\n\t\t\tentitiesSavedStatesCallback: false,\n\t\t};\n\t}\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\tthis.buttonNode.current.focus();\n\t\t}\n\t}\n\n\tcreateOnClick( callback ) {\n\t\treturn ( ...args ) => {\n\t\t\tconst { hasNonPostEntityChanges, setEntitiesSavedStatesCallback } =\n\t\t\t\tthis.props;\n\t\t\t// If a post with non-post entities is published, but the user\n\t\t\t// elects to not save changes to the non-post entities, those\n\t\t\t// entities will still be dirty when the Publish button is clicked.\n\t\t\t// We also need to check that the `setEntitiesSavedStatesCallback`\n\t\t\t// prop was passed. See https://github.com/WordPress/gutenberg/pull/37383\n\t\t\tif ( hasNonPostEntityChanges && setEntitiesSavedStatesCallback ) {\n\t\t\t\t// The modal for multiple entity saving will open,\n\t\t\t\t// hold the callback for saving/publishing the post\n\t\t\t\t// so that we can call it if the post entity is checked.\n\t\t\t\tthis.setState( {\n\t\t\t\t\tentitiesSavedStatesCallback: () => callback( ...args ),\n\t\t\t\t} );\n\n\t\t\t\t// Open the save panel by setting its callback.\n\t\t\t\t// To set a function on the useState hook, we must set it\n\t\t\t\t// with another function (() => myFunction). Passing the\n\t\t\t\t// function on its own will cause an error when called.\n\t\t\t\tsetEntitiesSavedStatesCallback(\n\t\t\t\t\t() => this.closeEntitiesSavedStates\n\t\t\t\t);\n\t\t\t\treturn noop;\n\t\t\t}\n\n\t\t\treturn callback( ...args );\n\t\t};\n\t}\n\n\tcloseEntitiesSavedStates( savedEntities ) {\n\t\tconst { postType, postId } = this.props;\n\t\tconst { entitiesSavedStatesCallback } = this.state;\n\t\tthis.setState( { entitiesSavedStatesCallback: false }, () => {\n\t\t\tif (\n\t\t\t\tsavedEntities &&\n\t\t\t\tsome(\n\t\t\t\t\tsavedEntities,\n\t\t\t\t\t( elt ) =>\n\t\t\t\t\t\telt.kind === 'postType' &&\n\t\t\t\t\t\telt.name === postType &&\n\t\t\t\t\t\telt.key === postId\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// The post entity was checked, call the held callback from `createOnClick`.\n\t\t\t\tentitiesSavedStatesCallback();\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\tforceIsSaving,\n\t\t\thasPublishAction,\n\t\t\tisBeingScheduled,\n\t\t\tisOpen,\n\t\t\tisPostSavingLocked,\n\t\t\tisPublishable,\n\t\t\tisPublished,\n\t\t\tisSaveable,\n\t\t\tisSaving,\n\t\t\tisAutoSaving,\n\t\t\tisToggle,\n\t\t\tonSave,\n\t\t\tonStatusChange,\n\t\t\tonSubmit = noop,\n\t\t\tonToggle,\n\t\t\tvisibility,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = this.props;\n\n\t\tconst isButtonDisabled =\n\t\t\t( isSaving ||\n\t\t\t\tforceIsSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\tisPostSavingLocked ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tconst isToggleDisabled =\n\t\t\t( isPublished ||\n\t\t\t\tisSaving ||\n\t\t\t\tforceIsSaving ||\n\t\t\t\t! isSaveable ||\n\t\t\t\t( ! isPublishable && ! forceIsDirty ) ) &&\n\t\t\t( ! hasNonPostEntityChanges || isSavingNonPostEntityChanges );\n\n\t\tlet publishStatus;\n\t\tif ( ! hasPublishAction ) {\n\t\t\tpublishStatus = 'pending';\n\t\t} else if ( visibility === 'private' ) {\n\t\t\tpublishStatus = 'private';\n\t\t} else if ( isBeingScheduled ) {\n\t\t\tpublishStatus = 'future';\n\t\t} else {\n\t\t\tpublishStatus = 'publish';\n\t\t}\n\n\t\tconst onClickButton = () => {\n\t\t\tif ( isButtonDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonSubmit();\n\t\t\tonStatusChange( publishStatus );\n\t\t\tonSave();\n\t\t};\n\n\t\tconst onClickToggle = () => {\n\t\t\tif ( isToggleDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonToggle();\n\t\t};\n\n\t\tconst buttonProps = {\n\t\t\t'aria-disabled': isButtonDisabled,\n\t\t\tclassName: 'editor-post-publish-button',\n\t\t\tisBusy: ! isAutoSaving && isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickButton ),\n\t\t};\n\n\t\tconst toggleProps = {\n\t\t\t'aria-disabled': isToggleDisabled,\n\t\t\t'aria-expanded': isOpen,\n\t\t\tclassName: 'editor-post-publish-panel__toggle',\n\t\t\tisBusy: isSaving && isPublished,\n\t\t\tvariant: 'primary',\n\t\t\tonClick: this.createOnClick( onClickToggle ),\n\t\t};\n\n\t\tconst toggleChildren = isBeingScheduled\n\t\t\t? __( 'Schedule…' )\n\t\t\t: __( 'Publish' );\n\t\tconst buttonChildren = (\n\t\t\t<PublishButtonLabel\n\t\t\t\tforceIsSaving={ forceIsSaving }\n\t\t\t\thasNonPostEntityChanges={ hasNonPostEntityChanges }\n\t\t\t/>\n\t\t);\n\n\t\tconst componentProps = isToggle ? toggleProps : buttonProps;\n\t\tconst componentChildren = isToggle ? toggleChildren : buttonChildren;\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<Button\n\t\t\t\t\tref={ this.buttonNode }\n\t\t\t\t\t{ ...componentProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\tcomponentProps.className,\n\t\t\t\t\t\t'editor-post-publish-button__button',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'has-changes-dot': hasNonPostEntityChanges,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ componentChildren }\n\t\t\t\t</Button>\n\t\t\t</>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst {\n\t\t\tisSavingPost,\n\t\t\tisAutosavingPost,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tgetEditedPostVisibility,\n\t\t\tisCurrentPostPublished,\n\t\t\tisEditedPostSaveable,\n\t\t\tisEditedPostPublishable,\n\t\t\tisPostSavingLocked,\n\t\t\tgetCurrentPost,\n\t\t\tgetCurrentPostType,\n\t\t\tgetCurrentPostId,\n\t\t\thasNonPostEntityChanges,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst _isAutoSaving = isAutosavingPost();\n\t\treturn {\n\t\t\tisSaving: isSavingPost() || _isAutoSaving,\n\t\t\tisAutoSaving: _isAutoSaving,\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tvisibility: getEditedPostVisibility(),\n\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\tisPostSavingLocked: isPostSavingLocked(),\n\t\t\tisPublishable: isEditedPostPublishable(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\thasPublishAction: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tpostType: getCurrentPostType(),\n\t\t\tpostId: getCurrentPostId(),\n\t\t\thasNonPostEntityChanges: hasNonPostEntityChanges(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonStatusChange: ( status ) =>\n\t\t\t\teditPost( { status }, { undoIgnore: true } ),\n\t\t\tonSave: savePost,\n\t\t};\n\t} ),\n] )( PostPublishButton );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst closeSmall = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 13.06l3.712 3.713 1.061-1.06L13.061 12l3.712-3.712-1.06-1.06L12 10.938 8.288 7.227l-1.061 1.06L10.939 12l-3.712 3.712 1.06 1.061L12 13.061z\" />\n\t</SVG>\n);\n\nexport default closeSmall;\n","/**\n * WordPress dependencies\n */\nimport { Path, SVG } from '@wordpress/primitives';\n\nconst wordpress = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"-2 -2 24 24\">\n\t\t<Path d=\"M20 10c0-5.51-4.49-10-10-10C4.48 0 0 4.49 0 10c0 5.52 4.48 10 10 10 5.51 0 10-4.48 10-10zM7.78 15.37L4.37 6.22c.55-.02 1.17-.08 1.17-.08.5-.06.44-1.13-.06-1.11 0 0-1.45.11-2.37.11-.18 0-.37 0-.58-.01C4.12 2.69 6.87 1.11 10 1.11c2.33 0 4.45.87 6.05 2.34-.68-.11-1.65.39-1.65 1.58 0 .74.45 1.36.9 2.1.35.61.55 1.36.55 2.46 0 1.49-1.4 5-1.4 5l-3.03-8.37c.54-.02.82-.17.82-.17.5-.05.44-1.25-.06-1.22 0 0-1.44.12-2.38.12-.87 0-2.33-.12-2.33-.12-.5-.03-.56 1.2-.06 1.22l.92.08 1.26 3.41zM17.41 10c.24-.64.74-1.87.43-4.25.7 1.29 1.05 2.71 1.05 4.25 0 3.29-1.73 6.24-4.4 7.78.97-2.59 1.94-5.2 2.92-7.78zM6.1 18.09C3.12 16.65 1.11 13.53 1.11 10c0-1.3.23-2.48.72-3.59C3.25 10.3 4.67 14.2 6.1 18.09zm4.03-6.63l2.58 6.98c-.86.29-1.76.45-2.71.45-.79 0-1.57-.11-2.29-.33.81-2.38 1.62-4.74 2.42-7.1z\" />\n\t</SVG>\n);\n\nexport default wordpress;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\nexport const visibilityOptions = {\n\tpublic: {\n\t\tlabel: __( 'Public' ),\n\t\tinfo: __( 'Visible to everyone.' ),\n\t},\n\tprivate: {\n\t\tlabel: __( 'Private' ),\n\t\tinfo: __( 'Only visible to site admins and editors.' ),\n\t},\n\tpassword: {\n\t\tlabel: __( 'Password protected' ),\n\t\tinfo: __( 'Only those with the password can view this post.' ),\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\nimport {\n\tVisuallyHidden,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { visibilityOptions } from './utils';\nimport { store as editorStore } from '../../store';\n\nexport default function PostVisibility( { onClose } ) {\n\tconst instanceId = useInstanceId( PostVisibility );\n\n\tconst { status, visibility, password } = useSelect( ( select ) => ( {\n\t\tstatus: select( editorStore ).getEditedPostAttribute( 'status' ),\n\t\tvisibility: select( editorStore ).getEditedPostVisibility(),\n\t\tpassword: select( editorStore ).getEditedPostAttribute( 'password' ),\n\t} ) );\n\n\tconst { editPost, savePost } = useDispatch( editorStore );\n\n\tconst [ hasPassword, setHasPassword ] = useState( !! password );\n\tconst [ showPrivateConfirmDialog, setShowPrivateConfirmDialog ] =\n\t\tuseState( false );\n\n\tconst setPublic = () => {\n\t\teditPost( {\n\t\t\tstatus: visibility === 'private' ? 'draft' : status,\n\t\t\tpassword: '',\n\t\t} );\n\t\tsetHasPassword( false );\n\t};\n\n\tconst setPrivate = () => {\n\t\tsetShowPrivateConfirmDialog( true );\n\t};\n\n\tconst confirmPrivate = () => {\n\t\teditPost( { status: 'private', password: '' } );\n\t\tsetHasPassword( false );\n\t\tsetShowPrivateConfirmDialog( false );\n\t\tsavePost();\n\t};\n\n\tconst handleDialogCancel = () => {\n\t\tsetShowPrivateConfirmDialog( false );\n\t};\n\n\tconst setPasswordProtected = () => {\n\t\teditPost( {\n\t\t\tstatus: visibility === 'private' ? 'draft' : status,\n\t\t\tpassword: password || '',\n\t\t} );\n\t\tsetHasPassword( true );\n\t};\n\n\tconst updatePassword = ( event ) => {\n\t\teditPost( { password: event.target.value } );\n\t};\n\n\treturn (\n\t\t<div className=\"editor-post-visibility\">\n\t\t\t<InspectorPopoverHeader\n\t\t\t\ttitle={ __( 'Visibility' ) }\n\t\t\t\thelp={ __( 'Control how this post is viewed.' ) }\n\t\t\t\tonClose={ onClose }\n\t\t\t/>\n\t\t\t<fieldset className=\"editor-post-visibility__fieldset\">\n\t\t\t\t<VisuallyHidden as=\"legend\">\n\t\t\t\t\t{ __( 'Visibility' ) }\n\t\t\t\t</VisuallyHidden>\n\t\t\t\t<PostVisibilityChoice\n\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\tvalue=\"public\"\n\t\t\t\t\tlabel={ visibilityOptions.public.label }\n\t\t\t\t\tinfo={ visibilityOptions.public.info }\n\t\t\t\t\tchecked={ visibility === 'public' && ! hasPassword }\n\t\t\t\t\tonChange={ setPublic }\n\t\t\t\t/>\n\t\t\t\t<PostVisibilityChoice\n\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\tvalue=\"private\"\n\t\t\t\t\tlabel={ visibilityOptions.private.label }\n\t\t\t\t\tinfo={ visibilityOptions.private.info }\n\t\t\t\t\tchecked={ visibility === 'private' }\n\t\t\t\t\tonChange={ setPrivate }\n\t\t\t\t/>\n\t\t\t\t<PostVisibilityChoice\n\t\t\t\t\tinstanceId={ instanceId }\n\t\t\t\t\tvalue=\"password\"\n\t\t\t\t\tlabel={ visibilityOptions.password.label }\n\t\t\t\t\tinfo={ visibilityOptions.password.info }\n\t\t\t\t\tchecked={ hasPassword }\n\t\t\t\t\tonChange={ setPasswordProtected }\n\t\t\t\t/>\n\t\t\t\t{ hasPassword && (\n\t\t\t\t\t<div className=\"editor-post-visibility__password\">\n\t\t\t\t\t\t<VisuallyHidden\n\t\t\t\t\t\t\tas=\"label\"\n\t\t\t\t\t\t\thtmlFor={ `editor-post-visibility__password-input-${ instanceId }` }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Create password' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tclassName=\"editor-post-visibility__password-input\"\n\t\t\t\t\t\t\tid={ `editor-post-visibility__password-input-${ instanceId }` }\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tonChange={ updatePassword }\n\t\t\t\t\t\t\tvalue={ password }\n\t\t\t\t\t\t\tplaceholder={ __( 'Use a secure password' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</fieldset>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ showPrivateConfirmDialog }\n\t\t\t\tonConfirm={ confirmPrivate }\n\t\t\t\tonCancel={ handleDialogCancel }\n\t\t\t>\n\t\t\t\t{ __( 'Would you like to privately publish this post now?' ) }\n\t\t\t</ConfirmDialog>\n\t\t</div>\n\t);\n}\n\nfunction PostVisibilityChoice( { instanceId, value, label, info, ...props } ) {\n\treturn (\n\t\t<div className=\"editor-post-visibility__choice\">\n\t\t\t<input\n\t\t\t\ttype=\"radio\"\n\t\t\t\tname={ `editor-post-visibility__setting-${ instanceId }` }\n\t\t\t\tvalue={ value }\n\t\t\t\tid={ `editor-post-${ value }-${ instanceId }` }\n\t\t\t\taria-describedby={ `editor-post-${ value }-${ instanceId }-description` }\n\t\t\t\tclassName=\"editor-post-visibility__radio\"\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t\t<label\n\t\t\t\thtmlFor={ `editor-post-${ value }-${ instanceId }` }\n\t\t\t\tclassName=\"editor-post-visibility__label\"\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</label>\n\t\t\t<p\n\t\t\t\tid={ `editor-post-${ value }-${ instanceId }-description` }\n\t\t\t\tclassName=\"editor-post-visibility__info\"\n\t\t\t>\n\t\t\t\t{ info }\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { visibilityOptions } from './utils';\nimport { store as editorStore } from '../../store';\n\nexport default function PostVisibilityLabel() {\n\treturn usePostVisibilityLabel();\n}\n\nexport function usePostVisibilityLabel() {\n\tconst visibility = useSelect( ( select ) =>\n\t\tselect( editorStore ).getEditedPostVisibility()\n\t);\n\treturn visibilityOptions[ visibility ]?.label;\n}\n","/**\n * WordPress dependencies\n */\nimport { getSettings } from '@wordpress/date';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __experimentalPublishDateTimePicker as PublishDateTimePicker } from '@wordpress/block-editor';\nimport { useState, useMemo } from '@wordpress/element';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction getDayOfTheMonth( date = new Date(), firstDay = true ) {\n\tconst d = new Date( date );\n\treturn new Date(\n\t\td.getFullYear(),\n\t\td.getMonth() + ( firstDay ? 0 : 1 ),\n\t\tfirstDay ? 1 : 0\n\t).toISOString();\n}\n\nexport default function PostSchedule( { onClose } ) {\n\tconst { postDate, postType } = useSelect(\n\t\t( select ) => ( {\n\t\t\tpostDate: select( editorStore ).getEditedPostAttribute( 'date' ),\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst onUpdateDate = ( date ) => editPost( { date } );\n\n\tconst [ previewedMonth, setPreviewedMonth ] = useState(\n\t\tgetDayOfTheMonth( postDate )\n\t);\n\n\t// Pick up published and schduled site posts.\n\tconst eventsByPostType = useSelect(\n\t\t( select ) =>\n\t\t\tselect( coreStore ).getEntityRecords( 'postType', postType, {\n\t\t\t\tstatus: 'publish,future',\n\t\t\t\tafter: getDayOfTheMonth( previewedMonth ),\n\t\t\t\tbefore: getDayOfTheMonth( previewedMonth, false ),\n\t\t\t\texclude: [ select( editorStore ).getCurrentPostId() ],\n\t\t\t} ),\n\t\t[ previewedMonth, postType ]\n\t);\n\n\tconst events = useMemo(\n\t\t() =>\n\t\t\t( eventsByPostType || [] ).map(\n\t\t\t\t( { title, type, date: eventDate } ) => ( {\n\t\t\t\t\ttitle: title?.rendered,\n\t\t\t\t\ttype,\n\t\t\t\t\tdate: new Date( eventDate ),\n\t\t\t\t} )\n\t\t\t),\n\t\t[ eventsByPostType ]\n\t);\n\n\tconst settings = getSettings();\n\n\t// To know if the current timezone is a 12 hour time with look for \"a\" in the time format\n\t// We also make sure this a is not escaped by a \"/\"\n\tconst is12HourTime = /a(?!\\\\)/i.test(\n\t\tsettings.formats.time\n\t\t\t.toLowerCase() // Test only the lower case a.\n\t\t\t.replace( /\\\\\\\\/g, '' ) // Replace \"//\" with empty strings.\n\t\t\t.split( '' )\n\t\t\t.reverse()\n\t\t\t.join( '' ) // Reverse the string and test for \"a\" not followed by a slash.\n\t);\n\n\treturn (\n\t\t<PublishDateTimePicker\n\t\t\tcurrentDate={ postDate }\n\t\t\tonChange={ onUpdateDate }\n\t\t\tis12Hour={ is12HourTime }\n\t\t\tevents={ events }\n\t\t\tonMonthPreviewed={ setPreviewedMonth }\n\t\t\tonClose={ onClose }\n\t\t/>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf, isRTL } from '@wordpress/i18n';\nimport { getSettings, getDate, dateI18n } from '@wordpress/date';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostScheduleLabel( props ) {\n\treturn usePostScheduleLabel( props );\n}\n\nexport function usePostScheduleLabel( { full = false } = {} ) {\n\tconst { date, isFloating } = useSelect(\n\t\t( select ) => ( {\n\t\t\tdate: select( editorStore ).getEditedPostAttribute( 'date' ),\n\t\t\tisFloating: select( editorStore ).isEditedPostDateFloating(),\n\t\t} ),\n\t\t[]\n\t);\n\n\treturn full\n\t\t? getFullPostScheduleLabel( date )\n\t\t: getPostScheduleLabel( date, { isFloating } );\n}\n\nexport function getFullPostScheduleLabel( dateAttribute ) {\n\tconst date = getDate( dateAttribute );\n\n\tconst timezoneAbbreviation = getTimezoneAbbreviation();\n\tconst formattedDate = dateI18n(\n\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking sapce.\n\t\t_x( 'F j, Y g:i\\xa0a', 'post schedule full date format' ),\n\t\tdate\n\t);\n\treturn isRTL()\n\t\t? `${ timezoneAbbreviation } ${ formattedDate }`\n\t\t: `${ formattedDate } ${ timezoneAbbreviation }`;\n}\n\nexport function getPostScheduleLabel(\n\tdateAttribute,\n\t{ isFloating = false, now = new Date() } = {}\n) {\n\tif ( ! dateAttribute || isFloating ) {\n\t\treturn __( 'Immediately' );\n\t}\n\n\t// If the user timezone does not equal the site timezone then using words\n\t// like 'tomorrow' is confusing, so show the full date.\n\tif ( ! isTimezoneSameAsSiteTimezone( now ) ) {\n\t\treturn getFullPostScheduleLabel( dateAttribute );\n\t}\n\n\tconst date = getDate( dateAttribute );\n\n\tif ( isSameDay( date, now ) ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: Time of day the post is scheduled for.\n\t\t\t__( 'Today at %s' ),\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking sapce.\n\t\t\tdateI18n( _x( 'g:i\\xa0a', 'post schedule time format' ), date )\n\t\t);\n\t}\n\n\tconst tomorrow = new Date( now );\n\ttomorrow.setDate( tomorrow.getDate() + 1 );\n\n\tif ( isSameDay( date, tomorrow ) ) {\n\t\treturn sprintf(\n\t\t\t// translators: %s: Time of day the post is scheduled for.\n\t\t\t__( 'Tomorrow at %s' ),\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking sapce.\n\t\t\tdateI18n( _x( 'g:i\\xa0a', 'post schedule time format' ), date )\n\t\t);\n\t}\n\n\tif ( date.getFullYear() === now.getFullYear() ) {\n\t\treturn dateI18n(\n\t\t\t// translators: If using a space between 'g:i' and 'a', use a non-breaking sapce.\n\t\t\t_x( 'F j g:i\\xa0a', 'post schedule date format without year' ),\n\t\t\tdate\n\t\t);\n\t}\n\n\treturn dateI18n(\n\t\t// translators: Use a non-breaking space between 'g:i' and 'a' if appropriate.\n\t\t_x( 'F j, Y g:i\\xa0a', 'post schedule full date format' ),\n\t\tdate\n\t);\n}\n\nfunction getTimezoneAbbreviation() {\n\tconst { timezone } = getSettings();\n\n\tif ( timezone.abbr && isNaN( Number( timezone.abbr ) ) ) {\n\t\treturn timezone.abbr;\n\t}\n\n\tconst symbol = timezone.offset < 0 ? '' : '+';\n\treturn `UTC${ symbol }${ timezone.offset }`;\n}\n\nfunction isTimezoneSameAsSiteTimezone( date ) {\n\tconst { timezone } = getSettings();\n\n\tconst siteOffset = Number( timezone.offset );\n\tconst dateOffset = -1 * ( date.getTimezoneOffset() / 60 );\n\treturn siteOffset === dateOffset;\n}\n\nfunction isSameDay( left, right ) {\n\treturn (\n\t\tleft.getDate() === right.getDate() &&\n\t\tleft.getMonth() === right.getMonth() &&\n\t\tleft.getFullYear() === right.getFullYear()\n\t);\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"a11y\"];","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { 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( ( select ) => {\n\t\tconst mostUsedTerms = select( coreStore ).getEntityRecords(\n\t\t\t'taxonomy',\n\t\t\ttaxonomy.slug,\n\t\t\tDEFAULT_QUERY\n\t\t);\n\t\treturn {\n\t\t\t_terms: mostUsedTerms,\n\t\t\tshowTerms: mostUsedTerms?.length >= MIN_MOST_USED_TERMS,\n\t\t};\n\t}, [] );\n\n\tif ( ! showTerms ) {\n\t\treturn null;\n\t}\n\n\tconst terms = unescapeTerms( _terms );\n\tconst label = get( taxonomy, [ 'labels', 'most_used' ] );\n\n\treturn (\n\t\t<div className=\"editor-post-taxonomies__flat-term-most-used\">\n\t\t\t<h3 className=\"editor-post-taxonomies__flat-term-most-used-label\">\n\t\t\t\t{ label }\n\t\t\t</h3>\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\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","/**\n * External dependencies\n */\nimport { escape as escapeString, find, get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { FormTokenField, withFilters } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useDebounce } from '@wordpress/compose';\nimport apiFetch from '@wordpress/api-fetch';\nimport { speak } from '@wordpress/a11y';\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 * Module constants\n */\nconst MAX_TERMS_SUGGESTIONS = 20;\nconst DEFAULT_QUERY = {\n\tper_page: MAX_TERMS_SUGGESTIONS,\n\torderby: 'count',\n\torder: 'desc',\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.map(\n\t\t( termName ) =>\n\t\t\tfind( terms, ( term ) => isSameTermName( term.name, termName ) ).id\n\t);\n};\n\n// Tries to create a term or fetch it if it already exists.\nfunction findOrCreateTerm( termName, restBase, namespace ) {\n\tconst escapedTermName = escapeString( termName );\n\n\treturn apiFetch( {\n\t\tpath: `/${ namespace }/${ restBase }`,\n\t\tmethod: 'POST',\n\t\tdata: { name: escapedTermName },\n\t} )\n\t\t.catch( ( error ) => {\n\t\t\tif ( error.code !== 'term_exists' ) {\n\t\t\t\treturn Promise.reject( error );\n\t\t\t}\n\n\t\t\treturn Promise.resolve( {\n\t\t\t\tid: error.data.term_id,\n\t\t\t\tname: termName,\n\t\t\t} );\n\t\t} )\n\t\t.then( unescapeTerm );\n}\n\nexport function FlatTermSelector( { slug } ) {\n\tconst [ values, setValues ] = useState( [] );\n\tconst [ search, setSearch ] = useState( '' );\n\tconst debouncedSearch = useDebounce( setSearch, 500 );\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? get(\n\t\t\t\t\t\t\tpost,\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'_links',\n\t\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t  )\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? get(\n\t\t\t\t\t\t\tpost,\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'_links',\n\t\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t  )\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 ]\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\n\tif ( ! hasAssignAction ) {\n\t\treturn null;\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! find( availableTerms, ( 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\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, availableTerms )\n\t\t\t);\n\t\t}\n\n\t\tif ( ! hasCreateAction ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst namespace = taxonomy?.rest_namespace ?? 'wp/v2';\n\t\tPromise.all(\n\t\t\tnewTermNames.map( ( termName ) =>\n\t\t\t\tfindOrCreateTerm( termName, taxonomy.rest_base, namespace )\n\t\t\t)\n\t\t).then( ( newTerms ) => {\n\t\t\tconst newAvailableTerms = availableTerms.concat( newTerms );\n\t\t\treturn onUpdateTerms(\n\t\t\t\ttermNamesToIds( uniqueTerms, newAvailableTerms )\n\t\t\t);\n\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 termAddedMessage = sprintf(\n\t\t\t/* translators: %s: term name. */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\tget(\n\t\t\t\ttaxonomy,\n\t\t\t\t[ 'labels', 'singular_name' ],\n\t\t\t\tslug === 'post_tag' ? __( 'Tag' ) : __( 'Term' )\n\t\t\t)\n\t\t);\n\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tonUpdateTerms( newTermIds );\n\t}\n\n\tconst newTermLabel = get(\n\t\ttaxonomy,\n\t\t[ 'labels', 'add_new_item' ],\n\t\tslug === 'post_tag' ? __( 'Add new tag' ) : __( 'Add new Term' )\n\t);\n\tconst singularName = get(\n\t\ttaxonomy,\n\t\t[ 'labels', 'singular_name' ],\n\t\tslug === 'post_tag' ? __( 'Tag' ) : __( 'Term' )\n\t);\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<>\n\t\t\t<FormTokenField\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/>\n\t\t\t<MostUsedTerms taxonomy={ taxonomy } onSelect={ appendTerm } />\n\t\t</>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )( FlatTermSelector );\n","/**\n * External dependencies\n */\nimport { some } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { PanelBody } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport FlatTermSelector from '../post-taxonomies/flat-term-selector';\nimport { store as editorStore } from '../../store';\n\nconst TagsPanel = () => {\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'Add tags' ) }\n\t\t</span>,\n\t];\n\n\treturn (\n\t\t<PanelBody initialOpen={ false } title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Tags help users and search engines navigate your site and find your content. Add a few keywords to describe your post.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<FlatTermSelector slug={ 'post_tag' } />\n\t\t</PanelBody>\n\t);\n};\n\nclass MaybeTagsPanel extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.state = {\n\t\t\thadTagsWhenOpeningThePanel: props.hasTags,\n\t\t};\n\t}\n\n\t/*\n\t * We only want to show the tag panel if the post didn't have\n\t * any tags when the user hit the Publish button.\n\t *\n\t * We can't use the prop.hasTags because it'll change to true\n\t * if the user adds a new tag within the pre-publish panel.\n\t * This would force a re-render and a new prop.hasTags check,\n\t * hiding this panel and keeping the user from adding\n\t * more than one tag.\n\t */\n\trender() {\n\t\tif ( ! this.state.hadTagsWhenOpeningThePanel ) {\n\t\t\treturn <TagsPanel />;\n\t\t}\n\n\t\treturn null;\n\t}\n}\n\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst postType = select( editorStore ).getCurrentPostType();\n\t\tconst tagsTaxonomy = select( coreStore ).getTaxonomy( 'post_tag' );\n\t\tconst tags =\n\t\t\ttagsTaxonomy &&\n\t\t\tselect( editorStore ).getEditedPostAttribute(\n\t\t\t\ttagsTaxonomy.rest_base\n\t\t\t);\n\t\treturn {\n\t\t\tareTagsFetched: tagsTaxonomy !== undefined,\n\t\t\tisPostTypeSupported:\n\t\t\t\ttagsTaxonomy &&\n\t\t\t\tsome( tagsTaxonomy.types, ( type ) => type === postType ),\n\t\t\thasTags: tags && tags.length,\n\t\t};\n\t} ),\n\tifCondition(\n\t\t( { areTagsFetched, isPostTypeSupported } ) =>\n\t\t\tisPostTypeSupported && areTagsFetched\n\t)\n)( MaybeTagsPanel );\n","/**\n * External dependencies\n */\nimport { find, get, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Button, PanelBody } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { POST_FORMATS } from '../post-format';\nimport { store as editorStore } from '../../store';\n\nconst getSuggestion = ( supportedFormats, suggestedPostFormat ) => {\n\tconst formats = POST_FORMATS.filter( ( format ) =>\n\t\tincludes( supportedFormats, format.id )\n\t);\n\treturn find( formats, ( format ) => format.id === suggestedPostFormat );\n};\n\nconst PostFormatSuggestion = ( {\n\tsuggestedPostFormat,\n\tsuggestionText,\n\tonUpdatePostFormat,\n} ) => (\n\t<Button\n\t\tvariant=\"link\"\n\t\tonClick={ () => onUpdatePostFormat( suggestedPostFormat ) }\n\t>\n\t\t{ suggestionText }\n\t</Button>\n);\n\nexport default function PostFormatPanel() {\n\tconst { currentPostFormat, suggestion } = useSelect( ( select ) => {\n\t\tconst { getEditedPostAttribute, getSuggestedPostFormat } =\n\t\t\tselect( editorStore );\n\t\tconst supportedFormats = get(\n\t\t\tselect( coreStore ).getThemeSupports(),\n\t\t\t[ 'formats' ],\n\t\t\t[]\n\t\t);\n\t\treturn {\n\t\t\tcurrentPostFormat: getEditedPostAttribute( 'format' ),\n\t\t\tsuggestion: getSuggestion(\n\t\t\t\tsupportedFormats,\n\t\t\t\tgetSuggestedPostFormat()\n\t\t\t),\n\t\t};\n\t}, [] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst onUpdatePostFormat = ( format ) => editPost( { format } );\n\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'Use a post format' ) }\n\t\t</span>,\n\t];\n\n\tif ( ! suggestion || suggestion.id === currentPostFormat ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody initialOpen={ false } title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Your theme uses post formats to highlight different kinds of content, like images or videos. Apply a post format to see this special styling.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<p>\n\t\t\t\t<PostFormatSuggestion\n\t\t\t\t\tonUpdatePostFormat={ onUpdatePostFormat }\n\t\t\t\t\tsuggestedPostFormat={ suggestion.id }\n\t\t\t\t\tsuggestionText={ sprintf(\n\t\t\t\t\t\t/* translators: %s: post format */\n\t\t\t\t\t\t__( 'Apply the \"%1$s\" format.' ),\n\t\t\t\t\t\tsuggestion.caption\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</p>\n\t\t</PanelBody>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { find, get, some, unescape as unescapeString, without } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _n, _x, sprintf } from '@wordpress/i18n';\nimport { useMemo, useState } from '@wordpress/element';\nimport {\n\tButton,\n\tCheckboxControl,\n\tTextControl,\n\tTreeSelect,\n\twithFilters,\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';\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 find( terms, ( 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 {WPElement}        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\n\t\t\treturn {\n\t\t\t\thasCreateAction: _taxonomy\n\t\t\t\t\t? get(\n\t\t\t\t\t\t\tgetCurrentPost(),\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'_links',\n\t\t\t\t\t\t\t\t'wp:action-create-' + _taxonomy.rest_base,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t  )\n\t\t\t\t\t: false,\n\t\t\t\thasAssignAction: _taxonomy\n\t\t\t\t\t? get(\n\t\t\t\t\t\t\tgetCurrentPost(),\n\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t'_links',\n\t\t\t\t\t\t\t\t'wp:action-assign-' + _taxonomy.rest_base,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t  )\n\t\t\t\t\t: false,\n\t\t\t\tterms: _taxonomy\n\t\t\t\t\t? getEditedPostAttribute( _taxonomy.rest_base )\n\t\t\t\t\t: EMPTY_ARRAY,\n\t\t\t\tloading: isResolving( 'getEntityRecords', [\n\t\t\t\t\t'taxonomy',\n\t\t\t\t\tslug,\n\t\t\t\t\tDEFAULT_QUERY,\n\t\t\t\t] ),\n\t\t\t\tavailableTerms:\n\t\t\t\t\tgetEntityRecords( 'taxonomy', slug, DEFAULT_QUERY ) ||\n\t\t\t\t\tEMPTY_ARRAY,\n\t\t\t\ttaxonomy: _taxonomy,\n\t\t\t};\n\t\t},\n\t\t[ slug ]\n\t);\n\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\tconst availableTermsTree = useMemo(\n\t\t() => sortBySelected( buildTermsTree( availableTerms ), terms ),\n\t\t// Remove `terms` from the dependency list to avoid reordering every time\n\t\t// checking or unchecking a term.\n\t\t[ availableTerms ]\n\t);\n\n\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};\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? without( terms, 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 ( ! some( terms, ( 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\n\t\tconst newTerm = await addTerm( {\n\t\t\tname: formName,\n\t\t\tparent: formParent ? formParent : undefined,\n\t\t} );\n\n\t\tconst termAddedMessage = sprintf(\n\t\t\t/* translators: %s: taxonomy name */\n\t\t\t_x( '%s added', 'term' ),\n\t\t\tget(\n\t\t\t\ttaxonomy,\n\t\t\t\t[ 'labels', 'singular_name' ],\n\t\t\t\tslug === 'category' ? __( 'Category' ) : __( 'Term' )\n\t\t\t)\n\t\t);\n\t\tspeak( termAddedMessage, 'assertive' );\n\t\tsetAdding( false );\n\t\tsetFormName( '' );\n\t\tsetFormParent( '' );\n\t\tonUpdateTerms( [ ...terms, newTerm.id ] );\n\t};\n\n\tconst setFilter = ( value ) => {\n\t\tconst newFilteredTermsTree = availableTermsTree\n\t\t\t.map( getFilterMatcher( value ) )\n\t\t\t.filter( ( term ) => term );\n\t\tconst getResultCount = ( termsTree ) => {\n\t\t\tlet count = 0;\n\t\t\tfor ( let i = 0; i < termsTree.length; i++ ) {\n\t\t\t\tcount++;\n\t\t\t\tif ( undefined !== termsTree[ i ].children ) {\n\t\t\t\t\tcount += getResultCount( termsTree[ i ].children );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t};\n\n\t\tsetFilterValue( value );\n\t\tsetFilteredTermsTree( newFilteredTermsTree );\n\n\t\tconst resultCount = getResultCount( newFilteredTermsTree );\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results */\n\t\t\t_n( '%d result found.', '%d results found.', resultCount ),\n\t\t\tresultCount\n\t\t);\n\n\t\tdebouncedSpeak( resultsFoundMessage, 'assertive' );\n\t};\n\n\tconst renderTerms = ( renderedTerms ) => {\n\t\treturn renderedTerms.map( ( term ) => {\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tkey={ term.id }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-choice\"\n\t\t\t\t>\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tchecked={ terms.indexOf( term.id ) !== -1 }\n\t\t\t\t\t\tonChange={ () => {\n\t\t\t\t\t\t\tconst termId = parseInt( term.id, 10 );\n\t\t\t\t\t\t\tonChange( termId );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tlabel={ unescapeString( 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\tget(\n\t\t\ttaxonomy,\n\t\t\t[ 'labels', labelProperty ],\n\t\t\tslug === 'category' ? fallbackIsCategory : fallbackIsNotCategory\n\t\t);\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 = get(\n\t\ttaxonomy,\n\t\t[ 'labels', 'search_items' ],\n\t\t__( 'Search Terms' )\n\t);\n\tconst groupLabel = get( taxonomy, [ 'name' ], __( 'Terms' ) );\n\tconst showFilter = availableTerms.length >= MIN_TERMS_COUNT_FOR_FILTER;\n\n\treturn (\n\t\t<>\n\t\t\t{ showFilter && (\n\t\t\t\t<TextControl\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-filter\"\n\t\t\t\t\tlabel={ 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<Button\n\t\t\t\t\tonClick={ onToggleForm }\n\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-add\"\n\t\t\t\t\taria-expanded={ showForm }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t>\n\t\t\t\t\t{ newTermButtonLabel }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t\t{ showForm && (\n\t\t\t\t<form onSubmit={ onAddTerm }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-input\"\n\t\t\t\t\t\tlabel={ newTermLabel }\n\t\t\t\t\t\tvalue={ formName }\n\t\t\t\t\t\tonChange={ onChangeFormName }\n\t\t\t\t\t\trequired\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! availableTerms.length && (\n\t\t\t\t\t\t<TreeSelect\n\t\t\t\t\t\t\tlabel={ parentSelectLabel }\n\t\t\t\t\t\t\tnoOptionLabel={ noParentOption }\n\t\t\t\t\t\t\tonChange={ onChangeFormParent }\n\t\t\t\t\t\t\tselectedId={ formParent }\n\t\t\t\t\t\t\ttree={ availableTermsTree }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<Button\n\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\tclassName=\"editor-post-taxonomies__hierarchical-terms-submit\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ newTermSubmitLabel }\n\t\t\t\t\t</Button>\n\t\t\t\t</form>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default withFilters( 'editor.PostTaxonomyType' )(\n\tHierarchicalTermSelector\n);\n","/**\n * External dependencies\n */\nimport { some } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { PanelBody } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport HierarchicalTermSelector from '../post-taxonomies/hierarchical-term-selector';\nimport { store as editorStore } from '../../store';\n\nfunction MaybeCategoryPanel() {\n\tconst hasNoCategory = useSelect( ( select ) => {\n\t\tconst postType = select( editorStore ).getCurrentPostType();\n\t\tconst categoriesTaxonomy =\n\t\t\tselect( coreStore ).getTaxonomy( 'category' );\n\t\tconst defaultCategoryId = select( coreStore ).getEntityRecord(\n\t\t\t'root',\n\t\t\t'site'\n\t\t)?.default_category;\n\t\tconst defaultCategory = select( coreStore ).getEntityRecord(\n\t\t\t'taxonomy',\n\t\t\t'category',\n\t\t\tdefaultCategoryId\n\t\t);\n\t\tconst postTypeSupportsCategories =\n\t\t\tcategoriesTaxonomy &&\n\t\t\tsome( categoriesTaxonomy.types, ( type ) => type === postType );\n\t\tconst categories =\n\t\t\tcategoriesTaxonomy &&\n\t\t\tselect( editorStore ).getEditedPostAttribute(\n\t\t\t\tcategoriesTaxonomy.rest_base\n\t\t\t);\n\n\t\t// This boolean should return true if everything is loaded\n\t\t// ( categoriesTaxonomy, defaultCategory )\n\t\t// and the post has not been assigned a category different than \"uncategorized\".\n\t\treturn (\n\t\t\t!! categoriesTaxonomy &&\n\t\t\t!! defaultCategory &&\n\t\t\tpostTypeSupportsCategories &&\n\t\t\t( categories?.length === 0 ||\n\t\t\t\t( categories?.length === 1 &&\n\t\t\t\t\tdefaultCategory.id === categories[ 0 ] ) )\n\t\t);\n\t}, [] );\n\tconst [ shouldShowPanel, setShouldShowPanel ] = useState( false );\n\tuseEffect( () => {\n\t\t// We use state to avoid hiding the panel if the user edits the categories\n\t\t// and adds one within the panel itself (while visible).\n\t\tif ( hasNoCategory ) {\n\t\t\tsetShouldShowPanel( true );\n\t\t}\n\t}, [ hasNoCategory ] );\n\n\tif ( ! shouldShowPanel ) {\n\t\treturn null;\n\t}\n\n\tconst panelBodyTitle = [\n\t\t__( 'Suggestion:' ),\n\t\t<span className=\"editor-post-publish-panel__link\" key=\"label\">\n\t\t\t{ __( 'Assign a category' ) }\n\t\t</span>,\n\t];\n\n\treturn (\n\t\t<PanelBody initialOpen={ false } title={ panelBodyTitle }>\n\t\t\t<p>\n\t\t\t\t{ __(\n\t\t\t\t\t'Categories provide a helpful way to group related posts together and to quickly tell readers what a post is about.'\n\t\t\t\t) }\n\t\t\t</p>\n\t\t\t<HierarchicalTermSelector slug=\"category\" />\n\t\t</PanelBody>\n\t);\n}\n\nexport default MaybeCategoryPanel;\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Icon, PanelBody } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { wordpress } from '@wordpress/icons';\nimport { filterURLForDisplay } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\nimport { decodeEntities } from '@wordpress/html-entities';\n\n/**\n * Internal dependencies\n */\nimport PostVisibility from '../post-visibility';\nimport PostVisibilityLabel from '../post-visibility/label';\nimport PostSchedule from '../post-schedule';\nimport PostScheduleLabel from '../post-schedule/label';\nimport MaybeTagsPanel from './maybe-tags-panel';\nimport MaybePostFormatPanel from './maybe-post-format-panel';\nimport { store as editorStore } from '../../store';\nimport MaybeCategoryPanel from './maybe-category-panel';\n\nfunction PostPublishPanelPrepublish( { children } ) {\n\tconst {\n\t\tisBeingScheduled,\n\t\tisRequestingSiteIcon,\n\t\thasPublishAction,\n\t\tsiteIconUrl,\n\t\tsiteTitle,\n\t\tsiteHome,\n\t} = useSelect( ( select ) => {\n\t\tconst { getCurrentPost, isEditedPostBeingScheduled } =\n\t\t\tselect( editorStore );\n\t\tconst { getEntityRecord, isResolving } = select( coreStore );\n\t\tconst siteData =\n\t\t\tgetEntityRecord( 'root', '__unstableBase', undefined ) || {};\n\n\t\treturn {\n\t\t\thasPublishAction: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisRequestingSiteIcon: isResolving( 'getEntityRecord', [\n\t\t\t\t'root',\n\t\t\t\t'__unstableBase',\n\t\t\t\tundefined,\n\t\t\t] ),\n\t\t\tsiteIconUrl: siteData.site_icon_url,\n\t\t\tsiteTitle: siteData.name,\n\t\t\tsiteHome: siteData.home && filterURLForDisplay( siteData.home ),\n\t\t};\n\t}, [] );\n\n\tlet siteIcon = (\n\t\t<Icon className=\"components-site-icon\" size=\"36px\" icon={ wordpress } />\n\t);\n\n\tif ( siteIconUrl ) {\n\t\tsiteIcon = (\n\t\t\t<img\n\t\t\t\talt={ __( 'Site Icon' ) }\n\t\t\t\tclassName=\"components-site-icon\"\n\t\t\t\tsrc={ siteIconUrl }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( isRequestingSiteIcon ) {\n\t\tsiteIcon = null;\n\t}\n\n\tlet prePublishTitle, prePublishBodyText;\n\n\tif ( ! hasPublishAction ) {\n\t\tprePublishTitle = __( 'Are you ready to submit for review?' );\n\t\tprePublishBodyText = __(\n\t\t\t'When you’re ready, submit your work for review, and an Editor will be able to approve it for you.'\n\t\t);\n\t} else if ( isBeingScheduled ) {\n\t\tprePublishTitle = __( 'Are you ready to schedule?' );\n\t\tprePublishBodyText = __(\n\t\t\t'Your work will be published at the specified date and time.'\n\t\t);\n\t} else {\n\t\tprePublishTitle = __( 'Are you ready to publish?' );\n\t\tprePublishBodyText = __(\n\t\t\t'Double-check your settings before publishing.'\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"editor-post-publish-panel__prepublish\">\n\t\t\t<div>\n\t\t\t\t<strong>{ prePublishTitle }</strong>\n\t\t\t</div>\n\t\t\t<p>{ prePublishBodyText }</p>\n\t\t\t<div className=\"components-site-card\">\n\t\t\t\t{ siteIcon }\n\t\t\t\t<div className=\"components-site-info\">\n\t\t\t\t\t<span className=\"components-site-name\">\n\t\t\t\t\t\t{ decodeEntities( siteTitle ) || __( '(Untitled)' ) }\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"components-site-home\">{ siteHome }</span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{ hasPublishAction && (\n\t\t\t\t<>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\ttitle={ [\n\t\t\t\t\t\t\t__( 'Visibility:' ),\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"editor-post-publish-panel__link\"\n\t\t\t\t\t\t\t\tkey=\"label\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PostVisibilityLabel />\n\t\t\t\t\t\t\t</span>,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PostVisibility />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t\t<PanelBody\n\t\t\t\t\t\tinitialOpen={ false }\n\t\t\t\t\t\ttitle={ [\n\t\t\t\t\t\t\t__( 'Publish:' ),\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"editor-post-publish-panel__link\"\n\t\t\t\t\t\t\t\tkey=\"label\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<PostScheduleLabel />\n\t\t\t\t\t\t\t</span>,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t<PostSchedule />\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<MaybePostFormatPanel />\n\t\t\t<MaybeTagsPanel />\n\t\t\t<MaybeCategoryPanel />\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nexport default PostPublishPanelPrepublish;\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { PanelBody, Button, TextControl } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Component, createRef } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { addQueryArgs, safeDecodeURIComponent } from '@wordpress/url';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useCopyToClipboard } from '@wordpress/compose';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostScheduleLabel from '../post-schedule/label';\nimport { store as editorStore } from '../../store';\n\nconst POSTNAME = '%postname%';\n\n/**\n * Returns URL for a future post.\n *\n * @param {Object} post Post object.\n *\n * @return {string} PostPublish URL.\n */\n\nconst getFuturePostUrl = ( post ) => {\n\tconst { slug } = post;\n\n\tif ( post.permalink_template.includes( POSTNAME ) ) {\n\t\treturn post.permalink_template.replace( POSTNAME, slug );\n\t}\n\n\treturn post.permalink_template;\n};\n\nfunction CopyButton( { text, onCopy, children } ) {\n\tconst ref = useCopyToClipboard( text, onCopy );\n\treturn (\n\t\t<Button variant=\"secondary\" ref={ ref }>\n\t\t\t{ children }\n\t\t</Button>\n\t);\n}\n\nclass PostPublishPanelPostpublish extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\tshowCopyConfirmation: false,\n\t\t};\n\t\tthis.onCopy = this.onCopy.bind( this );\n\t\tthis.onSelectInput = this.onSelectInput.bind( this );\n\t\tthis.postLink = createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( this.props.focusOnMount ) {\n\t\t\tthis.postLink.current.focus();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.dismissCopyConfirmation );\n\t}\n\n\tonCopy() {\n\t\tthis.setState( {\n\t\t\tshowCopyConfirmation: true,\n\t\t} );\n\n\t\tclearTimeout( this.dismissCopyConfirmation );\n\t\tthis.dismissCopyConfirmation = setTimeout( () => {\n\t\t\tthis.setState( {\n\t\t\t\tshowCopyConfirmation: false,\n\t\t\t} );\n\t\t}, 4000 );\n\t}\n\n\tonSelectInput( event ) {\n\t\tevent.target.select();\n\t}\n\n\trender() {\n\t\tconst { children, isScheduled, post, postType } = this.props;\n\t\tconst postLabel = get( postType, [ 'labels', 'singular_name' ] );\n\t\tconst viewPostLabel = get( postType, [ 'labels', 'view_item' ] );\n\t\tconst addNewPostLabel = get( postType, [ 'labels', 'add_new_item' ] );\n\t\tconst link =\n\t\t\tpost.status === 'future' ? getFuturePostUrl( post ) : post.link;\n\t\tconst addLink = addQueryArgs( 'post-new.php', {\n\t\t\tpost_type: post.type,\n\t\t} );\n\n\t\tconst postPublishNonLinkHeader = isScheduled ? (\n\t\t\t<>\n\t\t\t\t{ __( 'is now scheduled. It will go live on' ) }{ ' ' }\n\t\t\t\t<PostScheduleLabel />.\n\t\t\t</>\n\t\t) : (\n\t\t\t__( 'is now live.' )\n\t\t);\n\n\t\treturn (\n\t\t\t<div className=\"post-publish-panel__postpublish\">\n\t\t\t\t<PanelBody className=\"post-publish-panel__postpublish-header\">\n\t\t\t\t\t<a ref={ this.postLink } href={ link }>\n\t\t\t\t\t\t{ decodeEntities( post.title ) || __( '(no title)' ) }\n\t\t\t\t\t</a>{ ' ' }\n\t\t\t\t\t{ postPublishNonLinkHeader }\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<p className=\"post-publish-panel__postpublish-subheader\">\n\t\t\t\t\t\t<strong>{ __( 'What’s next?' ) }</strong>\n\t\t\t\t\t</p>\n\t\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address-container\">\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tclassName=\"post-publish-panel__postpublish-post-address\"\n\t\t\t\t\t\t\treadOnly\n\t\t\t\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t\t\t\t/* translators: %s: post type singular name */\n\t\t\t\t\t\t\t\t__( '%s address' ),\n\t\t\t\t\t\t\t\tpostLabel\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ safeDecodeURIComponent( link ) }\n\t\t\t\t\t\t\tonFocus={ this.onSelectInput }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<div className=\"post-publish-panel__postpublish-post-address__copy-button-wrap\">\n\t\t\t\t\t\t\t<CopyButton text={ link } onCopy={ this.onCopy }>\n\t\t\t\t\t\t\t\t{ this.state.showCopyConfirmation\n\t\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t\t: __( 'Copy' ) }\n\t\t\t\t\t\t\t</CopyButton>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"post-publish-panel__postpublish-buttons\">\n\t\t\t\t\t\t{ ! isScheduled && (\n\t\t\t\t\t\t\t<Button variant=\"primary\" href={ link }>\n\t\t\t\t\t\t\t\t{ viewPostLabel }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant={ isScheduled ? 'primary' : 'secondary' }\n\t\t\t\t\t\t\thref={ addLink }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ addNewPostLabel }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t</PanelBody>\n\t\t\t\t{ children }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getEditedPostAttribute, getCurrentPost, isCurrentPostScheduled } =\n\t\tselect( editorStore );\n\tconst { getPostType } = select( coreStore );\n\n\treturn {\n\t\tpost: getCurrentPost(),\n\t\tpostType: getPostType( getEditedPostAttribute( 'type' ) ),\n\t\tisScheduled: isCurrentPostScheduled(),\n\t};\n} )( PostPublishPanelPostpublish );\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport {\n\tButton,\n\tSpinner,\n\tCheckboxControl,\n\twithFocusReturn,\n\twithConstrainedTabbing,\n} from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { closeSmall } from '@wordpress/icons';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport PostPublishButton from '../post-publish-button';\nimport PostPublishPanelPrepublish from './prepublish';\nimport PostPublishPanelPostpublish from './postpublish';\nimport { store as editorStore } from '../../store';\n\nexport class PostPublishPanel extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.onSubmit = this.onSubmit.bind( this );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Automatically collapse the publish sidebar when a post\n\t\t// is published and the user makes an edit.\n\t\tif (\n\t\t\tprevProps.isPublished &&\n\t\t\t! this.props.isSaving &&\n\t\t\tthis.props.isDirty\n\t\t) {\n\t\t\tthis.props.onClose();\n\t\t}\n\t}\n\n\tonSubmit() {\n\t\tconst { onClose, hasPublishAction, isPostTypeViewable } = this.props;\n\t\tif ( ! hasPublishAction || ! isPostTypeViewable ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tforceIsDirty,\n\t\t\tforceIsSaving,\n\t\t\tisBeingScheduled,\n\t\t\tisPublished,\n\t\t\tisPublishSidebarEnabled,\n\t\t\tisScheduled,\n\t\t\tisSaving,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t\tonClose,\n\t\t\tonTogglePublishSidebar,\n\t\t\tPostPublishExtension,\n\t\t\tPrePublishExtension,\n\t\t\t...additionalProps\n\t\t} = this.props;\n\t\tconst {\n\t\t\thasPublishAction,\n\t\t\tisDirty,\n\t\t\tisPostTypeViewable,\n\t\t\t...propsForPanel\n\t\t} = additionalProps;\n\t\tconst isPublishedOrScheduled =\n\t\t\tisPublished || ( isScheduled && isBeingScheduled );\n\t\tconst isPrePublish = ! isPublishedOrScheduled && ! isSaving;\n\t\tconst isPostPublish = isPublishedOrScheduled && ! isSaving;\n\t\treturn (\n\t\t\t<div className=\"editor-post-publish-panel\" { ...propsForPanel }>\n\t\t\t\t<div className=\"editor-post-publish-panel__header\">\n\t\t\t\t\t{ isPostPublish ? (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\tlabel={ __( 'Close panel' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<div className=\"editor-post-publish-panel__header-publish-button\">\n\t\t\t\t\t\t\t\t<PostPublishButton\n\t\t\t\t\t\t\t\t\tfocusOnMount={ true }\n\t\t\t\t\t\t\t\t\tonSubmit={ this.onSubmit }\n\t\t\t\t\t\t\t\t\tforceIsDirty={ forceIsDirty }\n\t\t\t\t\t\t\t\t\tforceIsSaving={ forceIsSaving }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"editor-post-publish-panel__header-cancel-button\">\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tdisabled={ isSavingNonPostEntityChanges }\n\t\t\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"editor-post-publish-panel__content\">\n\t\t\t\t\t{ isPrePublish && (\n\t\t\t\t\t\t<PostPublishPanelPrepublish>\n\t\t\t\t\t\t\t{ PrePublishExtension && <PrePublishExtension /> }\n\t\t\t\t\t\t</PostPublishPanelPrepublish>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isPostPublish && (\n\t\t\t\t\t\t<PostPublishPanelPostpublish focusOnMount={ true }>\n\t\t\t\t\t\t\t{ PostPublishExtension && <PostPublishExtension /> }\n\t\t\t\t\t\t</PostPublishPanelPostpublish>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isSaving && <Spinner /> }\n\t\t\t\t</div>\n\t\t\t\t<div className=\"editor-post-publish-panel__footer\">\n\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\tlabel={ __( 'Always show pre-publish checks.' ) }\n\t\t\t\t\t\tchecked={ isPublishSidebarEnabled }\n\t\t\t\t\t\tonChange={ onTogglePublishSidebar }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { getPostType } = select( coreStore );\n\t\tconst {\n\t\t\tgetCurrentPost,\n\t\t\tgetEditedPostAttribute,\n\t\t\tisCurrentPostPublished,\n\t\t\tisCurrentPostScheduled,\n\t\t\tisEditedPostBeingScheduled,\n\t\t\tisEditedPostDirty,\n\t\t\tisSavingPost,\n\t\t\tisSavingNonPostEntityChanges,\n\t\t} = select( editorStore );\n\t\tconst { isPublishSidebarEnabled } = select( editorStore );\n\t\tconst postType = getPostType( getEditedPostAttribute( 'type' ) );\n\n\t\treturn {\n\t\t\thasPublishAction: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tisPostTypeViewable: get( postType, [ 'viewable' ], false ),\n\t\t\tisBeingScheduled: isEditedPostBeingScheduled(),\n\t\t\tisDirty: isEditedPostDirty(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisPublishSidebarEnabled: isPublishSidebarEnabled(),\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisSavingNonPostEntityChanges: isSavingNonPostEntityChanges(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { isPublishSidebarEnabled } ) => {\n\t\tconst { disablePublishSidebar, enablePublishSidebar } =\n\t\t\tdispatch( editorStore );\n\t\treturn {\n\t\t\tonTogglePublishSidebar: () => {\n\t\t\t\tif ( isPublishSidebarEnabled ) {\n\t\t\t\t\tdisablePublishSidebar();\n\t\t\t\t} else {\n\t\t\t\t\tenablePublishSidebar();\n\t\t\t\t}\n\t\t\t},\n\t\t};\n\t} ),\n\twithFocusReturn,\n\twithConstrainedTabbing,\n] )( PostPublishPanel );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst cloudUpload = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M17.3 10.1c0-2.5-2.1-4.4-4.8-4.4-2.2 0-4.1 1.4-4.6 3.3h-.2C5.7 9 4 10.7 4 12.8c0 2.1 1.7 3.8 3.7 3.8h9c1.8 0 3.2-1.5 3.2-3.3.1-1.6-1.1-2.9-2.6-3.2zm-.5 5.1h-4v-2.4L14 14l1-1-3-3-3 3 1 1 1.2-1.2v2.4H7.7c-1.2 0-2.2-1.1-2.2-2.3s1-2.4 2.2-2.4H9l.3-1.1c.4-1.3 1.7-2.2 3.2-2.2 1.8 0 3.3 1.3 3.3 2.9v1.3l1.3.2c.8.1 1.4.9 1.4 1.8 0 1-.8 1.8-1.7 1.8z\" />\n\t</SVG>\n);\n\nexport default cloudUpload;\n","/**\n * WordPress dependencies\n */\nimport { cloneElement } from '@wordpress/element';\n\n/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */\n\n/**\n * Return an SVG icon.\n *\n * @param {IconProps} props icon is the SVG component to render\n *                          size is a number specifiying the icon size in pixels\n *                          Other props will be passed to wrapped SVG component\n *\n * @return {JSX.Element}  Icon component\n */\nfunction Icon( { icon, size = 24, ...props } ) {\n\treturn cloneElement( icon, {\n\t\twidth: size,\n\t\theight: size,\n\t\t...props,\n\t} );\n}\n\nexport default Icon;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst check = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z\" />\n\t</SVG>\n);\n\nexport default check;\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst cloud = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M17.3 10.1c0-2.5-2.1-4.4-4.8-4.4-2.2 0-4.1 1.4-4.6 3.3h-.2C5.7 9 4 10.7 4 12.8c0 2.1 1.7 3.8 3.7 3.8h9c1.8 0 3.2-1.5 3.2-3.3.1-1.6-1.1-2.9-2.6-3.2zm-.5 5.1h-9c-1.2 0-2.2-1.1-2.2-2.3s1-2.4 2.2-2.4h1.3l.3-1.1c.4-1.3 1.7-2.2 3.2-2.2 1.8 0 3.3 1.3 3.3 2.9v1.3l1.3.2c.8.1 1.4.9 1.4 1.8-.1 1-.9 1.8-1.8 1.8z\" />\n\t</SVG>\n);\n\nexport default cloud;\n","/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\t__experimentalConfirmDialog as ConfirmDialog,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose, useViewportMatch } from '@wordpress/compose';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction PostSwitchToDraftButton( {\n\tisSaving,\n\tisPublished,\n\tisScheduled,\n\tonClick,\n} ) {\n\tconst isMobileViewport = useViewportMatch( 'small', '<' );\n\tconst [ showConfirmDialog, setShowConfirmDialog ] = useState( false );\n\n\tif ( ! isPublished && ! isScheduled ) {\n\t\treturn null;\n\t}\n\n\tlet alertMessage;\n\tif ( isPublished ) {\n\t\talertMessage = __( 'Are you sure you want to unpublish this post?' );\n\t} else if ( isScheduled ) {\n\t\talertMessage = __( 'Are you sure you want to unschedule this post?' );\n\t}\n\n\tconst handleConfirm = () => {\n\t\tsetShowConfirmDialog( false );\n\t\tonClick();\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName=\"editor-post-switch-to-draft\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tsetShowConfirmDialog( true );\n\t\t\t\t} }\n\t\t\t\tdisabled={ isSaving }\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t>\n\t\t\t\t{ isMobileViewport ? __( 'Draft' ) : __( 'Switch to draft' ) }\n\t\t\t</Button>\n\t\t\t<ConfirmDialog\n\t\t\t\tisOpen={ showConfirmDialog }\n\t\t\t\tonConfirm={ handleConfirm }\n\t\t\t\tonCancel={ () => setShowConfirmDialog( false ) }\n\t\t\t>\n\t\t\t\t{ alertMessage }\n\t\t\t</ConfirmDialog>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isSavingPost, isCurrentPostPublished, isCurrentPostScheduled } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisSaving: isSavingPost(),\n\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost, savePost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonClick: () => {\n\t\t\t\teditPost( { status: 'draft' } );\n\t\t\t\tsavePost();\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostSwitchToDraftButton );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__unstableGetAnimateClassName as getAnimateClassName,\n\tButton,\n} from '@wordpress/components';\nimport { usePrevious, useViewportMatch } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect, useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Icon, check, cloud, cloudUpload } from '@wordpress/icons';\nimport { displayShortcut } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport PostSwitchToDraftButton from '../post-switch-to-draft-button';\nimport { store as editorStore } from '../../store';\n\n/**\n * Component showing whether the post is saved or not and providing save\n * buttons.\n *\n * @param {Object}   props                Component props.\n * @param {?boolean} props.forceIsDirty   Whether to force the post to be marked\n *                                        as dirty.\n * @param {?boolean} props.forceIsSaving  Whether to force the post to be marked\n *                                        as being saved.\n * @param {?boolean} props.showIconLabels Whether interface buttons show labels instead of icons\n * @return {import('@wordpress/element').WPComponent} The component.\n */\nexport default function PostSavedState( {\n\tforceIsDirty,\n\tforceIsSaving,\n\tshowIconLabels = false,\n} ) {\n\tconst [ forceSavedMessage, setForceSavedMessage ] = useState( false );\n\tconst isLargeViewport = useViewportMatch( 'small' );\n\n\tconst {\n\t\tisAutosaving,\n\t\tisDirty,\n\t\tisNew,\n\t\tisPending,\n\t\tisPublished,\n\t\tisSaveable,\n\t\tisSaving,\n\t\tisScheduled,\n\t\thasPublishAction,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisEditedPostNew,\n\t\t\t\tisCurrentPostPublished,\n\t\t\t\tisCurrentPostScheduled,\n\t\t\t\tisEditedPostDirty,\n\t\t\t\tisSavingPost,\n\t\t\t\tisEditedPostSaveable,\n\t\t\t\tgetCurrentPost,\n\t\t\t\tisAutosavingPost,\n\t\t\t\tgetEditedPostAttribute,\n\t\t\t} = select( editorStore );\n\n\t\t\treturn {\n\t\t\t\tisAutosaving: isAutosavingPost(),\n\t\t\t\tisDirty: forceIsDirty || isEditedPostDirty(),\n\t\t\t\tisNew: isEditedPostNew(),\n\t\t\t\tisPending: 'pending' === getEditedPostAttribute( 'status' ),\n\t\t\t\tisPublished: isCurrentPostPublished(),\n\t\t\t\tisSaving: forceIsSaving || isSavingPost(),\n\t\t\t\tisSaveable: isEditedPostSaveable(),\n\t\t\t\tisScheduled: isCurrentPostScheduled(),\n\t\t\t\thasPublishAction:\n\t\t\t\t\tgetCurrentPost()?._links?.[ 'wp:action-publish' ] ?? false,\n\t\t\t};\n\t\t},\n\t\t[ forceIsDirty, forceIsSaving ]\n\t);\n\n\tconst { savePost } = useDispatch( editorStore );\n\n\tconst wasSaving = usePrevious( isSaving );\n\n\tuseEffect( () => {\n\t\tlet timeoutId;\n\n\t\tif ( wasSaving && ! isSaving ) {\n\t\t\tsetForceSavedMessage( true );\n\t\t\ttimeoutId = setTimeout( () => {\n\t\t\t\tsetForceSavedMessage( false );\n\t\t\t}, 1000 );\n\t\t}\n\n\t\treturn () => clearTimeout( timeoutId );\n\t}, [ isSaving ] );\n\n\t// Once the post has been submitted for review this button\n\t// is not needed for the contributor role.\n\tif ( ! hasPublishAction && isPending ) {\n\t\treturn null;\n\t}\n\n\tif ( isPublished || isScheduled ) {\n\t\treturn <PostSwitchToDraftButton />;\n\t}\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst label = isPending ? __( 'Save as pending' ) : __( 'Save draft' );\n\n\t/* translators: button label text should, if possible, be under 16 characters. */\n\tconst shortLabel = __( 'Save' );\n\n\tconst isSaved = forceSavedMessage || ( ! isNew && ! isDirty );\n\tconst isSavedState = isSaving || isSaved;\n\tconst isDisabled = isSaving || isSaved || ! isSaveable;\n\n\tlet text;\n\n\tif ( isSaving ) {\n\t\ttext = isAutosaving ? __( 'Autosaving' ) : __( 'Saving' );\n\t} else if ( isSaved ) {\n\t\ttext = __( 'Saved' );\n\t} else if ( isLargeViewport ) {\n\t\ttext = label;\n\t} else if ( showIconLabels ) {\n\t\ttext = shortLabel;\n\t}\n\n\t// Use common Button instance for all saved states so that focus is not\n\t// lost.\n\treturn (\n\t\t<Button\n\t\t\tclassName={\n\t\t\t\tisSaveable || isSaving\n\t\t\t\t\t? classnames( {\n\t\t\t\t\t\t\t'editor-post-save-draft': ! isSavedState,\n\t\t\t\t\t\t\t'editor-post-saved-state': isSavedState,\n\t\t\t\t\t\t\t'is-saving': isSaving,\n\t\t\t\t\t\t\t'is-autosaving': isAutosaving,\n\t\t\t\t\t\t\t'is-saved': isSaved,\n\t\t\t\t\t\t\t[ getAnimateClassName( {\n\t\t\t\t\t\t\t\ttype: 'loading',\n\t\t\t\t\t\t\t} ) ]: isSaving,\n\t\t\t\t\t  } )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tonClick={ isDisabled ? undefined : () => savePost() }\n\t\t\tshortcut={ displayShortcut.primary( 's' ) }\n\t\t\tvariant={ isLargeViewport ? 'tertiary' : undefined }\n\t\t\ticon={ isLargeViewport ? undefined : cloudUpload }\n\t\t\tlabel={ showIconLabels ? undefined : label }\n\t\t\taria-disabled={ isDisabled }\n\t\t>\n\t\t\t{ isSavedState && <Icon icon={ isSaved ? check : cloud } /> }\n\t\t\t{ text }\n\t\t</Button>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostScheduleCheck( { hasPublishAction, children } ) {\n\tif ( ! hasPublishAction ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { getCurrentPost, getCurrentPostType } = select( editorStore );\n\t\treturn {\n\t\t\thasPublishAction: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t} ),\n] )( PostScheduleCheck );\n","/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\n\nexport default function PostSlugCheck( { children } ) {\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"slug\">\n\t\t\t{ children }\n\t\t</PostTypeSupportCheck>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';\nimport { TextControl } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport PostSlugCheck from './check';\nimport { store as editorStore } from '../../store';\n\nexport class PostSlug extends Component {\n\tconstructor( { postSlug, postTitle, postID } ) {\n\t\tsuper( ...arguments );\n\n\t\tthis.state = {\n\t\t\teditedSlug:\n\t\t\t\tsafeDecodeURIComponent( postSlug ) ||\n\t\t\t\tcleanForSlug( postTitle ) ||\n\t\t\t\tpostID,\n\t\t};\n\n\t\tthis.setSlug = this.setSlug.bind( this );\n\t}\n\n\tsetSlug( event ) {\n\t\tconst { postSlug, onUpdateSlug } = this.props;\n\t\tconst { value } = event.target;\n\n\t\tconst editedSlug = cleanForSlug( value );\n\n\t\tif ( editedSlug === postSlug ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonUpdateSlug( editedSlug );\n\t}\n\n\trender() {\n\t\tconst { editedSlug } = this.state;\n\t\treturn (\n\t\t\t<PostSlugCheck>\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Slug' ) }\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\tvalue={ editedSlug }\n\t\t\t\t\tonChange={ ( slug ) =>\n\t\t\t\t\t\tthis.setState( { editedSlug: slug } )\n\t\t\t\t\t}\n\t\t\t\t\tonBlur={ this.setSlug }\n\t\t\t\t\tclassName=\"editor-post-slug\"\n\t\t\t\t/>\n\t\t\t</PostSlugCheck>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { getCurrentPost, getEditedPostAttribute } =\n\t\t\tselect( editorStore );\n\n\t\tconst { id } = getCurrentPost();\n\t\treturn {\n\t\t\tpostSlug: getEditedPostAttribute( 'slug' ),\n\t\t\tpostTitle: getEditedPostAttribute( 'title' ),\n\t\t\tpostID: id,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { editPost } = dispatch( editorStore );\n\t\treturn {\n\t\t\tonUpdateSlug( slug ) {\n\t\t\t\teditPost( { slug } );\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostSlug );\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostStickyCheck( { hasStickyAction, postType, children } ) {\n\tif ( postType !== 'post' || ! hasStickyAction ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\treturn {\n\t\t\thasStickyAction: get(\n\t\t\t\tpost,\n\t\t\t\t[ '_links', 'wp:action-sticky' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t};\n\t} ),\n] )( PostStickyCheck );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { CheckboxControl } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostStickyCheck from './check';\nimport { store as editorStore } from '../../store';\n\nexport function PostSticky( { onUpdateSticky, postSticky = false } ) {\n\treturn (\n\t\t<PostStickyCheck>\n\t\t\t<CheckboxControl\n\t\t\t\tlabel={ __( 'Stick to the top of the blog' ) }\n\t\t\t\tchecked={ postSticky }\n\t\t\t\tonChange={ () => onUpdateSticky( ! postSticky ) }\n\t\t\t/>\n\t\t</PostStickyCheck>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostSticky:\n\t\t\t\tselect( editorStore ).getEditedPostAttribute( 'sticky' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\treturn {\n\t\t\tonUpdateSticky( postSticky ) {\n\t\t\t\tdispatch( editorStore ).editPost( { sticky: postSticky } );\n\t\t\t},\n\t\t};\n\t} ),\n] )( PostSticky );\n","/**\n * External dependencies\n */\nimport { filter, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\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( {\n\tpostType,\n\ttaxonomies,\n\ttaxonomyWrapper = identity,\n} ) {\n\tconst availableTaxonomies = filter( taxonomies, ( taxonomy ) =>\n\t\tincludes( taxonomy.types, postType )\n\t);\n\tconst visibleTaxonomies = filter(\n\t\tavailableTaxonomies,\n\t\t// In some circumstances .visibility can end up as undefined so optional chaining operator required.\n\t\t// https://github.com/WordPress/gutenberg/issues/40326\n\t\t( taxonomy ) => taxonomy.visibility?.show_ui\n\t);\n\treturn visibleTaxonomies.map( ( taxonomy ) => {\n\t\tconst TaxonomyComponent = taxonomy.hierarchical\n\t\t\t? HierarchicalTermSelector\n\t\t\t: FlatTermSelector;\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 slug={ taxonomy.slug } />,\n\t\t\t\t\ttaxonomy\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t} );\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t};\n\t} ),\n] )( PostTaxonomies );\n","/**\n * External dependencies\n */\nimport { some, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostTaxonomiesCheck( { postType, taxonomies, children } ) {\n\tconst hasTaxonomies = some( taxonomies, ( taxonomy ) =>\n\t\tincludes( taxonomy.types, postType )\n\t);\n\tif ( ! hasTaxonomies ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tpostType: select( editorStore ).getCurrentPostType(),\n\t\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t};\n\t} ),\n] )( PostTaxonomiesCheck );\n","/**\n * External dependencies\n */\nimport Textarea from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect, useState, useRef } from '@wordpress/element';\nimport { parse } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useInstanceId } from '@wordpress/compose';\nimport { VisuallyHidden } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostTextEditor() {\n\tconst postContent = useSelect(\n\t\t( select ) => select( editorStore ).getEditedPostContent(),\n\t\t[]\n\t);\n\n\tconst { editPost, resetEditorBlocks } = useDispatch( editorStore );\n\n\tconst [ value, setValue ] = useState( postContent );\n\tconst [ isDirty, setIsDirty ] = useState( false );\n\tconst instanceId = useInstanceId( PostTextEditor );\n\tconst valueRef = useRef();\n\n\tif ( ! isDirty && value !== postContent ) {\n\t\tsetValue( postContent );\n\t}\n\n\t/**\n\t * Handles a textarea change event to notify the onChange prop callback and\n\t * reflect the new value in the component's own state. This marks the start\n\t * of the user's edits, if not already changed, preventing future props\n\t * changes to value from replacing the rendered value. This is expected to\n\t * be followed by a reset to dirty state via `stopEditing`.\n\t *\n\t * @see stopEditing\n\t *\n\t * @param {Event} event Change event.\n\t */\n\tconst onChange = ( event ) => {\n\t\tconst newValue = event.target.value;\n\t\teditPost( { content: newValue } );\n\t\tsetValue( newValue );\n\t\tsetIsDirty( true );\n\t\tvalueRef.current = newValue;\n\t};\n\n\t/**\n\t * Function called when the user has completed their edits, responsible for\n\t * ensuring that changes, if made, are surfaced to the onPersist prop\n\t * callback and resetting dirty state.\n\t */\n\tconst stopEditing = () => {\n\t\tif ( isDirty ) {\n\t\t\tconst blocks = parse( value );\n\t\t\tresetEditorBlocks( blocks );\n\t\t\tsetIsDirty( false );\n\t\t}\n\t};\n\n\t// Ensure changes aren't lost when component unmounts.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( valueRef.current ) {\n\t\t\t\tconst blocks = parse( valueRef.current );\n\t\t\t\tresetEditorBlocks( blocks );\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<VisuallyHidden\n\t\t\t\tas=\"label\"\n\t\t\t\thtmlFor={ `post-content-${ instanceId }` }\n\t\t\t>\n\t\t\t\t{ __( 'Type text or HTML' ) }\n\t\t\t</VisuallyHidden>\n\t\t\t<Textarea\n\t\t\t\tautoComplete=\"off\"\n\t\t\t\tdir=\"auto\"\n\t\t\t\tvalue={ value }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tonBlur={ stopEditing }\n\t\t\t\tclassName=\"editor-post-text-editor\"\n\t\t\t\tid={ `post-content-${ instanceId }` }\n\t\t\t\tplaceholder={ __( 'Start writing with text or HTML' ) }\n\t\t\t/>\n\t\t</>\n\t);\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tforwardRef,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from '@wordpress/element';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { ENTER } from '@wordpress/keycodes';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { pasteHandler } from '@wordpress/blocks';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport {\n\t__unstableUseRichText as useRichText,\n\tcreate,\n\ttoHTMLString,\n\tinsert,\n} from '@wordpress/rich-text';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport PostTypeSupportCheck from '../post-type-support-check';\nimport { store as editorStore } from '../../store';\n\n/**\n * Constants\n */\nconst REGEXP_NEWLINES = /[\\r\\n]+/g;\n\nfunction PostTitle( _, forwardedRef ) {\n\tconst ref = useRef();\n\tconst [ isSelected, setIsSelected ] = useState( false );\n\tconst { editPost } = useDispatch( editorStore );\n\tconst { insertDefaultBlock, clearSelectedBlock, insertBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst { isCleanNewPost, title, placeholder, hasFixedToolbar } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getEditedPostAttribute, isCleanNewPost: _isCleanNewPost } =\n\t\t\t\tselect( editorStore );\n\t\t\tconst { getSettings } = select( blockEditorStore );\n\t\t\tconst { titlePlaceholder, hasFixedToolbar: _hasFixedToolbar } =\n\t\t\t\tgetSettings();\n\n\t\t\treturn {\n\t\t\t\tisCleanNewPost: _isCleanNewPost(),\n\t\t\t\ttitle: getEditedPostAttribute( 'title' ),\n\t\t\t\tplaceholder: titlePlaceholder,\n\t\t\t\thasFixedToolbar: _hasFixedToolbar,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tuseImperativeHandle( forwardedRef, () => ( {\n\t\tfocus: () => {\n\t\t\tref?.current?.focus();\n\t\t},\n\t} ) );\n\n\tuseEffect( () => {\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { ownerDocument } = ref.current;\n\t\tconst { activeElement, body } = ownerDocument;\n\n\t\t// Only autofocus the title when the post is entirely empty. This should\n\t\t// only happen for a new post, which means we focus the title on new\n\t\t// post so the author can start typing right away, without needing to\n\t\t// click anything.\n\t\tif ( isCleanNewPost && ( ! activeElement || body === activeElement ) ) {\n\t\t\tref.current.focus();\n\t\t}\n\t}, [ isCleanNewPost ] );\n\n\tfunction onEnterPress() {\n\t\tinsertDefaultBlock( undefined, undefined, 0 );\n\t}\n\n\tfunction onInsertBlockAfter( blocks ) {\n\t\tinsertBlocks( blocks, 0 );\n\t}\n\n\tfunction onUpdate( newTitle ) {\n\t\teditPost( { title: newTitle } );\n\t}\n\n\tconst [ selection, setSelection ] = useState( {} );\n\n\tfunction onSelect() {\n\t\tsetIsSelected( true );\n\t\tclearSelectedBlock();\n\t}\n\n\tfunction onUnselect() {\n\t\tsetIsSelected( false );\n\t\tsetSelection( {} );\n\t}\n\n\tfunction onChange( value ) {\n\t\tonUpdate( value.replace( REGEXP_NEWLINES, ' ' ) );\n\t}\n\n\tfunction onKeyDown( event ) {\n\t\tif ( event.keyCode === ENTER ) {\n\t\t\tevent.preventDefault();\n\t\t\tonEnterPress();\n\t\t}\n\t}\n\n\tfunction onPaste( event ) {\n\t\tconst clipboardData = event.clipboardData;\n\n\t\tlet plainText = '';\n\t\tlet html = '';\n\n\t\t// IE11 only supports `Text` as an argument for `getData` and will\n\t\t// otherwise throw an invalid argument error, so we try the standard\n\t\t// arguments first, then fallback to `Text` if they fail.\n\t\ttry {\n\t\t\tplainText = clipboardData.getData( 'text/plain' );\n\t\t\thtml = clipboardData.getData( 'text/html' );\n\t\t} catch ( error1 ) {\n\t\t\ttry {\n\t\t\t\thtml = clipboardData.getData( 'Text' );\n\t\t\t} catch ( error2 ) {\n\t\t\t\t// Some browsers like UC Browser paste plain text by default and\n\t\t\t\t// don't support clipboardData at all, so allow default\n\t\t\t\t// behaviour.\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// Allows us to ask for this information when we get a report.\n\t\twindow.console.log( 'Received HTML:\\n\\n', html );\n\t\twindow.console.log( 'Received plain text:\\n\\n', plainText );\n\n\t\tconst content = pasteHandler( {\n\t\t\tHTML: html,\n\t\t\tplainText,\n\t\t} );\n\n\t\tevent.preventDefault();\n\n\t\tif ( ! content.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( typeof content !== 'string' ) {\n\t\t\tconst [ firstBlock ] = content;\n\n\t\t\tif (\n\t\t\t\t! title &&\n\t\t\t\t( firstBlock.name === 'core/heading' ||\n\t\t\t\t\tfirstBlock.name === 'core/paragraph' )\n\t\t\t) {\n\t\t\t\tonUpdate( firstBlock.attributes.content );\n\t\t\t\tonInsertBlockAfter( content.slice( 1 ) );\n\t\t\t} else {\n\t\t\t\tonInsertBlockAfter( content );\n\t\t\t}\n\t\t} else {\n\t\t\tconst value = {\n\t\t\t\t...create( { html: title } ),\n\t\t\t\t...selection,\n\t\t\t};\n\t\t\tconst newValue = insert( value, create( { html: content } ) );\n\t\t\tonUpdate( toHTMLString( { value: newValue } ) );\n\t\t\tsetSelection( {\n\t\t\t\tstart: newValue.start,\n\t\t\t\tend: newValue.end,\n\t\t\t} );\n\t\t}\n\t}\n\n\t// The wp-block className is important for editor styles.\n\t// This same block is used in both the visual and the code editor.\n\tconst className = classnames(\n\t\t'wp-block wp-block-post-title block-editor-block-list__block editor-post-title editor-post-title__input rich-text',\n\t\t{\n\t\t\t'is-selected': isSelected,\n\t\t\t'has-fixed-toolbar': hasFixedToolbar,\n\t\t}\n\t);\n\tconst decodedPlaceholder =\n\t\tdecodeEntities( placeholder ) || __( 'Add title' );\n\tconst { ref: richTextRef } = useRichText( {\n\t\tvalue: title,\n\t\tonChange,\n\t\tplaceholder: decodedPlaceholder,\n\t\tselectionStart: selection.start,\n\t\tselectionEnd: selection.end,\n\t\tonSelectionChange( newStart, newEnd ) {\n\t\t\tsetSelection( ( sel ) => {\n\t\t\t\tconst { start, end } = sel;\n\t\t\t\tif ( start === newStart && end === newEnd ) {\n\t\t\t\t\treturn sel;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tstart: newStart,\n\t\t\t\t\tend: newEnd,\n\t\t\t\t};\n\t\t\t} );\n\t\t},\n\t\t__unstableDisableFormats: true,\n\t\tpreserveWhiteSpace: true,\n\t} );\n\n\t/* eslint-disable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n\treturn (\n\t\t<PostTypeSupportCheck supportKeys=\"title\">\n\t\t\t<h1\n\t\t\t\tref={ useMergeRefs( [ richTextRef, ref ] ) }\n\t\t\t\tcontentEditable\n\t\t\t\tclassName={ className }\n\t\t\t\taria-label={ decodedPlaceholder }\n\t\t\t\trole=\"textbox\"\n\t\t\t\taria-multiline=\"true\"\n\t\t\t\tonFocus={ onSelect }\n\t\t\t\tonBlur={ onUnselect }\n\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\tonKeyPress={ onUnselect }\n\t\t\t\tonPaste={ onPaste }\n\t\t\t/>\n\t\t</PostTypeSupportCheck>\n\t);\n\t/* eslint-enable jsx-a11y/heading-has-content, jsx-a11y/no-noninteractive-element-to-interactive-role */\n}\n\nexport default forwardRef( PostTitle );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostTrash() {\n\tconst { isNew, isDeleting, postId } = useSelect( ( select ) => {\n\t\tconst store = select( editorStore );\n\t\treturn {\n\t\t\tisNew: store.isEditedPostNew(),\n\t\t\tisDeleting: store.isDeletingPost(),\n\t\t\tpostId: store.getCurrentPostId(),\n\t\t};\n\t}, [] );\n\tconst { trashPost } = useDispatch( editorStore );\n\n\tif ( isNew || ! postId ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tclassName=\"editor-post-trash\"\n\t\t\tisDestructive\n\t\t\tvariant=\"secondary\"\n\t\t\tisBusy={ isDeleting }\n\t\t\taria-disabled={ isDeleting }\n\t\t\tonClick={ isDeleting ? undefined : () => trashPost() }\n\t\t>\n\t\t\t{ __( 'Move to trash' ) }\n\t\t</Button>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { withSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nfunction PostTrashCheck( { isNew, postId, canUserDelete, children } ) {\n\tif ( isNew || ! postId || ! canUserDelete ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n\nexport default withSelect( ( select ) => {\n\tconst { isEditedPostNew, getCurrentPostId, getCurrentPostType } =\n\t\tselect( editorStore );\n\tconst { getPostType, canUser } = select( coreStore );\n\tconst postId = getCurrentPostId();\n\tconst postType = getPostType( getCurrentPostType() );\n\tconst resource = postType?.rest_base || ''; // eslint-disable-line camelcase\n\n\treturn {\n\t\tisNew: isEditedPostNew(),\n\t\tpostId,\n\t\tcanUserDelete:\n\t\t\tpostId && resource ? canUser( 'delete', resource, postId ) : false,\n\t};\n} )( PostTrashCheck );\n","/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { safeDecodeURIComponent, cleanForSlug } from '@wordpress/url';\nimport { useState } from '@wordpress/element';\nimport { __experimentalInspectorPopoverHeader as InspectorPopoverHeader } from '@wordpress/block-editor';\nimport { __ } from '@wordpress/i18n';\nimport { TextControl, ExternalLink } from '@wordpress/components';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostURL( { onClose } ) {\n\tconst {\n\t\tisEditable,\n\t\tpostSlug,\n\t\tviewPostLabel,\n\t\tpostLink,\n\t\tpermalinkPrefix,\n\t\tpermalinkSuffix,\n\t} = useSelect( ( select ) => {\n\t\tconst postTypeSlug = select( editorStore ).getCurrentPostType();\n\t\tconst postType = select( coreStore ).getPostType( postTypeSlug );\n\t\tconst permalinkParts = select( editorStore ).getPermalinkParts();\n\t\treturn {\n\t\t\tisEditable: select( editorStore ).isPermalinkEditable(),\n\t\t\tpostSlug: safeDecodeURIComponent(\n\t\t\t\tselect( editorStore ).getEditedPostSlug()\n\t\t\t),\n\t\t\tviewPostLabel: postType?.labels.view_item,\n\t\t\tpostLink: select( editorStore ).getCurrentPost().link,\n\t\t\tpermalinkPrefix: permalinkParts?.prefix,\n\t\t\tpermalinkSuffix: permalinkParts?.suffix,\n\t\t};\n\t}, [] );\n\n\tconst { editPost } = useDispatch( editorStore );\n\n\tconst [ forceEmptyField, setForceEmptyField ] = useState( false );\n\n\treturn (\n\t\t<div className=\"editor-post-url\">\n\t\t\t<InspectorPopoverHeader title={ __( 'URL' ) } onClose={ onClose } />\n\t\t\t{ isEditable && (\n\t\t\t\t<TextControl\n\t\t\t\t\tlabel={ __( 'Permalink' ) }\n\t\t\t\t\tvalue={ forceEmptyField ? '' : postSlug }\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tspellCheck=\"false\"\n\t\t\t\t\thelp={\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{ __( 'The last part of the URL.' ) }{ ' ' }\n\t\t\t\t\t\t\t<ExternalLink\n\t\t\t\t\t\t\t\thref={ __(\n\t\t\t\t\t\t\t\t\t'https://wordpress.org/support/article/settings-sidebar/#permalink'\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Learn more.' ) }\n\t\t\t\t\t\t\t</ExternalLink>\n\t\t\t\t\t\t</>\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( newValue ) => {\n\t\t\t\t\t\teditPost( { slug: newValue } );\n\t\t\t\t\t\t// When we delete the field the permalink gets\n\t\t\t\t\t\t// reverted to the original value.\n\t\t\t\t\t\t// The forceEmptyField logic allows the user to have\n\t\t\t\t\t\t// the field temporarily empty while typing.\n\t\t\t\t\t\tif ( ! newValue ) {\n\t\t\t\t\t\t\tif ( ! forceEmptyField ) {\n\t\t\t\t\t\t\t\tsetForceEmptyField( true );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonBlur={ ( event ) => {\n\t\t\t\t\t\teditPost( {\n\t\t\t\t\t\t\tslug: cleanForSlug( event.target.value ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tif ( forceEmptyField ) {\n\t\t\t\t\t\t\tsetForceEmptyField( false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ isEditable && (\n\t\t\t\t<h3 className=\"editor-post-url__link-label\">\n\t\t\t\t\t{ viewPostLabel ?? __( 'View post' ) }\n\t\t\t\t</h3>\n\t\t\t) }\n\t\t\t<p>\n\t\t\t\t<ExternalLink\n\t\t\t\t\tclassName=\"editor-post-url__link\"\n\t\t\t\t\thref={ postLink }\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t>\n\t\t\t\t\t{ isEditable ? (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-prefix\">\n\t\t\t\t\t\t\t\t{ permalinkPrefix }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-slug\">\n\t\t\t\t\t\t\t\t{ postSlug }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className=\"editor-post-url__link-suffix\">\n\t\t\t\t\t\t\t\t{ permalinkSuffix }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</>\n\t\t\t\t\t) : (\n\t\t\t\t\t\tpostLink\n\t\t\t\t\t) }\n\t\t\t\t</ExternalLink>\n\t\t\t</p>\n\t\t</div>\n\t);\n}\n","/**\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\nexport default function PostURLCheck( { children } ) {\n\tconst isVisible = useSelect( ( select ) => {\n\t\tconst postTypeSlug = select( editorStore ).getCurrentPostType();\n\t\tconst postType = select( coreStore ).getPostType( postTypeSlug );\n\t\tif ( ! postType?.viewable ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst post = select( editorStore ).getCurrentPost();\n\t\tif ( ! post.link ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst permalinkParts = select( editorStore ).getPermalinkParts();\n\t\tif ( ! permalinkParts ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}, [] );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn children;\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { filterURLForDisplay, safeDecodeURIComponent } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function PostURLLabel() {\n\treturn usePostURLLabel();\n}\n\nexport function usePostURLLabel() {\n\tconst postLink = useSelect(\n\t\t( select ) => select( editorStore ).getPermalink(),\n\t\t[]\n\t);\n\treturn filterURLForDisplay( safeDecodeURIComponent( postLink ) );\n}\n","/**\n * External dependencies\n */\nimport { get } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport function PostVisibilityCheck( { hasPublishAction, render } ) {\n\tconst canEdit = hasPublishAction;\n\treturn render( { canEdit } );\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { getCurrentPost, getCurrentPostType } = select( editorStore );\n\t\treturn {\n\t\t\thasPublishAction: get(\n\t\t\t\tgetCurrentPost(),\n\t\t\t\t[ '_links', 'wp:action-publish' ],\n\t\t\t\tfalse\n\t\t\t),\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t} ),\n] )( PostVisibilityCheck );\n","/**\n * WordPress dependencies\n */\nimport { SVG, Path } from '@wordpress/primitives';\n\nconst info = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Path d=\"M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z\" />\n\t</SVG>\n);\n\nexport default info;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"wordcount\"];","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { _x } from '@wordpress/i18n';\nimport { count as wordCount } from '@wordpress/wordcount';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function WordCount() {\n\tconst content = useSelect(\n\t\t( select ) => select( editorStore ).getEditedPostAttribute( 'content' ),\n\t\t[]\n\t);\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\n\treturn (\n\t\t<span className=\"word-count\">\n\t\t\t{ wordCount( content, wordCountType ) }\n\t\t</span>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { _x, _n, __, sprintf } from '@wordpress/i18n';\nimport { count as wordCount } from '@wordpress/wordcount';\nimport { createInterpolateElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\n/**\n * Average reading rate - based on average taken from\n * https://irisreading.com/average-reading-speed-in-various-languages/\n * (Characters/minute used for Chinese rather than words).\n *\n * @type {number} A rough estimate of the average reading rate across multiple languages.\n */\nconst AVERAGE_READING_RATE = 189;\n\nexport default function TimeToRead() {\n\tconst content = useSelect(\n\t\t( select ) => select( editorStore ).getEditedPostAttribute( 'content' ),\n\t\t[]\n\t);\n\n\t/*\n\t * translators: If your word count is based on single characters (e.g. East Asian characters),\n\t * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.\n\t * Do not translate into your own language.\n\t */\n\tconst wordCountType = _x( 'words', 'Word count type. Do not translate!' );\n\tconst minutesToRead = Math.round(\n\t\twordCount( content, wordCountType ) / AVERAGE_READING_RATE\n\t);\n\tconst minutesToReadString =\n\t\tminutesToRead === 0\n\t\t\t? createInterpolateElement( __( '<span>< 1</span> minute' ), {\n\t\t\t\t\tspan: <span className=\"table-of-contents__number\" />,\n\t\t\t  } )\n\t\t\t: createInterpolateElement(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s is the number of minutes the post will take to read. */\n\t\t\t\t\t\t_n(\n\t\t\t\t\t\t\t'<span>%d</span> minute',\n\t\t\t\t\t\t\t'<span>%d</span> minutes',\n\t\t\t\t\t\t\tminutesToRead\n\t\t\t\t\t\t),\n\t\t\t\t\t\tminutesToRead\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tspan: <span className=\"table-of-contents__number\" />,\n\t\t\t\t\t}\n\t\t\t  );\n\n\treturn <span className=\"time-to-read\">{ minutesToReadString }</span>;\n}\n","/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { count as characterCount } from '@wordpress/wordcount';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nexport default function CharacterCount() {\n\tconst content = useSelect(\n\t\t( select ) => select( editorStore ).getEditedPostAttribute( 'content' ),\n\t\t[]\n\t);\n\n\treturn characterCount( content, 'characters_including_spaces' );\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport WordCount from '../word-count';\nimport TimeToRead from '../time-to-read';\nimport DocumentOutline from '../document-outline';\nimport CharacterCount from '../character-count';\n\nfunction TableOfContentsPanel( { hasOutlineItemsDisabled, onRequestClose } ) {\n\tconst { headingCount, paragraphCount, numberOfBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getGlobalBlockCount } = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\theadingCount: getGlobalBlockCount( 'core/heading' ),\n\t\t\t\tparagraphCount: getGlobalBlockCount( 'core/paragraph' ),\n\t\t\t\tnumberOfBlocks: getGlobalBlockCount(),\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\treturn (\n\t\t/*\n\t\t * Disable reason: The `list` ARIA role is redundant but\n\t\t * Safari+VoiceOver won't announce the list otherwise.\n\t\t */\n\t\t/* eslint-disable jsx-a11y/no-redundant-roles */\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName=\"table-of-contents__wrapper\"\n\t\t\t\trole=\"note\"\n\t\t\t\taria-label={ __( 'Document Statistics' ) }\n\t\t\t\ttabIndex=\"0\"\n\t\t\t>\n\t\t\t\t<ul role=\"list\" className=\"table-of-contents__counts\">\n\t\t\t\t\t<li className=\"table-of-contents__count\">\n\t\t\t\t\t\t{ __( 'Words' ) }\n\t\t\t\t\t\t<WordCount />\n\t\t\t\t\t</li>\n\t\t\t\t\t<li className=\"table-of-contents__count\">\n\t\t\t\t\t\t{ __( 'Characters' ) }\n\t\t\t\t\t\t<span className=\"table-of-contents__number\">\n\t\t\t\t\t\t\t<CharacterCount />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li className=\"table-of-contents__count\">\n\t\t\t\t\t\t{ __( 'Time to read' ) }\n\t\t\t\t\t\t<TimeToRead />\n\t\t\t\t\t</li>\n\t\t\t\t\t<li className=\"table-of-contents__count\">\n\t\t\t\t\t\t{ __( 'Headings' ) }\n\t\t\t\t\t\t<span className=\"table-of-contents__number\">\n\t\t\t\t\t\t\t{ headingCount }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li className=\"table-of-contents__count\">\n\t\t\t\t\t\t{ __( 'Paragraphs' ) }\n\t\t\t\t\t\t<span className=\"table-of-contents__number\">\n\t\t\t\t\t\t\t{ paragraphCount }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</li>\n\t\t\t\t\t<li className=\"table-of-contents__count\">\n\t\t\t\t\t\t{ __( 'Blocks' ) }\n\t\t\t\t\t\t<span className=\"table-of-contents__number\">\n\t\t\t\t\t\t\t{ numberOfBlocks }\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t\t{ headingCount > 0 && (\n\t\t\t\t<>\n\t\t\t\t\t<hr />\n\t\t\t\t\t<h2 className=\"table-of-contents__title\">\n\t\t\t\t\t\t{ __( 'Document Outline' ) }\n\t\t\t\t\t</h2>\n\t\t\t\t\t<DocumentOutline\n\t\t\t\t\t\tonSelect={ onRequestClose }\n\t\t\t\t\t\thasOutlineItemsDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</>\n\t\t/* eslint-enable jsx-a11y/no-redundant-roles */\n\t);\n}\n\nexport default TableOfContentsPanel;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { info } from '@wordpress/icons';\nimport { forwardRef } from '@wordpress/element';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport TableOfContentsPanel from './panel';\n\nfunction TableOfContents(\n\t{ hasOutlineItemsDisabled, repositionDropdown, ...props },\n\tref\n) {\n\tconst hasBlocks = useSelect(\n\t\t( select ) => !! select( blockEditorStore ).getBlockCount(),\n\t\t[]\n\t);\n\treturn (\n\t\t<Dropdown\n\t\t\tposition={ repositionDropdown ? 'middle right right' : 'bottom' }\n\t\t\tclassName=\"table-of-contents\"\n\t\t\tcontentClassName=\"table-of-contents__popover\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<Button\n\t\t\t\t\t{ ...props }\n\t\t\t\t\tref={ ref }\n\t\t\t\t\tonClick={ hasBlocks ? onToggle : undefined }\n\t\t\t\t\ticon={ info }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t/* translators: button label text should, if possible, be under 16 characters. */\n\t\t\t\t\tlabel={ __( 'Details' ) }\n\t\t\t\t\ttooltipPosition=\"bottom\"\n\t\t\t\t\taria-disabled={ ! hasBlocks }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<TableOfContentsPanel\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\thasOutlineItemsDisabled={ hasOutlineItemsDisabled }\n\t\t\t\t/>\n\t\t\t) }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( TableOfContents );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Warns the user if there are unsaved changes before leaving the editor.\n * Compatible with Post Editor and Site Editor.\n *\n * @return {WPComponent} The component.\n */\nexport default function UnsavedChangesWarning() {\n\tconst isDirty = useSelect( ( select ) => {\n\t\treturn () => {\n\t\t\tconst { __experimentalGetDirtyEntityRecords } = select( coreStore );\n\t\t\tconst dirtyEntityRecords = __experimentalGetDirtyEntityRecords();\n\t\t\treturn dirtyEntityRecords.length > 0;\n\t\t};\n\t}, [] );\n\n\t/**\n\t * Warns the user if there are unsaved changes before leaving the editor.\n\t *\n\t * @param {Event} event `beforeunload` event.\n\t *\n\t * @return {?string} Warning prompt message, if unsaved changes exist.\n\t */\n\tconst warnIfUnsavedChanges = ( event ) => {\n\t\t// We need to call the selector directly in the listener to avoid race\n\t\t// conditions with `BrowserURL` where `componentDidUpdate` gets the\n\t\t// new value of `isEditedPostDirty` before this component does,\n\t\t// causing this component to incorrectly think a trashed post is still dirty.\n\t\tif ( isDirty() ) {\n\t\t\tevent.returnValue = __(\n\t\t\t\t'You have unsaved changes. If you proceed, they will be lost.'\n\t\t\t);\n\t\t\treturn event.returnValue;\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\twindow.addEventListener( 'beforeunload', warnIfUnsavedChanges );\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener( 'beforeunload', warnIfUnsavedChanges );\n\t\t};\n\t}, [] );\n\n\treturn null;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"reusableBlocks\"];","/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport {\n\twithRegistry,\n\tcreateRegistry,\n\tRegistryProvider,\n} from '@wordpress/data';\nimport { createHigherOrderComponent } from '@wordpress/compose';\nimport { storeConfig as blockEditorStoreConfig } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { storeConfig } from '../../store';\n\nconst withRegistryProvider = createHigherOrderComponent(\n\t( WrappedComponent ) =>\n\t\twithRegistry( ( props ) => {\n\t\t\tconst {\n\t\t\t\tuseSubRegistry = true,\n\t\t\t\tregistry,\n\t\t\t\t...additionalProps\n\t\t\t} = props;\n\t\t\tif ( ! useSubRegistry ) {\n\t\t\t\treturn <WrappedComponent { ...additionalProps } />;\n\t\t\t}\n\n\t\t\tconst [ subRegistry, setSubRegistry ] = useState( null );\n\t\t\tuseEffect( () => {\n\t\t\t\tconst newRegistry = createRegistry(\n\t\t\t\t\t{\n\t\t\t\t\t\t'core/block-editor': blockEditorStoreConfig,\n\t\t\t\t\t},\n\t\t\t\t\tregistry\n\t\t\t\t);\n\t\t\t\tnewRegistry.registerStore( 'core/editor', storeConfig );\n\t\t\t\tsetSubRegistry( newRegistry );\n\t\t\t}, [ registry ] );\n\n\t\t\tif ( ! subRegistry ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\t<RegistryProvider value={ subRegistry }>\n\t\t\t\t\t<WrappedComponent { ...additionalProps } />\n\t\t\t\t</RegistryProvider>\n\t\t\t);\n\t\t} ),\n\t'withRegistryProvider'\n);\n\nexport default withRegistryProvider;\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"mediaUtils\"];","/**\n * WordPress dependencies\n */\nimport { select } from '@wordpress/data';\nimport { uploadMedia } from '@wordpress/media-utils';\n\n/**\n * Internal dependencies\n */\nimport { store as editorStore } from '../../store';\n\nconst noop = () => {};\n\n/**\n * Upload a media file when the file upload button is activated.\n * Wrapper around mediaUpload() that injects the current post ID.\n *\n * @param {Object}   $0                   Parameters object passed to the function.\n * @param {?Object}  $0.additionalData    Additional data to include in the request.\n * @param {string}   $0.allowedTypes      Array with the types of media that can be uploaded, if unset all types are allowed.\n * @param {Array}    $0.filesList         List of files.\n * @param {?number}  $0.maxUploadFileSize Maximum upload size in bytes allowed for the site.\n * @param {Function} $0.onError           Function called when an error happens.\n * @param {Function} $0.onFileChange      Function called each time a file or a temporary representation of the file is available.\n */\nexport default function mediaUpload( {\n\tadditionalData = {},\n\tallowedTypes,\n\tfilesList,\n\tmaxUploadFileSize,\n\tonError = noop,\n\tonFileChange,\n} ) {\n\tconst { getCurrentPostId, getEditorSettings } = select( editorStore );\n\tconst wpAllowedMimeTypes = getEditorSettings().allowedMimeTypes;\n\tmaxUploadFileSize =\n\t\tmaxUploadFileSize || getEditorSettings().maxUploadFileSize;\n\n\tuploadMedia( {\n\t\tallowedTypes,\n\t\tfilesList,\n\t\tonFileChange,\n\t\tadditionalData: {\n\t\t\tpost: getCurrentPostId(),\n\t\t\t...additionalData,\n\t\t},\n\t\tmaxUploadFileSize,\n\t\tonError: ( { message } ) => onError( message ),\n\t\twpAllowedMimeTypes,\n\t} );\n}\n","/**\n * External dependencies\n */\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Platform, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tstore as coreStore,\n\t__experimentalFetchLinkSuggestions as fetchLinkSuggestions,\n\t__experimentalFetchUrlData as fetchUrlData,\n} from '@wordpress/core-data';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { mediaUpload } from '../../utils';\nimport { store as editorStore } from '../../store';\n\n/**\n * React hook used to compute the block editor settings to use for the post editor.\n *\n * @param {Object}  settings    EditorProvider settings prop.\n * @param {boolean} hasTemplate Whether template mode is enabled.\n *\n * @return {Object} Block Editor Settings.\n */\nfunction useBlockEditorSettings( settings, hasTemplate ) {\n\tconst {\n\t\treusableBlocks,\n\t\thasUploadPermissions,\n\t\tcanUseUnfilteredHTML,\n\t\tuserCanCreatePages,\n\t\tpageOnFront,\n\t\tpostType,\n\t} = useSelect( ( select ) => {\n\t\tconst { canUserUseUnfilteredHTML, getCurrentPostType } =\n\t\t\tselect( editorStore );\n\t\tconst isWeb = Platform.OS === 'web';\n\t\tconst { canUser, getEntityRecord } = select( coreStore );\n\n\t\tconst siteSettings = canUser( 'read', 'settings' )\n\t\t\t? getEntityRecord( 'root', 'site' )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tcanUseUnfilteredHTML: canUserUseUnfilteredHTML(),\n\t\t\treusableBlocks: isWeb\n\t\t\t\t? select( coreStore ).getEntityRecords(\n\t\t\t\t\t\t'postType',\n\t\t\t\t\t\t'wp_block',\n\t\t\t\t\t\t{ per_page: -1 }\n\t\t\t\t  )\n\t\t\t\t: [], // Reusable blocks are fetched in the native version of this hook.\n\t\t\thasUploadPermissions: canUser( 'create', 'media' ) ?? true,\n\t\t\tuserCanCreatePages: canUser( 'create', 'pages' ),\n\t\t\tpageOnFront: siteSettings?.page_on_front,\n\t\t\tpostType: getCurrentPostType(),\n\t\t};\n\t}, [] );\n\n\tconst settingsBlockPatterns =\n\t\tsettings.__experimentalAdditionalBlockPatterns ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatterns; // WP 5.9\n\tconst settingsBlockPatternCategories =\n\t\tsettings.__experimentalAdditionalBlockPatternCategories ?? // WP 6.0\n\t\tsettings.__experimentalBlockPatternCategories; // WP 5.9\n\n\tconst { restBlockPatterns, restBlockPatternCategories } = useSelect(\n\t\t( select ) => ( {\n\t\t\trestBlockPatterns: select( coreStore ).getBlockPatterns(),\n\t\t\trestBlockPatternCategories:\n\t\t\t\tselect( coreStore ).getBlockPatternCategories(),\n\t\t} ),\n\t\t[]\n\t);\n\n\tconst blockPatterns = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatterns || [] ),\n\t\t\t\t...( restBlockPatterns || [] ),\n\t\t\t]\n\t\t\t\t.filter(\n\t\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t\t)\n\t\t\t\t.filter( ( { postTypes } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t! postTypes ||\n\t\t\t\t\t\t( Array.isArray( postTypes ) &&\n\t\t\t\t\t\t\tpostTypes.includes( postType ) )\n\t\t\t\t\t);\n\t\t\t\t} ),\n\t\t[ settingsBlockPatterns, restBlockPatterns, postType ]\n\t);\n\n\tconst blockPatternCategories = useMemo(\n\t\t() =>\n\t\t\t[\n\t\t\t\t...( settingsBlockPatternCategories || [] ),\n\t\t\t\t...( restBlockPatternCategories || [] ),\n\t\t\t].filter(\n\t\t\t\t( x, index, arr ) =>\n\t\t\t\t\tindex === arr.findIndex( ( y ) => x.name === y.name )\n\t\t\t),\n\t\t[ settingsBlockPatternCategories, restBlockPatternCategories ]\n\t);\n\n\tconst { undo } = useDispatch( editorStore );\n\n\tconst { saveEntityRecord } = useDispatch( coreStore );\n\n\t/**\n\t * Creates a Post entity.\n\t * This is utilised by the Link UI to allow for on-the-fly creation of Posts/Pages.\n\t *\n\t * @param {Object} options parameters for the post being created. These mirror those used on 3rd param of saveEntityRecord.\n\t * @return {Object} the post type object that was created.\n\t */\n\tconst createPageEntity = ( options ) => {\n\t\tif ( ! userCanCreatePages ) {\n\t\t\treturn Promise.reject( {\n\t\t\t\tmessage: __( 'You do not have permission to create Pages.' ),\n\t\t\t} );\n\t\t}\n\t\treturn saveEntityRecord( 'postType', 'page', options );\n\t};\n\n\treturn useMemo(\n\t\t() => ( {\n\t\t\t...pick( settings, [\n\t\t\t\t'__experimentalBlockDirectory',\n\t\t\t\t'__experimentalDiscussionSettings',\n\t\t\t\t'__experimentalFeatures',\n\t\t\t\t'__experimentalPreferredStyleVariations',\n\t\t\t\t'__experimentalSetIsInserterOpened',\n\t\t\t\t'__unstableGalleryWithImageBlocks',\n\t\t\t\t'alignWide',\n\t\t\t\t'allowedBlockTypes',\n\t\t\t\t'bodyPlaceholder',\n\t\t\t\t'canLockBlocks',\n\t\t\t\t'codeEditingEnabled',\n\t\t\t\t'colors',\n\t\t\t\t'disableCustomColors',\n\t\t\t\t'disableCustomFontSizes',\n\t\t\t\t'disableCustomSpacingSizes',\n\t\t\t\t'disableCustomGradients',\n\t\t\t\t'disableLayoutStyles',\n\t\t\t\t'enableCustomLineHeight',\n\t\t\t\t'enableCustomSpacing',\n\t\t\t\t'enableCustomUnits',\n\t\t\t\t'focusMode',\n\t\t\t\t'fontSizes',\n\t\t\t\t'gradients',\n\t\t\t\t'generateAnchors',\n\t\t\t\t'hasFixedToolbar',\n\t\t\t\t'hasReducedUI',\n\t\t\t\t'hasInlineToolbar',\n\t\t\t\t'imageDefaultSize',\n\t\t\t\t'imageDimensions',\n\t\t\t\t'imageEditing',\n\t\t\t\t'imageSizes',\n\t\t\t\t'isRTL',\n\t\t\t\t'keepCaretInsideBlock',\n\t\t\t\t'maxWidth',\n\t\t\t\t'onUpdateDefaultBlockStyles',\n\t\t\t\t'styles',\n\t\t\t\t'template',\n\t\t\t\t'templateLock',\n\t\t\t\t'titlePlaceholder',\n\t\t\t\t'supportsLayout',\n\t\t\t\t'widgetTypesToHideFromLegacyWidgetBlock',\n\t\t\t\t'__unstableResolvedAssets',\n\t\t\t] ),\n\t\t\tmediaUpload: hasUploadPermissions ? mediaUpload : undefined,\n\t\t\t__experimentalReusableBlocks: reusableBlocks,\n\t\t\t__experimentalBlockPatterns: blockPatterns,\n\t\t\t__experimentalBlockPatternCategories: blockPatternCategories,\n\t\t\t__experimentalFetchLinkSuggestions: ( search, searchOptions ) =>\n\t\t\t\tfetchLinkSuggestions( search, searchOptions, settings ),\n\t\t\t__experimentalFetchRichUrlData: fetchUrlData,\n\t\t\t__experimentalCanUserUseUnfilteredHTML: canUseUnfilteredHTML,\n\t\t\t__experimentalUndo: undo,\n\t\t\toutlineMode: hasTemplate,\n\t\t\t__experimentalCreatePageEntity: createPageEntity,\n\t\t\t__experimentalUserCanCreatePages: userCanCreatePages,\n\t\t\tpageOnFront,\n\t\t\t__experimentalPreferPatternsOnRoot: hasTemplate,\n\t\t} ),\n\t\t[\n\t\t\tsettings,\n\t\t\thasUploadPermissions,\n\t\t\treusableBlocks,\n\t\t\tblockPatterns,\n\t\t\tblockPatternCategories,\n\t\t\tcanUseUnfilteredHTML,\n\t\t\tundo,\n\t\t\thasTemplate,\n\t\t\tuserCanCreatePages,\n\t\t\tpageOnFront,\n\t\t]\n\t);\n}\n\nexport default useBlockEditorSettings;\n","/**\n * WordPress dependencies\n */\nimport { useEffect, useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { EntityProvider, useEntityBlockEditor } from '@wordpress/core-data';\nimport {\n\tBlockEditorProvider,\n\tBlockContextProvider,\n} from '@wordpress/block-editor';\nimport { ReusableBlocksMenuItems } from '@wordpress/reusable-blocks';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport withRegistryProvider from './with-registry-provider';\nimport { store as editorStore } from '../../store';\nimport useBlockEditorSettings from './use-block-editor-settings';\n\nfunction EditorProvider( {\n\t__unstableTemplate,\n\tpost,\n\tsettings,\n\trecovery,\n\tinitialEdits,\n\tchildren,\n} ) {\n\tconst defaultBlockContext = useMemo( () => {\n\t\tif ( post.type === 'wp_template' ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn { postId: post.id, postType: post.type };\n\t}, [ post.id, post.type ] );\n\tconst { selection, isReady } = useSelect( ( select ) => {\n\t\tconst { getEditorSelection, __unstableIsEditorReady } =\n\t\t\tselect( editorStore );\n\t\treturn {\n\t\t\tisReady: __unstableIsEditorReady(),\n\t\t\tselection: getEditorSelection(),\n\t\t};\n\t}, [] );\n\tconst { id, type } = __unstableTemplate ?? post;\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\ttype,\n\t\t{ id }\n\t);\n\tconst editorSettings = useBlockEditorSettings(\n\t\tsettings,\n\t\t!! __unstableTemplate\n\t);\n\tconst {\n\t\tupdatePostLock,\n\t\tsetupEditor,\n\t\tupdateEditorSettings,\n\t\t__experimentalTearDownEditor,\n\t} = useDispatch( editorStore );\n\tconst { createWarningNotice } = useDispatch( noticesStore );\n\n\t// Initialize and tear down the editor.\n\t// Ideally this should be synced on each change and not just something you do once.\n\tuseLayoutEffect( () => {\n\t\t// Assume that we don't need to initialize in the case of an error recovery.\n\t\tif ( recovery ) {\n\t\t\treturn;\n\t\t}\n\n\t\tupdatePostLock( settings.postLock );\n\t\tsetupEditor( post, initialEdits, settings.template );\n\t\tif ( settings.autosave ) {\n\t\t\tcreateWarningNotice(\n\t\t\t\t__(\n\t\t\t\t\t'There is an autosave of this post that is more recent than the version below.'\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\tid: 'autosave-exists',\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: __( 'View the autosave' ),\n\t\t\t\t\t\t\turl: settings.autosave.editLink,\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn () => {\n\t\t\t__experimentalTearDownEditor();\n\t\t};\n\t}, [] );\n\n\t// Synchronize the editor settings as they change.\n\tuseEffect( () => {\n\t\tupdateEditorSettings( settings );\n\t}, [ settings ] );\n\n\tif ( ! isReady ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<EntityProvider kind=\"root\" type=\"site\">\n\t\t\t<EntityProvider kind=\"postType\" type={ post.type } id={ post.id }>\n\t\t\t\t<BlockContextProvider value={ defaultBlockContext }>\n\t\t\t\t\t<BlockEditorProvider\n\t\t\t\t\t\tvalue={ blocks }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tonInput={ onInput }\n\t\t\t\t\t\tselection={ selection }\n\t\t\t\t\t\tsettings={ editorSettings }\n\t\t\t\t\t\tuseSubRegistry={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t\t<ReusableBlocksMenuItems />\n\t\t\t\t\t</BlockEditorProvider>\n\t\t\t\t</BlockContextProvider>\n\t\t\t</EntityProvider>\n\t\t</EntityProvider>\n\t);\n}\n\nexport default withRegistryProvider( EditorProvider );\n","const __WEBPACK_NAMESPACE_OBJECT__ = window[\"wp\"][\"serverSideRender\"];","// Block Creation Components.\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef } from '@wordpress/element';\nimport {\n\tAutocomplete as RootAutocomplete,\n\tAlignmentToolbar as RootAlignmentToolbar,\n\tBlockAlignmentToolbar as RootBlockAlignmentToolbar,\n\tBlockControls as RootBlockControls,\n\tBlockEdit as RootBlockEdit,\n\tBlockEditorKeyboardShortcuts as RootBlockEditorKeyboardShortcuts,\n\tBlockFormatControls as RootBlockFormatControls,\n\tBlockIcon as RootBlockIcon,\n\tBlockInspector as RootBlockInspector,\n\tBlockList as RootBlockList,\n\tBlockMover as RootBlockMover,\n\tBlockNavigationDropdown as RootBlockNavigationDropdown,\n\tBlockSelectionClearer as RootBlockSelectionClearer,\n\tBlockSettingsMenu as RootBlockSettingsMenu,\n\tBlockTitle as RootBlockTitle,\n\tBlockToolbar as RootBlockToolbar,\n\tColorPalette as RootColorPalette,\n\tContrastChecker as RootContrastChecker,\n\tCopyHandler as RootCopyHandler,\n\tcreateCustomColorsHOC as rootCreateCustomColorsHOC,\n\tDefaultBlockAppender as RootDefaultBlockAppender,\n\tFontSizePicker as RootFontSizePicker,\n\tgetColorClassName as rootGetColorClassName,\n\tgetColorObjectByAttributeValues as rootGetColorObjectByAttributeValues,\n\tgetColorObjectByColorValue as rootGetColorObjectByColorValue,\n\tgetFontSize as rootGetFontSize,\n\tgetFontSizeClass as rootGetFontSizeClass,\n\tInserter as RootInserter,\n\tInnerBlocks as RootInnerBlocks,\n\tInspectorAdvancedControls as RootInspectorAdvancedControls,\n\tInspectorControls as RootInspectorControls,\n\tPanelColorSettings as RootPanelColorSettings,\n\tPlainText as RootPlainText,\n\tRichText as RootRichText,\n\tRichTextShortcut as RootRichTextShortcut,\n\tRichTextToolbarButton as RootRichTextToolbarButton,\n\t__unstableRichTextInputEvent as __unstableRootRichTextInputEvent,\n\tMediaPlaceholder as RootMediaPlaceholder,\n\tMediaUpload as RootMediaUpload,\n\tMediaUploadCheck as RootMediaUploadCheck,\n\tMultiSelectScrollIntoView as RootMultiSelectScrollIntoView,\n\tNavigableToolbar as RootNavigableToolbar,\n\tObserveTyping as RootObserveTyping,\n\tSkipToSelectedBlock as RootSkipToSelectedBlock,\n\tURLInput as RootURLInput,\n\tURLInputButton as RootURLInputButton,\n\tURLPopover as RootURLPopover,\n\tWarning as RootWarning,\n\tWritingFlow as RootWritingFlow,\n\twithColorContext as rootWithColorContext,\n\twithColors as rootWithColors,\n\twithFontSizes as rootWithFontSizes,\n} from '@wordpress/block-editor';\n\nexport { default as ServerSideRender } from '@wordpress/server-side-render';\n\nfunction deprecateComponent( name, Wrapped, staticsToHoist = [] ) {\n\tconst Component = forwardRef( ( props, ref ) => {\n\t\tdeprecated( 'wp.editor.' + name, {\n\t\t\tsince: '5.3',\n\t\t\talternative: 'wp.blockEditor.' + name,\n\t\t\tversion: '6.2',\n\t\t} );\n\n\t\treturn <Wrapped ref={ ref } { ...props } />;\n\t} );\n\n\tstaticsToHoist.forEach( ( staticName ) => {\n\t\tComponent[ staticName ] = deprecateComponent(\n\t\t\tname + '.' + staticName,\n\t\t\tWrapped[ staticName ]\n\t\t);\n\t} );\n\n\treturn Component;\n}\n\nfunction deprecateFunction( name, func ) {\n\treturn ( ...args ) => {\n\t\tdeprecated( 'wp.editor.' + name, {\n\t\t\tsince: '5.3',\n\t\t\talternative: 'wp.blockEditor.' + name,\n\t\t\tversion: '6.2',\n\t\t} );\n\n\t\treturn func( ...args );\n\t};\n}\n\nconst RichText = deprecateComponent( 'RichText', RootRichText, [ 'Content' ] );\nRichText.isEmpty = deprecateFunction(\n\t'RichText.isEmpty',\n\tRootRichText.isEmpty\n);\n\nexport { RichText };\nexport const Autocomplete = deprecateComponent(\n\t'Autocomplete',\n\tRootAutocomplete\n);\nexport const AlignmentToolbar = deprecateComponent(\n\t'AlignmentToolbar',\n\tRootAlignmentToolbar\n);\nexport const BlockAlignmentToolbar = deprecateComponent(\n\t'BlockAlignmentToolbar',\n\tRootBlockAlignmentToolbar\n);\nexport const BlockControls = deprecateComponent(\n\t'BlockControls',\n\tRootBlockControls,\n\t[ 'Slot' ]\n);\nexport const BlockEdit = deprecateComponent( 'BlockEdit', RootBlockEdit );\nexport const BlockEditorKeyboardShortcuts = deprecateComponent(\n\t'BlockEditorKeyboardShortcuts',\n\tRootBlockEditorKeyboardShortcuts\n);\nexport const BlockFormatControls = deprecateComponent(\n\t'BlockFormatControls',\n\tRootBlockFormatControls,\n\t[ 'Slot' ]\n);\nexport const BlockIcon = deprecateComponent( 'BlockIcon', RootBlockIcon );\nexport const BlockInspector = deprecateComponent(\n\t'BlockInspector',\n\tRootBlockInspector\n);\nexport const BlockList = deprecateComponent( 'BlockList', RootBlockList );\nexport const BlockMover = deprecateComponent( 'BlockMover', RootBlockMover );\nexport const BlockNavigationDropdown = deprecateComponent(\n\t'BlockNavigationDropdown',\n\tRootBlockNavigationDropdown\n);\nexport const BlockSelectionClearer = deprecateComponent(\n\t'BlockSelectionClearer',\n\tRootBlockSelectionClearer\n);\nexport const BlockSettingsMenu = deprecateComponent(\n\t'BlockSettingsMenu',\n\tRootBlockSettingsMenu\n);\nexport const BlockTitle = deprecateComponent( 'BlockTitle', RootBlockTitle );\nexport const BlockToolbar = deprecateComponent(\n\t'BlockToolbar',\n\tRootBlockToolbar\n);\nexport const ColorPalette = deprecateComponent(\n\t'ColorPalette',\n\tRootColorPalette\n);\nexport const ContrastChecker = deprecateComponent(\n\t'ContrastChecker',\n\tRootContrastChecker\n);\nexport const CopyHandler = deprecateComponent( 'CopyHandler', RootCopyHandler );\nexport const DefaultBlockAppender = deprecateComponent(\n\t'DefaultBlockAppender',\n\tRootDefaultBlockAppender\n);\nexport const FontSizePicker = deprecateComponent(\n\t'FontSizePicker',\n\tRootFontSizePicker\n);\nexport const Inserter = deprecateComponent( 'Inserter', RootInserter );\nexport const InnerBlocks = deprecateComponent( 'InnerBlocks', RootInnerBlocks, [\n\t'ButtonBlockAppender',\n\t'DefaultBlockAppender',\n\t'Content',\n] );\nexport const InspectorAdvancedControls = deprecateComponent(\n\t'InspectorAdvancedControls',\n\tRootInspectorAdvancedControls,\n\t[ 'Slot' ]\n);\nexport const InspectorControls = deprecateComponent(\n\t'InspectorControls',\n\tRootInspectorControls,\n\t[ 'Slot' ]\n);\nexport const PanelColorSettings = deprecateComponent(\n\t'PanelColorSettings',\n\tRootPanelColorSettings\n);\nexport const PlainText = deprecateComponent( 'PlainText', RootPlainText );\nexport const RichTextShortcut = deprecateComponent(\n\t'RichTextShortcut',\n\tRootRichTextShortcut\n);\nexport const RichTextToolbarButton = deprecateComponent(\n\t'RichTextToolbarButton',\n\tRootRichTextToolbarButton\n);\nexport const __unstableRichTextInputEvent = deprecateComponent(\n\t'__unstableRichTextInputEvent',\n\t__unstableRootRichTextInputEvent\n);\nexport const MediaPlaceholder = deprecateComponent(\n\t'MediaPlaceholder',\n\tRootMediaPlaceholder\n);\nexport const MediaUpload = deprecateComponent( 'MediaUpload', RootMediaUpload );\nexport const MediaUploadCheck = deprecateComponent(\n\t'MediaUploadCheck',\n\tRootMediaUploadCheck\n);\nexport const MultiSelectScrollIntoView = deprecateComponent(\n\t'MultiSelectScrollIntoView',\n\tRootMultiSelectScrollIntoView\n);\nexport const NavigableToolbar = deprecateComponent(\n\t'NavigableToolbar',\n\tRootNavigableToolbar\n);\nexport const ObserveTyping = deprecateComponent(\n\t'ObserveTyping',\n\tRootObserveTyping\n);\nexport const SkipToSelectedBlock = deprecateComponent(\n\t'SkipToSelectedBlock',\n\tRootSkipToSelectedBlock\n);\nexport const URLInput = deprecateComponent( 'URLInput', RootURLInput );\nexport const URLInputButton = deprecateComponent(\n\t'URLInputButton',\n\tRootURLInputButton\n);\nexport const URLPopover = deprecateComponent( 'URLPopover', RootURLPopover );\nexport const Warning = deprecateComponent( 'Warning', RootWarning );\nexport const WritingFlow = deprecateComponent( 'WritingFlow', RootWritingFlow );\n\nexport const createCustomColorsHOC = deprecateFunction(\n\t'createCustomColorsHOC',\n\trootCreateCustomColorsHOC\n);\nexport const getColorClassName = deprecateFunction(\n\t'getColorClassName',\n\trootGetColorClassName\n);\nexport const getColorObjectByAttributeValues = deprecateFunction(\n\t'getColorObjectByAttributeValues',\n\trootGetColorObjectByAttributeValues\n);\nexport const getColorObjectByColorValue = deprecateFunction(\n\t'getColorObjectByColorValue',\n\trootGetColorObjectByColorValue\n);\nexport const getFontSize = deprecateFunction( 'getFontSize', rootGetFontSize );\nexport const getFontSizeClass = deprecateFunction(\n\t'getFontSizeClass',\n\trootGetFontSizeClass\n);\nexport const withColorContext = deprecateFunction(\n\t'withColorContext',\n\trootWithColorContext\n);\nexport const withColors = deprecateFunction( 'withColors', rootWithColors );\nexport const withFontSizes = deprecateFunction(\n\t'withFontSizes',\n\trootWithFontSizes\n);\n","/**\n * WordPress dependencies\n */\nimport { cleanForSlug as urlCleanForSlug } from '@wordpress/url';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Performs some basic cleanup of a string for use as a post slug\n *\n * This replicates some of what sanitize_title() does in WordPress core, but\n * is only designed to approximate what the slug will be.\n *\n * Converts Latin-1 Supplement and Latin Extended-A letters to basic Latin letters.\n * Removes combining diacritical marks. Converts whitespace, periods,\n * and forward slashes to hyphens. Removes any remaining non-word characters\n * except hyphens and underscores. Converts remaining string to lowercase.\n * It does not account for octets, HTML entities, or other encoded characters.\n *\n * @param {string} string Title or slug to be processed\n *\n * @return {string} Processed string\n */\nexport function cleanForSlug( string ) {\n\tdeprecated( 'wp.editor.cleanForSlug', {\n\t\tsince: '12.7',\n\t\tplugin: 'Gutenberg',\n\t\talternative: 'wp.url.cleanForSlug',\n\t} );\n\treturn urlCleanForSlug( string );\n}\n"],"names":["module","exports","keys","values","map","Map","has","key","indexOf","get","set","value","push","delete","index","splice","createEvent","name","Event","bubbles","e","evt","document","initEvent","assign","ta","nodeName","heightOffset","clientWidth","cachedHeight","pageResize","update","destroy","style","window","removeEventListener","Object","forEach","bind","height","resize","overflowY","overflowX","wordWrap","addEventListener","getComputedStyle","boxSizing","parseFloat","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","isNaN","changeOverflow","width","offsetWidth","scrollHeight","overflows","el","arr","parentNode","Element","scrollTop","node","getParentOverflows","docTop","documentElement","styleHeight","Math","round","computed","actualHeight","offsetHeight","dispatchEvent","err","methods","autosize","options","Array","prototype","call","length","x","default","hasOwn","hasOwnProperty","classNames","classes","i","arguments","arg","argType","isArray","inner","apply","toString","join","prop","currentStyle","replace","word","letter","toUpperCase","computedStyle","lnHeightStr","lnHeight","_lnHeightStyle","lineHeight","_node","createElement","innerHTML","setAttribute","fontSizeStr","fontSize","padding","border","body","appendChild","removeChild","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","extendStatics","__extends","this","setPrototypeOf","__proto__","d","b","p","__","constructor","create","__assign","t","s","n","__rest","getOwnPropertySymbols","__esModule","React","getLineHeight","RESIZED","TextareaAutosizeClass","_super","_this","state","textarea","onResize","updateLineHeight","setState","onChange","currentValue","currentTarget","componentDidMount","_a","maxRows","async","setTimeout","componentWillUnmount","render","_b","children","innerRef","maxHeight","ref","current","componentDidUpdate","defaultProps","rows","propTypes","Component","TextareaAutosize","forwardRef","TextareaAutosize_1","characterMap","chars","allAccents","RegExp","firstAccent","removeAccents","match","remove","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","getter","a","definition","o","defineProperty","enumerable","obj","r","Symbol","toStringTag","_extends","target","source","EDITOR_SETTINGS_DEFAULTS","SETTINGS_DEFAULTS","richEditingEnabled","codeEditingEnabled","enableCustomFields","supportsLayout","getPostRawValue","raw","combineReducers","postId","action","type","post","id","postType","saving","pending","deleting","postLock","isLocked","lock","template","isValid","postSavingLock","lockName","removedLockName","restState","isReady","editorSettings","settings","postAutosavingLock","LEAF_KEY","isShallowEqual","fromIndex","selector","getDependants","rootCache","normalizedGetDependants","getCache","dependants","dependant","cache","caches","isUniqueByDependants","WeakMap","clear","head","createCache","callSelector","args","len","lastDependants","next","prev","val","SVG","xmlns","viewBox","Path","EDIT_MERGE_PROPERTIES","Set","SAVE_POST_NOTICE_ID","TRASH_POST_NOTICE_ID","PERMALINK_POSTNAME_REGEX","AUTOSAVE_PROPERTIES","fillRule","getTemplatePartIcon","iconName","headerIcon","footerIcon","sidebarIcon","symbolFilledIcon","EMPTY_OBJECT","EMPTY_ARRAY","hasEditorUndo","createRegistrySelector","select","coreStore","hasUndo","hasEditorRedo","hasRedo","isEditedPostNew","getCurrentPost","status","hasChangedContent","edits","getPostEdits","isEditedPostDirty","getCurrentPostType","getCurrentPostId","hasEditsForEntityRecord","hasNonPostEntityChanges","dirtyEntityRecords","__experimentalGetDirtyEntityRecords","some","entityRecord","kind","isCleanNewPost","getRawEntityRecord","getCurrentPostRevisionsCount","_links","count","getCurrentPostLastRevisionId","getEntityRecordEdits","getCurrentPostAttribute","attributeName","getEditedPostAttribute","getEditedPostContent","getNestedEditedPostProperty","getAutosaveAttribute","includes","currentUserId","getCurrentUser","autosave","getAutosave","getEditedPostVisibility","isCurrentPostPending","isCurrentPostPublished","currentPost","isInTheFuture","Date","Number","getDate","date","isCurrentPostScheduled","isEditedPostPublishable","isEditedPostSaveable","isSavingPost","isEditedPostEmpty","Platform","blocks","getEditorBlocks","blockName","getDefaultBlockName","getFreeformContentHandlerName","isEditedPostAutosaveable","isPostAutosavingLocked","hasFetchedAutosave","hasFetchedAutosaves","field","isEditedPostBeingScheduled","checkedDate","isEditedPostDateFloating","modified","isDeletingPost","isSavingEntityRecord","isSavingNonPostEntityChanges","entitiesBeingSaved","__experimentalGetEntitiesBeingSaved","didPostSaveRequestSucceed","getLastEntitySaveError","didPostSaveRequestFail","isAutosavingPost","Boolean","isAutosave","isPreviewingPost","isPreview","getEditedPostPreviewLink","previewLink","addQueryArgs","preview","featuredImageId","_thumbnail_id","getSuggestedPostFormat","provider","attributes","providerNameSlug","record","getEditedEntityRecord","content","__unstableSerializeAndClean","isPublishingPost","isPermalinkEditable","permalinkTemplate","test","getPermalink","permalinkParts","getPermalinkParts","prefix","postName","suffix","getEditedPostSlug","cleanForSlug","split","isPostLocked","isPostSavingLocked","isPostLockTakeover","isTakeover","getPostLockUser","user","getActivePostLock","activePostLock","canUserUseUnfilteredHTML","isPublishSidebarEnabled","preferencesStore","getEditorSelectionStart","deprecated","since","alternative","selectionStart","getEditorSelectionEnd","selectionEnd","getEditorSelection","__unstableIsEditorReady","getEditorSettings","getStateBeforeOptimisticTransaction","hint","inSomeHistory","getBlockEditorSelector","version","blockEditorStore","getBlockName","isBlockValid","getBlockAttributes","getBlock","getBlocks","getClientIdsOfDescendants","getClientIdsWithDescendants","getGlobalBlockCount","getBlocksByClientId","getBlockCount","getBlockSelectionStart","getBlockSelectionEnd","getSelectedBlockCount","hasSelectedBlock","getSelectedBlockClientId","getSelectedBlock","getBlockRootClientId","getBlockHierarchyRootClientId","getAdjacentBlockClientId","getPreviousBlockClientId","getNextBlockClientId","getSelectedBlocksInitialCaretPosition","getMultiSelectedBlockClientIds","getMultiSelectedBlocks","getFirstMultiSelectedBlockClientId","getLastMultiSelectedBlockClientId","isFirstMultiSelectedBlock","isBlockMultiSelected","isAncestorMultiSelected","getMultiSelectedBlocksStartClientId","getMultiSelectedBlocksEndClientId","getBlockOrder","getBlockIndex","isBlockSelected","hasSelectedInnerBlock","isBlockWithinSelection","hasMultiSelection","isMultiSelecting","isSelectionEnabled","getBlockMode","isTyping","isCaretWithinFormattedText","getBlockInsertionPoint","isBlockInsertionPointVisible","isValidTemplate","getTemplate","getTemplateLock","canInsertBlockType","getInserterItems","hasInserterItems","getBlockListSettings","__experimentalGetDefaultTemplateTypes","defaultTemplateTypes","__experimentalGetDefaultTemplatePartAreas","createSelector","areas","defaultTemplatePartAreas","item","icon","__experimentalGetDefaultTemplateType","slug","templateTypes","find","__experimentalGetTemplateInfo","description","title","area","defaultTitle","defaultDescription","templateTitle","rendered","layout","getPostTypeLabel","currentPostType","getPostType","labels","singular_name","postKey","isPostNew","localAutosaveSet","excerpt","sessionStorage","setItem","JSON","stringify","post_title","localAutosaveClear","removeItem","getNotificationArgumentsForSaveSuccess","data","previousPost","publishStatus","isPublished","willPublish","noticeMessage","isDraft","shouldShowLink","item_reverted_to_draft","publish","item_published","private","item_published_privately","future","item_scheduled","item_updated","actions","label","view_item","url","link","getNotificationArgumentsForSaveFail","error","code","messages","message","setupEditor","dispatch","setupEditorState","parse","synchronizeBlocksWithTemplate","resetEditorBlocks","__unstableShouldCreateUndoLevel","edit","editPost","__experimentalTearDownEditor","resetPost","updatePost","registry","editEntityRecord","savePost","undoIgnore","previousRecord","getEntityRecordNonTransientEdits","saveEntityRecord","noticesStore","createErrorNotice","updatedRecord","resolveSelect","createSuccessNotice","__unstableMarkLastChangeAsPersistent","refreshPost","trashPost","postTypeSlug","removeNotice","rest_base","restBase","rest_namespace","restNamespace","apiFetch","path","method","local","redo","undo","createUndoLevel","updatePostLock","enablePublishSidebar","disablePublishSidebar","lockPostSaving","unlockPostSaving","lockPostAutosaving","unlockPostAutosaving","selection","__unstableCreateUndoLevel","blocksForSerialization","updateEditorSettings","getBlockEditorAction","resetBlocks","receiveBlocks","updateBlock","updateBlockAttributes","selectBlock","startMultiSelect","stopMultiSelect","multiSelect","clearSelectedBlock","toggleSelection","replaceBlocks","replaceBlock","moveBlocksDown","moveBlocksUp","moveBlockToPosition","insertBlock","insertBlocks","showInsertionPoint","hideInsertionPoint","setTemplateValidity","synchronizeTemplate","mergeBlocks","removeBlocks","removeBlock","toggleBlockMode","startTyping","stopTyping","enterFormattedText","exitFormattedText","insertDefaultBlock","updateBlockListSettings","storeConfig","reducer","selectors","store","createReduxStore","shimAttributeSource","metaAttributes","mapValues","pickBy","isEmpty","createHigherOrderComponent","BlockEdit","setAttributes","useSelect","editorStore","meta","setMeta","useEntityProp","mergedAttributes","useMemo","metaKey","nextAttributes","nextMeta","fromEntries","entries","attributeKey","createWithMetaAttributeSource","getUserLabel","avatar","avatar_urls","className","alt","src","register","addFilter","globalSelect","blocksStore","getBlockTypes","getBlockType","triggerPrefix","useItems","filterValue","users","getUsers","context","search","encodeURIComponent","getOptionCompletion","completers","clone","userAutocompleter","AutosaveMonitor","super","needsAutosave","isDirty","isAutosaveable","disableIntervalChecks","setAutosaveTimer","prevProps","editsReference","interval","clearTimeout","timerId","isAutosaving","timeout","autosaveTimerHandler","compose","withSelect","ownProps","getReferenceByDistinctEdits","autosaveInterval","withDispatch","level","href","onSelect","classnames","toLowerCase","onClick","emptyHeadingContent","incorrectLevelContent","singleH1Headings","multipleH1Headings","computeOutlineHeadings","flatMap","block","isEmptyHeading","innerBlocks","heading","isTitleSupported","supports","hasOutlineItemsDisabled","headings","prevHeadingLevel","titleNode","querySelector","hasTitle","hasMultipleH1","reduce","acc","isDisabled","isIncorrectLevel","clientId","getTextContent","html","filter","resetBlocksOnSave","useDispatch","useShortcut","event","preventDefault","postEdits","TextEditorGlobalKeyboardShortcuts","registerShortcut","keyboardShortcutsStore","useEffect","category","keyCombination","modifier","character","aliases","isAppleOS","BlockEditorKeyboardShortcuts","shortcut","displayShortcut","Button","isRTL","undoIcon","redoIcon","resetTemplateValidity","Notice","isDismissible","confirm","notices","getNotices","onRemove","dismissibleNotices","nonDismissibleNotices","NoticeList","EditorSnackbars","snackbarNotices","SnackbarList","EntityRecordItem","checked","closePanel","parentBlockId","parents","getBlockParents","entityRecordTitle","isSelected","isSelectedText","selectParentBlock","useCallback","selectAndDismiss","PanelRow","CheckboxControl","decodeEntities","disabled","EntityTypeList","list","unselectedEntities","setUnselectedEntities","firstRecord","entityConfig","getEntityConfig","entityLabel","entity","getEntityDescription","PanelBody","initialOpen","property","elt","TRANSLATED_SITE_PROPERTIES","site_logo","site_icon","show_on_front","page_on_front","PUBLISH_ON_SAVE_ENTITIES","EntitiesSavedStates","close","saveButtonRef","useRef","dirtyRecordsWithoutSite","siteEdits","siteEditsAsEntities","saveEditedEntityRecord","__experimentalSaveSpecifiedEntityEdits","saveSpecifiedEntityEdits","partitionedSavables","groupBy","site","siteSavables","wp_template","templateSavables","wp_template_part","templatePartSavables","contentSavables","sortedPartitionedSavables","_setUnselectedEntities","useState","dismissPanel","saveDialogRef","saveDialogProps","useDialog","onClose","Flex","gap","FlexItem","isBlock","as","variant","entitiesToSave","siteItemsToSave","pendingSavedRecords","typeToPublish","Promise","all","then","catch","CopyButton","text","useCopyToClipboard","ErrorBoundary","reboot","getContent","componentDidCatch","doAction","onError","Warning","stack","requestIdleCallback","requestAnimationFrame","hasStorageSupport","uniqueId","ifCondition","deferredAutosave","hasRemoteAutosave","createWarningNotice","localAutosave","getItem","localAutosaveGet","noticeId","editsContent","editsWithoutContent","useAutosaveNotice","didError","lastIsDirty","lastIsAutosaving","wasEditedPostNew","usePrevious","prevPostId","useAutosavePurge","localAutosaveInterval","supportKeys","isSupported","castArray","PageAttributesOrder","onUpdateOrder","order","orderInput","setOrderInput","TextControl","newOrder","isInteger","trim","size","onBlur","menu_order","buildTermsTree","flatTerms","flatTermsWithParentAndChildren","term","parent","termsByParent","null","fillWithChildren","terms","unescapeString","lodashUnescapeString","unescapeTerm","getTitle","getItemPriority","searchValue","normalizedName","normalizedSearch","startsWith","Infinity","fieldValue","setFieldValue","parentPost","parentPostId","items","getEntityRecords","getEntityRecord","pageId","pType","isHierarchical","query","per_page","exclude","parent_exclude","orderby","_fields","parentPageLabel","pageItems","parentOptions","getOptionsFromTree","tree","mappedNodes","treeNode","repeat","rawName","sortedNodes","sort","flat","opts","optsHasParent","unshift","ComboboxControl","onFilterValueChange","debounce","inputValue","selectedPostId","availableTemplates","selectedTemplate","isViewable","viewable","SelectControl","templateSlug","templateName","AUTHORS_QUERY","who","authorId","isLoading","authors","postAuthor","getUser","isResolving","author","authorOptions","fetchedAuthors","findIndex","postAuthorId","allowReset","PostAuthorCheck","hasAssignAuthorAction","hasAuthors","commentStatus","comment_status","onUpdateExcerpt","TextareaControl","ExternalLink","getThemeSupports","themeSupports","supported","ALLOWED_MEDIA_TYPES","DEFAULT_FEATURE_IMAGE_LABEL","DEFAULT_SET_FEATURE_IMAGE_LABEL","DEFAULT_REMOVE_FEATURE_IMAGE_LABEL","instructions","applyWithSelect","getMedia","media","currentPostId","applyWithDispatch","noticeOperations","onUpdateImage","image","featured_media","onDropImage","filesList","getSettings","mediaUpload","allowedTypes","onFileChange","removeAllNotices","onRemoveImage","withNotices","withFilters","noticeUI","setIsLoading","postLabel","mediaWidth","mediaHeight","mediaSourceUrl","defaultSize","applyFilters","media_details","sizes","source_url","fallbackSize","getMediaDetails","onDropFiles","isBlobURL","alt_text","sprintf","full","file","MediaUploadCheck","fallback","MediaUpload","featured_image","unstableFeaturedImageFlow","modalClass","open","ResponsiveWrapper","naturalWidth","naturalHeight","isInline","Spinner","set_featured_image","DropZone","onFilesDrop","isDestructive","remove_featured_image","disablePostFormats","POST_FORMATS","caption","normalizedA","normalizedB","PostFormat","postFormatSelectorId","useInstanceId","postFormat","suggestedFormat","supportedFormats","_postFormat","formats","format","suggestion","onUpdatePostFormat","lastRevisionId","revisionsCount","revision","gutenberg","backup","_n","PostLockedModal","hookName","postLockUtils","releasePostLock","FormData","append","unlockNonce","navigator","sendBeacon","ajaxUrl","xhr","XMLHttpRequest","send","addAction","post_id","received","lock_error","avatar_src_2x","new_lock","removeAction","userDisplayName","userAvatar","unlockUrl","lockKey","_wpnonce","nonce","allPostsUrl","post_type","allPostsLabel","Modal","focusOnMount","shouldCloseOnClickOutside","shouldCloseOnEsc","createInterpolateElement","strong","PreviewLink","justify","expanded","hasPublishAction","onUpdateStatus","pingStatus","ping_status","PostPreviewButton","buttonRef","createRef","openPreviewWindow","setPreviewWindowLink","previewWindow","closed","focus","getWindowTarget","targetDocument","markup","renderToString","fill","write","writeInterstitialMessage","currentPostLink","isSaveable","role","textContent","_x","VisuallyHidden","forcePreviewLink","forceIsAutosaveable","forceIsSaving","isBeingScheduled","isSaving","isPublishing","noop","PostPublishButton","buttonNode","createOnClick","closeEntitiesSavedStates","entitiesSavedStatesCallback","callback","setEntitiesSavedStatesCallback","savedEntities","forceIsDirty","isOpen","isPublishable","isAutoSaving","isToggle","onSave","onStatusChange","onSubmit","onToggle","visibility","isButtonDisabled","isToggleDisabled","buttonProps","isBusy","toggleProps","toggleChildren","buttonChildren","componentProps","componentChildren","_isAutoSaving","visibilityOptions","public","info","password","PostVisibility","instanceId","hasPassword","setHasPassword","showPrivateConfirmDialog","setShowPrivateConfirmDialog","help","PostVisibilityChoice","htmlFor","placeholder","onConfirm","onCancel","PostVisibilityLabel","usePostVisibilityLabel","getDayOfTheMonth","firstDay","getFullYear","getMonth","toISOString","PostSchedule","postDate","previewedMonth","setPreviewedMonth","eventsByPostType","after","before","events","eventDate","is12HourTime","time","reverse","currentDate","is12Hour","onMonthPreviewed","PostScheduleLabel","usePostScheduleLabel","isFloating","getFullPostScheduleLabel","getPostScheduleLabel","dateAttribute","timezoneAbbreviation","timezone","abbr","offset","getTimezoneAbbreviation","formattedDate","dateI18n","now","isTimezoneSameAsSiteTimezone","isSameDay","tomorrow","setDate","getTimezoneOffset","left","right","DEFAULT_QUERY","hide_empty","MostUsedTerms","taxonomy","_terms","showTerms","mostUsedTerms","unescapeTerms","isSameTermName","termA","termB","termNamesToIds","names","termName","FlatTermSelector","setValues","setSearch","debouncedSearch","useDebounce","termIds","hasAssignAction","hasCreateAction","hasResolvedTerms","getTaxonomy","hasFinishedResolution","_taxonomy","_termIds","include","searchResults","newValues","suggestions","onUpdateTerms","newTermIds","newTermLabel","singularName","termAddedLabel","termRemovedLabel","removeTermLabel","FormTokenField","termNames","availableTerms","uniqueTerms","newTermNames","namespace","escapedTermName","escapeString","reject","resolve","term_id","findOrCreateTerm","newTerms","newAvailableTerms","concat","onInputChange","maxSuggestions","added","removed","newTerm","termAddedMessage","speak","TagsPanel","panelBodyTitle","MaybeTagsPanel","hadTagsWhenOpeningThePanel","hasTags","tagsTaxonomy","tags","areTagsFetched","isPostTypeSupported","types","getSuggestion","suggestedPostFormat","PostFormatSuggestion","suggestionText","PostFormatPanel","currentPostFormat","HierarchicalTermSelector","adding","setAdding","formName","setFormName","formParent","setFormParent","showForm","setShowForm","setFilterValue","filteredTermsTree","setFilteredTermsTree","debouncedSpeak","loading","availableTermsTree","termsTree","treeHasSelection","termTree","child","newTermTree","termASelected","termBSelected","sortBySelected","renderTerms","renderedTerms","termId","without","parseInt","labelWithFallback","labelProperty","fallbackIsCategory","fallbackIsNotCategory","newTermButtonLabel","parentSelectLabel","noParentOption","newTermSubmitLabel","filterLabel","groupLabel","showFilter","newFilteredTermsTree","matchTermsForFilter","originalTerm","getFilterMatcher","getResultCount","resultCount","resultsFoundMessage","tabIndex","existingTerm","findTerm","required","TreeSelect","noOptionLabel","parentId","selectedId","hasNoCategory","categoriesTaxonomy","defaultCategoryId","default_category","defaultCategory","postTypeSupportsCategories","categories","shouldShowPanel","setShouldShowPanel","isRequestingSiteIcon","siteIconUrl","siteTitle","siteHome","siteData","site_icon_url","home","filterURLForDisplay","prePublishTitle","prePublishBodyText","siteIcon","Icon","wordpress","POSTNAME","onCopy","PostPublishPanelPostpublish","showCopyConfirmation","onSelectInput","postLink","dismissCopyConfirmation","isScheduled","viewPostLabel","addNewPostLabel","permalink_template","getFuturePostUrl","addLink","postPublishNonLinkHeader","readOnly","safeDecodeURIComponent","onFocus","PostPublishPanel","isPostTypeViewable","onTogglePublishSidebar","PostPublishExtension","PrePublishExtension","additionalProps","propsForPanel","isPublishedOrScheduled","isPrePublish","isPostPublish","closeSmall","withFocusReturn","withConstrainedTabbing","cloneElement","isMobileViewport","useViewportMatch","showConfirmDialog","setShowConfirmDialog","alertMessage","PostSavedState","showIconLabels","forceSavedMessage","setForceSavedMessage","isLargeViewport","isNew","isPending","wasSaving","timeoutId","shortLabel","isSaved","isSavedState","getAnimateClassName","cloudUpload","check","cloud","PostSlugCheck","PostSlug","postSlug","postTitle","postID","editedSlug","setSlug","onUpdateSlug","autoComplete","spellCheck","hasStickyAction","postSticky","onUpdateSticky","sticky","identity","taxonomies","getTaxonomies","taxonomyWrapper","availableTaxonomies","show_ui","TaxonomyComponent","hierarchical","Fragment","PostTextEditor","postContent","setValue","setIsDirty","valueRef","dir","newValue","REGEXP_NEWLINES","_","forwardedRef","setIsSelected","hasFixedToolbar","_isCleanNewPost","titlePlaceholder","_hasFixedToolbar","onInsertBlockAfter","onUpdate","newTitle","useImperativeHandle","ownerDocument","activeElement","setSelection","onUnselect","decodedPlaceholder","richTextRef","useRichText","start","end","onSelectionChange","newStart","newEnd","sel","__unstableDisableFormats","preserveWhiteSpace","useMergeRefs","contentEditable","onKeyDown","keyCode","ENTER","onKeyPress","onPaste","clipboardData","plainText","getData","error1","error2","console","log","pasteHandler","HTML","firstBlock","slice","insert","toHTMLString","PostTrash","isDeleting","canUser","resource","canUserDelete","PostURL","isEditable","permalinkPrefix","permalinkSuffix","forceEmptyField","setForceEmptyField","PostURLCheck","PostURLLabel","usePostURLLabel","canEdit","WordCount","wordCountType","wordCount","TimeToRead","minutesToRead","minutesToReadString","span","CharacterCount","characterCount","onRequestClose","headingCount","paragraphCount","numberOfBlocks","repositionDropdown","hasBlocks","Dropdown","position","contentClassName","renderToggle","tooltipPosition","renderContent","UnsavedChangesWarning","warnIfUnsavedChanges","returnValue","WrappedComponent","withRegistry","useSubRegistry","subRegistry","setSubRegistry","newRegistry","createRegistry","blockEditorStoreConfig","registerStore","RegistryProvider","additionalData","maxUploadFileSize","wpAllowedMimeTypes","allowedMimeTypes","uploadMedia","withRegistryProvider","__unstableTemplate","recovery","initialEdits","defaultBlockContext","onInput","useEntityBlockEditor","hasTemplate","reusableBlocks","hasUploadPermissions","canUseUnfilteredHTML","userCanCreatePages","pageOnFront","isWeb","siteSettings","settingsBlockPatterns","__experimentalAdditionalBlockPatterns","__experimentalBlockPatterns","settingsBlockPatternCategories","__experimentalAdditionalBlockPatternCategories","__experimentalBlockPatternCategories","restBlockPatterns","restBlockPatternCategories","getBlockPatterns","getBlockPatternCategories","blockPatterns","y","postTypes","blockPatternCategories","createPageEntity","pick","__experimentalReusableBlocks","__experimentalFetchLinkSuggestions","searchOptions","fetchLinkSuggestions","__experimentalFetchRichUrlData","fetchUrlData","__experimentalCanUserUseUnfilteredHTML","__experimentalUndo","outlineMode","__experimentalCreatePageEntity","__experimentalUserCanCreatePages","__experimentalPreferPatternsOnRoot","useBlockEditorSettings","useLayoutEffect","editLink","EntityProvider","BlockContextProvider","BlockEditorProvider","ReusableBlocksMenuItems","deprecateComponent","Wrapped","staticsToHoist","staticName","deprecateFunction","RichText","RootRichText","Autocomplete","RootAutocomplete","AlignmentToolbar","RootAlignmentToolbar","BlockAlignmentToolbar","RootBlockAlignmentToolbar","BlockControls","RootBlockControls","RootBlockEdit","RootBlockEditorKeyboardShortcuts","BlockFormatControls","RootBlockFormatControls","BlockIcon","RootBlockIcon","BlockInspector","RootBlockInspector","BlockList","RootBlockList","BlockMover","RootBlockMover","BlockNavigationDropdown","RootBlockNavigationDropdown","BlockSelectionClearer","RootBlockSelectionClearer","BlockSettingsMenu","RootBlockSettingsMenu","BlockTitle","RootBlockTitle","BlockToolbar","RootBlockToolbar","ColorPalette","RootColorPalette","ContrastChecker","RootContrastChecker","CopyHandler","RootCopyHandler","DefaultBlockAppender","RootDefaultBlockAppender","FontSizePicker","RootFontSizePicker","Inserter","RootInserter","InnerBlocks","RootInnerBlocks","InspectorAdvancedControls","RootInspectorAdvancedControls","InspectorControls","RootInspectorControls","PanelColorSettings","RootPanelColorSettings","PlainText","RootPlainText","RichTextShortcut","RootRichTextShortcut","RichTextToolbarButton","RootRichTextToolbarButton","__unstableRichTextInputEvent","__unstableRootRichTextInputEvent","MediaPlaceholder","RootMediaPlaceholder","RootMediaUpload","RootMediaUploadCheck","MultiSelectScrollIntoView","RootMultiSelectScrollIntoView","NavigableToolbar","RootNavigableToolbar","ObserveTyping","RootObserveTyping","SkipToSelectedBlock","RootSkipToSelectedBlock","URLInput","RootURLInput","URLInputButton","RootURLInputButton","URLPopover","RootURLPopover","RootWarning","WritingFlow","RootWritingFlow","createCustomColorsHOC","rootCreateCustomColorsHOC","getColorClassName","rootGetColorClassName","getColorObjectByAttributeValues","rootGetColorObjectByAttributeValues","getColorObjectByColorValue","rootGetColorObjectByColorValue","getFontSize","rootGetFontSize","getFontSizeClass","rootGetFontSizeClass","withColorContext","rootWithColorContext","withColors","rootWithColors","withFontSizes","rootWithFontSizes","plugin","urlCleanForSlug"],"sourceRoot":""}

Zerion Mini Shell 1.0