@wordpress/block-library 9.40.2-next.v.202602271551.0 → 9.40.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/accordion/view.cjs +34 -0
- package/build/accordion/view.cjs.map +2 -2
- package/build/comment-reply-link/edit.cjs +2 -1
- package/build/comment-reply-link/edit.cjs.map +2 -2
- package/build/comments/edit/placeholder.cjs +2 -1
- package/build/comments/edit/placeholder.cjs.map +2 -2
- package/build/cover/edit/index.cjs +39 -26
- package/build/cover/edit/index.cjs.map +2 -2
- package/build/cover/embed-video-utils.cjs +8 -6
- package/build/cover/embed-video-utils.cjs.map +2 -2
- package/build/embed/embed-preview.cjs +2 -1
- package/build/embed/embed-preview.cjs.map +2 -2
- package/build/html/block.json +2 -1
- package/build/html/modal.cjs +147 -230
- package/build/html/modal.cjs.map +3 -3
- package/build/icon/block.json +3 -12
- package/build/image/image.cjs +1 -1
- package/build/image/image.cjs.map +2 -2
- package/build/latest-comments/deprecated.cjs +33 -0
- package/build/latest-comments/deprecated.cjs.map +2 -2
- package/build/navigation/edit/index.cjs +125 -123
- package/build/navigation/edit/index.cjs.map +3 -3
- package/build/navigation/edit/leaf-more-menu.cjs +6 -68
- package/build/navigation/edit/leaf-more-menu.cjs.map +3 -3
- package/build/navigation/edit/menu-inspector-controls.cjs +91 -20
- package/build/navigation/edit/menu-inspector-controls.cjs.map +3 -3
- package/build/navigation/edit/navigation-menu-selector.cjs +4 -5
- package/build/navigation/edit/navigation-menu-selector.cjs.map +3 -3
- package/build/navigation/edit/placeholder/index.cjs +2 -2
- package/build/navigation/edit/placeholder/index.cjs.map +3 -3
- package/build/navigation/use-navigation-entities.cjs +67 -0
- package/build/navigation/use-navigation-entities.cjs.map +7 -0
- package/build/navigation/view.cjs +9 -2
- package/build/navigation/view.cjs.map +2 -2
- package/build/navigation-link/edit.cjs +2 -1
- package/build/navigation-link/edit.cjs.map +2 -2
- package/build/navigation-link/shared/use-handle-link-change.cjs +19 -3
- package/build/navigation-link/shared/use-handle-link-change.cjs.map +3 -3
- package/build/navigation-link/shared/use-link-preview.cjs +2 -2
- package/build/navigation-link/shared/use-link-preview.cjs.map +2 -2
- package/build/navigation-submenu/edit.cjs +8 -22
- package/build/navigation-submenu/edit.cjs.map +2 -2
- package/build/nextpage/block.json +0 -1
- package/build/paragraph/edit.cjs +1 -1
- package/build/paragraph/edit.cjs.map +1 -1
- package/build/post-navigation-link/block.json +3 -1
- package/build/post-navigation-link/edit.cjs +36 -2
- package/build/post-navigation-link/edit.cjs.map +3 -3
- package/build/post-navigation-link/index.cjs +0 -2
- package/build/post-navigation-link/index.cjs.map +3 -3
- package/build/post-title/block.json +3 -1
- package/build/post-title/deprecated.cjs +1 -82
- package/build/post-title/deprecated.cjs.map +3 -3
- package/build/post-title/edit.cjs +36 -10
- package/build/post-title/edit.cjs.map +3 -3
- package/build/query-title/block.json +3 -1
- package/build/query-title/deprecated.cjs +1 -70
- package/build/query-title/deprecated.cjs.map +3 -3
- package/build/query-title/edit.cjs +35 -17
- package/build/query-title/edit.cjs.map +3 -3
- package/build/shortcode/block.json +2 -1
- package/build/site-tagline/block.json +4 -6
- package/build/site-tagline/deprecated.cjs +1 -66
- package/build/site-tagline/deprecated.cjs.map +3 -3
- package/build/site-tagline/edit.cjs +28 -14
- package/build/site-tagline/edit.cjs.map +3 -3
- package/build/site-title/block.json +3 -1
- package/build/site-title/deprecated.cjs +1 -79
- package/build/site-title/deprecated.cjs.map +3 -3
- package/build/site-title/edit.cjs +30 -14
- package/build/site-title/edit.cjs.map +3 -3
- package/build/tabs-menu-item/block.json +26 -1
- package/build/tabs-menu-item/controls.cjs +100 -2
- package/build/tabs-menu-item/controls.cjs.map +3 -3
- package/build/tabs-menu-item/edit.cjs +65 -6
- package/build/tabs-menu-item/edit.cjs.map +2 -2
- package/build/tabs-menu-item/save.cjs +15 -1
- package/build/tabs-menu-item/save.cjs.map +2 -2
- package/build-module/accordion/view.mjs +35 -1
- package/build-module/accordion/view.mjs.map +2 -2
- package/build-module/comment-reply-link/edit.mjs +3 -2
- package/build-module/comment-reply-link/edit.mjs.map +2 -2
- package/build-module/comments/edit/placeholder.mjs +3 -2
- package/build-module/comments/edit/placeholder.mjs.map +2 -2
- package/build-module/cover/edit/index.mjs +47 -29
- package/build-module/cover/edit/index.mjs.map +2 -2
- package/build-module/cover/embed-video-utils.mjs +7 -5
- package/build-module/cover/embed-video-utils.mjs.map +2 -2
- package/build-module/embed/embed-preview.mjs +2 -1
- package/build-module/embed/embed-preview.mjs.map +2 -2
- package/build-module/html/block.json +2 -1
- package/build-module/html/modal.mjs +149 -232
- package/build-module/html/modal.mjs.map +2 -2
- package/build-module/icon/block.json +3 -12
- package/build-module/image/image.mjs +1 -1
- package/build-module/image/image.mjs.map +2 -2
- package/build-module/latest-comments/deprecated.mjs +33 -0
- package/build-module/latest-comments/deprecated.mjs.map +2 -2
- package/build-module/navigation/edit/index.mjs +125 -123
- package/build-module/navigation/edit/index.mjs.map +2 -2
- package/build-module/navigation/edit/leaf-more-menu.mjs +7 -73
- package/build-module/navigation/edit/leaf-more-menu.mjs.map +2 -2
- package/build-module/navigation/edit/menu-inspector-controls.mjs +101 -21
- package/build-module/navigation/edit/menu-inspector-controls.mjs.map +2 -2
- package/build-module/navigation/edit/navigation-menu-selector.mjs +5 -6
- package/build-module/navigation/edit/navigation-menu-selector.mjs.map +2 -2
- package/build-module/navigation/edit/placeholder/index.mjs +2 -2
- package/build-module/navigation/edit/placeholder/index.mjs.map +2 -2
- package/build-module/navigation/use-navigation-entities.mjs +46 -0
- package/build-module/navigation/use-navigation-entities.mjs.map +7 -0
- package/build-module/navigation/view.mjs +9 -2
- package/build-module/navigation/view.mjs.map +2 -2
- package/build-module/navigation-link/edit.mjs +2 -1
- package/build-module/navigation-link/edit.mjs.map +2 -2
- package/build-module/navigation-link/shared/use-handle-link-change.mjs +19 -3
- package/build-module/navigation-link/shared/use-handle-link-change.mjs.map +2 -2
- package/build-module/navigation-link/shared/use-link-preview.mjs +2 -2
- package/build-module/navigation-link/shared/use-link-preview.mjs.map +2 -2
- package/build-module/navigation-submenu/edit.mjs +9 -23
- package/build-module/navigation-submenu/edit.mjs.map +2 -2
- package/build-module/nextpage/block.json +0 -1
- package/build-module/paragraph/edit.mjs +2 -2
- package/build-module/paragraph/edit.mjs.map +1 -1
- package/build-module/post-navigation-link/block.json +3 -1
- package/build-module/post-navigation-link/edit.mjs +30 -3
- package/build-module/post-navigation-link/edit.mjs.map +2 -2
- package/build-module/post-navigation-link/index.mjs +0 -2
- package/build-module/post-navigation-link/index.mjs.map +2 -2
- package/build-module/post-title/block.json +3 -1
- package/build-module/post-title/deprecated.mjs +1 -82
- package/build-module/post-title/deprecated.mjs.map +2 -2
- package/build-module/post-title/edit.mjs +27 -10
- package/build-module/post-title/edit.mjs.map +2 -2
- package/build-module/query-title/block.json +3 -1
- package/build-module/query-title/deprecated.mjs +1 -70
- package/build-module/query-title/deprecated.mjs.map +2 -2
- package/build-module/query-title/edit.mjs +36 -17
- package/build-module/query-title/edit.mjs.map +2 -2
- package/build-module/shortcode/block.json +2 -1
- package/build-module/site-tagline/block.json +4 -6
- package/build-module/site-tagline/deprecated.mjs +1 -66
- package/build-module/site-tagline/deprecated.mjs.map +2 -2
- package/build-module/site-tagline/edit.mjs +29 -14
- package/build-module/site-tagline/edit.mjs.map +2 -2
- package/build-module/site-title/block.json +3 -1
- package/build-module/site-title/deprecated.mjs +1 -79
- package/build-module/site-title/deprecated.mjs.map +2 -2
- package/build-module/site-title/edit.mjs +31 -14
- package/build-module/site-title/edit.mjs.map +2 -2
- package/build-module/tabs-menu-item/block.json +26 -1
- package/build-module/tabs-menu-item/controls.mjs +104 -3
- package/build-module/tabs-menu-item/controls.mjs.map +2 -2
- package/build-module/tabs-menu-item/edit.mjs +66 -6
- package/build-module/tabs-menu-item/edit.mjs.map +2 -2
- package/build-module/tabs-menu-item/save.mjs +15 -1
- package/build-module/tabs-menu-item/save.mjs.map +2 -2
- package/build-style/editor-rtl.css +20 -6
- package/build-style/editor.css +20 -6
- package/build-style/html/editor-rtl.css +10 -6
- package/build-style/html/editor.css +10 -6
- package/build-style/icon/editor-rtl.css +5 -0
- package/build-style/icon/editor.css +5 -0
- package/build-style/navigation/style-rtl.css +15 -1
- package/build-style/navigation/style.css +15 -1
- package/build-style/navigation-overlay-close/style-rtl.css +3 -3
- package/build-style/navigation-overlay-close/style.css +3 -3
- package/build-style/style-rtl.css +30 -7
- package/build-style/style.css +30 -7
- package/build-style/tabs-menu-item/editor-rtl.css +5 -0
- package/build-style/tabs-menu-item/editor.css +5 -0
- package/build-style/tabs-menu-item/style-rtl.css +12 -3
- package/build-style/tabs-menu-item/style.css +12 -3
- package/package.json +38 -38
- package/src/accordion/view.js +44 -1
- package/src/accordion-item/index.php +18 -5
- package/src/comment-reply-link/edit.js +5 -2
- package/src/comments/edit/placeholder.js +5 -2
- package/src/cover/edit/index.js +72 -35
- package/src/cover/embed-video-utils.js +9 -7
- package/src/cover/index.php +12 -4
- package/src/details/index.php +47 -0
- package/src/embed/embed-preview.js +6 -5
- package/src/html/block.json +2 -1
- package/src/html/editor.scss +15 -5
- package/src/html/modal.js +32 -99
- package/src/icon/block.json +3 -12
- package/src/icon/editor.scss +5 -0
- package/src/icon/index.php +3 -1
- package/src/image/image.js +14 -15
- package/src/image/index.php +7 -5
- package/src/latest-comments/deprecated.js +33 -0
- package/src/navigation/edit/index.js +136 -134
- package/src/navigation/edit/leaf-more-menu.js +11 -86
- package/src/navigation/edit/menu-inspector-controls.js +142 -23
- package/src/navigation/edit/navigation-menu-selector.js +5 -6
- package/src/navigation/edit/placeholder/index.js +2 -3
- package/src/navigation/edit/test/navigation-menu-selector.js +20 -23
- package/src/navigation/index.php +62 -9
- package/src/navigation/style.scss +17 -1
- package/src/navigation/use-navigation-entities.js +72 -0
- package/src/navigation/view.js +14 -2
- package/src/navigation-link/edit.js +1 -0
- package/src/navigation-link/shared/test/use-handle-link-change.test.js +212 -0
- package/src/navigation-link/shared/test/use-link-preview.test.js +9 -0
- package/src/navigation-link/shared/use-handle-link-change.js +36 -9
- package/src/navigation-link/shared/use-link-preview.js +6 -9
- package/src/navigation-overlay-close/style.scss +3 -3
- package/src/navigation-submenu/edit.js +11 -28
- package/src/nextpage/block.json +0 -1
- package/src/page-list/index.php +1 -1
- package/src/paragraph/edit.js +2 -2
- package/src/post-featured-image/index.php +4 -2
- package/src/post-navigation-link/block.json +3 -1
- package/src/post-navigation-link/edit.js +35 -2
- package/src/post-navigation-link/index.js +0 -2
- package/src/post-title/block.json +3 -1
- package/src/post-title/deprecated.js +1 -86
- package/src/post-title/edit.js +18 -2
- package/src/query-title/block.json +3 -1
- package/src/query-title/deprecated.js +1 -74
- package/src/query-title/edit.js +27 -11
- package/src/query-title/index.php +1 -1
- package/src/shortcode/block.json +2 -1
- package/src/site-tagline/block.json +4 -6
- package/src/site-tagline/deprecated.js +1 -70
- package/src/site-tagline/edit.js +22 -9
- package/src/site-title/block.json +3 -1
- package/src/site-title/deprecated.js +1 -83
- package/src/site-title/edit.js +22 -9
- package/src/tabs-menu-item/block.json +26 -1
- package/src/tabs-menu-item/controls.js +108 -0
- package/src/tabs-menu-item/edit.js +79 -6
- package/src/tabs-menu-item/editor.scss +6 -0
- package/src/tabs-menu-item/save.js +26 -1
- package/src/tabs-menu-item/style.scss +14 -3
- package/build/navigation/edit/navigation-link-ui.cjs +0 -97
- package/build/navigation/edit/navigation-link-ui.cjs.map +0 -7
- package/build/navigation/edit/navigation-list-view-header.cjs +0 -86
- package/build/navigation/edit/navigation-list-view-header.cjs.map +0 -7
- package/build/post-navigation-link/deprecated.cjs +0 -100
- package/build/post-navigation-link/deprecated.cjs.map +0 -7
- package/build-module/navigation/edit/navigation-link-ui.mjs +0 -76
- package/build-module/navigation/edit/navigation-link-ui.mjs.map +0 -7
- package/build-module/navigation/edit/navigation-list-view-header.mjs +0 -58
- package/build-module/navigation/edit/navigation-list-view-header.mjs.map +0 -7
- package/build-module/post-navigation-link/deprecated.mjs +0 -69
- package/build-module/post-navigation-link/deprecated.mjs.map +0 -7
- package/src/navigation/edit/navigation-link-ui.js +0 -115
- package/src/navigation/edit/navigation-list-view-header.js +0 -62
- package/src/post-navigation-link/deprecated.js +0 -72
|
@@ -95,44 +95,18 @@ function AddSubmenuItem({
|
|
|
95
95
|
function LeafMoreMenu(props) {
|
|
96
96
|
const { block } = props;
|
|
97
97
|
const { clientId } = block;
|
|
98
|
-
const {
|
|
99
|
-
moveBlocksDown,
|
|
100
|
-
moveBlocksUp,
|
|
101
|
-
removeBlocks,
|
|
102
|
-
duplicateBlocks,
|
|
103
|
-
insertBeforeBlock,
|
|
104
|
-
insertAfterBlock
|
|
105
|
-
} = (0, import_data.useDispatch)(import_block_editor.store);
|
|
98
|
+
const { moveBlocksDown, moveBlocksUp, removeBlocks } = (0, import_data.useDispatch)(import_block_editor.store);
|
|
106
99
|
const removeLabel = (0, import_i18n.sprintf)(
|
|
107
100
|
/* translators: %s: block name */
|
|
108
101
|
(0, import_i18n.__)("Remove %s"),
|
|
109
102
|
(0, import_block_editor.BlockTitle)({ clientId, maximumLength: 25 })
|
|
110
103
|
);
|
|
111
|
-
const
|
|
104
|
+
const rootClientId = (0, import_data.useSelect)(
|
|
112
105
|
(select) => {
|
|
113
|
-
const {
|
|
114
|
-
|
|
115
|
-
canInsertBlockType,
|
|
116
|
-
getDirectInsertBlock,
|
|
117
|
-
getBlockIndex,
|
|
118
|
-
getBlockCount
|
|
119
|
-
} = select(import_block_editor.store);
|
|
120
|
-
const { getDefaultBlockName } = select(import_blocks.store);
|
|
121
|
-
const _rootClientId = getBlockRootClientId(clientId);
|
|
122
|
-
const canInsertDefaultBlock = canInsertBlockType(
|
|
123
|
-
getDefaultBlockName(),
|
|
124
|
-
_rootClientId
|
|
125
|
-
);
|
|
126
|
-
const directInsertBlock = _rootClientId ? getDirectInsertBlock(_rootClientId) : null;
|
|
127
|
-
return {
|
|
128
|
-
rootClientId: _rootClientId,
|
|
129
|
-
canDuplicate: !!block && (0, import_blocks.hasBlockSupport)(block.name, "multiple", true) && canInsertBlockType(block.name, _rootClientId),
|
|
130
|
-
canInsertBlock: (canInsertDefaultBlock || !!directInsertBlock) && !!block && canInsertBlockType(block.name, _rootClientId),
|
|
131
|
-
isFirst: getBlockIndex(clientId) === 0,
|
|
132
|
-
isLast: getBlockIndex(clientId) === getBlockCount(_rootClientId) - 1
|
|
133
|
-
};
|
|
106
|
+
const { getBlockRootClientId } = select(import_block_editor.store);
|
|
107
|
+
return getBlockRootClientId(clientId);
|
|
134
108
|
},
|
|
135
|
-
[clientId
|
|
109
|
+
[clientId]
|
|
136
110
|
);
|
|
137
111
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
138
112
|
import_components.DropdownMenu,
|
|
@@ -149,8 +123,6 @@ function LeafMoreMenu(props) {
|
|
|
149
123
|
import_components.MenuItem,
|
|
150
124
|
{
|
|
151
125
|
icon: import_icons.chevronUp,
|
|
152
|
-
disabled: isFirst,
|
|
153
|
-
accessibleWhenDisabled: true,
|
|
154
126
|
onClick: () => {
|
|
155
127
|
moveBlocksUp([clientId], rootClientId);
|
|
156
128
|
onClose();
|
|
@@ -162,8 +134,6 @@ function LeafMoreMenu(props) {
|
|
|
162
134
|
import_components.MenuItem,
|
|
163
135
|
{
|
|
164
136
|
icon: import_icons.chevronDown,
|
|
165
|
-
disabled: isLast,
|
|
166
|
-
accessibleWhenDisabled: true,
|
|
167
137
|
onClick: () => {
|
|
168
138
|
moveBlocksDown([clientId], rootClientId);
|
|
169
139
|
onClose();
|
|
@@ -180,39 +150,7 @@ function LeafMoreMenu(props) {
|
|
|
180
150
|
expand: props.expand,
|
|
181
151
|
setInsertedBlock: props.setInsertedBlock
|
|
182
152
|
}
|
|
183
|
-
)
|
|
184
|
-
canDuplicate && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
185
|
-
import_components.MenuItem,
|
|
186
|
-
{
|
|
187
|
-
onClick: () => {
|
|
188
|
-
duplicateBlocks([clientId]);
|
|
189
|
-
onClose();
|
|
190
|
-
},
|
|
191
|
-
children: (0, import_i18n.__)("Duplicate")
|
|
192
|
-
}
|
|
193
|
-
),
|
|
194
|
-
canInsertBlock && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
195
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
196
|
-
import_components.MenuItem,
|
|
197
|
-
{
|
|
198
|
-
onClick: () => {
|
|
199
|
-
insertBeforeBlock(clientId);
|
|
200
|
-
onClose();
|
|
201
|
-
},
|
|
202
|
-
children: (0, import_i18n.__)("Add before")
|
|
203
|
-
}
|
|
204
|
-
),
|
|
205
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
206
|
-
import_components.MenuItem,
|
|
207
|
-
{
|
|
208
|
-
onClick: () => {
|
|
209
|
-
insertAfterBlock(clientId);
|
|
210
|
-
onClose();
|
|
211
|
-
},
|
|
212
|
-
children: (0, import_i18n.__)("Add after")
|
|
213
|
-
}
|
|
214
|
-
)
|
|
215
|
-
] })
|
|
153
|
+
)
|
|
216
154
|
] }),
|
|
217
155
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.MenuGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
218
156
|
import_components.MenuItem,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/navigation/edit/leaf-more-menu.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,
|
|
6
|
-
"names": ["blockEditorStore"
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\taddSubmenu,\n\tchevronUp,\n\tchevronDown,\n\tmoreVertical,\n} from '@wordpress/icons';\nimport { DropdownMenu, MenuItem, MenuGroup } from '@wordpress/components';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { BlockTitle, store as blockEditorStore } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { DEFAULT_BLOCK } from '../constants';\n\nconst POPOVER_PROPS = {\n\tclassName: 'block-editor-block-settings-menu__popover',\n\tplacement: 'bottom-start',\n};\n\nconst BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\n\nfunction AddSubmenuItem( {\n\tblock,\n\tonClose,\n\texpandedState,\n\texpand,\n\tsetInsertedBlock,\n} ) {\n\tconst { insertBlock, replaceBlock, replaceInnerBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst clientId = block.clientId;\n\tconst isDisabled = ! BLOCKS_THAT_CAN_BE_CONVERTED_TO_SUBMENU.includes(\n\t\tblock.name\n\t);\n\treturn (\n\t\t<MenuItem\n\t\t\ticon={ addSubmenu }\n\t\t\tdisabled={ isDisabled }\n\t\t\tonClick={ () => {\n\t\t\t\tconst updateSelectionOnInsert = false;\n\t\t\t\tconst newLink = createBlock(\n\t\t\t\t\tDEFAULT_BLOCK.name,\n\t\t\t\t\tDEFAULT_BLOCK.attributes\n\t\t\t\t);\n\n\t\t\t\tif ( block.name === 'core/navigation-submenu' ) {\n\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\tnewLink,\n\t\t\t\t\t\tblock.innerBlocks.length,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tupdateSelectionOnInsert\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t// Convert to a submenu if the block currently isn't one.\n\t\t\t\t\tconst newSubmenu = createBlock(\n\t\t\t\t\t\t'core/navigation-submenu',\n\t\t\t\t\t\tblock.attributes,\n\t\t\t\t\t\tblock.innerBlocks\n\t\t\t\t\t);\n\n\t\t\t\t\t// The following must happen as two independent actions.\n\t\t\t\t\t// Why? Because the offcanvas editor relies on the getLastInsertedBlocksClientIds\n\t\t\t\t\t// selector to determine which block is \"active\". As the UX needs the newLink to be\n\t\t\t\t\t// the \"active\" block it must be the last block to be inserted.\n\t\t\t\t\t// Therefore the Submenu is first created and **then** the newLink is inserted\n\t\t\t\t\t// thus ensuring it is the last inserted block.\n\t\t\t\t\treplaceBlock( clientId, newSubmenu );\n\n\t\t\t\t\treplaceInnerBlocks(\n\t\t\t\t\t\tnewSubmenu.clientId,\n\t\t\t\t\t\t[ newLink ],\n\t\t\t\t\t\tupdateSelectionOnInsert\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// This call sets the local List View state for the \"last inserted block\".\n\t\t\t\t// This is required for the Nav Block to determine whether or not to display\n\t\t\t\t// the Link UI for this new block.\n\t\t\t\tsetInsertedBlock( newLink );\n\n\t\t\t\tif ( ! expandedState[ block.clientId ] ) {\n\t\t\t\t\texpand( block.clientId );\n\t\t\t\t}\n\t\t\t\tonClose();\n\t\t\t} }\n\t\t>\n\t\t\t{ __( 'Add submenu link' ) }\n\t\t</MenuItem>\n\t);\n}\n\nexport default function LeafMoreMenu( props ) {\n\tconst { block } = props;\n\tconst { clientId } = block;\n\n\tconst { moveBlocksDown, moveBlocksUp, removeBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst removeLabel = sprintf(\n\t\t/* translators: %s: block name */\n\t\t__( 'Remove %s' ),\n\t\tBlockTitle( { clientId, maximumLength: 25 } )\n\t);\n\n\tconst rootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn getBlockRootClientId( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\treturn (\n\t\t<DropdownMenu\n\t\t\ticon={ moreVertical }\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tclassName=\"block-editor-block-settings-menu\"\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tnoIcons\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronUp }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksUp( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move up' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Move down' ) }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t<AddSubmenuItem\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\texpandedState={ props.expandedState }\n\t\t\t\t\t\t\texpand={ props.expand }\n\t\t\t\t\t\t\tsetInsertedBlock={ props.setInsertedBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tremoveBlocks( [ clientId ], false );\n\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ removeLabel }\n\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t</MenuGroup>\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["blockEditorStore"]
|
|
7
7
|
}
|
|
@@ -43,19 +43,81 @@ var import_lock_unlock = require("../../lock-unlock.cjs");
|
|
|
43
43
|
var import_deleted_navigation_warning = __toESM(require("./deleted-navigation-warning.cjs"));
|
|
44
44
|
var import_use_navigation_menu = __toESM(require("../use-navigation-menu.cjs"));
|
|
45
45
|
var import_leaf_more_menu = __toESM(require("./leaf-more-menu.cjs"));
|
|
46
|
-
var
|
|
47
|
-
var import_navigation_list_view_header = __toESM(require("./navigation-list-view-header.cjs"));
|
|
46
|
+
var import_shared = require("../../navigation-link/shared/index.cjs");
|
|
48
47
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
49
48
|
var actionLabel = (
|
|
50
49
|
/* translators: %s: The name of a menu. */
|
|
51
50
|
(0, import_i18n.__)("Switch to '%s'")
|
|
52
51
|
);
|
|
52
|
+
var BLOCKS_WITH_LINK_UI_SUPPORT = [
|
|
53
|
+
"core/navigation-link",
|
|
54
|
+
"core/navigation-submenu"
|
|
55
|
+
];
|
|
53
56
|
var {
|
|
54
57
|
PrivateListView,
|
|
58
|
+
useBlockDisplayTitle,
|
|
55
59
|
PrivateBlockContext,
|
|
56
|
-
useListViewPanelState
|
|
57
|
-
useBlockDisplayTitle
|
|
60
|
+
useListViewPanelState
|
|
58
61
|
} = (0, import_lock_unlock.unlock)(import_block_editor.privateApis);
|
|
62
|
+
function AdditionalBlockContent({ block, insertedBlock, setInsertedBlock }) {
|
|
63
|
+
const { updateBlockAttributes, removeBlock } = (0, import_data.useDispatch)(import_block_editor.store);
|
|
64
|
+
const supportsLinkControls = BLOCKS_WITH_LINK_UI_SUPPORT?.includes(
|
|
65
|
+
insertedBlock?.name
|
|
66
|
+
);
|
|
67
|
+
const blockWasJustInserted = insertedBlock?.clientId === block.clientId;
|
|
68
|
+
const showLinkControls = supportsLinkControls && blockWasJustInserted;
|
|
69
|
+
const { createBinding, clearBinding } = (0, import_shared.useEntityBinding)({
|
|
70
|
+
clientId: insertedBlock?.clientId,
|
|
71
|
+
attributes: insertedBlock?.attributes || {}
|
|
72
|
+
});
|
|
73
|
+
if (!showLinkControls) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const cleanupInsertedBlock = () => {
|
|
77
|
+
const shouldAutoSelectBlock = false;
|
|
78
|
+
if (!insertedBlock?.attributes?.url && insertedBlock?.clientId) {
|
|
79
|
+
removeBlock(insertedBlock.clientId, shouldAutoSelectBlock);
|
|
80
|
+
}
|
|
81
|
+
setInsertedBlock(null);
|
|
82
|
+
};
|
|
83
|
+
const setInsertedBlockAttributes = (_insertedBlockClientId) => (_updatedAttributes) => {
|
|
84
|
+
if (!_insertedBlockClientId) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
updateBlockAttributes(_insertedBlockClientId, _updatedAttributes);
|
|
88
|
+
};
|
|
89
|
+
const handleSetInsertedBlock = (newBlock) => {
|
|
90
|
+
const shouldAutoSelectBlock = false;
|
|
91
|
+
if (insertedBlock?.clientId && newBlock) {
|
|
92
|
+
removeBlock(insertedBlock.clientId, shouldAutoSelectBlock);
|
|
93
|
+
}
|
|
94
|
+
setInsertedBlock(newBlock);
|
|
95
|
+
};
|
|
96
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
97
|
+
import_shared.LinkUI,
|
|
98
|
+
{
|
|
99
|
+
clientId: insertedBlock?.clientId,
|
|
100
|
+
link: insertedBlock?.attributes,
|
|
101
|
+
onBlockInsert: handleSetInsertedBlock,
|
|
102
|
+
onClose: () => {
|
|
103
|
+
cleanupInsertedBlock();
|
|
104
|
+
},
|
|
105
|
+
onChange: (updatedValue) => {
|
|
106
|
+
const { isEntityLink, attributes: updatedAttributes } = (0, import_shared.updateAttributes)(
|
|
107
|
+
updatedValue,
|
|
108
|
+
setInsertedBlockAttributes(insertedBlock?.clientId),
|
|
109
|
+
insertedBlock?.attributes
|
|
110
|
+
);
|
|
111
|
+
if (isEntityLink) {
|
|
112
|
+
createBinding(updatedAttributes);
|
|
113
|
+
} else {
|
|
114
|
+
clearBinding();
|
|
115
|
+
}
|
|
116
|
+
setInsertedBlock(null);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
);
|
|
120
|
+
}
|
|
59
121
|
var MainContent = ({
|
|
60
122
|
clientId,
|
|
61
123
|
currentMenuId,
|
|
@@ -97,7 +159,7 @@ var MainContent = ({
|
|
|
97
159
|
description,
|
|
98
160
|
showAppender: true,
|
|
99
161
|
blockSettingsMenu: import_leaf_more_menu.default,
|
|
100
|
-
additionalBlockContent:
|
|
162
|
+
additionalBlockContent: AdditionalBlockContent,
|
|
101
163
|
onSelect: openListViewContentPanel
|
|
102
164
|
},
|
|
103
165
|
`${clientId}-${expandRevision}`
|
|
@@ -125,20 +187,29 @@ var MenuInspectorControls = (props) => {
|
|
|
125
187
|
const { isOpened, expandRevision, handleToggle } = useListViewPanelState(clientId);
|
|
126
188
|
if (!showBlockTitle) {
|
|
127
189
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { group: "list", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.PanelBody, { title: null, children: [
|
|
128
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
190
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_components.__experimentalHStack, { className: "wp-block-navigation-off-canvas-editor__header", children: [
|
|
191
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
192
|
+
import_components.__experimentalHeading,
|
|
193
|
+
{
|
|
194
|
+
className: "wp-block-navigation-off-canvas-editor__title",
|
|
195
|
+
level: 2,
|
|
196
|
+
children: blockTitle
|
|
197
|
+
}
|
|
198
|
+
),
|
|
199
|
+
blockEditingMode === "default" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
200
|
+
import_navigation_menu_selector.default,
|
|
201
|
+
{
|
|
202
|
+
currentMenuId,
|
|
203
|
+
onSelectClassicMenu,
|
|
204
|
+
onSelectNavigationMenu,
|
|
205
|
+
onCreateNew,
|
|
206
|
+
createNavigationMenuIsSuccess,
|
|
207
|
+
createNavigationMenuIsError,
|
|
208
|
+
actionLabel,
|
|
209
|
+
isManageMenusButtonDisabled
|
|
210
|
+
}
|
|
211
|
+
)
|
|
212
|
+
] }),
|
|
142
213
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
143
214
|
MainContent,
|
|
144
215
|
{
|
|
@@ -151,7 +222,7 @@ var MenuInspectorControls = (props) => {
|
|
|
151
222
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_block_editor.InspectorControls, { group: "list", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
152
223
|
import_components.PanelBody,
|
|
153
224
|
{
|
|
154
|
-
title:
|
|
225
|
+
title: (0, import_i18n.__)("Navigation"),
|
|
155
226
|
opened: isOpened,
|
|
156
227
|
onToggle: handleToggle,
|
|
157
228
|
children: [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/navigation/edit/menu-inspector-controls.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,0BAIO;AACP,
|
|
6
|
-
"names": ["blockEditorPrivateApis", "blockEditorStore", "useNavigationMenu", "DeletedNavigationWarning", "LeafMoreMenu", "
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tprivateApis as blockEditorPrivateApis,\n\tInspectorControls,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tPanelBody,\n\tSpinner,\n\t__experimentalHStack as HStack,\n\t__experimentalHeading as Heading,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport NavigationMenuSelector from './navigation-menu-selector';\nimport { unlock } from '../../lock-unlock';\nimport DeletedNavigationWarning from './deleted-navigation-warning';\nimport useNavigationMenu from '../use-navigation-menu';\nimport LeafMoreMenu from './leaf-more-menu';\nimport {\n\tLinkUI,\n\tupdateAttributes,\n\tuseEntityBinding,\n} from '../../navigation-link/shared';\n\nconst actionLabel =\n\t/* translators: %s: The name of a menu. */ __( \"Switch to '%s'\" );\nconst BLOCKS_WITH_LINK_UI_SUPPORT = [\n\t'core/navigation-link',\n\t'core/navigation-submenu',\n];\nconst {\n\tPrivateListView,\n\tuseBlockDisplayTitle,\n\tPrivateBlockContext,\n\tuseListViewPanelState,\n} = unlock( blockEditorPrivateApis );\n\nfunction AdditionalBlockContent( { block, insertedBlock, setInsertedBlock } ) {\n\tconst { updateBlockAttributes, removeBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst supportsLinkControls = BLOCKS_WITH_LINK_UI_SUPPORT?.includes(\n\t\tinsertedBlock?.name\n\t);\n\tconst blockWasJustInserted = insertedBlock?.clientId === block.clientId;\n\tconst showLinkControls = supportsLinkControls && blockWasJustInserted;\n\n\t// Get binding utilities for the inserted block\n\tconst { createBinding, clearBinding } = useEntityBinding( {\n\t\tclientId: insertedBlock?.clientId,\n\t\tattributes: insertedBlock?.attributes || {},\n\t} );\n\n\tif ( ! showLinkControls ) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Cleanup function for auto-inserted Navigation Link blocks.\n\t *\n\t * Removes the block if it has no URL and clears the inserted block state.\n\t * This ensures consistent cleanup behavior across different contexts.\n\t */\n\tconst cleanupInsertedBlock = () => {\n\t\t// Prevent automatic block selection when removing blocks in list view context\n\t\t// This avoids focus stealing that would close the list view and switch to canvas\n\t\tconst shouldAutoSelectBlock = false;\n\n\t\t// Follows the exact same pattern as Navigation Link block's onClose handler\n\t\t// If there is no URL then remove the auto-inserted block to avoid empty blocks\n\t\tif ( ! insertedBlock?.attributes?.url && insertedBlock?.clientId ) {\n\t\t\t// Remove the block entirely to avoid poor UX\n\t\t\t// This matches the Navigation Link block's behavior\n\t\t\tremoveBlock( insertedBlock.clientId, shouldAutoSelectBlock );\n\t\t}\n\t\tsetInsertedBlock( null );\n\t};\n\n\tconst setInsertedBlockAttributes =\n\t\t( _insertedBlockClientId ) => ( _updatedAttributes ) => {\n\t\t\tif ( ! _insertedBlockClientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tupdateBlockAttributes( _insertedBlockClientId, _updatedAttributes );\n\t\t};\n\n\t// Wrapper function to clean up original block when a new block is selected\n\tconst handleSetInsertedBlock = ( newBlock ) => {\n\t\t// Prevent automatic block selection when removing blocks in list view context\n\t\t// This avoids focus stealing that would close the list view and switch to canvas\n\t\tconst shouldAutoSelectBlock = false;\n\n\t\t// If we have an existing inserted block and a new block is being set,\n\t\t// remove the original block to avoid duplicates\n\t\tif ( insertedBlock?.clientId && newBlock ) {\n\t\t\tremoveBlock( insertedBlock.clientId, shouldAutoSelectBlock );\n\t\t}\n\t\tsetInsertedBlock( newBlock );\n\t};\n\n\treturn (\n\t\t<LinkUI\n\t\t\tclientId={ insertedBlock?.clientId }\n\t\t\tlink={ insertedBlock?.attributes }\n\t\t\tonBlockInsert={ handleSetInsertedBlock }\n\t\t\tonClose={ () => {\n\t\t\t\t// Use cleanup function\n\t\t\t\tcleanupInsertedBlock();\n\t\t\t} }\n\t\t\tonChange={ ( updatedValue ) => {\n\t\t\t\t// updateAttributes determines the final state and returns metadata\n\t\t\t\tconst { isEntityLink, attributes: updatedAttributes } =\n\t\t\t\t\tupdateAttributes(\n\t\t\t\t\t\tupdatedValue,\n\t\t\t\t\t\tsetInsertedBlockAttributes( insertedBlock?.clientId ),\n\t\t\t\t\t\tinsertedBlock?.attributes\n\t\t\t\t\t);\n\n\t\t\t\t// Handle URL binding based on the final computed state\n\t\t\t\t// Only create bindings for entity links (posts, pages, taxonomies)\n\t\t\t\t// Never create bindings for custom links (manual URLs)\n\t\t\t\tif ( isEntityLink ) {\n\t\t\t\t\tcreateBinding( updatedAttributes );\n\t\t\t\t} else {\n\t\t\t\t\tclearBinding();\n\t\t\t\t}\n\n\t\t\t\tsetInsertedBlock( null );\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nconst MainContent = ( {\n\tclientId,\n\tcurrentMenuId,\n\tisLoading,\n\tisNavigationMenuMissing,\n\tonCreateNew,\n\texpandRevision,\n} ) => {\n\tconst hasChildren = useSelect(\n\t\t( select ) => {\n\t\t\treturn !! select( blockEditorStore ).getBlockCount( clientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst { openListViewContentPanel } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\tconst { navigationMenu } = useNavigationMenu( currentMenuId );\n\n\tif ( currentMenuId && isNavigationMenuMissing ) {\n\t\treturn (\n\t\t\t<DeletedNavigationWarning onCreateNew={ onCreateNew } isNotice />\n\t\t);\n\t}\n\n\tif ( isLoading ) {\n\t\treturn <Spinner />;\n\t}\n\n\tconst description = navigationMenu\n\t\t? sprintf(\n\t\t\t\t/* translators: %s: The name of a menu. */\n\t\t\t\t__( 'Structure for Navigation Menu: %s' ),\n\t\t\t\tnavigationMenu?.title || __( 'Untitled menu' )\n\t\t )\n\t\t: __(\n\t\t\t\t'You have not yet created any menus. Displaying a list of your Pages'\n\t\t );\n\n\treturn (\n\t\t<div className=\"wp-block-navigation__menu-inspector-controls\">\n\t\t\t{ ! hasChildren && (\n\t\t\t\t<p className=\"wp-block-navigation__menu-inspector-controls__empty-message\">\n\t\t\t\t\t{ __( 'This Navigation Menu is empty.' ) }\n\t\t\t\t</p>\n\t\t\t) }\n\t\t\t<PrivateListView\n\t\t\t\tkey={ `${ clientId }-${ expandRevision }` }\n\t\t\t\trootClientId={ clientId }\n\t\t\t\tisExpanded\n\t\t\t\tdescription={ description }\n\t\t\t\tshowAppender\n\t\t\t\tblockSettingsMenu={ LeafMoreMenu }\n\t\t\t\tadditionalBlockContent={ AdditionalBlockContent }\n\t\t\t\tonSelect={ openListViewContentPanel }\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nconst MenuInspectorControls = ( props ) => {\n\tconst {\n\t\tclientId,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcreateNavigationMenuIsError,\n\t\tcurrentMenuId = null,\n\t\tonCreateNew,\n\t\tonSelectClassicMenu,\n\t\tonSelectNavigationMenu,\n\t\tisManageMenusButtonDisabled,\n\t\tblockEditingMode,\n\t} = props;\n\n\tconst { isSelectionWithinCurrentSection } =\n\t\tuseContext( PrivateBlockContext );\n\n\tconst blockTitle = useBlockDisplayTitle( {\n\t\tclientId,\n\t\tcontext: 'list-view',\n\t} );\n\n\t// Only make panel collapsible in contentOnly mode\n\tconst showBlockTitle = isSelectionWithinCurrentSection;\n\n\tconst { isOpened, expandRevision, handleToggle } =\n\t\tuseListViewPanelState( clientId );\n\n\tif ( ! showBlockTitle ) {\n\t\treturn (\n\t\t\t<InspectorControls group=\"list\">\n\t\t\t\t<PanelBody title={ null }>\n\t\t\t\t\t<HStack className=\"wp-block-navigation-off-canvas-editor__header\">\n\t\t\t\t\t\t<Heading\n\t\t\t\t\t\t\tclassName=\"wp-block-navigation-off-canvas-editor__title\"\n\t\t\t\t\t\t\tlevel={ 2 }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ blockTitle }\n\t\t\t\t\t\t</Heading>\n\t\t\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t\t\tonSelectNavigationMenu={\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tonCreateNew={ onCreateNew }\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tactionLabel={ actionLabel }\n\t\t\t\t\t\t\t\tisManageMenusButtonDisabled={\n\t\t\t\t\t\t\t\t\tisManageMenusButtonDisabled\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</HStack>\n\t\t\t\t\t<MainContent\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\texpandRevision={ expandRevision }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\t// ContentOnly mode: use collapsible PanelBody\n\treturn (\n\t\t<InspectorControls group=\"list\">\n\t\t\t<PanelBody\n\t\t\t\ttitle={ __( 'Navigation' ) }\n\t\t\t\topened={ isOpened }\n\t\t\t\tonToggle={ handleToggle }\n\t\t\t>\n\t\t\t\t{ blockEditingMode === 'default' && (\n\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\tonCreateNew={ onCreateNew }\n\t\t\t\t\t\tcreateNavigationMenuIsSuccess={\n\t\t\t\t\t\t\tcreateNavigationMenuIsSuccess\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcreateNavigationMenuIsError={\n\t\t\t\t\t\t\tcreateNavigationMenuIsError\n\t\t\t\t\t\t}\n\t\t\t\t\t\tactionLabel={ actionLabel }\n\t\t\t\t\t\tisManageMenusButtonDisabled={\n\t\t\t\t\t\t\tisManageMenusButtonDisabled\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t<MainContent { ...props } expandRevision={ expandRevision } />\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n};\n\nexport default MenuInspectorControls;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["blockEditorPrivateApis", "blockEditorStore", "useNavigationMenu", "DeletedNavigationWarning", "LeafMoreMenu", "HStack", "Heading", "NavigationMenuSelector"]
|
|
7
7
|
}
|
|
@@ -40,6 +40,7 @@ var import_html_entities = require("@wordpress/html-entities");
|
|
|
40
40
|
var import_element = require("@wordpress/element");
|
|
41
41
|
var import_core_data = require("@wordpress/core-data");
|
|
42
42
|
var import_use_navigation_menu = __toESM(require("../use-navigation-menu.cjs"));
|
|
43
|
+
var import_use_navigation_entities = __toESM(require("../use-navigation-entities.cjs"));
|
|
43
44
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
44
45
|
function buildMenuLabel(title, id, status) {
|
|
45
46
|
if (!title) {
|
|
@@ -67,10 +68,7 @@ function NavigationMenuSelector({
|
|
|
67
68
|
const createActionLabel = (0, import_i18n.__)("Create from '%s'");
|
|
68
69
|
const [isUpdatingMenuRef, setIsUpdatingMenuRef] = (0, import_element.useState)(false);
|
|
69
70
|
actionLabel = actionLabel || createActionLabel;
|
|
70
|
-
const {
|
|
71
|
-
per_page: -1,
|
|
72
|
-
context: "view"
|
|
73
|
-
});
|
|
71
|
+
const { menus: classicMenus } = (0, import_use_navigation_entities.default)();
|
|
74
72
|
const {
|
|
75
73
|
navigationMenus,
|
|
76
74
|
isResolvingNavigationMenus,
|
|
@@ -82,7 +80,8 @@ function NavigationMenuSelector({
|
|
|
82
80
|
const [currentTitle] = (0, import_core_data.useEntityProp)(
|
|
83
81
|
"postType",
|
|
84
82
|
"wp_navigation",
|
|
85
|
-
"title"
|
|
83
|
+
"title",
|
|
84
|
+
currentMenuId
|
|
86
85
|
);
|
|
87
86
|
const menuChoices = (0, import_element.useMemo)(() => {
|
|
88
87
|
return navigationMenus?.map(({ id, title, status }, index) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/navigation/edit/navigation-menu-selector.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAKO;AACP,mBAA6B;AAC7B,kBAA4B;AAC5B,2BAA+B;AAC/B,qBAA6C;AAC7C,
|
|
6
|
-
"names": ["useNavigationMenu"]
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tMenuItemsChoice,\n\tDropdownMenu,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { decodeEntities } from '@wordpress/html-entities';\nimport { useEffect, useMemo, useState } from '@wordpress/element';\nimport { useEntityProp } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport useNavigationMenu from '../use-navigation-menu';\nimport useNavigationEntities from '../use-navigation-entities';\n\nfunction buildMenuLabel( title, id, status ) {\n\tif ( ! title ) {\n\t\t/* translators: %s: the index of the menu in the list of menus. */\n\t\treturn sprintf( __( '(no title %s)' ), id );\n\t}\n\n\tif ( status === 'publish' ) {\n\t\treturn decodeEntities( title );\n\t}\n\n\treturn sprintf(\n\t\t// translators: 1: title of the menu. 2: status of the menu (draft, pending, etc.).\n\t\t__( '%1$s (%2$s)' ),\n\t\tdecodeEntities( title ),\n\t\tstatus\n\t);\n}\n\nfunction NavigationMenuSelector( {\n\tcurrentMenuId,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateNew,\n\tactionLabel,\n\tcreateNavigationMenuIsSuccess,\n\tcreateNavigationMenuIsError,\n} ) {\n\t/* translators: %s: The name of a menu. */\n\tconst createActionLabel = __( \"Create from '%s'\" );\n\n\tconst [ isUpdatingMenuRef, setIsUpdatingMenuRef ] = useState( false );\n\n\tactionLabel = actionLabel || createActionLabel;\n\n\tconst { menus: classicMenus } = useNavigationEntities();\n\n\tconst {\n\t\tnavigationMenus,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tcanUserCreateNavigationMenus,\n\t\tcanSwitchNavigationMenu,\n\t\tisNavigationMenuMissing,\n\t} = useNavigationMenu( currentMenuId );\n\n\tconst [ currentTitle ] = useEntityProp(\n\t\t'postType',\n\t\t'wp_navigation',\n\t\t'title',\n\t\tcurrentMenuId\n\t);\n\n\tconst menuChoices = useMemo( () => {\n\t\treturn (\n\t\t\tnavigationMenus?.map( ( { id, title, status }, index ) => {\n\t\t\t\tconst label = buildMenuLabel(\n\t\t\t\t\ttitle?.rendered,\n\t\t\t\t\tindex + 1,\n\t\t\t\t\tstatus\n\t\t\t\t);\n\n\t\t\t\treturn {\n\t\t\t\t\tvalue: id,\n\t\t\t\t\tlabel,\n\t\t\t\t\tariaLabel: sprintf( actionLabel, label ),\n\t\t\t\t\tdisabled:\n\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t! hasResolvedNavigationMenus,\n\t\t\t\t};\n\t\t\t} ) || []\n\t\t);\n\t}, [\n\t\tnavigationMenus,\n\t\tactionLabel,\n\t\tisResolvingNavigationMenus,\n\t\thasResolvedNavigationMenus,\n\t\tisUpdatingMenuRef,\n\t] );\n\n\tconst hasNavigationMenus = !! navigationMenus?.length;\n\tconst hasClassicMenus = !! classicMenus?.length;\n\tconst showNavigationMenus = !! canSwitchNavigationMenu;\n\tconst showClassicMenus = !! canUserCreateNavigationMenus;\n\n\tconst noMenuSelected = hasNavigationMenus && ! currentMenuId;\n\tconst noBlockMenus = ! hasNavigationMenus && hasResolvedNavigationMenus;\n\tconst menuUnavailable =\n\t\thasResolvedNavigationMenus && currentMenuId === null;\n\tconst navMenuHasBeenDeleted = currentMenuId && isNavigationMenuMissing;\n\n\tlet selectorLabel = '';\n\n\tif ( isResolvingNavigationMenus ) {\n\t\tselectorLabel = __( 'Loading\u2026' );\n\t} else if (\n\t\tnoMenuSelected ||\n\t\tnoBlockMenus ||\n\t\tmenuUnavailable ||\n\t\tnavMenuHasBeenDeleted\n\t) {\n\t\t// Note: classic Menus may be available.\n\t\tselectorLabel = __( 'Choose or create a Navigation Menu' );\n\t} else {\n\t\t// Current Menu's title.\n\t\tselectorLabel = currentTitle;\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tisUpdatingMenuRef &&\n\t\t\t( createNavigationMenuIsSuccess || createNavigationMenuIsError )\n\t\t) {\n\t\t\tsetIsUpdatingMenuRef( false );\n\t\t}\n\t}, [\n\t\thasResolvedNavigationMenus,\n\t\tcreateNavigationMenuIsSuccess,\n\t\tcanUserCreateNavigationMenus,\n\t\tcreateNavigationMenuIsError,\n\t\tisUpdatingMenuRef,\n\t\tmenuUnavailable,\n\t\tnoBlockMenus,\n\t\tnoMenuSelected,\n\t] );\n\n\tconst NavigationMenuSelectorDropdown = (\n\t\t<DropdownMenu\n\t\t\tlabel={ selectorLabel }\n\t\t\ticon={ moreVertical }\n\t\t\ttoggleProps={ { size: 'small' } }\n\t\t>\n\t\t\t{ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ showNavigationMenus && hasNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Menus' ) }>\n\t\t\t\t\t\t\t<MenuItemsChoice\n\t\t\t\t\t\t\t\tvalue={ currentMenuId }\n\t\t\t\t\t\t\t\tonSelect={ ( menuId ) => {\n\t\t\t\t\t\t\t\t\tonSelectNavigationMenu( menuId );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tchoices={ menuChoices }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showClassicMenus && hasClassicMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Import Classic Menus' ) }>\n\t\t\t\t\t\t\t{ classicMenus?.map( ( menu ) => {\n\t\t\t\t\t\t\t\tconst label = decodeEntities( menu.name );\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\t\t\tawait onSelectClassicMenu( menu );\n\t\t\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tkey={ menu.id }\n\t\t\t\t\t\t\t\t\t\taria-label={ sprintf(\n\t\t\t\t\t\t\t\t\t\t\tcreateActionLabel,\n\t\t\t\t\t\t\t\t\t\t\tlabel\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ label }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ canUserCreateNavigationMenus && (\n\t\t\t\t\t\t<MenuGroup label={ __( 'Tools' ) }>\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\tonClick={ async () => {\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( true );\n\t\t\t\t\t\t\t\t\tawait onCreateNew();\n\t\t\t\t\t\t\t\t\tsetIsUpdatingMenuRef( false );\n\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tdisabled={\n\t\t\t\t\t\t\t\t\tisUpdatingMenuRef ||\n\t\t\t\t\t\t\t\t\tisResolvingNavigationMenus ||\n\t\t\t\t\t\t\t\t\t! hasResolvedNavigationMenus\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{ __( 'Create new Menu' ) }\n\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n\n\treturn NavigationMenuSelectorDropdown;\n}\n\nexport default NavigationMenuSelector;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useNavigationEntities", "useNavigationMenu"]
|
|
7
7
|
}
|
|
@@ -38,7 +38,7 @@ var import_i18n = require("@wordpress/i18n");
|
|
|
38
38
|
var import_icons = require("@wordpress/icons");
|
|
39
39
|
var import_a11y = require("@wordpress/a11y");
|
|
40
40
|
var import_element = require("@wordpress/element");
|
|
41
|
-
var
|
|
41
|
+
var import_use_navigation_entities = __toESM(require("../../use-navigation-entities.cjs"));
|
|
42
42
|
var import_placeholder_preview = __toESM(require("./placeholder-preview.cjs"));
|
|
43
43
|
var import_navigation_menu_selector = __toESM(require("../navigation-menu-selector.cjs"));
|
|
44
44
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
@@ -52,7 +52,7 @@ function NavigationPlaceholder({
|
|
|
52
52
|
onSelectClassicMenu,
|
|
53
53
|
onCreateEmpty
|
|
54
54
|
}) {
|
|
55
|
-
const {
|
|
55
|
+
const { isResolvingMenus, hasResolvedMenus } = (0, import_use_navigation_entities.default)();
|
|
56
56
|
(0, import_element.useEffect)(() => {
|
|
57
57
|
if (!isSelected) {
|
|
58
58
|
return;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/navigation/edit/placeholder/index.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { useEffect } from '@wordpress/element';\
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA6C;AAC7C,kBAAmB;AACnB,mBAAiC;AACjC,kBAAsB;AACtB,qBAA0B;
|
|
6
|
-
"names": ["PlaceholderPreview", "NavigationMenuSelector"]
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { Placeholder, Button, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { navigation, Icon } from '@wordpress/icons';\nimport { speak } from '@wordpress/a11y';\nimport { useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useNavigationEntities from '../../use-navigation-entities';\nimport PlaceholderPreview from './placeholder-preview';\nimport NavigationMenuSelector from '../navigation-menu-selector';\n\nexport default function NavigationPlaceholder( {\n\tisSelected,\n\tcurrentMenuId,\n\tclientId,\n\tcanUserCreateNavigationMenus = false,\n\tisResolvingCanUserCreateNavigationMenus,\n\tonSelectNavigationMenu,\n\tonSelectClassicMenu,\n\tonCreateEmpty,\n} ) {\n\tconst { isResolvingMenus, hasResolvedMenus } = useNavigationEntities();\n\n\tuseEffect( () => {\n\t\tif ( ! isSelected ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isResolvingMenus ) {\n\t\t\tspeak( __( 'Loading navigation block setup options\u2026' ) );\n\t\t}\n\n\t\tif ( hasResolvedMenus ) {\n\t\t\tspeak( __( 'Navigation block setup options ready.' ) );\n\t\t}\n\t}, [ hasResolvedMenus, isResolvingMenus, isSelected ] );\n\n\tconst isResolvingActions =\n\t\tisResolvingMenus && isResolvingCanUserCreateNavigationMenus;\n\n\treturn (\n\t\t<>\n\t\t\t<Placeholder className=\"wp-block-navigation-placeholder\">\n\t\t\t\t{\n\t\t\t\t\t// The <PlaceholderPreview> component is displayed conditionally via CSS depending on\n\t\t\t\t\t// whether the block is selected or not. This is achieved via CSS to avoid\n\t\t\t\t\t// component re-renders\n\t\t\t\t }\n\t\t\t\t<PlaceholderPreview isVisible={ ! isSelected } />\n\t\t\t\t<div\n\t\t\t\t\taria-hidden={ ! isSelected ? true : undefined }\n\t\t\t\t\tclassName=\"wp-block-navigation-placeholder__controls\"\n\t\t\t\t>\n\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions\">\n\t\t\t\t\t\t<div className=\"wp-block-navigation-placeholder__actions__indicator\">\n\t\t\t\t\t\t\t<Icon icon={ navigation } /> { __( 'Navigation' ) }\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ isResolvingActions && <Spinner /> }\n\n\t\t\t\t\t\t<NavigationMenuSelector\n\t\t\t\t\t\t\tcurrentMenuId={ currentMenuId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tonSelectNavigationMenu={ onSelectNavigationMenu }\n\t\t\t\t\t\t\tonSelectClassicMenu={ onSelectClassicMenu }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<hr />\n\n\t\t\t\t\t\t{ canUserCreateNavigationMenus && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\tonClick={ onCreateEmpty }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Start empty' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</Placeholder>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,wBAA6C;AAC7C,kBAAmB;AACnB,mBAAiC;AACjC,kBAAsB;AACtB,qBAA0B;AAK1B,qCAAkC;AAClC,iCAA+B;AAC/B,sCAAmC;AAgCjC;AA9Ba,SAAR,sBAAwC;AAAA,EAC9C;AAAA,EACA;AAAA,EACA;AAAA,EACA,+BAA+B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAAI;AACH,QAAM,EAAE,kBAAkB,iBAAiB,QAAI,+BAAAA,SAAsB;AAErE,gCAAW,MAAM;AAChB,QAAK,CAAE,YAAa;AACnB;AAAA,IACD;AAEA,QAAK,kBAAmB;AACvB,iCAAO,gBAAI,8CAA0C,CAAE;AAAA,IACxD;AAEA,QAAK,kBAAmB;AACvB,iCAAO,gBAAI,uCAAwC,CAAE;AAAA,IACtD;AAAA,EACD,GAAG,CAAE,kBAAkB,kBAAkB,UAAW,CAAE;AAEtD,QAAM,qBACL,oBAAoB;AAErB,SACC,2EACC,uDAAC,iCAAY,WAAU,mCAMtB;AAAA,gDAAC,2BAAAC,SAAA,EAAmB,WAAY,CAAE,YAAa;AAAA,IAC/C;AAAA,MAAC;AAAA;AAAA,QACA,eAAc,CAAE,aAAa,OAAO;AAAA,QACpC,WAAU;AAAA,QAEV,uDAAC,SAAI,WAAU,4CACd;AAAA,uDAAC,SAAI,WAAU,uDACd;AAAA,wDAAC,qBAAK,MAAO,yBAAa;AAAA,YAAE;AAAA,gBAAG,gBAAI,YAAa;AAAA,aACjD;AAAA,UAEA,4CAAC,QAAG;AAAA,UAEF,sBAAsB,4CAAC,6BAAQ;AAAA,UAEjC;AAAA,YAAC,gCAAAC;AAAA,YAAA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA;AAAA,UACD;AAAA,UAEA,4CAAC,QAAG;AAAA,UAEF,gCACD;AAAA,YAAC;AAAA;AAAA,cACA,uBAAqB;AAAA,cACrB,SAAQ;AAAA,cACR,SAAU;AAAA,cAER,8BAAI,aAAc;AAAA;AAAA,UACrB;AAAA,WAEF;AAAA;AAAA,IACD;AAAA,KACD,GACD;AAEF;",
|
|
6
|
+
"names": ["useNavigationEntities", "PlaceholderPreview", "NavigationMenuSelector"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// packages/block-library/src/navigation/use-navigation-entities.js
|
|
21
|
+
var use_navigation_entities_exports = {};
|
|
22
|
+
__export(use_navigation_entities_exports, {
|
|
23
|
+
default: () => useNavigationEntities
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(use_navigation_entities_exports);
|
|
26
|
+
var import_core_data = require("@wordpress/core-data");
|
|
27
|
+
function useNavigationEntities(menuId) {
|
|
28
|
+
const {
|
|
29
|
+
records: menus,
|
|
30
|
+
isResolving: isResolvingMenus,
|
|
31
|
+
hasResolved: hasResolvedMenus
|
|
32
|
+
} = (0, import_core_data.useEntityRecords)("root", "menu", { per_page: -1, context: "view" });
|
|
33
|
+
const {
|
|
34
|
+
records: pages,
|
|
35
|
+
isResolving: isResolvingPages,
|
|
36
|
+
hasResolved: hasResolvedPages
|
|
37
|
+
} = (0, import_core_data.useEntityRecords)("postType", "page", {
|
|
38
|
+
parent: 0,
|
|
39
|
+
order: "asc",
|
|
40
|
+
orderby: "id",
|
|
41
|
+
per_page: -1,
|
|
42
|
+
context: "view"
|
|
43
|
+
});
|
|
44
|
+
const { records: menuItems, hasResolved: hasResolvedMenuItems } = (0, import_core_data.useEntityRecords)(
|
|
45
|
+
"root",
|
|
46
|
+
"menuItem",
|
|
47
|
+
{
|
|
48
|
+
menus: menuId,
|
|
49
|
+
per_page: -1,
|
|
50
|
+
context: "view"
|
|
51
|
+
},
|
|
52
|
+
{ enabled: !!menuId }
|
|
53
|
+
);
|
|
54
|
+
return {
|
|
55
|
+
pages,
|
|
56
|
+
isResolvingPages,
|
|
57
|
+
hasResolvedPages,
|
|
58
|
+
hasPages: !!(hasResolvedPages && pages?.length),
|
|
59
|
+
menus,
|
|
60
|
+
isResolvingMenus,
|
|
61
|
+
hasResolvedMenus,
|
|
62
|
+
hasMenus: !!(hasResolvedMenus && menus?.length),
|
|
63
|
+
menuItems,
|
|
64
|
+
hasResolvedMenuItems
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=use-navigation-entities.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/navigation/use-navigation-entities.js"],
|
|
4
|
+
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { useEntityRecords } from '@wordpress/core-data';\n\n/**\n * @typedef {Object} NavigationEntitiesData\n * @property {Array|undefined} pages - a collection of WP Post entity objects of post type \"Page\".\n * @property {boolean} isResolvingPages - indicates whether the request to fetch pages is currently resolving.\n * @property {boolean} hasResolvedPages - indicates whether the request to fetch pages has finished resolving.\n * @property {Array|undefined} menus - a collection of Menu entity objects.\n * @property {boolean} isResolvingMenus - indicates whether the request to fetch menus is currently resolving.\n * @property {boolean} hasResolvedMenus - indicates whether the request to fetch menus has finished resolving.\n * @property {Array|undefined} menusItems - a collection of Menu Item entity objects for the current menuId.\n * @property {boolean} hasResolvedMenuItems - indicates whether the request to fetch menuItems has finished resolving.\n * @property {boolean} hasPages - indicates whether there is currently any data for pages.\n * @property {boolean} hasMenus - indicates whether there is currently any data for menus.\n */\n\n/**\n * Manages fetching and resolution state for all entities required\n * for the Navigation block.\n *\n * @param {number} menuId the menu for which to retrieve menuItem data.\n * @return { NavigationEntitiesData } the entity data.\n */\nexport default function useNavigationEntities( menuId ) {\n\tconst {\n\t\trecords: menus,\n\t\tisResolving: isResolvingMenus,\n\t\thasResolved: hasResolvedMenus,\n\t} = useEntityRecords( 'root', 'menu', { per_page: -1, context: 'view' } );\n\n\tconst {\n\t\trecords: pages,\n\t\tisResolving: isResolvingPages,\n\t\thasResolved: hasResolvedPages,\n\t} = useEntityRecords( 'postType', 'page', {\n\t\tparent: 0,\n\t\torder: 'asc',\n\t\torderby: 'id',\n\t\tper_page: -1,\n\t\tcontext: 'view',\n\t} );\n\n\tconst { records: menuItems, hasResolved: hasResolvedMenuItems } =\n\t\tuseEntityRecords(\n\t\t\t'root',\n\t\t\t'menuItem',\n\t\t\t{\n\t\t\t\tmenus: menuId,\n\t\t\t\tper_page: -1,\n\t\t\t\tcontext: 'view',\n\t\t\t},\n\t\t\t{ enabled: !! menuId }\n\t\t);\n\n\treturn {\n\t\tpages,\n\t\tisResolvingPages,\n\t\thasResolvedPages,\n\t\thasPages: !! ( hasResolvedPages && pages?.length ),\n\n\t\tmenus,\n\t\tisResolvingMenus,\n\t\thasResolvedMenus,\n\t\thasMenus: !! ( hasResolvedMenus && menus?.length ),\n\n\t\tmenuItems,\n\t\thasResolvedMenuItems,\n\t};\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,uBAAiC;AAuBlB,SAAR,sBAAwC,QAAS;AACvD,QAAM;AAAA,IACL,SAAS;AAAA,IACT,aAAa;AAAA,IACb,aAAa;AAAA,EACd,QAAI,mCAAkB,QAAQ,QAAQ,EAAE,UAAU,IAAI,SAAS,OAAO,CAAE;AAExE,QAAM;AAAA,IACL,SAAS;AAAA,IACT,aAAa;AAAA,IACb,aAAa;AAAA,EACd,QAAI,mCAAkB,YAAY,QAAQ;AAAA,IACzC,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS;AAAA,EACV,CAAE;AAEF,QAAM,EAAE,SAAS,WAAW,aAAa,qBAAqB,QAC7D;AAAA,IACC;AAAA,IACA;AAAA,IACA;AAAA,MACC,OAAO;AAAA,MACP,UAAU;AAAA,MACV,SAAS;AAAA,IACV;AAAA,IACA,EAAE,SAAS,CAAC,CAAE,OAAO;AAAA,EACtB;AAED,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,CAAC,EAAI,oBAAoB,OAAO;AAAA,IAE1C;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU,CAAC,EAAI,oBAAoB,OAAO;AAAA,IAE1C;AAAA,IACA;AAAA,EACD;AACD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -50,14 +50,20 @@ var { state, actions } = (0, import_interactivity.store)(
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
actions: {
|
|
53
|
-
openMenuOnHover() {
|
|
53
|
+
openMenuOnHover(event) {
|
|
54
|
+
if (event?.pointerType === "touch") {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
54
57
|
const { type, overlayOpenedBy } = (0, import_interactivity.getContext)();
|
|
55
58
|
if (type === "submenu" && // Only open on hover if the overlay is closed.
|
|
56
59
|
Object.values(overlayOpenedBy || {}).filter(Boolean).length === 0) {
|
|
57
60
|
actions.openMenu("hover");
|
|
58
61
|
}
|
|
59
62
|
},
|
|
60
|
-
closeMenuOnHover() {
|
|
63
|
+
closeMenuOnHover(event) {
|
|
64
|
+
if (event?.pointerType === "touch") {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
61
67
|
const { type, overlayOpenedBy } = (0, import_interactivity.getContext)();
|
|
62
68
|
if (type === "submenu" && // Only close on hover if the overlay is closed.
|
|
63
69
|
Object.values(overlayOpenedBy || {}).filter(Boolean).length === 0) {
|
|
@@ -87,6 +93,7 @@ var { state, actions } = (0, import_interactivity.store)(
|
|
|
87
93
|
if (menuOpenedBy.click || menuOpenedBy.focus) {
|
|
88
94
|
actions.closeMenu("click");
|
|
89
95
|
actions.closeMenu("focus");
|
|
96
|
+
actions.closeMenu("hover");
|
|
90
97
|
} else {
|
|
91
98
|
ctx.previousFocus = ref;
|
|
92
99
|
actions.openMenu("click");
|