@wordpress/block-editor 14.0.0 → 14.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 +9 -14
- package/build/autocompleters/block.js +1 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +2 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +11 -4
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-settings-menu/block-mode-toggle.js +28 -34
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +14 -3
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -1
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +8 -4
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/border-radius-control/index.js +1 -0
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +1 -1
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -0
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +3 -0
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +3 -0
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/global-styles/background-panel.js +114 -42
- package/build/components/global-styles/background-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +3 -1
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build/components/global-styles/hooks.js +0 -7
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +0 -6
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +3 -3
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +8 -24
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +20 -5
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/height-control/index.js +1 -0
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/iframe/index.js +4 -2
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +11 -7
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +8 -8
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/default-block-appender.js +7 -25
- package/build/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +9 -11
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/library.js +4 -2
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +30 -12
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -0
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/line-height-control/index.js +3 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/media-placeholder/index.js +9 -4
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +12 -12
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/text-alignment-control/index.js +13 -8
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +13 -8
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +13 -8
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +2 -0
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +14 -2
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/writing-mode-control/index.js +13 -8
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/background.js +19 -23
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-bindings.js +37 -79
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/layouts/constrained.js +1 -0
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +2 -0
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/grid.js +3 -0
- package/build/layouts/grid.js.map +1 -1
- package/build/private-apis.js +3 -1
- package/build/private-apis.js.map +1 -1
- package/build/store/private-selectors.js +30 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +10 -1
- package/build/store/reducer.js.map +1 -1
- package/build/utils/block-bindings.js +112 -0
- package/build/utils/block-bindings.js.map +1 -0
- package/build-module/autocompleters/block.js +1 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +2 -2
- 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 +11 -4
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-settings-menu/block-mode-toggle.js +29 -34
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +14 -3
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -1
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +8 -4
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +1 -0
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +1 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -0
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +3 -0
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +3 -0
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/global-styles/background-panel.js +117 -45
- package/build-module/components/global-styles/background-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +3 -1
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +0 -6
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +1 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +5 -5
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +8 -23
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +20 -5
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/height-control/index.js +1 -0
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +4 -2
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +12 -8
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +7 -6
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/default-block-appender.js +6 -23
- package/build-module/components/inner-blocks/default-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +9 -11
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/library.js +4 -2
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +30 -12
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +5 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/line-height-control/index.js +3 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +9 -4
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +12 -12
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +4 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +13 -8
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +13 -8
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +13 -8
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +2 -0
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +14 -2
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +13 -8
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/background.js +19 -23
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-bindings.js +38 -80
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/layouts/constrained.js +1 -0
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +2 -0
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/grid.js +3 -0
- package/build-module/layouts/grid.js.map +1 -1
- package/build-module/private-apis.js +3 -1
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-selectors.js +27 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +9 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/utils/block-bindings.js +105 -0
- package/build-module/utils/block-bindings.js.map +1 -0
- package/build-style/content-rtl.css +7 -14
- package/build-style/content.css +7 -14
- package/build-style/default-editor-styles-rtl.css +2 -2
- package/build-style/default-editor-styles.css +2 -2
- package/build-style/style-rtl.css +36 -38
- package/build-style/style.css +36 -38
- package/package.json +32 -32
- package/src/autocompleters/block.js +2 -1
- package/src/components/block-list/content.scss +5 -13
- package/src/components/block-list/use-block-props/index.js +2 -2
- package/src/components/block-list/use-in-between-inserter.js +17 -5
- package/src/components/block-settings-menu/block-mode-toggle.js +28 -31
- package/src/components/block-settings-menu/test/block-mode-toggle.js +26 -23
- package/src/components/block-tools/insertion-point.js +11 -0
- package/src/components/block-tools/style.scss +1 -1
- package/src/components/block-tools/use-show-block-tools.js +4 -1
- package/src/components/block-tools/zoom-out-mode-inserters.js +7 -1
- package/src/components/block-variation-transforms/style.scss +1 -1
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/style.scss +0 -10
- package/src/components/convert-to-group-buttons/index.js +1 -1
- package/src/components/date-format-picker/index.js +2 -0
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/font-family/README.md +11 -2
- package/src/components/font-family/index.js +3 -0
- package/src/components/global-styles/background-panel.js +132 -53
- package/src/components/global-styles/get-global-styles-changes.js +4 -1
- package/src/components/global-styles/hooks.js +0 -5
- package/src/components/global-styles/index.js +0 -1
- package/src/components/global-styles/style.scss +13 -2
- package/src/components/global-styles/test/use-global-styles-output.js +20 -4
- package/src/components/global-styles/use-global-styles-output.js +5 -6
- package/src/components/global-styles/utils.js +7 -29
- package/src/components/grid/grid-visualizer.js +22 -7
- package/src/components/height-control/index.js +1 -0
- package/src/components/iframe/index.js +4 -2
- package/src/components/image-editor/zoom-dropdown.js +17 -9
- package/src/components/inner-blocks/button-block-appender.js +5 -7
- package/src/components/inner-blocks/default-block-appender.js +4 -23
- package/src/components/inner-blocks/index.js +10 -9
- package/src/components/inserter/library.js +2 -0
- package/src/components/inserter/menu.js +32 -27
- package/src/components/inserter/quick-inserter.js +4 -1
- package/src/components/inserter/style.scss +1 -1
- package/src/components/inserter-list-item/style.scss +1 -0
- package/src/components/line-height-control/README.md +7 -0
- package/src/components/line-height-control/index.js +3 -0
- package/src/components/link-control/style.scss +1 -1
- package/src/components/media-placeholder/index.js +12 -7
- package/src/components/media-upload/README.md +2 -0
- package/src/components/media-upload/index.native.js +2 -0
- package/src/components/multi-selection-inspector/index.js +8 -9
- package/src/components/responsive-block-control/README.md +1 -0
- package/src/components/responsive-block-control/test/index.js +1 -0
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +8 -4
- package/src/components/spacing-sizes-control/style.scss +16 -16
- package/src/components/text-alignment-control/index.js +20 -8
- package/src/components/text-decoration-control/index.js +20 -8
- package/src/components/text-decoration-control/stories/index.story.js +0 -4
- package/src/components/text-transform-control/index.js +20 -8
- package/src/components/text-transform-control/stories/index.story.js +0 -4
- package/src/components/url-input/style.scss +2 -2
- package/src/components/url-popover/image-url-input-ui.js +2 -0
- package/src/components/use-block-drop-zone/index.js +21 -3
- package/src/components/writing-mode-control/index.js +20 -8
- package/src/hooks/background.js +21 -27
- package/src/hooks/block-bindings.js +27 -84
- package/src/hooks/block-bindings.scss +1 -1
- package/src/hooks/test/background.js +60 -0
- package/src/layouts/constrained.js +1 -0
- package/src/layouts/flex.js +2 -0
- package/src/layouts/grid.js +3 -0
- package/src/private-apis.js +2 -0
- package/src/store/private-selectors.js +36 -0
- package/src/store/reducer.js +7 -0
- package/src/store/test/private-selectors.js +89 -0
- package/src/style.scss +0 -1
- package/src/utils/block-bindings.js +98 -0
- package/src/utils/test/transform-styles.js +49 -0
- package/build/components/global-styles/theme-file-uri-utils.js +0 -21
- package/build/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build/components/inner-blocks/with-client-id.js +0 -28
- package/build/components/inner-blocks/with-client-id.js.map +0 -1
- package/build/components/segmented-text-control/index.js +0 -63
- package/build/components/segmented-text-control/index.js.map +0 -1
- package/build-module/components/global-styles/theme-file-uri-utils.js +0 -15
- package/build-module/components/global-styles/theme-file-uri-utils.js.map +0 -1
- package/build-module/components/inner-blocks/with-client-id.js +0 -21
- package/build-module/components/inner-blocks/with-client-id.js.map +0 -1
- package/build-module/components/segmented-text-control/index.js +0 -58
- package/build-module/components/segmented-text-control/index.js.map +0 -1
- package/src/components/global-styles/test/theme-file-uri-utils.js +0 -41
- package/src/components/global-styles/theme-file-uri-utils.js +0 -18
- package/src/components/inner-blocks/with-client-id.js +0 -19
- package/src/components/segmented-text-control/index.js +0 -63
- package/src/components/segmented-text-control/style.scss +0 -15
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useBlockBindingsUtils = useBlockBindingsUtils;
|
|
7
|
+
var _data = require("@wordpress/data");
|
|
8
|
+
var _store = require("../store");
|
|
9
|
+
var _blockEdit = require("../components/block-edit");
|
|
10
|
+
/**
|
|
11
|
+
* WordPress dependencies
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Internal dependencies
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
function useBlockBindingsUtils() {
|
|
19
|
+
const {
|
|
20
|
+
clientId
|
|
21
|
+
} = (0, _blockEdit.useBlockEditContext)();
|
|
22
|
+
const {
|
|
23
|
+
updateBlockAttributes
|
|
24
|
+
} = (0, _data.useDispatch)(_store.store);
|
|
25
|
+
const {
|
|
26
|
+
getBlockAttributes
|
|
27
|
+
} = (0, _data.useSelect)(_store.store);
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Updates the value of the bindings connected to block attributes.
|
|
31
|
+
* It removes the binding when the new value is `undefined`.
|
|
32
|
+
*
|
|
33
|
+
* @param {Object} bindings Bindings including the attributes to update and the new object.
|
|
34
|
+
* @param {string} bindings.source The source name to connect to.
|
|
35
|
+
* @param {Object} [bindings.args] Object containing the arguments needed by the source.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```js
|
|
39
|
+
* import { useBlockBindingsUtils } from '@wordpress/block-editor'
|
|
40
|
+
*
|
|
41
|
+
* const { updateBlockBindings } = useBlockBindingsUtils();
|
|
42
|
+
* updateBlockBindings( {
|
|
43
|
+
* url: {
|
|
44
|
+
* source: 'core/post-meta',
|
|
45
|
+
* args: {
|
|
46
|
+
* key: 'url_custom_field',
|
|
47
|
+
* },
|
|
48
|
+
* },
|
|
49
|
+
* alt: {
|
|
50
|
+
* source: 'core/post-meta',
|
|
51
|
+
* args: {
|
|
52
|
+
* key: 'text_custom_field',
|
|
53
|
+
* },
|
|
54
|
+
* }
|
|
55
|
+
* } );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
const updateBlockBindings = bindings => {
|
|
59
|
+
const {
|
|
60
|
+
metadata
|
|
61
|
+
} = getBlockAttributes(clientId);
|
|
62
|
+
const newBindings = {
|
|
63
|
+
...metadata?.bindings
|
|
64
|
+
};
|
|
65
|
+
Object.entries(bindings).forEach(([attribute, binding]) => {
|
|
66
|
+
if (!binding && newBindings[attribute]) {
|
|
67
|
+
delete newBindings[attribute];
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
newBindings[attribute] = binding;
|
|
71
|
+
});
|
|
72
|
+
const newMetadata = {
|
|
73
|
+
...metadata,
|
|
74
|
+
bindings: newBindings
|
|
75
|
+
};
|
|
76
|
+
if (Object.keys(newMetadata.bindings).length === 0) {
|
|
77
|
+
delete newMetadata.bindings;
|
|
78
|
+
}
|
|
79
|
+
updateBlockAttributes(clientId, {
|
|
80
|
+
metadata: Object.keys(newMetadata).length === 0 ? undefined : newMetadata
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Removes the bindings property of the `metadata` attribute.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```js
|
|
89
|
+
* import { useBlockBindingsUtils } from '@wordpress/block-editor'
|
|
90
|
+
*
|
|
91
|
+
* const { removeAllBlockBindings } = useBlockBindingsUtils();
|
|
92
|
+
* removeAllBlockBindings();
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
const removeAllBlockBindings = () => {
|
|
96
|
+
const {
|
|
97
|
+
metadata
|
|
98
|
+
} = getBlockAttributes(clientId);
|
|
99
|
+
const newMetadata = {
|
|
100
|
+
...metadata
|
|
101
|
+
};
|
|
102
|
+
delete newMetadata.bindings;
|
|
103
|
+
updateBlockAttributes(clientId, {
|
|
104
|
+
metadata: Object.keys(newMetadata).length === 0 ? undefined : newMetadata
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
return {
|
|
108
|
+
updateBlockBindings,
|
|
109
|
+
removeAllBlockBindings
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=block-bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_data","require","_store","_blockEdit","useBlockBindingsUtils","clientId","useBlockEditContext","updateBlockAttributes","useDispatch","blockEditorStore","getBlockAttributes","useSelect","updateBlockBindings","bindings","metadata","newBindings","Object","entries","forEach","attribute","binding","newMetadata","keys","length","undefined","removeAllBlockBindings"],"sources":["@wordpress/block-editor/src/utils/block-bindings.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../store';\nimport { useBlockEditContext } from '../components/block-edit';\n\nexport function useBlockBindingsUtils() {\n\tconst { clientId } = useBlockEditContext();\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { getBlockAttributes } = useSelect( blockEditorStore );\n\n\t/**\n\t * Updates the value of the bindings connected to block attributes.\n\t * It removes the binding when the new value is `undefined`.\n\t *\n\t * @param {Object} bindings Bindings including the attributes to update and the new object.\n\t * @param {string} bindings.source The source name to connect to.\n\t * @param {Object} [bindings.args] Object containing the arguments needed by the source.\n\t *\n\t * @example\n\t * ```js\n\t * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n\t *\n\t * const { updateBlockBindings } = useBlockBindingsUtils();\n\t * updateBlockBindings( {\n\t * url: {\n\t * source: 'core/post-meta',\n\t * args: {\n\t * key: 'url_custom_field',\n\t * },\n\t * \t },\n\t * alt: {\n\t * source: 'core/post-meta',\n\t * args: {\n\t * key: 'text_custom_field',\n\t * },\n\t * \t }\n\t * } );\n\t * ```\n\t */\n\tconst updateBlockBindings = ( bindings ) => {\n\t\tconst { metadata } = getBlockAttributes( clientId );\n\t\tconst newBindings = { ...metadata?.bindings };\n\t\tObject.entries( bindings ).forEach( ( [ attribute, binding ] ) => {\n\t\t\tif ( ! binding && newBindings[ attribute ] ) {\n\t\t\t\tdelete newBindings[ attribute ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tnewBindings[ attribute ] = binding;\n\t\t} );\n\n\t\tconst newMetadata = {\n\t\t\t...metadata,\n\t\t\tbindings: newBindings,\n\t\t};\n\n\t\tif ( Object.keys( newMetadata.bindings ).length === 0 ) {\n\t\t\tdelete newMetadata.bindings;\n\t\t}\n\n\t\tupdateBlockAttributes( clientId, {\n\t\t\tmetadata:\n\t\t\t\tObject.keys( newMetadata ).length === 0\n\t\t\t\t\t? undefined\n\t\t\t\t\t: newMetadata,\n\t\t} );\n\t};\n\n\t/**\n\t * Removes the bindings property of the `metadata` attribute.\n\t *\n\t * @example\n\t * ```js\n\t * import { useBlockBindingsUtils } from '@wordpress/block-editor'\n\t *\n\t * const { removeAllBlockBindings } = useBlockBindingsUtils();\n\t * removeAllBlockBindings();\n\t * ```\n\t */\n\tconst removeAllBlockBindings = () => {\n\t\tconst { metadata } = getBlockAttributes( clientId );\n\t\tconst newMetadata = { ...metadata };\n\t\tdelete newMetadata.bindings;\n\t\tupdateBlockAttributes( clientId, {\n\t\t\tmetadata:\n\t\t\t\tObject.keys( newMetadata ).length === 0\n\t\t\t\t\t? undefined\n\t\t\t\t\t: newMetadata,\n\t\t} );\n\t};\n\n\treturn { updateBlockBindings, removeAllBlockBindings };\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AAKA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AATA;AACA;AACA;;AAGA;AACA;AACA;;AAIO,SAASG,qBAAqBA,CAAA,EAAG;EACvC,MAAM;IAAEC;EAAS,CAAC,GAAG,IAAAC,8BAAmB,EAAC,CAAC;EAC1C,MAAM;IAAEC;EAAsB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EACjE,MAAM;IAAEC;EAAmB,CAAC,GAAG,IAAAC,eAAS,EAAEF,YAAiB,CAAC;;EAE5D;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMG,mBAAmB,GAAKC,QAAQ,IAAM;IAC3C,MAAM;MAAEC;IAAS,CAAC,GAAGJ,kBAAkB,CAAEL,QAAS,CAAC;IACnD,MAAMU,WAAW,GAAG;MAAE,GAAGD,QAAQ,EAAED;IAAS,CAAC;IAC7CG,MAAM,CAACC,OAAO,CAAEJ,QAAS,CAAC,CAACK,OAAO,CAAE,CAAE,CAAEC,SAAS,EAAEC,OAAO,CAAE,KAAM;MACjE,IAAK,CAAEA,OAAO,IAAIL,WAAW,CAAEI,SAAS,CAAE,EAAG;QAC5C,OAAOJ,WAAW,CAAEI,SAAS,CAAE;QAC/B;MACD;MACAJ,WAAW,CAAEI,SAAS,CAAE,GAAGC,OAAO;IACnC,CAAE,CAAC;IAEH,MAAMC,WAAW,GAAG;MACnB,GAAGP,QAAQ;MACXD,QAAQ,EAAEE;IACX,CAAC;IAED,IAAKC,MAAM,CAACM,IAAI,CAAED,WAAW,CAACR,QAAS,CAAC,CAACU,MAAM,KAAK,CAAC,EAAG;MACvD,OAAOF,WAAW,CAACR,QAAQ;IAC5B;IAEAN,qBAAqB,CAAEF,QAAQ,EAAE;MAChCS,QAAQ,EACPE,MAAM,CAACM,IAAI,CAAED,WAAY,CAAC,CAACE,MAAM,KAAK,CAAC,GACpCC,SAAS,GACTH;IACL,CAAE,CAAC;EACJ,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACC,MAAMI,sBAAsB,GAAGA,CAAA,KAAM;IACpC,MAAM;MAAEX;IAAS,CAAC,GAAGJ,kBAAkB,CAAEL,QAAS,CAAC;IACnD,MAAMgB,WAAW,GAAG;MAAE,GAAGP;IAAS,CAAC;IACnC,OAAOO,WAAW,CAACR,QAAQ;IAC3BN,qBAAqB,CAAEF,QAAQ,EAAE;MAChCS,QAAQ,EACPE,MAAM,CAACM,IAAI,CAAED,WAAY,CAAC,CAACE,MAAM,KAAK,CAAC,GACpCC,SAAS,GACTH;IACL,CAAE,CAAC;EACJ,CAAC;EAED,OAAO;IAAET,mBAAmB;IAAEa;EAAuB,CAAC;AACvD","ignoreList":[]}
|
|
@@ -52,7 +52,7 @@ function createBlockCompleter() {
|
|
|
52
52
|
prioritizedBlocks: getBlockListSettings(_rootClientId)?.prioritizedInserterBlocks
|
|
53
53
|
};
|
|
54
54
|
}, []);
|
|
55
|
-
const [items, categories, collections] = useBlockTypesState(rootClientId, noop);
|
|
55
|
+
const [items, categories, collections] = useBlockTypesState(rootClientId, noop, true);
|
|
56
56
|
const filteredItems = useMemo(() => {
|
|
57
57
|
const initialFilteredItems = !!filterValue.trim() ? searchBlockItems(items, categories, collections, filterValue) : orderInserterBlockItems(orderBy(items, 'frecency', 'desc'), prioritizedBlocks);
|
|
58
58
|
return initialFilteredItems.filter(item => item.name !== selectedBlockName).slice(0, SHOWN_BLOCK_TYPES);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","createBlock","createBlocksFromInnerBlocksTemplate","parse","useMemo","searchBlockItems","useBlockTypesState","BlockIcon","store","blockEditorStore","orderBy","orderInserterBlockItems","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","noop","SHOWN_BLOCK_TYPES","createBlockCompleter","name","className","triggerPrefix","useItems","filterValue","rootClientId","selectedBlockName","prioritizedBlocks","select","getSelectedBlockClientId","getBlockName","getBlockListSettings","getBlockRootClientId","selectedBlockClientId","_rootClientId","prioritizedInserterBlocks","items","categories","collections","filteredItems","initialFilteredItems","trim","filter","item","slice","options","map","blockItem","title","icon","isDisabled","key","id","value","label","children","showColors","allowContext","before","after","test","getOptionCompletion","inserterItem","initialAttributes","innerBlocks","syncStatus","content","action","__unstableSkipMigrationLogs"],"sources":["@wordpress/block-editor/src/autocompleters/block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tparse,\n} from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { searchBlockItems } from '../components/inserter/search-items';\nimport useBlockTypesState from '../components/inserter/hooks/use-block-types-state';\nimport BlockIcon from '../components/block-icon';\nimport { store as blockEditorStore } from '../store';\nimport { orderBy } from '../utils/sorting';\nimport { orderInserterBlockItems } from '../utils/order-inserter-block-items';\n\nconst noop = () => {};\nconst SHOWN_BLOCK_TYPES = 9;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nfunction createBlockCompleter() {\n\treturn {\n\t\tname: 'blocks',\n\t\tclassName: 'block-editor-autocompleters__block',\n\t\ttriggerPrefix: '/',\n\n\t\tuseItems( filterValue ) {\n\t\t\tconst { rootClientId, selectedBlockName, prioritizedBlocks } =\n\t\t\t\tuseSelect( ( select ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t\t\tgetBlockName,\n\t\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\t\t\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tselectedBlockName: selectedBlockClientId\n\t\t\t\t\t\t\t? getBlockName( selectedBlockClientId )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\trootClientId: _rootClientId,\n\t\t\t\t\t\tprioritizedBlocks:\n\t\t\t\t\t\t\tgetBlockListSettings( _rootClientId )\n\t\t\t\t\t\t\t\t?.prioritizedInserterBlocks,\n\t\t\t\t\t};\n\t\t\t\t}, [] );\n\t\t\tconst [ items, categories, collections ] = useBlockTypesState(\n\t\t\t\trootClientId,\n\t\t\t\tnoop\n\t\t\t);\n\n\t\t\tconst filteredItems = useMemo( () => {\n\t\t\t\tconst initialFilteredItems = !! filterValue.trim()\n\t\t\t\t\t? searchBlockItems(\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tcategories,\n\t\t\t\t\t\t\tcollections,\n\t\t\t\t\t\t\tfilterValue\n\t\t\t\t\t )\n\t\t\t\t\t: orderInserterBlockItems(\n\t\t\t\t\t\t\torderBy( items, 'frecency', 'desc' ),\n\t\t\t\t\t\t\tprioritizedBlocks\n\t\t\t\t\t );\n\n\t\t\t\treturn initialFilteredItems\n\t\t\t\t\t.filter( ( item ) => item.name !== selectedBlockName )\n\t\t\t\t\t.slice( 0, SHOWN_BLOCK_TYPES );\n\t\t\t}, [\n\t\t\t\tfilterValue,\n\t\t\t\tselectedBlockName,\n\t\t\t\titems,\n\t\t\t\tcategories,\n\t\t\t\tcollections,\n\t\t\t\tprioritizedBlocks,\n\t\t\t] );\n\n\t\t\tconst options = useMemo(\n\t\t\t\t() =>\n\t\t\t\t\tfilteredItems.map( ( blockItem ) => {\n\t\t\t\t\t\tconst { title, icon, isDisabled } = blockItem;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tkey: `block-${ blockItem.id }`,\n\t\t\t\t\t\t\tvalue: blockItem,\n\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisDisabled,\n\t\t\t\t\t\t};\n\t\t\t\t\t} ),\n\t\t\t\t[ filteredItems ]\n\t\t\t);\n\n\t\t\treturn [ options ];\n\t\t},\n\t\tallowContext( before, after ) {\n\t\t\treturn ! ( /\\S/.test( before ) || /\\S/.test( after ) );\n\t\t},\n\t\tgetOptionCompletion( inserterItem ) {\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tinnerBlocks,\n\t\t\t\tsyncStatus,\n\t\t\t\tcontent,\n\t\t\t} = inserterItem;\n\n\t\t\treturn {\n\t\t\t\taction: 'replace',\n\t\t\t\tvalue:\n\t\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t\t? parse( content, {\n\t\t\t\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: createBlock(\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tinitialAttributes,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ),\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nexport default createBlockCompleter();\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useSelect","createBlock","createBlocksFromInnerBlocksTemplate","parse","useMemo","searchBlockItems","useBlockTypesState","BlockIcon","store","blockEditorStore","orderBy","orderInserterBlockItems","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","noop","SHOWN_BLOCK_TYPES","createBlockCompleter","name","className","triggerPrefix","useItems","filterValue","rootClientId","selectedBlockName","prioritizedBlocks","select","getSelectedBlockClientId","getBlockName","getBlockListSettings","getBlockRootClientId","selectedBlockClientId","_rootClientId","prioritizedInserterBlocks","items","categories","collections","filteredItems","initialFilteredItems","trim","filter","item","slice","options","map","blockItem","title","icon","isDisabled","key","id","value","label","children","showColors","allowContext","before","after","test","getOptionCompletion","inserterItem","initialAttributes","innerBlocks","syncStatus","content","action","__unstableSkipMigrationLogs"],"sources":["@wordpress/block-editor/src/autocompleters/block.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n\tparse,\n} from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { searchBlockItems } from '../components/inserter/search-items';\nimport useBlockTypesState from '../components/inserter/hooks/use-block-types-state';\nimport BlockIcon from '../components/block-icon';\nimport { store as blockEditorStore } from '../store';\nimport { orderBy } from '../utils/sorting';\nimport { orderInserterBlockItems } from '../utils/order-inserter-block-items';\n\nconst noop = () => {};\nconst SHOWN_BLOCK_TYPES = 9;\n\n/** @typedef {import('@wordpress/components').WPCompleter} WPCompleter */\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nfunction createBlockCompleter() {\n\treturn {\n\t\tname: 'blocks',\n\t\tclassName: 'block-editor-autocompleters__block',\n\t\ttriggerPrefix: '/',\n\n\t\tuseItems( filterValue ) {\n\t\t\tconst { rootClientId, selectedBlockName, prioritizedBlocks } =\n\t\t\t\tuseSelect( ( select ) => {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t\t\tgetBlockName,\n\t\t\t\t\t\tgetBlockListSettings,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\t\t\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\t\t\tconst _rootClientId = getBlockRootClientId(\n\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t);\n\t\t\t\t\treturn {\n\t\t\t\t\t\tselectedBlockName: selectedBlockClientId\n\t\t\t\t\t\t\t? getBlockName( selectedBlockClientId )\n\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\trootClientId: _rootClientId,\n\t\t\t\t\t\tprioritizedBlocks:\n\t\t\t\t\t\t\tgetBlockListSettings( _rootClientId )\n\t\t\t\t\t\t\t\t?.prioritizedInserterBlocks,\n\t\t\t\t\t};\n\t\t\t\t}, [] );\n\t\t\tconst [ items, categories, collections ] = useBlockTypesState(\n\t\t\t\trootClientId,\n\t\t\t\tnoop,\n\t\t\t\ttrue\n\t\t\t);\n\n\t\t\tconst filteredItems = useMemo( () => {\n\t\t\t\tconst initialFilteredItems = !! filterValue.trim()\n\t\t\t\t\t? searchBlockItems(\n\t\t\t\t\t\t\titems,\n\t\t\t\t\t\t\tcategories,\n\t\t\t\t\t\t\tcollections,\n\t\t\t\t\t\t\tfilterValue\n\t\t\t\t\t )\n\t\t\t\t\t: orderInserterBlockItems(\n\t\t\t\t\t\t\torderBy( items, 'frecency', 'desc' ),\n\t\t\t\t\t\t\tprioritizedBlocks\n\t\t\t\t\t );\n\n\t\t\t\treturn initialFilteredItems\n\t\t\t\t\t.filter( ( item ) => item.name !== selectedBlockName )\n\t\t\t\t\t.slice( 0, SHOWN_BLOCK_TYPES );\n\t\t\t}, [\n\t\t\t\tfilterValue,\n\t\t\t\tselectedBlockName,\n\t\t\t\titems,\n\t\t\t\tcategories,\n\t\t\t\tcollections,\n\t\t\t\tprioritizedBlocks,\n\t\t\t] );\n\n\t\t\tconst options = useMemo(\n\t\t\t\t() =>\n\t\t\t\t\tfilteredItems.map( ( blockItem ) => {\n\t\t\t\t\t\tconst { title, icon, isDisabled } = blockItem;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tkey: `block-${ blockItem.id }`,\n\t\t\t\t\t\t\tvalue: blockItem,\n\t\t\t\t\t\t\tlabel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<BlockIcon\n\t\t\t\t\t\t\t\t\t\tkey=\"icon\"\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tshowColors\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisDisabled,\n\t\t\t\t\t\t};\n\t\t\t\t\t} ),\n\t\t\t\t[ filteredItems ]\n\t\t\t);\n\n\t\t\treturn [ options ];\n\t\t},\n\t\tallowContext( before, after ) {\n\t\t\treturn ! ( /\\S/.test( before ) || /\\S/.test( after ) );\n\t\t},\n\t\tgetOptionCompletion( inserterItem ) {\n\t\t\tconst {\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tinnerBlocks,\n\t\t\t\tsyncStatus,\n\t\t\t\tcontent,\n\t\t\t} = inserterItem;\n\n\t\t\treturn {\n\t\t\t\taction: 'replace',\n\t\t\t\tvalue:\n\t\t\t\t\tsyncStatus === 'unsynced'\n\t\t\t\t\t\t? parse( content, {\n\t\t\t\t\t\t\t\t__unstableSkipMigrationLogs: true,\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: createBlock(\n\t\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t\tinitialAttributes,\n\t\t\t\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate(\n\t\t\t\t\t\t\t\t\tinnerBlocks\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t ),\n\t\t\t};\n\t\t},\n\t};\n}\n\n/**\n * Creates a blocks repeater for replacing the current block with a selected block type.\n *\n * @return {WPCompleter} A blocks completer.\n */\nexport default createBlockCompleter();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -46,13 +46,13 @@ import { canBindBlock } from '../../../hooks/use-bindings-attributes';
|
|
|
46
46
|
*
|
|
47
47
|
* export default function Edit() {
|
|
48
48
|
*
|
|
49
|
-
* const blockProps = useBlockProps(
|
|
49
|
+
* const blockProps = useBlockProps( {
|
|
50
50
|
* className: 'my-custom-class',
|
|
51
51
|
* style: {
|
|
52
52
|
* color: '#222222',
|
|
53
53
|
* backgroundColor: '#eeeeee'
|
|
54
54
|
* }
|
|
55
|
-
* )
|
|
55
|
+
* } )
|
|
56
56
|
*
|
|
57
57
|
* return (
|
|
58
58
|
* <div { ...blockProps }>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useContext","__","sprintf","__unstableGetBlockProps","getBlockProps","useMergeRefs","useDisabled","warning","useMovingAnimation","PrivateBlockContext","useFocusFirstElement","useIsHovered","blockBindingsKey","useBlockEditContext","useFocusHandler","useEventHandlers","useNavModeExit","useBlockRefProvider","useIntersectionObserver","useScrollIntoView","useFlashEditableBlocks","canBindBlock","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isSelected","isSubtreeDisabled","hasOverlay","initialPosition","blockEditingMode","isHighlighted","isMultiSelected","isPartiallySelected","isReusable","isDragging","hasChildSelected","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","isTemporarilyEditingAsBlocks","defaultClassName","templateLock","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","isEnabled","blockEditContext","hasBlockBindings","bindingsStyle","globalThis","SCRIPT_DEBUG","hasNegativeMargin","style","marginTop","charAt","marginBottom","marginLeft","marginRight","tabIndex","id","role","inert","undefined","save"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableGetBlockProps as getBlockProps } from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { PrivateBlockContext } from '../private-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport {\n\tblockBindingsKey,\n\tuseBlockEditContext,\n} from '../../block-edit/context';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { useScrollIntoView } from './use-scroll-into-view';\nimport { useFlashEditableBlocks } from '../../use-flash-editable-blocks';\nimport { canBindBlock } from '../../../hooks/use-bindings-attributes';\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps(\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\ttemplateLock,\n\t} = useContext( PrivateBlockContext );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( { clientId, initialPosition } ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( { clientId, isSelected } ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered( { clientId } ),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( { triggerAnimationOnChange: index, clientId } ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t\tuseFlashEditableBlocks( {\n\t\t\tclientId,\n\t\t\tisEnabled: name === 'core/block' || templateLock === 'contentOnly',\n\t\t} ),\n\t\tuseScrollIntoView( { isSelected } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\tconst hasBlockBindings = !! blockEditContext[ blockBindingsKey ];\n\tconst bindingsStyle =\n\t\thasBlockBindings && canBindBlock( name )\n\t\t\t? {\n\t\t\t\t\t'--wp-admin-theme-color': 'var(--wp-block-synced-color)',\n\t\t\t\t\t'--wp-admin-theme-color--rgb':\n\t\t\t\t\t\t'var(--wp-block-synced-color--rgb)',\n\t\t\t }\n\t\t\t: {};\n\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\tlet hasNegativeMargin = false;\n\tif (\n\t\twrapperProps?.style?.marginTop?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginBottom?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginLeft?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginRight?.charAt( 0 ) === '-'\n\t) {\n\t\thasNegativeMargin = true;\n\t}\n\n\treturn {\n\t\ttabIndex: blockEditingMode === 'disabled' ? -1 : 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: clsx(\n\t\t\t'block-editor-block-list__block',\n\t\t\t{\n\t\t\t\t// The wp-block className is important for editor styles.\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isHighlighted,\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected': isPartiallySelected,\n\t\t\t\t'is-reusable': isReusable,\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': hasChildSelected,\n\t\t\t\t'is-block-moving-mode': isBlockMovingMode,\n\t\t\t\t'can-insert-moving-block': canInsertMovingBlock,\n\t\t\t\t'is-editing-disabled': isEditingDisabled,\n\t\t\t\t'has-editable-outline': hasEditableOutline,\n\t\t\t\t'has-negative-margin': hasNegativeMargin,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tdefaultClassName\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style, ...bindingsStyle },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useContext","__","sprintf","__unstableGetBlockProps","getBlockProps","useMergeRefs","useDisabled","warning","useMovingAnimation","PrivateBlockContext","useFocusFirstElement","useIsHovered","blockBindingsKey","useBlockEditContext","useFocusHandler","useEventHandlers","useNavModeExit","useBlockRefProvider","useIntersectionObserver","useScrollIntoView","useFlashEditableBlocks","canBindBlock","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isSelected","isSubtreeDisabled","hasOverlay","initialPosition","blockEditingMode","isHighlighted","isMultiSelected","isPartiallySelected","isReusable","isDragging","hasChildSelected","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","isTemporarilyEditingAsBlocks","defaultClassName","templateLock","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","isEnabled","blockEditContext","hasBlockBindings","bindingsStyle","globalThis","SCRIPT_DEBUG","hasNegativeMargin","style","marginTop","charAt","marginBottom","marginLeft","marginRight","tabIndex","id","role","inert","undefined","save"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableGetBlockProps as getBlockProps } from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { PrivateBlockContext } from '../private-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport {\n\tblockBindingsKey,\n\tuseBlockEditContext,\n} from '../../block-edit/context';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { useScrollIntoView } from './use-scroll-into-view';\nimport { useFlashEditableBlocks } from '../../use-flash-editable-blocks';\nimport { canBindBlock } from '../../../hooks/use-bindings-attributes';\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps( {\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * } )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\ttemplateLock,\n\t} = useContext( PrivateBlockContext );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( { clientId, initialPosition } ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( { clientId, isSelected } ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered( { clientId } ),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( { triggerAnimationOnChange: index, clientId } ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t\tuseFlashEditableBlocks( {\n\t\t\tclientId,\n\t\t\tisEnabled: name === 'core/block' || templateLock === 'contentOnly',\n\t\t} ),\n\t\tuseScrollIntoView( { isSelected } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\tconst hasBlockBindings = !! blockEditContext[ blockBindingsKey ];\n\tconst bindingsStyle =\n\t\thasBlockBindings && canBindBlock( name )\n\t\t\t? {\n\t\t\t\t\t'--wp-admin-theme-color': 'var(--wp-block-synced-color)',\n\t\t\t\t\t'--wp-admin-theme-color--rgb':\n\t\t\t\t\t\t'var(--wp-block-synced-color--rgb)',\n\t\t\t }\n\t\t\t: {};\n\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\tlet hasNegativeMargin = false;\n\tif (\n\t\twrapperProps?.style?.marginTop?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginBottom?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginLeft?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginRight?.charAt( 0 ) === '-'\n\t) {\n\t\thasNegativeMargin = true;\n\t}\n\n\treturn {\n\t\ttabIndex: blockEditingMode === 'disabled' ? -1 : 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: clsx(\n\t\t\t'block-editor-block-list__block',\n\t\t\t{\n\t\t\t\t// The wp-block className is important for editor styles.\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isHighlighted,\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected': isPartiallySelected,\n\t\t\t\t'is-reusable': isReusable,\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': hasChildSelected,\n\t\t\t\t'is-block-moving-mode': isBlockMovingMode,\n\t\t\t\t'can-insert-moving-block': canInsertMovingBlock,\n\t\t\t\t'is-editing-disabled': isEditingDisabled,\n\t\t\t\t'has-editable-outline': hasEditableOutline,\n\t\t\t\t'has-negative-margin': hasNegativeMargin,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tdefaultClassName\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style, ...bindingsStyle },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ export function useInBetweenInserter() {
|
|
|
19
19
|
getBlockIndex,
|
|
20
20
|
isMultiSelecting,
|
|
21
21
|
getSelectedBlockClientIds,
|
|
22
|
+
getSettings,
|
|
22
23
|
getTemplateLock,
|
|
23
24
|
__unstableIsWithinBlockOverlay,
|
|
24
25
|
getBlockEditingMode,
|
|
@@ -59,7 +60,9 @@ export function useInBetweenInserter() {
|
|
|
59
60
|
if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled' || getBlockName(rootClientId) === 'core/block' || rootClientId && getBlockAttributes(rootClientId).layout?.isManualPlacement) {
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
|
-
const
|
|
63
|
+
const blockListSettings = getBlockListSettings(rootClientId);
|
|
64
|
+
const orientation = blockListSettings?.orientation || 'vertical';
|
|
65
|
+
const captureToolbars = !!blockListSettings?.__experimentalCaptureToolbars;
|
|
63
66
|
const offsetTop = event.clientY;
|
|
64
67
|
const offsetLeft = event.clientX;
|
|
65
68
|
const children = Array.from(event.target.children);
|
|
@@ -89,9 +92,13 @@ export function useInBetweenInserter() {
|
|
|
89
92
|
return;
|
|
90
93
|
}
|
|
91
94
|
|
|
92
|
-
// Don't show the inserter
|
|
93
|
-
//
|
|
94
|
-
|
|
95
|
+
// Don't show the inserter if the following conditions are met,
|
|
96
|
+
// as it conflicts with the block toolbar:
|
|
97
|
+
// 1. when hovering above or inside selected block(s)
|
|
98
|
+
// 2. when the orientation is vertical
|
|
99
|
+
// 3. when the __experimentalCaptureToolbars is not enabled
|
|
100
|
+
// 4. when the Top Toolbar is not disabled
|
|
101
|
+
if (getSelectedBlockClientIds().includes(clientId) && orientation === 'vertical' && !captureToolbars && !getSettings().hasFixedToolbar) {
|
|
95
102
|
return;
|
|
96
103
|
}
|
|
97
104
|
const elementRect = element.getBoundingClientRect();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRefEffect","useSelect","useDispatch","useContext","isRTL","store","blockEditorStore","InsertionPointOpenRef","useInBetweenInserter","openRef","isInBetweenInserterDisabled","select","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockIndex","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","getBlockName","getBlockAttributes","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","undefined","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","layout","isManualPlacement","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockIndex,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t\tgetBlockName,\n\t\tgetBlockAttributes,\n\t} = useSelect( blockEditorStore );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\t// openRef is the reference to the insertion point between blocks.\n\t\t\t\t// If the reference is not set or the insertion point is already open, return.\n\t\t\t\tif ( openRef === undefined || openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled' ||\n\t\t\t\t\tgetBlockName( rootClientId ) === 'core/block' ||\n\t\t\t\t\t( rootClientId &&\n\t\t\t\t\t\tgetBlockAttributes( rootClientId ).layout\n\t\t\t\t\t\t\t?.isManualPlacement )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockIndex,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useRefEffect","useSelect","useDispatch","useContext","isRTL","store","blockEditorStore","InsertionPointOpenRef","useInBetweenInserter","openRef","isInBetweenInserterDisabled","select","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockIndex","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","getBlockName","getBlockAttributes","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","undefined","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","layout","isManualPlacement","blockListSettings","orientation","captureToolbars","__experimentalCaptureToolbars","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","hasFixedToolbar","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockIndex,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetSettings,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t\tgetBlockName,\n\t\tgetBlockAttributes,\n\t} = useSelect( blockEditorStore );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\t// openRef is the reference to the insertion point between blocks.\n\t\t\t\t// If the reference is not set or the insertion point is already open, return.\n\t\t\t\tif ( openRef === undefined || openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled' ||\n\t\t\t\t\tgetBlockName( rootClientId ) === 'core/block' ||\n\t\t\t\t\t( rootClientId &&\n\t\t\t\t\t\tgetBlockAttributes( rootClientId ).layout\n\t\t\t\t\t\t\t?.isManualPlacement )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst blockListSettings = getBlockListSettings( rootClientId );\n\t\t\t\tconst orientation =\n\t\t\t\t\tblockListSettings?.orientation || 'vertical';\n\t\t\t\tconst captureToolbars =\n\t\t\t\t\t!! blockListSettings?.__experimentalCaptureToolbars;\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter if the following conditions are met,\n\t\t\t\t// as it conflicts with the block toolbar:\n\t\t\t\t// 1. when hovering above or inside selected block(s)\n\t\t\t\t// 2. when the orientation is vertical\n\t\t\t\t// 3. when the __experimentalCaptureToolbars is not enabled\n\t\t\t\t// 4. when the Top Toolbar is not disabled\n\t\t\t\tif (\n\t\t\t\t\tgetSelectedBlockClientIds().includes( clientId ) &&\n\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t! captureToolbars &&\n\t\t\t\t\t! getSettings().hasFixedToolbar\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockIndex,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,YAAY,QAAQ,oBAAoB;AACjD,SAASC,SAAS,EAAEC,WAAW,QAAQ,iBAAiB;AACxD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,KAAK,QAAQ,iBAAiB;;AAEvC;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AACvD,SAASC,qBAAqB,QAAQ,gCAAgC;AAEtE,OAAO,SAASC,oBAAoBA,CAAA,EAAG;EACtC,MAAMC,OAAO,GAAGN,UAAU,CAAEI,qBAAsB,CAAC;EACnD,MAAMG,2BAA2B,GAAGT,SAAS,CAC1CU,MAAM,IACPA,MAAM,CAAEL,gBAAiB,CAAC,CAACM,WAAW,CAAC,CAAC,CAACC,iBAAiB,IAC1DF,MAAM,CAAEL,gBAAiB,CAAC,CAACQ,uBAAuB,CAAC,CAAC,KAAK,UAAU,EACpE,EACD,CAAC;EACD,MAAM;IACLC,oBAAoB;IACpBC,aAAa;IACbC,gBAAgB;IAChBC,yBAAyB;IACzBN,WAAW;IACXO,eAAe;IACfC,8BAA8B;IAC9BC,mBAAmB;IACnBC,YAAY;IACZC;EACD,CAAC,GAAGtB,SAAS,CAAEK,gBAAiB,CAAC;EACjC,MAAM;IAAEkB,kBAAkB;IAAEC;EAAmB,CAAC,GAC/CvB,WAAW,CAAEI,gBAAiB,CAAC;EAEhC,OAAON,YAAY,CAChB0B,IAAI,IAAM;IACX,IAAKhB,2BAA2B,EAAG;MAClC;IACD;IAEA,SAASiB,WAAWA,CAAEC,KAAK,EAAG;MAC7B;MACA;MACA,IAAKnB,OAAO,KAAKoB,SAAS,IAAIpB,OAAO,CAACqB,OAAO,EAAG;QAC/C;MACD;;MAEA;MACA,IAAKF,KAAK,CAACG,MAAM,CAACC,QAAQ,KAAKJ,KAAK,CAACG,MAAM,CAACE,SAAS,EAAG;QACvD;MACD;MAEA,IAAKhB,gBAAgB,CAAC,CAAC,EAAG;QACzB;MACD;MAEA,IACC,CAAEW,KAAK,CAACG,MAAM,CAACG,SAAS,CAACC,QAAQ,CAChC,iCACD,CAAC,EACA;QACDV,kBAAkB,CAAC,CAAC;QACpB;MACD;MAEA,IAAIW,YAAY;MAChB,IACC,CAAER,KAAK,CAACG,MAAM,CAACG,SAAS,CAACC,QAAQ,CAAE,mBAAoB,CAAC,EACvD;QACD,MAAME,YAAY,GAAG,CAAC,CAAET,KAAK,CAACG,MAAM,CAACO,YAAY,CAChD,YACD,CAAC,GACEV,KAAK,CAACG,MAAM,GACZH,KAAK,CAACG,MAAM,CAACQ,OAAO,CAAE,cAAe,CAAC;QACzCH,YAAY,GAAGC,YAAY,CAACC,YAAY,CAAE,YAAa,CAAC;MACzD;MAEA,IACCnB,eAAe,CAAEiB,YAAa,CAAC,IAC/Bf,mBAAmB,CAAEe,YAAa,CAAC,KAAK,UAAU,IAClDd,YAAY,CAAEc,YAAa,CAAC,KAAK,YAAY,IAC3CA,YAAY,IACbb,kBAAkB,CAAEa,YAAa,CAAC,CAACI,MAAM,EACtCC,iBAAmB,EACtB;QACD;MACD;MAEA,MAAMC,iBAAiB,GAAG3B,oBAAoB,CAAEqB,YAAa,CAAC;MAC9D,MAAMO,WAAW,GAChBD,iBAAiB,EAAEC,WAAW,IAAI,UAAU;MAC7C,MAAMC,eAAe,GACpB,CAAC,CAAEF,iBAAiB,EAAEG,6BAA6B;MACpD,MAAMC,SAAS,GAAGlB,KAAK,CAACmB,OAAO;MAC/B,MAAMC,UAAU,GAAGpB,KAAK,CAACqB,OAAO;MAEhC,MAAMC,QAAQ,GAAGC,KAAK,CAACC,IAAI,CAAExB,KAAK,CAACG,MAAM,CAACmB,QAAS,CAAC;MACpD,IAAIG,OAAO,GAAGH,QAAQ,CAACI,IAAI,CAAIC,OAAO,IAAM;QAC3C,MAAMC,WAAW,GAAGD,OAAO,CAACE,qBAAqB,CAAC,CAAC;QACnD,OACGF,OAAO,CAACrB,SAAS,CAACC,QAAQ,CAAE,UAAW,CAAC,IACzCQ,WAAW,KAAK,UAAU,IAC1Ba,WAAW,CAACE,GAAG,GAAGZ,SAAS,IAC1BS,OAAO,CAACrB,SAAS,CAACC,QAAQ,CAAE,UAAW,CAAC,IACzCQ,WAAW,KAAK,YAAY,KAC1BvC,KAAK,CAAC,CAAC,GACNoD,WAAW,CAACG,KAAK,GAAGX,UAAU,GAC9BQ,WAAW,CAACI,IAAI,GAAGZ,UAAU,CAAI;MAEvC,CAAE,CAAC;MAEH,IAAK,CAAEK,OAAO,EAAG;QAChB5B,kBAAkB,CAAC,CAAC;QACpB;MACD;;MAEA;MACA;MACA,IAAK,CAAE4B,OAAO,CAACQ,EAAE,EAAG;QACnBR,OAAO,GAAGA,OAAO,CAACS,iBAAiB;QAEnC,IAAK,CAAET,OAAO,EAAG;UAChB5B,kBAAkB,CAAC,CAAC;UACpB;QACD;MACD;;MAEA;MACA;MACA,MAAMsC,QAAQ,GAAGV,OAAO,CAACQ,EAAE,CAACG,KAAK,CAAE,QAAQ,CAACC,MAAO,CAAC;MACpD,IACC,CAAEF,QAAQ,IACV3C,8BAA8B,CAAE2C,QAAS,CAAC,EACzC;QACD;MACD;;MAEA;MACA;MACA;MACA;MACA;MACA;MACA,IACC7C,yBAAyB,CAAC,CAAC,CAACgD,QAAQ,CAAEH,QAAS,CAAC,IAChDpB,WAAW,KAAK,UAAU,IAC1B,CAAEC,eAAe,IACjB,CAAEhC,WAAW,CAAC,CAAC,CAACuD,eAAe,EAC9B;QACD;MACD;MACA,MAAMC,WAAW,GAAGf,OAAO,CAACI,qBAAqB,CAAC,CAAC;MAEnD,IACGd,WAAW,KAAK,YAAY,KAC3Bf,KAAK,CAACmB,OAAO,GAAGqB,WAAW,CAACC,MAAM,IACnCzC,KAAK,CAACmB,OAAO,GAAGqB,WAAW,CAACV,GAAG,CAAE,IACjCf,WAAW,KAAK,UAAU,KACzBf,KAAK,CAACqB,OAAO,GAAGmB,WAAW,CAACT,KAAK,IAClC/B,KAAK,CAACqB,OAAO,GAAGmB,WAAW,CAACR,IAAI,CAAI,EACrC;QACDnC,kBAAkB,CAAC,CAAC;QACpB;MACD;MAEA,MAAM6C,KAAK,GAAGtD,aAAa,CAAE+C,QAAS,CAAC;;MAEvC;MACA;MACA,IAAKO,KAAK,KAAK,CAAC,EAAG;QAClB7C,kBAAkB,CAAC,CAAC;QACpB;MACD;MAEAD,kBAAkB,CAAEY,YAAY,EAAEkC,KAAK,EAAE;QACxCC,sBAAsB,EAAE;MACzB,CAAE,CAAC;IACJ;IAEA7C,IAAI,CAAC8C,gBAAgB,CAAE,WAAW,EAAE7C,WAAY,CAAC;IAEjD,OAAO,MAAM;MACZD,IAAI,CAAC+C,mBAAmB,CAAE,WAAW,EAAE9C,WAAY,CAAC;IACrD,CAAC;EACF,CAAC,EACD,CACClB,OAAO,EACPM,oBAAoB,EACpBC,aAAa,EACbC,gBAAgB,EAChBO,kBAAkB,EAClBC,kBAAkB,EAClBP,yBAAyB,EACzBR,2BAA2B,CAE7B,CAAC;AACF","ignoreList":[]}
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
import { __ } from '@wordpress/i18n';
|
|
5
5
|
import { MenuItem } from '@wordpress/components';
|
|
6
6
|
import { getBlockType, hasBlockSupport } from '@wordpress/blocks';
|
|
7
|
-
import {
|
|
8
|
-
import { compose } from '@wordpress/compose';
|
|
7
|
+
import { useDispatch, useSelect } from '@wordpress/data';
|
|
9
8
|
|
|
10
9
|
/**
|
|
11
10
|
* Internal dependencies
|
|
@@ -13,44 +12,40 @@ import { compose } from '@wordpress/compose';
|
|
|
13
12
|
import { store as blockEditorStore } from '../../store';
|
|
14
13
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
14
|
const noop = () => {};
|
|
16
|
-
export function BlockModeToggle({
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
onToggleMode,
|
|
20
|
-
small = false,
|
|
21
|
-
isCodeEditingEnabled = true
|
|
15
|
+
export default function BlockModeToggle({
|
|
16
|
+
clientId,
|
|
17
|
+
onToggle = noop
|
|
22
18
|
}) {
|
|
19
|
+
const {
|
|
20
|
+
blockType,
|
|
21
|
+
mode,
|
|
22
|
+
isCodeEditingEnabled
|
|
23
|
+
} = useSelect(select => {
|
|
24
|
+
const {
|
|
25
|
+
getBlock,
|
|
26
|
+
getBlockMode,
|
|
27
|
+
getSettings
|
|
28
|
+
} = select(blockEditorStore);
|
|
29
|
+
const block = getBlock(clientId);
|
|
30
|
+
return {
|
|
31
|
+
mode: getBlockMode(clientId),
|
|
32
|
+
blockType: block ? getBlockType(block.name) : null,
|
|
33
|
+
isCodeEditingEnabled: getSettings().codeEditingEnabled
|
|
34
|
+
};
|
|
35
|
+
}, [clientId]);
|
|
36
|
+
const {
|
|
37
|
+
toggleBlockMode
|
|
38
|
+
} = useDispatch(blockEditorStore);
|
|
23
39
|
if (!blockType || !hasBlockSupport(blockType, 'html', true) || !isCodeEditingEnabled) {
|
|
24
40
|
return null;
|
|
25
41
|
}
|
|
26
42
|
const label = mode === 'visual' ? __('Edit as HTML') : __('Edit visually');
|
|
27
43
|
return /*#__PURE__*/_jsx(MenuItem, {
|
|
28
|
-
onClick:
|
|
29
|
-
|
|
44
|
+
onClick: () => {
|
|
45
|
+
toggleBlockMode(clientId);
|
|
46
|
+
onToggle();
|
|
47
|
+
},
|
|
48
|
+
children: label
|
|
30
49
|
});
|
|
31
50
|
}
|
|
32
|
-
export default compose([withSelect((select, {
|
|
33
|
-
clientId
|
|
34
|
-
}) => {
|
|
35
|
-
const {
|
|
36
|
-
getBlock,
|
|
37
|
-
getBlockMode,
|
|
38
|
-
getSettings
|
|
39
|
-
} = select(blockEditorStore);
|
|
40
|
-
const block = getBlock(clientId);
|
|
41
|
-
const isCodeEditingEnabled = getSettings().codeEditingEnabled;
|
|
42
|
-
return {
|
|
43
|
-
mode: getBlockMode(clientId),
|
|
44
|
-
blockType: block ? getBlockType(block.name) : null,
|
|
45
|
-
isCodeEditingEnabled
|
|
46
|
-
};
|
|
47
|
-
}), withDispatch((dispatch, {
|
|
48
|
-
onToggle = noop,
|
|
49
|
-
clientId
|
|
50
|
-
}) => ({
|
|
51
|
-
onToggleMode() {
|
|
52
|
-
dispatch(blockEditorStore).toggleBlockMode(clientId);
|
|
53
|
-
onToggle();
|
|
54
|
-
}
|
|
55
|
-
}))])(BlockModeToggle);
|
|
56
51
|
//# sourceMappingURL=block-mode-toggle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","MenuItem","getBlockType","hasBlockSupport","
|
|
1
|
+
{"version":3,"names":["__","MenuItem","getBlockType","hasBlockSupport","useDispatch","useSelect","store","blockEditorStore","jsx","_jsx","noop","BlockModeToggle","clientId","onToggle","blockType","mode","isCodeEditingEnabled","select","getBlock","getBlockMode","getSettings","block","name","codeEditingEnabled","toggleBlockMode","label","onClick","children"],"sources":["@wordpress/block-editor/src/components/block-settings-menu/block-mode-toggle.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { getBlockType, hasBlockSupport } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nexport default function BlockModeToggle( { clientId, onToggle = noop } ) {\n\tconst { blockType, mode, isCodeEditingEnabled } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockMode, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst block = getBlock( clientId );\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tblockType: block ? getBlockType( block.name ) : null,\n\t\t\t\tisCodeEditingEnabled: getSettings().codeEditingEnabled,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { toggleBlockMode } = useDispatch( blockEditorStore );\n\n\tif (\n\t\t! blockType ||\n\t\t! hasBlockSupport( blockType, 'html', true ) ||\n\t\t! isCodeEditingEnabled\n\t) {\n\t\treturn null;\n\t}\n\n\tconst label =\n\t\tmode === 'visual' ? __( 'Edit as HTML' ) : __( 'Edit visually' );\n\n\treturn (\n\t\t<MenuItem\n\t\t\tonClick={ () => {\n\t\t\t\ttoggleBlockMode( clientId );\n\t\t\t\tonToggle();\n\t\t\t} }\n\t\t>\n\t\t\t{ label }\n\t\t</MenuItem>\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,YAAY,EAAEC,eAAe,QAAQ,mBAAmB;AACjE,SAASC,WAAW,EAAEC,SAAS,QAAQ,iBAAiB;;AAExD;AACA;AACA;AACA,SAASC,KAAK,IAAIC,gBAAgB,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAExD,MAAMC,IAAI,GAAGA,CAAA,KAAM,CAAC,CAAC;AAErB,eAAe,SAASC,eAAeA,CAAE;EAAEC,QAAQ;EAAEC,QAAQ,GAAGH;AAAK,CAAC,EAAG;EACxE,MAAM;IAAEI,SAAS;IAAEC,IAAI;IAAEC;EAAqB,CAAC,GAAGX,SAAS,CACxDY,MAAM,IAAM;IACb,MAAM;MAAEC,QAAQ;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAC5CH,MAAM,CAAEV,gBAAiB,CAAC;IAC3B,MAAMc,KAAK,GAAGH,QAAQ,CAAEN,QAAS,CAAC;IAElC,OAAO;MACNG,IAAI,EAAEI,YAAY,CAAEP,QAAS,CAAC;MAC9BE,SAAS,EAAEO,KAAK,GAAGnB,YAAY,CAAEmB,KAAK,CAACC,IAAK,CAAC,GAAG,IAAI;MACpDN,oBAAoB,EAAEI,WAAW,CAAC,CAAC,CAACG;IACrC,CAAC;EACF,CAAC,EACD,CAAEX,QAAQ,CACX,CAAC;EACD,MAAM;IAAEY;EAAgB,CAAC,GAAGpB,WAAW,CAAEG,gBAAiB,CAAC;EAE3D,IACC,CAAEO,SAAS,IACX,CAAEX,eAAe,CAAEW,SAAS,EAAE,MAAM,EAAE,IAAK,CAAC,IAC5C,CAAEE,oBAAoB,EACrB;IACD,OAAO,IAAI;EACZ;EAEA,MAAMS,KAAK,GACVV,IAAI,KAAK,QAAQ,GAAGf,EAAE,CAAE,cAAe,CAAC,GAAGA,EAAE,CAAE,eAAgB,CAAC;EAEjE,oBACCS,IAAA,CAACR,QAAQ;IACRyB,OAAO,EAAGA,CAAA,KAAM;MACfF,eAAe,CAAEZ,QAAS,CAAC;MAC3BC,QAAQ,CAAC,CAAC;IACX,CAAG;IAAAc,QAAA,EAEDF;EAAK,CACE,CAAC;AAEb","ignoreList":[]}
|
|
@@ -40,7 +40,8 @@ function InbetweenInsertionPointPopover({
|
|
|
40
40
|
rootClientId,
|
|
41
41
|
isInserterShown,
|
|
42
42
|
isDistractionFree,
|
|
43
|
-
isNavigationMode
|
|
43
|
+
isNavigationMode,
|
|
44
|
+
isZoomOutMode
|
|
44
45
|
} = useSelect(select => {
|
|
45
46
|
const {
|
|
46
47
|
getBlockOrder,
|
|
@@ -50,7 +51,8 @@ function InbetweenInsertionPointPopover({
|
|
|
50
51
|
getPreviousBlockClientId,
|
|
51
52
|
getNextBlockClientId,
|
|
52
53
|
getSettings,
|
|
53
|
-
isNavigationMode: _isNavigationMode
|
|
54
|
+
isNavigationMode: _isNavigationMode,
|
|
55
|
+
__unstableGetEditorMode
|
|
54
56
|
} = select(blockEditorStore);
|
|
55
57
|
const insertionPoint = getBlockInsertionPoint();
|
|
56
58
|
const order = getBlockOrder(insertionPoint.rootClientId);
|
|
@@ -73,7 +75,8 @@ function InbetweenInsertionPointPopover({
|
|
|
73
75
|
rootClientId: insertionPoint.rootClientId,
|
|
74
76
|
isNavigationMode: _isNavigationMode(),
|
|
75
77
|
isDistractionFree: settings.isDistractionFree,
|
|
76
|
-
isInserterShown: insertionPoint?.__unstableWithInserter
|
|
78
|
+
isInserterShown: insertionPoint?.__unstableWithInserter,
|
|
79
|
+
isZoomOutMode: __unstableGetEditorMode() === 'zoom-out'
|
|
77
80
|
};
|
|
78
81
|
}, []);
|
|
79
82
|
const {
|
|
@@ -139,6 +142,14 @@ function InbetweenInsertionPointPopover({
|
|
|
139
142
|
if (isDistractionFree && !isNavigationMode) {
|
|
140
143
|
return null;
|
|
141
144
|
}
|
|
145
|
+
|
|
146
|
+
// Zoom out mode should only show the insertion point for the insert operation.
|
|
147
|
+
// Other operations such as "group" are when the editor tries to create a row
|
|
148
|
+
// block by grouping the block being dragged with the block it's being dropped
|
|
149
|
+
// onto.
|
|
150
|
+
if (isZoomOutMode && operation !== 'insert') {
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
142
153
|
const orientationClassname = orientation === 'horizontal' || operation === 'group' ? 'is-horizontal' : 'is-vertical';
|
|
143
154
|
const className = clsx('block-editor-block-list__insertion-point', orientationClassname);
|
|
144
155
|
return /*#__PURE__*/_jsx(BlockPopoverInbetween, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useSelect","useDispatch","useRef","createContext","useContext","__unstableMotion","motion","useReducedMotion","Inserter","store","blockEditorStore","BlockPopoverInbetween","BlockDropZonePopover","jsx","_jsx","jsxs","_jsxs","InsertionPointOpenRef","InbetweenInsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","operation","nearestSide","selectBlock","hideInsertionPoint","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","isDistractionFree","isNavigationMode","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","getSettings","_isNavigationMode","insertionPoint","order","length","_previousClientId","index","_nextClientId","settings","__unstableWithInserter","getBlockEditingMode","disableMotion","onClick","event","target","current","maybeHideInserterPoint","onFocus","lineVariants","start","opacity","scale","rest","transition","delay","type","hover","inserterVariants","orientationClassname","className","children","div","layout","initial","animate","whileHover","whileTap","exit","tabIndex","onHoverEnd","variants","position","clientId","__experimentalIsQuick","onToggle","isOpen","onSelectOrClose","InsertionPoint","props","isVisible","isBlockListEmpty","isBlockInsertionPointVisible","getBlockCount","blockInsertionPoint"],"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, createContext, useContext } from '@wordpress/element';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport BlockDropZonePopover from '../block-popover/drop-zone';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InbetweenInsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\toperation = 'insert',\n\tnearestSide = 'right',\n} ) {\n\tconst { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t\tisDistractionFree,\n\t\tisNavigationMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t\tgetSettings,\n\t\t\tisNavigationMode: _isNavigationMode,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisNavigationMode: _isNavigationMode(),\n\t\t\tisDistractionFree: settings.isDistractionFree,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t};\n\t}, [] );\n\tconst { getBlockEditingMode } = useSelect( blockEditorStore );\n\n\tconst disableMotion = useReducedMotion();\n\n\tfunction onClick( event ) {\n\t\tif (\n\t\t\tevent.target === ref.current &&\n\t\t\tnextClientId &&\n\t\t\tgetBlockEditingMode( nextClientId ) !== 'disabled'\n\t\t) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction maybeHideInserterPoint( event ) {\n\t\t// Only hide the inserter if it's triggered on the wrapper,\n\t\t// and the inserter is not open.\n\t\tif ( event.target === ref.current && ! openRef.current ) {\n\t\t\thideInsertionPoint();\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: isInserterShown ? 0.5 : 0, type: 'tween' },\n\t\t},\n\t\thover: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.5, type: 'tween' },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.4, type: 'tween' },\n\t\t},\n\t};\n\n\tif ( isDistractionFree && ! isNavigationMode ) {\n\t\treturn null;\n\t}\n\n\tconst orientationClassname =\n\t\torientation === 'horizontal' || operation === 'group'\n\t\t\t? 'is-horizontal'\n\t\t\t: 'is-vertical';\n\n\tconst className = clsx(\n\t\t'block-editor-block-list__insertion-point',\n\t\torientationClassname\n\t);\n\n\treturn (\n\t\t<BlockPopoverInbetween\n\t\t\tpreviousClientId={ previousClientId }\n\t\t\tnextClientId={ nextClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\toperation={ operation }\n\t\t\tnearestSide={ nearestSide }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ clsx( className, {\n\t\t\t\t\t'is-with-inserter': isInserterShown,\n\t\t\t\t} ) }\n\t\t\t\tonHoverEnd={ maybeHideInserterPoint }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\tdata-testid=\"block-list-insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ isInserterShown && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</BlockPopoverInbetween>\n\t);\n}\n\nexport default function InsertionPoint( props ) {\n\tconst { insertionPoint, isVisible, isBlockListEmpty } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockInsertionPoint = getBlockInsertionPoint();\n\t\t\treturn {\n\t\t\t\tinsertionPoint: blockInsertionPoint,\n\t\t\t\tisVisible: isBlockInsertionPointVisible(),\n\t\t\t\tisBlockListEmpty:\n\t\t\t\t\tgetBlockCount( blockInsertionPoint?.rootClientId ) === 0,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t! isVisible ||\n\t\t// Don't render the insertion point if the block list is empty.\n\t\t// The insertion point will be represented by the appender instead.\n\t\tisBlockListEmpty\n\t) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Render a popover that overlays the block when the desired operation is to replace it.\n\t * Otherwise, render a popover in between blocks for the indication of inserting between them.\n\t */\n\treturn insertionPoint.operation === 'replace' ? (\n\t\t<BlockDropZonePopover\n\t\t\t// Force remount to trigger the animation.\n\t\t\tkey={ `${ insertionPoint.rootClientId }-${ insertionPoint.index }` }\n\t\t\t{ ...props }\n\t\t/>\n\t) : (\n\t\t<InbetweenInsertionPointPopover\n\t\t\toperation={ insertionPoint.operation }\n\t\t\tnearestSide={ insertionPoint.nearestSide }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","useSelect","useDispatch","useRef","createContext","useContext","__unstableMotion","motion","useReducedMotion","Inserter","store","blockEditorStore","BlockPopoverInbetween","BlockDropZonePopover","jsx","_jsx","jsxs","_jsxs","InsertionPointOpenRef","InbetweenInsertionPointPopover","__unstablePopoverSlot","__unstableContentRef","operation","nearestSide","selectBlock","hideInsertionPoint","openRef","ref","orientation","previousClientId","nextClientId","rootClientId","isInserterShown","isDistractionFree","isNavigationMode","isZoomOutMode","select","getBlockOrder","getBlockListSettings","getBlockInsertionPoint","isBlockBeingDragged","getPreviousBlockClientId","getNextBlockClientId","getSettings","_isNavigationMode","__unstableGetEditorMode","insertionPoint","order","length","_previousClientId","index","_nextClientId","settings","__unstableWithInserter","getBlockEditingMode","disableMotion","onClick","event","target","current","maybeHideInserterPoint","onFocus","lineVariants","start","opacity","scale","rest","transition","delay","type","hover","inserterVariants","orientationClassname","className","children","div","layout","initial","animate","whileHover","whileTap","exit","tabIndex","onHoverEnd","variants","position","clientId","__experimentalIsQuick","onToggle","isOpen","onSelectOrClose","InsertionPoint","props","isVisible","isBlockListEmpty","isBlockInsertionPointVisible","getBlockCount","blockInsertionPoint"],"sources":["@wordpress/block-editor/src/components/block-tools/insertion-point.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRef, createContext, useContext } from '@wordpress/element';\nimport { __unstableMotion as motion } from '@wordpress/components';\nimport { useReducedMotion } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Inserter from '../inserter';\nimport { store as blockEditorStore } from '../../store';\nimport BlockPopoverInbetween from '../block-popover/inbetween';\nimport BlockDropZonePopover from '../block-popover/drop-zone';\n\nexport const InsertionPointOpenRef = createContext();\n\nfunction InbetweenInsertionPointPopover( {\n\t__unstablePopoverSlot,\n\t__unstableContentRef,\n\toperation = 'insert',\n\tnearestSide = 'right',\n} ) {\n\tconst { selectBlock, hideInsertionPoint } = useDispatch( blockEditorStore );\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst ref = useRef();\n\tconst {\n\t\torientation,\n\t\tpreviousClientId,\n\t\tnextClientId,\n\t\trootClientId,\n\t\tisInserterShown,\n\t\tisDistractionFree,\n\t\tisNavigationMode,\n\t\tisZoomOutMode,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockBeingDragged,\n\t\t\tgetPreviousBlockClientId,\n\t\t\tgetNextBlockClientId,\n\t\t\tgetSettings,\n\t\t\tisNavigationMode: _isNavigationMode,\n\t\t\t__unstableGetEditorMode,\n\t\t} = select( blockEditorStore );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst order = getBlockOrder( insertionPoint.rootClientId );\n\n\t\tif ( ! order.length ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tlet _previousClientId = order[ insertionPoint.index - 1 ];\n\t\tlet _nextClientId = order[ insertionPoint.index ];\n\n\t\twhile ( isBlockBeingDragged( _previousClientId ) ) {\n\t\t\t_previousClientId = getPreviousBlockClientId( _previousClientId );\n\t\t}\n\n\t\twhile ( isBlockBeingDragged( _nextClientId ) ) {\n\t\t\t_nextClientId = getNextBlockClientId( _nextClientId );\n\t\t}\n\n\t\tconst settings = getSettings();\n\n\t\treturn {\n\t\t\tpreviousClientId: _previousClientId,\n\t\t\tnextClientId: _nextClientId,\n\t\t\torientation:\n\t\t\t\tgetBlockListSettings( insertionPoint.rootClientId )\n\t\t\t\t\t?.orientation || 'vertical',\n\t\t\trootClientId: insertionPoint.rootClientId,\n\t\t\tisNavigationMode: _isNavigationMode(),\n\t\t\tisDistractionFree: settings.isDistractionFree,\n\t\t\tisInserterShown: insertionPoint?.__unstableWithInserter,\n\t\t\tisZoomOutMode: __unstableGetEditorMode() === 'zoom-out',\n\t\t};\n\t}, [] );\n\tconst { getBlockEditingMode } = useSelect( blockEditorStore );\n\n\tconst disableMotion = useReducedMotion();\n\n\tfunction onClick( event ) {\n\t\tif (\n\t\t\tevent.target === ref.current &&\n\t\t\tnextClientId &&\n\t\t\tgetBlockEditingMode( nextClientId ) !== 'disabled'\n\t\t) {\n\t\t\tselectBlock( nextClientId, -1 );\n\t\t}\n\t}\n\n\tfunction maybeHideInserterPoint( event ) {\n\t\t// Only hide the inserter if it's triggered on the wrapper,\n\t\t// and the inserter is not open.\n\t\tif ( event.target === ref.current && ! openRef.current ) {\n\t\t\thideInsertionPoint();\n\t\t}\n\t}\n\n\tfunction onFocus( event ) {\n\t\t// Only handle click on the wrapper specifically, and not an event\n\t\t// bubbled from the inserter itself.\n\t\tif ( event.target !== ref.current ) {\n\t\t\topenRef.current = true;\n\t\t}\n\t}\n\n\tconst lineVariants = {\n\t\t// Initial position starts from the center and invisible.\n\t\tstart: {\n\t\t\topacity: 0,\n\t\t\tscale: 0,\n\t\t},\n\t\t// The line expands to fill the container. If the inserter is visible it\n\t\t// is delayed so it appears orchestrated.\n\t\trest: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: isInserterShown ? 0.5 : 0, type: 'tween' },\n\t\t},\n\t\thover: {\n\t\t\topacity: 1,\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.5, type: 'tween' },\n\t\t},\n\t};\n\n\tconst inserterVariants = {\n\t\tstart: {\n\t\t\tscale: disableMotion ? 1 : 0,\n\t\t},\n\t\trest: {\n\t\t\tscale: 1,\n\t\t\ttransition: { delay: 0.4, type: 'tween' },\n\t\t},\n\t};\n\n\tif ( isDistractionFree && ! isNavigationMode ) {\n\t\treturn null;\n\t}\n\n\t// Zoom out mode should only show the insertion point for the insert operation.\n\t// Other operations such as \"group\" are when the editor tries to create a row\n\t// block by grouping the block being dragged with the block it's being dropped\n\t// onto.\n\tif ( isZoomOutMode && operation !== 'insert' ) {\n\t\treturn null;\n\t}\n\n\tconst orientationClassname =\n\t\torientation === 'horizontal' || operation === 'group'\n\t\t\t? 'is-horizontal'\n\t\t\t: 'is-vertical';\n\n\tconst className = clsx(\n\t\t'block-editor-block-list__insertion-point',\n\t\torientationClassname\n\t);\n\n\treturn (\n\t\t<BlockPopoverInbetween\n\t\t\tpreviousClientId={ previousClientId }\n\t\t\tnextClientId={ nextClientId }\n\t\t\t__unstablePopoverSlot={ __unstablePopoverSlot }\n\t\t\t__unstableContentRef={ __unstableContentRef }\n\t\t\toperation={ operation }\n\t\t\tnearestSide={ nearestSide }\n\t\t>\n\t\t\t<motion.div\n\t\t\t\tlayout={ ! disableMotion }\n\t\t\t\tinitial={ disableMotion ? 'rest' : 'start' }\n\t\t\t\tanimate=\"rest\"\n\t\t\t\twhileHover=\"hover\"\n\t\t\t\twhileTap=\"pressed\"\n\t\t\t\texit=\"start\"\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ -1 }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tclassName={ clsx( className, {\n\t\t\t\t\t'is-with-inserter': isInserterShown,\n\t\t\t\t} ) }\n\t\t\t\tonHoverEnd={ maybeHideInserterPoint }\n\t\t\t>\n\t\t\t\t<motion.div\n\t\t\t\t\tvariants={ lineVariants }\n\t\t\t\t\tclassName=\"block-editor-block-list__insertion-point-indicator\"\n\t\t\t\t\tdata-testid=\"block-list-insertion-point-indicator\"\n\t\t\t\t/>\n\t\t\t\t{ isInserterShown && (\n\t\t\t\t\t<motion.div\n\t\t\t\t\t\tvariants={ inserterVariants }\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-block-list__insertion-point-inserter'\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Inserter\n\t\t\t\t\t\t\tposition=\"bottom center\"\n\t\t\t\t\t\t\tclientId={ nextClientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t__experimentalIsQuick\n\t\t\t\t\t\t\tonToggle={ ( isOpen ) => {\n\t\t\t\t\t\t\t\topenRef.current = isOpen;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelectOrClose={ () => {\n\t\t\t\t\t\t\t\topenRef.current = false;\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</motion.div>\n\t\t\t\t) }\n\t\t\t</motion.div>\n\t\t</BlockPopoverInbetween>\n\t);\n}\n\nexport default function InsertionPoint( props ) {\n\tconst { insertionPoint, isVisible, isBlockListEmpty } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst blockInsertionPoint = getBlockInsertionPoint();\n\t\t\treturn {\n\t\t\t\tinsertionPoint: blockInsertionPoint,\n\t\t\t\tisVisible: isBlockInsertionPointVisible(),\n\t\t\t\tisBlockListEmpty:\n\t\t\t\t\tgetBlockCount( blockInsertionPoint?.rootClientId ) === 0,\n\t\t\t};\n\t\t},\n\t\t[]\n\t);\n\n\tif (\n\t\t! isVisible ||\n\t\t// Don't render the insertion point if the block list is empty.\n\t\t// The insertion point will be represented by the appender instead.\n\t\tisBlockListEmpty\n\t) {\n\t\treturn null;\n\t}\n\n\t/**\n\t * Render a popover that overlays the block when the desired operation is to replace it.\n\t * Otherwise, render a popover in between blocks for the indication of inserting between them.\n\t */\n\treturn insertionPoint.operation === 'replace' ? (\n\t\t<BlockDropZonePopover\n\t\t\t// Force remount to trigger the animation.\n\t\t\tkey={ `${ insertionPoint.rootClientId }-${ insertionPoint.index }` }\n\t\t\t{ ...props }\n\t\t/>\n\t) : (\n\t\t<InbetweenInsertionPointPopover\n\t\t\toperation={ insertionPoint.operation }\n\t\t\tnearestSide={ insertionPoint.nearestSide }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -20,6 +20,7 @@ export function useShowBlockTools() {
|
|
|
20
20
|
getSelectedBlockClientId,
|
|
21
21
|
getFirstMultiSelectedBlockClientId,
|
|
22
22
|
getBlock,
|
|
23
|
+
getBlockMode,
|
|
23
24
|
getSettings,
|
|
24
25
|
hasMultiSelection,
|
|
25
26
|
__unstableGetEditorMode,
|
|
@@ -29,7 +30,7 @@ export function useShowBlockTools() {
|
|
|
29
30
|
const block = getBlock(clientId);
|
|
30
31
|
const editorMode = __unstableGetEditorMode();
|
|
31
32
|
const hasSelectedBlock = !!clientId && !!block;
|
|
32
|
-
const isEmptyDefaultBlock = hasSelectedBlock && isUnmodifiedDefaultBlock(block);
|
|
33
|
+
const isEmptyDefaultBlock = hasSelectedBlock && isUnmodifiedDefaultBlock(block) && getBlockMode(clientId) !== 'html';
|
|
33
34
|
const _showEmptyBlockSideInserter = clientId && !isTyping() && editorMode === 'edit' && isEmptyDefaultBlock;
|
|
34
35
|
const maybeShowBreadcrumb = hasSelectedBlock && !hasMultiSelection() && editorMode === 'navigation';
|
|
35
36
|
const isZoomOut = editorMode === 'zoom-out';
|