@wordpress/block-editor 15.11.0 → 15.11.1-next.v.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/build/components/block-controls/index.cjs +1 -1
- package/build/components/block-controls/index.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +6 -19
- package/build/components/block-inspector/index.cjs.map +3 -3
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs +37 -13
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.cjs.map +2 -2
- package/build/components/block-settings-menu-controls/index.cjs +1 -1
- package/build/components/block-settings-menu-controls/index.cjs.map +2 -2
- package/build/components/block-toolbar/index.cjs +1 -1
- package/build/components/block-toolbar/index.cjs.map +2 -2
- package/build/components/block-tools/index.cjs +2 -26
- package/build/components/block-tools/index.cjs.map +2 -2
- package/build/components/block-visibility/index.cjs +7 -9
- package/build/components/block-visibility/index.cjs.map +3 -3
- package/build/components/block-visibility/modal.cjs +13 -11
- package/build/components/block-visibility/modal.cjs.map +2 -2
- package/build/components/block-visibility/use-block-visibility.cjs +1 -1
- package/build/components/block-visibility/use-block-visibility.cjs.map +2 -2
- package/build/components/block-visibility/utils.cjs +5 -1
- package/build/components/block-visibility/utils.cjs.map +2 -2
- package/build/components/block-visibility/viewport-menu-item.cjs +11 -4
- package/build/components/block-visibility/viewport-menu-item.cjs.map +2 -2
- package/build/components/block-visibility/viewport-toolbar.cjs +4 -6
- package/build/components/block-visibility/viewport-toolbar.cjs.map +2 -2
- package/build/components/block-visibility/viewport-visibility-info.cjs +121 -0
- package/build/components/block-visibility/viewport-visibility-info.cjs.map +7 -0
- package/build/components/color-palette/with-color-context.cjs +1 -1
- package/build/components/color-palette/with-color-context.cjs.map +2 -2
- package/build/components/color-style-selector/index.cjs +1 -1
- package/build/components/color-style-selector/index.cjs.map +2 -2
- package/build/components/colors/with-colors.cjs +5 -3
- package/build/components/colors/with-colors.cjs.map +2 -2
- package/build/components/colors-gradients/dropdown.cjs +1 -1
- package/build/components/colors-gradients/dropdown.cjs.map +2 -2
- package/build/components/editable-text/index.cjs +5 -1
- package/build/components/editable-text/index.cjs.map +2 -2
- package/build/components/font-sizes/with-font-sizes.cjs +5 -3
- package/build/components/font-sizes/with-font-sizes.cjs.map +2 -2
- package/build/components/global-styles/advanced-panel.cjs +26 -13
- package/build/components/global-styles/advanced-panel.cjs.map +2 -2
- package/build/components/global-styles/filters-panel.cjs +1 -1
- package/build/components/global-styles/filters-panel.cjs.map +2 -2
- package/build/components/global-styles/shadow-panel-components.cjs +1 -1
- package/build/components/global-styles/shadow-panel-components.cjs.map +2 -2
- package/build/components/gradients/with-gradient.cjs +1 -1
- package/build/components/gradients/with-gradient.cjs.map +2 -2
- package/build/components/inspector-controls/fill.cjs +12 -2
- package/build/components/inspector-controls/fill.cjs.map +2 -2
- package/build/components/inspector-controls/index.cjs +1 -1
- package/build/components/inspector-controls/index.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/index.cjs +1 -1
- package/build/components/inspector-controls-tabs/index.cjs.map +2 -2
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs +2 -2
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.cjs.map +2 -2
- package/build/components/list-view/block-select-button.cjs +8 -16
- package/build/components/list-view/block-select-button.cjs.map +2 -2
- package/build/components/list-view/block.cjs +29 -34
- package/build/components/list-view/block.cjs.map +3 -3
- package/build/components/list-view/utils.cjs +3 -1
- package/build/components/list-view/utils.cjs.map +2 -2
- package/build/components/provider/index.cjs +7 -8
- package/build/components/provider/index.cjs.map +2 -2
- package/build/components/provider/with-registry-provider.cjs +1 -1
- package/build/components/provider/with-registry-provider.cjs.map +2 -2
- package/build/components/use-block-commands/index.cjs +2 -34
- package/build/components/use-block-commands/index.cjs.map +2 -2
- package/build/hooks/cross-origin-isolation.cjs +1 -1
- package/build/hooks/cross-origin-isolation.cjs.map +2 -2
- package/build/hooks/custom-css.cjs +141 -0
- package/build/hooks/custom-css.cjs.map +7 -0
- package/build/hooks/fit-text.cjs +14 -7
- package/build/hooks/fit-text.cjs.map +2 -2
- package/build/hooks/grid-visualizer.cjs +1 -1
- package/build/hooks/grid-visualizer.cjs.map +2 -2
- package/build/hooks/index.cjs +4 -0
- package/build/hooks/index.cjs.map +3 -3
- package/build/hooks/layout.cjs +10 -4
- package/build/hooks/layout.cjs.map +2 -2
- package/build/hooks/list-view.cjs +9 -5
- package/build/hooks/list-view.cjs.map +3 -3
- package/build/hooks/utils.cjs +2 -2
- package/build/hooks/utils.cjs.map +2 -2
- package/build/layouts/grid.cjs +12 -1
- package/build/layouts/grid.cjs.map +2 -2
- package/build/store/defaults.cjs +3 -0
- package/build/store/defaults.cjs.map +2 -2
- package/build/store/private-selectors.cjs +45 -37
- package/build/store/private-selectors.cjs.map +2 -2
- package/build/utils/fit-text-utils.cjs +5 -1
- package/build/utils/fit-text-utils.cjs.map +2 -2
- package/build-module/components/block-controls/index.mjs +1 -1
- package/build-module/components/block-controls/index.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +6 -19
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs +37 -13
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.mjs.map +2 -2
- package/build-module/components/block-settings-menu-controls/index.mjs +2 -2
- package/build-module/components/block-settings-menu-controls/index.mjs.map +2 -2
- package/build-module/components/block-toolbar/index.mjs +2 -2
- package/build-module/components/block-toolbar/index.mjs.map +2 -2
- package/build-module/components/block-tools/index.mjs +2 -26
- package/build-module/components/block-tools/index.mjs.map +2 -2
- package/build-module/components/block-visibility/index.mjs +6 -9
- package/build-module/components/block-visibility/index.mjs.map +2 -2
- package/build-module/components/block-visibility/modal.mjs +13 -11
- package/build-module/components/block-visibility/modal.mjs.map +2 -2
- package/build-module/components/block-visibility/use-block-visibility.mjs +1 -1
- package/build-module/components/block-visibility/use-block-visibility.mjs.map +2 -2
- package/build-module/components/block-visibility/utils.mjs +5 -1
- package/build-module/components/block-visibility/utils.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-menu-item.mjs +11 -4
- package/build-module/components/block-visibility/viewport-menu-item.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-toolbar.mjs +4 -6
- package/build-module/components/block-visibility/viewport-toolbar.mjs.map +2 -2
- package/build-module/components/block-visibility/viewport-visibility-info.mjs +95 -0
- package/build-module/components/block-visibility/viewport-visibility-info.mjs.map +7 -0
- package/build-module/components/color-palette/with-color-context.mjs +1 -1
- package/build-module/components/color-palette/with-color-context.mjs.map +2 -2
- package/build-module/components/color-style-selector/index.mjs +1 -1
- package/build-module/components/color-style-selector/index.mjs.map +2 -2
- package/build-module/components/colors/with-colors.mjs +5 -3
- package/build-module/components/colors/with-colors.mjs.map +2 -2
- package/build-module/components/colors-gradients/dropdown.mjs +1 -1
- package/build-module/components/colors-gradients/dropdown.mjs.map +2 -2
- package/build-module/components/editable-text/index.mjs +5 -1
- package/build-module/components/editable-text/index.mjs.map +2 -2
- package/build-module/components/font-sizes/with-font-sizes.mjs +5 -3
- package/build-module/components/font-sizes/with-font-sizes.mjs.map +2 -2
- package/build-module/components/global-styles/advanced-panel.mjs +22 -13
- package/build-module/components/global-styles/advanced-panel.mjs.map +2 -2
- package/build-module/components/global-styles/filters-panel.mjs +1 -1
- package/build-module/components/global-styles/filters-panel.mjs.map +2 -2
- package/build-module/components/global-styles/shadow-panel-components.mjs +1 -1
- package/build-module/components/global-styles/shadow-panel-components.mjs.map +2 -2
- package/build-module/components/gradients/with-gradient.mjs +1 -1
- package/build-module/components/gradients/with-gradient.mjs.map +2 -2
- package/build-module/components/inspector-controls/fill.mjs +12 -2
- package/build-module/components/inspector-controls/fill.mjs.map +2 -2
- package/build-module/components/inspector-controls/index.mjs +1 -1
- package/build-module/components/inspector-controls/index.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/index.mjs +1 -1
- package/build-module/components/inspector-controls-tabs/index.mjs.map +2 -2
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs +2 -2
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.mjs.map +2 -2
- package/build-module/components/list-view/block-select-button.mjs +8 -16
- package/build-module/components/list-view/block-select-button.mjs.map +2 -2
- package/build-module/components/list-view/block.mjs +31 -36
- package/build-module/components/list-view/block.mjs.map +2 -2
- package/build-module/components/list-view/utils.mjs +3 -1
- package/build-module/components/list-view/utils.mjs.map +2 -2
- package/build-module/components/provider/index.mjs +7 -8
- package/build-module/components/provider/index.mjs.map +2 -2
- package/build-module/components/provider/with-registry-provider.mjs +1 -1
- package/build-module/components/provider/with-registry-provider.mjs.map +2 -2
- package/build-module/components/use-block-commands/index.mjs +3 -37
- package/build-module/components/use-block-commands/index.mjs.map +2 -2
- package/build-module/hooks/cross-origin-isolation.mjs +1 -1
- package/build-module/hooks/cross-origin-isolation.mjs.map +2 -2
- package/build-module/hooks/custom-css.mjs +112 -0
- package/build-module/hooks/custom-css.mjs.map +7 -0
- package/build-module/hooks/fit-text.mjs +14 -7
- package/build-module/hooks/fit-text.mjs.map +2 -2
- package/build-module/hooks/grid-visualizer.mjs +1 -1
- package/build-module/hooks/grid-visualizer.mjs.map +2 -2
- package/build-module/hooks/index.mjs +4 -0
- package/build-module/hooks/index.mjs.map +2 -2
- package/build-module/hooks/layout.mjs +10 -4
- package/build-module/hooks/layout.mjs.map +2 -2
- package/build-module/hooks/list-view.mjs +10 -6
- package/build-module/hooks/list-view.mjs.map +2 -2
- package/build-module/hooks/utils.mjs +2 -2
- package/build-module/hooks/utils.mjs.map +2 -2
- package/build-module/layouts/grid.mjs +12 -1
- package/build-module/layouts/grid.mjs.map +2 -2
- package/build-module/store/defaults.mjs +3 -0
- package/build-module/store/defaults.mjs.map +2 -2
- package/build-module/store/private-selectors.mjs +42 -40
- package/build-module/store/private-selectors.mjs.map +2 -2
- package/build-module/utils/fit-text-utils.mjs +5 -1
- package/build-module/utils/fit-text-utils.mjs.map +2 -2
- package/build-style/style-rtl.css +3 -0
- package/build-style/style.css +3 -0
- package/package.json +39 -39
- package/src/components/block-controls/index.js +1 -1
- package/src/components/block-controls/test/index.js +1 -0
- package/src/components/block-edit/test/edit.js +10 -0
- package/src/components/block-inspector/index.js +14 -32
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +49 -29
- package/src/components/block-preview/test/index.js +11 -7
- package/src/components/block-settings-menu-controls/index.js +2 -2
- package/src/components/block-switcher/test/index.js +2 -0
- package/src/components/block-switcher/test/use-transformed.patterns.js +2 -0
- package/src/components/block-switcher/test/utils.js +2 -0
- package/src/components/block-toolbar/index.js +2 -2
- package/src/components/block-tools/index.js +2 -29
- package/src/components/block-visibility/index.js +3 -19
- package/src/components/block-visibility/modal.js +16 -14
- package/src/components/block-visibility/test/use-block-visibility.js +27 -25
- package/src/components/block-visibility/test/utils.js +24 -8
- package/src/components/block-visibility/use-block-visibility.js +1 -4
- package/src/components/block-visibility/utils.js +9 -1
- package/src/components/block-visibility/viewport-menu-item.js +11 -5
- package/src/components/block-visibility/viewport-toolbar.js +5 -6
- package/src/components/block-visibility/viewport-visibility-info.js +131 -0
- package/src/components/color-palette/with-color-context.js +1 -1
- package/src/components/color-style-selector/index.js +2 -3
- package/src/components/colors/with-colors.js +23 -20
- package/src/components/colors-gradients/dropdown.js +2 -3
- package/src/components/editable-text/index.js +5 -1
- package/src/components/font-sizes/with-font-sizes.js +13 -10
- package/src/components/global-styles/advanced-panel.js +35 -16
- package/src/components/global-styles/filters-panel.js +2 -3
- package/src/components/global-styles/shadow-panel-components.js +1 -1
- package/src/components/global-styles/style.scss +9 -5
- package/src/components/gradients/with-gradient.js +7 -4
- package/src/components/inner-blocks/test/index.js +2 -0
- package/src/components/inspector-controls/fill.js +25 -5
- package/src/components/inspector-controls/index.js +1 -1
- package/src/components/inspector-controls-tabs/index.js +5 -1
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -4
- package/src/components/link-control/test/index.js +6 -1
- package/src/components/list-view/block-select-button.js +16 -25
- package/src/components/list-view/block.js +38 -43
- package/src/components/list-view/utils.js +4 -2
- package/src/components/media-replace-flow/test/index.js +13 -11
- package/src/components/provider/index.js +11 -10
- package/src/components/provider/test/use-block-sync.js +1 -0
- package/src/components/provider/with-registry-provider.js +1 -1
- package/src/components/use-block-commands/index.js +0 -41
- package/src/hooks/cross-origin-isolation.js +19 -18
- package/src/hooks/custom-css.js +176 -0
- package/src/hooks/fit-text.js +20 -5
- package/src/hooks/grid-visualizer.js +15 -14
- package/src/hooks/index.js +4 -0
- package/src/hooks/layout.js +55 -43
- package/src/hooks/list-view.js +10 -6
- package/src/hooks/test/align.js +1 -0
- package/src/hooks/test/allowed-blocks.js +8 -0
- package/src/hooks/test/auto-inspector-controls.js +4 -0
- package/src/hooks/test/font-size.js +1 -0
- package/src/hooks/test/metadata.js +4 -0
- package/src/hooks/test/text-align.js +1 -0
- package/src/hooks/utils.js +123 -119
- package/src/layouts/grid.js +19 -3
- package/src/layouts/test/grid.js +1 -1
- package/src/store/defaults.js +4 -0
- package/src/store/private-selectors.js +94 -63
- package/src/store/test/actions.js +7 -0
- package/src/store/test/private-selectors.js +116 -119
- package/src/store/test/reducer.js +4 -0
- package/src/store/test/registry-selectors.js +2 -0
- package/src/store/test/selectors.js +19 -0
- package/src/utils/fit-text-utils.js +12 -2
- package/build/components/block-visibility/block-visibility-info.cjs +0 -63
- package/build/components/block-visibility/block-visibility-info.cjs.map +0 -7
- package/build/components/block-visibility/menu-item.cjs +0 -109
- package/build/components/block-visibility/menu-item.cjs.map +0 -7
- package/build/components/block-visibility/toolbar.cjs +0 -92
- package/build/components/block-visibility/toolbar.cjs.map +0 -7
- package/build-module/components/block-visibility/block-visibility-info.mjs +0 -47
- package/build-module/components/block-visibility/block-visibility-info.mjs.map +0 -7
- package/build-module/components/block-visibility/menu-item.mjs +0 -88
- package/build-module/components/block-visibility/menu-item.mjs.map +0 -7
- package/build-module/components/block-visibility/toolbar.mjs +0 -71
- package/build-module/components/block-visibility/toolbar.mjs.map +0 -7
- package/src/components/block-visibility/block-visibility-info.js +0 -62
- package/src/components/block-visibility/menu-item.js +0 -96
- package/src/components/block-visibility/toolbar.js +0 -88
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// packages/block-editor/src/components/block-visibility/menu-item.js
|
|
21
|
-
var menu_item_exports = {};
|
|
22
|
-
__export(menu_item_exports, {
|
|
23
|
-
default: () => BlockVisibilityMenuItem
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(menu_item_exports);
|
|
26
|
-
var import_i18n = require("@wordpress/i18n");
|
|
27
|
-
var import_components = require("@wordpress/components");
|
|
28
|
-
var import_icons = require("@wordpress/icons");
|
|
29
|
-
var import_data = require("@wordpress/data");
|
|
30
|
-
var import_notices = require("@wordpress/notices");
|
|
31
|
-
var import_keyboard_shortcuts = require("@wordpress/keyboard-shortcuts");
|
|
32
|
-
var import_utils = require("../../hooks/utils.cjs");
|
|
33
|
-
var import_store = require("../../store/index.cjs");
|
|
34
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
-
function BlockVisibilityMenuItem({ clientIds }) {
|
|
36
|
-
const { updateBlockAttributes } = (0, import_data.useDispatch)(import_store.store);
|
|
37
|
-
const { createSuccessNotice } = (0, import_data.useDispatch)(import_notices.store);
|
|
38
|
-
const blocks = (0, import_data.useSelect)(
|
|
39
|
-
(select) => {
|
|
40
|
-
return select(import_store.store).getBlocksByClientId(clientIds);
|
|
41
|
-
},
|
|
42
|
-
[clientIds]
|
|
43
|
-
);
|
|
44
|
-
const listViewShortcut = (0, import_data.useSelect)((select) => {
|
|
45
|
-
return select(import_keyboard_shortcuts.store).getShortcutRepresentation(
|
|
46
|
-
"core/editor/toggle-list-view"
|
|
47
|
-
);
|
|
48
|
-
}, []);
|
|
49
|
-
const hasHiddenBlock = blocks.some(
|
|
50
|
-
(block) => block.attributes.metadata?.blockVisibility === false
|
|
51
|
-
);
|
|
52
|
-
const toggleBlockVisibility = () => {
|
|
53
|
-
const isHiding = !hasHiddenBlock;
|
|
54
|
-
const attributesByClientId = Object.fromEntries(
|
|
55
|
-
blocks?.map(({ clientId, attributes }) => [
|
|
56
|
-
clientId,
|
|
57
|
-
{
|
|
58
|
-
metadata: (0, import_utils.cleanEmptyObject)({
|
|
59
|
-
...attributes?.metadata,
|
|
60
|
-
blockVisibility: isHiding ? false : void 0
|
|
61
|
-
})
|
|
62
|
-
}
|
|
63
|
-
])
|
|
64
|
-
);
|
|
65
|
-
updateBlockAttributes(clientIds, attributesByClientId, {
|
|
66
|
-
uniqueByBlock: true
|
|
67
|
-
});
|
|
68
|
-
if (isHiding) {
|
|
69
|
-
if (blocks.length > 1) {
|
|
70
|
-
createSuccessNotice(
|
|
71
|
-
(0, import_i18n.sprintf)(
|
|
72
|
-
// translators: %s: The shortcut key to access the List View.
|
|
73
|
-
(0, import_i18n.__)(
|
|
74
|
-
"Blocks hidden. You can access them via the List View (%s)."
|
|
75
|
-
),
|
|
76
|
-
listViewShortcut
|
|
77
|
-
),
|
|
78
|
-
{
|
|
79
|
-
id: "block-visibility-hidden",
|
|
80
|
-
type: "snackbar"
|
|
81
|
-
}
|
|
82
|
-
);
|
|
83
|
-
} else {
|
|
84
|
-
createSuccessNotice(
|
|
85
|
-
(0, import_i18n.sprintf)(
|
|
86
|
-
// translators: %s: The shortcut key to access the List View.
|
|
87
|
-
(0, import_i18n.__)(
|
|
88
|
-
"Block hidden. You can access it via the List View (%s)."
|
|
89
|
-
),
|
|
90
|
-
listViewShortcut
|
|
91
|
-
),
|
|
92
|
-
{
|
|
93
|
-
id: "block-visibility-hidden",
|
|
94
|
-
type: "snackbar"
|
|
95
|
-
}
|
|
96
|
-
);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
101
|
-
import_components.MenuItem,
|
|
102
|
-
{
|
|
103
|
-
icon: hasHiddenBlock ? import_icons.seen : import_icons.unseen,
|
|
104
|
-
onClick: toggleBlockVisibility,
|
|
105
|
-
children: hasHiddenBlock ? (0, import_i18n.__)("Show") : (0, import_i18n.__)("Hide")
|
|
106
|
-
}
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
//# sourceMappingURL=menu-item.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/block-visibility/menu-item.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { seen, unseen } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockVisibilityMenuItem( { clientIds } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst blocks = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlocksByClientId( clientIds );\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst listViewShortcut = useSelect( ( select ) => {\n\t\treturn select( keyboardShortcutsStore ).getShortcutRepresentation(\n\t\t\t'core/editor/toggle-list-view'\n\t\t);\n\t}, [] );\n\n\tconst hasHiddenBlock = blocks.some(\n\t\t( block ) => block.attributes.metadata?.blockVisibility === false\n\t);\n\n\tconst toggleBlockVisibility = () => {\n\t\tconst isHiding = ! hasHiddenBlock;\n\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tblocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.metadata,\n\t\t\t\t\t\tblockVisibility: isHiding ? false : undefined,\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t] )\n\t\t);\n\t\tupdateBlockAttributes( clientIds, attributesByClientId, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\n\t\tif ( isHiding ) {\n\t\t\tif ( blocks.length > 1 ) {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The shortcut key to access the List View.\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Blocks hidden. You can access them via the List View (%s).'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlistViewShortcut\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'block-visibility-hidden',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The shortcut key to access the List View.\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Block hidden. You can access it via the List View (%s).'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlistViewShortcut\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'block-visibility-hidden',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t<MenuItem\n\t\t\ticon={ hasHiddenBlock ? seen : unseen }\n\t\t\tonClick={ toggleBlockVisibility }\n\t\t>\n\t\t\t{ hasHiddenBlock ? __( 'Show' ) : __( 'Hide' ) }\n\t\t</MenuItem>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAA4B;AAC5B,wBAAyB;AACzB,mBAA6B;AAC7B,kBAAuC;AACvC,qBAAsC;AACtC,gCAAgD;AAKhD,mBAAiC;AACjC,mBAA0C;AA0ExC;AAxEa,SAAR,wBAA0C,EAAE,UAAU,GAAI;AAChE,QAAM,EAAE,sBAAsB,QAAI,yBAAa,aAAAA,KAAiB;AAChE,QAAM,EAAE,oBAAoB,QAAI,yBAAa,eAAAC,KAAa;AAC1D,QAAM,aAAS;AAAA,IACd,CAAE,WAAY;AACb,aAAO,OAAQ,aAAAD,KAAiB,EAAE,oBAAqB,SAAU;AAAA,IAClE;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,uBAAmB,uBAAW,CAAE,WAAY;AACjD,WAAO,OAAQ,0BAAAE,KAAuB,EAAE;AAAA,MACvC;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,iBAAiB,OAAO;AAAA,IAC7B,CAAE,UAAW,MAAM,WAAW,UAAU,oBAAoB;AAAA,EAC7D;AAEA,QAAM,wBAAwB,MAAM;AACnC,UAAM,WAAW,CAAE;AAEnB,UAAM,uBAAuB,OAAO;AAAA,MACnC,QAAQ,IAAK,CAAE,EAAE,UAAU,WAAW,MAAO;AAAA,QAC5C;AAAA,QACA;AAAA,UACC,cAAU,+BAAkB;AAAA,YAC3B,GAAG,YAAY;AAAA,YACf,iBAAiB,WAAW,QAAQ;AAAA,UACrC,CAAE;AAAA,QACH;AAAA,MACD,CAAE;AAAA,IACH;AACA,0BAAuB,WAAW,sBAAsB;AAAA,MACvD,eAAe;AAAA,IAChB,CAAE;AAEF,QAAK,UAAW;AACf,UAAK,OAAO,SAAS,GAAI;AACxB;AAAA,cACC;AAAA;AAAA,gBAEC;AAAA,cACC;AAAA,YACD;AAAA,YACA;AAAA,UACD;AAAA,UACA;AAAA,YACC,IAAI;AAAA,YACJ,MAAM;AAAA,UACP;AAAA,QACD;AAAA,MACD,OAAO;AACN;AAAA,cACC;AAAA;AAAA,gBAEC;AAAA,cACC;AAAA,YACD;AAAA,YACA;AAAA,UACD;AAAA,UACA;AAAA,YACC,IAAI;AAAA,YACJ,MAAM;AAAA,UACP;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAO,iBAAiB,oBAAO;AAAA,MAC/B,SAAU;AAAA,MAER,+BAAiB,gBAAI,MAAO,QAAI,gBAAI,MAAO;AAAA;AAAA,EAC9C;AAEF;",
|
|
6
|
-
"names": ["blockEditorStore", "noticesStore", "keyboardShortcutsStore"]
|
|
7
|
-
}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// packages/block-editor/src/components/block-visibility/toolbar.js
|
|
21
|
-
var toolbar_exports = {};
|
|
22
|
-
__export(toolbar_exports, {
|
|
23
|
-
default: () => BlockVisibilityToolbar
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(toolbar_exports);
|
|
26
|
-
var import_i18n = require("@wordpress/i18n");
|
|
27
|
-
var import_components = require("@wordpress/components");
|
|
28
|
-
var import_element = require("@wordpress/element");
|
|
29
|
-
var import_icons = require("@wordpress/icons");
|
|
30
|
-
var import_data = require("@wordpress/data");
|
|
31
|
-
var import_blocks = require("@wordpress/blocks");
|
|
32
|
-
var import_store = require("../../store/index.cjs");
|
|
33
|
-
var import_utils = require("../../hooks/utils.cjs");
|
|
34
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
35
|
-
function BlockVisibilityToolbar({ clientIds }) {
|
|
36
|
-
const { blocks, canToggleBlockVisibility } = (0, import_data.useSelect)(
|
|
37
|
-
(select) => {
|
|
38
|
-
const { getBlockName, getBlocksByClientId } = select(import_store.store);
|
|
39
|
-
const _blocks = getBlocksByClientId(clientIds);
|
|
40
|
-
return {
|
|
41
|
-
blocks: _blocks,
|
|
42
|
-
canToggleBlockVisibility: _blocks.every(
|
|
43
|
-
({ clientId }) => (0, import_blocks.hasBlockSupport)(
|
|
44
|
-
getBlockName(clientId),
|
|
45
|
-
"visibility",
|
|
46
|
-
true
|
|
47
|
-
)
|
|
48
|
-
)
|
|
49
|
-
};
|
|
50
|
-
},
|
|
51
|
-
[clientIds]
|
|
52
|
-
);
|
|
53
|
-
const hasHiddenBlock = blocks.some(
|
|
54
|
-
(block) => block.attributes.metadata?.blockVisibility === false
|
|
55
|
-
);
|
|
56
|
-
const hasBlockVisibilityButtonShownRef = (0, import_element.useRef)(false);
|
|
57
|
-
const { updateBlockAttributes } = (0, import_data.useDispatch)(import_store.store);
|
|
58
|
-
(0, import_element.useEffect)(() => {
|
|
59
|
-
if (hasHiddenBlock) {
|
|
60
|
-
hasBlockVisibilityButtonShownRef.current = true;
|
|
61
|
-
}
|
|
62
|
-
}, [hasHiddenBlock]);
|
|
63
|
-
if (!hasHiddenBlock && !hasBlockVisibilityButtonShownRef.current) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
const toggleBlockVisibility = () => {
|
|
67
|
-
const attributesByClientId = Object.fromEntries(
|
|
68
|
-
blocks?.map(({ clientId, attributes }) => [
|
|
69
|
-
clientId,
|
|
70
|
-
{
|
|
71
|
-
metadata: (0, import_utils.cleanEmptyObject)({
|
|
72
|
-
...attributes?.metadata,
|
|
73
|
-
blockVisibility: hasHiddenBlock ? void 0 : false
|
|
74
|
-
})
|
|
75
|
-
}
|
|
76
|
-
])
|
|
77
|
-
);
|
|
78
|
-
updateBlockAttributes(clientIds, attributesByClientId, {
|
|
79
|
-
uniqueByBlock: true
|
|
80
|
-
});
|
|
81
|
-
};
|
|
82
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_components.ToolbarGroup, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
83
|
-
import_components.ToolbarButton,
|
|
84
|
-
{
|
|
85
|
-
disabled: !canToggleBlockVisibility,
|
|
86
|
-
icon: hasHiddenBlock ? import_icons.unseen : import_icons.seen,
|
|
87
|
-
label: hasHiddenBlock ? (0, import_i18n.__)("Hidden") : (0, import_i18n.__)("Visible"),
|
|
88
|
-
onClick: toggleBlockVisibility
|
|
89
|
-
}
|
|
90
|
-
) }) });
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=toolbar.cjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/block-visibility/toolbar.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { seen, unseen } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockVisibilityToolbar( { clientIds } ) {\n\tconst { blocks, canToggleBlockVisibility } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlocksByClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\treturn {\n\t\t\t\tblocks: _blocks,\n\t\t\t\tcanToggleBlockVisibility: _blocks.every( ( { clientId } ) =>\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'visibility',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst hasHiddenBlock = blocks.some(\n\t\t( block ) => block.attributes.metadata?.blockVisibility === false\n\t);\n\n\tconst hasBlockVisibilityButtonShownRef = useRef( false );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\t// If the block visibility button has been shown, we don't want to\n\t// remove it from the toolbar until the toolbar is rendered again\n\t// without it. Removing it beforehand can cause focus loss issues.\n\t// It needs to return focus from whence it came, and to do that,\n\t// we need to leave the button in the toolbar.\n\tuseEffect( () => {\n\t\tif ( hasHiddenBlock ) {\n\t\t\thasBlockVisibilityButtonShownRef.current = true;\n\t\t}\n\t}, [ hasHiddenBlock ] );\n\n\tif ( ! hasHiddenBlock && ! hasBlockVisibilityButtonShownRef.current ) {\n\t\treturn null;\n\t}\n\n\tconst toggleBlockVisibility = () => {\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tblocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.metadata,\n\t\t\t\t\t\tblockVisibility: hasHiddenBlock ? undefined : false,\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t] )\n\t\t);\n\t\tupdateBlockAttributes( clientIds, attributesByClientId, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled={ ! canToggleBlockVisibility }\n\t\t\t\t\ticon={ hasHiddenBlock ? unseen : seen }\n\t\t\t\t\tlabel={ hasHiddenBlock ? __( 'Hidden' ) : __( 'Visible' ) }\n\t\t\t\t\tonClick={ toggleBlockVisibility }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,kBAAmB;AACnB,wBAA4C;AAC5C,qBAAkC;AAClC,mBAA6B;AAC7B,kBAAuC;AACvC,oBAAgC;AAKhC,mBAA0C;AAC1C,mBAAiC;AA8D/B;AA5Da,SAAR,uBAAyC,EAAE,UAAU,GAAI;AAC/D,QAAM,EAAE,QAAQ,yBAAyB,QAAI;AAAA,IAC5C,CAAE,WAAY;AACb,YAAM,EAAE,cAAc,oBAAoB,IACzC,OAAQ,aAAAA,KAAiB;AAC1B,YAAM,UAAU,oBAAqB,SAAU;AAC/C,aAAO;AAAA,QACN,QAAQ;AAAA,QACR,0BAA0B,QAAQ;AAAA,UAAO,CAAE,EAAE,SAAS,UACrD;AAAA,YACC,aAAc,QAAS;AAAA,YACvB;AAAA,YACA;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,iBAAiB,OAAO;AAAA,IAC7B,CAAE,UAAW,MAAM,WAAW,UAAU,oBAAoB;AAAA,EAC7D;AAEA,QAAM,uCAAmC,uBAAQ,KAAM;AACvD,QAAM,EAAE,sBAAsB,QAAI,yBAAa,aAAAA,KAAiB;AAOhE,gCAAW,MAAM;AAChB,QAAK,gBAAiB;AACrB,uCAAiC,UAAU;AAAA,IAC5C;AAAA,EACD,GAAG,CAAE,cAAe,CAAE;AAEtB,MAAK,CAAE,kBAAkB,CAAE,iCAAiC,SAAU;AACrE,WAAO;AAAA,EACR;AAEA,QAAM,wBAAwB,MAAM;AACnC,UAAM,uBAAuB,OAAO;AAAA,MACnC,QAAQ,IAAK,CAAE,EAAE,UAAU,WAAW,MAAO;AAAA,QAC5C;AAAA,QACA;AAAA,UACC,cAAU,+BAAkB;AAAA,YAC3B,GAAG,YAAY;AAAA,YACf,iBAAiB,iBAAiB,SAAY;AAAA,UAC/C,CAAE;AAAA,QACH;AAAA,MACD,CAAE;AAAA,IACH;AACA,0BAAuB,WAAW,sBAAsB;AAAA,MACvD,eAAe;AAAA,IAChB,CAAE;AAAA,EACH;AAEA,SACC,2EACC,sDAAC,kCACA;AAAA,IAAC;AAAA;AAAA,MACA,UAAW,CAAE;AAAA,MACb,MAAO,iBAAiB,sBAAS;AAAA,MACjC,OAAQ,qBAAiB,gBAAI,QAAS,QAAI,gBAAI,SAAU;AAAA,MACxD,SAAU;AAAA;AAAA,EACX,GACD,GACD;AAEF;",
|
|
6
|
-
"names": ["blockEditorStore"]
|
|
7
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
// packages/block-editor/src/components/block-visibility/block-visibility-info.js
|
|
2
|
-
import {
|
|
3
|
-
Icon,
|
|
4
|
-
__experimentalText as Text,
|
|
5
|
-
__experimentalHStack as HStack,
|
|
6
|
-
privateApis as componentsPrivateApis
|
|
7
|
-
} from "@wordpress/components";
|
|
8
|
-
import { useSelect } from "@wordpress/data";
|
|
9
|
-
import { __ } from "@wordpress/i18n";
|
|
10
|
-
import { unseen } from "@wordpress/icons";
|
|
11
|
-
import { unlock } from "../../lock-unlock.mjs";
|
|
12
|
-
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
13
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
14
|
-
var { Badge } = unlock(componentsPrivateApis);
|
|
15
|
-
function BlockVisibilityInfo({ clientId }) {
|
|
16
|
-
const { isBlockHidden, hasHiddenParent } = useSelect(
|
|
17
|
-
(select) => {
|
|
18
|
-
if (!clientId) {
|
|
19
|
-
return { isBlockHidden: false, hasHiddenParent: false };
|
|
20
|
-
}
|
|
21
|
-
const { isBlockHidden: _isBlockHidden, getBlockParents } = unlock(
|
|
22
|
-
select(blockEditorStore)
|
|
23
|
-
);
|
|
24
|
-
const blockHidden = _isBlockHidden(clientId);
|
|
25
|
-
const parents = getBlockParents(clientId);
|
|
26
|
-
const parentHidden = parents.some(
|
|
27
|
-
(parentId) => _isBlockHidden(parentId)
|
|
28
|
-
);
|
|
29
|
-
return {
|
|
30
|
-
isBlockHidden: blockHidden,
|
|
31
|
-
hasHiddenParent: parentHidden
|
|
32
|
-
};
|
|
33
|
-
},
|
|
34
|
-
[clientId]
|
|
35
|
-
);
|
|
36
|
-
if (!(isBlockHidden || hasHiddenParent)) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
return /* @__PURE__ */ jsx(Badge, { className: "block-editor-block-visibility-info", children: /* @__PURE__ */ jsxs(HStack, { spacing: 2, justify: "start", children: [
|
|
40
|
-
/* @__PURE__ */ jsx(Icon, { icon: unseen }),
|
|
41
|
-
/* @__PURE__ */ jsx(Text, { children: isBlockHidden ? __("Block is hidden") : __("Parent block is hidden") })
|
|
42
|
-
] }) });
|
|
43
|
-
}
|
|
44
|
-
export {
|
|
45
|
-
BlockVisibilityInfo as default
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=block-visibility-info.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/block-visibility/block-visibility-info.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport {\n\tIcon,\n\t__experimentalText as Text,\n\t__experimentalHStack as HStack,\n\tprivateApis as componentsPrivateApis,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { unseen } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../lock-unlock';\nimport { store as blockEditorStore } from '../../store';\n\nconst { Badge } = unlock( componentsPrivateApis );\n\nexport default function BlockVisibilityInfo( { clientId } ) {\n\tconst { isBlockHidden, hasHiddenParent } = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn { isBlockHidden: false, hasHiddenParent: false };\n\t\t\t}\n\t\t\tconst { isBlockHidden: _isBlockHidden, getBlockParents } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\n\t\t\tconst blockHidden = _isBlockHidden( clientId );\n\t\t\tconst parents = getBlockParents( clientId );\n\t\t\tconst parentHidden = parents.some( ( parentId ) =>\n\t\t\t\t_isBlockHidden( parentId )\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tisBlockHidden: blockHidden,\n\t\t\t\thasHiddenParent: parentHidden,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tif ( ! ( isBlockHidden || hasHiddenParent ) ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Badge className=\"block-editor-block-visibility-info\">\n\t\t\t<HStack spacing={ 2 } justify=\"start\">\n\t\t\t\t<Icon icon={ unseen } />\n\t\t\t\t<Text>\n\t\t\t\t\t{ isBlockHidden\n\t\t\t\t\t\t? __( 'Block is hidden' )\n\t\t\t\t\t\t: __( 'Parent block is hidden' ) }\n\t\t\t\t</Text>\n\t\t\t</HStack>\n\t\t</Badge>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA;AAAA,EACC;AAAA,EACA,sBAAsB;AAAA,EACtB,wBAAwB;AAAA,EACxB,eAAe;AAAA,OACT;AACP,SAAS,iBAAiB;AAC1B,SAAS,UAAU;AACnB,SAAS,cAAc;AAKvB,SAAS,cAAc;AACvB,SAAS,SAAS,wBAAwB;AAkCvC,SACC,KADD;AAhCH,IAAM,EAAE,MAAM,IAAI,OAAQ,qBAAsB;AAEjC,SAAR,oBAAsC,EAAE,SAAS,GAAI;AAC3D,QAAM,EAAE,eAAe,gBAAgB,IAAI;AAAA,IAC1C,CAAE,WAAY;AACb,UAAK,CAAE,UAAW;AACjB,eAAO,EAAE,eAAe,OAAO,iBAAiB,MAAM;AAAA,MACvD;AACA,YAAM,EAAE,eAAe,gBAAgB,gBAAgB,IAAI;AAAA,QAC1D,OAAQ,gBAAiB;AAAA,MAC1B;AAEA,YAAM,cAAc,eAAgB,QAAS;AAC7C,YAAM,UAAU,gBAAiB,QAAS;AAC1C,YAAM,eAAe,QAAQ;AAAA,QAAM,CAAE,aACpC,eAAgB,QAAS;AAAA,MAC1B;AAEA,aAAO;AAAA,QACN,eAAe;AAAA,QACf,iBAAiB;AAAA,MAClB;AAAA,IACD;AAAA,IACA,CAAE,QAAS;AAAA,EACZ;AAEA,MAAK,EAAI,iBAAiB,kBAAoB;AAC7C,WAAO;AAAA,EACR;AAEA,SACC,oBAAC,SAAM,WAAU,sCAChB,+BAAC,UAAO,SAAU,GAAI,SAAQ,SAC7B;AAAA,wBAAC,QAAK,MAAO,QAAS;AAAA,IACtB,oBAAC,QACE,0BACC,GAAI,iBAAkB,IACtB,GAAI,wBAAyB,GACjC;AAAA,KACD,GACD;AAEF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
// packages/block-editor/src/components/block-visibility/menu-item.js
|
|
2
|
-
import { __, sprintf } from "@wordpress/i18n";
|
|
3
|
-
import { MenuItem } from "@wordpress/components";
|
|
4
|
-
import { seen, unseen } from "@wordpress/icons";
|
|
5
|
-
import { useSelect, useDispatch } from "@wordpress/data";
|
|
6
|
-
import { store as noticesStore } from "@wordpress/notices";
|
|
7
|
-
import { store as keyboardShortcutsStore } from "@wordpress/keyboard-shortcuts";
|
|
8
|
-
import { cleanEmptyObject } from "../../hooks/utils.mjs";
|
|
9
|
-
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
10
|
-
import { jsx } from "react/jsx-runtime";
|
|
11
|
-
function BlockVisibilityMenuItem({ clientIds }) {
|
|
12
|
-
const { updateBlockAttributes } = useDispatch(blockEditorStore);
|
|
13
|
-
const { createSuccessNotice } = useDispatch(noticesStore);
|
|
14
|
-
const blocks = useSelect(
|
|
15
|
-
(select) => {
|
|
16
|
-
return select(blockEditorStore).getBlocksByClientId(clientIds);
|
|
17
|
-
},
|
|
18
|
-
[clientIds]
|
|
19
|
-
);
|
|
20
|
-
const listViewShortcut = useSelect((select) => {
|
|
21
|
-
return select(keyboardShortcutsStore).getShortcutRepresentation(
|
|
22
|
-
"core/editor/toggle-list-view"
|
|
23
|
-
);
|
|
24
|
-
}, []);
|
|
25
|
-
const hasHiddenBlock = blocks.some(
|
|
26
|
-
(block) => block.attributes.metadata?.blockVisibility === false
|
|
27
|
-
);
|
|
28
|
-
const toggleBlockVisibility = () => {
|
|
29
|
-
const isHiding = !hasHiddenBlock;
|
|
30
|
-
const attributesByClientId = Object.fromEntries(
|
|
31
|
-
blocks?.map(({ clientId, attributes }) => [
|
|
32
|
-
clientId,
|
|
33
|
-
{
|
|
34
|
-
metadata: cleanEmptyObject({
|
|
35
|
-
...attributes?.metadata,
|
|
36
|
-
blockVisibility: isHiding ? false : void 0
|
|
37
|
-
})
|
|
38
|
-
}
|
|
39
|
-
])
|
|
40
|
-
);
|
|
41
|
-
updateBlockAttributes(clientIds, attributesByClientId, {
|
|
42
|
-
uniqueByBlock: true
|
|
43
|
-
});
|
|
44
|
-
if (isHiding) {
|
|
45
|
-
if (blocks.length > 1) {
|
|
46
|
-
createSuccessNotice(
|
|
47
|
-
sprintf(
|
|
48
|
-
// translators: %s: The shortcut key to access the List View.
|
|
49
|
-
__(
|
|
50
|
-
"Blocks hidden. You can access them via the List View (%s)."
|
|
51
|
-
),
|
|
52
|
-
listViewShortcut
|
|
53
|
-
),
|
|
54
|
-
{
|
|
55
|
-
id: "block-visibility-hidden",
|
|
56
|
-
type: "snackbar"
|
|
57
|
-
}
|
|
58
|
-
);
|
|
59
|
-
} else {
|
|
60
|
-
createSuccessNotice(
|
|
61
|
-
sprintf(
|
|
62
|
-
// translators: %s: The shortcut key to access the List View.
|
|
63
|
-
__(
|
|
64
|
-
"Block hidden. You can access it via the List View (%s)."
|
|
65
|
-
),
|
|
66
|
-
listViewShortcut
|
|
67
|
-
),
|
|
68
|
-
{
|
|
69
|
-
id: "block-visibility-hidden",
|
|
70
|
-
type: "snackbar"
|
|
71
|
-
}
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
return /* @__PURE__ */ jsx(
|
|
77
|
-
MenuItem,
|
|
78
|
-
{
|
|
79
|
-
icon: hasHiddenBlock ? seen : unseen,
|
|
80
|
-
onClick: toggleBlockVisibility,
|
|
81
|
-
children: hasHiddenBlock ? __("Show") : __("Hide")
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
export {
|
|
86
|
-
BlockVisibilityMenuItem as default
|
|
87
|
-
};
|
|
88
|
-
//# sourceMappingURL=menu-item.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/block-visibility/menu-item.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { MenuItem } from '@wordpress/components';\nimport { seen, unseen } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';\n\n/**\n * Internal dependencies\n */\nimport { cleanEmptyObject } from '../../hooks/utils';\nimport { store as blockEditorStore } from '../../store';\n\nexport default function BlockVisibilityMenuItem( { clientIds } ) {\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst blocks = useSelect(\n\t\t( select ) => {\n\t\t\treturn select( blockEditorStore ).getBlocksByClientId( clientIds );\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst listViewShortcut = useSelect( ( select ) => {\n\t\treturn select( keyboardShortcutsStore ).getShortcutRepresentation(\n\t\t\t'core/editor/toggle-list-view'\n\t\t);\n\t}, [] );\n\n\tconst hasHiddenBlock = blocks.some(\n\t\t( block ) => block.attributes.metadata?.blockVisibility === false\n\t);\n\n\tconst toggleBlockVisibility = () => {\n\t\tconst isHiding = ! hasHiddenBlock;\n\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tblocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.metadata,\n\t\t\t\t\t\tblockVisibility: isHiding ? false : undefined,\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t] )\n\t\t);\n\t\tupdateBlockAttributes( clientIds, attributesByClientId, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\n\t\tif ( isHiding ) {\n\t\t\tif ( blocks.length > 1 ) {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The shortcut key to access the List View.\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Blocks hidden. You can access them via the List View (%s).'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlistViewShortcut\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'block-visibility-hidden',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: The shortcut key to access the List View.\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Block hidden. You can access it via the List View (%s).'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlistViewShortcut\n\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'block-visibility-hidden',\n\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n\n\treturn (\n\t\t<MenuItem\n\t\t\ticon={ hasHiddenBlock ? seen : unseen }\n\t\t\tonClick={ toggleBlockVisibility }\n\t\t>\n\t\t\t{ hasHiddenBlock ? __( 'Show' ) : __( 'Hide' ) }\n\t\t</MenuItem>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,IAAI,eAAe;AAC5B,SAAS,gBAAgB;AACzB,SAAS,MAAM,cAAc;AAC7B,SAAS,WAAW,mBAAmB;AACvC,SAAS,SAAS,oBAAoB;AACtC,SAAS,SAAS,8BAA8B;AAKhD,SAAS,wBAAwB;AACjC,SAAS,SAAS,wBAAwB;AA0ExC;AAxEa,SAAR,wBAA0C,EAAE,UAAU,GAAI;AAChE,QAAM,EAAE,sBAAsB,IAAI,YAAa,gBAAiB;AAChE,QAAM,EAAE,oBAAoB,IAAI,YAAa,YAAa;AAC1D,QAAM,SAAS;AAAA,IACd,CAAE,WAAY;AACb,aAAO,OAAQ,gBAAiB,EAAE,oBAAqB,SAAU;AAAA,IAClE;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,mBAAmB,UAAW,CAAE,WAAY;AACjD,WAAO,OAAQ,sBAAuB,EAAE;AAAA,MACvC;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,iBAAiB,OAAO;AAAA,IAC7B,CAAE,UAAW,MAAM,WAAW,UAAU,oBAAoB;AAAA,EAC7D;AAEA,QAAM,wBAAwB,MAAM;AACnC,UAAM,WAAW,CAAE;AAEnB,UAAM,uBAAuB,OAAO;AAAA,MACnC,QAAQ,IAAK,CAAE,EAAE,UAAU,WAAW,MAAO;AAAA,QAC5C;AAAA,QACA;AAAA,UACC,UAAU,iBAAkB;AAAA,YAC3B,GAAG,YAAY;AAAA,YACf,iBAAiB,WAAW,QAAQ;AAAA,UACrC,CAAE;AAAA,QACH;AAAA,MACD,CAAE;AAAA,IACH;AACA,0BAAuB,WAAW,sBAAsB;AAAA,MACvD,eAAe;AAAA,IAChB,CAAE;AAEF,QAAK,UAAW;AACf,UAAK,OAAO,SAAS,GAAI;AACxB;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,cACC;AAAA,YACD;AAAA,YACA;AAAA,UACD;AAAA,UACA;AAAA,YACC,IAAI;AAAA,YACJ,MAAM;AAAA,UACP;AAAA,QACD;AAAA,MACD,OAAO;AACN;AAAA,UACC;AAAA;AAAA,YAEC;AAAA,cACC;AAAA,YACD;AAAA,YACA;AAAA,UACD;AAAA,UACA;AAAA,YACC,IAAI;AAAA,YACJ,MAAM;AAAA,UACP;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SACC;AAAA,IAAC;AAAA;AAAA,MACA,MAAO,iBAAiB,OAAO;AAAA,MAC/B,SAAU;AAAA,MAER,2BAAiB,GAAI,MAAO,IAAI,GAAI,MAAO;AAAA;AAAA,EAC9C;AAEF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
// packages/block-editor/src/components/block-visibility/toolbar.js
|
|
2
|
-
import { __ } from "@wordpress/i18n";
|
|
3
|
-
import { ToolbarButton, ToolbarGroup } from "@wordpress/components";
|
|
4
|
-
import { useRef, useEffect } from "@wordpress/element";
|
|
5
|
-
import { seen, unseen } from "@wordpress/icons";
|
|
6
|
-
import { useSelect, useDispatch } from "@wordpress/data";
|
|
7
|
-
import { hasBlockSupport } from "@wordpress/blocks";
|
|
8
|
-
import { store as blockEditorStore } from "../../store/index.mjs";
|
|
9
|
-
import { cleanEmptyObject } from "../../hooks/utils.mjs";
|
|
10
|
-
import { Fragment, jsx } from "react/jsx-runtime";
|
|
11
|
-
function BlockVisibilityToolbar({ clientIds }) {
|
|
12
|
-
const { blocks, canToggleBlockVisibility } = useSelect(
|
|
13
|
-
(select) => {
|
|
14
|
-
const { getBlockName, getBlocksByClientId } = select(blockEditorStore);
|
|
15
|
-
const _blocks = getBlocksByClientId(clientIds);
|
|
16
|
-
return {
|
|
17
|
-
blocks: _blocks,
|
|
18
|
-
canToggleBlockVisibility: _blocks.every(
|
|
19
|
-
({ clientId }) => hasBlockSupport(
|
|
20
|
-
getBlockName(clientId),
|
|
21
|
-
"visibility",
|
|
22
|
-
true
|
|
23
|
-
)
|
|
24
|
-
)
|
|
25
|
-
};
|
|
26
|
-
},
|
|
27
|
-
[clientIds]
|
|
28
|
-
);
|
|
29
|
-
const hasHiddenBlock = blocks.some(
|
|
30
|
-
(block) => block.attributes.metadata?.blockVisibility === false
|
|
31
|
-
);
|
|
32
|
-
const hasBlockVisibilityButtonShownRef = useRef(false);
|
|
33
|
-
const { updateBlockAttributes } = useDispatch(blockEditorStore);
|
|
34
|
-
useEffect(() => {
|
|
35
|
-
if (hasHiddenBlock) {
|
|
36
|
-
hasBlockVisibilityButtonShownRef.current = true;
|
|
37
|
-
}
|
|
38
|
-
}, [hasHiddenBlock]);
|
|
39
|
-
if (!hasHiddenBlock && !hasBlockVisibilityButtonShownRef.current) {
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
const toggleBlockVisibility = () => {
|
|
43
|
-
const attributesByClientId = Object.fromEntries(
|
|
44
|
-
blocks?.map(({ clientId, attributes }) => [
|
|
45
|
-
clientId,
|
|
46
|
-
{
|
|
47
|
-
metadata: cleanEmptyObject({
|
|
48
|
-
...attributes?.metadata,
|
|
49
|
-
blockVisibility: hasHiddenBlock ? void 0 : false
|
|
50
|
-
})
|
|
51
|
-
}
|
|
52
|
-
])
|
|
53
|
-
);
|
|
54
|
-
updateBlockAttributes(clientIds, attributesByClientId, {
|
|
55
|
-
uniqueByBlock: true
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(ToolbarGroup, { children: /* @__PURE__ */ jsx(
|
|
59
|
-
ToolbarButton,
|
|
60
|
-
{
|
|
61
|
-
disabled: !canToggleBlockVisibility,
|
|
62
|
-
icon: hasHiddenBlock ? unseen : seen,
|
|
63
|
-
label: hasHiddenBlock ? __("Hidden") : __("Visible"),
|
|
64
|
-
onClick: toggleBlockVisibility
|
|
65
|
-
}
|
|
66
|
-
) }) });
|
|
67
|
-
}
|
|
68
|
-
export {
|
|
69
|
-
BlockVisibilityToolbar as default
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=toolbar.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/components/block-visibility/toolbar.js"],
|
|
4
|
-
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { ToolbarButton, ToolbarGroup } from '@wordpress/components';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { seen, unseen } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { hasBlockSupport } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { cleanEmptyObject } from '../../hooks/utils';\n\nexport default function BlockVisibilityToolbar( { clientIds } ) {\n\tconst { blocks, canToggleBlockVisibility } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockName, getBlocksByClientId } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst _blocks = getBlocksByClientId( clientIds );\n\t\t\treturn {\n\t\t\t\tblocks: _blocks,\n\t\t\t\tcanToggleBlockVisibility: _blocks.every( ( { clientId } ) =>\n\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'visibility',\n\t\t\t\t\t\ttrue\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\n\tconst hasHiddenBlock = blocks.some(\n\t\t( block ) => block.attributes.metadata?.blockVisibility === false\n\t);\n\n\tconst hasBlockVisibilityButtonShownRef = useRef( false );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\t// If the block visibility button has been shown, we don't want to\n\t// remove it from the toolbar until the toolbar is rendered again\n\t// without it. Removing it beforehand can cause focus loss issues.\n\t// It needs to return focus from whence it came, and to do that,\n\t// we need to leave the button in the toolbar.\n\tuseEffect( () => {\n\t\tif ( hasHiddenBlock ) {\n\t\t\thasBlockVisibilityButtonShownRef.current = true;\n\t\t}\n\t}, [ hasHiddenBlock ] );\n\n\tif ( ! hasHiddenBlock && ! hasBlockVisibilityButtonShownRef.current ) {\n\t\treturn null;\n\t}\n\n\tconst toggleBlockVisibility = () => {\n\t\tconst attributesByClientId = Object.fromEntries(\n\t\t\tblocks?.map( ( { clientId, attributes } ) => [\n\t\t\t\tclientId,\n\t\t\t\t{\n\t\t\t\t\tmetadata: cleanEmptyObject( {\n\t\t\t\t\t\t...attributes?.metadata,\n\t\t\t\t\t\tblockVisibility: hasHiddenBlock ? undefined : false,\n\t\t\t\t\t} ),\n\t\t\t\t},\n\t\t\t] )\n\t\t);\n\t\tupdateBlockAttributes( clientIds, attributesByClientId, {\n\t\t\tuniqueByBlock: true,\n\t\t} );\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tdisabled={ ! canToggleBlockVisibility }\n\t\t\t\t\ticon={ hasHiddenBlock ? unseen : seen }\n\t\t\t\t\tlabel={ hasHiddenBlock ? __( 'Hidden' ) : __( 'Visible' ) }\n\t\t\t\t\tonClick={ toggleBlockVisibility }\n\t\t\t\t/>\n\t\t\t</ToolbarGroup>\n\t\t</>\n\t);\n}\n"],
|
|
5
|
-
"mappings": ";AAGA,SAAS,UAAU;AACnB,SAAS,eAAe,oBAAoB;AAC5C,SAAS,QAAQ,iBAAiB;AAClC,SAAS,MAAM,cAAc;AAC7B,SAAS,WAAW,mBAAmB;AACvC,SAAS,uBAAuB;AAKhC,SAAS,SAAS,wBAAwB;AAC1C,SAAS,wBAAwB;AA8D/B,mBAEE,WAFF;AA5Da,SAAR,uBAAyC,EAAE,UAAU,GAAI;AAC/D,QAAM,EAAE,QAAQ,yBAAyB,IAAI;AAAA,IAC5C,CAAE,WAAY;AACb,YAAM,EAAE,cAAc,oBAAoB,IACzC,OAAQ,gBAAiB;AAC1B,YAAM,UAAU,oBAAqB,SAAU;AAC/C,aAAO;AAAA,QACN,QAAQ;AAAA,QACR,0BAA0B,QAAQ;AAAA,UAAO,CAAE,EAAE,SAAS,MACrD;AAAA,YACC,aAAc,QAAS;AAAA,YACvB;AAAA,YACA;AAAA,UACD;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAE,SAAU;AAAA,EACb;AAEA,QAAM,iBAAiB,OAAO;AAAA,IAC7B,CAAE,UAAW,MAAM,WAAW,UAAU,oBAAoB;AAAA,EAC7D;AAEA,QAAM,mCAAmC,OAAQ,KAAM;AACvD,QAAM,EAAE,sBAAsB,IAAI,YAAa,gBAAiB;AAOhE,YAAW,MAAM;AAChB,QAAK,gBAAiB;AACrB,uCAAiC,UAAU;AAAA,IAC5C;AAAA,EACD,GAAG,CAAE,cAAe,CAAE;AAEtB,MAAK,CAAE,kBAAkB,CAAE,iCAAiC,SAAU;AACrE,WAAO;AAAA,EACR;AAEA,QAAM,wBAAwB,MAAM;AACnC,UAAM,uBAAuB,OAAO;AAAA,MACnC,QAAQ,IAAK,CAAE,EAAE,UAAU,WAAW,MAAO;AAAA,QAC5C;AAAA,QACA;AAAA,UACC,UAAU,iBAAkB;AAAA,YAC3B,GAAG,YAAY;AAAA,YACf,iBAAiB,iBAAiB,SAAY;AAAA,UAC/C,CAAE;AAAA,QACH;AAAA,MACD,CAAE;AAAA,IACH;AACA,0BAAuB,WAAW,sBAAsB;AAAA,MACvD,eAAe;AAAA,IAChB,CAAE;AAAA,EACH;AAEA,SACC,gCACC,8BAAC,gBACA;AAAA,IAAC;AAAA;AAAA,MACA,UAAW,CAAE;AAAA,MACb,MAAO,iBAAiB,SAAS;AAAA,MACjC,OAAQ,iBAAiB,GAAI,QAAS,IAAI,GAAI,SAAU;AAAA,MACxD,SAAU;AAAA;AAAA,EACX,GACD,GACD;AAEF;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import {
|
|
5
|
-
Icon,
|
|
6
|
-
__experimentalText as Text,
|
|
7
|
-
__experimentalHStack as HStack,
|
|
8
|
-
privateApis as componentsPrivateApis,
|
|
9
|
-
} from '@wordpress/components';
|
|
10
|
-
import { useSelect } from '@wordpress/data';
|
|
11
|
-
import { __ } from '@wordpress/i18n';
|
|
12
|
-
import { unseen } from '@wordpress/icons';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Internal dependencies
|
|
16
|
-
*/
|
|
17
|
-
import { unlock } from '../../lock-unlock';
|
|
18
|
-
import { store as blockEditorStore } from '../../store';
|
|
19
|
-
|
|
20
|
-
const { Badge } = unlock( componentsPrivateApis );
|
|
21
|
-
|
|
22
|
-
export default function BlockVisibilityInfo( { clientId } ) {
|
|
23
|
-
const { isBlockHidden, hasHiddenParent } = useSelect(
|
|
24
|
-
( select ) => {
|
|
25
|
-
if ( ! clientId ) {
|
|
26
|
-
return { isBlockHidden: false, hasHiddenParent: false };
|
|
27
|
-
}
|
|
28
|
-
const { isBlockHidden: _isBlockHidden, getBlockParents } = unlock(
|
|
29
|
-
select( blockEditorStore )
|
|
30
|
-
);
|
|
31
|
-
|
|
32
|
-
const blockHidden = _isBlockHidden( clientId );
|
|
33
|
-
const parents = getBlockParents( clientId );
|
|
34
|
-
const parentHidden = parents.some( ( parentId ) =>
|
|
35
|
-
_isBlockHidden( parentId )
|
|
36
|
-
);
|
|
37
|
-
|
|
38
|
-
return {
|
|
39
|
-
isBlockHidden: blockHidden,
|
|
40
|
-
hasHiddenParent: parentHidden,
|
|
41
|
-
};
|
|
42
|
-
},
|
|
43
|
-
[ clientId ]
|
|
44
|
-
);
|
|
45
|
-
|
|
46
|
-
if ( ! ( isBlockHidden || hasHiddenParent ) ) {
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return (
|
|
51
|
-
<Badge className="block-editor-block-visibility-info">
|
|
52
|
-
<HStack spacing={ 2 } justify="start">
|
|
53
|
-
<Icon icon={ unseen } />
|
|
54
|
-
<Text>
|
|
55
|
-
{ isBlockHidden
|
|
56
|
-
? __( 'Block is hidden' )
|
|
57
|
-
: __( 'Parent block is hidden' ) }
|
|
58
|
-
</Text>
|
|
59
|
-
</HStack>
|
|
60
|
-
</Badge>
|
|
61
|
-
);
|
|
62
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress dependencies
|
|
3
|
-
*/
|
|
4
|
-
import { __, sprintf } from '@wordpress/i18n';
|
|
5
|
-
import { MenuItem } from '@wordpress/components';
|
|
6
|
-
import { seen, unseen } from '@wordpress/icons';
|
|
7
|
-
import { useSelect, useDispatch } from '@wordpress/data';
|
|
8
|
-
import { store as noticesStore } from '@wordpress/notices';
|
|
9
|
-
import { store as keyboardShortcutsStore } from '@wordpress/keyboard-shortcuts';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Internal dependencies
|
|
13
|
-
*/
|
|
14
|
-
import { cleanEmptyObject } from '../../hooks/utils';
|
|
15
|
-
import { store as blockEditorStore } from '../../store';
|
|
16
|
-
|
|
17
|
-
export default function BlockVisibilityMenuItem( { clientIds } ) {
|
|
18
|
-
const { updateBlockAttributes } = useDispatch( blockEditorStore );
|
|
19
|
-
const { createSuccessNotice } = useDispatch( noticesStore );
|
|
20
|
-
const blocks = useSelect(
|
|
21
|
-
( select ) => {
|
|
22
|
-
return select( blockEditorStore ).getBlocksByClientId( clientIds );
|
|
23
|
-
},
|
|
24
|
-
[ clientIds ]
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
const listViewShortcut = useSelect( ( select ) => {
|
|
28
|
-
return select( keyboardShortcutsStore ).getShortcutRepresentation(
|
|
29
|
-
'core/editor/toggle-list-view'
|
|
30
|
-
);
|
|
31
|
-
}, [] );
|
|
32
|
-
|
|
33
|
-
const hasHiddenBlock = blocks.some(
|
|
34
|
-
( block ) => block.attributes.metadata?.blockVisibility === false
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
const toggleBlockVisibility = () => {
|
|
38
|
-
const isHiding = ! hasHiddenBlock;
|
|
39
|
-
|
|
40
|
-
const attributesByClientId = Object.fromEntries(
|
|
41
|
-
blocks?.map( ( { clientId, attributes } ) => [
|
|
42
|
-
clientId,
|
|
43
|
-
{
|
|
44
|
-
metadata: cleanEmptyObject( {
|
|
45
|
-
...attributes?.metadata,
|
|
46
|
-
blockVisibility: isHiding ? false : undefined,
|
|
47
|
-
} ),
|
|
48
|
-
},
|
|
49
|
-
] )
|
|
50
|
-
);
|
|
51
|
-
updateBlockAttributes( clientIds, attributesByClientId, {
|
|
52
|
-
uniqueByBlock: true,
|
|
53
|
-
} );
|
|
54
|
-
|
|
55
|
-
if ( isHiding ) {
|
|
56
|
-
if ( blocks.length > 1 ) {
|
|
57
|
-
createSuccessNotice(
|
|
58
|
-
sprintf(
|
|
59
|
-
// translators: %s: The shortcut key to access the List View.
|
|
60
|
-
__(
|
|
61
|
-
'Blocks hidden. You can access them via the List View (%s).'
|
|
62
|
-
),
|
|
63
|
-
listViewShortcut
|
|
64
|
-
),
|
|
65
|
-
{
|
|
66
|
-
id: 'block-visibility-hidden',
|
|
67
|
-
type: 'snackbar',
|
|
68
|
-
}
|
|
69
|
-
);
|
|
70
|
-
} else {
|
|
71
|
-
createSuccessNotice(
|
|
72
|
-
sprintf(
|
|
73
|
-
// translators: %s: The shortcut key to access the List View.
|
|
74
|
-
__(
|
|
75
|
-
'Block hidden. You can access it via the List View (%s).'
|
|
76
|
-
),
|
|
77
|
-
listViewShortcut
|
|
78
|
-
),
|
|
79
|
-
{
|
|
80
|
-
id: 'block-visibility-hidden',
|
|
81
|
-
type: 'snackbar',
|
|
82
|
-
}
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
return (
|
|
89
|
-
<MenuItem
|
|
90
|
-
icon={ hasHiddenBlock ? seen : unseen }
|
|
91
|
-
onClick={ toggleBlockVisibility }
|
|
92
|
-
>
|
|
93
|
-
{ hasHiddenBlock ? __( 'Show' ) : __( 'Hide' ) }
|
|
94
|
-
</MenuItem>
|
|
95
|
-
);
|
|
96
|
-
}
|