@wordpress/block-editor 12.14.0 → 12.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +1 -1
- package/build/components/block-list/block.native.js +2 -0
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js +1 -1
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +25 -16
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +4 -2
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-list/index.js +36 -19
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-rename/index.js +28 -0
- package/build/components/block-rename/index.js.map +1 -0
- package/build/components/block-rename/is-empty-string.js +10 -0
- package/build/components/block-rename/is-empty-string.js.map +1 -0
- package/build/components/block-rename/modal.js +87 -0
- package/build/components/block-rename/modal.js.map +1 -0
- package/build/components/block-rename/rename-control.js +74 -0
- package/build/components/block-rename/rename-control.js.map +1 -0
- package/build/components/block-rename/use-block-rename.js +17 -0
- package/build/components/block-rename/use-block-rename.js.map +1 -0
- package/build/components/block-settings-menu/block-settings-dropdown.js +33 -20
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +7 -0
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-types-list/index.js +6 -2
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +8 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/global-styles/advanced-panel.js +1 -1
- package/build/components/global-styles/advanced-panel.js.map +1 -1
- package/build/components/image-size-control/index.js +0 -5
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +3 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js +29 -31
- package/build/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/utils.js +3 -4
- package/build/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +2 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter-listbox/index.js +11 -6
- package/build/components/inserter-listbox/index.js.map +1 -1
- package/build/components/inserter-listbox/item.js +24 -23
- package/build/components/inserter-listbox/item.js.map +1 -1
- package/build/components/inserter-listbox/row.js +5 -5
- package/build/components/inserter-listbox/row.js.map +1 -1
- package/build/components/list-view/use-list-view-expand-selected-item.js +2 -3
- package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build/components/preview-options/index.js +4 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +1 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +34 -3
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +30 -1
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +4 -1
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +2 -1
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-settings/index.js +2 -2
- package/build/components/use-settings/index.js.map +1 -1
- package/build/hooks/block-renaming.js +42 -0
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/custom-fields.js +53 -48
- package/build/hooks/custom-fields.js.map +1 -1
- package/build/hooks/index.js +0 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +13 -7
- package/build/hooks/layout.js.map +1 -1
- package/build/layouts/constrained.js +4 -3
- package/build/layouts/constrained.js.map +1 -1
- package/build/store/selectors.js +2 -0
- package/build/store/selectors.js.map +1 -1
- package/build/utils/transform-styles/index.js +26 -6
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -0
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +1 -1
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +24 -15
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +4 -2
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +36 -19
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-rename/index.js +4 -0
- package/build-module/components/block-rename/index.js.map +1 -0
- package/build-module/components/block-rename/is-empty-string.js +4 -0
- package/build-module/components/block-rename/is-empty-string.js.map +1 -0
- package/build-module/components/block-rename/modal.js +79 -0
- package/build-module/components/block-rename/modal.js.map +1 -0
- package/build-module/components/block-rename/rename-control.js +66 -0
- package/build-module/components/block-rename/rename-control.js.map +1 -0
- package/build-module/components/block-rename/use-block-rename.js +10 -0
- package/build-module/components/block-rename/use-block-rename.js.map +1 -0
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +34 -21
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +7 -0
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-types-list/index.js +6 -2
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +8 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/global-styles/advanced-panel.js +1 -1
- package/build-module/components/global-styles/advanced-panel.js.map +1 -1
- package/build-module/components/image-size-control/index.js +0 -5
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +3 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js +30 -32
- package/build-module/components/inner-blocks/warning-max-depth-exceeded.native.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +2 -2
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +2 -2
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/utils.js +3 -4
- package/build-module/components/inserter/block-patterns-tab/utils.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +2 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter-listbox/index.js +13 -8
- package/build-module/components/inserter-listbox/index.js.map +1 -1
- package/build-module/components/inserter-listbox/item.js +25 -23
- package/build-module/components/inserter-listbox/item.js.map +1 -1
- package/build-module/components/inserter-listbox/row.js +6 -5
- package/build-module/components/inserter-listbox/row.js.map +1 -1
- package/build-module/components/list-view/use-list-view-expand-selected-item.js +2 -3
- package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -1
- package/build-module/components/preview-options/index.js +4 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +1 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +34 -3
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +31 -2
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +4 -1
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +2 -1
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +2 -2
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/hooks/block-renaming.js +40 -0
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/custom-fields.js +53 -48
- package/build-module/hooks/custom-fields.js.map +1 -1
- package/build-module/hooks/index.js +0 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +13 -7
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/layouts/constrained.js +4 -3
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/store/selectors.js +2 -0
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +24 -7
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +6 -6
- package/build-style/content.css +6 -6
- package/build-style/style-rtl.css +10 -5
- package/build-style/style.css +10 -5
- package/package.json +31 -31
- package/src/components/block-list/block.native.js +2 -0
- package/src/components/block-parent-selector/index.js +1 -1
- package/src/components/block-pattern-setup/index.js +38 -22
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -0
- package/src/components/block-pattern-setup/style.scss +4 -1
- package/src/components/block-patterns-list/README.md +4 -4
- package/src/components/block-patterns-list/index.js +60 -34
- package/src/components/block-patterns-list/style.scss +7 -0
- package/src/components/block-rename/index.js +3 -0
- package/src/components/block-rename/is-empty-string.js +3 -0
- package/src/components/block-rename/modal.js +115 -0
- package/src/components/block-rename/rename-control.js +80 -0
- package/src/components/block-rename/use-block-rename.js +10 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +38 -34
- package/src/components/block-settings-menu-controls/index.js +9 -0
- package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -4
- package/src/components/block-types-list/index.js +5 -4
- package/src/components/button-block-appender/content.scss +2 -2
- package/src/components/date-format-picker/index.js +7 -0
- package/src/components/editable-text/README.md +0 -36
- package/src/components/global-styles/advanced-panel.js +1 -1
- package/src/components/image-size-control/index.js +0 -6
- package/src/components/inner-blocks/index.js +6 -2
- package/src/components/inner-blocks/warning-max-depth-exceeded.native.js +57 -33
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +7 -3
- package/src/components/inserter/block-patterns-tab/use-pattern-categories.js +6 -1
- package/src/components/inserter/block-patterns-tab/utils.js +6 -4
- package/src/components/inserter/hooks/use-patterns-state.js +3 -1
- package/src/components/inserter-listbox/index.js +11 -7
- package/src/components/inserter-listbox/item.js +11 -12
- package/src/components/inserter-listbox/row.js +6 -12
- package/src/components/list-view/use-list-view-expand-selected-item.js +7 -8
- package/src/components/plain-text/README.md +0 -28
- package/src/components/preview-options/index.js +2 -0
- package/src/components/rich-text/README.md +0 -58
- package/src/components/rich-text/index.native.js +1 -1
- package/src/components/rich-text/native/index.native.js +45 -2
- package/src/components/rich-text/use-input-rules.js +30 -2
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +1 -1
- package/src/components/url-input/README.md +1 -74
- package/src/components/use-block-drop-zone/index.js +4 -1
- package/src/components/use-moving-animation/index.js +1 -1
- package/src/components/use-settings/index.js +2 -2
- package/src/components/use-settings/test/index.js +1 -1
- package/src/hooks/block-renaming.js +47 -0
- package/src/hooks/custom-fields.js +68 -65
- package/src/hooks/index.js +0 -1
- package/src/hooks/layout.js +12 -8
- package/src/hooks/test/__snapshots__/align.native.js.snap +5 -5
- package/src/layouts/constrained.js +57 -50
- package/src/store/selectors.js +2 -0
- package/src/style.scss +1 -1
- package/src/utils/test/transform-styles.js +49 -0
- package/src/utils/transform-styles/index.js +39 -13
- package/build/hooks/block-rename-ui.js +0 -167
- package/build/hooks/block-rename-ui.js.map +0 -1
- package/build-module/hooks/block-rename-ui.js +0 -159
- package/build-module/hooks/block-rename-ui.js.map +0 -1
- package/src/hooks/block-rename-ui.js +0 -228
- /package/src/{hooks/block-rename-ui.scss → components/block-rename/style.scss} +0 -0
|
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _postcss =
|
|
8
|
+
var _postcss = _interopRequireWildcard(require("postcss"));
|
|
9
9
|
var _postcssPrefixwrap = _interopRequireDefault(require("postcss-prefixwrap"));
|
|
10
10
|
var _postcssUrlrebase = _interopRequireDefault(require("postcss-urlrebase"));
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
13
|
/**
|
|
12
14
|
* External dependencies
|
|
13
15
|
*/
|
|
@@ -30,11 +32,29 @@ const transformStyles = (styles, wrapperSelector = '') => {
|
|
|
30
32
|
ignoredSelectors = [],
|
|
31
33
|
baseURL
|
|
32
34
|
}) => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
// When there is no wrapper selector or base URL, there is no need
|
|
36
|
+
// to transform the CSS. This is most cases because in the default
|
|
37
|
+
// iframed editor, no wrapping is needed, and not many styles
|
|
38
|
+
// provide a base URL.
|
|
39
|
+
if (!wrapperSelector && !baseURL) {
|
|
40
|
+
return css;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
return (0, _postcss.default)([wrapperSelector && (0, _postcssPrefixwrap.default)(wrapperSelector, {
|
|
44
|
+
ignoredSelectors: [...ignoredSelectors, wrapperSelector]
|
|
45
|
+
}), baseURL && (0, _postcssUrlrebase.default)({
|
|
46
|
+
rootUrl: baseURL
|
|
47
|
+
})].filter(Boolean)).process(css, {}).css; // use sync PostCSS API
|
|
48
|
+
} catch (error) {
|
|
49
|
+
if (error instanceof _postcss.CssSyntaxError) {
|
|
50
|
+
// eslint-disable-next-line no-console
|
|
51
|
+
console.warn('wp.blockEditor.transformStyles Failed to transform CSS.', error.message + '\n' + error.showSourceCode(false));
|
|
52
|
+
} else {
|
|
53
|
+
// eslint-disable-next-line no-console
|
|
54
|
+
console.warn('wp.blockEditor.transformStyles Failed to transform CSS.', error);
|
|
55
|
+
}
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
38
58
|
});
|
|
39
59
|
};
|
|
40
60
|
var _default = transformStyles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_postcss","
|
|
1
|
+
{"version":3,"names":["_postcss","_interopRequireWildcard","require","_postcssPrefixwrap","_interopRequireDefault","_postcssUrlrebase","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","transformStyles","styles","wrapperSelector","map","css","ignoredSelectors","baseURL","postcss","wrap","rebaseUrl","rootUrl","filter","Boolean","process","error","CssSyntaxError","console","warn","message","showSourceCode","_default","exports"],"sources":["@wordpress/block-editor/src/utils/transform-styles/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport postcss, { CssSyntaxError } from 'postcss';\nimport wrap from 'postcss-prefixwrap';\nimport rebaseUrl from 'postcss-urlrebase';\n\n/**\n * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.\n *\n * @typedef {Object} EditorStyle\n * @property {string} css the CSS block(s), as a single string.\n * @property {?string} baseURL the base URL to be used as the reference when rewritting urls.\n * @property {?string[]} ignoredSelectors the selectors not to wrap.\n *\n * @param {EditorStyle[]} styles CSS rules.\n * @param {string} wrapperSelector Wrapper selector.\n * @return {Array} converted rules.\n */\nconst transformStyles = ( styles, wrapperSelector = '' ) => {\n\treturn styles.map( ( { css, ignoredSelectors = [], baseURL } ) => {\n\t\t// When there is no wrapper selector or base URL, there is no need\n\t\t// to transform the CSS. This is most cases because in the default\n\t\t// iframed editor, no wrapping is needed, and not many styles\n\t\t// provide a base URL.\n\t\tif ( ! wrapperSelector && ! baseURL ) {\n\t\t\treturn css;\n\t\t}\n\n\t\ttry {\n\t\t\treturn postcss(\n\t\t\t\t[\n\t\t\t\t\twrapperSelector &&\n\t\t\t\t\t\twrap( wrapperSelector, {\n\t\t\t\t\t\t\tignoredSelectors: [\n\t\t\t\t\t\t\t\t...ignoredSelectors,\n\t\t\t\t\t\t\t\twrapperSelector,\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t} ),\n\t\t\t\t\tbaseURL && rebaseUrl( { rootUrl: baseURL } ),\n\t\t\t\t].filter( Boolean )\n\t\t\t).process( css, {} ).css; // use sync PostCSS API\n\t\t} catch ( error ) {\n\t\t\tif ( error instanceof CssSyntaxError ) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'wp.blockEditor.transformStyles Failed to transform CSS.',\n\t\t\t\t\terror.message + '\\n' + error.showSourceCode( false )\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'wp.blockEditor.transformStyles Failed to transform CSS.',\n\t\t\t\t\terror\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\t} );\n};\n\nexport default transformStyles;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Pressable","View","useCallback","useMemo","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockOutline","store","blockEditorStore","useLayout","useSettings","EMPTY_ARRAY","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","createElement","accessibilityRole","disabled","onPress","style","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","currentBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","Provider","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\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\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Pressable","View","useCallback","useMemo","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockOutline","store","blockEditorStore","useLayout","useSettings","EMPTY_ARRAY","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","createElement","accessibilityRole","disabled","onPress","style","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","currentBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","Provider","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\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\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
@@ -70,7 +70,7 @@ export default function BlockParentSelector() {
|
|
|
70
70
|
className: "block-editor-block-parent-selector__button",
|
|
71
71
|
onClick: () => selectBlock(firstParentClientId),
|
|
72
72
|
label: sprintf( /* translators: %s: Name of the block's parent. */
|
|
73
|
-
__('Select %s'), blockInformation?.title),
|
|
73
|
+
__('Select parent block: %s'), blockInformation?.title),
|
|
74
74
|
showTooltip: true,
|
|
75
75
|
icon: createElement(BlockIcon, {
|
|
76
76
|
icon: blockInformation?.icon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getBlockType","store","blocksStore","ToolbarButton","useSelect","useDispatch","__","sprintf","useRef","useBlockDisplayInformation","BlockIcon","useShowHoveredOrFocusedGestures","blockEditorStore","BlockParentSelector","selectBlock","firstParentClientId","isVisible","select","getBlockName","getBlockParents","getSelectedBlockClientId","getBlockEditingMode","hasBlockSupport","selectedBlockClientId","parents","_firstParentClientId","length","parentBlockName","_parentBlockType","blockInformation","nodeRef","showHoveredOrFocusedGestures","ref","highlightParent","createElement","className","key","onClick","label","title","showTooltip","icon"],"sources":["@wordpress/block-editor/src/components/block-parent-selector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport BlockIcon from '../block-icon';\nimport { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Block parent selector component, displaying the hierarchy of the\n * current block selection as a single icon to \"go up\" a level.\n *\n * @return {Component} Parent block selector.\n */\nexport default function BlockParentSelector() {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst { firstParentClientId, isVisible } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetBlockEditingMode,\n\t\t} = select( blockEditorStore );\n\t\tconst { hasBlockSupport } = select( blocksStore );\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\t\tconst _parentBlockType = getBlockType( parentBlockName );\n\t\treturn {\n\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\tisVisible:\n\t\t\t\t_firstParentClientId &&\n\t\t\t\tgetBlockEditingMode( _firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\t_parentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t};\n\t}, [] );\n\tconst blockInformation = useBlockDisplayInformation( firstParentClientId );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t\thighlightParent: true,\n\t} );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-block-parent-selector\"\n\t\t\tkey={ firstParentClientId }\n\t\t\tref={ nodeRef }\n\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName=\"block-editor-block-parent-selector__button\"\n\t\t\t\tonClick={ () => selectBlock( firstParentClientId ) }\n\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t__( 'Select %s' ),\n\t\t\t\t\tblockInformation?.title\n\t\t\t\t) }\n\t\t\t\tshowTooltip\n\t\t\t\ticon={ <BlockIcon icon={ blockInformation?.icon } /> }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACtE,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,QAAQ,oBAAoB;;AAE3C;AACA;AACA;AACA,OAAOC,0BAA0B,MAAM,kCAAkC;AACzE,OAAOC,SAAS,MAAM,eAAe;AACrC,SAASC,+BAA+B,QAAQ,wBAAwB;AACxE,SAASV,KAAK,IAAIW,gBAAgB,QAAQ,aAAa;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,mBAAmBA,CAAA,EAAG;EAC7C,MAAM;IAAEC;EAAY,CAAC,GAAGT,WAAW,CAAEO,gBAAiB,CAAC;EACvD,MAAM;IAAEG,mBAAmB;IAAEC;EAAU,CAAC,GAAGZ,SAAS,CAAIa,MAAM,IAAM;IACnE,MAAM;MACLC,YAAY;MACZC,eAAe;MACfC,wBAAwB;MACxBC;IACD,CAAC,GAAGJ,MAAM,CAAEL,gBAAiB,CAAC;IAC9B,MAAM;MAAEU;IAAgB,CAAC,GAAGL,MAAM,CAAEf,WAAY,CAAC;IACjD,MAAMqB,qBAAqB,GAAGH,wBAAwB,CAAC,CAAC;IACxD,MAAMI,OAAO,GAAGL,eAAe,CAAEI,qBAAsB,CAAC;IACxD,MAAME,oBAAoB,GAAGD,OAAO,CAAEA,OAAO,CAACE,MAAM,GAAG,CAAC,CAAE;IAC1D,MAAMC,eAAe,GAAGT,YAAY,CAAEO,oBAAqB,CAAC;IAC5D,MAAMG,gBAAgB,GAAG5B,YAAY,CAAE2B,eAAgB,CAAC;IACxD,OAAO;MACNZ,mBAAmB,EAAEU,oBAAoB;MACzCT,SAAS,EACRS,oBAAoB,IACpBJ,mBAAmB,CAAEI,oBAAqB,CAAC,KAAK,SAAS,IACzDH,eAAe,CACdM,gBAAgB,EAChB,8BAA8B,EAC9B,IACD;IACF,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMC,gBAAgB,GAAGpB,0BAA0B,CAAEM,mBAAoB,CAAC;;EAE1E;EACA;EACA,MAAMe,OAAO,GAAGtB,MAAM,CAAC,CAAC;EACxB,MAAMuB,4BAA4B,GAAGpB,+BAA+B,CAAE;IACrEqB,GAAG,EAAEF,OAAO;IACZG,eAAe,EAAE;EAClB,CAAE,CAAC;EAEH,IAAK,CAAEjB,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,OACCkB,aAAA;IACCC,SAAS,EAAC,oCAAoC;IAC9CC,GAAG,EAAGrB,mBAAqB;IAC3BiB,GAAG,EAAGF,OAAS;IAAA,GACVC;EAA4B,GAEjCG,aAAA,CAAC/B,aAAa;IACbgC,SAAS,EAAC,4CAA4C;IACtDE,OAAO,EAAGA,CAAA,KAAMvB,WAAW,CAAEC,mBAAoB,CAAG;IACpDuB,KAAK,EAAG/B,OAAO,EACd;IACAD,EAAE,CAAE,
|
|
1
|
+
{"version":3,"names":["getBlockType","store","blocksStore","ToolbarButton","useSelect","useDispatch","__","sprintf","useRef","useBlockDisplayInformation","BlockIcon","useShowHoveredOrFocusedGestures","blockEditorStore","BlockParentSelector","selectBlock","firstParentClientId","isVisible","select","getBlockName","getBlockParents","getSelectedBlockClientId","getBlockEditingMode","hasBlockSupport","selectedBlockClientId","parents","_firstParentClientId","length","parentBlockName","_parentBlockType","blockInformation","nodeRef","showHoveredOrFocusedGestures","ref","highlightParent","createElement","className","key","onClick","label","title","showTooltip","icon"],"sources":["@wordpress/block-editor/src/components/block-parent-selector/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType, store as blocksStore } from '@wordpress/blocks';\nimport { ToolbarButton } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport BlockIcon from '../block-icon';\nimport { useShowHoveredOrFocusedGestures } from '../block-toolbar/utils';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Block parent selector component, displaying the hierarchy of the\n * current block selection as a single icon to \"go up\" a level.\n *\n * @return {Component} Parent block selector.\n */\nexport default function BlockParentSelector() {\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst { firstParentClientId, isVisible } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockName,\n\t\t\tgetBlockParents,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetBlockEditingMode,\n\t\t} = select( blockEditorStore );\n\t\tconst { hasBlockSupport } = select( blocksStore );\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst parents = getBlockParents( selectedBlockClientId );\n\t\tconst _firstParentClientId = parents[ parents.length - 1 ];\n\t\tconst parentBlockName = getBlockName( _firstParentClientId );\n\t\tconst _parentBlockType = getBlockType( parentBlockName );\n\t\treturn {\n\t\t\tfirstParentClientId: _firstParentClientId,\n\t\t\tisVisible:\n\t\t\t\t_firstParentClientId &&\n\t\t\t\tgetBlockEditingMode( _firstParentClientId ) === 'default' &&\n\t\t\t\thasBlockSupport(\n\t\t\t\t\t_parentBlockType,\n\t\t\t\t\t'__experimentalParentSelector',\n\t\t\t\t\ttrue\n\t\t\t\t),\n\t\t};\n\t}, [] );\n\tconst blockInformation = useBlockDisplayInformation( firstParentClientId );\n\n\t// Allows highlighting the parent block outline when focusing or hovering\n\t// the parent block selector within the child.\n\tconst nodeRef = useRef();\n\tconst showHoveredOrFocusedGestures = useShowHoveredOrFocusedGestures( {\n\t\tref: nodeRef,\n\t\thighlightParent: true,\n\t} );\n\n\tif ( ! isVisible ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-block-parent-selector\"\n\t\t\tkey={ firstParentClientId }\n\t\t\tref={ nodeRef }\n\t\t\t{ ...showHoveredOrFocusedGestures }\n\t\t>\n\t\t\t<ToolbarButton\n\t\t\t\tclassName=\"block-editor-block-parent-selector__button\"\n\t\t\t\tonClick={ () => selectBlock( firstParentClientId ) }\n\t\t\t\tlabel={ sprintf(\n\t\t\t\t\t/* translators: %s: Name of the block's parent. */\n\t\t\t\t\t__( 'Select parent block: %s' ),\n\t\t\t\t\tblockInformation?.title\n\t\t\t\t) }\n\t\t\t\tshowTooltip\n\t\t\t\ticon={ <BlockIcon icon={ blockInformation?.icon } /> }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,YAAY,EAAEC,KAAK,IAAIC,WAAW,QAAQ,mBAAmB;AACtE,SAASC,aAAa,QAAQ,uBAAuB;AACrD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;AAC7C,SAASC,MAAM,QAAQ,oBAAoB;;AAE3C;AACA;AACA;AACA,OAAOC,0BAA0B,MAAM,kCAAkC;AACzE,OAAOC,SAAS,MAAM,eAAe;AACrC,SAASC,+BAA+B,QAAQ,wBAAwB;AACxE,SAASV,KAAK,IAAIW,gBAAgB,QAAQ,aAAa;;AAEvD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,mBAAmBA,CAAA,EAAG;EAC7C,MAAM;IAAEC;EAAY,CAAC,GAAGT,WAAW,CAAEO,gBAAiB,CAAC;EACvD,MAAM;IAAEG,mBAAmB;IAAEC;EAAU,CAAC,GAAGZ,SAAS,CAAIa,MAAM,IAAM;IACnE,MAAM;MACLC,YAAY;MACZC,eAAe;MACfC,wBAAwB;MACxBC;IACD,CAAC,GAAGJ,MAAM,CAAEL,gBAAiB,CAAC;IAC9B,MAAM;MAAEU;IAAgB,CAAC,GAAGL,MAAM,CAAEf,WAAY,CAAC;IACjD,MAAMqB,qBAAqB,GAAGH,wBAAwB,CAAC,CAAC;IACxD,MAAMI,OAAO,GAAGL,eAAe,CAAEI,qBAAsB,CAAC;IACxD,MAAME,oBAAoB,GAAGD,OAAO,CAAEA,OAAO,CAACE,MAAM,GAAG,CAAC,CAAE;IAC1D,MAAMC,eAAe,GAAGT,YAAY,CAAEO,oBAAqB,CAAC;IAC5D,MAAMG,gBAAgB,GAAG5B,YAAY,CAAE2B,eAAgB,CAAC;IACxD,OAAO;MACNZ,mBAAmB,EAAEU,oBAAoB;MACzCT,SAAS,EACRS,oBAAoB,IACpBJ,mBAAmB,CAAEI,oBAAqB,CAAC,KAAK,SAAS,IACzDH,eAAe,CACdM,gBAAgB,EAChB,8BAA8B,EAC9B,IACD;IACF,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMC,gBAAgB,GAAGpB,0BAA0B,CAAEM,mBAAoB,CAAC;;EAE1E;EACA;EACA,MAAMe,OAAO,GAAGtB,MAAM,CAAC,CAAC;EACxB,MAAMuB,4BAA4B,GAAGpB,+BAA+B,CAAE;IACrEqB,GAAG,EAAEF,OAAO;IACZG,eAAe,EAAE;EAClB,CAAE,CAAC;EAEH,IAAK,CAAEjB,SAAS,EAAG;IAClB,OAAO,IAAI;EACZ;EAEA,OACCkB,aAAA;IACCC,SAAS,EAAC,oCAAoC;IAC9CC,GAAG,EAAGrB,mBAAqB;IAC3BiB,GAAG,EAAGF,OAAS;IAAA,GACVC;EAA4B,GAEjCG,aAAA,CAAC/B,aAAa;IACbgC,SAAS,EAAC,4CAA4C;IACtDE,OAAO,EAAGA,CAAA,KAAMvB,WAAW,CAAEC,mBAAoB,CAAG;IACpDuB,KAAK,EAAG/B,OAAO,EACd;IACAD,EAAE,CAAE,yBAA0B,CAAC,EAC/BuB,gBAAgB,EAAEU,KACnB,CAAG;IACHC,WAAW;IACXC,IAAI,EAAGP,aAAA,CAACxB,SAAS;MAAC+B,IAAI,EAAGZ,gBAAgB,EAAEY;IAAM,CAAE;EAAG,CACtD,CACG,CAAC;AAER"}
|
|
@@ -4,7 +4,7 @@ import { createElement, Fragment } from "react";
|
|
|
4
4
|
*/
|
|
5
5
|
import { useDispatch } from '@wordpress/data';
|
|
6
6
|
import { cloneBlock } from '@wordpress/blocks';
|
|
7
|
-
import { VisuallyHidden,
|
|
7
|
+
import { VisuallyHidden, privateApis as componentsPrivateApis } from '@wordpress/components';
|
|
8
8
|
import { useState } from '@wordpress/element';
|
|
9
9
|
import { useInstanceId } from '@wordpress/compose';
|
|
10
10
|
import { __ } from '@wordpress/i18n';
|
|
@@ -17,6 +17,12 @@ import BlockPreview from '../block-preview';
|
|
|
17
17
|
import SetupToolbar from './setup-toolbar';
|
|
18
18
|
import usePatternsSetup from './use-patterns-setup';
|
|
19
19
|
import { VIEWMODES } from './constants';
|
|
20
|
+
import { unlock } from '../../lock-unlock';
|
|
21
|
+
const {
|
|
22
|
+
CompositeV2: Composite,
|
|
23
|
+
CompositeItemV2: CompositeItem,
|
|
24
|
+
useCompositeStoreV2: useCompositeStore
|
|
25
|
+
} = unlock(componentsPrivateApis);
|
|
20
26
|
const SetupContent = ({
|
|
21
27
|
viewMode,
|
|
22
28
|
activeSlide,
|
|
@@ -24,7 +30,7 @@ const SetupContent = ({
|
|
|
24
30
|
onBlockPatternSelect,
|
|
25
31
|
showTitles
|
|
26
32
|
}) => {
|
|
27
|
-
const
|
|
33
|
+
const compositeStore = useCompositeStore();
|
|
28
34
|
const containerClass = 'block-editor-block-pattern-setup__container';
|
|
29
35
|
if (viewMode === VIEWMODES.carousel) {
|
|
30
36
|
const slideClass = new Map([[activeSlide, 'active-slide'], [activeSlide - 1, 'previous-slide'], [activeSlide + 1, 'next-slide']]);
|
|
@@ -32,9 +38,10 @@ const SetupContent = ({
|
|
|
32
38
|
className: "block-editor-block-pattern-setup__carousel"
|
|
33
39
|
}, createElement("div", {
|
|
34
40
|
className: containerClass
|
|
35
|
-
}, createElement("
|
|
41
|
+
}, createElement("div", {
|
|
36
42
|
className: "carousel-container"
|
|
37
43
|
}, patterns.map((pattern, index) => createElement(BlockPatternSlide, {
|
|
44
|
+
active: index === activeSlide,
|
|
38
45
|
className: slideClass.get(index) || '',
|
|
39
46
|
key: pattern.name,
|
|
40
47
|
pattern: pattern
|
|
@@ -43,7 +50,7 @@ const SetupContent = ({
|
|
|
43
50
|
return createElement("div", {
|
|
44
51
|
className: "block-editor-block-pattern-setup__grid"
|
|
45
52
|
}, createElement(Composite, {
|
|
46
|
-
|
|
53
|
+
store: compositeStore,
|
|
47
54
|
role: "listbox",
|
|
48
55
|
className: containerClass,
|
|
49
56
|
"aria-label": __('Patterns list')
|
|
@@ -51,14 +58,12 @@ const SetupContent = ({
|
|
|
51
58
|
key: pattern.name,
|
|
52
59
|
pattern: pattern,
|
|
53
60
|
onSelect: onBlockPatternSelect,
|
|
54
|
-
composite: composite,
|
|
55
61
|
showTitles: showTitles
|
|
56
62
|
}))));
|
|
57
63
|
};
|
|
58
64
|
function BlockPattern({
|
|
59
65
|
pattern,
|
|
60
66
|
onSelect,
|
|
61
|
-
composite,
|
|
62
67
|
showTitles
|
|
63
68
|
}) {
|
|
64
69
|
const baseClassName = 'block-editor-block-pattern-setup-list';
|
|
@@ -69,14 +74,15 @@ function BlockPattern({
|
|
|
69
74
|
} = pattern;
|
|
70
75
|
const descriptionId = useInstanceId(BlockPattern, `${baseClassName}__item-description`);
|
|
71
76
|
return createElement("div", {
|
|
72
|
-
className: `${baseClassName}__list-item
|
|
73
|
-
"aria-label": pattern.title,
|
|
74
|
-
"aria-describedby": pattern.description ? descriptionId : undefined
|
|
77
|
+
className: `${baseClassName}__list-item`
|
|
75
78
|
}, createElement(CompositeItem, {
|
|
79
|
+
render: createElement("div", {
|
|
80
|
+
"aria-describedby": description ? descriptionId : undefined,
|
|
81
|
+
"aria-label": pattern.title,
|
|
82
|
+
className: `${baseClassName}__item`
|
|
83
|
+
}),
|
|
84
|
+
id: `${baseClassName}__pattern__${pattern.name}`,
|
|
76
85
|
role: "option",
|
|
77
|
-
as: "div",
|
|
78
|
-
...composite,
|
|
79
|
-
className: `${baseClassName}__item`,
|
|
80
86
|
onClick: () => onSelect(blocks)
|
|
81
87
|
}, createElement(BlockPreview, {
|
|
82
88
|
blocks: blocks,
|
|
@@ -88,6 +94,7 @@ function BlockPattern({
|
|
|
88
94
|
}, description)));
|
|
89
95
|
}
|
|
90
96
|
function BlockPatternSlide({
|
|
97
|
+
active,
|
|
91
98
|
className,
|
|
92
99
|
pattern,
|
|
93
100
|
minHeight
|
|
@@ -98,7 +105,9 @@ function BlockPatternSlide({
|
|
|
98
105
|
description
|
|
99
106
|
} = pattern;
|
|
100
107
|
const descriptionId = useInstanceId(BlockPatternSlide, 'block-editor-block-pattern-setup-list__item-description');
|
|
101
|
-
return createElement("
|
|
108
|
+
return createElement("div", {
|
|
109
|
+
"aria-hidden": !active,
|
|
110
|
+
role: "img",
|
|
102
111
|
className: `pattern-slide ${className}`,
|
|
103
112
|
"aria-label": title,
|
|
104
113
|
"aria-describedby": description ? descriptionId : undefined
|
|
@@ -145,10 +154,10 @@ const BlockPatternSetup = ({
|
|
|
145
154
|
activeSlide: activeSlide,
|
|
146
155
|
totalSlides: patterns.length,
|
|
147
156
|
handleNext: () => {
|
|
148
|
-
setActiveSlide(active => active + 1);
|
|
157
|
+
setActiveSlide(active => Math.min(active + 1, patterns.length - 1));
|
|
149
158
|
},
|
|
150
159
|
handlePrevious: () => {
|
|
151
|
-
setActiveSlide(active => active - 1);
|
|
160
|
+
setActiveSlide(active => Math.max(active - 1, 0));
|
|
152
161
|
},
|
|
153
162
|
onBlockPatternSelect: () => {
|
|
154
163
|
onPatternSelectCallback(patterns[activeSlide].blocks);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useDispatch","cloneBlock","VisuallyHidden","__unstableComposite","Composite","__unstableUseCompositeState","useCompositeState","__unstableCompositeItem","CompositeItem","useState","useInstanceId","__","store","blockEditorStore","BlockPreview","SetupToolbar","usePatternsSetup","VIEWMODES","SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","showTitles","composite","containerClass","carousel","slideClass","Map","createElement","className","map","pattern","index","BlockPatternSlide","get","key","name","role","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","title","undefined","as","onClick","id","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","initialViewMode","setViewMode","setActiveSlide","replaceBlock","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","Fragment","totalSlides","handleNext","active","handlePrevious"],"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n\tshowTitles,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-pattern-setup__carousel\">\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__grid\">\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t\tshowTitles={ showTitles }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite, showTitles } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t\t{ showTitles && (\n\t\t\t\t\t<div className={ `${ baseClassName }__item-title` }>\n\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ !! description && (\n\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t</CompositeItem>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview blocks={ blocks } minHeight={ minHeight } />\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tonBlockPatternSelect,\n\tinitialViewMode = VIEWMODES.carousel,\n\tshowTitles = false,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( initialViewMode );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\n\tif ( ! patterns?.length ) {\n\t\treturn null;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t\tshowTitles={ showTitles }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["useDispatch","cloneBlock","VisuallyHidden","privateApis","componentsPrivateApis","useState","useInstanceId","__","store","blockEditorStore","BlockPreview","SetupToolbar","usePatternsSetup","VIEWMODES","unlock","CompositeV2","Composite","CompositeItemV2","CompositeItem","useCompositeStoreV2","useCompositeStore","SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","showTitles","compositeStore","containerClass","carousel","slideClass","Map","createElement","className","map","pattern","index","BlockPatternSlide","active","get","key","name","role","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","render","undefined","title","id","onClick","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","initialViewMode","setViewMode","setActiveSlide","replaceBlock","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","Fragment","totalSlides","handleNext","Math","min","handlePrevious","max"],"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\nimport { unlock } from '../../lock-unlock';\n\nconst {\n\tCompositeV2: Composite,\n\tCompositeItemV2: CompositeItem,\n\tuseCompositeStoreV2: useCompositeStore,\n} = unlock( componentsPrivateApis );\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n\tshowTitles,\n} ) => {\n\tconst compositeStore = useCompositeStore();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-pattern-setup__carousel\">\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<div className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tactive={ index === activeSlide }\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__grid\">\n\t\t\t<Composite\n\t\t\t\tstore={ compositeStore }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tshowTitles={ showTitles }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, showTitles } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div className={ `${ baseClassName }__list-item` }>\n\t\t\t<CompositeItem\n\t\t\t\trender={\n\t\t\t\t\t<div\n\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\tdescription ? descriptionId : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-label={ pattern.title }\n\t\t\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tid={ `${ baseClassName }__pattern__${ pattern.name }` }\n\t\t\t\trole=\"option\"\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t\t{ showTitles && (\n\t\t\t\t\t<div className={ `${ baseClassName }__item-title` }>\n\t\t\t\t\t\t{ pattern.title }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ !! description && (\n\t\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t\t{ description }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t</CompositeItem>\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { active, className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<div\n\t\t\taria-hidden={ ! active }\n\t\t\trole=\"img\"\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview blocks={ blocks } minHeight={ minHeight } />\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tonBlockPatternSelect,\n\tinitialViewMode = VIEWMODES.carousel,\n\tshowTitles = false,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( initialViewMode );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\n\tif ( ! patterns?.length ) {\n\t\treturn null;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t\tshowTitles={ showTitles }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) =>\n\t\t\t\t\t\t\tMath.min( active + 1, patterns.length - 1 )\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) =>\n\t\t\t\t\t\t\tMath.max( active - 1, 0 )\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"],"mappings":"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"}
|
|
@@ -29,12 +29,14 @@ const CarouselNavigation = ({
|
|
|
29
29
|
icon: chevronLeft,
|
|
30
30
|
label: __('Previous pattern'),
|
|
31
31
|
onClick: handlePrevious,
|
|
32
|
-
disabled: activeSlide === 0
|
|
32
|
+
disabled: activeSlide === 0,
|
|
33
|
+
__experimentalIsFocusable: true
|
|
33
34
|
}), createElement(Button, {
|
|
34
35
|
icon: chevronRight,
|
|
35
36
|
label: __('Next pattern'),
|
|
36
37
|
onClick: handleNext,
|
|
37
|
-
disabled: activeSlide === totalSlides - 1
|
|
38
|
+
disabled: activeSlide === totalSlides - 1,
|
|
39
|
+
__experimentalIsFocusable: true
|
|
38
40
|
}));
|
|
39
41
|
const SetupToolbar = ({
|
|
40
42
|
viewMode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","Button","chevronRight","chevronLeft","grid","stretchFullWidth","VIEWMODES","Actions","onBlockPatternSelect","createElement","className","variant","onClick","CarouselNavigation","handlePrevious","handleNext","activeSlide","totalSlides","icon","label","disabled","SetupToolbar","viewMode","setViewMode","isCarouselView","carousel","displayControls","isPressed"],"sources":["@wordpress/block-editor/src/components/block-pattern-setup/setup-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport {\n\tchevronRight,\n\tchevronLeft,\n\tgrid,\n\tstretchFullWidth,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { VIEWMODES } from './constants';\n\nconst Actions = ( { onBlockPatternSelect } ) => (\n\t<div className=\"block-editor-block-pattern-setup__actions\">\n\t\t<Button variant=\"primary\" onClick={ onBlockPatternSelect }>\n\t\t\t{ __( 'Choose' ) }\n\t\t</Button>\n\t</div>\n);\n\nconst CarouselNavigation = ( {\n\thandlePrevious,\n\thandleNext,\n\tactiveSlide,\n\ttotalSlides,\n} ) => (\n\t<div className=\"block-editor-block-pattern-setup__navigation\">\n\t\t<Button\n\t\t\ticon={ chevronLeft }\n\t\t\tlabel={ __( 'Previous pattern' ) }\n\t\t\tonClick={ handlePrevious }\n\t\t\tdisabled={ activeSlide === 0 }\n\t\t/>\n\t\t<Button\n\t\t\ticon={ chevronRight }\n\t\t\tlabel={ __( 'Next pattern' ) }\n\t\t\tonClick={ handleNext }\n\t\t\tdisabled={ activeSlide === totalSlides - 1 }\n\t\t/>\n\t</div>\n);\n\nconst SetupToolbar = ( {\n\tviewMode,\n\tsetViewMode,\n\thandlePrevious,\n\thandleNext,\n\tactiveSlide,\n\ttotalSlides,\n\tonBlockPatternSelect,\n} ) => {\n\tconst isCarouselView = viewMode === VIEWMODES.carousel;\n\tconst displayControls = (\n\t\t<div className=\"block-editor-block-pattern-setup__display-controls\">\n\t\t\t<Button\n\t\t\t\ticon={ stretchFullWidth }\n\t\t\t\tlabel={ __( 'Carousel view' ) }\n\t\t\t\tonClick={ () => setViewMode( VIEWMODES.carousel ) }\n\t\t\t\tisPressed={ isCarouselView }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\ticon={ grid }\n\t\t\t\tlabel={ __( 'Grid view' ) }\n\t\t\t\tonClick={ () => setViewMode( VIEWMODES.grid ) }\n\t\t\t\tisPressed={ viewMode === VIEWMODES.grid }\n\t\t\t/>\n\t\t</div>\n\t);\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__toolbar\">\n\t\t\t{ isCarouselView && (\n\t\t\t\t<CarouselNavigation\n\t\t\t\t\thandlePrevious={ handlePrevious }\n\t\t\t\t\thandleNext={ handleNext }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ totalSlides }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ displayControls }\n\t\t\t{ isCarouselView && (\n\t\t\t\t<Actions onBlockPatternSelect={ onBlockPatternSelect } />\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport default SetupToolbar;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SACCC,YAAY,EACZC,WAAW,EACXC,IAAI,EACJC,gBAAgB,QACV,kBAAkB;;AAEzB;AACA;AACA;AACA,SAASC,SAAS,QAAQ,aAAa;AAEvC,MAAMC,OAAO,GAAGA,CAAE;EAAEC;AAAqB,CAAC,KACzCC,aAAA;EAAKC,SAAS,EAAC;AAA2C,GACzDD,aAAA,CAACR,MAAM;EAACU,OAAO,EAAC,SAAS;EAACC,OAAO,EAAGJ;AAAsB,GACvDR,EAAE,CAAE,QAAS,CACR,CACJ,CACL;AAED,MAAMa,kBAAkB,GAAGA,CAAE;EAC5BC,cAAc;EACdC,UAAU;EACVC,WAAW;EACXC;AACD,CAAC,KACAR,aAAA;EAAKC,SAAS,EAAC;AAA8C,GAC5DD,aAAA,CAACR,MAAM;EACNiB,IAAI,EAAGf,WAAa;EACpBgB,KAAK,EAAGnB,EAAE,CAAE,kBAAmB,CAAG;EAClCY,OAAO,EAAGE,cAAgB;EAC1BM,QAAQ,EAAGJ,WAAW,KAAK;
|
|
1
|
+
{"version":3,"names":["__","Button","chevronRight","chevronLeft","grid","stretchFullWidth","VIEWMODES","Actions","onBlockPatternSelect","createElement","className","variant","onClick","CarouselNavigation","handlePrevious","handleNext","activeSlide","totalSlides","icon","label","disabled","__experimentalIsFocusable","SetupToolbar","viewMode","setViewMode","isCarouselView","carousel","displayControls","isPressed"],"sources":["@wordpress/block-editor/src/components/block-pattern-setup/setup-toolbar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Button } from '@wordpress/components';\nimport {\n\tchevronRight,\n\tchevronLeft,\n\tgrid,\n\tstretchFullWidth,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { VIEWMODES } from './constants';\n\nconst Actions = ( { onBlockPatternSelect } ) => (\n\t<div className=\"block-editor-block-pattern-setup__actions\">\n\t\t<Button variant=\"primary\" onClick={ onBlockPatternSelect }>\n\t\t\t{ __( 'Choose' ) }\n\t\t</Button>\n\t</div>\n);\n\nconst CarouselNavigation = ( {\n\thandlePrevious,\n\thandleNext,\n\tactiveSlide,\n\ttotalSlides,\n} ) => (\n\t<div className=\"block-editor-block-pattern-setup__navigation\">\n\t\t<Button\n\t\t\ticon={ chevronLeft }\n\t\t\tlabel={ __( 'Previous pattern' ) }\n\t\t\tonClick={ handlePrevious }\n\t\t\tdisabled={ activeSlide === 0 }\n\t\t\t__experimentalIsFocusable\n\t\t/>\n\t\t<Button\n\t\t\ticon={ chevronRight }\n\t\t\tlabel={ __( 'Next pattern' ) }\n\t\t\tonClick={ handleNext }\n\t\t\tdisabled={ activeSlide === totalSlides - 1 }\n\t\t\t__experimentalIsFocusable\n\t\t/>\n\t</div>\n);\n\nconst SetupToolbar = ( {\n\tviewMode,\n\tsetViewMode,\n\thandlePrevious,\n\thandleNext,\n\tactiveSlide,\n\ttotalSlides,\n\tonBlockPatternSelect,\n} ) => {\n\tconst isCarouselView = viewMode === VIEWMODES.carousel;\n\tconst displayControls = (\n\t\t<div className=\"block-editor-block-pattern-setup__display-controls\">\n\t\t\t<Button\n\t\t\t\ticon={ stretchFullWidth }\n\t\t\t\tlabel={ __( 'Carousel view' ) }\n\t\t\t\tonClick={ () => setViewMode( VIEWMODES.carousel ) }\n\t\t\t\tisPressed={ isCarouselView }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\ticon={ grid }\n\t\t\t\tlabel={ __( 'Grid view' ) }\n\t\t\t\tonClick={ () => setViewMode( VIEWMODES.grid ) }\n\t\t\t\tisPressed={ viewMode === VIEWMODES.grid }\n\t\t\t/>\n\t\t</div>\n\t);\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__toolbar\">\n\t\t\t{ isCarouselView && (\n\t\t\t\t<CarouselNavigation\n\t\t\t\t\thandlePrevious={ handlePrevious }\n\t\t\t\t\thandleNext={ handleNext }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ totalSlides }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ displayControls }\n\t\t\t{ isCarouselView && (\n\t\t\t\t<Actions onBlockPatternSelect={ onBlockPatternSelect } />\n\t\t\t) }\n\t\t</div>\n\t);\n};\n\nexport default SetupToolbar;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,SACCC,YAAY,EACZC,WAAW,EACXC,IAAI,EACJC,gBAAgB,QACV,kBAAkB;;AAEzB;AACA;AACA;AACA,SAASC,SAAS,QAAQ,aAAa;AAEvC,MAAMC,OAAO,GAAGA,CAAE;EAAEC;AAAqB,CAAC,KACzCC,aAAA;EAAKC,SAAS,EAAC;AAA2C,GACzDD,aAAA,CAACR,MAAM;EAACU,OAAO,EAAC,SAAS;EAACC,OAAO,EAAGJ;AAAsB,GACvDR,EAAE,CAAE,QAAS,CACR,CACJ,CACL;AAED,MAAMa,kBAAkB,GAAGA,CAAE;EAC5BC,cAAc;EACdC,UAAU;EACVC,WAAW;EACXC;AACD,CAAC,KACAR,aAAA;EAAKC,SAAS,EAAC;AAA8C,GAC5DD,aAAA,CAACR,MAAM;EACNiB,IAAI,EAAGf,WAAa;EACpBgB,KAAK,EAAGnB,EAAE,CAAE,kBAAmB,CAAG;EAClCY,OAAO,EAAGE,cAAgB;EAC1BM,QAAQ,EAAGJ,WAAW,KAAK,CAAG;EAC9BK,yBAAyB;AAAA,CACzB,CAAC,EACFZ,aAAA,CAACR,MAAM;EACNiB,IAAI,EAAGhB,YAAc;EACrBiB,KAAK,EAAGnB,EAAE,CAAE,cAAe,CAAG;EAC9BY,OAAO,EAAGG,UAAY;EACtBK,QAAQ,EAAGJ,WAAW,KAAKC,WAAW,GAAG,CAAG;EAC5CI,yBAAyB;AAAA,CACzB,CACG,CACL;AAED,MAAMC,YAAY,GAAGA,CAAE;EACtBC,QAAQ;EACRC,WAAW;EACXV,cAAc;EACdC,UAAU;EACVC,WAAW;EACXC,WAAW;EACXT;AACD,CAAC,KAAM;EACN,MAAMiB,cAAc,GAAGF,QAAQ,KAAKjB,SAAS,CAACoB,QAAQ;EACtD,MAAMC,eAAe,GACpBlB,aAAA;IAAKC,SAAS,EAAC;EAAoD,GAClED,aAAA,CAACR,MAAM;IACNiB,IAAI,EAAGb,gBAAkB;IACzBc,KAAK,EAAGnB,EAAE,CAAE,eAAgB,CAAG;IAC/BY,OAAO,EAAGA,CAAA,KAAMY,WAAW,CAAElB,SAAS,CAACoB,QAAS,CAAG;IACnDE,SAAS,EAAGH;EAAgB,CAC5B,CAAC,EACFhB,aAAA,CAACR,MAAM;IACNiB,IAAI,EAAGd,IAAM;IACbe,KAAK,EAAGnB,EAAE,CAAE,WAAY,CAAG;IAC3BY,OAAO,EAAGA,CAAA,KAAMY,WAAW,CAAElB,SAAS,CAACF,IAAK,CAAG;IAC/CwB,SAAS,EAAGL,QAAQ,KAAKjB,SAAS,CAACF;EAAM,CACzC,CACG,CACL;EACD,OACCK,aAAA;IAAKC,SAAS,EAAC;EAA2C,GACvDe,cAAc,IACfhB,aAAA,CAACI,kBAAkB;IAClBC,cAAc,EAAGA,cAAgB;IACjCC,UAAU,EAAGA,UAAY;IACzBC,WAAW,EAAGA,WAAa;IAC3BC,WAAW,EAAGA;EAAa,CAC3B,CACD,EACCU,eAAe,EACfF,cAAc,IACfhB,aAAA,CAACF,OAAO;IAACC,oBAAoB,EAAGA;EAAsB,CAAE,CAErD,CAAC;AAER,CAAC;AAED,eAAec,YAAY"}
|