@wordpress/block-editor 9.0.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +1 -0
- package/build/components/block-alignment-matrix-control/index.js +1 -6
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-content-overlay/index.js +4 -82
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/draggable-chip.native.js +64 -0
- package/build/components/block-draggable/draggable-chip.native.js.map +1 -0
- package/build/components/block-draggable/dropping-insertion-point.native.js +157 -0
- package/build/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
- package/build/components/block-draggable/index.native.js +484 -0
- package/build/components/block-draggable/index.native.js.map +1 -0
- package/build/components/block-draggable/use-scroll-when-dragging.native.js +130 -0
- package/build/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
- package/build/components/block-list/block-list-context.native.js +195 -0
- package/build/components/block-list/block-list-context.native.js.map +1 -0
- package/build/components/block-list/block-list-item-cell.native.js +67 -0
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -0
- package/build/components/block-list/block-list-item.native.js +12 -9
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block.native.js +26 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +75 -23
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +8 -4
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +1 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +9 -3
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-mover/index.native.js +17 -4
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-popover/inbetween.js +10 -2
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +4 -16
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/index.js +1 -1
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-tools/selected-block-popover.js +1 -29
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +10 -3
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +149 -44
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/iframe/index.js +51 -50
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +3 -1
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/index.js +5 -14
- package/build/components/index.js.map +1 -1
- package/build/components/inserter/index.native.js +1 -1
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/link-control/constants.js +11 -1
- package/build/components/link-control/constants.js.map +1 -1
- package/build/components/link-control/search-results.js +4 -3
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +4 -4
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +0 -1
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +12 -2
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +0 -1
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/url-input/index.js +4 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +167 -0
- package/build/components/use-block-drop-zone/index.native.js.map +1 -0
- package/build/components/use-on-block-drop/index.native.js +95 -0
- package/build/components/use-on-block-drop/index.native.js.map +1 -0
- package/build/components/warning/index.js +6 -1
- package/build/components/warning/index.js.map +1 -1
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/border.js +2 -7
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +14 -7
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/style.js +14 -13
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +6 -2
- package/build/hooks/typography.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +1 -6
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +3 -78
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/draggable-chip.native.js +50 -0
- package/build-module/components/block-draggable/draggable-chip.native.js.map +1 -0
- package/build-module/components/block-draggable/dropping-insertion-point.native.js +137 -0
- package/build-module/components/block-draggable/dropping-insertion-point.native.js.map +1 -0
- package/build-module/components/block-draggable/index.native.js +449 -0
- package/build-module/components/block-draggable/index.native.js.map +1 -0
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js +120 -0
- package/build-module/components/block-draggable/use-scroll-when-dragging.native.js.map +1 -0
- package/build-module/components/block-list/block-list-context.native.js +179 -0
- package/build-module/components/block-list/block-list-context.native.js.map +1 -0
- package/build-module/components/block-list/block-list-item-cell.native.js +59 -0
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -0
- package/build-module/components/block-list/block-list-item.native.js +12 -9
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block.native.js +25 -5
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +72 -23
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +9 -5
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +8 -3
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +18 -5
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +10 -2
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +4 -15
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/index.js +1 -1
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-tools/selected-block-popover.js +2 -29
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +11 -4
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +151 -46
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/iframe/index.js +52 -51
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +2 -1
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/index.js +1 -2
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +1 -1
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/link-control/constants.js +5 -0
- package/build-module/components/link-control/constants.js.map +1 -1
- package/build-module/components/link-control/search-results.js +3 -4
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +5 -5
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +0 -1
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +12 -2
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +0 -1
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +148 -0
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -0
- package/build-module/components/use-on-block-drop/index.native.js +83 -0
- package/build-module/components/use-on-block-drop/index.native.js.map +1 -0
- package/build-module/components/warning/index.js +6 -1
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/border.js +2 -7
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +11 -6
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/style.js +15 -14
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +6 -2
- package/build-module/hooks/typography.js.map +1 -1
- package/build-style/style-rtl.css +60 -174
- package/build-style/style.css +60 -174
- package/package.json +28 -28
- package/src/components/block-alignment-matrix-control/index.js +1 -5
- package/src/components/block-content-overlay/index.js +8 -95
- package/src/components/block-content-overlay/style.scss +2 -11
- package/src/components/block-draggable/draggable-chip.native.js +49 -0
- package/src/components/block-draggable/dropping-insertion-point.native.js +181 -0
- package/src/components/block-draggable/dropping-insertion-point.native.scss +8 -0
- package/src/components/block-draggable/index.native.js +458 -0
- package/src/components/block-draggable/style.native.scss +19 -0
- package/src/components/block-draggable/use-scroll-when-dragging.native.js +135 -0
- package/src/components/block-list/block-list-context.native.js +175 -0
- package/src/components/block-list/block-list-item-cell.native.js +49 -0
- package/src/components/block-list/block-list-item.native.js +7 -11
- package/src/components/block-list/block.native.js +36 -8
- package/src/components/block-list/index.native.js +54 -13
- package/src/components/block-list/test/block-list-context.native.js +253 -0
- package/src/components/block-list/test/fixtures/block-list-context.native.js +79 -0
- package/src/components/block-list/use-block-props/index.js +10 -5
- package/src/components/block-list/use-in-between-inserter.js +1 -1
- package/src/components/block-mobile-toolbar/index.native.js +8 -1
- package/src/components/block-mover/index.native.js +22 -6
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +6 -0
- package/src/components/block-popover/inbetween.js +9 -1
- package/src/components/block-popover/index.js +1 -16
- package/src/components/block-popover/style.scss +1 -0
- package/src/components/block-preview/index.js +1 -4
- package/src/components/block-switcher/style.scss +2 -39
- package/src/components/block-tools/selected-block-popover.js +1 -36
- package/src/components/block-tools/style.scss +1 -12
- package/src/components/border-radius-control/input-controls.js +16 -8
- package/src/components/border-radius-control/style.scss +3 -2
- package/src/components/colors-gradients/dropdown.js +156 -62
- package/src/components/colors-gradients/style.scss +51 -23
- package/src/components/duotone-control/style.scss +1 -7
- package/src/components/iframe/index.js +62 -54
- package/src/components/image-editor/use-save-image.js +2 -1
- package/src/components/index.js +1 -2
- package/src/components/inserter/index.native.js +1 -1
- package/src/components/inserter/style.scss +2 -1
- package/src/components/link-control/constants.js +11 -0
- package/src/components/link-control/search-results.js +4 -5
- package/src/components/link-control/use-search-handler.js +11 -5
- package/src/components/list-view/drop-indicator.js +0 -1
- package/src/components/list-view/style.scss +2 -1
- package/src/components/navigable-toolbar/index.js +12 -2
- package/src/components/preview-options/style.scss +0 -4
- package/src/components/rich-text/format-toolbar-container.js +0 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/rich-text/style.scss +2 -8
- package/src/components/url-input/index.js +3 -1
- package/src/components/use-block-drop-zone/index.native.js +173 -0
- package/src/components/use-on-block-drop/index.native.js +119 -0
- package/src/components/warning/index.js +47 -42
- package/src/components/warning/test/__snapshots__/index.js.snap +15 -6
- package/src/components/warning/test/index.js +1 -1
- package/src/hooks/anchor.js +1 -1
- package/src/hooks/border.js +2 -11
- package/src/hooks/border.scss +0 -48
- package/src/hooks/color-panel.js +13 -9
- package/src/hooks/color.scss +0 -62
- package/src/hooks/style.js +25 -39
- package/src/hooks/typography.js +2 -0
- package/src/style.scss +0 -1
- package/build/components/colors-gradients/tools-panel-color-dropdown.js +0 -89
- package/build/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
- package/build-module/components/colors-gradients/tools-panel-color-dropdown.js +0 -75
- package/build-module/components/colors-gradients/tools-panel-color-dropdown.js.map +0 -1
- package/src/components/block-alignment-matrix-control/style.scss +0 -10
- package/src/components/colors-gradients/tools-panel-color-dropdown.js +0 -85
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DEFAULT_BLOCK_LIST_CONTEXT = exports.BlockListProvider = exports.BlockListConsumer = void 0;
|
|
7
|
+
exports.deleteBlockLayoutByClientId = deleteBlockLayoutByClientId;
|
|
8
|
+
exports.useBlockListContext = void 0;
|
|
9
|
+
|
|
10
|
+
var _lodash = require("lodash");
|
|
11
|
+
|
|
12
|
+
var _element = require("@wordpress/element");
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* External dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* WordPress dependencies
|
|
20
|
+
*/
|
|
21
|
+
const DEFAULT_BLOCK_LIST_CONTEXT = {
|
|
22
|
+
scrollRef: null,
|
|
23
|
+
blocksLayouts: {
|
|
24
|
+
current: {}
|
|
25
|
+
},
|
|
26
|
+
findBlockLayoutByClientId,
|
|
27
|
+
getBlockLayoutsOrderedByYCoord,
|
|
28
|
+
findBlockLayoutByPosition,
|
|
29
|
+
updateBlocksLayouts
|
|
30
|
+
};
|
|
31
|
+
exports.DEFAULT_BLOCK_LIST_CONTEXT = DEFAULT_BLOCK_LIST_CONTEXT;
|
|
32
|
+
const Context = (0, _element.createContext)(DEFAULT_BLOCK_LIST_CONTEXT);
|
|
33
|
+
const {
|
|
34
|
+
Provider,
|
|
35
|
+
Consumer
|
|
36
|
+
} = Context;
|
|
37
|
+
/**
|
|
38
|
+
* Finds a block's layout data by position.
|
|
39
|
+
*
|
|
40
|
+
* @param {Object} data Blocks layouts object.
|
|
41
|
+
* @param {Object} position Position to use for finding the block.
|
|
42
|
+
* @param {number} position.x X coordinate.
|
|
43
|
+
* @param {number} position.y Y coordinate.
|
|
44
|
+
*
|
|
45
|
+
* @return {Object|undefined} Found block layout data that matches the provided position. If none is found, `undefined` will be returned.
|
|
46
|
+
*/
|
|
47
|
+
|
|
48
|
+
exports.BlockListConsumer = Consumer;
|
|
49
|
+
exports.BlockListProvider = Provider;
|
|
50
|
+
|
|
51
|
+
function findBlockLayoutByPosition(data, position) {
|
|
52
|
+
// Only enabled for root level blocks
|
|
53
|
+
return Object.values(data).find(block => {
|
|
54
|
+
return position.x >= block.x && position.x <= block.x + block.width && position.y >= block.y && position.y <= block.y + block.height;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Finds a block's layout data by its client Id.
|
|
59
|
+
*
|
|
60
|
+
* @param {Object} data Blocks layouts object.
|
|
61
|
+
* @param {string} clientId Block's clientId.
|
|
62
|
+
*
|
|
63
|
+
* @return {Object} Found block layout data.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
function findBlockLayoutByClientId(data, clientId) {
|
|
68
|
+
return Object.entries(data).reduce((acc, entry) => {
|
|
69
|
+
const item = entry[1];
|
|
70
|
+
|
|
71
|
+
if (acc) {
|
|
72
|
+
return acc;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if ((item === null || item === void 0 ? void 0 : item.clientId) === clientId) {
|
|
76
|
+
return item;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (item !== null && item !== void 0 && item.innerBlocks && Object.keys(item.innerBlocks).length > 0) {
|
|
80
|
+
return findBlockLayoutByClientId(item.innerBlocks, clientId);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return null;
|
|
84
|
+
}, null);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Deletes the layout data of a block by its client Id.
|
|
88
|
+
*
|
|
89
|
+
* @param {Object} data Blocks layouts object.
|
|
90
|
+
* @param {string} clientId Block's clientsId.
|
|
91
|
+
*
|
|
92
|
+
* @return {Object} Updated data object.
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
function deleteBlockLayoutByClientId(data, clientId) {
|
|
97
|
+
return Object.keys(data).reduce((acc, key) => {
|
|
98
|
+
var _data$key;
|
|
99
|
+
|
|
100
|
+
if (key !== clientId) {
|
|
101
|
+
acc[key] = data[key];
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if ((_data$key = data[key]) !== null && _data$key !== void 0 && _data$key.innerBlocks && Object.keys(data[key].innerBlocks).length > 0) {
|
|
105
|
+
if (acc[key]) {
|
|
106
|
+
acc[key].innerBlocks = deleteBlockLayoutByClientId(data[key].innerBlocks, clientId);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return acc;
|
|
111
|
+
}, {});
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Orders the block's layout data by its Y coordinate.
|
|
115
|
+
*
|
|
116
|
+
* @param {Object} data Blocks layouts object.
|
|
117
|
+
*
|
|
118
|
+
* @return {Object} Blocks layouts object ordered by its Y coordinate.
|
|
119
|
+
*/
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
function getBlockLayoutsOrderedByYCoord(data) {
|
|
123
|
+
// Only enabled for root level blocks.
|
|
124
|
+
// Using lodash orderBy due to hermes not having
|
|
125
|
+
// stable support for native .sort(). It will be
|
|
126
|
+
// supported in the React Native version 0.68.0.
|
|
127
|
+
return (0, _lodash.orderBy)(data, ['y', 'asc']);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Updates or deletes a block's layout data in the blocksLayouts object,
|
|
131
|
+
* in case of deletion, the layout data is not required.
|
|
132
|
+
*
|
|
133
|
+
* @param {Object} blocksLayouts Blocks layouts object.
|
|
134
|
+
* @param {Object} blockData Block's layout data to add or remove to/from the blockLayouts object.
|
|
135
|
+
* @param {string} blockData.clientId Block's clientId.
|
|
136
|
+
* @param {?string} blockData.rootClientId Optional. Block's rootClientId.
|
|
137
|
+
* @param {?boolean} blockData.shouldRemove Optional. Flag to remove it from the blocksLayout list.
|
|
138
|
+
* @param {number} blockData.width Block's width.
|
|
139
|
+
* @param {number} blockData.height Block's height.
|
|
140
|
+
* @param {number} blockData.x Block's x coordinate (relative to the parent).
|
|
141
|
+
* @param {number} blockData.y Block's y coordinate (relative to the parent).
|
|
142
|
+
*/
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
function updateBlocksLayouts(blocksLayouts, blockData) {
|
|
146
|
+
const {
|
|
147
|
+
clientId,
|
|
148
|
+
rootClientId,
|
|
149
|
+
shouldRemove,
|
|
150
|
+
...layoutProps
|
|
151
|
+
} = blockData;
|
|
152
|
+
|
|
153
|
+
if (clientId && shouldRemove) {
|
|
154
|
+
blocksLayouts.current = deleteBlockLayoutByClientId(blocksLayouts.current, clientId);
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (clientId && !rootClientId) {
|
|
159
|
+
var _blocksLayouts$curren;
|
|
160
|
+
|
|
161
|
+
blocksLayouts.current[clientId] = {
|
|
162
|
+
clientId,
|
|
163
|
+
rootClientId,
|
|
164
|
+
...layoutProps,
|
|
165
|
+
innerBlocks: { ...((_blocksLayouts$curren = blocksLayouts.current[clientId]) === null || _blocksLayouts$curren === void 0 ? void 0 : _blocksLayouts$curren.innerBlocks)
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
} else if (clientId && rootClientId) {
|
|
169
|
+
const block = findBlockLayoutByClientId(blocksLayouts.current, rootClientId);
|
|
170
|
+
|
|
171
|
+
if (block) {
|
|
172
|
+
var _block$innerBlocks$cl;
|
|
173
|
+
|
|
174
|
+
block.innerBlocks[clientId] = {
|
|
175
|
+
clientId,
|
|
176
|
+
rootClientId,
|
|
177
|
+
...layoutProps,
|
|
178
|
+
innerBlocks: { ...((_block$innerBlocks$cl = block.innerBlocks[clientId]) === null || _block$innerBlocks$cl === void 0 ? void 0 : _block$innerBlocks$cl.innerBlocks)
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Hook that returns the block list context.
|
|
187
|
+
*
|
|
188
|
+
* @return {Object} Block list context
|
|
189
|
+
*/
|
|
190
|
+
const useBlockListContext = () => {
|
|
191
|
+
return (0, _element.useContext)(Context);
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
exports.useBlockListContext = useBlockListContext;
|
|
195
|
+
//# sourceMappingURL=block-list-context.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-context.native.js"],"names":["DEFAULT_BLOCK_LIST_CONTEXT","scrollRef","blocksLayouts","current","findBlockLayoutByClientId","getBlockLayoutsOrderedByYCoord","findBlockLayoutByPosition","updateBlocksLayouts","Context","Provider","Consumer","data","position","Object","values","find","block","x","width","y","height","clientId","entries","reduce","acc","entry","item","innerBlocks","keys","length","deleteBlockLayoutByClientId","key","blockData","rootClientId","shouldRemove","layoutProps","useBlockListContext"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { orderBy } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\nexport const DEFAULT_BLOCK_LIST_CONTEXT = {\n\tscrollRef: null,\n\tblocksLayouts: { current: {} },\n\tfindBlockLayoutByClientId,\n\tgetBlockLayoutsOrderedByYCoord,\n\tfindBlockLayoutByPosition,\n\tupdateBlocksLayouts,\n};\n\nconst Context = createContext( DEFAULT_BLOCK_LIST_CONTEXT );\nconst { Provider, Consumer } = Context;\n\n/**\n * Finds a block's layout data by position.\n *\n * @param {Object} data Blocks layouts object.\n * @param {Object} position Position to use for finding the block.\n * @param {number} position.x X coordinate.\n * @param {number} position.y Y coordinate.\n *\n * @return {Object|undefined} Found block layout data that matches the provided position. If none is found, `undefined` will be returned.\n */\nfunction findBlockLayoutByPosition( data, position ) {\n\t// Only enabled for root level blocks\n\treturn Object.values( data ).find( ( block ) => {\n\t\treturn (\n\t\t\tposition.x >= block.x &&\n\t\t\tposition.x <= block.x + block.width &&\n\t\t\tposition.y >= block.y &&\n\t\t\tposition.y <= block.y + block.height\n\t\t);\n\t} );\n}\n\n/**\n * Finds a block's layout data by its client Id.\n *\n * @param {Object} data Blocks layouts object.\n * @param {string} clientId Block's clientId.\n *\n * @return {Object} Found block layout data.\n */\nfunction findBlockLayoutByClientId( data, clientId ) {\n\treturn Object.entries( data ).reduce( ( acc, entry ) => {\n\t\tconst item = entry[ 1 ];\n\t\tif ( acc ) {\n\t\t\treturn acc;\n\t\t}\n\t\tif ( item?.clientId === clientId ) {\n\t\t\treturn item;\n\t\t}\n\t\tif ( item?.innerBlocks && Object.keys( item.innerBlocks ).length > 0 ) {\n\t\t\treturn findBlockLayoutByClientId( item.innerBlocks, clientId );\n\t\t}\n\t\treturn null;\n\t}, null );\n}\n\n/**\n * Deletes the layout data of a block by its client Id.\n *\n * @param {Object} data Blocks layouts object.\n * @param {string} clientId Block's clientsId.\n *\n * @return {Object} Updated data object.\n */\nexport function deleteBlockLayoutByClientId( data, clientId ) {\n\treturn Object.keys( data ).reduce( ( acc, key ) => {\n\t\tif ( key !== clientId ) {\n\t\t\tacc[ key ] = data[ key ];\n\t\t}\n\t\tif (\n\t\t\tdata[ key ]?.innerBlocks &&\n\t\t\tObject.keys( data[ key ].innerBlocks ).length > 0\n\t\t) {\n\t\t\tif ( acc[ key ] ) {\n\t\t\t\tacc[ key ].innerBlocks = deleteBlockLayoutByClientId(\n\t\t\t\t\tdata[ key ].innerBlocks,\n\t\t\t\t\tclientId\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn acc;\n\t}, {} );\n}\n\n/**\n * Orders the block's layout data by its Y coordinate.\n *\n * @param {Object} data Blocks layouts object.\n *\n * @return {Object} Blocks layouts object ordered by its Y coordinate.\n */\nfunction getBlockLayoutsOrderedByYCoord( data ) {\n\t// Only enabled for root level blocks.\n\t// Using lodash orderBy due to hermes not having\n\t// stable support for native .sort(). It will be\n\t// supported in the React Native version 0.68.0.\n\treturn orderBy( data, [ 'y', 'asc' ] );\n}\n\n/**\n * Updates or deletes a block's layout data in the blocksLayouts object,\n * in case of deletion, the layout data is not required.\n *\n * @param {Object} blocksLayouts Blocks layouts object.\n * @param {Object} blockData Block's layout data to add or remove to/from the blockLayouts object.\n * @param {string} blockData.clientId Block's clientId.\n * @param {?string} blockData.rootClientId Optional. Block's rootClientId.\n * @param {?boolean} blockData.shouldRemove Optional. Flag to remove it from the blocksLayout list.\n * @param {number} blockData.width Block's width.\n * @param {number} blockData.height Block's height.\n * @param {number} blockData.x Block's x coordinate (relative to the parent).\n * @param {number} blockData.y Block's y coordinate (relative to the parent).\n */\n\nfunction updateBlocksLayouts( blocksLayouts, blockData ) {\n\tconst { clientId, rootClientId, shouldRemove, ...layoutProps } = blockData;\n\n\tif ( clientId && shouldRemove ) {\n\t\tblocksLayouts.current = deleteBlockLayoutByClientId(\n\t\t\tblocksLayouts.current,\n\t\t\tclientId\n\t\t);\n\t\treturn;\n\t}\n\n\tif ( clientId && ! rootClientId ) {\n\t\tblocksLayouts.current[ clientId ] = {\n\t\t\tclientId,\n\t\t\trootClientId,\n\t\t\t...layoutProps,\n\t\t\tinnerBlocks: {\n\t\t\t\t...blocksLayouts.current[ clientId ]?.innerBlocks,\n\t\t\t},\n\t\t};\n\t} else if ( clientId && rootClientId ) {\n\t\tconst block = findBlockLayoutByClientId(\n\t\t\tblocksLayouts.current,\n\t\t\trootClientId\n\t\t);\n\n\t\tif ( block ) {\n\t\t\tblock.innerBlocks[ clientId ] = {\n\t\t\t\tclientId,\n\t\t\t\trootClientId,\n\t\t\t\t...layoutProps,\n\t\t\t\tinnerBlocks: {\n\t\t\t\t\t...block.innerBlocks[ clientId ]?.innerBlocks,\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t}\n}\n\nexport { Provider as BlockListProvider, Consumer as BlockListConsumer };\n\n/**\n * Hook that returns the block list context.\n *\n * @return {Object} Block list context\n */\nexport const useBlockListContext = () => {\n\treturn useContext( Context );\n};\n"]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
|
|
10
|
+
var _reactNative = require("react-native");
|
|
11
|
+
|
|
12
|
+
var _blockListContext = require("./block-list-context");
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* External dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* WordPress dependencies
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Internal dependencies
|
|
24
|
+
*/
|
|
25
|
+
function BlockListItemCell(_ref) {
|
|
26
|
+
let {
|
|
27
|
+
children,
|
|
28
|
+
clientId,
|
|
29
|
+
rootClientId,
|
|
30
|
+
onLayout
|
|
31
|
+
} = _ref;
|
|
32
|
+
const {
|
|
33
|
+
blocksLayouts,
|
|
34
|
+
updateBlocksLayouts
|
|
35
|
+
} = (0, _blockListContext.useBlockListContext)();
|
|
36
|
+
(0, _element.useEffect)(() => {
|
|
37
|
+
return () => {
|
|
38
|
+
updateBlocksLayouts(blocksLayouts, {
|
|
39
|
+
clientId,
|
|
40
|
+
shouldRemove: true
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
}, []);
|
|
44
|
+
const onCellLayout = (0, _element.useCallback)(event => {
|
|
45
|
+
const {
|
|
46
|
+
nativeEvent: {
|
|
47
|
+
layout
|
|
48
|
+
}
|
|
49
|
+
} = event;
|
|
50
|
+
updateBlocksLayouts(blocksLayouts, {
|
|
51
|
+
clientId,
|
|
52
|
+
rootClientId,
|
|
53
|
+
...layout
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
if (onLayout) {
|
|
57
|
+
onLayout(event);
|
|
58
|
+
}
|
|
59
|
+
}, [clientId, rootClientId, updateBlocksLayouts, onLayout]);
|
|
60
|
+
return (0, _element.createElement)(_reactNative.View, {
|
|
61
|
+
onLayout: onCellLayout
|
|
62
|
+
}, children);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var _default = BlockListItemCell;
|
|
66
|
+
exports.default = _default;
|
|
67
|
+
//# sourceMappingURL=block-list-item-cell.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item-cell.native.js"],"names":["BlockListItemCell","children","clientId","rootClientId","onLayout","blocksLayouts","updateBlocksLayouts","shouldRemove","onCellLayout","event","nativeEvent","layout"],"mappings":";;;;;;;AAQA;;AALA;;AAUA;;AAbA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAGA,SAASA,iBAAT,OAA6E;AAAA,MAAjD;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,QAAZ;AAAsBC,IAAAA,YAAtB;AAAoCC,IAAAA;AAApC,GAAiD;AAC5E,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAyC,4CAA/C;AAEA,0BAAW,MAAM;AAChB,WAAO,MAAM;AACZA,MAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCH,QAAAA,QADmC;AAEnCK,QAAAA,YAAY,EAAE;AAFqB,OAAjB,CAAnB;AAIA,KALD;AAMA,GAPD,EAOG,EAPH;AASA,QAAMC,YAAY,GAAG,0BAClBC,KAAF,IAAa;AACZ,UAAM;AACLC,MAAAA,WAAW,EAAE;AAAEC,QAAAA;AAAF;AADR,QAEFF,KAFJ;AAGAH,IAAAA,mBAAmB,CAAED,aAAF,EAAiB;AACnCH,MAAAA,QADmC;AAEnCC,MAAAA,YAFmC;AAGnC,SAAGQ;AAHgC,KAAjB,CAAnB;;AAMA,QAAKP,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEK,KAAF,CAAR;AACA;AACD,GAdmB,EAepB,CAAEP,QAAF,EAAYC,YAAZ,EAA0BG,mBAA1B,EAA+CF,QAA/C,CAfoB,CAArB;AAkBA,SAAO,4BAAC,iBAAD;AAAM,IAAA,QAAQ,EAAGI;AAAjB,KAAkCP,QAAlC,CAAP;AACA;;eAEcD,iB","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { useBlockListContext } from './block-list-context';\n\nfunction BlockListItemCell( { children, clientId, rootClientId, onLayout } ) {\n\tconst { blocksLayouts, updateBlocksLayouts } = useBlockListContext();\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\tshouldRemove: true,\n\t\t\t} );\n\t\t};\n\t}, [] );\n\n\tconst onCellLayout = useCallback(\n\t\t( event ) => {\n\t\t\tconst {\n\t\t\t\tnativeEvent: { layout },\n\t\t\t} = event;\n\t\t\tupdateBlocksLayouts( blocksLayouts, {\n\t\t\t\tclientId,\n\t\t\t\trootClientId,\n\t\t\t\t...layout,\n\t\t\t} );\n\n\t\t\tif ( onLayout ) {\n\t\t\t\tonLayout( event );\n\t\t\t}\n\t\t},\n\t\t[ clientId, rootClientId, updateBlocksLayouts, onLayout ]\n\t);\n\n\treturn <View onLayout={ onCellLayout }>{ children }</View>;\n}\n\nexport default BlockListItemCell;\n"]}
|
|
@@ -154,23 +154,26 @@ class BlockListItem extends _element.Component {
|
|
|
154
154
|
|
|
155
155
|
render() {
|
|
156
156
|
const {
|
|
157
|
-
gridProperties,
|
|
158
|
-
clientId,
|
|
159
157
|
parentWidth,
|
|
160
|
-
|
|
161
|
-
|
|
158
|
+
blockWidth,
|
|
159
|
+
isGridItem
|
|
162
160
|
} = this.props;
|
|
163
161
|
|
|
164
162
|
if (!blockWidth) {
|
|
165
163
|
return null;
|
|
166
164
|
}
|
|
167
165
|
|
|
168
|
-
if (
|
|
166
|
+
if (isGridItem) {
|
|
167
|
+
const {
|
|
168
|
+
numOfColumns,
|
|
169
|
+
tileCount,
|
|
170
|
+
tileIndex
|
|
171
|
+
} = this.props;
|
|
169
172
|
return (0, _element.createElement)(_gridItem.default, {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
173
|
+
maxWidth: parentWidth,
|
|
174
|
+
numOfColumns: numOfColumns,
|
|
175
|
+
tileCount: tileCount,
|
|
176
|
+
index: tileIndex
|
|
174
177
|
}, this.renderContent());
|
|
175
178
|
}
|
|
176
179
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item.native.js"],"names":["stretchStyle","flex","BlockListItem","Component","getMarginHorizontal","blockAlignment","marginHorizontal","parentBlockAlignment","hasParents","blockName","parentBlockName","parentWidth","blockWidth","props","isFullWidth","isWideWidth","isWider","isContainerRelated","alignmentHelpers","screenWidth","Math","floor","Dimensions","get","width","isScreenWidthEqual","getContentStyles","readableContentViewStyle","styles","fullAlignment","paddingHorizontal","fullAlignmentPadding","paddingLeft","renderContent","clientId","isReadOnly","shouldShowInsertionPointBefore","shouldShowInsertionPointAfter","contentResizeMode","shouldShowInnerBlockAppender","restProps","maxWidth","render","gridProperties","items","numColumns","length","indexOf","select","rootClientId","isStackedHorizontally","getBlockOrder","getBlockInsertionPoint","isBlockInsertionPointVisible","getSettings","getBlockParents","getBlock","blockEditorStore","blockClientIds","insertionPoint","blockInsertionPointIsVisible","index","readOnly","attributes","name","align","parents","parentBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { ReadableContentView, alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockInsertionPoint from './insertion-point';\nimport Grid from './grid-item';\n\nimport styles from './block-list-item.native.scss';\nimport { store as blockEditorStore } from '../../store';\n\nconst stretchStyle = {\n\tflex: 1,\n};\n\nexport class BlockListItem extends Component {\n\tgetMarginHorizontal() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tmarginHorizontal,\n\t\t\tparentBlockAlignment,\n\t\t\thasParents,\n\t\t\tblockName,\n\t\t\tparentBlockName,\n\t\t\tparentWidth,\n\t\t\tblockWidth,\n\t\t} = this.props;\n\t\tconst {\n\t\t\tisFullWidth,\n\t\t\tisWideWidth,\n\t\t\tisWider,\n\t\t\tisContainerRelated,\n\t\t} = alignmentHelpers;\n\n\t\tif ( isFullWidth( blockAlignment ) ) {\n\t\t\tif ( ! hasParents ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn marginHorizontal;\n\t\t}\n\t\tif ( isWideWidth( blockAlignment ) ) {\n\t\t\treturn marginHorizontal;\n\t\t}\n\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\t\tif (\n\t\t\tisFullWidth( parentBlockAlignment ) &&\n\t\t\t! isWider( blockWidth, 'medium' )\n\t\t) {\n\t\t\tif (\n\t\t\t\tisContainerRelated( blockName ) ||\n\t\t\t\tisWider( screenWidth, 'mobile' )\n\t\t\t) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t\treturn marginHorizontal * 2;\n\t\t}\n\n\t\tif (\n\t\t\tisContainerRelated( parentBlockName ) &&\n\t\t\t! isContainerRelated( blockName )\n\t\t) {\n\t\t\tconst isScreenWidthEqual = parentWidth === screenWidth;\n\t\t\tif ( isScreenWidthEqual || isWider( screenWidth, 'mobile' ) ) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t}\n\n\t\treturn marginHorizontal;\n\t}\n\n\tgetContentStyles( readableContentViewStyle ) {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tblockName,\n\t\t\thasParents,\n\t\t\tparentBlockName,\n\t\t} = this.props;\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\n\t\treturn [\n\t\t\treadableContentViewStyle,\n\t\t\tisFullWidth( blockAlignment ) &&\n\t\t\t\t! hasParents && {\n\t\t\t\t\twidth: styles.fullAlignment.width,\n\t\t\t\t},\n\t\t\t! blockAlignment &&\n\t\t\t\thasParents &&\n\t\t\t\t! isContainerRelated( parentBlockName ) &&\n\t\t\t\tisContainerRelated( blockName ) && {\n\t\t\t\t\tpaddingHorizontal: styles.fullAlignmentPadding.paddingLeft,\n\t\t\t\t},\n\t\t];\n\t}\n\n\trenderContent() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tclientId,\n\t\t\tisReadOnly,\n\t\t\tshouldShowInsertionPointBefore,\n\t\t\tshouldShowInsertionPointAfter,\n\t\t\tcontentResizeMode,\n\t\t\tshouldShowInnerBlockAppender,\n\t\t\tparentWidth,\n\t\t\tmarginHorizontal,\n\t\t\tblockName,\n\t\t\tblockWidth,\n\t\t\t...restProps\n\t\t} = this.props;\n\t\tconst readableContentViewStyle =\n\t\t\tcontentResizeMode === 'stretch' && stretchStyle;\n\t\tconst { isContainerRelated } = alignmentHelpers;\n\n\t\treturn (\n\t\t\t<ReadableContentView\n\t\t\t\talign={ blockAlignment }\n\t\t\t\tstyle={ [\n\t\t\t\t\treadableContentViewStyle,\n\t\t\t\t\tisContainerRelated( blockName ) &&\n\t\t\t\t\t\tparentWidth && {\n\t\t\t\t\t\t\tmaxWidth: parentWidth + 2 * marginHorizontal,\n\t\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ this.getContentStyles( readableContentViewStyle ) }\n\t\t\t\t\tpointerEvents={ isReadOnly ? 'box-only' : 'auto' }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowInsertionPointBefore && (\n\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t\tshowTitle={ false }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\tmarginHorizontal={ this.getMarginHorizontal() }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! shouldShowInnerBlockAppender() &&\n\t\t\t\t\t\tshouldShowInsertionPointAfter && (\n\t\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t</ReadableContentView>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tgridProperties,\n\t\t\tclientId,\n\t\t\tparentWidth,\n\t\t\titems,\n\t\t\tblockWidth,\n\t\t} = this.props;\n\n\t\tif ( ! blockWidth ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( gridProperties ) {\n\t\t\treturn (\n\t\t\t\t<Grid\n\t\t\t\t\tnumOfColumns={ gridProperties.numColumns }\n\t\t\t\t\ttileCount={ items.length }\n\t\t\t\t\tindex={ items.indexOf( clientId ) }\n\t\t\t\t\tmaxWidth={ parentWidth }\n\t\t\t\t>\n\t\t\t\t\t{ this.renderContent() }\n\t\t\t\t</Grid>\n\t\t\t);\n\t\t}\n\t\treturn this.renderContent();\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { rootClientId, isStackedHorizontally, clientId } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetBlock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\t\t\tconst shouldShowInsertionPointBefore =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t\tblockClientIds[ insertionPoint.index ] === clientId );\n\n\t\t\tconst shouldShowInsertionPointAfter =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If the insertion point is at the end of the list.\n\t\t\t\tblockClientIds.length === insertionPoint.index &&\n\t\t\t\t// And the denoted block is the last one on the list, show the indicator at the end of the block.\n\t\t\t\tblockClientIds[ insertionPoint.index - 1 ] === clientId;\n\n\t\t\tconst isReadOnly = getSettings().readOnly;\n\n\t\t\tconst { attributes, name } = getBlock( clientId ) || {};\n\t\t\tconst { align } = attributes || {};\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst hasParents = !! parents.length;\n\t\t\tconst parentBlock = hasParents ? getBlock( parents[ 0 ] ) : {};\n\t\t\tconst { align: parentBlockAlignment } =\n\t\t\t\tparentBlock?.attributes || {};\n\t\t\tconst { name: parentBlockName } = parentBlock || {};\n\n\t\t\treturn {\n\t\t\t\tshouldShowInsertionPointBefore,\n\t\t\t\tshouldShowInsertionPointAfter,\n\t\t\t\tisReadOnly,\n\t\t\t\thasParents,\n\t\t\t\tblockAlignment: align,\n\t\t\t\tparentBlockAlignment,\n\t\t\t\tblockName: name,\n\t\t\t\tparentBlockName,\n\t\t\t};\n\t\t}\n\t),\n] )( BlockListItem );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-list-item.native.js"],"names":["stretchStyle","flex","BlockListItem","Component","getMarginHorizontal","blockAlignment","marginHorizontal","parentBlockAlignment","hasParents","blockName","parentBlockName","parentWidth","blockWidth","props","isFullWidth","isWideWidth","isWider","isContainerRelated","alignmentHelpers","screenWidth","Math","floor","Dimensions","get","width","isScreenWidthEqual","getContentStyles","readableContentViewStyle","styles","fullAlignment","paddingHorizontal","fullAlignmentPadding","paddingLeft","renderContent","clientId","isReadOnly","shouldShowInsertionPointBefore","shouldShowInsertionPointAfter","contentResizeMode","shouldShowInnerBlockAppender","restProps","maxWidth","render","isGridItem","numOfColumns","tileCount","tileIndex","select","rootClientId","isStackedHorizontally","getBlockOrder","getBlockInsertionPoint","isBlockInsertionPointVisible","getSettings","getBlockParents","getBlock","blockEditorStore","blockClientIds","insertionPoint","blockInsertionPointIsVisible","length","index","readOnly","attributes","name","align","parents","parentBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { ReadableContentView, alignmentHelpers } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockInsertionPoint from './insertion-point';\nimport Grid from './grid-item';\n\nimport styles from './block-list-item.native.scss';\nimport { store as blockEditorStore } from '../../store';\n\nconst stretchStyle = {\n\tflex: 1,\n};\n\nexport class BlockListItem extends Component {\n\tgetMarginHorizontal() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tmarginHorizontal,\n\t\t\tparentBlockAlignment,\n\t\t\thasParents,\n\t\t\tblockName,\n\t\t\tparentBlockName,\n\t\t\tparentWidth,\n\t\t\tblockWidth,\n\t\t} = this.props;\n\t\tconst {\n\t\t\tisFullWidth,\n\t\t\tisWideWidth,\n\t\t\tisWider,\n\t\t\tisContainerRelated,\n\t\t} = alignmentHelpers;\n\n\t\tif ( isFullWidth( blockAlignment ) ) {\n\t\t\tif ( ! hasParents ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\treturn marginHorizontal;\n\t\t}\n\t\tif ( isWideWidth( blockAlignment ) ) {\n\t\t\treturn marginHorizontal;\n\t\t}\n\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\n\t\tif (\n\t\t\tisFullWidth( parentBlockAlignment ) &&\n\t\t\t! isWider( blockWidth, 'medium' )\n\t\t) {\n\t\t\tif (\n\t\t\t\tisContainerRelated( blockName ) ||\n\t\t\t\tisWider( screenWidth, 'mobile' )\n\t\t\t) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t\treturn marginHorizontal * 2;\n\t\t}\n\n\t\tif (\n\t\t\tisContainerRelated( parentBlockName ) &&\n\t\t\t! isContainerRelated( blockName )\n\t\t) {\n\t\t\tconst isScreenWidthEqual = parentWidth === screenWidth;\n\t\t\tif ( isScreenWidthEqual || isWider( screenWidth, 'mobile' ) ) {\n\t\t\t\treturn marginHorizontal;\n\t\t\t}\n\t\t}\n\n\t\treturn marginHorizontal;\n\t}\n\n\tgetContentStyles( readableContentViewStyle ) {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tblockName,\n\t\t\thasParents,\n\t\t\tparentBlockName,\n\t\t} = this.props;\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\n\t\treturn [\n\t\t\treadableContentViewStyle,\n\t\t\tisFullWidth( blockAlignment ) &&\n\t\t\t\t! hasParents && {\n\t\t\t\t\twidth: styles.fullAlignment.width,\n\t\t\t\t},\n\t\t\t! blockAlignment &&\n\t\t\t\thasParents &&\n\t\t\t\t! isContainerRelated( parentBlockName ) &&\n\t\t\t\tisContainerRelated( blockName ) && {\n\t\t\t\t\tpaddingHorizontal: styles.fullAlignmentPadding.paddingLeft,\n\t\t\t\t},\n\t\t];\n\t}\n\n\trenderContent() {\n\t\tconst {\n\t\t\tblockAlignment,\n\t\t\tclientId,\n\t\t\tisReadOnly,\n\t\t\tshouldShowInsertionPointBefore,\n\t\t\tshouldShowInsertionPointAfter,\n\t\t\tcontentResizeMode,\n\t\t\tshouldShowInnerBlockAppender,\n\t\t\tparentWidth,\n\t\t\tmarginHorizontal,\n\t\t\tblockName,\n\t\t\tblockWidth,\n\t\t\t...restProps\n\t\t} = this.props;\n\n\t\tconst readableContentViewStyle =\n\t\t\tcontentResizeMode === 'stretch' && stretchStyle;\n\t\tconst { isContainerRelated } = alignmentHelpers;\n\n\t\treturn (\n\t\t\t<ReadableContentView\n\t\t\t\talign={ blockAlignment }\n\t\t\t\tstyle={ [\n\t\t\t\t\treadableContentViewStyle,\n\t\t\t\t\tisContainerRelated( blockName ) &&\n\t\t\t\t\t\tparentWidth && {\n\t\t\t\t\t\t\tmaxWidth: parentWidth + 2 * marginHorizontal,\n\t\t\t\t\t\t},\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ this.getContentStyles( readableContentViewStyle ) }\n\t\t\t\t\tpointerEvents={ isReadOnly ? 'box-only' : 'auto' }\n\t\t\t\t>\n\t\t\t\t\t{ shouldShowInsertionPointBefore && (\n\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\tkey={ clientId }\n\t\t\t\t\t\tshowTitle={ false }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\tmarginHorizontal={ this.getMarginHorizontal() }\n\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! shouldShowInnerBlockAppender() &&\n\t\t\t\t\t\tshouldShowInsertionPointAfter && (\n\t\t\t\t\t\t\t<BlockInsertionPoint />\n\t\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t</ReadableContentView>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { parentWidth, blockWidth, isGridItem } = this.props;\n\n\t\tif ( ! blockWidth ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif ( isGridItem ) {\n\t\t\tconst { numOfColumns, tileCount, tileIndex } = this.props;\n\t\t\treturn (\n\t\t\t\t<Grid\n\t\t\t\t\tmaxWidth={ parentWidth }\n\t\t\t\t\tnumOfColumns={ numOfColumns }\n\t\t\t\t\ttileCount={ tileCount }\n\t\t\t\t\tindex={ tileIndex }\n\t\t\t\t>\n\t\t\t\t\t{ this.renderContent() }\n\t\t\t\t</Grid>\n\t\t\t);\n\t\t}\n\t\treturn this.renderContent();\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { rootClientId, isStackedHorizontally, clientId } ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetBlock,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\t\t\tconst shouldShowInsertionPointBefore =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t\tblockClientIds[ insertionPoint.index ] === clientId );\n\n\t\t\tconst shouldShowInsertionPointAfter =\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If the insertion point is at the end of the list.\n\t\t\t\tblockClientIds.length === insertionPoint.index &&\n\t\t\t\t// And the denoted block is the last one on the list, show the indicator at the end of the block.\n\t\t\t\tblockClientIds[ insertionPoint.index - 1 ] === clientId;\n\n\t\t\tconst isReadOnly = getSettings().readOnly;\n\n\t\t\tconst { attributes, name } = getBlock( clientId ) || {};\n\t\t\tconst { align } = attributes || {};\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst hasParents = !! parents.length;\n\t\t\tconst parentBlock = hasParents ? getBlock( parents[ 0 ] ) : {};\n\t\t\tconst { align: parentBlockAlignment } =\n\t\t\t\tparentBlock?.attributes || {};\n\t\t\tconst { name: parentBlockName } = parentBlock || {};\n\n\t\t\treturn {\n\t\t\t\tshouldShowInsertionPointBefore,\n\t\t\t\tshouldShowInsertionPointAfter,\n\t\t\t\tisReadOnly,\n\t\t\t\thasParents,\n\t\t\t\tblockAlignment: align,\n\t\t\t\tparentBlockAlignment,\n\t\t\t\tblockName: name,\n\t\t\t\tparentBlockName,\n\t\t\t};\n\t\t}\n\t),\n] )( BlockListItem );\n"]}
|
|
@@ -35,6 +35,8 @@ var _blockMobileToolbar = _interopRequireDefault(require("../block-mobile-toolba
|
|
|
35
35
|
|
|
36
36
|
var _store = require("../../store");
|
|
37
37
|
|
|
38
|
+
var _blockDraggable = _interopRequireDefault(require("../block-draggable"));
|
|
39
|
+
|
|
38
40
|
/**
|
|
39
41
|
* External dependencies
|
|
40
42
|
*/
|
|
@@ -195,7 +197,9 @@ class BlockListBlock extends _element.Component {
|
|
|
195
197
|
marginVertical,
|
|
196
198
|
marginHorizontal,
|
|
197
199
|
isInnerBlockSelected,
|
|
198
|
-
name
|
|
200
|
+
name,
|
|
201
|
+
draggingEnabled,
|
|
202
|
+
draggingClientId
|
|
199
203
|
} = this.props;
|
|
200
204
|
|
|
201
205
|
if (!attributes || !blockType) {
|
|
@@ -240,10 +244,14 @@ class BlockListBlock extends _element.Component {
|
|
|
240
244
|
style: [_block.default.solidBorder, isFullWidth(align) && isScreenWidthWider && _block.default.borderFullWidth, isFullWidth(align) && isContainerRelated(name) && isScreenWidthWider && _block.default.containerBorderFullWidth, getStylesFromColorScheme(_block.default.solidBorderColor, _block.default.solidBorderColorDark)]
|
|
241
245
|
}), isParentSelected && (0, _element.createElement)(_reactNative.View, {
|
|
242
246
|
style: [_block.default.dashedBorder, getStylesFromColorScheme(_block.default.dashedBorderColor, _block.default.dashedBorderColorDark)]
|
|
243
|
-
}),
|
|
247
|
+
}), (0, _element.createElement)(_blockDraggable.default, {
|
|
248
|
+
clientId: clientId,
|
|
249
|
+
draggingClientId: draggingClientId,
|
|
250
|
+
enabled: draggingEnabled
|
|
251
|
+
}, () => isValid ? this.getBlockForType() : (0, _element.createElement)(_blockInvalidWarning.default, {
|
|
244
252
|
blockTitle: title,
|
|
245
253
|
icon: icon
|
|
246
|
-
}), (0, _element.createElement)(_reactNative.View, {
|
|
254
|
+
})), (0, _element.createElement)(_reactNative.View, {
|
|
247
255
|
style: _block.default.neutralToolbar,
|
|
248
256
|
ref: this.anchorNodeRef
|
|
249
257
|
}, isSelected && (0, _element.createElement)(_blockMobileToolbar.default, {
|
|
@@ -252,7 +260,8 @@ class BlockListBlock extends _element.Component {
|
|
|
252
260
|
isStackedHorizontally: isStackedHorizontally,
|
|
253
261
|
blockWidth: blockWidth,
|
|
254
262
|
anchorNodeRef: this.anchorNodeRef.current,
|
|
255
|
-
isFullWidth: isFullWidthToolbar
|
|
263
|
+
isFullWidth: isFullWidthToolbar,
|
|
264
|
+
draggingClientId: draggingClientId
|
|
256
265
|
})))));
|
|
257
266
|
}
|
|
258
267
|
|
|
@@ -286,13 +295,15 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
|
|
|
286
295
|
} = _ref3;
|
|
287
296
|
const {
|
|
288
297
|
getBlockIndex,
|
|
298
|
+
getBlockCount,
|
|
289
299
|
getSettings,
|
|
290
300
|
isBlockSelected,
|
|
291
301
|
getBlock,
|
|
292
302
|
getSelectedBlockClientId,
|
|
293
303
|
getLowestCommonAncestorWithSelectedBlock,
|
|
294
304
|
getBlockParents,
|
|
295
|
-
hasSelectedInnerBlock
|
|
305
|
+
hasSelectedInnerBlock,
|
|
306
|
+
getBlockHierarchyRootClientId
|
|
296
307
|
} = select(_store.store);
|
|
297
308
|
const order = getBlockIndex(clientId);
|
|
298
309
|
const isSelected = isBlockSelected(clientId);
|
|
@@ -318,6 +329,14 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
|
|
|
318
329
|
const isDescendantOfParentSelected = selectedParents.includes(parentId);
|
|
319
330
|
const isTouchable = isSelected || isDescendantOfParentSelected || isParentSelected || parentId === '';
|
|
320
331
|
const baseGlobalStyles = (_getSettings = getSettings()) === null || _getSettings === void 0 ? void 0 : _getSettings.__experimentalGlobalStylesBaseStyles;
|
|
332
|
+
const hasInnerBlocks = getBlockCount(clientId) > 0; // For blocks with inner blocks, we only enable the dragging in the nested
|
|
333
|
+
// blocks if any of them are selected. This way we prevent the long-press
|
|
334
|
+
// gesture from being disabled for elements within the block UI.
|
|
335
|
+
|
|
336
|
+
const draggingEnabled = !hasInnerBlocks || isSelected || !hasSelectedInnerBlock(clientId, true); // Dragging nested blocks is not supported yet. For this reason, the block to be dragged
|
|
337
|
+
// will be the top in the hierarchy.
|
|
338
|
+
|
|
339
|
+
const draggingClientId = getBlockHierarchyRootClientId(clientId);
|
|
321
340
|
return {
|
|
322
341
|
icon,
|
|
323
342
|
name: name || 'core/missing',
|
|
@@ -325,6 +344,8 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
|
|
|
325
344
|
title,
|
|
326
345
|
attributes,
|
|
327
346
|
blockType,
|
|
347
|
+
draggingClientId,
|
|
348
|
+
draggingEnabled,
|
|
328
349
|
isSelected,
|
|
329
350
|
isInnerBlockSelected,
|
|
330
351
|
isValid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","mergeBlocks","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","parentBlockAlignment","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","Component","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","styles","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","align","accessibilityLabel","isFullWidth","isContainerRelated","alignmentHelpers","accessible","screenWidth","Dimensions","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","blockEditorStore","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","includes","__experimentalGlobalStylesBaseStyles","getEditWrapperProps","dispatch","ownProps","insertBlocks","replaceBlocks","selectBlock","updateBlockAttributes","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","index","rootClientId","initialPosition","indexToSelect","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tmergeBlocks,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\tparentBlockAlignment,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\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}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tpick( attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES )\n\t\t),\n\t] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ mergeBlocks }\n\t\t\t\t// Block level styles.\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// Inherited styles merged with block level styles.\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// Focus on the first block inserted.\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isValid ? (\n\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\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\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor = getLowestCommonAncestorWithSelectedBlock(\n\t\t\tclientId\n\t\t);\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\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( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected = selectedParents.includes(\n\t\t\tparentId\n\t\t);\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles = getSettings()\n\t\t\t?.__experimentalGlobalStylesBaseStyles;\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tmergeBlocks( forward ) {\n\t\t\t\tconst { clientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\t\tclientId\n\t\t\t\t\t);\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","mergeBlocks","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","parentBlockAlignment","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","Component","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","styles","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","draggingEnabled","draggingClientId","align","accessibilityLabel","isFullWidth","isContainerRelated","alignmentHelpers","accessible","screenWidth","Dimensions","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getBlockCount","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","getBlockHierarchyRootClientId","blockEditorStore","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","includes","__experimentalGlobalStylesBaseStyles","hasInnerBlocks","getEditWrapperProps","dispatch","ownProps","insertBlocks","replaceBlocks","selectBlock","updateBlockAttributes","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","index","rootClientId","initialPosition","indexToSelect","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tmergeBlocks,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\tparentBlockAlignment,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\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}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tpick( attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES )\n\t\t),\n\t] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ mergeBlocks }\n\t\t\t\t// Block level styles.\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// Inherited styles merged with block level styles.\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// Focus on the first block inserted.\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t\tdraggingEnabled,\n\t\t\tdraggingClientId,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockDraggable\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () =>\n\t\t\t\t\t\t\t\tisValid ? (\n\t\t\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\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\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t\tgetBlockHierarchyRootClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor = getLowestCommonAncestorWithSelectedBlock(\n\t\t\tclientId\n\t\t);\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\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( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected = selectedParents.includes(\n\t\t\tparentId\n\t\t);\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles = getSettings()\n\t\t\t?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t// gesture from being disabled for elements within the block UI.\n\t\tconst draggingEnabled =\n\t\t\t! hasInnerBlocks ||\n\t\t\tisSelected ||\n\t\t\t! hasSelectedInnerBlock( clientId, true );\n\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t// will be the top in the hierarchy.\n\t\tconst draggingClientId = getBlockHierarchyRootClientId( clientId );\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tdraggingClientId,\n\t\t\tdraggingEnabled,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tmergeBlocks( forward ) {\n\t\t\t\tconst { clientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\t\tclientId\n\t\t\t\t\t);\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
|