@wordpress/block-editor 12.15.0 → 12.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +9 -4
- package/build/components/block-canvas/index.js +22 -6
- package/build/components/block-canvas/index.js.map +1 -1
- package/build/components/block-card/index.js +1 -1
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-controls/hook.js +3 -23
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-edit/context.js +5 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/index.js +18 -9
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-info-slot-fill/index.js +3 -4
- package/build/components/block-info-slot-fill/index.js.map +1 -1
- package/build/components/block-list/block.js +28 -9
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +14 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +61 -18
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +4 -29
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-is-hovered.js +4 -14
- package/build/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-patterns-list/index.js +1 -1
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +2 -9
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-rename/modal.js +3 -0
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-settings/container.native.js +6 -4
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-styles/index.js +1 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +3 -2
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-toolbar/index.js +89 -27
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +49 -0
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build/components/block-tools/block-toolbar-popover.js +86 -0
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build/components/block-tools/index.js +27 -24
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +4 -3
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +2 -1
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/colors-gradients/control.js +28 -17
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/duotone-control/index.js +1 -4
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/global-styles/color-panel.js +22 -20
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +9 -3
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +20 -31
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/image-link-destinations/index.native.js +118 -0
- package/build/components/image-link-destinations/index.native.js.map +1 -0
- package/build/components/index.native.js +8 -0
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/media-panel.js +2 -2
- package/build/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build/components/inserter/menu.js +14 -7
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/preview-panel.js +2 -2
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter-button/index.native.js +98 -0
- package/build/components/inserter-button/index.native.js.map +1 -0
- package/build/components/inserter-button/sparkles.js +23 -0
- package/build/components/inserter-button/sparkles.js.map +1 -0
- package/build/components/inserter-draggable-blocks/index.js +8 -4
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/fill.js +3 -3
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +3 -3
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +2 -2
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/preview-options/index.js +6 -62
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/content.js +26 -23
- package/build/components/rich-text/content.js.map +1 -1
- package/build/components/rich-text/get-rich-text-values.js +2 -1
- package/build/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build/components/rich-text/index.js +2 -30
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +9 -16
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +7 -34
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +5 -1
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/with-deprecations.js +50 -0
- package/build/components/rich-text/with-deprecations.js.map +1 -0
- package/build/components/use-block-drop-zone/index.js +70 -8
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +1 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +4 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/use-settings/index.js +14 -0
- package/build/components/use-settings/index.js.map +1 -1
- package/build/hooks/align.js +20 -68
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +11 -1
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/anchor.js +13 -29
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/background.js +28 -31
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/block-hooks.js +24 -32
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-renaming.js +18 -22
- package/build/hooks/block-renaming.js.map +1 -1
- package/build/hooks/border.js +58 -80
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +76 -89
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +29 -29
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/custom-class-name.js +12 -29
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/custom-fields.js +24 -38
- package/build/hooks/custom-fields.js.map +1 -1
- package/build/hooks/dimensions.js +21 -17
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +31 -61
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js +16 -25
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +51 -119
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/index.js +25 -14
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +10 -3
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout-child.js +68 -0
- package/build/hooks/layout-child.js.map +1 -0
- package/build/hooks/layout.js +16 -101
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/padding.js +2 -2
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/position.js +40 -62
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +51 -88
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/typography.js +34 -14
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/utils.js +154 -7
- package/build/hooks/utils.js.map +1 -1
- package/build/private-apis.js +0 -2
- package/build/private-apis.js.map +1 -1
- package/build/store/private-actions.js +8 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +34 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +8 -0
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +10 -60
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +66 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/object.js +21 -61
- package/build/utils/object.js.map +1 -1
- package/build/utils/selection.js +9 -1
- package/build/utils/selection.js.map +1 -1
- package/build-module/components/block-canvas/index.js +23 -7
- package/build-module/components/block-canvas/index.js.map +1 -1
- package/build-module/components/block-card/index.js +1 -1
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-controls/hook.js +4 -24
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-edit/context.js +2 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/index.js +19 -10
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-info-slot-fill/index.js +3 -3
- package/build-module/components/block-info-slot-fill/index.js.map +1 -1
- package/build-module/components/block-list/block.js +29 -10
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +14 -5
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +62 -19
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +4 -29
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-is-hovered.js +4 -14
- package/build-module/components/block-list/use-block-props/use-is-hovered.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js +4 -2
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +1 -1
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +3 -10
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +3 -0
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +4 -2
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-styles/index.js +1 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +3 -2
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +88 -25
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +41 -0
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +1 -0
- package/build-module/components/block-tools/block-toolbar-popover.js +76 -0
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -0
- package/build-module/components/block-tools/index.js +27 -24
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +2 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +2 -1
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +29 -18
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/duotone-control/index.js +1 -4
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +23 -21
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +10 -4
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +20 -31
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/image-link-destinations/index.native.js +109 -0
- package/build-module/components/image-link-destinations/index.native.js.map +1 -0
- package/build-module/components/index.native.js +1 -0
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js +1 -1
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -1
- package/build-module/components/inserter/menu.js +14 -7
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +2 -2
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter-button/index.native.js +89 -0
- package/build-module/components/inserter-button/index.native.js.map +1 -0
- package/build-module/components/inserter-button/sparkles.js +15 -0
- package/build-module/components/inserter-button/sparkles.js.map +1 -0
- package/build-module/components/inserter-draggable-blocks/index.js +9 -5
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +3 -3
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +3 -3
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +2 -2
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +6 -62
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/content.js +25 -21
- package/build-module/components/rich-text/content.js.map +1 -1
- package/build-module/components/rich-text/get-rich-text-values.js +2 -1
- package/build-module/components/rich-text/get-rich-text-values.js.map +1 -1
- package/build-module/components/rich-text/index.js +4 -32
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +10 -18
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/get-format-colors.native.js +22 -24
- package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +7 -34
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +5 -1
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/with-deprecations.js +42 -0
- package/build-module/components/rich-text/with-deprecations.js.map +1 -0
- package/build-module/components/use-block-drop-zone/index.js +69 -8
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +1 -1
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +4 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +13 -1
- package/build-module/components/use-settings/index.js.map +1 -1
- package/build-module/hooks/align.js +19 -66
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js +1 -0
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/anchor.js +11 -26
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/background.js +26 -28
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/block-hooks.js +22 -30
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-renaming.js +17 -21
- package/build-module/hooks/block-renaming.js.map +1 -1
- package/build-module/hooks/border.js +57 -78
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +74 -86
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +27 -27
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/custom-class-name.js +11 -27
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/custom-fields.js +20 -39
- package/build-module/hooks/custom-fields.js.map +1 -1
- package/build-module/hooks/dimensions.js +21 -16
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +30 -61
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js +14 -23
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +49 -119
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/index.js +18 -14
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +5 -3
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout-child.js +60 -0
- package/build-module/hooks/layout-child.js.map +1 -0
- package/build-module/hooks/layout.js +13 -98
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/padding.js +2 -2
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/position.js +38 -59
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +51 -84
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/typography.js +33 -12
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/utils.js +149 -6
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/private-apis.js +0 -2
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-actions.js +7 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +33 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +8 -0
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +3 -53
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +56 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/object.js +21 -60
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/selection.js +9 -1
- package/build-module/utils/selection.js.map +1 -1
- package/build-style/style-rtl.css +113 -293
- package/build-style/style.css +113 -293
- package/package.json +31 -31
- package/src/components/block-canvas/index.js +31 -17
- package/src/components/block-caption/README.md +2 -2
- package/src/components/block-card/index.js +5 -3
- package/src/components/block-card/style.scss +7 -3
- package/src/components/block-controls/hook.js +8 -30
- package/src/components/block-controls/test/index.js +3 -3
- package/src/components/block-edit/context.js +3 -0
- package/src/components/block-edit/index.js +36 -10
- package/src/components/block-info-slot-fill/index.js +6 -3
- package/src/components/block-inspector/style.scss +0 -4
- package/src/components/block-list/block.js +39 -5
- package/src/components/block-list/block.native.js +18 -4
- package/src/components/block-list/use-block-props/index.js +74 -21
- package/src/components/block-list/use-block-props/use-focus-first-element.js +1 -34
- package/src/components/block-list/use-block-props/use-is-hovered.js +2 -13
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +1 -5
- package/src/components/block-patterns-list/index.js +1 -1
- package/src/components/block-removal-warning-modal/index.js +7 -14
- package/src/components/block-rename/modal.js +7 -1
- package/src/components/block-settings/container.native.js +3 -5
- package/src/components/block-styles/index.js +1 -1
- package/src/components/block-styles/index.native.js +4 -2
- package/src/components/block-styles/style.scss +0 -11
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +3 -1
- package/src/components/block-toolbar/index.js +180 -95
- package/src/components/block-toolbar/style.scss +50 -66
- package/src/components/block-tools/block-toolbar-breadcrumb.js +46 -0
- package/src/components/block-tools/block-toolbar-popover.js +90 -0
- package/src/components/block-tools/index.js +42 -29
- package/src/components/block-tools/style.scss +60 -172
- package/src/components/block-types-list/index.native.js +2 -1
- package/src/components/block-variation-picker/index.native.js +1 -1
- package/src/components/colors-gradients/control.js +49 -30
- package/src/components/colors-gradients/style.scss +0 -7
- package/src/components/duotone-control/index.js +2 -5
- package/src/components/duotone-control/style.scss +1 -6
- package/src/components/global-styles/color-panel.js +34 -25
- package/src/components/global-styles/filters-panel.js +8 -4
- package/src/components/global-styles/typography-panel.js +23 -43
- package/src/components/image-link-destinations/index.native.js +152 -0
- package/src/components/image-link-destinations/style.native.scss +16 -0
- package/src/components/index.native.js +1 -0
- package/src/components/inner-blocks/README.md +13 -2
- package/src/components/inserter/media-tab/media-panel.js +1 -1
- package/src/components/inserter/menu.js +16 -8
- package/src/components/inserter/preview-panel.js +2 -2
- package/src/components/inserter/style.scss +15 -17
- package/src/components/inserter-button/README.md +62 -0
- package/src/components/inserter-button/index.native.js +116 -0
- package/src/components/inserter-button/sparkles.js +15 -0
- package/src/components/inserter-button/style.native.scss +72 -0
- package/src/components/inserter-draggable-blocks/index.js +18 -5
- package/src/components/inspector-controls/fill.js +6 -3
- package/src/components/inspector-controls/fill.native.js +6 -3
- package/src/components/link-control/style.scss +1 -1
- package/src/components/link-control/test/index.js +1 -1
- package/src/components/navigable-toolbar/README.md +2 -0
- package/src/components/navigable-toolbar/index.js +2 -2
- package/src/components/preview-options/index.js +6 -86
- package/src/components/rich-text/content.js +27 -20
- package/src/components/rich-text/get-rich-text-values.js +6 -1
- package/src/components/rich-text/index.js +5 -46
- package/src/components/rich-text/index.native.js +8 -25
- package/src/components/rich-text/native/get-format-colors.native.js +33 -40
- package/src/components/rich-text/native/index.native.js +7 -48
- package/src/components/rich-text/use-input-rules.js +6 -1
- package/src/components/rich-text/with-deprecations.js +51 -0
- package/src/components/use-block-drop-zone/index.js +114 -14
- package/src/components/use-on-block-drop/index.js +2 -1
- package/src/components/use-resize-canvas/README.md +3 -3
- package/src/components/use-resize-canvas/index.js +4 -1
- package/src/components/use-settings/index.js +15 -1
- package/src/hooks/align.js +15 -76
- package/src/hooks/align.native.js +1 -0
- package/src/hooks/anchor.js +13 -33
- package/src/hooks/background.js +28 -23
- package/src/hooks/block-hooks.js +22 -51
- package/src/hooks/block-renaming.js +23 -37
- package/src/hooks/border.js +67 -118
- package/src/hooks/color.js +100 -132
- package/src/hooks/content-lock-ui.js +110 -122
- package/src/hooks/custom-class-name.js +8 -40
- package/src/hooks/custom-fields.js +20 -47
- package/src/hooks/dimensions.js +20 -16
- package/src/hooks/duotone.js +70 -127
- package/src/hooks/font-family.js +10 -29
- package/src/hooks/font-size.js +66 -162
- package/src/hooks/index.js +42 -14
- package/src/hooks/index.native.js +6 -3
- package/src/hooks/layout-child.js +53 -0
- package/src/hooks/layout.js +13 -102
- package/src/hooks/padding.js +2 -2
- package/src/hooks/position.js +50 -90
- package/src/hooks/style.js +117 -187
- package/src/hooks/test/align.js +1 -178
- package/src/hooks/typography.js +20 -16
- package/src/hooks/utils.js +187 -6
- package/src/private-apis.js +0 -2
- package/src/store/private-actions.js +8 -0
- package/src/store/private-selectors.js +45 -0
- package/src/store/reducer.js +8 -0
- package/src/store/selectors.js +5 -69
- package/src/store/utils.js +74 -0
- package/src/style.scss +0 -2
- package/src/utils/object.js +18 -69
- package/src/utils/selection.js +9 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js +0 -67
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js +0 -46
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build/components/block-list/use-block-props/use-block-default-class-name.js +0 -37
- package/build/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build/components/block-tools/back-compat.js +0 -45
- package/build/components/block-tools/back-compat.js.map +0 -1
- package/build/components/block-tools/block-contextual-toolbar.js +0 -91
- package/build/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build/components/block-tools/selected-block-tools.js +0 -113
- package/build/components/block-tools/selected-block-tools.js.map +0 -1
- package/build/components/inserter/hooks/use-debounced-input.js +0 -22
- package/build/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build/components/use-display-block-controls/index.js +0 -39
- package/build/components/use-display-block-controls/index.js.map +0 -1
- package/build/components/use-display-block-controls/index.native.js +0 -39
- package/build/components/use-display-block-controls/index.native.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +0 -60
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js +0 -40
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js +0 -31
- package/build-module/components/block-list/use-block-props/use-block-default-class-name.js.map +0 -1
- package/build-module/components/block-tools/back-compat.js +0 -35
- package/build-module/components/block-tools/back-compat.js.map +0 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +0 -83
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +0 -1
- package/build-module/components/block-tools/selected-block-tools.js +0 -105
- package/build-module/components/block-tools/selected-block-tools.js.map +0 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +0 -15
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.js +0 -32
- package/build-module/components/use-display-block-controls/index.js.map +0 -1
- package/build-module/components/use-display-block-controls/index.native.js +0 -32
- package/build-module/components/use-display-block-controls/index.native.js.map +0 -1
- package/src/components/block-list/use-block-props/use-block-class-names.js +0 -66
- package/src/components/block-list/use-block-props/use-block-custom-class-name.js +0 -44
- package/src/components/block-list/use-block-props/use-block-default-class-name.js +0 -35
- package/src/components/block-parent-selector/style.scss +0 -11
- package/src/components/block-tools/back-compat.js +0 -35
- package/src/components/block-tools/block-contextual-toolbar.js +0 -100
- package/src/components/block-tools/selected-block-tools.js +0 -127
- package/src/components/inserter/hooks/use-debounced-input.js +0 -18
- package/src/components/preview-options/README.md +0 -94
- package/src/components/preview-options/style.scss +0 -64
- package/src/components/use-display-block-controls/index.js +0 -36
- package/src/components/use-display-block-controls/index.native.js +0 -37
- package/src/hooks/test/color.js +0 -112
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_blocks","_components","_data","_compose","_dom","_blockEdit","_blockInvalidWarning","_blockCrashWarning","_blockCrashBoundary","_blockHtml","_useBlockProps","_store","_layout","_blockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","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","themeSupportsLayout","isTemporarilyEditingAsBlocks","blockEditingMode","useSelect","select","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","blockEditorStore","supportsLayout","removeBlock","useDispatch","onRemove","useCallback","parentLayout","useLayout","blockEdit","default","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockType","getBlockType","tabIndex","getEditWrapperProps","isAligned","saveContent","serializeRawBlock","getSaveContent","RawHTML","safeHTML","Fragment","display","apiVersion","dataAlign","restWrapperProps","value","memoizedValue","useMemo","values","BlockListBlockContext","Provider","fallback","applyWithSelect","withSelect","rootClientId","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","templateLock","canMove","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","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","_default","compose","pure","ifCondition","withFilters","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 { useMemo, useCallback, RawHTML } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseDispatch,\n\tuseSelect,\n} from '@wordpress/data';\nimport { compose, pure, ifCondition } 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 { BlockListBlockContext } from './block-list-block-context';\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\tif ( propsA?.className && propsB?.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA?.style && propsB?.style ) {\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\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSettings,\n\t\t\t\t__unstableGetTemporarilyEditingAsBlocks,\n\t\t\t\tgetBlockEditingMode,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tthemeSupportsLayout: getSettings().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};\n\t\t},\n\t\t[ clientId ]\n\t);\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/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\tif ( blockEditingMode === 'disabled' ) {\n\t\twrapperProps = {\n\t\t\t...wrapperProps,\n\t\t\ttabIndex: -1,\n\t\t};\n\t}\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// 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=\"wp-block\"\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 { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName: classnames(\n\t\t\t{\n\t\t\t\t'is-editing-disabled': blockEditingMode === 'disabled',\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\tclassName\n\t\t),\n\t\twrapperProps: restWrapperProps,\n\t\tisAligned,\n\t};\n\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\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</BlockListBlockContext.Provider>\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\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\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":["_classnames","_interopRequireDefault","require","_element","_blocks","_components","_data","_compose","_dom","_blockEdit","_blockInvalidWarning","_blockCrashWarning","_blockCrashBoundary","_blockHtml","_useBlockProps","_store","_layout","_blockListBlockContext","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","themeSupportsLayout","isTemporarilyEditingAsBlocks","blockEditingMode","mayDisplayControls","mayDisplayParentControls","useSelect","select","getSettings","__unstableGetTemporarilyEditingAsBlocks","getBlockEditingMode","getBlockName","isFirstMultiSelectedBlock","getMultiSelectedBlockClientIds","hasSelectedInnerBlock","blockEditorStore","hasBlockSupport","blocksStore","supportsLayout","every","id","removeBlock","useDispatch","onRemove","useCallback","parentLayout","useLayout","blockEdit","default","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","Object","keys","length","blockType","getBlockType","tabIndex","getEditWrapperProps","isAligned","isSticky","includes","saveContent","serializeRawBlock","getSaveContent","RawHTML","safeHTML","Fragment","display","apiVersion","dataAlign","restWrapperProps","value","memoizedValue","useMemo","values","BlockListBlockContext","Provider","fallback","applyWithSelect","withSelect","rootClientId","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","templateLock","canMove","applyWithDispatch","withDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","key","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","replacementBlocks","Array","isArray","selectionEnabled","_default","compose","pure","ifCondition","withFilters","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 { useMemo, useCallback, RawHTML } from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseDispatch,\n\tuseSelect,\n} from '@wordpress/data';\nimport { compose, pure, ifCondition } 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 { BlockListBlockContext } from './block-list-block-context';\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\tthemeSupportsLayout,\n\t\tisTemporarilyEditingAsBlocks,\n\t\tblockEditingMode,\n\t\tmayDisplayControls,\n\t\tmayDisplayParentControls,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\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\t\t\t} = select( blockEditorStore );\n\t\t\tconst { hasBlockSupport } = select( blocksStore );\n\t\t\treturn {\n\t\t\t\tthemeSupportsLayout: getSettings().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\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\tmayDisplayParentControls:\n\t\t\t\t\thasBlockSupport(\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};\n\t\t},\n\t\t[ clientId, isSelected, name ]\n\t);\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\tif ( blockEditingMode === 'disabled' ) {\n\t\twrapperProps = {\n\t\t\t...wrapperProps,\n\t\t\ttabIndex: -1,\n\t\t};\n\t}\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 { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst { 'data-align': dataAlign, ...restWrapperProps } = wrapperProps ?? {};\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName: classnames(\n\t\t\t{\n\t\t\t\t'is-editing-disabled': blockEditingMode === 'disabled',\n\t\t\t\t'is-content-locked-temporarily-editing-as-blocks':\n\t\t\t\t\tisTemporarilyEditingAsBlocks,\n\t\t\t},\n\t\t\tdataAlign && themeSupportsLayout && `align${ dataAlign }`,\n\t\t\t! ( dataAlign && isSticky ) && className\n\t\t),\n\t\twrapperProps: restWrapperProps,\n\t\tisAligned,\n\t};\n\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\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</BlockListBlockContext.Provider>\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\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\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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"}
|
|
@@ -127,7 +127,8 @@ function BlockListBlock({
|
|
|
127
127
|
isDescendantOfParentSelected,
|
|
128
128
|
isDescendentBlockSelected,
|
|
129
129
|
isParentSelected,
|
|
130
|
-
order
|
|
130
|
+
order,
|
|
131
|
+
mayDisplayControls
|
|
131
132
|
} = (0, _data.useSelect)(select => {
|
|
132
133
|
const {
|
|
133
134
|
getBlockCount,
|
|
@@ -136,7 +137,10 @@ function BlockListBlock({
|
|
|
136
137
|
getBlockParents,
|
|
137
138
|
getSelectedBlockClientId,
|
|
138
139
|
getSettings,
|
|
139
|
-
hasSelectedInnerBlock
|
|
140
|
+
hasSelectedInnerBlock,
|
|
141
|
+
getBlockName,
|
|
142
|
+
isFirstMultiSelectedBlock,
|
|
143
|
+
getMultiSelectedBlockClientIds
|
|
140
144
|
} = select(_store.store);
|
|
141
145
|
const currentBlockType = (0, _blocks.getBlockType)(name || 'core/missing');
|
|
142
146
|
const currentBlockCategory = currentBlockType?.category;
|
|
@@ -169,7 +173,8 @@ function BlockListBlock({
|
|
|
169
173
|
isDescendantOfParentSelected: descendantOfParentSelected,
|
|
170
174
|
isDescendentBlockSelected: descendentBlockSelected,
|
|
171
175
|
isParentSelected: parentSelected,
|
|
172
|
-
order: blockOrder
|
|
176
|
+
order: blockOrder,
|
|
177
|
+
mayDisplayControls: isSelected || isFirstMultiSelectedBlock(clientId) && getMultiSelectedBlockClientIds().every(id => getBlockName(id) === name)
|
|
173
178
|
};
|
|
174
179
|
}, [clientId, isSelected, name, rootClientId]);
|
|
175
180
|
const {
|
|
@@ -201,7 +206,10 @@ function BlockListBlock({
|
|
|
201
206
|
}, [blockWidth, setBlockWidth]);
|
|
202
207
|
|
|
203
208
|
// Block level styles.
|
|
204
|
-
|
|
209
|
+
let wrapperProps = {};
|
|
210
|
+
if (blockType?.getEditWrapperProps) {
|
|
211
|
+
wrapperProps = getWrapperProps(attributes, blockType.getEditWrapperProps);
|
|
212
|
+
}
|
|
205
213
|
|
|
206
214
|
// Inherited styles merged with block level styles.
|
|
207
215
|
const mergedStyle = (0, _element.useMemo)(() => {
|
|
@@ -265,7 +273,8 @@ function BlockListBlock({
|
|
|
265
273
|
style: mergedStyle,
|
|
266
274
|
toggleSelection: toggleSelection,
|
|
267
275
|
__unstableParentLayout: Object.keys(parentLayout).length ? parentLayout : undefined,
|
|
268
|
-
wrapperProps: wrapperProps
|
|
276
|
+
wrapperProps: wrapperProps,
|
|
277
|
+
mayDisplayControls: mayDisplayControls
|
|
269
278
|
}), (0, _react.createElement)(_reactNative.View, {
|
|
270
279
|
onLayout: onLayout
|
|
271
280
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_element","_components","_blocks","_data","_compose","_blockEdit","_interopRequireDefault","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useSettings","EMPTY_ARRAY","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","_react","createElement","Pressable","accessibilityRole","disabled","onPress","style","default","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","useSelect","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","blockEditorStore","currentBlockType","getBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","useDispatch","initialBlockWidth","setBlockWidth","useState","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","useCallback","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","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","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","isUnmodifiedBlock","batch","replacement","switchToBlockType","getDefaultBlockName","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","isUnmodifiedDefaultBlock","selectionEnabled","_default","compose","pure","ifCondition","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\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 { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\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\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>\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} ) {\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} = 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} = 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};\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// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\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/>\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)( BlockListBlock );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_element","_components","_blocks","_data","_compose","_blockEdit","_interopRequireDefault","_blockDraggable","_blockInvalidWarning","_blockOutline","_store","_layout","_useSettings","EMPTY_ARRAY","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","_react","createElement","Pressable","accessibilityRole","disabled","onPress","style","default","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","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","useState","parentLayout","useLayout","defaultColors","useMobileGlobalStylesColors","globalStyle","useGlobalStyles","fontSizes","useSettings","onRemove","useCallback","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","useMemo","getMergedGlobalStyles","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","isFocused","getAccessibleBlockLabel","Provider","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","exports"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\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 { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\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\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>\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} ) {\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// Block level styles.\n\tlet wrapperProps = {};\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = getWrapperProps(\n\t\t\tattributes,\n\t\t\tblockType.getEditWrapperProps\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)( BlockListBlock );\n"],"mappings":"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"}
|
|
@@ -17,17 +17,12 @@ var _blockListBlockContext = require("../block-list-block-context");
|
|
|
17
17
|
var _useFocusFirstElement = require("./use-focus-first-element");
|
|
18
18
|
var _useIsHovered = require("./use-is-hovered");
|
|
19
19
|
var _context = require("../../block-edit/context");
|
|
20
|
-
var _useBlockClassNames = require("./use-block-class-names");
|
|
21
|
-
var _useBlockDefaultClassName = require("./use-block-default-class-name");
|
|
22
|
-
var _useBlockCustomClassName = require("./use-block-custom-class-name");
|
|
23
|
-
var _useBlockMovingModeClassNames = require("./use-block-moving-mode-class-names");
|
|
24
20
|
var _useFocusHandler = require("./use-focus-handler");
|
|
25
21
|
var _useSelectedBlockEventHandlers = require("./use-selected-block-event-handlers");
|
|
26
22
|
var _useNavModeExit = require("./use-nav-mode-exit");
|
|
27
23
|
var _useBlockRefs = require("./use-block-refs");
|
|
28
24
|
var _useIntersectionObserver = require("./use-intersection-observer");
|
|
29
25
|
var _store = require("../../../store");
|
|
30
|
-
var _blockContentOverlay = _interopRequireDefault(require("../../block-content-overlay"));
|
|
31
26
|
var _lockUnlock = require("../../../lock-unlock");
|
|
32
27
|
/**
|
|
33
28
|
* External dependencies
|
|
@@ -104,10 +99,15 @@ function useBlockProps(props = {}, {
|
|
|
104
99
|
name,
|
|
105
100
|
blockApiVersion,
|
|
106
101
|
blockTitle,
|
|
102
|
+
isSelected,
|
|
107
103
|
isPartOfSelection,
|
|
108
104
|
adjustScrolling,
|
|
109
105
|
enableAnimation,
|
|
110
|
-
isSubtreeDisabled
|
|
106
|
+
isSubtreeDisabled,
|
|
107
|
+
isOutlineEnabled,
|
|
108
|
+
hasOverlay,
|
|
109
|
+
initialPosition,
|
|
110
|
+
classNames
|
|
111
111
|
} = (0, _data.useSelect)(select => {
|
|
112
112
|
const {
|
|
113
113
|
getBlockAttributes,
|
|
@@ -120,35 +120,79 @@ function useBlockProps(props = {}, {
|
|
|
120
120
|
isBlockMultiSelected,
|
|
121
121
|
isAncestorMultiSelected,
|
|
122
122
|
isFirstMultiSelectedBlock,
|
|
123
|
-
isBlockSubtreeDisabled
|
|
123
|
+
isBlockSubtreeDisabled,
|
|
124
|
+
getSettings,
|
|
125
|
+
isBlockHighlighted,
|
|
126
|
+
__unstableIsFullySelected,
|
|
127
|
+
__unstableSelectionHasUnmergeableBlock,
|
|
128
|
+
isBlockBeingDragged,
|
|
129
|
+
hasSelectedInnerBlock,
|
|
130
|
+
hasBlockMovingClientId,
|
|
131
|
+
canInsertBlockType,
|
|
132
|
+
getBlockRootClientId,
|
|
133
|
+
__unstableHasActiveBlockOverlayActive,
|
|
134
|
+
__unstableGetEditorMode,
|
|
135
|
+
getSelectedBlocksInitialCaretPosition
|
|
124
136
|
} = (0, _lockUnlock.unlock)(select(_store.store));
|
|
125
137
|
const {
|
|
126
138
|
getActiveBlockVariation
|
|
127
139
|
} = select(_blocks.store);
|
|
128
|
-
const
|
|
140
|
+
const _isSelected = isBlockSelected(clientId);
|
|
129
141
|
const isPartOfMultiSelection = isBlockMultiSelected(clientId) || isAncestorMultiSelected(clientId);
|
|
130
142
|
const blockName = getBlockName(clientId);
|
|
131
143
|
const blockType = (0, _blocks.getBlockType)(blockName);
|
|
132
144
|
const attributes = getBlockAttributes(clientId);
|
|
133
145
|
const match = getActiveBlockVariation(blockName, attributes);
|
|
146
|
+
const {
|
|
147
|
+
outlineMode
|
|
148
|
+
} = getSettings();
|
|
149
|
+
const isMultiSelected = isBlockMultiSelected(clientId);
|
|
150
|
+
const checkDeep = true;
|
|
151
|
+
const isAncestorOfSelectedBlock = hasSelectedInnerBlock(clientId, checkDeep);
|
|
152
|
+
const typing = isTyping();
|
|
153
|
+
const hasLightBlockWrapper = blockType?.apiVersion > 1;
|
|
154
|
+
const movingClientId = hasBlockMovingClientId();
|
|
134
155
|
return {
|
|
135
156
|
index: getBlockIndex(clientId),
|
|
136
157
|
mode: getBlockMode(clientId),
|
|
137
158
|
name: blockName,
|
|
138
159
|
blockApiVersion: blockType?.apiVersion || 1,
|
|
139
160
|
blockTitle: match?.title || blockType?.title,
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
161
|
+
isSelected: _isSelected,
|
|
162
|
+
isPartOfSelection: _isSelected || isPartOfMultiSelection,
|
|
163
|
+
adjustScrolling: _isSelected || isFirstMultiSelectedBlock(clientId),
|
|
164
|
+
enableAnimation: !typing && getGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD,
|
|
165
|
+
isSubtreeDisabled: isBlockSubtreeDisabled(clientId),
|
|
166
|
+
isOutlineEnabled: outlineMode,
|
|
167
|
+
hasOverlay: __unstableHasActiveBlockOverlayActive(clientId),
|
|
168
|
+
initialPosition: _isSelected && __unstableGetEditorMode() === 'edit' ? getSelectedBlocksInitialCaretPosition() : undefined,
|
|
169
|
+
classNames: (0, _classnames.default)({
|
|
170
|
+
'is-selected': _isSelected,
|
|
171
|
+
'is-highlighted': isBlockHighlighted(clientId),
|
|
172
|
+
'is-multi-selected': isMultiSelected,
|
|
173
|
+
'is-partially-selected': isMultiSelected && !__unstableIsFullySelected() && !__unstableSelectionHasUnmergeableBlock(),
|
|
174
|
+
'is-reusable': (0, _blocks.isReusableBlock)(blockType),
|
|
175
|
+
'is-dragging': isBlockBeingDragged(clientId),
|
|
176
|
+
'has-child-selected': isAncestorOfSelectedBlock,
|
|
177
|
+
'remove-outline': _isSelected && outlineMode && typing,
|
|
178
|
+
'is-block-moving-mode': !!movingClientId,
|
|
179
|
+
'can-insert-moving-block': movingClientId && canInsertBlockType(getBlockName(movingClientId), getBlockRootClientId(clientId))
|
|
180
|
+
}, hasLightBlockWrapper ? attributes.className : undefined, hasLightBlockWrapper ? (0, _blocks.getBlockDefaultClassName)(blockName) : undefined)
|
|
144
181
|
};
|
|
145
182
|
}, [clientId]);
|
|
146
|
-
const hasOverlay = (0, _blockContentOverlay.default)(clientId);
|
|
147
183
|
|
|
148
184
|
// translators: %s: Type of block (i.e. Text, Image etc)
|
|
149
185
|
const blockLabel = (0, _i18n.sprintf)((0, _i18n.__)('Block: %s'), blockTitle);
|
|
150
186
|
const htmlSuffix = mode === 'html' && !__unstableIsHtml ? '-visual' : '';
|
|
151
|
-
const mergedRefs = (0, _compose.useMergeRefs)([props.ref, (0, _useFocusFirstElement.useFocusFirstElement)(
|
|
187
|
+
const mergedRefs = (0, _compose.useMergeRefs)([props.ref, (0, _useFocusFirstElement.useFocusFirstElement)({
|
|
188
|
+
clientId,
|
|
189
|
+
initialPosition
|
|
190
|
+
}), (0, _useBlockRefs.useBlockRefProvider)(clientId), (0, _useFocusHandler.useFocusHandler)(clientId), (0, _useSelectedBlockEventHandlers.useEventHandlers)({
|
|
191
|
+
clientId,
|
|
192
|
+
isSelected
|
|
193
|
+
}), (0, _useNavModeExit.useNavModeExit)(clientId), (0, _useIsHovered.useIsHovered)({
|
|
194
|
+
isEnabled: isOutlineEnabled
|
|
195
|
+
}), (0, _useIntersectionObserver.useIntersectionObserver)(), (0, _useMovingAnimation.default)({
|
|
152
196
|
isSelected: isPartOfSelection,
|
|
153
197
|
adjustScrolling,
|
|
154
198
|
enableAnimation,
|
|
@@ -173,12 +217,11 @@ function useBlockProps(props = {}, {
|
|
|
173
217
|
'data-type': name,
|
|
174
218
|
'data-title': blockTitle,
|
|
175
219
|
inert: isSubtreeDisabled ? 'true' : undefined,
|
|
176
|
-
className: (0, _classnames.default)(
|
|
177
|
-
|
|
178
|
-
(0, _classnames.default)('block-editor-block-list__block', {
|
|
220
|
+
className: (0, _classnames.default)('block-editor-block-list__block', {
|
|
221
|
+
// The wp-block className is important for editor styles.
|
|
179
222
|
'wp-block': !isAligned,
|
|
180
223
|
'has-block-overlay': hasOverlay
|
|
181
|
-
}
|
|
224
|
+
}, className, props.className, wrapperProps.className, classNames),
|
|
182
225
|
style: {
|
|
183
226
|
...wrapperProps.style,
|
|
184
227
|
...props.style
|