@wordpress/block-editor 12.5.0 → 12.6.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 +0 -4
- package/build/components/block-draggable/index.js +6 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +2 -2
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +25 -13
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +14 -18
- package/build/components/block-list/block-outline.native.js.map +1 -1
- package/build/components/block-list/block.native.js +21 -42
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-mover/index.native.js +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +1 -4
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-settings/button.native.js +2 -2
- package/build/components/block-settings/button.native.js.map +1 -1
- package/build/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +7 -5
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build/components/block-toolbar/index.js +4 -3
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/index.native.js +62 -3
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/colors-gradients/control.js +4 -2
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/global-styles/color-panel.js +21 -15
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +13 -2
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/get-block-css-selector.js +4 -8
- package/build/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build/components/global-styles/hooks.js +13 -23
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +18 -3
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +12 -18
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +6 -6
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +36 -48
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/iframe/use-compatibility-styles.js +5 -0
- package/build/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build/components/index.js +1 -10
- package/build/components/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/index.native.js +3 -1
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +33 -7
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +2 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +21 -32
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/reusable-block-rename-hint.js +23 -3
- package/build/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build/components/link-control/index.js +4 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-item.js +1 -1
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +2 -2
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +65 -31
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +2 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/content.js +0 -36
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +118 -0
- package/build/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js +6 -2
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/single.js +5 -1
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/use-block-display-information/index.js +7 -3
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +49 -8
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-setting/index.js +5 -9
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/margin.js +1 -1
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +1 -1
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/utils.js +1 -7
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +7 -3
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +1 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/private-selectors.js +5 -6
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +0 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +19 -8
- package/build/store/selectors.js.map +1 -1
- package/build/utils/object.js +38 -2
- package/build/utils/object.js.map +1 -1
- package/build-module/components/block-draggable/index.js +6 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +2 -2
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +27 -10
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +14 -18
- package/build-module/components/block-list/block-outline.native.js.map +1 -1
- package/build-module/components/block-list/block.native.js +24 -43
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +3 -3
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +1 -4
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-settings/button.native.js +3 -3
- package/build-module/components/block-settings/button.native.js.map +1 -1
- package/build-module/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +9 -7
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +4 -3
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js +60 -4
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -2
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +21 -15
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +13 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/get-block-css-selector.js +4 -8
- package/build-module/components/global-styles/get-block-css-selector.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +12 -22
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +18 -3
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +13 -18
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +5 -5
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +37 -49
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/iframe/use-compatibility-styles.js +5 -0
- package/build-module/components/iframe/use-compatibility-styles.js.map +1 -1
- package/build-module/components/index.js +0 -5
- package/build-module/components/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/index.native.js +3 -1
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +30 -7
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +2 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +22 -33
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/reusable-block-rename-hint.js +22 -3
- package/build-module/components/inserter/reusable-block-rename-hint.js.map +1 -1
- package/build-module/components/link-control/index.js +4 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-item.js +1 -1
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +2 -2
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +66 -33
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +2 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/content.js +1 -36
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +105 -0
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -0
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js +7 -3
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js +6 -2
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +1 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +7 -3
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +50 -8
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-setting/index.js +5 -9
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/margin.js +1 -1
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +1 -1
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/utils.js +2 -7
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +5 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +2 -2
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-selectors.js +3 -3
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +0 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +16 -6
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/object.js +34 -2
- package/build-module/utils/object.js.map +1 -1
- package/build-style/content-rtl.css +2 -1
- package/build-style/content.css +2 -1
- package/build-style/style-rtl.css +7 -1
- package/build-style/style.css +7 -1
- package/package.json +32 -32
- package/src/components/block-controls/README.md +89 -0
- package/src/components/block-draggable/index.js +13 -4
- package/src/components/block-draggable/index.native.js +7 -3
- package/src/components/block-draggable/test/index.native.js +0 -54
- package/src/components/block-edit/edit.js +26 -9
- package/src/components/block-edit/test/edit.js +1 -1
- package/src/components/block-list/block-outline.native.js +26 -25
- package/src/components/block-list/block.native.js +24 -38
- package/src/components/block-list/block.native.scss +18 -40
- package/src/components/block-list/style.native.scss +3 -3
- package/src/components/block-mover/index.native.js +3 -3
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +16 -6
- package/src/components/block-removal-warning-modal/index.js +0 -3
- package/src/components/block-settings/button.native.js +12 -6
- package/src/components/{block-mobile-toolbar/block-actions-menu.native.js → block-toolbar/block-toolbar-menu.native.js} +15 -10
- package/src/components/block-toolbar/index.js +2 -3
- package/src/components/block-toolbar/index.native.js +86 -6
- package/src/components/{block-mobile-toolbar/test/block-actions-menu.native.js → block-toolbar/test/block-toolbar-menu.native.js} +20 -54
- package/src/components/block-toolbar/test/index.native.js +42 -0
- package/src/components/button-block-appender/styles.native.scss +2 -2
- package/src/components/caption/README.md +49 -0
- package/src/components/colors-gradients/control.js +3 -2
- package/src/components/global-styles/color-panel.js +23 -16
- package/src/components/global-styles/dimensions-panel.js +8 -2
- package/src/components/global-styles/get-block-css-selector.js +5 -9
- package/src/components/global-styles/hooks.js +20 -26
- package/src/components/global-styles/typography-panel.js +17 -5
- package/src/components/global-styles/use-global-styles-output.js +36 -18
- package/src/components/global-styles/utils.js +15 -6
- package/src/components/iframe/index.js +30 -56
- package/src/components/iframe/use-compatibility-styles.js +5 -0
- package/src/components/index.js +0 -5
- package/src/components/inner-blocks/README.md +10 -0
- package/src/components/inner-blocks/index.js +4 -0
- package/src/components/inner-blocks/index.native.js +4 -0
- package/src/components/inner-blocks/use-nested-settings-update.js +32 -5
- package/src/components/inserter/index.js +2 -3
- package/src/components/inserter/index.native.js +17 -36
- package/src/components/inserter/reusable-block-rename-hint.js +18 -1
- package/src/components/inserter/style.native.scss +10 -15
- package/src/components/link-control/index.js +4 -1
- package/src/components/link-control/search-item.js +1 -1
- package/src/components/link-control/style.scss +8 -1
- package/src/components/link-control/test/index.js +26 -0
- package/src/components/list-view/use-list-view-client-ids.js +2 -2
- package/src/components/media-placeholder/index.native.js +108 -59
- package/src/components/media-placeholder/styles.native.scss +59 -24
- package/src/components/preview-options/README.md +18 -17
- package/src/components/preview-options/index.js +2 -2
- package/src/components/rich-text/content.js +1 -46
- package/src/components/rich-text/get-rich-text-values.js +105 -0
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +1 -1
- package/src/components/spacing-sizes-control/input-controls/axial.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/separated.js +17 -2
- package/src/components/spacing-sizes-control/input-controls/single.js +12 -2
- package/src/components/spacing-sizes-control/utils.js +1 -1
- package/src/components/text-transform-control/README.md +44 -0
- package/src/components/use-block-display-information/index.js +12 -5
- package/src/components/use-block-drop-zone/index.native.js +65 -28
- package/src/components/use-setting/index.js +8 -8
- package/src/hooks/margin.js +4 -1
- package/src/hooks/padding.js +4 -1
- package/src/hooks/utils.js +5 -7
- package/src/private-apis.js +7 -1
- package/src/store/actions.js +1 -2
- package/src/store/private-selectors.js +3 -6
- package/src/store/reducer.js +0 -1
- package/src/store/selectors.js +33 -5
- package/src/store/test/actions.js +3 -0
- package/src/store/test/private-selectors.js +5 -5
- package/src/store/test/reducer.js +14 -7
- package/src/store/test/selectors.js +1 -1
- package/src/utils/object.js +32 -2
- package/src/utils/test/object.js +36 -0
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build/components/block-mobile-toolbar/index.native.js +0 -135
- package/build/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +0 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +0 -116
- package/build-module/components/block-mobile-toolbar/index.native.js.map +0 -1
- package/src/components/block-mobile-toolbar/index.native.js +0 -127
- package/src/components/block-mobile-toolbar/style.native.scss +0 -16
- /package/src/components/{block-mobile-toolbar/test/__snapshots__/block-actions-menu.native.js.snap → block-toolbar/test/__snapshots__/block-toolbar-menu.native.js.snap} +0 -0
|
@@ -3,13 +3,13 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { Pressable,
|
|
6
|
+
import { Pressable, View } from 'react-native';
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { useCallback, useMemo,
|
|
12
|
-
import { GlobalStylesContext, getMergedGlobalStyles, useMobileGlobalStylesColors,
|
|
11
|
+
import { useCallback, useMemo, useState } from '@wordpress/element';
|
|
12
|
+
import { GlobalStylesContext, getMergedGlobalStyles, useMobileGlobalStylesColors, useGlobalStyles } from '@wordpress/components';
|
|
13
13
|
import { __experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel, getBlockType, getDefaultBlockName, isUnmodifiedBlock, isUnmodifiedDefaultBlock, switchToBlockType } from '@wordpress/blocks';
|
|
14
14
|
import { useDispatch, useSelect, withDispatch, withSelect } from '@wordpress/data';
|
|
15
15
|
import { compose, ifCondition, pure } from '@wordpress/compose';
|
|
@@ -20,9 +20,7 @@ import { compose, ifCondition, pure } from '@wordpress/compose';
|
|
|
20
20
|
import BlockEdit from '../block-edit';
|
|
21
21
|
import BlockDraggable from '../block-draggable';
|
|
22
22
|
import BlockInvalidWarning from './block-invalid-warning';
|
|
23
|
-
import BlockMobileToolbar from '../block-mobile-toolbar';
|
|
24
23
|
import BlockOutline from './block-outline';
|
|
25
|
-
import styles from './block.scss';
|
|
26
24
|
import { store as blockEditorStore } from '../../store';
|
|
27
25
|
import { useLayout } from './layout';
|
|
28
26
|
import useSetting from '../use-setting';
|
|
@@ -49,31 +47,21 @@ function getWrapperProps(value, getWrapperPropsFunction) {
|
|
|
49
47
|
|
|
50
48
|
function BlockWrapper({
|
|
51
49
|
accessibilityLabel,
|
|
52
|
-
|
|
53
|
-
blockWidth,
|
|
50
|
+
blockCategory,
|
|
54
51
|
children,
|
|
55
52
|
clientId,
|
|
56
53
|
draggingClientId,
|
|
57
54
|
draggingEnabled,
|
|
55
|
+
hasInnerBlocks,
|
|
58
56
|
isDescendentBlockSelected,
|
|
59
|
-
|
|
57
|
+
isRootList,
|
|
60
58
|
isSelected,
|
|
61
|
-
isStackedHorizontally,
|
|
62
59
|
isTouchable,
|
|
63
60
|
marginHorizontal,
|
|
64
61
|
marginVertical,
|
|
65
|
-
|
|
62
|
+
name,
|
|
66
63
|
onFocus
|
|
67
64
|
}) {
|
|
68
|
-
const {
|
|
69
|
-
width: screenWidth
|
|
70
|
-
} = useWindowDimensions();
|
|
71
|
-
const anchorNodeRef = useRef();
|
|
72
|
-
const {
|
|
73
|
-
isFullWidth
|
|
74
|
-
} = alignmentHelpers;
|
|
75
|
-
const isScreenWidthEqual = blockWidth === screenWidth;
|
|
76
|
-
const isFullWidthToolbar = isFullWidth(align) || isScreenWidthEqual;
|
|
77
65
|
const blockWrapperStyles = {
|
|
78
66
|
flex: 1
|
|
79
67
|
};
|
|
@@ -90,26 +78,17 @@ function BlockWrapper({
|
|
|
90
78
|
onPress: onFocus,
|
|
91
79
|
style: blockWrapperStyle
|
|
92
80
|
}, createElement(BlockOutline, {
|
|
81
|
+
blockCategory: blockCategory,
|
|
82
|
+
hasInnerBlocks: hasInnerBlocks,
|
|
83
|
+
isRootList: isRootList,
|
|
93
84
|
isSelected: isSelected,
|
|
94
|
-
|
|
95
|
-
screenWidth: screenWidth
|
|
85
|
+
name: name
|
|
96
86
|
}), createElement(BlockDraggable, {
|
|
97
87
|
clientId: clientId,
|
|
98
88
|
draggingClientId: draggingClientId,
|
|
99
89
|
enabled: draggingEnabled,
|
|
100
90
|
testID: "draggable-trigger-content"
|
|
101
|
-
}, children)
|
|
102
|
-
style: styles.neutralToolbar,
|
|
103
|
-
ref: anchorNodeRef
|
|
104
|
-
}, isSelected && createElement(BlockMobileToolbar, {
|
|
105
|
-
anchorNodeRef: anchorNodeRef.current,
|
|
106
|
-
blockWidth: blockWidth,
|
|
107
|
-
clientId: clientId,
|
|
108
|
-
draggingClientId: draggingClientId,
|
|
109
|
-
isFullWidth: isFullWidthToolbar,
|
|
110
|
-
isStackedHorizontally: isStackedHorizontally,
|
|
111
|
-
onDelete: onDeleteBlock
|
|
112
|
-
})));
|
|
91
|
+
}, children));
|
|
113
92
|
}
|
|
114
93
|
|
|
115
94
|
function BlockListBlock({
|
|
@@ -138,9 +117,11 @@ function BlockListBlock({
|
|
|
138
117
|
}) {
|
|
139
118
|
const {
|
|
140
119
|
baseGlobalStyles,
|
|
120
|
+
blockCategory,
|
|
141
121
|
blockType,
|
|
142
122
|
draggingClientId,
|
|
143
123
|
draggingEnabled,
|
|
124
|
+
hasInnerBlocks,
|
|
144
125
|
isDescendantOfParentSelected,
|
|
145
126
|
isDescendentBlockSelected,
|
|
146
127
|
isParentSelected,
|
|
@@ -156,6 +137,7 @@ function BlockListBlock({
|
|
|
156
137
|
hasSelectedInnerBlock
|
|
157
138
|
} = select(blockEditorStore);
|
|
158
139
|
const currentBlockType = getBlockType(name || 'core/missing');
|
|
140
|
+
const currentBlockCategory = currentBlockType?.category;
|
|
159
141
|
const blockOrder = getBlockIndex(clientId);
|
|
160
142
|
const descendentBlockSelected = hasSelectedInnerBlock(clientId, true);
|
|
161
143
|
const selectedBlockClientId = getSelectedBlockClientId();
|
|
@@ -164,20 +146,22 @@ function BlockListBlock({
|
|
|
164
146
|
(selectedBlockClientId || false) && selectedBlockClientId === rootClientId;
|
|
165
147
|
const selectedParents = clientId ? parents : [];
|
|
166
148
|
const descendantOfParentSelected = selectedParents.includes(rootClientId);
|
|
167
|
-
const
|
|
149
|
+
const blockHasInnerBlocks = getBlockCount(clientId) > 0; // For blocks with inner blocks, we only enable the dragging in the nested
|
|
168
150
|
// blocks if any of them are selected. This way we prevent the long-press
|
|
169
151
|
// gesture from being disabled for elements within the block UI.
|
|
170
152
|
|
|
171
|
-
const isDraggingEnabled = !
|
|
153
|
+
const isDraggingEnabled = !blockHasInnerBlocks || isSelected || !descendentBlockSelected; // Dragging nested blocks is not supported yet. For this reason, the block to be dragged
|
|
172
154
|
// will be the top in the hierarchy.
|
|
173
155
|
|
|
174
156
|
const currentDraggingClientId = getBlockHierarchyRootClientId(clientId);
|
|
175
157
|
const globalStylesBaseStyles = getSettings()?.__experimentalGlobalStylesBaseStyles;
|
|
176
158
|
return {
|
|
177
159
|
baseGlobalStyles: globalStylesBaseStyles,
|
|
160
|
+
blockCategory: currentBlockCategory,
|
|
178
161
|
blockType: currentBlockType,
|
|
179
162
|
draggingClientId: currentDraggingClientId,
|
|
180
163
|
draggingEnabled: isDraggingEnabled,
|
|
164
|
+
hasInnerBlocks: blockHasInnerBlocks,
|
|
181
165
|
isDescendantOfParentSelected: descendantOfParentSelected,
|
|
182
166
|
isDescendentBlockSelected: descendentBlockSelected,
|
|
183
167
|
isParentSelected: parentSelected,
|
|
@@ -229,28 +213,25 @@ function BlockListBlock({
|
|
|
229
213
|
JSON.stringify(globalStyle), // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
230
214
|
JSON.stringify(wrapperProps.style), // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
231
215
|
JSON.stringify(Object.fromEntries(Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}).filter(([key]) => GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes(key))))]);
|
|
232
|
-
const {
|
|
233
|
-
align
|
|
234
|
-
} = attributes;
|
|
235
216
|
const isFocused = isSelected || isDescendentBlockSelected;
|
|
236
217
|
const isTouchable = isSelected || isDescendantOfParentSelected || isParentSelected || !rootClientId;
|
|
237
218
|
const accessibilityLabel = getAccessibleBlockLabel(blockType, attributes, order + 1);
|
|
238
219
|
return createElement(BlockWrapper, {
|
|
239
220
|
accessibilityLabel: accessibilityLabel,
|
|
240
|
-
|
|
241
|
-
blockWidth: blockWidth,
|
|
221
|
+
blockCategory: blockCategory,
|
|
242
222
|
clientId: clientId,
|
|
243
223
|
draggingClientId: draggingClientId,
|
|
244
224
|
draggingEnabled: draggingEnabled,
|
|
245
|
-
|
|
225
|
+
hasInnerBlocks: hasInnerBlocks,
|
|
246
226
|
isDescendentBlockSelected: isDescendentBlockSelected,
|
|
247
|
-
|
|
227
|
+
isFocused: isFocused,
|
|
228
|
+
isRootList: !rootClientId,
|
|
248
229
|
isSelected: isSelected,
|
|
249
230
|
isStackedHorizontally: isStackedHorizontally,
|
|
250
231
|
isTouchable: isTouchable,
|
|
251
232
|
marginHorizontal: marginHorizontal,
|
|
252
233
|
marginVertical: marginVertical,
|
|
253
|
-
|
|
234
|
+
name: name,
|
|
254
235
|
onFocus: onFocus
|
|
255
236
|
}, () => !isValid ? createElement(BlockInvalidWarning, {
|
|
256
237
|
clientId: clientId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["Pressable","useWindowDimensions","View","useCallback","useMemo","useRef","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","alignmentHelpers","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockMobileToolbar","BlockOutline","styles","store","blockEditorStore","useLayout","useSetting","emptyArray","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","align","blockWidth","children","clientId","draggingClientId","draggingEnabled","isDescendentBlockSelected","isParentSelected","isSelected","isStackedHorizontally","isTouchable","marginHorizontal","marginVertical","onDeleteBlock","onFocus","width","screenWidth","anchorNodeRef","isFullWidth","isScreenWidthEqual","isFullWidthToolbar","blockWrapperStyles","flex","blockWrapperStyle","accessible","neutralToolbar","current","BlockListBlock","attributes","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isValid","name","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","currentBlockType","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","hasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","getEditWrapperProps","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","undefined","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","mergeBlocks","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"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, useWindowDimensions, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useRef, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\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 BlockMobileToolbar from '../block-mobile-toolbar';\nimport BlockOutline from './block-outline';\nimport styles from './block.scss';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useSetting from '../use-setting';\n\nconst emptyArray = [];\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\talign,\n\tblockWidth,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\tisDescendentBlockSelected,\n\tisParentSelected,\n\tisSelected,\n\tisStackedHorizontally,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tonDeleteBlock,\n\tonFocus,\n} ) {\n\tconst { width: screenWidth } = useWindowDimensions();\n\tconst anchorNodeRef = useRef();\n\tconst { isFullWidth } = alignmentHelpers;\n\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\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\tisSelected={ isSelected }\n\t\t\t\tisParentSelected={ isParentSelected }\n\t\t\t\tscreenWidth={ screenWidth }\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\t<View style={ styles.neutralToolbar } ref={ anchorNodeRef }>\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\tanchorNodeRef={ anchorNodeRef.current }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</View>\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\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\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 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 hasInnerBlocks = 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! hasInnerBlocks || isSelected || ! 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\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\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 = useSetting( 'typography.fontSizes' ) || emptyArray;\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\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 { align } = attributes;\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\talign={ align }\n\t\t\tblockWidth={ blockWidth }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\tisFocused={ isFocused }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisParentSelected={ isParentSelected }\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\tonDeleteBlock={ onDeleteBlock }\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"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"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","useSetting","emptyArray","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","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","style","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","undefined","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","mergeBlocks","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"],"mappings":"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","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 useSetting from '../use-setting';\n\nconst emptyArray = [];\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 = useSetting( 'typography.fontSizes' ) || emptyArray;\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\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"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createElement
|
|
1
|
+
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
@@ -9,7 +9,7 @@ import { Platform } from 'react-native';
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { __ } from '@wordpress/i18n';
|
|
12
|
-
import { Picker, ToolbarButton } from '@wordpress/components';
|
|
12
|
+
import { Picker, ToolbarButton, ToolbarGroup } from '@wordpress/components';
|
|
13
13
|
import { withInstanceId, compose } from '@wordpress/compose';
|
|
14
14
|
import { withSelect, withDispatch } from '@wordpress/data';
|
|
15
15
|
import { useCallback, useEffect, useRef, useState } from '@wordpress/element';
|
|
@@ -100,7 +100,7 @@ export const BlockMover = ({
|
|
|
100
100
|
return null;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
return createElement(
|
|
103
|
+
return createElement(ToolbarGroup, null, createElement(ToolbarButton, {
|
|
104
104
|
title: !isFirst ? backwardButtonTitle : firstBlockTitle,
|
|
105
105
|
isDisabled: isFirst,
|
|
106
106
|
onClick: onMoveUp,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["Platform","__","Picker","ToolbarButton","withInstanceId","compose","withSelect","withDispatch","useCallback","useEffect","useRef","useState","getMoversSetup","store","blockEditorStore","BLOCK_MOVER_DIRECTION_TOP","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","shouldPresentPicker","setShouldPresentPicker","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","blockPageMoverOptions","label","value","onSelect","filter","el","onPickerSelect","option","find","onLongPressMoveUp","onLongPressMoveDown","hint","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","normalizedClientIds","Array","isArray","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","args","targetIndex"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ shouldPresentPicker, setShouldPresentPicker ] = useState( false );\n\tconst [ blockPageMoverState, setBlockPageMoverState ] =\n\t\tuseState( undefined );\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tsetShouldPresentPicker( true );\n\t};\n\n\t// Ensure that the picker is only presented after state updates.\n\tuseEffect( () => {\n\t\tif ( shouldPresentPicker ) {\n\t\t\tpickerRef.current?.presentPicker();\n\t\t\tsetShouldPresentPicker( false );\n\t\t}\n\t}, [ shouldPresentPicker ] );\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) option.onSelect();\n\t};\n\n\tconst onLongPressMoveUp = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ),\n\t\t[]\n\t);\n\tconst onLongPressMoveDown = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_BOTTOM ),\n\t\t[]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ onLongPressMoveUp }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ onLongPressMoveDown }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign={ true }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\tonLongMove:\n\t\t\t\t( targetIndex ) =>\n\t\t\t\t( ...args ) =>\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tclientIds,\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\ttargetIndex,\n\t\t\t\t\t\t...args\n\t\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mover/index.native.js"],"names":["Platform","__","Picker","ToolbarButton","ToolbarGroup","withInstanceId","compose","withSelect","withDispatch","useCallback","useEffect","useRef","useState","getMoversSetup","store","blockEditorStore","BLOCK_MOVER_DIRECTION_TOP","BLOCK_MOVER_DIRECTION_BOTTOM","BlockMover","isFirst","isLast","canMove","onMoveDown","onMoveUp","onLongMove","firstIndex","numberOfBlocks","rootClientId","isStackedHorizontally","pickerRef","shouldPresentPicker","setShouldPresentPicker","blockPageMoverState","setBlockPageMoverState","undefined","showBlockPageMover","direction","current","presentPicker","description","backwardButtonHint","forwardButtonHint","firstBlockTitle","lastBlockTitle","icon","backward","backwardButtonIcon","forward","forwardButtonIcon","title","backwardButtonTitle","forwardButtonTitle","blockPageMoverOptions","label","value","onSelect","filter","el","onPickerSelect","option","find","onLongPressMoveUp","onLongPressMoveDown","hint","OS","select","clientIds","getBlockIndex","canMoveBlocks","getBlockRootClientId","getBlockOrder","normalizedClientIds","Array","isArray","firstClientId","blockOrder","lastIndex","length","dispatch","moveBlocksDown","moveBlocksUp","moveBlocksToPosition","args","targetIndex"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Picker, ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { useCallback, useEffect, useRef, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from './mover-description';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BLOCK_MOVER_DIRECTION_TOP = 'blockPageMoverOptions-moveToTop';\nexport const BLOCK_MOVER_DIRECTION_BOTTOM =\n\t'blockPageMoverOptions-moveToBottom';\n\nexport const BlockMover = ( {\n\tisFirst,\n\tisLast,\n\tcanMove,\n\tonMoveDown,\n\tonMoveUp,\n\tonLongMove,\n\tfirstIndex,\n\tnumberOfBlocks,\n\trootClientId,\n\tisStackedHorizontally,\n} ) => {\n\tconst pickerRef = useRef();\n\tconst [ shouldPresentPicker, setShouldPresentPicker ] = useState( false );\n\tconst [ blockPageMoverState, setBlockPageMoverState ] =\n\t\tuseState( undefined );\n\tconst showBlockPageMover = ( direction ) => () => {\n\t\tif ( ! pickerRef.current ) {\n\t\t\tsetBlockPageMoverState( undefined );\n\t\t\treturn;\n\t\t}\n\n\t\tsetBlockPageMoverState( direction );\n\t\tsetShouldPresentPicker( true );\n\t};\n\n\t// Ensure that the picker is only presented after state updates.\n\tuseEffect( () => {\n\t\tif ( shouldPresentPicker ) {\n\t\t\tpickerRef.current?.presentPicker();\n\t\t\tsetShouldPresentPicker( false );\n\t\t}\n\t}, [ shouldPresentPicker ] );\n\n\tconst {\n\t\tdescription: {\n\t\t\tbackwardButtonHint,\n\t\t\tforwardButtonHint,\n\t\t\tfirstBlockTitle,\n\t\t\tlastBlockTitle,\n\t\t},\n\t\ticon: { backward: backwardButtonIcon, forward: forwardButtonIcon },\n\t\ttitle: { backward: backwardButtonTitle, forward: forwardButtonTitle },\n\t} = getMoversSetup( isStackedHorizontally, { firstIndex } );\n\n\tconst blockPageMoverOptions = [\n\t\t{\n\t\t\ticon: backwardButtonIcon,\n\t\t\tlabel: __( 'Move to top' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_TOP,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( 0 );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ticon: forwardButtonIcon,\n\t\t\tlabel: __( 'Move to bottom' ),\n\t\t\tvalue: BLOCK_MOVER_DIRECTION_BOTTOM,\n\t\t\tonSelect: () => {\n\t\t\t\tonLongMove()( numberOfBlocks );\n\t\t\t},\n\t\t},\n\t].filter( ( el ) => el.value === blockPageMoverState );\n\n\tconst onPickerSelect = ( value ) => {\n\t\tconst option = blockPageMoverOptions.find(\n\t\t\t( el ) => el.value === value\n\t\t);\n\t\tif ( option && option.onSelect ) option.onSelect();\n\t};\n\n\tconst onLongPressMoveUp = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_TOP ),\n\t\t[]\n\t);\n\tconst onLongPressMoveDown = useCallback(\n\t\tshowBlockPageMover( BLOCK_MOVER_DIRECTION_BOTTOM ),\n\t\t[]\n\t);\n\n\tif ( ! canMove || ( isFirst && isLast && ! rootClientId ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<ToolbarGroup>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isFirst ? backwardButtonTitle : firstBlockTitle }\n\t\t\t\tisDisabled={ isFirst }\n\t\t\t\tonClick={ onMoveUp }\n\t\t\t\tonLongPress={ onLongPressMoveUp }\n\t\t\t\ticon={ backwardButtonIcon }\n\t\t\t\textraProps={ { hint: backwardButtonHint } }\n\t\t\t/>\n\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ ! isLast ? forwardButtonTitle : lastBlockTitle }\n\t\t\t\tisDisabled={ isLast }\n\t\t\t\tonClick={ onMoveDown }\n\t\t\t\tonLongPress={ onLongPressMoveDown }\n\t\t\t\ticon={ forwardButtonIcon }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: forwardButtonHint,\n\t\t\t\t} }\n\t\t\t/>\n\n\t\t\t<Picker\n\t\t\t\tref={ pickerRef }\n\t\t\t\toptions={ blockPageMoverOptions }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\ttitle={ __( 'Change block position' ) }\n\t\t\t\tleftAlign={ true }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t/>\n\t\t</ToolbarGroup>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tcanMoveBlocks,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\treturn {\n\t\t\tfirstIndex,\n\t\t\tnumberOfBlocks: blockOrder.length - 1,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tcanMove: canMoveBlocks( clientIds, rootClientId ),\n\t\t\trootClientId,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientIds, rootClientId } ) => {\n\t\tconst { moveBlocksDown, moveBlocksUp, moveBlocksToPosition } =\n\t\t\tdispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\tonLongMove:\n\t\t\t\t( targetIndex ) =>\n\t\t\t\t( ...args ) =>\n\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\tclientIds,\n\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\ttargetIndex,\n\t\t\t\t\t\t...args\n\t\t\t\t\t),\n\t\t};\n\t} ),\n\twithInstanceId\n)( BlockMover );\n"]}
|
|
@@ -48,10 +48,7 @@ export function BlockRemovalWarningModal({
|
|
|
48
48
|
|
|
49
49
|
return createElement(Modal, {
|
|
50
50
|
title: __('Are you sure?'),
|
|
51
|
-
onRequestClose: clearBlockRemovalPrompt
|
|
52
|
-
style: {
|
|
53
|
-
maxWidth: '40rem'
|
|
54
|
-
}
|
|
51
|
+
onRequestClose: clearBlockRemovalPrompt
|
|
55
52
|
}, blockNamesForPrompt.length === 1 ? createElement("p", null, rules[blockNamesForPrompt[0]]) : createElement("ul", {
|
|
56
53
|
style: {
|
|
57
54
|
listStyleType: 'disc',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-removal-warning-modal/index.js"],"names":["useEffect","useDispatch","useSelect","Modal","Button","__experimentalHStack","HStack","__","store","blockEditorStore","unlock","BlockRemovalWarningModal","rules","clientIds","selectPrevious","blockNamesForPrompt","select","getRemovalPromptData","clearBlockRemovalPrompt","setBlockRemovalRules","privateRemoveBlocks","onConfirmRemoval","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-removal-warning-modal/index.js"],"names":["useEffect","useDispatch","useSelect","Modal","Button","__experimentalHStack","HStack","__","store","blockEditorStore","unlock","BlockRemovalWarningModal","rules","clientIds","selectPrevious","blockNamesForPrompt","select","getRemovalPromptData","clearBlockRemovalPrompt","setBlockRemovalRules","privateRemoveBlocks","onConfirmRemoval","length","listStyleType","paddingLeft","map","name"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,oBAA1B;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,iBAAvC;AACA,SACCC,KADD,EAECC,MAFD,EAGCC,oBAAoB,IAAIC,MAHzB,QAIO,uBAJP;AAKA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,OAAO,SAASC,wBAAT,CAAmC;AAAEC,EAAAA;AAAF,CAAnC,EAA+C;AACrD,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,cAAb;AAA6BC,IAAAA;AAA7B,MAAqDb,SAAS,CACjEc,MAAF,IACCN,MAAM,CAAEM,MAAM,CAAEP,gBAAF,CAAR,CAAN,CAAqCQ,oBAArC,EAFkE,CAApE;AAKA,QAAM;AACLC,IAAAA,uBADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA;AAHK,MAIFV,MAAM,CAAET,WAAW,CAAEQ,gBAAF,CAAb,CAJV,CANqD,CAYrD;AACA;;AACAT,EAAAA,SAAS,CAAE,MAAM;AAChBmB,IAAAA,oBAAoB,CAAEP,KAAF,CAApB;AACA,WAAO,MAAM;AACZO,MAAAA,oBAAoB;AACpB,KAFD;AAGA,GALQ,EAKN,CAAEP,KAAF,EAASO,oBAAT,CALM,CAAT;;AAOA,MAAK,CAAEJ,mBAAP,EAA6B;AAC5B;AACA;;AAED,QAAMM,gBAAgB,GAAG,MAAM;AAC9BD,IAAAA,mBAAmB,CAAEP,SAAF,EAAaC,cAAb;AAA6B;AAAY,QAAzC,CAAnB;AACAI,IAAAA,uBAAuB;AACvB,GAHD;;AAKA,SACC,cAAC,KAAD;AACC,IAAA,KAAK,EAAGX,EAAE,CAAE,eAAF,CADX;AAEC,IAAA,cAAc,EAAGW;AAFlB,KAIGH,mBAAmB,CAACO,MAApB,KAA+B,CAA/B,GACD,yBAAKV,KAAK,CAAEG,mBAAmB,CAAE,CAAF,CAArB,CAAV,CADC,GAGD;AAAI,IAAA,KAAK,EAAG;AAAEQ,MAAAA,aAAa,EAAE,MAAjB;AAAyBC,MAAAA,WAAW,EAAE;AAAtC;AAAZ,KACGT,mBAAmB,CAACU,GAApB,CAA2BC,IAAF,IAC1B;AAAI,IAAA,GAAG,EAAGA;AAAV,KAAmBd,KAAK,CAAEc,IAAF,CAAxB,CADC,CADH,CAPF,EAaC,yBACGX,mBAAmB,CAACO,MAApB,GAA6B,CAA7B,GACCf,EAAE,CAAE,uCAAF,CADH,GAECA,EAAE,CAAE,qCAAF,CAHN,CAbD,EAkBC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAC;AAAhB,KACC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAC,UAAhB;AAA2B,IAAA,OAAO,EAAGW;AAArC,KACGX,EAAE,CAAE,QAAF,CADL,CADD,EAIC,cAAC,MAAD;AAAQ,IAAA,OAAO,EAAC,SAAhB;AAA0B,IAAA,OAAO,EAAGc;AAApC,KACGd,EAAE,CAAE,QAAF,CADL,CAJD,CAlBD,CADD;AA6BA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect } from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tModal,\n\tButton,\n\t__experimentalHStack as HStack,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { unlock } from '../../lock-unlock';\n\nexport function BlockRemovalWarningModal( { rules } ) {\n\tconst { clientIds, selectPrevious, blockNamesForPrompt } = useSelect(\n\t\t( select ) =>\n\t\t\tunlock( select( blockEditorStore ) ).getRemovalPromptData()\n\t);\n\n\tconst {\n\t\tclearBlockRemovalPrompt,\n\t\tsetBlockRemovalRules,\n\t\tprivateRemoveBlocks,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\t// Load block removal rules, simultaneously signalling that the block\n\t// removal prompt is in place.\n\tuseEffect( () => {\n\t\tsetBlockRemovalRules( rules );\n\t\treturn () => {\n\t\t\tsetBlockRemovalRules();\n\t\t};\n\t}, [ rules, setBlockRemovalRules ] );\n\n\tif ( ! blockNamesForPrompt ) {\n\t\treturn;\n\t}\n\n\tconst onConfirmRemoval = () => {\n\t\tprivateRemoveBlocks( clientIds, selectPrevious, /* force */ true );\n\t\tclearBlockRemovalPrompt();\n\t};\n\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Are you sure?' ) }\n\t\t\tonRequestClose={ clearBlockRemovalPrompt }\n\t\t>\n\t\t\t{ blockNamesForPrompt.length === 1 ? (\n\t\t\t\t<p>{ rules[ blockNamesForPrompt[ 0 ] ] }</p>\n\t\t\t) : (\n\t\t\t\t<ul style={ { listStyleType: 'disc', paddingLeft: '1rem' } }>\n\t\t\t\t\t{ blockNamesForPrompt.map( ( name ) => (\n\t\t\t\t\t\t<li key={ name }>{ rules[ name ] }</li>\n\t\t\t\t\t) ) }\n\t\t\t\t</ul>\n\t\t\t) }\n\t\t\t<p>\n\t\t\t\t{ blockNamesForPrompt.length > 1\n\t\t\t\t\t? __( 'Removing these blocks is not advised.' )\n\t\t\t\t\t: __( 'Removing this block is not advised.' ) }\n\t\t\t</p>\n\t\t\t<HStack justify=\"right\">\n\t\t\t\t<Button variant=\"tertiary\" onClick={ clearBlockRemovalPrompt }>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t\t<Button variant=\"primary\" onClick={ onConfirmRemoval }>\n\t\t\t\t\t{ __( 'Delete' ) }\n\t\t\t\t</Button>\n\t\t\t</HStack>\n\t\t</Modal>\n\t);\n}\n"]}
|
|
@@ -3,7 +3,7 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { createSlotFill, ToolbarButton } from '@wordpress/components';
|
|
6
|
+
import { createSlotFill, ToolbarButton, ToolbarGroup } from '@wordpress/components';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
8
|
import { withDispatch } from '@wordpress/data';
|
|
9
9
|
import { cog } from '@wordpress/icons';
|
|
@@ -14,11 +14,11 @@ const {
|
|
|
14
14
|
|
|
15
15
|
const SettingsButton = ({
|
|
16
16
|
openGeneralSidebar
|
|
17
|
-
}) => createElement(ToolbarButton, {
|
|
17
|
+
}) => createElement(ToolbarGroup, null, createElement(ToolbarButton, {
|
|
18
18
|
title: __('Open Settings'),
|
|
19
19
|
icon: cog,
|
|
20
20
|
onClick: openGeneralSidebar
|
|
21
|
-
});
|
|
21
|
+
}));
|
|
22
22
|
|
|
23
23
|
const SettingsButtonFill = props => createElement(Fill, null, createElement(SettingsButton, { ...props
|
|
24
24
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-settings/button.native.js"],"names":["createSlotFill","ToolbarButton","__","withDispatch","cog","Fill","Slot","SettingsButton","openGeneralSidebar","SettingsButtonFill","props","SettingsToolbarButton","dispatch"],"mappings":";;AAAA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-settings/button.native.js"],"names":["createSlotFill","ToolbarButton","ToolbarGroup","__","withDispatch","cog","Fill","Slot","SettingsButton","openGeneralSidebar","SettingsButtonFill","props","SettingsToolbarButton","dispatch"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,cADD,EAECC,aAFD,EAGCC,YAHD,QAIO,uBAJP;AAKA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,YAAT,QAA6B,iBAA7B;AACA,SAASC,GAAT,QAAoB,kBAApB;AAEA,MAAM;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,IAAiBP,cAAc,CAAE,uBAAF,CAArC;;AAEA,MAAMQ,cAAc,GAAG,CAAE;AAAEC,EAAAA;AAAF,CAAF,KACtB,cAAC,YAAD,QACC,cAAC,aAAD;AACC,EAAA,KAAK,EAAGN,EAAE,CAAE,eAAF,CADX;AAEC,EAAA,IAAI,EAAGE,GAFR;AAGC,EAAA,OAAO,EAAGI;AAHX,EADD,CADD;;AAUA,MAAMC,kBAAkB,GAAKC,KAAF,IAC1B,cAAC,IAAD,QACC,cAAC,cAAD,OAAqBA;AAArB,EADD,CADD;;AAMA,MAAMC,qBAAqB,GAAGR,YAAY,CAAIS,QAAF,IAAgB;AAC3D,QAAM;AAAEJ,IAAAA;AAAF,MAAyBI,QAAQ,CAAE,gBAAF,CAAvC;AAEA,SAAO;AACNJ,IAAAA,kBAAkB,EAAE,MAAMA,kBAAkB,CAAE,iBAAF;AADtC,GAAP;AAGA,CANyC,CAAZ,CAMzBC,kBANyB,CAA9B;AAQAE,qBAAqB,CAACL,IAAtB,GAA6BA,IAA7B;AAEA,eAAeK,qBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateSlotFill,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { withDispatch } from '@wordpress/data';\nimport { cog } from '@wordpress/icons';\n\nconst { Fill, Slot } = createSlotFill( 'SettingsToolbarButton' );\n\nconst SettingsButton = ( { openGeneralSidebar } ) => (\n\t<ToolbarGroup>\n\t\t<ToolbarButton\n\t\t\ttitle={ __( 'Open Settings' ) }\n\t\t\ticon={ cog }\n\t\t\tonClick={ openGeneralSidebar }\n\t\t/>\n\t</ToolbarGroup>\n);\n\nconst SettingsButtonFill = ( props ) => (\n\t<Fill>\n\t\t<SettingsButton { ...props } />\n\t</Fill>\n);\n\nconst SettingsToolbarButton = withDispatch( ( dispatch ) => {\n\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\n\treturn {\n\t\topenGeneralSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t};\n} )( SettingsButtonFill );\n\nSettingsToolbarButton.Slot = Slot;\n\nexport default SettingsToolbarButton;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createElement
|
|
1
|
+
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
@@ -8,7 +8,7 @@ import { Platform, findNodeHandle } from 'react-native';
|
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { getClipboard, setClipboard, ToolbarButton, Picker } from '@wordpress/components';
|
|
11
|
+
import { getClipboard, setClipboard, ToolbarGroup, ToolbarButton, Picker } from '@wordpress/components';
|
|
12
12
|
import { getBlockType, getDefaultBlockName, hasBlockSupport, serialize, rawHandler, createBlock, isUnmodifiedDefaultBlock, isReusableBlock } from '@wordpress/blocks';
|
|
13
13
|
import { __, sprintf } from '@wordpress/i18n';
|
|
14
14
|
import { withDispatch, withSelect, useSelect } from '@wordpress/data';
|
|
@@ -79,7 +79,9 @@ const BlockActionsMenu = ({
|
|
|
79
79
|
}
|
|
80
80
|
} = getMoversSetup(isStackedHorizontally, moversOptions); // Check if selected block is Groupable and/or Ungroupable.
|
|
81
81
|
|
|
82
|
-
const convertToGroupButtonProps = useConvertToGroupButtonProps(
|
|
82
|
+
const convertToGroupButtonProps = useConvertToGroupButtonProps( // `selectedBlockClientId` can be undefined in some cases where this
|
|
83
|
+
// component gets re-rendered right after the block is removed.
|
|
84
|
+
selectedBlockClientId ? [selectedBlockClientId] : []);
|
|
83
85
|
const {
|
|
84
86
|
isGroupable,
|
|
85
87
|
isUngroupable
|
|
@@ -189,11 +191,11 @@ const BlockActionsMenu = ({
|
|
|
189
191
|
const options = [wrapBlockMover && allOptions.backwardButton, wrapBlockMover && allOptions.forwardButton, wrapBlockSettings && allOptions.settings, !isLocked && selectedBlockPossibleTransformations.length && allOptions.transformButton, canDuplicate && allOptions.copyButton, canDuplicate && allOptions.cutButton, canDuplicate && isPasteEnabled && allOptions.pasteButton, canDuplicate && allOptions.duplicateButton, showConvertToGroupButton && isGroupable && convertToGroupButtons.group, showConvertToGroupButton && isUngroupable && convertToGroupButtons.ungroup, isReusableBlockType && innerBlockCount > 0 && allOptions.convertToRegularBlocks, !isLocked && allOptions.delete].filter(Boolean); // End early if there are no options to show.
|
|
190
192
|
|
|
191
193
|
if (!options.length) {
|
|
192
|
-
return createElement(ToolbarButton, {
|
|
194
|
+
return createElement(ToolbarGroup, null, createElement(ToolbarButton, {
|
|
193
195
|
title: __('Open Block Actions Menu'),
|
|
194
196
|
icon: moreHorizontalMobile,
|
|
195
197
|
disabled: true
|
|
196
|
-
});
|
|
198
|
+
}));
|
|
197
199
|
}
|
|
198
200
|
|
|
199
201
|
function onPasteBlock() {
|
|
@@ -222,7 +224,7 @@ const BlockActionsMenu = ({
|
|
|
222
224
|
|
|
223
225
|
const getAnchor = () => anchorNodeRef ? findNodeHandle(anchorNodeRef) : undefined;
|
|
224
226
|
|
|
225
|
-
return createElement(
|
|
227
|
+
return createElement(ToolbarGroup, null, createElement(ToolbarButton, {
|
|
226
228
|
title: __('Open Block Actions Menu'),
|
|
227
229
|
onClick: onPickerPresent,
|
|
228
230
|
icon: moreHorizontalMobile,
|
|
@@ -369,4 +371,4 @@ export default compose(withSelect((select, {
|
|
|
369
371
|
removeBlocks
|
|
370
372
|
};
|
|
371
373
|
}), withInstanceId)(BlockActionsMenu);
|
|
372
|
-
//# sourceMappingURL=block-
|
|
374
|
+
//# sourceMappingURL=block-toolbar-menu.native.js.map
|