@wordpress/block-editor 12.17.0 → 12.18.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 +4 -0
- package/README.md +32 -0
- package/build/components/block-draggable/index.js +11 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-edit/context.js +3 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/index.js +4 -2
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-editing-mode/index.js +6 -3
- package/build/components/block-editing-mode/index.js.map +1 -1
- package/build/components/block-inspector/index.js +5 -2
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +4 -3
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +9 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +30 -4
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/private-block-context.js +1 -1
- package/build/components/block-list/private-block-context.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +1 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/toolbar.js +8 -2
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-popover/inbetween.js +15 -3
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-preview/auto.js +1 -1
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +3 -2
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +2 -4
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +12 -1
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/index.js +119 -90
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +10 -3
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +7 -1
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/global-styles/border-panel.js +5 -14
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/effects-panel.js +7 -1
- package/build/components/global-styles/effects-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +3 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +31 -14
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/iframe/get-compatibility-styles.js +99 -0
- package/build/components/iframe/get-compatibility-styles.js.map +1 -0
- package/build/components/iframe/index.js +2 -3
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.js +16 -2
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +16 -2
- package/build/components/index.native.js.map +1 -1
- package/build/components/inspector-controls/groups.js +2 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls-tabs/styles-tab.js +3 -0
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -2
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/link-control/link-preview.js +30 -26
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js +1 -9
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/list-view/block-contents.js +3 -1
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block.js +10 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +29 -8
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +100 -32
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js +52 -4
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +2 -2
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/list-view/use-list-view-block-indexes.js +30 -0
- package/build/components/list-view/use-list-view-block-indexes.js.map +1 -0
- package/build/components/list-view/use-list-view-drop-zone.js +56 -5
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/utils.js +92 -0
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/provider/index.js +1 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/recursion-provider/index.js +21 -0
- package/build/components/recursion-provider/index.js.map +1 -1
- package/build/components/rich-text/index.js +30 -6
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +9 -9
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +30 -7
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +50 -8
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/hooks/block-hooks.js +5 -14
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/content-lock-ui.js +17 -42
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/effects.js +66 -0
- package/build/hooks/effects.js.map +1 -0
- package/build/hooks/index.js +15 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +13 -0
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/style.js +6 -2
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/supports.js +2 -1
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.native.js +2 -2
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +115 -0
- package/build/hooks/use-bindings-attributes.js.map +1 -0
- package/build/hooks/use-shadow-props.js +46 -0
- package/build/hooks/use-shadow-props.js.map +1 -0
- package/build/hooks/utils.js +11 -7
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +14 -0
- package/build/index.js.map +1 -1
- package/build/store/actions.js +10 -6
- package/build/store/actions.js.map +1 -1
- package/build/store/index.js +2 -0
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +37 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +60 -9
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +44 -3
- package/build/store/reducer.js.map +1 -1
- package/build/store/resolvers.js +27 -0
- package/build/store/resolvers.js.map +1 -0
- package/build/store/selectors.js +94 -56
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +5 -26
- package/build/store/utils.js.map +1 -1
- package/build/utils/index.js +0 -16
- package/build/utils/index.js.map +1 -1
- package/build/utils/math.js +13 -0
- package/build/utils/math.js.map +1 -1
- package/build/utils/object.js +17 -0
- package/build/utils/object.js.map +1 -1
- package/build/utils/transform-styles/index.js +37 -27
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +11 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-edit/context.js +1 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/index.js +5 -3
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +7 -4
- package/build-module/components/block-editing-mode/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +5 -2
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +6 -5
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +11 -7
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +31 -5
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/private-block-context.js +1 -1
- package/build-module/components/block-list/private-block-context.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +8 -2
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +15 -3
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-preview/auto.js +3 -3
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +3 -2
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -4
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +12 -1
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/index.js +116 -86
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +10 -3
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +7 -1
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +5 -14
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/effects-panel.js +7 -1
- package/build-module/components/global-styles/effects-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +3 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +32 -15
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js +93 -0
- package/build-module/components/iframe/get-compatibility-styles.js.map +1 -0
- package/build-module/components/iframe/index.js +2 -3
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.js +1 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +2 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/styles-tab.js +3 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -2
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +32 -28
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js +1 -8
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +3 -1
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block.js +10 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +30 -9
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +99 -32
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js +54 -6
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +2 -2
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/list-view/use-list-view-block-indexes.js +23 -0
- package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -0
- package/build-module/components/list-view/use-list-view-drop-zone.js +58 -7
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/utils.js +91 -0
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/provider/index.js +1 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/recursion-provider/index.js +17 -0
- package/build-module/components/recursion-provider/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +30 -6
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +9 -9
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +31 -8
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +51 -9
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/hooks/block-hooks.js +5 -14
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +19 -43
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/effects.js +51 -0
- package/build-module/hooks/effects.js.map +1 -0
- package/build-module/hooks/index.js +3 -2
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +1 -0
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/style.js +6 -2
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/supports.js +2 -1
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.native.js +2 -2
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +112 -0
- package/build-module/hooks/use-bindings-attributes.js.map +1 -0
- package/build-module/hooks/use-shadow-props.js +39 -0
- package/build-module/hooks/use-shadow-props.js.map +1 -0
- package/build-module/hooks/utils.js +13 -9
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +10 -6
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/index.js +2 -0
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +35 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +53 -8
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +43 -3
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/resolvers.js +20 -0
- package/build-module/store/resolvers.js.map +1 -0
- package/build-module/store/selectors.js +89 -52
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +3 -23
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/index.js +0 -1
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/math.js +12 -0
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/object.js +16 -0
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +36 -27
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +33 -16
- package/build-style/content.css +33 -16
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +169 -114
- package/build-style/style.css +169 -114
- package/package.json +31 -31
- package/src/components/block-canvas/style.scss +8 -1
- package/src/components/block-draggable/index.js +16 -5
- package/src/components/block-edit/context.js +1 -0
- package/src/components/block-edit/index.js +4 -0
- package/src/components/block-editing-mode/index.js +12 -7
- package/src/components/block-inspector/index.js +5 -2
- package/src/components/block-list/block.js +5 -4
- package/src/components/block-list/block.native.js +13 -3
- package/src/components/block-list/content.scss +34 -5
- package/src/components/block-list/index.js +52 -16
- package/src/components/block-list/private-block-context.js +1 -1
- package/src/components/block-list/use-in-between-inserter.js +1 -2
- package/src/components/block-lock/toolbar.js +10 -2
- package/src/components/block-popover/inbetween.js +22 -2
- package/src/components/block-preview/auto.js +3 -3
- package/src/components/block-removal-warning-modal/index.js +3 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +2 -7
- package/src/components/block-switcher/block-transformations-menu.js +18 -1
- package/src/components/block-switcher/index.js +133 -111
- package/src/components/block-switcher/style.scss +6 -4
- package/src/components/block-switcher/test/index.js +113 -230
- package/src/components/block-toolbar/style.scss +22 -18
- package/src/components/block-tools/insertion-point.js +15 -2
- package/src/components/block-tools/style.scss +8 -7
- package/src/components/font-sizes/fluid-utils.js +8 -2
- package/src/components/font-sizes/test/fluid-utils.js +9 -0
- package/src/components/global-styles/border-panel.js +7 -17
- package/src/components/global-styles/effects-panel.js +16 -1
- package/src/components/global-styles/hooks.js +2 -0
- package/src/components/global-styles/typography-panel.js +45 -13
- package/src/components/iframe/get-compatibility-styles.js +120 -0
- package/src/components/iframe/index.js +2 -3
- package/src/components/index.js +4 -2
- package/src/components/index.native.js +4 -2
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/styles-tab.js +1 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -0
- package/src/components/link-control/link-preview.js +31 -55
- package/src/components/link-control/search-input.js +1 -9
- package/src/components/link-control/style.scss +31 -85
- package/src/components/link-control/test/index.js +2 -1
- package/src/components/list-view/block-contents.js +5 -1
- package/src/components/list-view/block.js +9 -0
- package/src/components/list-view/branch.js +30 -10
- package/src/components/list-view/drop-indicator.js +139 -46
- package/src/components/list-view/index.js +74 -3
- package/src/components/list-view/leaf.js +2 -2
- package/src/components/list-view/style.scss +102 -13
- package/src/components/list-view/test/use-list-view-drop-zone.js +4 -0
- package/src/components/list-view/test/utils.js +218 -1
- package/src/components/list-view/use-list-view-block-indexes.js +29 -0
- package/src/components/list-view/use-list-view-drop-zone.js +78 -6
- package/src/components/list-view/utils.js +116 -0
- package/src/components/provider/index.js +3 -1
- package/src/components/recursion-provider/README.md +2 -2
- package/src/components/recursion-provider/index.js +17 -0
- package/src/components/rich-text/index.js +48 -10
- package/src/components/rich-text/native/index.native.js +10 -10
- package/src/components/use-block-drop-zone/index.js +60 -19
- package/src/components/use-block-drop-zone/test/index.js +32 -61
- package/src/components/use-on-block-drop/index.js +92 -11
- package/src/hooks/block-hooks.js +5 -17
- package/src/hooks/content-lock-ui.js +15 -55
- package/src/hooks/effects.js +57 -0
- package/src/hooks/index.js +2 -2
- package/src/hooks/index.native.js +1 -0
- package/src/hooks/style.js +8 -0
- package/src/hooks/supports.js +2 -0
- package/src/hooks/test/effects.js +39 -0
- package/src/hooks/typography.native.js +2 -2
- package/src/hooks/use-bindings-attributes.js +148 -0
- package/src/hooks/use-shadow-props.js +37 -0
- package/src/hooks/utils.js +26 -10
- package/src/index.js +2 -0
- package/src/store/actions.js +9 -4
- package/src/store/index.js +2 -0
- package/src/store/private-actions.js +32 -0
- package/src/store/private-selectors.js +78 -21
- package/src/store/reducer.js +49 -2
- package/src/store/resolvers.js +17 -0
- package/src/store/selectors.js +169 -161
- package/src/store/test/registry-selectors.js +431 -0
- package/src/store/test/selectors.js +14 -400
- package/src/store/utils.js +10 -33
- package/src/style.scss +0 -1
- package/src/utils/index.js +0 -1
- package/src/utils/math.js +12 -0
- package/src/utils/object.js +16 -0
- package/src/utils/transform-styles/index.js +52 -37
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/iframe/use-compatibility-styles.js +0 -100
- package/build/components/iframe/use-compatibility-styles.js.map +0 -1
- package/build/hooks/custom-fields.js +0 -106
- package/build/hooks/custom-fields.js.map +0 -1
- package/build/utils/block-variation-transforms.js +0 -42
- package/build/utils/block-variation-transforms.js.map +0 -1
- package/build-module/components/iframe/use-compatibility-styles.js +0 -94
- package/build-module/components/iframe/use-compatibility-styles.js.map +0 -1
- package/build-module/hooks/custom-fields.js +0 -99
- package/build-module/hooks/custom-fields.js.map +0 -1
- package/build-module/utils/block-variation-transforms.js +0 -35
- package/build-module/utils/block-variation-transforms.js.map +0 -1
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +0 -116
- package/src/components/contrast-checker/style.scss +0 -3
- package/src/components/iframe/use-compatibility-styles.js +0 -122
- package/src/hooks/custom-fields.js +0 -115
- package/src/utils/block-variation-transforms.js +0 -38
- package/src/utils/test/block-variation-transforms.js +0 -94
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_blocks","_components","_data","_compose","_dom","_blockEdit","_blockInvalidWarning","_blockCrashWarning","_blockCrashBoundary","_blockHtml","_useBlockProps","_store","_layout","_privateBlockContext","_lockUnlock","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","classnames","style","Block","children","isHtml","props","_react","createElement","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","blockType","getBlockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","serializeRawBlock","getSaveContent","RawHTML","safeHTML","Fragment","display","apiVersion","dataAlign","restWrapperProps","Provider","value","fallback","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","every","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","replacementBlocks","Array","isArray","selectionEnabled","compose","withFilters","BlockListBlockProvider","selectedProps","useSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","isTyping","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","hasBlockMovingClientId","__unstableHasActiveBlockOverlayActive","__unstableGetEditorMode","getSelectedBlocksInitialCaretPosition","unlock","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","blocksStore","_isSelected","templateLock","canMove","blockName","match","outlineMode","supportsLayout","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","typing","hasLightBlockWrapper","movingClientId","isTemporarilyEditingAsBlocks","blockEditingMode","id","blockApiVersion","blockTitle","title","isSubtreeDisabled","isOutlineEnabled","hasOverlay","isHighlighted","isPartiallySelected","isReusable","isReusableBlock","isDragging","hasChildSelected","removeOutline","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","defaultClassName","getBlockDefaultClassName","privateContext","_default","pure","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, RawHTML, useContext } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport { withDispatch, useDispatch, useSelect } from '@wordpress/data';\nimport { compose, pure } 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\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 = classnames( 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( () => removeBlock( clientId ), [ clientId ] );\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/>\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={ classnames( '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\n\trestWrapperProps.className = classnames(\n\t\trestWrapperProps.className,\n\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t! ( dataAlign && isSticky ) && className\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\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: restWrapperProps,\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} = 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\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\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\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\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 replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\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}\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\tremoveBlock( clientId );\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 necesssary 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\t__unstableGetBlockWithoutInnerBlocks,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\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\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisTyping,\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\thasBlockMovingClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\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 block = __unstableGetBlockWithoutInnerBlocks( 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 ( ! block ) {\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 _isSelected = isBlockSelected( clientId );\n\t\t\tconst templateLock = getTemplateLock( rootClientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\t\t\tconst canMove = canMoveBlock( clientId, rootClientId );\n\t\t\tconst { name: blockName, attributes, isValid } = block;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst { outlineMode, supportsLayout } = getSettings();\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 typing = isTyping();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst movingClientId = hasBlockMovingClientId();\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! templateLock,\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t\t\t// access the block prop.\n\t\t\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t\t\t// This is kept for backward compatibility reasons.\n\t\t\t\tblock,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\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\tindex: getBlockIndex( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled: isBlockSubtreeDisabled( clientId ),\n\t\t\t\tisOutlineEnabled: outlineMode,\n\t\t\t\thasOverlay: __unstableHasActiveBlockOverlayActive( clientId ),\n\t\t\t\tinitialPosition:\n\t\t\t\t\t_isSelected && __unstableGetEditorMode() === 'edit'\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\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tremoveOutline: _isSelected && outlineMode && typing,\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\tgetBlockRootClientId( clientId )\n\t\t\t\t\t),\n\t\t\t\tisEditingDisabled:\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'disabled',\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};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tmode,\n\t\tisSelectionEnabled,\n\t\tisLocked,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\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\tisOutlineEnabled,\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\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\tclassName,\n\t\tdefaultClassName,\n\t} = selectedProps;\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\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\tisOutlineEnabled,\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\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\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 pure( BlockListBlockProvider );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_blocks","_components","_data","_compose","_dom","_blockEdit","_blockInvalidWarning","_blockCrashWarning","_blockCrashBoundary","_blockHtml","_useBlockProps","_store","_layout","_privateBlockContext","_lockUnlock","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","classnames","style","Block","children","isHtml","props","_react","createElement","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","blockType","getBlockType","getEditWrapperProps","isAligned","isSticky","includes","saveContent","serializeRawBlock","getSaveContent","RawHTML","safeHTML","Fragment","display","apiVersion","dataAlign","restWrapperProps","Provider","value","fallback","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","select","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","rootClientId","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","every","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","replacementBlocks","Array","isArray","selectionEnabled","compose","withFilters","BlockListBlockProvider","selectedProps","useSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","isFirstMultiSelectedBlock","hasSelectedInnerBlock","isTyping","isBlockMultiSelected","isBlockSubtreeDisabled","isBlockHighlighted","__unstableIsFullySelected","__unstableSelectionHasUnmergeableBlock","isBlockBeingDragged","hasBlockMovingClientId","__unstableHasActiveBlockOverlayActive","__unstableGetEditorMode","getSelectedBlocksInitialCaretPosition","unlock","hasBlockSupport","_hasBlockSupport","getActiveBlockVariation","blocksStore","_isSelected","templateLock","canMove","blockName","match","outlineMode","supportsLayout","isMultiSelected","checkDeep","isAncestorOfSelectedBlock","typing","hasLightBlockWrapper","movingClientId","isTemporarilyEditingAsBlocks","id","blockApiVersion","blockTitle","title","isSubtreeDisabled","isOutlineEnabled","hasOverlay","isHighlighted","isPartiallySelected","isReusable","isReusableBlock","isDragging","hasChildSelected","removeOutline","isBlockMovingMode","canInsertMovingBlock","isEditingDisabled","defaultClassName","getBlockDefaultClassName","privateContext","_default","memo","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { memo, useCallback, RawHTML, useContext } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisReusableBlock,\n\tgetBlockDefaultClassName,\n\tstore as blocksStore,\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\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 = classnames( 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( () => removeBlock( clientId ), [ clientId ] );\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/>\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={ classnames( '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\n\trestWrapperProps.className = classnames(\n\t\trestWrapperProps.className,\n\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t! ( dataAlign && isSticky ) && className\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\treturn (\n\t\t<PrivateBlockContext.Provider\n\t\t\tvalue={ {\n\t\t\t\twrapperProps: restWrapperProps,\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} = 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\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\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\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\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 replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\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}\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\tremoveBlock( clientId );\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\t__unstableGetBlockWithoutInnerBlocks,\n\t\t\t\tcanRemoveBlock,\n\t\t\t\tcanMoveBlock,\n\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\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\n\t\t\t\tgetBlockIndex,\n\t\t\t\tisTyping,\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\thasBlockMovingClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t\tgetBlockRootClientId,\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 block = __unstableGetBlockWithoutInnerBlocks( 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 ( ! block ) {\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 _isSelected = isBlockSelected( clientId );\n\t\t\tconst templateLock = getTemplateLock( rootClientId );\n\t\t\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\t\t\tconst canMove = canMoveBlock( clientId, rootClientId );\n\t\t\tconst { name: blockName, attributes, isValid } = block;\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\t\t\tconst { outlineMode, supportsLayout } = getSettings();\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 typing = isTyping();\n\t\t\tconst hasLightBlockWrapper = blockType?.apiVersion > 1;\n\t\t\tconst movingClientId = hasBlockMovingClientId();\n\n\t\t\treturn {\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\t\t\tisLocked: !! templateLock,\n\t\t\t\tcanRemove,\n\t\t\t\tcanMove,\n\t\t\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t\t\t// access the block prop.\n\t\t\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t\t\t// This is kept for backward compatibility reasons.\n\t\t\t\tblock,\n\t\t\t\tname: blockName,\n\t\t\t\tattributes,\n\t\t\t\tisValid,\n\t\t\t\tisSelected: _isSelected,\n\t\t\t\tthemeSupportsLayout: supportsLayout,\n\t\t\t\tisTemporarilyEditingAsBlocks:\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks() === clientId,\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\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\tindex: getBlockIndex( clientId ),\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisSubtreeDisabled: isBlockSubtreeDisabled( clientId ),\n\t\t\t\tisOutlineEnabled: outlineMode,\n\t\t\t\thasOverlay: __unstableHasActiveBlockOverlayActive( clientId ),\n\t\t\t\tinitialPosition:\n\t\t\t\t\t_isSelected && __unstableGetEditorMode() === 'edit'\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\tisReusable: isReusableBlock( blockType ),\n\t\t\t\tisDragging: isBlockBeingDragged( clientId ),\n\t\t\t\thasChildSelected: isAncestorOfSelectedBlock,\n\t\t\t\tremoveOutline: _isSelected && outlineMode && typing,\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\tgetBlockRootClientId( clientId )\n\t\t\t\t\t),\n\t\t\t\tisEditingDisabled:\n\t\t\t\t\tgetBlockEditingMode( clientId ) === 'disabled',\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};\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\tconst {\n\t\tmode,\n\t\tisSelectionEnabled,\n\t\tisLocked,\n\t\tcanRemove,\n\t\tcanMove,\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\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\tisOutlineEnabled,\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\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\tclassName,\n\t\tdefaultClassName,\n\t} = selectedProps;\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\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\tisOutlineEnabled,\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\tremoveOutline,\n\t\tisBlockMovingMode,\n\t\tcanInsertMovingBlock,\n\t\tisEditingDisabled,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tdefaultClassName,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\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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"}
|
|
@@ -155,7 +155,8 @@ function BlockListBlock({
|
|
|
155
155
|
isDescendentBlockSelected,
|
|
156
156
|
isParentSelected,
|
|
157
157
|
order,
|
|
158
|
-
mayDisplayControls
|
|
158
|
+
mayDisplayControls,
|
|
159
|
+
blockEditingMode
|
|
159
160
|
} = (0, _data.useSelect)(select => {
|
|
160
161
|
const {
|
|
161
162
|
getBlockCount,
|
|
@@ -167,7 +168,8 @@ function BlockListBlock({
|
|
|
167
168
|
hasSelectedInnerBlock,
|
|
168
169
|
getBlockName,
|
|
169
170
|
isFirstMultiSelectedBlock,
|
|
170
|
-
getMultiSelectedBlockClientIds
|
|
171
|
+
getMultiSelectedBlockClientIds,
|
|
172
|
+
getBlockEditingMode
|
|
171
173
|
} = select(_store.store);
|
|
172
174
|
const currentBlockType = (0, _blocks.getBlockType)(name || 'core/missing');
|
|
173
175
|
const currentBlockCategory = currentBlockType?.category;
|
|
@@ -201,7 +203,8 @@ function BlockListBlock({
|
|
|
201
203
|
isDescendentBlockSelected: descendentBlockSelected,
|
|
202
204
|
isParentSelected: parentSelected,
|
|
203
205
|
order: blockOrder,
|
|
204
|
-
mayDisplayControls: isSelected || isFirstMultiSelectedBlock(clientId) && getMultiSelectedBlockClientIds().every(id => getBlockName(id) === name)
|
|
206
|
+
mayDisplayControls: isSelected || isFirstMultiSelectedBlock(clientId) && getMultiSelectedBlockClientIds().every(id => getBlockName(id) === name),
|
|
207
|
+
blockEditingMode: getBlockEditingMode(clientId)
|
|
205
208
|
};
|
|
206
209
|
}, [clientId, isSelected, name, rootClientId]);
|
|
207
210
|
const {
|
|
@@ -300,7 +303,8 @@ function BlockListBlock({
|
|
|
300
303
|
toggleSelection: toggleSelection,
|
|
301
304
|
__unstableParentLayout: Object.keys(parentLayout).length ? parentLayout : undefined,
|
|
302
305
|
wrapperProps: wrapperProps,
|
|
303
|
-
mayDisplayControls: mayDisplayControls
|
|
306
|
+
mayDisplayControls: mayDisplayControls,
|
|
307
|
+
blockEditingMode: blockEditingMode
|
|
304
308
|
}), (0, _react.createElement)(_reactNative.View, {
|
|
305
309
|
onLayout: onLayout
|
|
306
310
|
})));
|
|
@@ -517,7 +521,7 @@ const applyWithDispatch = (0, _data.withDispatch)((dispatch, ownProps, registry)
|
|
|
517
521
|
}
|
|
518
522
|
};
|
|
519
523
|
});
|
|
520
|
-
var _default = (0, _compose.compose)(
|
|
524
|
+
var _default = (0, _compose.compose)(_element.memo, applyWithSelect, applyWithDispatch,
|
|
521
525
|
// Block is sometimes not mounted at the right time, causing it be undefined
|
|
522
526
|
// see issue for more info
|
|
523
527
|
// https://github.com/WordPress/gutenberg/issues/17013
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_classnames","_interopRequireDefault","_element","_components","_blocks","_data","_compose","_blockEdit","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useScrollUponInsertion","_useSettings","EMPTY_ARRAY","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","classnames","style","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","ref","useRef","isLayoutCalculated","setIsLayoutCalculated","useState","useScrollUponInsertion","elementRef","onLayout","useCallback","_react","createElement","Pressable","accessibilityRole","disabled","onPress","default","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","wrapperProps","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","mayDisplayControls","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","getBlockName","isFirstMultiSelectedBlock","getMultiSelectedBlockClientIds","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","every","id","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","value","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","View","applyWithSelect","withSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","selectionEnabled","_default","compose","pure","ifCondition","withFilters","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState, useRef } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n\twithFilters,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useScrollUponInsertion from './use-scroll-upon-insertion';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\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 = classnames( 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 BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\tconst ref = useRef();\n\tconst [ isLayoutCalculated, setIsLayoutCalculated ] = useState();\n\tuseScrollUponInsertion( {\n\t\tclientId,\n\t\tisSelected,\n\t\tisLayoutCalculated,\n\t\telementRef: ref,\n\t} );\n\tconst onLayout = useCallback( () => {\n\t\tsetIsLayoutCalculated( true );\n\t}, [] );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t\tref={ ref }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n\twrapperProps,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t\tmayDisplayControls,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\tisSelected ||\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 ) === name\n\t\t\t\t\t\t) ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\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\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps?.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps?.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\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} = 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\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\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\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\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 replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\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}\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\tremoveBlock( clientId );\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\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\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\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_classnames","_interopRequireDefault","_element","_components","_blocks","_data","_compose","_blockEdit","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useScrollUponInsertion","_useSettings","EMPTY_ARRAY","mergeWrapperProps","propsA","propsB","newProps","hasOwnProperty","className","classnames","style","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","ref","useRef","isLayoutCalculated","setIsLayoutCalculated","useState","useScrollUponInsertion","elementRef","onLayout","useCallback","_react","createElement","Pressable","accessibilityRole","disabled","onPress","default","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","wrapperProps","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","mayDisplayControls","blockEditingMode","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","getBlockName","isFirstMultiSelectedBlock","getMultiSelectedBlockClientIds","getBlockEditingMode","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","every","id","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","value","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","View","applyWithSelect","withSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","selectionEnabled","_default","compose","memo","ifCondition","withFilters","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n\twithFilters,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useScrollUponInsertion from './use-scroll-upon-insertion';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\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 = classnames( 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 BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\tconst ref = useRef();\n\tconst [ isLayoutCalculated, setIsLayoutCalculated ] = useState();\n\tuseScrollUponInsertion( {\n\t\tclientId,\n\t\tisSelected,\n\t\tisLayoutCalculated,\n\t\telementRef: ref,\n\t} );\n\tconst onLayout = useCallback( () => {\n\t\tsetIsLayoutCalculated( true );\n\t}, [] );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t\tref={ ref }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n\twrapperProps,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t\tmayDisplayControls,\n\t\tblockEditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tgetBlockName,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t\tmayDisplayControls:\n\t\t\t\t\tisSelected ||\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 ) === name\n\t\t\t\t\t\t) ),\n\t\t\t\tblockEditingMode: getBlockEditingMode( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\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\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps?.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps?.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t\tmayDisplayControls={ mayDisplayControls }\n\t\t\t\t\t\t\tblockEditingMode={ blockEditingMode }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\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} = 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\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\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\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\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 replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\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}\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\tremoveBlock( clientId );\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\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\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\nexport default compose(\n\tmemo,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ var _blockSelectionClearer = require("../block-selection-clearer");
|
|
|
21
21
|
var _innerBlocks = require("../inner-blocks");
|
|
22
22
|
var _context = require("../block-edit/context");
|
|
23
23
|
var _observeTyping = require("../observe-typing");
|
|
24
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
24
25
|
/**
|
|
25
26
|
* External dependencies
|
|
26
27
|
*/
|
|
@@ -105,6 +106,26 @@ function Root({
|
|
|
105
106
|
...innerBlocksProps
|
|
106
107
|
}));
|
|
107
108
|
}
|
|
109
|
+
function StopEditingAsBlocksOnOutsideSelect({
|
|
110
|
+
clientId
|
|
111
|
+
}) {
|
|
112
|
+
const {
|
|
113
|
+
stopEditingAsBlocks
|
|
114
|
+
} = (0, _lockUnlock.unlock)((0, _data.useDispatch)(_store.store));
|
|
115
|
+
const isBlockOrDescendantSelected = (0, _data.useSelect)(select => {
|
|
116
|
+
const {
|
|
117
|
+
isBlockSelected,
|
|
118
|
+
hasSelectedInnerBlock
|
|
119
|
+
} = select(_store.store);
|
|
120
|
+
return isBlockSelected(clientId) || hasSelectedInnerBlock(clientId, true);
|
|
121
|
+
}, [clientId]);
|
|
122
|
+
(0, _element.useEffect)(() => {
|
|
123
|
+
if (!isBlockOrDescendantSelected) {
|
|
124
|
+
stopEditingAsBlocks(clientId);
|
|
125
|
+
}
|
|
126
|
+
}, [isBlockOrDescendantSelected, clientId, stopEditingAsBlocks]);
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
108
129
|
function BlockList(settings) {
|
|
109
130
|
return (0, _react.createElement)(_context.BlockEditContextProvider, {
|
|
110
131
|
value: _context.DEFAULT_BLOCK_EDIT_CONTEXT
|
|
@@ -122,17 +143,20 @@ function Items({
|
|
|
122
143
|
const {
|
|
123
144
|
order,
|
|
124
145
|
selectedBlocks,
|
|
125
|
-
visibleBlocks
|
|
146
|
+
visibleBlocks,
|
|
147
|
+
temporarilyEditingAsBlocks
|
|
126
148
|
} = (0, _data.useSelect)(select => {
|
|
127
149
|
const {
|
|
128
150
|
getBlockOrder,
|
|
129
151
|
getSelectedBlockClientIds,
|
|
130
|
-
__unstableGetVisibleBlocks
|
|
152
|
+
__unstableGetVisibleBlocks,
|
|
153
|
+
__unstableGetTemporarilyEditingAsBlocks
|
|
131
154
|
} = select(_store.store);
|
|
132
155
|
return {
|
|
133
156
|
order: getBlockOrder(rootClientId),
|
|
134
157
|
selectedBlocks: getSelectedBlockClientIds(),
|
|
135
|
-
visibleBlocks: __unstableGetVisibleBlocks()
|
|
158
|
+
visibleBlocks: __unstableGetVisibleBlocks(),
|
|
159
|
+
temporarilyEditingAsBlocks: __unstableGetTemporarilyEditingAsBlocks()
|
|
136
160
|
};
|
|
137
161
|
}, [rootClientId]);
|
|
138
162
|
return (0, _react.createElement)(_layout.LayoutProvider, {
|
|
@@ -146,7 +170,9 @@ function Items({
|
|
|
146
170
|
}, (0, _react.createElement)(_block.default, {
|
|
147
171
|
rootClientId: rootClientId,
|
|
148
172
|
clientId: clientId
|
|
149
|
-
}))), order.length < 1 && placeholder, (0, _react.createElement)(
|
|
173
|
+
}))), order.length < 1 && placeholder, !!temporarilyEditingAsBlocks && (0, _react.createElement)(StopEditingAsBlocksOnOutsideSelect, {
|
|
174
|
+
clientId: temporarilyEditingAsBlocks
|
|
175
|
+
}), (0, _react.createElement)(_blockListAppender.default, {
|
|
150
176
|
tagName: __experimentalAppenderTagName,
|
|
151
177
|
rootClientId: rootClientId,
|
|
152
178
|
renderAppender: renderAppender
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_compose","_element","_block","_blockListAppender","_useInBetweenInserter","_store","_layout","_blockSelectionClearer","_innerBlocks","_context","_observeTyping","IntersectionObserver","createContext","exports","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","isLargeViewport","useViewportMatch","isOutlineMode","isFocusMode","editorMode","useSelect","select","getSettings","__unstableGetEditorMode","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","classnames","_react","createElement","Provider","value","BlockList","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","Items","placeholder","rootClientId","renderAppender","__experimentalAppenderTagName","layout","defaultLayout","order","selectedBlocks","visibleBlocks","getBlockOrder","getSelectedBlockClientIds","__unstableGetVisibleBlocks","LayoutProvider","map","AsyncModeProvider","key","has","includes","default","length","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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 { createContext, useMemo, useCallback } 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';\n\nexport const IntersectionObserver = createContext();\nconst pendingBlockVisibilityUpdatesPerRegistry = new WeakMap();\n\nfunction Root( { className, ...settings } ) {\n\tconst isLargeViewport = useViewportMatch( 'medium' );\n\tconst { isOutlineMode, isFocusMode, editorMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetEditorMode } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode,\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t};\n\t\t},\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: classnames( '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</IntersectionObserver.Provider>\n\t);\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\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\tconst { order, selectedBlocks, visibleBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\torder: getBlockOrder( rootClientId ),\n\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\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<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</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\n\t\t\t<BlockListAppender\n\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\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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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_data","_compose","_element","_block","_blockListAppender","_useInBetweenInserter","_store","_layout","_blockSelectionClearer","_innerBlocks","_context","_observeTyping","_lockUnlock","IntersectionObserver","createContext","exports","pendingBlockVisibilityUpdatesPerRegistry","WeakMap","Root","className","settings","isLargeViewport","useViewportMatch","isOutlineMode","isFocusMode","editorMode","useSelect","select","getSettings","__unstableGetEditorMode","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","classnames","_react","createElement","Provider","value","StopEditingAsBlocksOnOutsideSelect","stopEditingAsBlocks","unlock","isBlockOrDescendantSelected","isBlockSelected","hasSelectedInnerBlock","useEffect","BlockList","BlockEditContextProvider","DEFAULT_BLOCK_EDIT_CONTEXT","Items","placeholder","rootClientId","renderAppender","__experimentalAppenderTagName","layout","defaultLayout","order","selectedBlocks","visibleBlocks","temporarilyEditingAsBlocks","getBlockOrder","getSelectedBlockClientIds","__unstableGetVisibleBlocks","__unstableGetTemporarilyEditingAsBlocks","LayoutProvider","map","AsyncModeProvider","key","has","includes","default","length","tagName","BlockListItems","props"],"sources":["@wordpress/block-editor/src/components/block-list/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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 { 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, editorMode } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __unstableGetEditorMode } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { outlineMode, focusMode } = getSettings();\n\t\t\treturn {\n\t\t\t\tisOutlineMode: outlineMode,\n\t\t\t\tisFocusMode: focusMode,\n\t\t\t\teditorMode: __unstableGetEditorMode(),\n\t\t\t};\n\t\t},\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: classnames( '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</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\nfunction Items( {\n\tplaceholder,\n\trootClientId,\n\trenderAppender,\n\t__experimentalAppenderTagName,\n\tlayout = defaultLayout,\n} ) {\n\tconst { order, selectedBlocks, visibleBlocks, temporarilyEditingAsBlocks } =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\tconst {\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t\t__unstableGetVisibleBlocks,\n\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\t} = select( blockEditorStore );\n\t\t\t\treturn {\n\t\t\t\t\torder: getBlockOrder( rootClientId ),\n\t\t\t\t\tselectedBlocks: getSelectedBlockClientIds(),\n\t\t\t\t\tvisibleBlocks: __unstableGetVisibleBlocks(),\n\t\t\t\t\ttemporarilyEditingAsBlocks:\n\t\t\t\t\t\t__unstableGetTemporarilyEditingAsBlocks(),\n\t\t\t\t};\n\t\t\t},\n\t\t\t[ rootClientId ]\n\t\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<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</AsyncModeProvider>\n\t\t\t) ) }\n\t\t\t{ order.length < 1 && placeholder }\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\t<BlockListAppender\n\t\t\t\ttagName={ __experimentalAppenderTagName }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\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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"}
|
|
@@ -9,6 +9,6 @@ var _element = require("@wordpress/element");
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
-
const PrivateBlockContext = (0, _element.createContext)(
|
|
12
|
+
const PrivateBlockContext = (0, _element.createContext)({});
|
|
13
13
|
exports.PrivateBlockContext = PrivateBlockContext;
|
|
14
14
|
//# sourceMappingURL=private-block-context.js.map
|