@wordpress/block-editor 15.10.1-next.v.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/CHANGELOG.md +2 -0
- package/build/components/block-controls/index.cjs +1 -1
- package/build/components/block-controls/index.cjs.map +2 -2
- package/build/components/block-edit/context.cjs +5 -0
- package/build/components/block-edit/context.cjs.map +2 -2
- package/build/components/block-edit/index.cjs +3 -0
- package/build/components/block-edit/index.cjs.map +2 -2
- package/build/components/block-inspector/index.cjs +7 -27
- package/build/components/block-inspector/index.cjs.map +3 -3
- package/build/components/block-list/block.cjs +3 -0
- package/build/components/block-list/block.cjs.map +2 -2
- 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/button-block-appender/index.cjs +23 -19
- package/build/components/button-block-appender/index.cjs.map +2 -2
- 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/font-size-picker.cjs +2 -1
- package/build/components/font-sizes/font-size-picker.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 +14 -25
- 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 +7 -7
- 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/block-fields/index.cjs +52 -86
- package/build/hooks/block-fields/index.cjs.map +3 -3
- package/build/hooks/block-fields/link/index.cjs +2 -11
- package/build/hooks/block-fields/link/index.cjs.map +2 -2
- package/build/hooks/block-fields/media/index.cjs +9 -14
- package/build/hooks/block-fields/media/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 +6 -1
- 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 +32 -11
- package/build/hooks/list-view.cjs.map +3 -3
- package/build/hooks/utils.cjs +5 -4
- 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/store/selectors.cjs +7 -1
- package/build/store/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-edit/context.mjs +4 -0
- package/build-module/components/block-edit/context.mjs.map +2 -2
- package/build-module/components/block-edit/index.mjs +4 -0
- package/build-module/components/block-edit/index.mjs.map +2 -2
- package/build-module/components/block-inspector/index.mjs +7 -27
- package/build-module/components/block-inspector/index.mjs.map +2 -2
- package/build-module/components/block-list/block.mjs +3 -0
- package/build-module/components/block-list/block.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/button-block-appender/index.mjs +23 -19
- package/build-module/components/button-block-appender/index.mjs.map +2 -2
- 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/font-size-picker.mjs +2 -1
- package/build-module/components/font-sizes/font-size-picker.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 +16 -22
- 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 +7 -7
- 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/block-fields/index.mjs +45 -87
- package/build-module/hooks/block-fields/index.mjs.map +2 -2
- package/build-module/hooks/block-fields/link/index.mjs +2 -11
- package/build-module/hooks/block-fields/link/index.mjs.map +2 -2
- package/build-module/hooks/block-fields/media/index.mjs +9 -14
- package/build-module/hooks/block-fields/media/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 +6 -1
- 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 +33 -12
- package/build-module/hooks/list-view.mjs.map +2 -2
- package/build-module/hooks/utils.mjs +7 -5
- 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/store/selectors.mjs +7 -1
- package/build-module/store/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/context.js +3 -0
- package/src/components/block-edit/index.js +6 -0
- package/src/components/block-edit/test/edit.js +10 -0
- package/src/components/block-inspector/index.js +16 -38
- package/src/components/block-list/block.js +3 -0
- package/src/components/block-list/block.native.js +5 -0
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +49 -29
- package/src/components/block-patterns-list/stories/index.story.jsx +1 -1
- 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/button-block-appender/index.js +2 -2
- 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/font-size-picker.js +1 -0
- 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 +30 -20
- 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 +13 -11
- 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/block-fields/index.js +66 -111
- package/src/hooks/block-fields/link/index.js +2 -14
- package/src/hooks/block-fields/media/index.js +9 -21
- 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 +6 -1
- package/src/hooks/layout.js +55 -43
- package/src/hooks/list-view.js +46 -12
- 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 +124 -116
- 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/selectors.js +14 -6
- 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
- /package/src/components/block-icon/stories/{index.story.js → index.story.ts} +0 -0
- /package/src/components/contrast-checker/stories/{index.story.js → index.story.ts} +0 -0
|
@@ -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
|
-
}
|