@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
1,038 lines (1,036 loc) • 36.6 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// packages/editor/src/store/selectors.js
var selectors_exports = {};
__export(selectors_exports, {
__experimentalGetDefaultTemplatePartAreas: () => __experimentalGetDefaultTemplatePartAreas,
__experimentalGetDefaultTemplateType: () => __experimentalGetDefaultTemplateType,
__experimentalGetDefaultTemplateTypes: () => __experimentalGetDefaultTemplateTypes,
__experimentalGetTemplateInfo: () => __experimentalGetTemplateInfo,
__unstableIsEditorReady: () => __unstableIsEditorReady,
canInsertBlockType: () => canInsertBlockType,
canUserUseUnfilteredHTML: () => canUserUseUnfilteredHTML,
didPostSaveRequestFail: () => didPostSaveRequestFail,
didPostSaveRequestSucceed: () => didPostSaveRequestSucceed,
getActivePostLock: () => getActivePostLock,
getAdjacentBlockClientId: () => getAdjacentBlockClientId,
getAutosaveAttribute: () => getAutosaveAttribute,
getBlock: () => getBlock,
getBlockAttributes: () => getBlockAttributes,
getBlockCount: () => getBlockCount,
getBlockHierarchyRootClientId: () => getBlockHierarchyRootClientId,
getBlockIndex: () => getBlockIndex,
getBlockInsertionPoint: () => getBlockInsertionPoint,
getBlockListSettings: () => getBlockListSettings,
getBlockMode: () => getBlockMode,
getBlockName: () => getBlockName,
getBlockOrder: () => getBlockOrder,
getBlockRootClientId: () => getBlockRootClientId,
getBlockSelectionEnd: () => getBlockSelectionEnd,
getBlockSelectionStart: () => getBlockSelectionStart,
getBlocks: () => getBlocks,
getBlocksByClientId: () => getBlocksByClientId,
getClientIdsOfDescendants: () => getClientIdsOfDescendants,
getClientIdsWithDescendants: () => getClientIdsWithDescendants,
getCurrentPost: () => getCurrentPost,
getCurrentPostAttribute: () => getCurrentPostAttribute,
getCurrentPostId: () => getCurrentPostId,
getCurrentPostLastRevisionId: () => getCurrentPostLastRevisionId,
getCurrentPostRevisionsCount: () => getCurrentPostRevisionsCount,
getCurrentPostType: () => getCurrentPostType,
getCurrentTemplateId: () => getCurrentTemplateId,
getDeviceType: () => getDeviceType,
getEditedPostAttribute: () => getEditedPostAttribute,
getEditedPostContent: () => getEditedPostContent,
getEditedPostPreviewLink: () => getEditedPostPreviewLink,
getEditedPostSlug: () => getEditedPostSlug,
getEditedPostVisibility: () => getEditedPostVisibility,
getEditorBlocks: () => getEditorBlocks,
getEditorMode: () => getEditorMode,
getEditorSelection: () => getEditorSelection,
getEditorSelectionEnd: () => getEditorSelectionEnd,
getEditorSelectionStart: () => getEditorSelectionStart,
getEditorSettings: () => getEditorSettings,
getFirstMultiSelectedBlockClientId: () => getFirstMultiSelectedBlockClientId,
getGlobalBlockCount: () => getGlobalBlockCount,
getInserterItems: () => getInserterItems,
getLastMultiSelectedBlockClientId: () => getLastMultiSelectedBlockClientId,
getMultiSelectedBlockClientIds: () => getMultiSelectedBlockClientIds,
getMultiSelectedBlocks: () => getMultiSelectedBlocks,
getMultiSelectedBlocksEndClientId: () => getMultiSelectedBlocksEndClientId,
getMultiSelectedBlocksStartClientId: () => getMultiSelectedBlocksStartClientId,
getNextBlockClientId: () => getNextBlockClientId,
getPermalink: () => getPermalink,
getPermalinkParts: () => getPermalinkParts,
getPostEdits: () => getPostEdits,
getPostLockUser: () => getPostLockUser,
getPostTypeLabel: () => getPostTypeLabel,
getPreviousBlockClientId: () => getPreviousBlockClientId,
getRenderingMode: () => getRenderingMode,
getSelectedBlock: () => getSelectedBlock,
getSelectedBlockClientId: () => getSelectedBlockClientId,
getSelectedBlockCount: () => getSelectedBlockCount,
getSelectedBlocksInitialCaretPosition: () => getSelectedBlocksInitialCaretPosition,
getStateBeforeOptimisticTransaction: () => getStateBeforeOptimisticTransaction,
getSuggestedPostFormat: () => getSuggestedPostFormat,
getTemplate: () => getTemplate,
getTemplateLock: () => getTemplateLock,
hasChangedContent: () => hasChangedContent,
hasEditorRedo: () => hasEditorRedo,
hasEditorUndo: () => hasEditorUndo,
hasInserterItems: () => hasInserterItems,
hasMultiSelection: () => hasMultiSelection,
hasNonPostEntityChanges: () => hasNonPostEntityChanges,
hasSelectedBlock: () => hasSelectedBlock,
hasSelectedInnerBlock: () => hasSelectedInnerBlock,
inSomeHistory: () => inSomeHistory,
isAncestorMultiSelected: () => isAncestorMultiSelected,
isAutosavingPost: () => isAutosavingPost,
isBlockInsertionPointVisible: () => isBlockInsertionPointVisible,
isBlockMultiSelected: () => isBlockMultiSelected,
isBlockSelected: () => isBlockSelected,
isBlockValid: () => isBlockValid,
isBlockWithinSelection: () => isBlockWithinSelection,
isCaretWithinFormattedText: () => isCaretWithinFormattedText,
isCleanNewPost: () => isCleanNewPost,
isCollaborationEnabledForCurrentPost: () => isCollaborationEnabledForCurrentPost,
isCurrentPostPending: () => isCurrentPostPending,
isCurrentPostPublished: () => isCurrentPostPublished,
isCurrentPostScheduled: () => isCurrentPostScheduled,
isDeletingPost: () => isDeletingPost,
isEditedPostAutosaveable: () => isEditedPostAutosaveable,
isEditedPostBeingScheduled: () => isEditedPostBeingScheduled,
isEditedPostDateFloating: () => isEditedPostDateFloating,
isEditedPostDirty: () => isEditedPostDirty,
isEditedPostEmpty: () => isEditedPostEmpty,
isEditedPostNew: () => isEditedPostNew,
isEditedPostPublishable: () => isEditedPostPublishable,
isEditedPostSaveable: () => isEditedPostSaveable,
isEditorPanelEnabled: () => isEditorPanelEnabled,
isEditorPanelOpened: () => isEditorPanelOpened,
isEditorPanelRemoved: () => isEditorPanelRemoved,
isFirstMultiSelectedBlock: () => isFirstMultiSelectedBlock,
isInserterOpened: () => isInserterOpened,
isListViewOpened: () => isListViewOpened,
isMultiSelecting: () => isMultiSelecting,
isPermalinkEditable: () => isPermalinkEditable,
isPostAutosavingLocked: () => isPostAutosavingLocked,
isPostLockTakeover: () => isPostLockTakeover,
isPostLocked: () => isPostLocked,
isPostSavingLocked: () => isPostSavingLocked,
isPreviewingPost: () => isPreviewingPost,
isPublishSidebarEnabled: () => isPublishSidebarEnabled,
isPublishSidebarOpened: () => isPublishSidebarOpened,
isPublishingPost: () => isPublishingPost,
isSavingNonPostEntityChanges: () => isSavingNonPostEntityChanges,
isSavingPost: () => isSavingPost,
isSelectionEnabled: () => isSelectionEnabled,
isTyping: () => isTyping,
isValidTemplate: () => isValidTemplate
});
module.exports = __toCommonJS(selectors_exports);
var import_blocks = require("@wordpress/blocks");
var import_date = require("@wordpress/date");
var import_url = require("@wordpress/url");
var import_data = require("@wordpress/data");
var import_deprecated = __toESM(require("@wordpress/deprecated"));
var import_element = require("@wordpress/element");
var import_block_editor = require("@wordpress/block-editor");
var import_core_data = require("@wordpress/core-data");
var import_preferences = require("@wordpress/preferences");
var import_constants = require("./constants.cjs");
var import_reducer = require("./reducer.cjs");
var import_get_template_part_icon = require("../utils/get-template-part-icon.cjs");
var import_lock_unlock = require("../lock-unlock.cjs");
var import_get_template_info = require("../utils/get-template-info.cjs");
var EMPTY_OBJECT = {};
var hasEditorUndo = (0, import_data.createRegistrySelector)((select) => () => {
return select(import_core_data.store).hasUndo();
});
var hasEditorRedo = (0, import_data.createRegistrySelector)((select) => () => {
return select(import_core_data.store).hasRedo();
});
function isEditedPostNew(state) {
return getCurrentPost(state).status === "auto-draft";
}
function hasChangedContent(state) {
const edits = getPostEdits(state);
return "content" in edits;
}
var isEditedPostDirty = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const postType = getCurrentPostType(state);
const postId = getCurrentPostId(state);
return select(import_core_data.store).hasEditsForEntityRecord(
"postType",
postType,
postId
);
}
);
var hasNonPostEntityChanges = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const dirtyEntityRecords = select(import_core_data.store).__experimentalGetDirtyEntityRecords();
const { type, id } = getCurrentPost(state);
return dirtyEntityRecords.some(
(entityRecord) => entityRecord.kind !== "postType" || entityRecord.name !== type || entityRecord.key !== id
);
}
);
function isCleanNewPost(state) {
return !isEditedPostDirty(state) && isEditedPostNew(state);
}
var getCurrentPost = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const postId = getCurrentPostId(state);
const postType = getCurrentPostType(state);
const post = select(import_core_data.store).getRawEntityRecord(
"postType",
postType,
postId
);
if (post) {
return post;
}
return EMPTY_OBJECT;
}
);
function getCurrentPostType(state) {
return state.postType;
}
function getCurrentPostId(state) {
return state.postId;
}
function getCurrentTemplateId(state) {
return state.templateId;
}
function getCurrentPostRevisionsCount(state) {
return getCurrentPost(state)._links?.["version-history"]?.[0]?.count ?? 0;
}
function getCurrentPostLastRevisionId(state) {
return getCurrentPost(state)._links?.["predecessor-version"]?.[0]?.id ?? null;
}
var getPostEdits = (0, import_data.createRegistrySelector)((select) => (state) => {
const postType = getCurrentPostType(state);
const postId = getCurrentPostId(state);
return select(import_core_data.store).getEntityRecordEdits(
"postType",
postType,
postId
) || EMPTY_OBJECT;
});
function getCurrentPostAttribute(state, attributeName) {
switch (attributeName) {
case "type":
return getCurrentPostType(state);
case "id":
return getCurrentPostId(state);
default:
const post = getCurrentPost(state);
if (!post.hasOwnProperty(attributeName)) {
break;
}
return (0, import_reducer.getPostRawValue)(post[attributeName]);
}
}
var getNestedEditedPostProperty = (0, import_data.createSelector)(
(state, attributeName) => {
const edits = getPostEdits(state);
if (!edits.hasOwnProperty(attributeName)) {
return getCurrentPostAttribute(state, attributeName);
}
return {
...getCurrentPostAttribute(state, attributeName),
...edits[attributeName]
};
},
(state, attributeName) => [
getCurrentPostAttribute(state, attributeName),
getPostEdits(state)[attributeName]
]
);
function getEditedPostAttribute(state, attributeName) {
switch (attributeName) {
case "content":
return getEditedPostContent(state);
}
const edits = getPostEdits(state);
if (!edits.hasOwnProperty(attributeName)) {
return getCurrentPostAttribute(state, attributeName);
}
if (import_constants.EDIT_MERGE_PROPERTIES.has(attributeName)) {
return getNestedEditedPostProperty(state, attributeName);
}
return edits[attributeName];
}
var getAutosaveAttribute = (0, import_data.createRegistrySelector)(
(select) => (state, attributeName) => {
if (!import_constants.AUTOSAVE_PROPERTIES.includes(attributeName) && attributeName !== "preview_link") {
return;
}
const postType = getCurrentPostType(state);
const postId = getCurrentPostId(state);
const currentUserId = select(import_core_data.store).getCurrentUser()?.id;
const autosave = select(import_core_data.store).getAutosave(
postType,
postId,
currentUserId
);
if (autosave) {
return (0, import_reducer.getPostRawValue)(autosave[attributeName]);
}
}
);
function getEditedPostVisibility(state) {
const status = getEditedPostAttribute(state, "status");
if (status === "private") {
return "private";
}
const password = getEditedPostAttribute(state, "password");
if (password) {
return "password";
}
return "public";
}
function isCurrentPostPending(state) {
return getCurrentPost(state).status === "pending";
}
function isCurrentPostPublished(state, currentPost) {
const post = currentPost || getCurrentPost(state);
return ["publish", "private"].indexOf(post.status) !== -1 || post.status === "future" && !(0, import_date.isInTheFuture)(
new Date(Number((0, import_date.getDate)(post.date)) - import_constants.ONE_MINUTE_IN_MS)
);
}
function isCurrentPostScheduled(state) {
return getCurrentPost(state).status === "future" && !isCurrentPostPublished(state);
}
function isEditedPostPublishable(state) {
const post = getCurrentPost(state);
if (post.type === import_constants.ATTACHMENT_POST_TYPE) {
return isEditedPostDirty(state);
}
return isEditedPostDirty(state) || ["publish", "private", "future"].indexOf(post.status) === -1;
}
function isEditedPostSaveable(state) {
if (isSavingPost(state)) {
return false;
}
return !!getEditedPostAttribute(state, "title") || !!getEditedPostAttribute(state, "excerpt") || !isEditedPostEmpty(state) || import_element.Platform.OS === "native";
}
var isEditedPostEmpty = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const postId = getCurrentPostId(state);
const postType = getCurrentPostType(state);
const record = select(import_core_data.store).getEditedEntityRecord(
"postType",
postType,
postId
);
if (typeof record.content !== "function") {
return !record.content;
}
const blocks = getEditedPostAttribute(state, "blocks");
if (blocks.length === 0) {
return true;
}
if (blocks.length > 1) {
return false;
}
const blockName = blocks[0].name;
if (blockName !== (0, import_blocks.getDefaultBlockName)() && blockName !== (0, import_blocks.getFreeformContentHandlerName)()) {
return false;
}
return !getEditedPostContent(state);
}
);
var isEditedPostAutosaveable = (0, import_data.createRegistrySelector)(
(select) => (state) => {
if (!isEditedPostSaveable(state)) {
return false;
}
if (isPostAutosavingLocked(state)) {
return false;
}
const postType = getCurrentPostType(state);
const postTypeObject = select(import_core_data.store).getPostType(postType);
if (!postTypeObject?.supports?.autosave) {
return false;
}
const postId = getCurrentPostId(state);
const hasFetchedAutosave = select(import_core_data.store).hasFetchedAutosaves(
postType,
postId
);
const currentUserId = select(import_core_data.store).getCurrentUser()?.id;
const autosave = select(import_core_data.store).getAutosave(
postType,
postId,
currentUserId
);
if (!hasFetchedAutosave) {
return false;
}
if (!autosave) {
return true;
}
if (hasChangedContent(state)) {
return true;
}
return ["title", "excerpt", "meta"].some(
(field) => (0, import_reducer.getPostRawValue)(autosave[field]) !== getEditedPostAttribute(state, field)
);
}
);
function isEditedPostBeingScheduled(state) {
const date = getEditedPostAttribute(state, "date");
const checkedDate = new Date(
Number((0, import_date.getDate)(date)) - import_constants.ONE_MINUTE_IN_MS
);
return (0, import_date.isInTheFuture)(checkedDate);
}
function isEditedPostDateFloating(state) {
const date = getEditedPostAttribute(state, "date");
const modified = getEditedPostAttribute(state, "modified");
const status = getCurrentPost(state).status;
if (status === "draft" || status === "auto-draft" || status === "pending") {
return date === modified || date === null;
}
return false;
}
function isDeletingPost(state) {
return !!state.deleting.pending;
}
function isSavingPost(state) {
return !!state.saving.pending;
}
var isSavingNonPostEntityChanges = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const entitiesBeingSaved = select(import_core_data.store).__experimentalGetEntitiesBeingSaved();
const { type, id } = getCurrentPost(state);
return entitiesBeingSaved.some(
(entityRecord) => entityRecord.kind !== "postType" || entityRecord.name !== type || entityRecord.key !== id
);
}
);
var didPostSaveRequestSucceed = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const postType = getCurrentPostType(state);
const postId = getCurrentPostId(state);
return !select(import_core_data.store).getLastEntitySaveError(
"postType",
postType,
postId
);
}
);
var didPostSaveRequestFail = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const postType = getCurrentPostType(state);
const postId = getCurrentPostId(state);
return !!select(import_core_data.store).getLastEntitySaveError(
"postType",
postType,
postId
);
}
);
function isAutosavingPost(state) {
return isSavingPost(state) && Boolean(state.saving.options?.isAutosave);
}
function isPreviewingPost(state) {
return isSavingPost(state) && Boolean(state.saving.options?.isPreview);
}
function getEditedPostPreviewLink(state) {
if (state.saving.pending || isSavingPost(state)) {
return;
}
let previewLink = getAutosaveAttribute(state, "preview_link");
if (!previewLink || "draft" === getCurrentPost(state).status) {
previewLink = getEditedPostAttribute(state, "link");
if (previewLink) {
previewLink = (0, import_url.addQueryArgs)(previewLink, { preview: true });
}
}
const featuredImageId = getEditedPostAttribute(state, "featured_media");
if (previewLink && featuredImageId) {
return (0, import_url.addQueryArgs)(previewLink, { _thumbnail_id: featuredImageId });
}
return previewLink;
}
var getSuggestedPostFormat = (0, import_data.createRegistrySelector)(
(select) => () => {
const blocks = select(import_block_editor.store).getBlocks();
if (blocks.length > 2) {
return null;
}
let name;
if (blocks.length === 1) {
name = blocks[0].name;
if (name === "core/embed") {
const provider = blocks[0].attributes?.providerNameSlug;
if (["youtube", "vimeo"].includes(provider)) {
name = "core/video";
} else if (["spotify", "soundcloud"].includes(provider)) {
name = "core/audio";
}
}
}
if (blocks.length === 2 && blocks[1].name === "core/paragraph") {
name = blocks[0].name;
}
switch (name) {
case "core/image":
return "image";
case "core/quote":
case "core/pullquote":
return "quote";
case "core/gallery":
return "gallery";
case "core/video":
return "video";
case "core/audio":
return "audio";
default:
return null;
}
}
);
var getEditedPostContent = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const postId = getCurrentPostId(state);
const postType = getCurrentPostType(state);
const record = select(import_core_data.store).getEditedEntityRecord(
"postType",
postType,
postId
);
if (record) {
if (typeof record.content === "function") {
return record.content(record);
} else if (record.blocks) {
return (0, import_blocks.__unstableSerializeAndClean)(record.blocks);
} else if (record.content) {
return record.content;
}
}
return "";
}
);
function isPublishingPost(state) {
return isSavingPost(state) && !isCurrentPostPublished(state) && getEditedPostAttribute(state, "status") === "publish";
}
function isPermalinkEditable(state) {
const permalinkTemplate = getEditedPostAttribute(
state,
"permalink_template"
);
return import_constants.PERMALINK_POSTNAME_REGEX.test(permalinkTemplate);
}
function getPermalink(state) {
const permalinkParts = getPermalinkParts(state);
if (!permalinkParts) {
return null;
}
const { prefix, postName, suffix } = permalinkParts;
if (isPermalinkEditable(state)) {
return prefix + postName + suffix;
}
return prefix;
}
function getEditedPostSlug(state) {
return getEditedPostAttribute(state, "slug") || (0, import_url.cleanForSlug)(getEditedPostAttribute(state, "title")) || getCurrentPostId(state);
}
function getPermalinkParts(state) {
const permalinkTemplate = getEditedPostAttribute(
state,
"permalink_template"
);
if (!permalinkTemplate) {
return null;
}
const postName = getEditedPostAttribute(state, "slug") || getEditedPostAttribute(state, "generated_slug");
const [prefix, suffix] = permalinkTemplate.split(
import_constants.PERMALINK_POSTNAME_REGEX
);
return {
prefix,
postName,
suffix
};
}
function isPostLocked(state) {
return state.postLock.isLocked;
}
function isPostSavingLocked(state) {
return Object.keys(state.postSavingLock).length > 0;
}
function isPostAutosavingLocked(state) {
return Object.keys(state.postAutosavingLock).length > 0;
}
function isPostLockTakeover(state) {
return state.postLock.isTakeover;
}
function getPostLockUser(state) {
return state.postLock.user;
}
function getActivePostLock(state) {
return state.postLock.activePostLock;
}
function canUserUseUnfilteredHTML(state) {
return Boolean(
getCurrentPost(state)._links?.hasOwnProperty(
"wp:action-unfiltered-html"
)
);
}
var isPublishSidebarEnabled = (0, import_data.createRegistrySelector)(
(select) => () => !!select(import_preferences.store).get("core", "isPublishSidebarEnabled")
);
var getEditorBlocks = (0, import_data.createSelector)(
(state) => {
return getEditedPostAttribute(state, "blocks") || (0, import_blocks.parse)(getEditedPostContent(state));
},
(state) => [
getEditedPostAttribute(state, "blocks"),
getEditedPostContent(state)
]
);
function isEditorPanelRemoved(state, panelName) {
return state.removedPanels.includes(panelName);
}
var isEditorPanelEnabled = (0, import_data.createRegistrySelector)(
(select) => (state, panelName) => {
const inactivePanels = select(import_preferences.store).get(
"core",
"inactivePanels"
);
return !isEditorPanelRemoved(state, panelName) && !inactivePanels?.includes(panelName);
}
);
var isEditorPanelOpened = (0, import_data.createRegistrySelector)(
(select) => (state, panelName) => {
const openPanels = select(import_preferences.store).get(
"core",
"openPanels"
);
return !!openPanels?.includes(panelName);
}
);
function getEditorSelectionStart(state) {
(0, import_deprecated.default)("select('core/editor').getEditorSelectionStart", {
since: "5.8",
alternative: "select('core/editor').getEditorSelection"
});
return getEditedPostAttribute(state, "selection")?.selectionStart;
}
function getEditorSelectionEnd(state) {
(0, import_deprecated.default)("select('core/editor').getEditorSelectionStart", {
since: "5.8",
alternative: "select('core/editor').getEditorSelection"
});
return getEditedPostAttribute(state, "selection")?.selectionEnd;
}
function getEditorSelection(state) {
return getEditedPostAttribute(state, "selection");
}
function __unstableIsEditorReady(state) {
return !!state.postId;
}
function getEditorSettings(state) {
return state.editorSettings;
}
function getRenderingMode(state) {
return state.renderingMode;
}
var getDeviceType = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const isZoomOut = (0, import_lock_unlock.unlock)(select(import_block_editor.store)).isZoomOut();
if (isZoomOut) {
return "Desktop";
}
return state.deviceType;
}
);
function isListViewOpened(state) {
return state.listViewPanel;
}
function isInserterOpened(state) {
return !!state.blockInserterPanel;
}
var getEditorMode = (0, import_data.createRegistrySelector)(
(select) => () => select(import_preferences.store).get("core", "editorMode") ?? "visual"
);
function getStateBeforeOptimisticTransaction() {
(0, import_deprecated.default)("select('core/editor').getStateBeforeOptimisticTransaction", {
since: "5.7",
hint: "No state history is kept on this store anymore"
});
return null;
}
function inSomeHistory() {
(0, import_deprecated.default)("select('core/editor').inSomeHistory", {
since: "5.7",
hint: "No state history is kept on this store anymore"
});
return false;
}
function getBlockEditorSelector(name) {
return (0, import_data.createRegistrySelector)((select) => (state, ...args) => {
(0, import_deprecated.default)("`wp.data.select( 'core/editor' )." + name + "`", {
since: "5.3",
alternative: "`wp.data.select( 'core/block-editor' )." + name + "`",
version: "6.2"
});
return select(import_block_editor.store)[name](...args);
});
}
var getBlockName = getBlockEditorSelector("getBlockName");
var isBlockValid = getBlockEditorSelector("isBlockValid");
var getBlockAttributes = getBlockEditorSelector("getBlockAttributes");
var getBlock = getBlockEditorSelector("getBlock");
var getBlocks = getBlockEditorSelector("getBlocks");
var getClientIdsOfDescendants = getBlockEditorSelector(
"getClientIdsOfDescendants"
);
var getClientIdsWithDescendants = getBlockEditorSelector(
"getClientIdsWithDescendants"
);
var getGlobalBlockCount = getBlockEditorSelector(
"getGlobalBlockCount"
);
var getBlocksByClientId = getBlockEditorSelector(
"getBlocksByClientId"
);
var getBlockCount = getBlockEditorSelector("getBlockCount");
var getBlockSelectionStart = getBlockEditorSelector(
"getBlockSelectionStart"
);
var getBlockSelectionEnd = getBlockEditorSelector(
"getBlockSelectionEnd"
);
var getSelectedBlockCount = getBlockEditorSelector(
"getSelectedBlockCount"
);
var hasSelectedBlock = getBlockEditorSelector("hasSelectedBlock");
var getSelectedBlockClientId = getBlockEditorSelector(
"getSelectedBlockClientId"
);
var getSelectedBlock = getBlockEditorSelector("getSelectedBlock");
var getBlockRootClientId = getBlockEditorSelector(
"getBlockRootClientId"
);
var getBlockHierarchyRootClientId = getBlockEditorSelector(
"getBlockHierarchyRootClientId"
);
var getAdjacentBlockClientId = getBlockEditorSelector(
"getAdjacentBlockClientId"
);
var getPreviousBlockClientId = getBlockEditorSelector(
"getPreviousBlockClientId"
);
var getNextBlockClientId = getBlockEditorSelector(
"getNextBlockClientId"
);
var getSelectedBlocksInitialCaretPosition = getBlockEditorSelector(
"getSelectedBlocksInitialCaretPosition"
);
var getMultiSelectedBlockClientIds = getBlockEditorSelector(
"getMultiSelectedBlockClientIds"
);
var getMultiSelectedBlocks = getBlockEditorSelector(
"getMultiSelectedBlocks"
);
var getFirstMultiSelectedBlockClientId = getBlockEditorSelector(
"getFirstMultiSelectedBlockClientId"
);
var getLastMultiSelectedBlockClientId = getBlockEditorSelector(
"getLastMultiSelectedBlockClientId"
);
var isFirstMultiSelectedBlock = getBlockEditorSelector(
"isFirstMultiSelectedBlock"
);
var isBlockMultiSelected = getBlockEditorSelector(
"isBlockMultiSelected"
);
var isAncestorMultiSelected = getBlockEditorSelector(
"isAncestorMultiSelected"
);
var getMultiSelectedBlocksStartClientId = getBlockEditorSelector(
"getMultiSelectedBlocksStartClientId"
);
var getMultiSelectedBlocksEndClientId = getBlockEditorSelector(
"getMultiSelectedBlocksEndClientId"
);
var getBlockOrder = getBlockEditorSelector("getBlockOrder");
var getBlockIndex = getBlockEditorSelector("getBlockIndex");
var isBlockSelected = getBlockEditorSelector("isBlockSelected");
var hasSelectedInnerBlock = getBlockEditorSelector(
"hasSelectedInnerBlock"
);
var isBlockWithinSelection = getBlockEditorSelector(
"isBlockWithinSelection"
);
var hasMultiSelection = getBlockEditorSelector("hasMultiSelection");
var isMultiSelecting = getBlockEditorSelector("isMultiSelecting");
var isSelectionEnabled = getBlockEditorSelector("isSelectionEnabled");
var getBlockMode = getBlockEditorSelector("getBlockMode");
var isTyping = getBlockEditorSelector("isTyping");
var isCaretWithinFormattedText = getBlockEditorSelector(
"isCaretWithinFormattedText"
);
var getBlockInsertionPoint = getBlockEditorSelector(
"getBlockInsertionPoint"
);
var isBlockInsertionPointVisible = getBlockEditorSelector(
"isBlockInsertionPointVisible"
);
var isValidTemplate = getBlockEditorSelector("isValidTemplate");
var getTemplate = getBlockEditorSelector("getTemplate");
var getTemplateLock = getBlockEditorSelector("getTemplateLock");
var canInsertBlockType = getBlockEditorSelector("canInsertBlockType");
var getInserterItems = getBlockEditorSelector("getInserterItems");
var hasInserterItems = getBlockEditorSelector("hasInserterItems");
var getBlockListSettings = getBlockEditorSelector(
"getBlockListSettings"
);
var __experimentalGetDefaultTemplateTypes = (0, import_data.createRegistrySelector)(
(select) => () => {
(0, import_deprecated.default)(
"select('core/editor').__experimentalGetDefaultTemplateTypes",
{
since: "6.8",
alternative: "select('core/core-data').getCurrentTheme()?.default_template_types"
}
);
return select(import_core_data.store).getCurrentTheme()?.default_template_types;
}
);
var __experimentalGetDefaultTemplatePartAreas = (0, import_data.createRegistrySelector)(
(select) => (0, import_data.createSelector)(() => {
(0, import_deprecated.default)(
"select('core/editor').__experimentalGetDefaultTemplatePartAreas",
{
since: "6.8",
alternative: "select('core/core-data').getCurrentTheme()?.default_template_part_areas"
}
);
const areas = select(import_core_data.store).getCurrentTheme()?.default_template_part_areas || [];
return areas.map((item) => {
return { ...item, icon: (0, import_get_template_part_icon.getTemplatePartIcon)(item.icon) };
});
})
);
var __experimentalGetDefaultTemplateType = (0, import_data.createRegistrySelector)(
(select) => (0, import_data.createSelector)((state, slug) => {
(0, import_deprecated.default)(
"select('core/editor').__experimentalGetDefaultTemplateType",
{
since: "6.8"
}
);
const templateTypes = select(import_core_data.store).getCurrentTheme()?.default_template_types;
if (!templateTypes) {
return EMPTY_OBJECT;
}
return Object.values(templateTypes).find(
(type) => type.slug === slug
) ?? EMPTY_OBJECT;
})
);
var __experimentalGetTemplateInfo = (0, import_data.createRegistrySelector)(
(select) => (0, import_data.createSelector)((state, template) => {
(0, import_deprecated.default)("select('core/editor').__experimentalGetTemplateInfo", {
since: "6.8"
});
if (!template) {
return EMPTY_OBJECT;
}
const currentTheme = select(import_core_data.store).getCurrentTheme();
const templateTypes = currentTheme?.default_template_types || [];
const templateAreas = currentTheme?.default_template_part_areas || [];
return (0, import_get_template_info.getTemplateInfo)({
template,
templateAreas,
templateTypes
});
})
);
var getPostTypeLabel = (0, import_data.createRegistrySelector)(
(select) => (state) => {
const currentPostType = getCurrentPostType(state);
const postType = select(import_core_data.store).getPostType(currentPostType);
return postType?.labels?.singular_name;
}
);
function isPublishSidebarOpened(state) {
return state.publishSidebarActive;
}
var isCollaborationEnabledForCurrentPost = (0, import_data.createRegistrySelector)(
(select) => (state) => {
if (!(0, import_lock_unlock.unlock)(select(import_core_data.store)).isCollaborationSupported()) {
return false;
}
const currentPostType = getCurrentPostType(state);
const entityConfig = select(import_core_data.store).getEntityConfig(
"postType",
currentPostType
);
return Boolean(
entityConfig?.syncConfig && window._wpCollaborationEnabled
);
}
);
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
__experimentalGetDefaultTemplatePartAreas,
__experimentalGetDefaultTemplateType,
__experimentalGetDefaultTemplateTypes,
__experimentalGetTemplateInfo,
__unstableIsEditorReady,
canInsertBlockType,
canUserUseUnfilteredHTML,
didPostSaveRequestFail,
didPostSaveRequestSucceed,
getActivePostLock,
getAdjacentBlockClientId,
getAutosaveAttribute,
getBlock,
getBlockAttributes,
getBlockCount,
getBlockHierarchyRootClientId,
getBlockIndex,
getBlockInsertionPoint,
getBlockListSettings,
getBlockMode,
getBlockName,
getBlockOrder,
getBlockRootClientId,
getBlockSelectionEnd,
getBlockSelectionStart,
getBlocks,
getBlocksByClientId,
getClientIdsOfDescendants,
getClientIdsWithDescendants,
getCurrentPost,
getCurrentPostAttribute,
getCurrentPostId,
getCurrentPostLastRevisionId,
getCurrentPostRevisionsCount,
getCurrentPostType,
getCurrentTemplateId,
getDeviceType,
getEditedPostAttribute,
getEditedPostContent,
getEditedPostPreviewLink,
getEditedPostSlug,
getEditedPostVisibility,
getEditorBlocks,
getEditorMode,
getEditorSelection,
getEditorSelectionEnd,
getEditorSelectionStart,
getEditorSettings,
getFirstMultiSelectedBlockClientId,
getGlobalBlockCount,
getInserterItems,
getLastMultiSelectedBlockClientId,
getMultiSelectedBlockClientIds,
getMultiSelectedBlocks,
getMultiSelectedBlocksEndClientId,
getMultiSelectedBlocksStartClientId,
getNextBlockClientId,
getPermalink,
getPermalinkParts,
getPostEdits,
getPostLockUser,
getPostTypeLabel,
getPreviousBlockClientId,
getRenderingMode,
getSelectedBlock,
getSelectedBlockClientId,
getSelectedBlockCount,
getSelectedBlocksInitialCaretPosition,
getStateBeforeOptimisticTransaction,
getSuggestedPostFormat,
getTemplate,
getTemplateLock,
hasChangedContent,
hasEditorRedo,
hasEditorUndo,
hasInserterItems,
hasMultiSelection,
hasNonPostEntityChanges,
hasSelectedBlock,
hasSelectedInnerBlock,
inSomeHistory,
isAncestorMultiSelected,
isAutosavingPost,
isBlockInsertionPointVisible,
isBlockMultiSelected,
isBlockSelected,
isBlockValid,
isBlockWithinSelection,
isCaretWithinFormattedText,
isCleanNewPost,
isCollaborationEnabledForCurrentPost,
isCurrentPostPending,
isCurrentPostPublished,
isCurrentPostScheduled,
isDeletingPost,
isEditedPostAutosaveable,
isEditedPostBeingScheduled,
isEditedPostDateFloating,
isEditedPostDirty,
isEditedPostEmpty,
isEditedPostNew,
isEditedPostPublishable,
isEditedPostSaveable,
isEditorPanelEnabled,
isEditorPanelOpened,
isEditorPanelRemoved,
isFirstMultiSelectedBlock,
isInserterOpened,
isListViewOpened,
isMultiSelecting,
isPermalinkEditable,
isPostAutosavingLocked,
isPostLockTakeover,
isPostLocked,
isPostSavingLocked,
isPreviewingPost,
isPublishSidebarEnabled,
isPublishSidebarOpened,
isPublishingPost,
isSavingNonPostEntityChanges,
isSavingPost,
isSelectionEnabled,
isTyping,
isValidTemplate
});
//# sourceMappingURL=selectors.cjs.map