@wordpress/block-editor 14.3.4 → 14.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +4 -0
- package/build/autocompleters/link.js +2 -1
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/block-actions/index.js +1 -13
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-inspector/index.js +56 -75
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +5 -19
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +5 -8
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +5 -3
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list/zoom-out-separator.js +14 -6
- package/build/components/block-list/zoom-out-separator.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +2 -4
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-parent-selector/index.js +13 -10
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +11 -13
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +2 -4
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -6
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +17 -14
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +16 -19
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
- package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build/components/block-tools/index.js +8 -11
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +1 -4
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -5
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +2 -12
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/block-variation-picker/index.js +2 -4
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +3 -4
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +2 -4
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +2 -4
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/global-styles/border-panel.js +1 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -4
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +3 -3
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -4
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +24 -29
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/inner-blocks/index.js +1 -9
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +1 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +24 -5
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +22 -12
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +23 -10
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +35 -13
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/menu.js +2 -2
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +5 -5
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -4
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +11 -8
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +4 -8
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/link-control/index.js +5 -10
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +2 -4
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/block-contents.js +1 -25
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +1 -4
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +12 -24
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +2 -4
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/tool-selector/index.js +13 -12
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-input/button.js +14 -16
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +2 -4
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +0 -61
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +2 -25
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/duotone.js +4 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/layout-child.js +3 -1
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +3 -2
- package/build/hooks/position.js.map +1 -1
- package/build/layouts/flex.js +6 -38
- package/build/layouts/flex.js.map +1 -1
- package/build/store/actions.js +13 -14
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +15 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +104 -7
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +22 -26
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +127 -56
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +4 -3
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +2 -0
- package/build/utils/block-bindings.js.map +1 -1
- package/build-module/autocompleters/link.js +2 -1
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/block-actions/index.js +1 -13
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +57 -76
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -19
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +5 -8
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +5 -3
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list/zoom-out-separator.js +14 -6
- package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +2 -4
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +13 -10
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +10 -20
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +11 -13
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +2 -4
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +79 -76
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +2 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +17 -14
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +17 -20
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
- package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build-module/components/block-tools/index.js +8 -11
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +1 -4
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -5
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +2 -12
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +2 -4
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +3 -4
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +2 -4
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +2 -4
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +1 -1
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +2 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +1 -1
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -4
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +25 -30
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +1 -9
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +1 -1
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +23 -10
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +35 -13
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/menu.js +2 -2
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +6 -6
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +4 -4
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +12 -9
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +4 -8
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/link-control/index.js +5 -10
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +2 -4
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +1 -25
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -5
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +12 -24
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +2 -4
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +13 -12
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-input/button.js +15 -17
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +2 -4
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +1 -62
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +3 -26
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/layout-child.js +4 -1
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/layouts/flex.js +7 -39
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/store/actions.js +12 -12
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +14 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +98 -7
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +21 -25
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +129 -58
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +3 -2
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/block-bindings.js +2 -0
- package/build-module/utils/block-bindings.js.map +1 -1
- package/build-style/content-rtl.css +14 -56
- package/build-style/content.css +14 -56
- package/build-style/default-editor-styles-rtl.css +10 -1
- package/build-style/default-editor-styles.css +10 -1
- package/build-style/style-rtl.css +51 -149
- package/build-style/style.css +51 -149
- package/package.json +32 -32
- package/src/autocompleters/link.js +2 -1
- package/src/components/block-actions/index.js +1 -13
- package/src/components/block-draggable/style.scss +2 -2
- package/src/components/block-inspector/index.js +79 -95
- package/src/components/block-inspector/style.scss +2 -0
- package/src/components/block-list/block.js +7 -28
- package/src/components/block-list/content.scss +1 -61
- package/src/components/block-list/index.js +21 -29
- package/src/components/block-list/use-block-props/index.js +3 -10
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +19 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -2
- package/src/components/block-list/zoom-out-separator.js +24 -8
- package/src/components/block-navigation/dropdown.js +1 -2
- package/src/components/block-parent-selector/index.js +13 -10
- package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
- package/src/components/block-patterns-paging/index.js +8 -7
- package/src/components/block-patterns-paging/style.scss +10 -27
- package/src/components/block-quick-navigation/index.js +1 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
- package/src/components/block-settings-menu-controls/index.js +0 -15
- package/src/components/block-switcher/index.js +37 -30
- package/src/components/block-toolbar/index.js +22 -34
- package/src/components/block-toolbar/style.scss +10 -1
- package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
- package/src/components/block-tools/index.js +7 -16
- package/src/components/block-tools/insertion-point.js +1 -4
- package/src/components/block-tools/style.scss +3 -88
- package/src/components/block-tools/use-show-block-tools.js +2 -12
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
- package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
- package/src/components/block-tools/zoom-out-toolbar.js +2 -13
- package/src/components/block-variation-picker/index.js +1 -2
- package/src/components/block-variation-transforms/index.js +2 -2
- package/src/components/button-block-appender/content.scss +0 -5
- package/src/components/button-block-appender/index.js +1 -2
- package/src/components/colors-gradients/dropdown.js +1 -5
- package/src/components/font-family/README.md +5 -1
- package/src/components/global-styles/border-panel.js +1 -1
- package/src/components/global-styles/color-panel.js +1 -5
- package/src/components/global-styles/dimensions-panel.js +1 -1
- package/src/components/global-styles/filters-panel.js +1 -2
- package/src/components/global-styles/shadow-panel-components.js +28 -33
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/inner-blocks/index.js +1 -16
- package/src/components/inserter/block-types-tab.js +1 -1
- package/src/components/inserter/hooks/use-block-types-state.js +34 -14
- package/src/components/inserter/hooks/use-insertion-point.js +35 -13
- package/src/components/inserter/hooks/use-patterns-state.js +46 -9
- package/src/components/inserter/media-tab/media-preview.js +38 -12
- package/src/components/inserter/menu.js +2 -2
- package/src/components/inserter/mobile-tab-navigation.js +10 -13
- package/src/components/inserter/quick-inserter.js +5 -4
- package/src/components/inserter/style.scss +0 -28
- package/src/components/inspector-controls-tabs/index.js +21 -20
- package/src/components/inspector-controls-tabs/style.scss +2 -6
- package/src/components/inspector-popover-header/index.js +2 -4
- package/src/components/inspector-popover-header/style.scss +0 -13
- package/src/components/link-control/index.js +2 -5
- package/src/components/link-control/settings-drawer.js +1 -2
- package/src/components/list-view/block-contents.js +1 -28
- package/src/components/list-view/block-select-button.js +2 -5
- package/src/components/list-view/style.scss +18 -14
- package/src/components/media-placeholder/index.js +6 -12
- package/src/components/skip-to-selected-block/index.js +1 -2
- package/src/components/skip-to-selected-block/style.scss +0 -9
- package/src/components/tool-selector/index.js +14 -9
- package/src/components/tool-selector/style.scss +5 -0
- package/src/components/url-input/button.js +16 -12
- package/src/components/url-input/index.js +1 -2
- package/src/components/url-input/style.scss +0 -6
- package/src/components/use-block-commands/index.js +0 -58
- package/src/components/writing-flow/use-tab-nav.js +4 -36
- package/src/content.scss +0 -1
- package/src/hooks/duotone.js +4 -1
- package/src/hooks/layout-child.js +4 -1
- package/src/hooks/position.js +4 -1
- package/src/layouts/flex.js +10 -53
- package/src/store/actions.js +14 -13
- package/src/store/private-actions.js +14 -0
- package/src/store/private-selectors.js +120 -16
- package/src/store/reducer.js +22 -28
- package/src/store/selectors.js +203 -114
- package/src/store/test/private-actions.js +15 -0
- package/src/store/test/private-selectors.js +34 -0
- package/src/store/test/reducer.js +40 -4
- package/src/store/test/selectors.js +183 -20
- package/src/store/utils.js +4 -2
- package/src/utils/block-bindings.js +2 -0
- package/build/components/block-controls/use-has-block-controls.js +0 -43
- package/build/components/block-controls/use-has-block-controls.js.map +0 -1
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
- package/build/components/block-tools/block-selection-button.js +0 -259
- package/build/components/block-tools/block-selection-button.js.map +0 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
- package/build/components/inserter/tabs.js +0 -78
- package/build/components/inserter/tabs.js.map +0 -1
- package/build-module/components/block-controls/use-has-block-controls.js +0 -34
- package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
- package/build-module/components/block-tools/block-selection-button.js +0 -254
- package/build-module/components/block-tools/block-selection-button.js.map +0 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
- package/build-module/components/inserter/tabs.js +0 -72
- package/build-module/components/inserter/tabs.js.map +0 -1
- package/src/components/block-controls/use-has-block-controls.js +0 -35
- package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
- package/src/components/block-tools/block-selection-button.js +0 -302
- package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
- package/src/components/inner-blocks/content.scss +0 -13
- package/src/components/inserter/tabs.js +0 -78
- package/src/components/inserter/test/block-types-tab.native.js +0 -67
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_blocks","_components","_data","_compose","_dom","_blockEdit","_blockInvalidWarning","_blockCrashWarning","_blockCrashBoundary","_blockHtml","_useBlockProps","_store","_layout","_privateBlockContext","_lockUnlock","_jsxRuntime","isUnmodifiedBlockContent","unlock","blocksPrivateApis","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","clsx","style","Block","children","isHtml","props","jsx","useBlockProps","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","useContext","PrivateBlockContext","removeBlock","useDispatch","blockEditorStore","onRemove","useCallback","parentLayout","useLayout","blockEdit","default","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","isPreviewMode","blockType","getBlockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","serializeRawBlock","getSaveContent","jsxs","RawHTML","safeHTML","Fragment","display","apiVersion","dataAlign","restWrapperProps","updatedWrapperProps","Provider","value","fallback","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","selectBlock","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","switchToDefaultOrRemove","defaultBlockName","getDefaultBlockName","replacement","switchToBlockType","isUnmodifiedDefaultBlock","nextBlockClientId","batch","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","isUnmodifiedBlock","firstBlock","isFirstBlockContentUnmodified","canTransformToDefaultBlock","every","canLiftAndTransformToDefaultBlock","nextRootClientId","rootAttributes","previousRootAttributes","key","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","compose","withFilters","BlockListBlockProvider","selectedProps","useSelect","isBlockSelected","getBlockMode","getTemplateLock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","getTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","getBlocksByName","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","hasBlockMovingClientId","__unstableHasActiveBlockOverlayActive","__unstableGetEditorMode","getSelectedBlocksInitialCaretPosition","blockWithoutAttributes","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","blocksStore","blockName","supportsLayout","__unstableIsPreviewMode","hasLightBlockWrapper","previewContext","isReusable","isReusableBlock","defaultClassName","getBlockDefaultClassName","blockTitle","title","_isSelected","canMove","match","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","movingClientId","multiple","blocksWithSameName","isInvalid","editorMode","templateLock","isTemporarilyEditingAsBlocks","id","blockApiVersion","isSubtreeDisabled","hasOverlay","isHighlighted","isPartiallySelected","hasChildSelected","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","originalBlockClientId","useMemo","privateContext","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\thasBlockSupport,\n\tstore as blocksStore,\n\tprivateApis as blocksPrivateApis,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\nconst { isUnmodifiedBlockContent } = unlock( blocksPrivateApis );\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = clsx( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t\tisPreviewMode={ context.isPreviewMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\tconst updatedWrapperProps = {\n\t\t...restWrapperProps,\n\t\tclassName: clsx(\n\t\t\trestWrapperProps.className,\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\t! ( dataAlign && isSticky ) && className\n\t\t),\n\t};\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: updatedWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tselectBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\tfunction switchToDefaultOrRemove() {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\tif ( getBlockName( clientId ) !== defaultBlockName ) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tblock,\n\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t} else if ( isUnmodifiedDefaultBlock( block ) ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tconst firstBlock = getBlock( firstClientId );\n\t\t\t\t\t\tconst isFirstBlockContentUnmodified =\n\t\t\t\t\t\t\tisUnmodifiedBlockContent( firstBlock );\n\t\t\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\tfirstBlock,\n\t\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst canTransformToDefaultBlock =\n\t\t\t\t\t\t\t!! replacement?.length &&\n\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\tcanInsertBlockType( block.name, _clientId )\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tisFirstBlockContentUnmodified &&\n\t\t\t\t\t\t\tcanTransformToDefaultBlock\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 1: If the block is empty and can be transformed to the default block type.\n\t\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\t\tfirstClientId,\n\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tisFirstBlockContentUnmodified &&\n\t\t\t\t\t\t\tfirstBlock.name === defaultBlockName\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 2: If the block is empty and is already the default block type.\n\t\t\t\t\t\t\tremoveBlock( firstClientId );\n\t\t\t\t\t\t\tconst nextBlockClientId =\n\t\t\t\t\t\t\t\tgetNextBlockClientId( clientId );\n\t\t\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 3: If the block can be moved up.\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst canLiftAndTransformToDefaultBlock =\n\t\t\t\t\t\t\t\t!! replacement?.length &&\n\t\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( canLiftAndTransformToDefaultBlock ) {\n\t\t\t\t\t\t\t\t// Step 4: If the block can be transformed to the default block type and moved up.\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Step 5: Continue the default behavior.\n\t\t\t\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlocksByName,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\thasBlockMovingClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst { supportsLayout, __unstableIsPreviewMode: isPreviewMode } =\n\t\t\t\tgetSettings();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst previewContext = {\n\t\t\t\tisPreviewMode,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t\tblockTitle: blockType?.title,\n\t\t\t};\n\n\t\t\t// When in preview mode, we can avoid a lot of selection and\n\t\t\t// editing related selectors.\n\t\t\tif ( isPreviewMode ) {\n\t\t\t\treturn previewContext;\n\t\t\t}\n\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId );\n\t\t\tconst canMove = canMoveBlock( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst movingClientId = hasBlockMovingClientId();\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\tconst multiple = hasBlockSupport( blockName, 'multiple', true );\n\n\t\t\t// For block types with `multiple` support, there is no \"original\n\t\t\t// block\" to be found in the content, as the block itself is valid.\n\t\t\tconst blocksWithSameName = multiple\n\t\t\t\t? []\n\t\t\t\t: getBlocksByName( blockName );\n\t\t\tconst isInvalid =\n\t\t\t\tblocksWithSameName.length &&\n\t\t\t\tblocksWithSameName[ 0 ] !== clientId;\n\n\t\t\tconst editorMode = __unstableGetEditorMode();\n\n\t\t\treturn {\n\t\t\t\t...previewContext,\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\ttemplateLock: getTemplateLock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\tgetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\teditorMode,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition:\n\t\t\t\t\t_isSelected &&\n\t\t\t\t\t( editorMode === 'edit' || editorMode === 'zoom-out' ) // Don't recalculate the initialPosition when toggling in/out of zoom-out mode\n\t\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tisBlockMovingMode: !! movingClientId,\n\t\t\t\tcanInsertMovingBlock:\n\t\t\t\t\tmovingClientId &&\n\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\tgetBlockName( movingClientId ),\n\t\t\t\t\t\trootClientId\n\t\t\t\t\t),\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\toriginalBlockClientId: isInvalid\n\t\t\t\t\t? blocksWithSameName[ 0 ]\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tisPreviewMode,\n\t\t// Fill values that end up as a public API and may not be defined in\n\t\t// preview mode.\n\t\tmode = 'visual',\n\t\tisSelectionEnabled = false,\n\t\tisLocked = false,\n\t\tcanRemove = false,\n\t\tcanMove = false,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected = false,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\teditorMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t\toriginalBlockClientId,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tisPreviewMode,\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\teditorMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\ttemplateLock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\toriginalBlockClientId,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_blocks","_components","_data","_compose","_dom","_blockEdit","_blockInvalidWarning","_blockCrashWarning","_blockCrashBoundary","_blockHtml","_useBlockProps","_store","_layout","_privateBlockContext","_lockUnlock","_jsxRuntime","isUnmodifiedBlockContent","unlock","blocksPrivateApis","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","clsx","style","Block","children","isHtml","props","jsx","useBlockProps","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","__unstableLayoutClassNames","layoutClassNames","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","_wrapperProps","mayDisplayControls","mayDisplayParentControls","themeSupportsLayout","context","useContext","PrivateBlockContext","removeBlock","useDispatch","blockEditorStore","onRemove","useCallback","parentLayout","useLayout","blockEdit","default","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockEditingMode","isPreviewMode","blockType","getBlockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","serializeRawBlock","getSaveContent","jsxs","RawHTML","safeHTML","Fragment","display","apiVersion","dataAlign","restWrapperProps","updatedWrapperProps","Provider","value","fallback","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","selectBlock","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","switchToDefaultOrRemove","defaultBlockName","getDefaultBlockName","replacement","switchToBlockType","isUnmodifiedDefaultBlock","nextBlockClientId","batch","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","isUnmodifiedBlock","firstBlock","isFirstBlockContentUnmodified","canTransformToDefaultBlock","every","canLiftAndTransformToDefaultBlock","nextRootClientId","rootAttributes","previousRootAttributes","key","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","replacementBlocks","Array","isArray","selectionEnabled","compose","withFilters","BlockListBlockProvider","selectedProps","useSelect","isBlockSelected","getBlockMode","getTemplateLock","isSectionBlock","_isSectionBlock","getBlockWithoutAttributes","canRemoveBlock","canMoveBlock","getSettings","getTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","getBlocksByName","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","isDragging","__unstableHasActiveBlockOverlayActive","getSelectedBlocksInitialCaretPosition","blockWithoutAttributes","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","blocksStore","blockName","supportsLayout","__unstableIsPreviewMode","hasLightBlockWrapper","previewContext","isReusable","isReusableBlock","defaultClassName","getBlockDefaultClassName","blockTitle","title","_isSelected","canMove","match","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","multiple","blocksWithSameName","isInvalid","isTemporarilyEditingAsBlocks","id","blockApiVersion","isSubtreeDisabled","hasOverlay","isHighlighted","isPartiallySelected","hasChildSelected","isEditingDisabled","hasEditableOutline","originalBlockClientId","useMemo","privateContext","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tmemo,\n\tuseCallback,\n\tRawHTML,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\thasBlockSupport,\n\tstore as blocksStore,\n\tprivateApis as blocksPrivateApis,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { PrivateBlockContext } from './private-block-context';\n\nimport { unlock } from '../../lock-unlock';\n\nconst { isUnmodifiedBlockContent } = unlock( blocksPrivateApis );\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\t// May be set to undefined, so check if the property is set!\n\tif (\n\t\tpropsA?.hasOwnProperty( 'className' ) &&\n\t\tpropsB?.hasOwnProperty( 'className' )\n\t) {\n\t\tnewProps.className = clsx( propsA.className, propsB.className );\n\t}\n\n\tif (\n\t\tpropsA?.hasOwnProperty( 'style' ) &&\n\t\tpropsB?.hasOwnProperty( 'style' )\n\t) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\t__unstableLayoutClassNames: layoutClassNames,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tthemeSupportsLayout,\n\t\t...context\n\t} = useContext( PrivateBlockContext );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\n\tconst parentLayout = useLayout() || {};\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t__unstableLayoutClassNames={ layoutClassNames }\n\t\t\t__unstableParentLayout={\n\t\t\t\tObject.keys( parentLayout ).length ? parentLayout : undefined\n\t\t\t}\n\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\tmayDisplayParentControls={ mayDisplayParentControls }\n\t\t\tblockEditingMode={ context.blockEditingMode }\n\t\t\tisPreviewMode={ context.isPreviewMode }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// Support for sticky position in classic themes with alignment wrappers.\n\n\tconst isSticky = className?.includes( 'is-position-sticky' );\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName={ clsx( 'wp-block', isSticky && className ) }\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\tconst updatedWrapperProps = {\n\t\t...restWrapperProps,\n\t\tclassName: clsx(\n\t\t\trestWrapperProps.className,\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\t! ( dataAlign && isSticky ) && className\n\t\t),\n\t};\n\n\t// We set a new context with the adjusted and filtered wrapperProps (through\n\t// `editor.BlockListBlock`), which the `BlockListBlockProvider` did not have\n\t// access to.\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: updatedWrapperProps,\n\t\t\t\tisAligned,\n\t\t\t\t...context,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t\tselectBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\tfunction switchToDefaultOrRemove() {\n\t\t\t\tconst block = getBlock( clientId );\n\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\tif ( getBlockName( clientId ) !== defaultBlockName ) {\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tblock,\n\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t);\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( clientId, replacement );\n\t\t\t\t\t}\n\t\t\t\t} else if ( isUnmodifiedDefaultBlock( block ) ) {\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\tremoveBlock( clientId );\n\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tconst firstBlock = getBlock( firstClientId );\n\t\t\t\t\t\tconst isFirstBlockContentUnmodified =\n\t\t\t\t\t\t\tisUnmodifiedBlockContent( firstBlock );\n\t\t\t\t\t\tconst defaultBlockName = getDefaultBlockName();\n\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\tfirstBlock,\n\t\t\t\t\t\t\tdefaultBlockName\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst canTransformToDefaultBlock =\n\t\t\t\t\t\t\t!! replacement?.length &&\n\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\tcanInsertBlockType( block.name, _clientId )\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tisFirstBlockContentUnmodified &&\n\t\t\t\t\t\t\tcanTransformToDefaultBlock\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 1: If the block is empty and can be transformed to the default block type.\n\t\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\t\tfirstClientId,\n\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tisFirstBlockContentUnmodified &&\n\t\t\t\t\t\t\tfirstBlock.name === defaultBlockName\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 2: If the block is empty and is already the default block type.\n\t\t\t\t\t\t\tremoveBlock( firstClientId );\n\t\t\t\t\t\t\tconst nextBlockClientId =\n\t\t\t\t\t\t\t\tgetNextBlockClientId( clientId );\n\t\t\t\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\t\t\t\tselectBlock( nextBlockClientId );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tfirstBlock.name,\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Step 3: If the block can be moved up.\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst canLiftAndTransformToDefaultBlock =\n\t\t\t\t\t\t\t\t!! replacement?.length &&\n\t\t\t\t\t\t\t\treplacement.every( ( block ) =>\n\t\t\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( canLiftAndTransformToDefaultBlock ) {\n\t\t\t\t\t\t\t\t// Step 4: If the block can be transformed to the default block type and moved up.\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Step 5: Continue the default behavior.\n\t\t\t\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t} else {\n\t\t\t\t\tswitchToDefaultOrRemove();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\t//Unsynced patterns are nested in an array so we need to flatten them.\n\t\t\tconst replacementBlocks =\n\t\t\t\tblocks?.length === 1 && Array.isArray( blocks[ 0 ] )\n\t\t\t\t\t? blocks[ 0 ]\n\t\t\t\t\t: blocks;\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\treplacementBlocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\n// This component is used by the BlockListBlockProvider component below. It will\n// add the props necessary for the `editor.BlockListBlock` filters.\nBlockListBlock = compose(\n\tapplyWithDispatch,\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n\n// This component provides all the information we need through a single store\n// subscription (useSelect mapping). Only the necessary props are passed down\n// to the BlockListBlock component, which is a filtered component, so these\n// props are public API. To avoid adding to the public API, we use a private\n// context to pass the rest of the information to the filtered BlockListBlock\n// component, and useBlockProps.\nfunction BlockListBlockProvider( props ) {\n\tconst { clientId, rootClientId } = props;\n\tconst selectedProps = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\tgetBlockMode,\n\t\t\t\tisSelectionEnabled,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tisSectionBlock: _isSectionBlock,\n\t\t\t\tgetBlockWithoutAttributes,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlocksByName,\n\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisBlockSubtreeDisabled,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\t__unstableIsFullySelected,\n\t\t\t\t__unstableSelectionHasUnmergeableBlock,\n\t\t\t\tisBlockBeingDragged,\n\t\t\t\tisDragging,\n\t\t\t\t__unstableHasActiveBlockOverlayActive,\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\t\t\tconst blockWithoutAttributes =\n\t\t\t\tgetBlockWithoutAttributes( clientId );\n\n\t\t\t// This is a temporary fix.\n\t\t\t// This function should never be called when a block is not\n\t\t\t// present in the state. It happens now because the order in\n\t\t\t// withSelect rendering is not correct.\n\t\t\tif ( ! blockWithoutAttributes ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\thasBlockSupport: _hasBlockSupport,\n\t\t\t\tgetActiveBlockVariation,\n\t\t\t} = select( blocksStore );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst { name: blockName, isValid } = blockWithoutAttributes;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst { supportsLayout, __unstableIsPreviewMode: isPreviewMode } =\n\t\t\t\tgetSettings();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst previewContext = {\n\t\t\t\tisPreviewMode,\n\t\t\t\tblockWithoutAttributes,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tclassName: hasLightBlockWrapper\n\t\t\t\t\t? attributes.className\n\t\t\t\t\t: undefined,\n\t\t\t\tdefaultClassName: hasLightBlockWrapper\n\t\t\t\t\t? getBlockDefaultClassName( blockName )\n\t\t\t\t\t: undefined,\n\t\t\t\tblockTitle: blockType?.title,\n\t\t\t};\n\n\t\t\t// When in preview mode, we can avoid a lot of selection and\n\t\t\t// editing related selectors.\n\t\t\tif ( isPreviewMode ) {\n\t\t\t\treturn previewContext;\n\t\t\t}\n\n\t\t\tconst _isSelected = isBlockSelected( clientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId );\n\t\t\tconst canMove = canMoveBlock( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst isMultiSelected = isBlockMultiSelected( clientId );\n\t\t\tconst checkDeep = true;\n\t\t\tconst isAncestorOfSelectedBlock = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\tcheckDeep\n\t\t\t);\n\t\t\tconst blockEditingMode = getBlockEditingMode( clientId );\n\n\t\t\tconst multiple = hasBlockSupport( blockName, 'multiple', true );\n\n\t\t\t// For block types with `multiple` support, there is no \"original\n\t\t\t// block\" to be found in the content, as the block itself is valid.\n\t\t\tconst blocksWithSameName = multiple\n\t\t\t\t? []\n\t\t\t\t: getBlocksByName( blockName );\n\t\t\tconst isInvalid =\n\t\t\t\tblocksWithSameName.length &&\n\t\t\t\tblocksWithSameName[ 0 ] !== clientId;\n\n\t\t\treturn {\n\t\t\t\t...previewContext,\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! getTemplateLock( rootClientId ),\n\t\t\t\tisSectionBlock: _isSectionBlock( clientId ),\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\tgetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\t_isSelected ||\n\t\t\t\t\t( isFirstMultiSelectedBlock( clientId ) &&\n\t\t\t\t\t\tgetMultiSelectedBlockClientIds().every(\n\t\t\t\t\t\t\t( id ) => getBlockName( id ) === blockName\n\t\t\t\t\t\t) ),\n\t\t\t\tmayDisplayParentControls:\n\t\t\t\t\t_hasBlockSupport(\n\t\t\t\t\t\tgetBlockName( clientId ),\n\t\t\t\t\t\t'__experimentalExposeControlsToChildren',\n\t\t\t\t\t\tfalse\n\t\t\t\t\t) && hasSelectedInnerBlock( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled:\n\t\t\t\t\tblockEditingMode === 'disabled' &&\n\t\t\t\t\tisBlockSubtreeDisabled( clientId ),\n\t\t\t\thasOverlay:\n\t\t\t\t\t__unstableHasActiveBlockOverlayActive( clientId ) &&\n\t\t\t\t\t! isDragging(),\n\t\t\t\tinitialPosition: _isSelected\n\t\t\t\t\t? getSelectedBlocksInitialCaretPosition()\n\t\t\t\t\t: undefined,\n\t\t\t\tisHighlighted: isBlockHighlighted( clientId ),\n\t\t\t\tisMultiSelected,\n\t\t\t\tisPartiallySelected:\n\t\t\t\t\tisMultiSelected &&\n\t\t\t\t\t! __unstableIsFullySelected() &&\n\t\t\t\t\t! __unstableSelectionHasUnmergeableBlock(),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tisEditingDisabled: blockEditingMode === 'disabled',\n\t\t\t\thasEditableOutline:\n\t\t\t\t\tblockEditingMode !== 'disabled' &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled',\n\t\t\t\toriginalBlockClientId: isInvalid\n\t\t\t\t\t? blocksWithSameName[ 0 ]\n\t\t\t\t\t: false,\n\t\t\t};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tisPreviewMode,\n\t\t// Fill values that end up as a public API and may not be defined in\n\t\t// preview mode.\n\t\tmode = 'visual',\n\t\tisSelectionEnabled = false,\n\t\tisLocked = false,\n\t\tcanRemove = false,\n\t\tcanMove = false,\n\t\tblockWithoutAttributes,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected = false,\n\t\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\tindex,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tclassName,\n\t\tdefaultClassName,\n\t\toriginalBlockClientId,\n\t} = selectedProps;\n\n\t// Users of the editor.BlockListBlock filter used to be able to\n\t// access the block prop.\n\t// Ideally these blocks would rely on the clientId prop only.\n\t// This is kept for backward compatibility reasons.\n\tconst block = useMemo(\n\t\t() => ( { ...blockWithoutAttributes, attributes } ),\n\t\t[ blockWithoutAttributes, attributes ]\n\t);\n\n\t// Block is sometimes not mounted at the right time, causing it be\n\t// undefined see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tif ( ! selectedProps ) {\n\t\treturn null;\n\t}\n\n\tconst privateContext = {\n\t\tisPreviewMode,\n\t\tclientId,\n\t\tclassName,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisSectionBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t\toriginalBlockClientId,\n\t\tthemeSupportsLayout,\n\t};\n\n\t// Here we separate between the props passed to BlockListBlock and any other\n\t// information we selected for internal use. BlockListBlock is a filtered\n\t// component and thus ALL the props are PUBLIC API.\n\n\t// Note that the context value doesn't have to be memoized in this case\n\t// because when it changes, this component will be re-rendered anyway, and\n\t// none of the consumers (BlockListBlock and useBlockProps) are memoized or\n\t// \"pure\". This is different from the public BlockEditContext, where\n\t// consumers might be memoized or \"pure\".\n\treturn (\n\t\t<PrivateBlockContext.Provider value={ privateContext }>\n\t\t\t<BlockListBlock\n\t\t\t\t{ ...props }\n\t\t\t\t// WARNING: all the following props are public API (through the\n\t\t\t\t// editor.BlockListBlock filter) and normally nothing new should\n\t\t\t\t// be added to it.\n\t\t\t\t{ ...{\n\t\t\t\t\tmode,\n\t\t\t\t\tisSelectionEnabled,\n\t\t\t\t\tisLocked,\n\t\t\t\t\tcanRemove,\n\t\t\t\t\tcanMove,\n\t\t\t\t\t// Users of the editor.BlockListBlock filter used to be able\n\t\t\t\t\t// to access the block prop. Ideally these blocks would rely\n\t\t\t\t\t// on the clientId prop only. This is kept for backward\n\t\t\t\t\t// compatibility reasons.\n\t\t\t\t\tblock,\n\t\t\t\t\tname,\n\t\t\t\t\tattributes,\n\t\t\t\t\tisValid,\n\t\t\t\t\tisSelected,\n\t\t\t\t} }\n\t\t\t/>\n\t\t</PrivateBlockContext.Provider>\n\t);\n}\n\nexport default memo( BlockListBlockProvider );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -45,12 +45,10 @@ function Root({
|
|
|
45
45
|
const {
|
|
46
46
|
isOutlineMode,
|
|
47
47
|
isFocusMode,
|
|
48
|
-
editorMode,
|
|
49
48
|
temporarilyEditingAsBlocks
|
|
50
49
|
} = (0, _data.useSelect)(select => {
|
|
51
50
|
const {
|
|
52
51
|
getSettings,
|
|
53
|
-
__unstableGetEditorMode,
|
|
54
52
|
getTemporarilyEditingAsBlocks,
|
|
55
53
|
isTyping
|
|
56
54
|
} = (0, _lockUnlock.unlock)(select(_store.store));
|
|
@@ -61,7 +59,6 @@ function Root({
|
|
|
61
59
|
return {
|
|
62
60
|
isOutlineMode: outlineMode && !isTyping(),
|
|
63
61
|
isFocusMode: focusMode,
|
|
64
|
-
editorMode: __unstableGetEditorMode(),
|
|
65
62
|
temporarilyEditingAsBlocks: getTemporarilyEditingAsBlocks()
|
|
66
63
|
};
|
|
67
64
|
}, []);
|
|
@@ -100,8 +97,7 @@ function Root({
|
|
|
100
97
|
ref: (0, _compose.useMergeRefs)([(0, _blockSelectionClearer.useBlockSelectionClearer)(), (0, _useInBetweenInserter.useInBetweenInserter)(), (0, _observeTyping.useTypingObserver)()]),
|
|
101
98
|
className: (0, _clsx.default)('is-root-container', className, {
|
|
102
99
|
'is-outline-mode': isOutlineMode,
|
|
103
|
-
'is-focus-mode': isFocusMode && isLargeViewport
|
|
104
|
-
'is-navigate-mode': editorMode === 'navigation'
|
|
100
|
+
'is-focus-mode': isFocusMode && isLargeViewport
|
|
105
101
|
})
|
|
106
102
|
}, settings);
|
|
107
103
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(IntersectionObserver.Provider, {
|
|
@@ -169,8 +165,9 @@ function Items({
|
|
|
169
165
|
__unstableGetVisibleBlocks,
|
|
170
166
|
getTemplateLock,
|
|
171
167
|
getBlockEditingMode,
|
|
172
|
-
__unstableGetEditorMode
|
|
173
|
-
|
|
168
|
+
__unstableGetEditorMode,
|
|
169
|
+
isSectionBlock
|
|
170
|
+
} = (0, _lockUnlock.unlock)(select(_store.store));
|
|
174
171
|
const _order = getBlockOrder(rootClientId);
|
|
175
172
|
if (getSettings().__unstableIsPreviewMode) {
|
|
176
173
|
return {
|
|
@@ -185,7 +182,7 @@ function Items({
|
|
|
185
182
|
selectedBlocks: getSelectedBlockClientIds(),
|
|
186
183
|
visibleBlocks: __unstableGetVisibleBlocks(),
|
|
187
184
|
isZoomOut: __unstableGetEditorMode() === 'zoom-out',
|
|
188
|
-
shouldRenderAppender:
|
|
185
|
+
shouldRenderAppender: !isSectionBlock(rootClientId) && getBlockEditingMode(rootClientId) !== 'disabled' && !getTemplateLock(rootClientId) && hasAppender && __unstableGetEditorMode() !== 'zoom-out' && (hasCustomAppender || rootClientId === selectedBlockClientId || !rootClientId && !selectedBlockClientId && !_order.length)
|
|
189
186
|
};
|
|
190
187
|
}, [rootClientId, hasAppender, hasCustomAppender]);
|
|
191
188
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_layout.LayoutProvider, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_compose","_element","_block","_blockListAppender","_useInBetweenInserter","_store","_layout","_blockSelectionClearer","_innerBlocks","_context","_observeTyping","_zoomOutSeparator","_lockUnlock","_jsxRuntime","IntersectionObserver","exports","createContext","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","isLargeViewport","useViewportMatch","isOutlineMode","isFocusMode","editorMode","temporarilyEditingAsBlocks","useSelect","select","getSettings","__unstableGetEditorMode","getTemporarilyEditingAsBlocks","isTyping","unlock","blockEditorStore","outlineMode","focusMode","registry","useRegistry","setBlockVisibility","useDispatch","delayedBlockVisibilityUpdates","useDebounce","useCallback","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","useMemo","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","useInnerBlocksProps","ref","useMergeRefs","useBlockSelectionClearer","useInBetweenInserter","useTypingObserver","clsx","jsxs","Provider","value","children","jsx","StopEditingAsBlocksOnOutsideSelect","stopEditingAsBlocks","isBlockOrDescendantSelected","isBlockSelected","hasSelectedInnerBlock","useEffect","BlockList","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","EMPTY_ARRAY","EMPTY_SET","Set","Items","placeholder","rootClientId","renderAppender","CustomAppender","__experimentalAppenderTagName","layout","defaultLayout","hasAppender","hasCustomAppender","order","isZoomOut","selectedBlocks","visibleBlocks","shouldRenderAppender","getBlockOrder","getSelectedBlockClientId","getSelectedBlockClientIds","__unstableGetVisibleBlocks","getTemplateLock","getBlockEditingMode","_order","__unstableIsPreviewMode","selectedBlockClientId","length","LayoutProvider","map","AsyncModeProvider","has","includes","ZoomOutSeparator","position","default","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\tuseDebounce,\n} from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tuseEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\nimport { useTypingObserver } from '../observe-typing';\nimport { ZoomOutSeparator } from './zoom-out-separator';\nimport { unlock } from '../../lock-unlock';\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst {\n\t\tisOutlineMode,\n\t\tisFocusMode,\n\t\teditorMode,\n\t\ttemporarilyEditingAsBlocks,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSettings,\n\t\t\t__unstableGetEditorMode,\n\t\t\tgetTemporarilyEditingAsBlocks,\n\t\t\tisTyping,\n\t\t} = unlock( select( blockEditorStore ) );\n\t\tconst { outlineMode, focusMode } = getSettings();\n\t\treturn {\n\t\t\tisOutlineMode: outlineMode && ! isTyping(),\n\t\t\tisFocusMode: focusMode,\n\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\ttemporarilyEditingAsBlocks: getTemporarilyEditingAsBlocks(),\n\t\t};\n\t}, [] );\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tuseTypingObserver(),\n\t\t\t] ),\n\t\t\tclassName: clsx( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t\t'is-navigate-mode': editorMode === 'navigation',\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t\t{ !! temporarilyEditingAsBlocks && (\n\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\tclientId={ temporarilyEditingAsBlocks }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</IntersectionObserver.Provider>\n\t);\n}\n\nfunction StopEditingAsBlocksOnOutsideSelect( { clientId } ) {\n\tconst { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlocks( clientId );\n\t\t}\n\t}, [ isBlockOrDescendantSelected, clientId, stopEditingAsBlocks ] );\n\treturn null;\n}\n\nexport default function BlockList( settings ) {\n\treturn (\n\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t<Root { ...settings } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\nconst EMPTY_SET = new Set();\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender: CustomAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\t// Avoid passing CustomAppender to useSelect because it could be a new\n\t// function on every render.\n\tconst hasAppender = CustomAppender !== false;\n\tconst hasCustomAppender = !! CustomAppender;\n\tconst {\n\t\torder,\n\t\tisZoomOut,\n\t\tselectedBlocks,\n\t\tvisibleBlocks,\n\t\tshouldRenderAppender,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst _order = getBlockOrder( rootClientId );\n\n\t\t\tif ( getSettings().__unstableIsPreviewMode ) {\n\t\t\t\treturn {\n\t\t\t\t\torder: _order,\n\t\t\t\t\tselectedBlocks: EMPTY_ARRAY,\n\t\t\t\t\tvisibleBlocks: EMPTY_SET,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\torder: _order,\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t\tisZoomOut: __unstableGetEditorMode() === 'zoom-out',\n\t\t\t\tshouldRenderAppender:\n\t\t\t\t\thasAppender &&\n\t\t\t\t\t__unstableGetEditorMode() !== 'zoom-out' &&\n\t\t\t\t\t( hasCustomAppender\n\t\t\t\t\t\t? ! getTemplateLock( rootClientId ) &&\n\t\t\t\t\t\t getBlockEditingMode( rootClientId ) !== 'disabled'\n\t\t\t\t\t\t: rootClientId === selectedBlockClientId ||\n\t\t\t\t\t\t ( ! rootClientId &&\n\t\t\t\t\t\t\t\t! selectedBlockClientId &&\n\t\t\t\t\t\t\t\t! _order.length ) ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, hasAppender, hasCustomAppender ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"top\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"bottom\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t{ shouldRenderAppender && (\n\t\t\t\t<BlockListAppender\n\t\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tCustomAppender={ CustomAppender }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"],"mappings":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,KAAA,GAAAD,OAAA;AAMA,IAAAE,QAAA,GAAAF,OAAA;AAKA,IAAAG,QAAA,GAAAH,OAAA;AAUA,IAAAI,MAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,kBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,qBAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AACA,IAAAS,sBAAA,GAAAT,OAAA;AACA,IAAAU,YAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AAIA,IAAAY,cAAA,GAAAZ,OAAA;AACA,IAAAa,iBAAA,GAAAb,OAAA;AACA,IAAAc,WAAA,GAAAd,OAAA;AAA2C,IAAAe,WAAA,GAAAf,OAAA;AA1C3C;AACA;AACA;;AAGA;AACA;AACA;;AAmBA;AACA;AACA;;AAgBO,MAAMgB,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,IAAAE,sBAAa,EAAC,CAAC;AACnD,MAAMC,wCAAwC,GAAG,IAAIC,OAAO,CAAC,CAAC;AAE9D,SAASC,IAAIA,CAAE;EAAEC,SAAS;EAAE,GAAGC;AAAS,CAAC,EAAG;EAC3C,MAAMC,eAAe,GAAG,IAAAC,yBAAgB,EAAE,QAAS,CAAC;EACpD,MAAM;IACLC,aAAa;IACbC,WAAW;IACXC,UAAU;IACVC;EACD,CAAC,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC5B,MAAM;MACLC,WAAW;MACXC,uBAAuB;MACvBC,6BAA6B;MAC7BC;IACD,CAAC,GAAG,IAAAC,kBAAM,EAAEL,MAAM,CAAEM,YAAiB,CAAE,CAAC;IACxC,MAAM;MAAEC,WAAW;MAAEC;IAAU,CAAC,GAAGP,WAAW,CAAC,CAAC;IAChD,OAAO;MACNN,aAAa,EAAEY,WAAW,IAAI,CAAEH,QAAQ,CAAC,CAAC;MAC1CR,WAAW,EAAEY,SAAS;MACtBX,UAAU,EAAEK,uBAAuB,CAAC,CAAC;MACrCJ,0BAA0B,EAAEK,6BAA6B,CAAC;IAC3D,CAAC;EACF,CAAC,EAAE,EAAG,CAAC;EACP,MAAMM,QAAQ,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAC9B,MAAM;IAAEC;EAAmB,CAAC,GAAG,IAAAC,iBAAW,EAAEN,YAAiB,CAAC;EAE9D,MAAMO,6BAA6B,GAAG,IAAAC,oBAAW,EAChD,IAAAC,oBAAW,EAAE,MAAM;IAClB,MAAMC,OAAO,GAAG,CAAC,CAAC;IAClB5B,wCAAwC,CACtC6B,GAAG,CAAER,QAAS,CAAC,CACfS,OAAO,CAAE,CAAE,CAAEC,EAAE,EAAEC,cAAc,CAAE,KAAM;MACvCJ,OAAO,CAAEG,EAAE,CAAE,GAAGC,cAAc;IAC/B,CAAE,CAAC;IACJT,kBAAkB,CAAEK,OAAQ,CAAC;EAC9B,CAAC,EAAE,CAAEP,QAAQ,CAAG,CAAC,EACjB,GAAG,EACH;IACCY,QAAQ,EAAE;EACX,CACD,CAAC;EACD,MAAMC,oBAAoB,GAAG,IAAAC,gBAAO,EAAE,MAAM;IAC3C,MAAM;MAAEtC,oBAAoB,EAAEuC;IAAS,CAAC,GAAGC,MAAM;IAEjD,IAAK,CAAED,QAAQ,EAAG;MACjB;IACD;IAEA,OAAO,IAAIA,QAAQ,CAAIE,OAAO,IAAM;MACnC,IAAK,CAAEtC,wCAAwC,CAAC6B,GAAG,CAAER,QAAS,CAAC,EAAG;QACjErB,wCAAwC,CAACuC,GAAG,CAAElB,QAAQ,EAAE,EAAG,CAAC;MAC7D;MACA,KAAM,MAAMmB,KAAK,IAAIF,OAAO,EAAG;QAC9B,MAAMG,QAAQ,GAAGD,KAAK,CAACE,MAAM,CAACC,YAAY,CAAE,YAAa,CAAC;QAC1D3C,wCAAwC,CACtC6B,GAAG,CAAER,QAAS,CAAC,CACfuB,IAAI,CAAE,CAAEH,QAAQ,EAAED,KAAK,CAACR,cAAc,CAAG,CAAC;MAC7C;MACAP,6BAA6B,CAAC,CAAC;IAChC,CAAE,CAAC;EACJ,CAAC,EAAE,EAAG,CAAC;EACP,MAAMoB,gBAAgB,GAAG,IAAAC,gCAAmB,EAC3C;IACCC,GAAG,EAAE,IAAAC,qBAAY,EAAE,CAClB,IAAAC,+CAAwB,EAAC,CAAC,EAC1B,IAAAC,0CAAoB,EAAC,CAAC,EACtB,IAAAC,gCAAiB,EAAC,CAAC,CAClB,CAAC;IACHhD,SAAS,EAAE,IAAAiD,aAAI,EAAE,mBAAmB,EAAEjD,SAAS,EAAE;MAChD,iBAAiB,EAAEI,aAAa;MAChC,eAAe,EAAEC,WAAW,IAAIH,eAAe;MAC/C,kBAAkB,EAAEI,UAAU,KAAK;IACpC,CAAE;EACH,CAAC,EACDL,QACD,CAAC;EACD,oBACC,IAAAR,WAAA,CAAAyD,IAAA,EAACxD,oBAAoB,CAACyD,QAAQ;IAACC,KAAK,EAAGrB,oBAAsB;IAAAsB,QAAA,gBAC5D,IAAA5D,WAAA,CAAA6D,GAAA;MAAA,GAAUZ;IAAgB,CAAI,CAAC,EAC7B,CAAC,CAAEnC,0BAA0B,iBAC9B,IAAAd,WAAA,CAAA6D,GAAA,EAACC,kCAAkC;MAClCjB,QAAQ,EAAG/B;IAA4B,CACvC,CACD;EAAA,CAC6B,CAAC;AAElC;AAEA,SAASgD,kCAAkCA,CAAE;EAAEjB;AAAS,CAAC,EAAG;EAC3D,MAAM;IAAEkB;EAAoB,CAAC,GAAG,IAAA1C,kBAAM,EAAE,IAAAO,iBAAW,EAAEN,YAAiB,CAAE,CAAC;EACzE,MAAM0C,2BAA2B,GAAG,IAAAjD,eAAS,EAC1CC,MAAM,IAAM;IACb,MAAM;MAAEiD,eAAe;MAAEC;IAAsB,CAAC,GAC/ClD,MAAM,CAAEM,YAAiB,CAAC;IAC3B,OACC2C,eAAe,CAAEpB,QAAS,CAAC,IAC3BqB,qBAAqB,CAAErB,QAAQ,EAAE,IAAK,CAAC;EAEzC,CAAC,EACD,CAAEA,QAAQ,CACX,CAAC;EACD,IAAAsB,kBAAS,EAAE,MAAM;IAChB,IAAK,CAAEH,2BAA2B,EAAG;MACpCD,mBAAmB,CAAElB,QAAS,CAAC;IAChC;EACD,CAAC,EAAE,CAAEmB,2BAA2B,EAAEnB,QAAQ,EAAEkB,mBAAmB,CAAG,CAAC;EACnE,OAAO,IAAI;AACZ;AAEe,SAASK,SAASA,CAAE5D,QAAQ,EAAG;EAC7C,oBACC,IAAAR,WAAA,CAAA6D,GAAA,EAACjE,QAAA,CAAAyE,wBAAwB;IAACV,KAAK,EAAGW,mCAA4B;IAAAV,QAAA,eAC7D,IAAA5D,WAAA,CAAA6D,GAAA,EAACvD,IAAI;MAAA,GAAME;IAAQ,CAAI;EAAC,CACC,CAAC;AAE7B;AAEA,MAAM+D,WAAW,GAAG,EAAE;AACtB,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAC,CAAC;AAE3B,SAASC,KAAKA,CAAE;EACfC,WAAW;EACXC,YAAY;EACZC,cAAc,EAAEC,cAAc;EAC9BC,6BAA6B;EAC7BC,MAAM,GAAGC;AACV,CAAC,EAAG;EACH;EACA;EACA,MAAMC,WAAW,GAAGJ,cAAc,KAAK,KAAK;EAC5C,MAAMK,iBAAiB,GAAG,CAAC,CAAEL,cAAc;EAC3C,MAAM;IACLM,KAAK;IACLC,SAAS;IACTC,cAAc;IACdC,aAAa;IACbC;EACD,CAAC,GAAG,IAAAzE,eAAS,EACVC,MAAM,IAAM;IACb,MAAM;MACLC,WAAW;MACXwE,aAAa;MACbC,wBAAwB;MACxBC,yBAAyB;MACzBC,0BAA0B;MAC1BC,eAAe;MACfC,mBAAmB;MACnB5E;IACD,CAAC,GAAGF,MAAM,CAAEM,YAAiB,CAAC;IAE9B,MAAMyE,MAAM,GAAGN,aAAa,CAAEb,YAAa,CAAC;IAE5C,IAAK3D,WAAW,CAAC,CAAC,CAAC+E,uBAAuB,EAAG;MAC5C,OAAO;QACNZ,KAAK,EAAEW,MAAM;QACbT,cAAc,EAAEf,WAAW;QAC3BgB,aAAa,EAAEf;MAChB,CAAC;IACF;IAEA,MAAMyB,qBAAqB,GAAGP,wBAAwB,CAAC,CAAC;IACxD,OAAO;MACNN,KAAK,EAAEW,MAAM;MACbT,cAAc,EAAEK,yBAAyB,CAAC,CAAC;MAC3CJ,aAAa,EAAEK,0BAA0B,CAAC,CAAC;MAC3CP,SAAS,EAAEnE,uBAAuB,CAAC,CAAC,KAAK,UAAU;MACnDsE,oBAAoB,EACnBN,WAAW,IACXhE,uBAAuB,CAAC,CAAC,KAAK,UAAU,KACtCiE,iBAAiB,GAChB,CAAEU,eAAe,CAAEjB,YAAa,CAAC,IACjCkB,mBAAmB,CAAElB,YAAa,CAAC,KAAK,UAAU,GAClDA,YAAY,KAAKqB,qBAAqB,IACpC,CAAErB,YAAY,IAChB,CAAEqB,qBAAqB,IACvB,CAAEF,MAAM,CAACG,MAAQ;IACtB,CAAC;EACF,CAAC,EACD,CAAEtB,YAAY,EAAEM,WAAW,EAAEC,iBAAiB,CAC/C,CAAC;EAED,oBACC,IAAAnF,WAAA,CAAAyD,IAAA,EAAChE,OAAA,CAAA0G,cAAc;IAACxC,KAAK,EAAGqB,MAAQ;IAAApB,QAAA,GAC7BwB,KAAK,CAACgB,GAAG,CAAIvD,QAAQ,iBACtB,IAAA7C,WAAA,CAAAyD,IAAA,EAACvE,KAAA,CAAAmH,iBAAiB;MAEjB1C,KAAK;MACJ;MACA;MACA,CAAE4B,aAAa,CAACe,GAAG,CAAEzD,QAAS,CAAC,IAC/B,CAAEyC,cAAc,CAACiB,QAAQ,CAAE1D,QAAS,CACpC;MAAAe,QAAA,GAECyB,SAAS,iBACV,IAAArF,WAAA,CAAA6D,GAAA,EAAC/D,iBAAA,CAAA0G,gBAAgB;QAChB3D,QAAQ,EAAGA,QAAU;QACrB+B,YAAY,EAAGA,YAAc;QAC7B6B,QAAQ,EAAC;MAAK,CACd,CACD,eACD,IAAAzG,WAAA,CAAA6D,GAAA,EAACxE,MAAA,CAAAqH,OAAc;QACd9B,YAAY,EAAGA,YAAc;QAC7B/B,QAAQ,EAAGA;MAAU,CACrB,CAAC,EACAwC,SAAS,iBACV,IAAArF,WAAA,CAAA6D,GAAA,EAAC/D,iBAAA,CAAA0G,gBAAgB;QAChB3D,QAAQ,EAAGA,QAAU;QACrB+B,YAAY,EAAGA,YAAc;QAC7B6B,QAAQ,EAAC;MAAQ,CACjB,CACD;IAAA,GAzBK5D,QA0BY,CAClB,CAAC,EACDuC,KAAK,CAACc,MAAM,GAAG,CAAC,IAAIvB,WAAW,EAC/Ba,oBAAoB,iBACrB,IAAAxF,WAAA,CAAA6D,GAAA,EAACvE,kBAAA,CAAAoH,OAAiB;MACjBC,OAAO,EAAG5B,6BAA+B;MACzCH,YAAY,EAAGA,YAAc;MAC7BE,cAAc,EAAGA;IAAgB,CACjC,CACD;EAAA,CACc,CAAC;AAEnB;AAEO,SAAS8B,cAAcA,CAAEC,KAAK,EAAG;EACvC;EACA;EACA,oBACC,IAAA7G,WAAA,CAAA6D,GAAA,EAAC3E,KAAA,CAAAmH,iBAAiB;IAAC1C,KAAK,EAAG,KAAO;IAAAC,QAAA,eACjC,IAAA5D,WAAA,CAAA6D,GAAA,EAACa,KAAK;MAAA,GAAMmC;IAAK,CAAI;EAAC,CACJ,CAAC;AAEtB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_data","_compose","_element","_block","_blockListAppender","_useInBetweenInserter","_store","_layout","_blockSelectionClearer","_innerBlocks","_context","_observeTyping","_zoomOutSeparator","_lockUnlock","_jsxRuntime","IntersectionObserver","exports","createContext","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","isLargeViewport","useViewportMatch","isOutlineMode","isFocusMode","temporarilyEditingAsBlocks","useSelect","select","getSettings","getTemporarilyEditingAsBlocks","isTyping","unlock","blockEditorStore","outlineMode","focusMode","registry","useRegistry","setBlockVisibility","useDispatch","delayedBlockVisibilityUpdates","useDebounce","useCallback","updates","get","forEach","id","isIntersecting","trailing","intersectionObserver","useMemo","Observer","window","entries","set","entry","clientId","target","getAttribute","push","innerBlocksProps","useInnerBlocksProps","ref","useMergeRefs","useBlockSelectionClearer","useInBetweenInserter","useTypingObserver","clsx","jsxs","Provider","value","children","jsx","StopEditingAsBlocksOnOutsideSelect","stopEditingAsBlocks","isBlockOrDescendantSelected","isBlockSelected","hasSelectedInnerBlock","useEffect","BlockList","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","EMPTY_ARRAY","EMPTY_SET","Set","Items","placeholder","rootClientId","renderAppender","CustomAppender","__experimentalAppenderTagName","layout","defaultLayout","hasAppender","hasCustomAppender","order","isZoomOut","selectedBlocks","visibleBlocks","shouldRenderAppender","getBlockOrder","getSelectedBlockClientId","getSelectedBlockClientIds","__unstableGetVisibleBlocks","getTemplateLock","getBlockEditingMode","__unstableGetEditorMode","isSectionBlock","_order","__unstableIsPreviewMode","selectedBlockClientId","length","LayoutProvider","map","AsyncModeProvider","has","includes","ZoomOutSeparator","position","default","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tAsyncModeProvider,\n\tuseSelect,\n\tuseDispatch,\n\tuseRegistry,\n} from '@wordpress/data';\nimport {\n\tuseViewportMatch,\n\tuseMergeRefs,\n\tuseDebounce,\n} from '@wordpress/compose';\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tuseEffect,\n} from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockListBlock from './block';\nimport BlockListAppender from '../block-list-appender';\nimport { useInBetweenInserter } from './use-in-between-inserter';\nimport { store as blockEditorStore } from '../../store';\nimport { LayoutProvider, defaultLayout } from './layout';\nimport { useBlockSelectionClearer } from '../block-selection-clearer';\nimport { useInnerBlocksProps } from '../inner-blocks';\nimport {\n\tBlockEditContextProvider,\n\tDEFAULT_BLOCK_EDIT_CONTEXT,\n} from '../block-edit/context';\nimport { useTypingObserver } from '../observe-typing';\nimport { ZoomOutSeparator } from './zoom-out-separator';\nimport { unlock } from '../../lock-unlock';\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { isOutlineMode, isFocusMode, temporarilyEditingAsBlocks } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst { getSettings, getTemporarilyEditingAsBlocks, isTyping } =\n\t\t\t\tunlock( select( blockEditorStore ) );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode && ! isTyping(),\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\ttemporarilyEditingAsBlocks: getTemporarilyEditingAsBlocks(),\n\t\t\t};\n\t\t}, [] );\n\tconst registry = useRegistry();\n\tconst { setBlockVisibility } = useDispatch( blockEditorStore );\n\n\tconst delayedBlockVisibilityUpdates = useDebounce(\n\t\tuseCallback( () => {\n\t\t\tconst updates = {};\n\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t.get( registry )\n\t\t\t\t.forEach( ( [ id, isIntersecting ] ) => {\n\t\t\t\t\tupdates[ id ] = isIntersecting;\n\t\t\t\t} );\n\t\t\tsetBlockVisibility( updates );\n\t\t}, [ registry ] ),\n\t\t300,\n\t\t{\n\t\t\ttrailing: true,\n\t\t}\n\t);\n\tconst intersectionObserver = useMemo( () => {\n\t\tconst { IntersectionObserver: Observer } = window;\n\n\t\tif ( ! Observer ) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn new Observer( ( entries ) => {\n\t\t\tif ( ! pendingBlockVisibilityUpdatesPerRegistry.get( registry ) ) {\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry.set( registry, [] );\n\t\t\t}\n\t\t\tfor ( const entry of entries ) {\n\t\t\t\tconst clientId = entry.target.getAttribute( 'data-block' );\n\t\t\t\tpendingBlockVisibilityUpdatesPerRegistry\n\t\t\t\t\t.get( registry )\n\t\t\t\t\t.push( [ clientId, entry.isIntersecting ] );\n\t\t\t}\n\t\t\tdelayedBlockVisibilityUpdates();\n\t\t} );\n\t}, [] );\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{\n\t\t\tref: useMergeRefs( [\n\t\t\t\tuseBlockSelectionClearer(),\n\t\t\t\tuseInBetweenInserter(),\n\t\t\t\tuseTypingObserver(),\n\t\t\t] ),\n\t\t\tclassName: clsx( 'is-root-container', className, {\n\t\t\t\t'is-outline-mode': isOutlineMode,\n\t\t\t\t'is-focus-mode': isFocusMode && isLargeViewport,\n\t\t\t} ),\n\t\t},\n\t\tsettings\n\t);\n\treturn (\n\t\t<IntersectionObserver.Provider value={ intersectionObserver }>\n\t\t\t<div { ...innerBlocksProps } />\n\t\t\t{ !! temporarilyEditingAsBlocks && (\n\t\t\t\t<StopEditingAsBlocksOnOutsideSelect\n\t\t\t\t\tclientId={ temporarilyEditingAsBlocks }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</IntersectionObserver.Provider>\n\t);\n}\n\nfunction StopEditingAsBlocksOnOutsideSelect( { clientId } ) {\n\tconst { stopEditingAsBlocks } = unlock( useDispatch( blockEditorStore ) );\n\tconst isBlockOrDescendantSelected = useSelect(\n\t\t( select ) => {\n\t\t\tconst { isBlockSelected, hasSelectedInnerBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\treturn (\n\t\t\t\tisBlockSelected( clientId ) ||\n\t\t\t\thasSelectedInnerBlock( clientId, true )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tuseEffect( () => {\n\t\tif ( ! isBlockOrDescendantSelected ) {\n\t\t\tstopEditingAsBlocks( clientId );\n\t\t}\n\t}, [ isBlockOrDescendantSelected, clientId, stopEditingAsBlocks ] );\n\treturn null;\n}\n\nexport default function BlockList( settings ) {\n\treturn (\n\t\t<BlockEditContextProvider value={ DEFAULT_BLOCK_EDIT_CONTEXT }>\n\t\t\t<Root { ...settings } />\n\t\t</BlockEditContextProvider>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\nconst EMPTY_SET = new Set();\n\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender: CustomAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\t// Avoid passing CustomAppender to useSelect because it could be a new\n\t// function on every render.\n\tconst hasAppender = CustomAppender !== false;\n\tconst hasCustomAppender = !! CustomAppender;\n\tconst {\n\t\torder,\n\t\tisZoomOut,\n\t\tselectedBlocks,\n\t\tvisibleBlocks,\n\t\tshouldRenderAppender,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t\tisSectionBlock,\n\t\t\t} = unlock( select( blockEditorStore ) );\n\n\t\t\tconst _order = getBlockOrder( rootClientId );\n\n\t\t\tif ( getSettings().__unstableIsPreviewMode ) {\n\t\t\t\treturn {\n\t\t\t\t\torder: _order,\n\t\t\t\t\tselectedBlocks: EMPTY_ARRAY,\n\t\t\t\t\tvisibleBlocks: EMPTY_SET,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\treturn {\n\t\t\t\torder: _order,\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t\tisZoomOut: __unstableGetEditorMode() === 'zoom-out',\n\t\t\t\tshouldRenderAppender:\n\t\t\t\t\t! isSectionBlock( rootClientId ) &&\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) !== 'disabled' &&\n\t\t\t\t\t! getTemplateLock( rootClientId ) &&\n\t\t\t\t\thasAppender &&\n\t\t\t\t\t__unstableGetEditorMode() !== 'zoom-out' &&\n\t\t\t\t\t( hasCustomAppender ||\n\t\t\t\t\t\trootClientId === selectedBlockClientId ||\n\t\t\t\t\t\t( ! rootClientId &&\n\t\t\t\t\t\t\t! selectedBlockClientId &&\n\t\t\t\t\t\t\t! _order.length ) ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, hasAppender, hasCustomAppender ]\n\t);\n\n\treturn (\n\t\t<LayoutProvider value={ layout }>\n\t\t\t{ order.map( ( clientId ) => (\n\t\t\t\t<AsyncModeProvider\n\t\t\t\t\tkey={ clientId }\n\t\t\t\t\tvalue={\n\t\t\t\t\t\t// Only provide data asynchronously if the block is\n\t\t\t\t\t\t// not visible and not selected.\n\t\t\t\t\t\t! visibleBlocks.has( clientId ) &&\n\t\t\t\t\t\t! selectedBlocks.includes( clientId )\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"top\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<BlockListBlock\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t\t{ isZoomOut && (\n\t\t\t\t\t\t<ZoomOutSeparator\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tposition=\"bottom\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t{ shouldRenderAppender && (\n\t\t\t\t<BlockListAppender\n\t\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tCustomAppender={ CustomAppender }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</LayoutProvider>\n\t);\n}\n\nexport function BlockListItems( props ) {\n\t// This component needs to always be synchronous as it's the one changing\n\t// the async mode depending on the block selection.\n\treturn (\n\t\t<AsyncModeProvider value={ false }>\n\t\t\t<Items { ...props } />\n\t\t</AsyncModeProvider>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,7 +18,6 @@ var _useIsHovered = require("./use-is-hovered");
|
|
|
18
18
|
var _context = require("../../block-edit/context");
|
|
19
19
|
var _useFocusHandler = require("./use-focus-handler");
|
|
20
20
|
var _useSelectedBlockEventHandlers = require("./use-selected-block-event-handlers");
|
|
21
|
-
var _useNavModeExit = require("./use-nav-mode-exit");
|
|
22
21
|
var _useZoomOutModeExit = require("./use-zoom-out-mode-exit");
|
|
23
22
|
var _useBlockRefs = require("./use-block-refs");
|
|
24
23
|
var _useIntersectionObserver = require("./use-intersection-observer");
|
|
@@ -92,7 +91,6 @@ function useBlockProps(props = {}, {
|
|
|
92
91
|
name,
|
|
93
92
|
blockApiVersion,
|
|
94
93
|
blockTitle,
|
|
95
|
-
editorMode,
|
|
96
94
|
isSelected,
|
|
97
95
|
isSubtreeDisabled,
|
|
98
96
|
hasOverlay,
|
|
@@ -104,13 +102,11 @@ function useBlockProps(props = {}, {
|
|
|
104
102
|
isReusable,
|
|
105
103
|
isDragging,
|
|
106
104
|
hasChildSelected,
|
|
107
|
-
isBlockMovingMode,
|
|
108
|
-
canInsertMovingBlock,
|
|
109
105
|
isEditingDisabled,
|
|
110
106
|
hasEditableOutline,
|
|
111
107
|
isTemporarilyEditingAsBlocks,
|
|
112
108
|
defaultClassName,
|
|
113
|
-
|
|
109
|
+
isSectionBlock
|
|
114
110
|
} = (0, _element.useContext)(_privateBlockContext.PrivateBlockContext);
|
|
115
111
|
|
|
116
112
|
// translators: %s: Type of block (i.e. Text, Image etc)
|
|
@@ -122,9 +118,7 @@ function useBlockProps(props = {}, {
|
|
|
122
118
|
}), (0, _useBlockRefs.useBlockRefProvider)(clientId), (0, _useFocusHandler.useFocusHandler)(clientId), (0, _useSelectedBlockEventHandlers.useEventHandlers)({
|
|
123
119
|
clientId,
|
|
124
120
|
isSelected
|
|
125
|
-
}), (0,
|
|
126
|
-
editorMode
|
|
127
|
-
}), (0, _useIsHovered.useIsHovered)({
|
|
121
|
+
}), (0, _useZoomOutModeExit.useZoomOutModeExit)(), (0, _useIsHovered.useIsHovered)({
|
|
128
122
|
clientId
|
|
129
123
|
}), (0, _useIntersectionObserver.useIntersectionObserver)(), (0, _useMovingAnimation.default)({
|
|
130
124
|
triggerAnimationOnChange: index,
|
|
@@ -133,7 +127,7 @@ function useBlockProps(props = {}, {
|
|
|
133
127
|
isDisabled: !hasOverlay
|
|
134
128
|
}), (0, _useFlashEditableBlocks.useFlashEditableBlocks)({
|
|
135
129
|
clientId,
|
|
136
|
-
isEnabled:
|
|
130
|
+
isEnabled: isSectionBlock
|
|
137
131
|
}), (0, _useScrollIntoView.useScrollIntoView)({
|
|
138
132
|
isSelected
|
|
139
133
|
})]);
|
|
@@ -175,8 +169,6 @@ function useBlockProps(props = {}, {
|
|
|
175
169
|
'is-reusable': isReusable,
|
|
176
170
|
'is-dragging': isDragging,
|
|
177
171
|
'has-child-selected': hasChildSelected,
|
|
178
|
-
'is-block-moving-mode': isBlockMovingMode,
|
|
179
|
-
'can-insert-moving-block': canInsertMovingBlock,
|
|
180
172
|
'is-editing-disabled': isEditingDisabled,
|
|
181
173
|
'has-editable-outline': hasEditableOutline,
|
|
182
174
|
'has-negative-margin': hasNegativeMargin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_blocks","_compose","_warning","_useMovingAnimation","_privateBlockContext","_useFocusFirstElement","_useIsHovered","_context","_useFocusHandler","_useSelectedBlockEventHandlers","_useNavModeExit","_useZoomOutModeExit","_useBlockRefs","_useIntersectionObserver","_useScrollIntoView","_useFlashEditableBlocks","_useBindingsAttributes","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","editorMode","isSelected","isSubtreeDisabled","hasOverlay","initialPosition","blockEditingMode","isHighlighted","isMultiSelected","isPartiallySelected","isReusable","isDragging","hasChildSelected","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","hasEditableOutline","isTemporarilyEditingAsBlocks","defaultClassName","templateLock","useContext","PrivateBlockContext","blockLabel","sprintf","__","htmlSuffix","mergedRefs","useMergeRefs","ref","useFocusFirstElement","useBlockRefProvider","useFocusHandler","useEventHandlers","useNavModeExit","useZoomOutModeExit","useIsHovered","useIntersectionObserver","useMovingAnimation","triggerAnimationOnChange","useDisabled","isDisabled","useFlashEditableBlocks","isEnabled","useScrollIntoView","blockEditContext","useBlockEditContext","hasBlockBindings","blockBindingsKey","bindingsStyle","canBindBlock","globalThis","SCRIPT_DEBUG","warning","hasNegativeMargin","style","marginTop","charAt","marginBottom","marginLeft","marginRight","tabIndex","id","role","inert","undefined","clsx","save","getBlockProps"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableGetBlockProps as getBlockProps } from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { PrivateBlockContext } from '../private-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport {\n\tblockBindingsKey,\n\tuseBlockEditContext,\n} from '../../block-edit/context';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useZoomOutModeExit } from './use-zoom-out-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { useScrollIntoView } from './use-scroll-into-view';\nimport { useFlashEditableBlocks } from '../../use-flash-editable-blocks';\nimport { canBindBlock } from '../../../hooks/use-bindings-attributes';\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps( {\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * } )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\teditorMode,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\ttemplateLock,\n\t} = useContext( PrivateBlockContext );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( { clientId, initialPosition } ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( { clientId, isSelected } ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseZoomOutModeExit( { editorMode } ),\n\t\tuseIsHovered( { clientId } ),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( { triggerAnimationOnChange: index, clientId } ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t\tuseFlashEditableBlocks( {\n\t\t\tclientId,\n\t\t\tisEnabled: name === 'core/block' || templateLock === 'contentOnly',\n\t\t} ),\n\t\tuseScrollIntoView( { isSelected } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\tconst hasBlockBindings = !! blockEditContext[ blockBindingsKey ];\n\tconst bindingsStyle =\n\t\thasBlockBindings && canBindBlock( name )\n\t\t\t? {\n\t\t\t\t\t'--wp-admin-theme-color': 'var(--wp-block-synced-color)',\n\t\t\t\t\t'--wp-admin-theme-color--rgb':\n\t\t\t\t\t\t'var(--wp-block-synced-color--rgb)',\n\t\t\t }\n\t\t\t: {};\n\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\tlet hasNegativeMargin = false;\n\tif (\n\t\twrapperProps?.style?.marginTop?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginBottom?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginLeft?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginRight?.charAt( 0 ) === '-'\n\t) {\n\t\thasNegativeMargin = true;\n\t}\n\n\treturn {\n\t\ttabIndex: blockEditingMode === 'disabled' ? -1 : 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: clsx(\n\t\t\t'block-editor-block-list__block',\n\t\t\t{\n\t\t\t\t// The wp-block className is important for editor styles.\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isHighlighted,\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected': isPartiallySelected,\n\t\t\t\t'is-reusable': isReusable,\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': hasChildSelected,\n\t\t\t\t'is-block-moving-mode': isBlockMovingMode,\n\t\t\t\t'can-insert-moving-block': canInsertMovingBlock,\n\t\t\t\t'is-editing-disabled': isEditingDisabled,\n\t\t\t\t'has-editable-outline': hasEditableOutline,\n\t\t\t\t'has-negative-margin': hasNegativeMargin,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tdefaultClassName\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style, ...bindingsStyle },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":";;;;;;;AAGA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAN,sBAAA,CAAAC,OAAA;AAKA,IAAAM,mBAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,oBAAA,GAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AACA,IAAAU,QAAA,GAAAV,OAAA;AAIA,IAAAW,gBAAA,GAAAX,OAAA;AACA,IAAAY,8BAAA,GAAAZ,OAAA;AACA,IAAAa,eAAA,GAAAb,OAAA;AACA,IAAAc,mBAAA,GAAAd,OAAA;AACA,IAAAe,aAAA,GAAAf,OAAA;AACA,IAAAgB,wBAAA,GAAAhB,OAAA;AACA,IAAAiB,kBAAA,GAAAjB,OAAA;AACA,IAAAkB,uBAAA,GAAAlB,OAAA;AACA,IAAAmB,sBAAA,GAAAnB,OAAA;AAjCA;AACA;AACA;;AAGA;AACA;AACA;;AAOA;AACA;AACA;;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASoB,aAAaA,CAAEC,KAAK,GAAG,CAAC,CAAC,EAAE;EAAEC;AAAiB,CAAC,GAAG,CAAC,CAAC,EAAG;EACtE,MAAM;IACLC,QAAQ;IACRC,SAAS;IACTC,YAAY,GAAG,CAAC,CAAC;IACjBC,SAAS;IACTC,KAAK;IACLC,IAAI;IACJC,IAAI;IACJC,eAAe;IACfC,UAAU;IACVC,UAAU;IACVC,UAAU;IACVC,iBAAiB;IACjBC,UAAU;IACVC,eAAe;IACfC,gBAAgB;IAChBC,aAAa;IACbC,eAAe;IACfC,mBAAmB;IACnBC,UAAU;IACVC,UAAU;IACVC,gBAAgB;IAChBC,iBAAiB;IACjBC,oBAAoB;IACpBC,iBAAiB;IACjBC,kBAAkB;IAClBC,4BAA4B;IAC5BC,gBAAgB;IAChBC;EACD,CAAC,GAAG,IAAAC,mBAAU,EAAEC,wCAAoB,CAAC;;EAErC;EACA,MAAMC,UAAU,GAAG,IAAAC,aAAO,EAAE,IAAAC,QAAE,EAAE,WAAY,CAAC,EAAExB,UAAW,CAAC;EAC3D,MAAMyB,UAAU,GAAG5B,IAAI,KAAK,MAAM,IAAI,CAAEN,gBAAgB,GAAG,SAAS,GAAG,EAAE;EACzE,MAAMmC,UAAU,GAAG,IAAAC,qBAAY,EAAE,CAChCrC,KAAK,CAACsC,GAAG,EACT,IAAAC,0CAAoB,EAAE;IAAErC,QAAQ;IAAEa;EAAgB,CAAE,CAAC,EACrD,IAAAyB,iCAAmB,EAAEtC,QAAS,CAAC,EAC/B,IAAAuC,gCAAe,EAAEvC,QAAS,CAAC,EAC3B,IAAAwC,+CAAgB,EAAE;IAAExC,QAAQ;IAAEU;EAAW,CAAE,CAAC,EAC5C,IAAA+B,8BAAc,EAAEzC,QAAS,CAAC,EAC1B,IAAA0C,sCAAkB,EAAE;IAAEjC;EAAW,CAAE,CAAC,EACpC,IAAAkC,0BAAY,EAAE;IAAE3C;EAAS,CAAE,CAAC,EAC5B,IAAA4C,gDAAuB,EAAC,CAAC,EACzB,IAAAC,2BAAkB,EAAE;IAAEC,wBAAwB,EAAE1C,KAAK;IAAEJ;EAAS,CAAE,CAAC,EACnE,IAAA+C,oBAAW,EAAE;IAAEC,UAAU,EAAE,CAAEpC;EAAW,CAAE,CAAC,EAC3C,IAAAqC,8CAAsB,EAAE;IACvBjD,QAAQ;IACRkD,SAAS,EAAE5C,IAAI,KAAK,YAAY,IAAIqB,YAAY,KAAK;EACtD,CAAE,CAAC,EACH,IAAAwB,oCAAiB,EAAE;IAAEzC;EAAW,CAAE,CAAC,CAClC,CAAC;EAEH,MAAM0C,gBAAgB,GAAG,IAAAC,4BAAmB,EAAC,CAAC;EAC9C,MAAMC,gBAAgB,GAAG,CAAC,CAAEF,gBAAgB,CAAEG,yBAAgB,CAAE;EAChE,MAAMC,aAAa,GAClBF,gBAAgB,IAAI,IAAAG,mCAAY,EAAEnD,IAAK,CAAC,GACrC;IACA,wBAAwB,EAAE,8BAA8B;IACxD,6BAA6B,EAC5B;EACD,CAAC,GACD,CAAC,CAAC;;EAEN;EACA,IAAKC,eAAe,GAAG,CAAC,IAAIP,QAAQ,KAAKoD,gBAAgB,CAACpD,QAAQ,EAAG;IACpE0D,UAAA,CAAAC,YAAA,gBAAAC,gBAAO,EACL,eAAetD,IAAM,uFACvB,CAAC;EACF;EAEA,IAAIuD,iBAAiB,GAAG,KAAK;EAC7B,IACC3D,YAAY,EAAE4D,KAAK,EAAEC,SAAS,EAAEC,MAAM,CAAE,CAAE,CAAC,KAAK,GAAG,IACnD9D,YAAY,EAAE4D,KAAK,EAAEG,YAAY,EAAED,MAAM,CAAE,CAAE,CAAC,KAAK,GAAG,IACtD9D,YAAY,EAAE4D,KAAK,EAAEI,UAAU,EAAEF,MAAM,CAAE,CAAE,CAAC,KAAK,GAAG,IACpD9D,YAAY,EAAE4D,KAAK,EAAEK,WAAW,EAAEH,MAAM,CAAE,CAAE,CAAC,KAAK,GAAG,EACpD;IACDH,iBAAiB,GAAG,IAAI;EACzB;EAEA,OAAO;IACNO,QAAQ,EAAEtD,gBAAgB,KAAK,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;IAClD,GAAGZ,YAAY;IACf,GAAGJ,KAAK;IACRsC,GAAG,EAAEF,UAAU;IACfmC,EAAE,EAAG,SAASrE,QAAU,GAAGiC,UAAY,EAAC;IACxCqC,IAAI,EAAE,UAAU;IAChB,YAAY,EAAExC,UAAU;IACxB,YAAY,EAAE9B,QAAQ;IACtB,WAAW,EAAEM,IAAI;IACjB,YAAY,EAAEE,UAAU;IACxB+D,KAAK,EAAE5D,iBAAiB,GAAG,MAAM,GAAG6D,SAAS;IAC7CvE,SAAS,EAAE,IAAAwE,aAAI,EACd,gCAAgC,EAChC;MACC;MACA,UAAU,EAAE,CAAEtE,SAAS;MACvB,mBAAmB,EAAES,UAAU;MAC/B,aAAa,EAAEF,UAAU;MACzB,gBAAgB,EAAEK,aAAa;MAC/B,mBAAmB,EAAEC,eAAe;MACpC,uBAAuB,EAAEC,mBAAmB;MAC5C,aAAa,EAAEC,UAAU;MACzB,aAAa,EAAEC,UAAU;MACzB,oBAAoB,EAAEC,gBAAgB;MACtC,sBAAsB,EAAEC,iBAAiB;MACzC,yBAAyB,EAAEC,oBAAoB;MAC/C,qBAAqB,EAAEC,iBAAiB;MACxC,sBAAsB,EAAEC,kBAAkB;MAC1C,qBAAqB,EAAEqC,iBAAiB;MACxC,iDAAiD,EAChDpC;IACF,CAAC,EACDxB,SAAS,EACTH,KAAK,CAACG,SAAS,EACfC,YAAY,CAACD,SAAS,EACtByB,gBACD,CAAC;IACDoC,KAAK,EAAE;MAAE,GAAG5D,YAAY,CAAC4D,KAAK;MAAE,GAAGhE,KAAK,CAACgE,KAAK;MAAE,GAAGN;IAAc;EAClE,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA3D,aAAa,CAAC6E,IAAI,GAAGC,+BAAa","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_element","_i18n","_blocks","_compose","_warning","_useMovingAnimation","_privateBlockContext","_useFocusFirstElement","_useIsHovered","_context","_useFocusHandler","_useSelectedBlockEventHandlers","_useZoomOutModeExit","_useBlockRefs","_useIntersectionObserver","_useScrollIntoView","_useFlashEditableBlocks","_useBindingsAttributes","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isSelected","isSubtreeDisabled","hasOverlay","initialPosition","blockEditingMode","isHighlighted","isMultiSelected","isPartiallySelected","isReusable","isDragging","hasChildSelected","isEditingDisabled","hasEditableOutline","isTemporarilyEditingAsBlocks","defaultClassName","isSectionBlock","useContext","PrivateBlockContext","blockLabel","sprintf","__","htmlSuffix","mergedRefs","useMergeRefs","ref","useFocusFirstElement","useBlockRefProvider","useFocusHandler","useEventHandlers","useZoomOutModeExit","useIsHovered","useIntersectionObserver","useMovingAnimation","triggerAnimationOnChange","useDisabled","isDisabled","useFlashEditableBlocks","isEnabled","useScrollIntoView","blockEditContext","useBlockEditContext","hasBlockBindings","blockBindingsKey","bindingsStyle","canBindBlock","globalThis","SCRIPT_DEBUG","warning","hasNegativeMargin","style","marginTop","charAt","marginBottom","marginLeft","marginRight","tabIndex","id","role","inert","undefined","clsx","save","getBlockProps"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { __unstableGetBlockProps as getBlockProps } from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { PrivateBlockContext } from '../private-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport {\n\tblockBindingsKey,\n\tuseBlockEditContext,\n} from '../../block-edit/context';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useZoomOutModeExit } from './use-zoom-out-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { useScrollIntoView } from './use-scroll-into-view';\nimport { useFlashEditableBlocks } from '../../use-flash-editable-blocks';\nimport { canBindBlock } from '../../../hooks/use-bindings-attributes';\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * Use of this hook on the outermost element of a block is required if using API >= v2.\n *\n * @example\n * ```js\n * import { useBlockProps } from '@wordpress/block-editor';\n *\n * export default function Edit() {\n *\n * const blockProps = useBlockProps( {\n * className: 'my-custom-class',\n * style: {\n * color: '#222222',\n * backgroundColor: '#eeeeee'\n * }\n * } )\n *\n * return (\n *\t <div { ...blockProps }>\n *\n * </div>\n * )\n * }\n *\n * ```\n *\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisSelected,\n\t\tisSubtreeDisabled,\n\t\thasOverlay,\n\t\tinitialPosition,\n\t\tblockEditingMode,\n\t\tisHighlighted,\n\t\tisMultiSelected,\n\t\tisPartiallySelected,\n\t\tisReusable,\n\t\tisDragging,\n\t\thasChildSelected,\n\t\tisEditingDisabled,\n\t\thasEditableOutline,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tisSectionBlock,\n\t} = useContext( PrivateBlockContext );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( { clientId, initialPosition } ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( { clientId, isSelected } ),\n\t\tuseZoomOutModeExit(),\n\t\tuseIsHovered( { clientId } ),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( { triggerAnimationOnChange: index, clientId } ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t\tuseFlashEditableBlocks( {\n\t\t\tclientId,\n\t\t\tisEnabled: isSectionBlock,\n\t\t} ),\n\t\tuseScrollIntoView( { isSelected } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\tconst hasBlockBindings = !! blockEditContext[ blockBindingsKey ];\n\tconst bindingsStyle =\n\t\thasBlockBindings && canBindBlock( name )\n\t\t\t? {\n\t\t\t\t\t'--wp-admin-theme-color': 'var(--wp-block-synced-color)',\n\t\t\t\t\t'--wp-admin-theme-color--rgb':\n\t\t\t\t\t\t'var(--wp-block-synced-color--rgb)',\n\t\t\t }\n\t\t\t: {};\n\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\tlet hasNegativeMargin = false;\n\tif (\n\t\twrapperProps?.style?.marginTop?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginBottom?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginLeft?.charAt( 0 ) === '-' ||\n\t\twrapperProps?.style?.marginRight?.charAt( 0 ) === '-'\n\t) {\n\t\thasNegativeMargin = true;\n\t}\n\n\treturn {\n\t\ttabIndex: blockEditingMode === 'disabled' ? -1 : 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tinert: isSubtreeDisabled ? 'true' : undefined,\n\t\tclassName: clsx(\n\t\t\t'block-editor-block-list__block',\n\t\t\t{\n\t\t\t\t// The wp-block className is important for editor styles.\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t\t'is-selected': isSelected,\n\t\t\t\t'is-highlighted': isHighlighted,\n\t\t\t\t'is-multi-selected': isMultiSelected,\n\t\t\t\t'is-partially-selected': isPartiallySelected,\n\t\t\t\t'is-reusable': isReusable,\n\t\t\t\t'is-dragging': isDragging,\n\t\t\t\t'has-child-selected': hasChildSelected,\n\t\t\t\t'is-editing-disabled': isEditingDisabled,\n\t\t\t\t'has-editable-outline': hasEditableOutline,\n\t\t\t\t'has-negative-margin': hasNegativeMargin,\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tdefaultClassName\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style, ...bindingsStyle },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,27 +18,24 @@ var _lockUnlock = require("../../../lock-unlock");
|
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Allows Zoom Out mode to be exited by double clicking in the selected block.
|
|
21
|
-
*
|
|
22
|
-
* @param {string} clientId Block client ID.
|
|
23
21
|
*/
|
|
24
|
-
function useZoomOutModeExit({
|
|
25
|
-
editorMode
|
|
26
|
-
}) {
|
|
22
|
+
function useZoomOutModeExit() {
|
|
27
23
|
const {
|
|
28
24
|
getSettings,
|
|
29
|
-
isZoomOut
|
|
25
|
+
isZoomOut,
|
|
26
|
+
__unstableGetEditorMode
|
|
30
27
|
} = (0, _lockUnlock.unlock)((0, _data.useSelect)(_store.store));
|
|
31
28
|
const {
|
|
32
29
|
__unstableSetEditorMode,
|
|
33
30
|
resetZoomLevel
|
|
34
31
|
} = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
|
|
35
32
|
return (0, _compose.useRefEffect)(node => {
|
|
36
|
-
// In "compose" mode.
|
|
37
|
-
const composeMode = editorMode === 'zoom-out' && isZoomOut();
|
|
38
|
-
if (!composeMode) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
33
|
function onDoubleClick(event) {
|
|
34
|
+
// In "compose" mode.
|
|
35
|
+
const composeMode = __unstableGetEditorMode() === 'zoom-out' && isZoomOut();
|
|
36
|
+
if (!composeMode) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
42
39
|
if (!event.defaultPrevented) {
|
|
43
40
|
event.preventDefault();
|
|
44
41
|
const {
|
|
@@ -55,6 +52,6 @@ function useZoomOutModeExit({
|
|
|
55
52
|
return () => {
|
|
56
53
|
node.removeEventListener('dblclick', onDoubleClick);
|
|
57
54
|
};
|
|
58
|
-
}, [
|
|
55
|
+
}, [getSettings, __unstableSetEditorMode, __unstableGetEditorMode, isZoomOut, resetZoomLevel]);
|
|
59
56
|
}
|
|
60
57
|
//# sourceMappingURL=use-zoom-out-mode-exit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_compose","_store","_lockUnlock","useZoomOutModeExit","
|
|
1
|
+
{"version":3,"names":["_data","require","_compose","_store","_lockUnlock","useZoomOutModeExit","getSettings","isZoomOut","__unstableGetEditorMode","unlock","useSelect","blockEditorStore","__unstableSetEditorMode","resetZoomLevel","useDispatch","useRefEffect","node","onDoubleClick","event","composeMode","defaultPrevented","preventDefault","__experimentalSetIsInserterOpened","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\n\n/**\n * Allows Zoom Out mode to be exited by double clicking in the selected block.\n */\nexport function useZoomOutModeExit() {\n\tconst { getSettings, isZoomOut, __unstableGetEditorMode } = unlock(\n\t\tuseSelect( blockEditorStore )\n\t);\n\n\tconst { __unstableSetEditorMode, resetZoomLevel } = unlock(\n\t\tuseDispatch( blockEditorStore )\n\t);\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tfunction onDoubleClick( event ) {\n\t\t\t\t// In \"compose\" mode.\n\t\t\t\tconst composeMode =\n\t\t\t\t\t__unstableGetEditorMode() === 'zoom-out' && isZoomOut();\n\n\t\t\t\tif ( ! composeMode ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! event.defaultPrevented ) {\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tconst { __experimentalSetIsInserterOpened } = getSettings();\n\n\t\t\t\t\tif (\n\t\t\t\t\t\ttypeof __experimentalSetIsInserterOpened === 'function'\n\t\t\t\t\t) {\n\t\t\t\t\t\t__experimentalSetIsInserterOpened( false );\n\t\t\t\t\t}\n\t\t\t\t\t__unstableSetEditorMode( 'edit' );\n\t\t\t\t\tresetZoomLevel();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'dblclick', onDoubleClick );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'dblclick', onDoubleClick );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tgetSettings,\n\t\t\t__unstableSetEditorMode,\n\t\t\t__unstableGetEditorMode,\n\t\t\tisZoomOut,\n\t\t\tresetZoomLevel,\n\t\t]\n\t);\n}\n"],"mappings":";;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAKA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAVA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;AACO,SAASI,kBAAkBA,CAAA,EAAG;EACpC,MAAM;IAAEC,WAAW;IAAEC,SAAS;IAAEC;EAAwB,CAAC,GAAG,IAAAC,kBAAM,EACjE,IAAAC,eAAS,EAAEC,YAAiB,CAC7B,CAAC;EAED,MAAM;IAAEC,uBAAuB;IAAEC;EAAe,CAAC,GAAG,IAAAJ,kBAAM,EACzD,IAAAK,iBAAW,EAAEH,YAAiB,CAC/B,CAAC;EAED,OAAO,IAAAI,qBAAY,EAChBC,IAAI,IAAM;IACX,SAASC,aAAaA,CAAEC,KAAK,EAAG;MAC/B;MACA,MAAMC,WAAW,GAChBX,uBAAuB,CAAC,CAAC,KAAK,UAAU,IAAID,SAAS,CAAC,CAAC;MAExD,IAAK,CAAEY,WAAW,EAAG;QACpB;MACD;MAEA,IAAK,CAAED,KAAK,CAACE,gBAAgB,EAAG;QAC/BF,KAAK,CAACG,cAAc,CAAC,CAAC;QAEtB,MAAM;UAAEC;QAAkC,CAAC,GAAGhB,WAAW,CAAC,CAAC;QAE3D,IACC,OAAOgB,iCAAiC,KAAK,UAAU,EACtD;UACDA,iCAAiC,CAAE,KAAM,CAAC;QAC3C;QACAV,uBAAuB,CAAE,MAAO,CAAC;QACjCC,cAAc,CAAC,CAAC;MACjB;IACD;IAEAG,IAAI,CAACO,gBAAgB,CAAE,UAAU,EAAEN,aAAc,CAAC;IAElD,OAAO,MAAM;MACZD,IAAI,CAACQ,mBAAmB,CAAE,UAAU,EAAEP,aAAc,CAAC;IACtD,CAAC;EACF,CAAC,EACD,CACCX,WAAW,EACXM,uBAAuB,EACvBJ,uBAAuB,EACvBD,SAAS,EACTM,cAAc,CAEhB,CAAC;AACF","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ var _element = require("@wordpress/element");
|
|
|
10
10
|
var _i18n = require("@wordpress/i18n");
|
|
11
11
|
var _store = require("../../store");
|
|
12
12
|
var _insertionPoint = require("../block-tools/insertion-point");
|
|
13
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
13
14
|
/**
|
|
14
15
|
* WordPress dependencies
|
|
15
16
|
*/
|
|
@@ -31,8 +32,9 @@ function useInBetweenInserter() {
|
|
|
31
32
|
__unstableIsWithinBlockOverlay,
|
|
32
33
|
getBlockEditingMode,
|
|
33
34
|
getBlockName,
|
|
34
|
-
getBlockAttributes
|
|
35
|
-
|
|
35
|
+
getBlockAttributes,
|
|
36
|
+
getParentSectionBlock
|
|
37
|
+
} = (0, _lockUnlock.unlock)((0, _data.useSelect)(_store.store));
|
|
36
38
|
const {
|
|
37
39
|
showInsertionPoint,
|
|
38
40
|
hideInsertionPoint
|
|
@@ -95,7 +97,7 @@ function useInBetweenInserter() {
|
|
|
95
97
|
// Don't show the insertion point if a parent block has an "overlay"
|
|
96
98
|
// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337
|
|
97
99
|
const clientId = element.id.slice('block-'.length);
|
|
98
|
-
if (!clientId || __unstableIsWithinBlockOverlay(clientId)) {
|
|
100
|
+
if (!clientId || __unstableIsWithinBlockOverlay(clientId) || !!getParentSectionBlock(clientId)) {
|
|
99
101
|
return;
|
|
100
102
|
}
|
|
101
103
|
|