@wordpress/block-editor 10.5.0 → 11.0.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 +10 -0
- package/build/autocompleters/block.js +2 -6
- package/build/autocompleters/block.js.map +1 -1
- package/build/autocompleters/link.js +2 -0
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/block-card/index.js +51 -3
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +46 -39
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +4 -3
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-edit/edit.native.js +4 -7
- package/build/components/block-edit/edit.native.js.map +1 -1
- package/build/components/block-inspector/index.js +35 -33
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-context.native.js +5 -8
- package/build/components/block-list/block-list-context.native.js.map +1 -1
- package/build/components/block-list/block.js +55 -24
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +61 -28
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +12 -4
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +3 -2
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +33 -11
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-preview/auto.js +9 -3
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +5 -9
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +5 -2
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-toolbar/index.js +5 -1
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +8 -49
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-variation-picker/index.js +1 -2
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/height-control/index.js +115 -0
- package/build/components/height-control/index.js.map +1 -0
- package/build/components/iframe/index.js +11 -8
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +2 -0
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +1 -0
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/index.js +9 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +20 -6
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +25 -10
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +25 -46
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +3 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-debounced-input.js +27 -0
- package/build/components/inserter/hooks/use-debounced-input.js.map +1 -0
- package/build/components/inserter/index.js +8 -3
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +3 -4
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +103 -0
- package/build/components/inserter/media-tab/hooks.js.map +1 -0
- package/build/components/inserter/media-tab/index.js +32 -0
- package/build/components/inserter/media-tab/index.js.map +1 -0
- package/build/components/inserter/media-tab/media-list.js +100 -0
- package/build/components/inserter/media-tab/media-list.js.map +1 -0
- package/build/components/inserter/media-tab/media-panel.js +96 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -0
- package/build/components/inserter/media-tab/media-tab.js +120 -0
- package/build/components/inserter/media-tab/media-tab.js.map +1 -0
- package/build/components/inserter/media-tab/utils.js +54 -0
- package/build/components/inserter/media-tab/utils.js.map +1 -0
- package/build/components/inserter/menu.js +35 -12
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +70 -0
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -0
- package/build/components/inserter/quick-inserter.js +1 -0
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-results.js +3 -1
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/tabs.js +16 -2
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter-list-item/index.js +4 -1
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inspector-controls/groups.js +2 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js +46 -0
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
- package/build/components/inspector-controls-tabs/index.js +71 -0
- package/build/components/inspector-controls-tabs/index.js.map +1 -0
- package/build/components/inspector-controls-tabs/settings-tab.js +28 -0
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -0
- package/build/components/inspector-controls-tabs/styles-tab.js +61 -0
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -0
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +97 -0
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
- package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +18 -0
- package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
- package/build/components/inspector-controls-tabs/utils.js +37 -0
- package/build/components/inspector-controls-tabs/utils.js.map +1 -0
- package/build/components/link-control/index.js +1 -0
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +0 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/use-internal-input-value.js +3 -3
- package/build/components/link-control/use-internal-input-value.js.map +1 -1
- package/build/components/list-view/block.js +5 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +13 -12
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/media-upload/index.native.js +2 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/off-canvas-editor/appender.js +104 -0
- package/build/components/off-canvas-editor/appender.js.map +1 -0
- package/build/components/off-canvas-editor/block-edit-button.js +50 -0
- package/build/components/off-canvas-editor/block-edit-button.js.map +1 -0
- package/build/components/off-canvas-editor/block.js +36 -4
- package/build/components/off-canvas-editor/block.js.map +1 -1
- package/build/components/off-canvas-editor/branch.js +3 -5
- package/build/components/off-canvas-editor/branch.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +20 -11
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/leaf.js +1 -1
- package/build/components/off-canvas-editor/leaf.js.map +1 -1
- package/build/components/off-canvas-editor/link-ui.js +185 -0
- package/build/components/off-canvas-editor/link-ui.js.map +1 -0
- package/build/components/off-canvas-editor/update-attributes.js +108 -0
- package/build/components/off-canvas-editor/update-attributes.js.map +1 -0
- package/build/components/rich-text/format-toolbar/index.js +8 -4
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +3 -3
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +0 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-insert-replacement-text.js +43 -0
- package/build/components/rich-text/use-insert-replacement-text.js.map +1 -0
- package/build/components/rich-text/use-undo-automatic-change.js +9 -1
- package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
- package/build/components/rich-text/utils.js +1 -19
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +12 -3
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/ungroup-button/index.native.js +4 -2
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/url-input/index.js +46 -43
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +8 -4
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-setting/index.js +9 -1
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/child-layout.js +209 -0
- package/build/hooks/child-layout.js.map +1 -0
- package/build/hooks/content-lock-ui.js +1 -1
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/dimensions.js +25 -7
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/layout.js +57 -1
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/min-height.js +4 -10
- package/build/hooks/min-height.js.map +1 -1
- package/build/store/reducer.js +393 -270
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +57 -47
- package/build/store/selectors.js.map +1 -1
- package/build/utils/sorting.js +63 -0
- package/build/utils/sorting.js.map +1 -0
- package/build-module/autocompleters/block.js +2 -6
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/autocompleters/link.js +2 -0
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/block-card/index.js +45 -3
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +40 -31
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +4 -2
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-edit/edit.native.js +4 -6
- package/build-module/components/block-edit/edit.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +32 -30
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-context.native.js +5 -8
- package/build-module/components/block-list/block-list-context.native.js.map +1 -1
- package/build-module/components/block-list/block.js +55 -25
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +61 -28
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +13 -6
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +3 -2
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +35 -13
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +9 -3
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +5 -8
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +6 -2
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +8 -49
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +1 -2
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/height-control/index.js +103 -0
- package/build-module/components/height-control/index.js.map +1 -0
- package/build-module/components/iframe/index.js +11 -8
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +2 -0
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +1 -0
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +22 -8
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +23 -10
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +27 -49
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +3 -2
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +18 -0
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -0
- package/build-module/components/inserter/index.js +8 -3
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +3 -5
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +89 -0
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -0
- package/build-module/components/inserter/media-tab/index.js +4 -0
- package/build-module/components/inserter/media-tab/index.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-list.js +86 -0
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js +77 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-tab.js +100 -0
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -0
- package/build-module/components/inserter/media-tab/utils.js +45 -0
- package/build-module/components/inserter/media-tab/utils.js.map +1 -0
- package/build-module/components/inserter/menu.js +33 -12
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +61 -0
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -0
- package/build-module/components/inserter/quick-inserter.js +1 -0
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-results.js +3 -2
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/tabs.js +15 -2
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +5 -2
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +2 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +32 -0
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/index.js +56 -0
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/settings-tab.js +17 -0
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js +46 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +81 -0
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +8 -0
- package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/utils.js +26 -0
- package/build-module/components/inspector-controls-tabs/utils.js.map +1 -0
- package/build-module/components/link-control/index.js +1 -0
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +0 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/use-internal-input-value.js +3 -3
- package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
- package/build-module/components/list-view/block.js +5 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +12 -11
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +2 -4
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/off-canvas-editor/appender.js +89 -0
- package/build-module/components/off-canvas-editor/appender.js.map +1 -0
- package/build-module/components/off-canvas-editor/block-edit-button.js +35 -0
- package/build-module/components/off-canvas-editor/block-edit-button.js.map +1 -0
- package/build-module/components/off-canvas-editor/block.js +36 -6
- package/build-module/components/off-canvas-editor/block.js.map +1 -1
- package/build-module/components/off-canvas-editor/branch.js +3 -4
- package/build-module/components/off-canvas-editor/branch.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +20 -12
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/leaf.js +1 -1
- package/build-module/components/off-canvas-editor/leaf.js.map +1 -1
- package/build-module/components/off-canvas-editor/link-ui.js +165 -0
- package/build-module/components/off-canvas-editor/link-ui.js.map +1 -0
- package/build-module/components/off-canvas-editor/update-attributes.js +97 -0
- package/build-module/components/off-canvas-editor/update-attributes.js.map +1 -0
- package/build-module/components/rich-text/format-toolbar/index.js +6 -2
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +2 -3
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +0 -2
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-insert-replacement-text.js +33 -0
- package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -0
- package/build-module/components/rich-text/use-undo-automatic-change.js +9 -1
- package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
- package/build-module/components/rich-text/utils.js +1 -16
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -3
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js +3 -2
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +46 -43
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +9 -5
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +8 -1
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/child-layout.js +189 -0
- package/build-module/hooks/child-layout.js.map +1 -0
- package/build-module/hooks/content-lock-ui.js +1 -1
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/dimensions.js +25 -8
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/layout.js +55 -0
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/min-height.js +3 -9
- package/build-module/hooks/min-height.js.map +1 -1
- package/build-module/store/reducer.js +391 -271
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +54 -47
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/sorting.js +56 -0
- package/build-module/utils/sorting.js.map +1 -0
- package/build-style/content-rtl.css +701 -0
- package/build-style/content.css +701 -0
- package/build-style/default-editor-styles-rtl.css +14 -0
- package/build-style/default-editor-styles.css +14 -0
- package/build-style/style-rtl.css +286 -662
- package/build-style/style.css +286 -662
- package/package.json +32 -30
- package/src/autocompleters/block.js +2 -6
- package/src/autocompleters/link.js +2 -0
- package/src/components/alignment-control/test/index.js +4 -1
- package/src/components/block-alignment-control/test/index.js +4 -1
- package/src/components/block-card/index.js +46 -2
- package/src/components/block-card/style.scss +4 -0
- package/src/components/block-content-overlay/{style.scss → content.scss} +7 -1
- package/src/components/block-draggable/content.scss +20 -0
- package/src/components/block-draggable/index.native.js +54 -40
- package/src/components/block-draggable/style.scss +0 -21
- package/src/components/block-draggable/test/helpers.native.js +7 -9
- package/src/components/block-draggable/test/index.native.js +35 -45
- package/src/components/block-edit/edit.js +5 -2
- package/src/components/block-edit/edit.native.js +5 -6
- package/src/components/block-inspector/index.js +96 -81
- package/src/components/block-inspector/style.scss +9 -1
- package/src/components/block-list/block-list-context.native.js +5 -8
- package/src/components/block-list/block.js +74 -23
- package/src/components/block-list/block.native.js +78 -23
- package/src/components/block-list/{style.scss → content.scss} +1 -15
- package/src/components/block-list-appender/{style.scss → content.scss} +0 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +24 -6
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -2
- package/src/components/block-pattern-setup/index.js +2 -1
- package/src/components/block-patterns-list/index.js +47 -24
- package/src/components/block-preview/README.md +15 -10
- package/src/components/block-preview/auto.js +7 -1
- package/src/components/block-preview/content.scss +4 -0
- package/src/components/block-preview/index.js +7 -12
- package/src/components/block-preview/style.scss +0 -7
- package/src/components/block-preview/test/index.js +18 -35
- package/src/components/block-selection-clearer/test/index.js +12 -12
- package/src/components/block-settings-menu/block-settings-dropdown.js +32 -20
- package/src/components/block-switcher/test/index.js +4 -0
- package/src/components/block-toolbar/index.js +12 -5
- package/src/components/block-toolbar/style.scss +10 -0
- package/src/components/block-tools/insertion-point.js +3 -47
- package/src/components/block-tools/style.scss +12 -5
- package/src/components/block-variation-picker/index.js +1 -4
- package/src/components/block-vertical-alignment-control/test/index.js +4 -1
- package/src/components/default-block-appender/{style.scss → content.scss} +0 -0
- package/src/components/height-control/index.js +123 -0
- package/src/components/height-control/stories/index.js +21 -0
- package/src/components/height-control/style.scss +5 -0
- package/src/components/iframe/index.js +25 -18
- package/src/components/image-editor/use-save-image.js +2 -0
- package/src/components/image-editor/zoom-dropdown.js +1 -0
- package/src/components/index.js +1 -0
- package/src/components/inner-blocks/{style.scss → content.scss} +0 -0
- package/src/components/inner-blocks/index.js +23 -6
- package/src/components/inner-blocks/use-inner-block-template-sync.js +28 -10
- package/src/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/src/components/inserter/block-patterns-tab.js +28 -71
- package/src/components/inserter/block-types-tab.js +3 -2
- package/src/components/inserter/hooks/use-debounced-input.js +17 -0
- package/src/components/inserter/index.js +10 -2
- package/src/components/inserter/index.native.js +1 -1
- package/src/components/inserter/media-tab/hooks.js +88 -0
- package/src/components/inserter/media-tab/index.js +3 -0
- package/src/components/inserter/media-tab/media-list.js +93 -0
- package/src/components/inserter/media-tab/media-panel.js +83 -0
- package/src/components/inserter/media-tab/media-tab.js +135 -0
- package/src/components/inserter/media-tab/utils.js +37 -0
- package/src/components/inserter/menu.js +55 -13
- package/src/components/inserter/mobile-tab-navigation.js +85 -0
- package/src/components/inserter/quick-inserter.js +1 -0
- package/src/components/inserter/search-results.js +3 -2
- package/src/components/inserter/stories/index.js +1 -1
- package/src/components/inserter/stories/{fixtures.js → utils/fixtures.js} +0 -0
- package/src/components/inserter/style.scss +176 -11
- package/src/components/inserter/tabs.js +12 -1
- package/src/components/inserter-list-item/index.js +11 -1
- package/src/components/inserter-list-item/style.scss +26 -0
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/advanced-controls-panel.js +37 -0
- package/src/components/inspector-controls-tabs/index.js +62 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +18 -0
- package/src/components/inspector-controls-tabs/styles-tab.js +51 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +89 -0
- package/src/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +9 -0
- package/src/components/inspector-controls-tabs/utils.js +28 -0
- package/src/components/line-height-control/test/index.js +5 -5
- package/src/components/link-control/README.md +1 -1
- package/src/components/link-control/index.js +1 -0
- package/src/components/link-control/search-input.js +0 -1
- package/src/components/link-control/test/index.js +188 -401
- package/src/components/link-control/use-internal-input-value.js +3 -3
- package/src/components/list-view/block.js +3 -0
- package/src/components/list-view/branch.js +10 -8
- package/src/components/list-view/style.scss +20 -9
- package/src/components/media-placeholder/{style.scss → content.scss} +0 -0
- package/src/components/media-replace-flow/test/index.js +37 -9
- package/src/components/media-upload/test/index.native.js +2 -0
- package/src/components/off-canvas-editor/appender.js +93 -0
- package/src/components/off-canvas-editor/block-edit-button.js +27 -0
- package/src/components/off-canvas-editor/block.js +88 -22
- package/src/components/off-canvas-editor/branch.js +3 -5
- package/src/components/off-canvas-editor/index.js +59 -33
- package/src/components/off-canvas-editor/leaf.js +5 -1
- package/src/components/off-canvas-editor/link-ui.js +166 -0
- package/src/components/off-canvas-editor/style.scss +17 -388
- package/src/components/off-canvas-editor/update-attributes.js +99 -0
- package/src/components/plain-text/{style.scss → content.scss} +0 -0
- package/src/components/recursion-provider/test/index.js +27 -29
- package/src/components/rich-text/content.scss +42 -0
- package/src/components/rich-text/format-toolbar/index.js +6 -4
- package/src/components/rich-text/index.js +2 -2
- package/src/components/rich-text/index.native.js +0 -2
- package/src/components/rich-text/style.scss +0 -43
- package/src/components/rich-text/use-insert-replacement-text.js +31 -0
- package/src/components/rich-text/use-undo-automatic-change.js +7 -1
- package/src/components/rich-text/utils.js +2 -21
- package/src/components/spacing-sizes-control/spacing-input-control.js +9 -0
- package/src/components/ungroup-button/index.native.js +6 -2
- package/src/components/url-input/index.js +57 -73
- package/src/components/url-popover/test/__snapshots__/index.js.snap +8 -6
- package/src/components/url-popover/test/index.js +21 -9
- package/src/components/use-block-display-information/index.js +14 -5
- package/src/components/use-setting/index.js +13 -1
- package/src/components/use-setting/test/index.js +99 -0
- package/src/content.scss +10 -0
- package/src/hooks/child-layout.js +190 -0
- package/src/hooks/content-lock-ui.js +1 -1
- package/src/hooks/dimensions.js +45 -7
- package/src/hooks/layout.js +60 -0
- package/src/hooks/min-height.js +2 -19
- package/src/store/reducer.js +459 -423
- package/src/store/selectors.js +56 -57
- package/src/store/test/performance.js +71 -0
- package/src/store/test/reducer.js +623 -491
- package/src/store/test/selectors.js +1820 -1306
- package/src/style.scss +4 -7
- package/src/utils/sorting.js +54 -0
- package/src/utils/test/sorting.js +49 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-preview/live.js +0 -30
- package/build/components/block-preview/live.js.map +0 -1
- package/build-module/components/block-preview/live.js +0 -20
- package/build-module/components/block-preview/live.js.map +0 -1
- package/src/components/block-preview/live.js +0 -19
|
@@ -13,8 +13,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
13
13
|
|
|
14
14
|
var _reactNative = require("react-native");
|
|
15
15
|
|
|
16
|
-
var _lodash = require("lodash");
|
|
17
|
-
|
|
18
16
|
var _components = require("@wordpress/components");
|
|
19
17
|
|
|
20
18
|
var _data = require("@wordpress/data");
|
|
@@ -37,6 +35,8 @@ var _store = require("../../store");
|
|
|
37
35
|
|
|
38
36
|
var _blockDraggable = _interopRequireDefault(require("../block-draggable"));
|
|
39
37
|
|
|
38
|
+
var _layout = require("./layout");
|
|
39
|
+
|
|
40
40
|
/**
|
|
41
41
|
* External dependencies
|
|
42
42
|
*/
|
|
@@ -77,7 +77,11 @@ function BlockForType(_ref) {
|
|
|
77
77
|
return (0, _components.getMergedGlobalStyles)(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name, fontSizes);
|
|
78
78
|
}, [defaultColors, globalStyle, // I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.
|
|
79
79
|
// Thanks to the JSON.stringify we check if the value is the same instead of reference.
|
|
80
|
-
JSON.stringify(wrapperProps.style), JSON.stringify((0
|
|
80
|
+
JSON.stringify(wrapperProps.style), JSON.stringify(Object.fromEntries(Object.entries(attributes !== null && attributes !== void 0 ? attributes : {}).filter(_ref2 => {
|
|
81
|
+
let [key] = _ref2;
|
|
82
|
+
return _components.GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes(key);
|
|
83
|
+
})))]);
|
|
84
|
+
const parentLayout = (0, _layout.useLayout)();
|
|
81
85
|
return (0, _element.createElement)(_components.GlobalStylesContext.Provider, {
|
|
82
86
|
value: mergedStyle
|
|
83
87
|
}, (0, _element.createElement)(_blockEdit.default, {
|
|
@@ -98,7 +102,8 @@ function BlockForType(_ref) {
|
|
|
98
102
|
contentStyle: contentStyle,
|
|
99
103
|
onDeleteBlock: onDeleteBlock,
|
|
100
104
|
blockWidth: blockWidth,
|
|
101
|
-
parentBlockAlignment: parentBlockAlignment
|
|
105
|
+
parentBlockAlignment: parentBlockAlignment,
|
|
106
|
+
__unstableParentLayout: parentLayout
|
|
102
107
|
}), (0, _element.createElement)(_reactNative.View, {
|
|
103
108
|
onLayout: getBlockWidth
|
|
104
109
|
}));
|
|
@@ -137,10 +142,10 @@ class BlockListBlock extends _element.Component {
|
|
|
137
142
|
}
|
|
138
143
|
}
|
|
139
144
|
|
|
140
|
-
getBlockWidth(
|
|
145
|
+
getBlockWidth(_ref3) {
|
|
141
146
|
let {
|
|
142
147
|
nativeEvent
|
|
143
|
-
} =
|
|
148
|
+
} = _ref3;
|
|
144
149
|
const {
|
|
145
150
|
layout
|
|
146
151
|
} = nativeEvent;
|
|
@@ -289,12 +294,12 @@ function getWrapperProps(value, getWrapperPropsFunction) {
|
|
|
289
294
|
return cachedValue;
|
|
290
295
|
}
|
|
291
296
|
|
|
292
|
-
var _default = (0, _compose.compose)([(0, _data.withSelect)((select,
|
|
297
|
+
var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref4) => {
|
|
293
298
|
var _getSettings;
|
|
294
299
|
|
|
295
300
|
let {
|
|
296
301
|
clientId
|
|
297
|
-
} =
|
|
302
|
+
} = _ref4;
|
|
298
303
|
const {
|
|
299
304
|
getBlockIndex,
|
|
300
305
|
getBlockCount,
|
|
@@ -379,10 +384,51 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
|
|
|
379
384
|
getBlock,
|
|
380
385
|
getBlockAttributes,
|
|
381
386
|
getBlockName,
|
|
382
|
-
getBlockOrder
|
|
383
|
-
|
|
387
|
+
getBlockOrder,
|
|
388
|
+
getBlockIndex,
|
|
389
|
+
getBlockRootClientId,
|
|
390
|
+
canInsertBlockType
|
|
391
|
+
} = registry.select(_store.store);
|
|
392
|
+
/**
|
|
393
|
+
* Moves the block with clientId up one level. If the block type
|
|
394
|
+
* cannot be inserted at the new location, it will be attempted to
|
|
395
|
+
* convert to the default block type.
|
|
396
|
+
*
|
|
397
|
+
* @param {string} _clientId The block to move.
|
|
398
|
+
* @param {boolean} changeSelection Whether to change the selection
|
|
399
|
+
* to the moved block.
|
|
400
|
+
*/
|
|
401
|
+
|
|
402
|
+
function moveFirstItemUp(_clientId) {
|
|
403
|
+
let changeSelection = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
404
|
+
const targetRootClientId = getBlockRootClientId(_clientId);
|
|
405
|
+
const blockOrder = getBlockOrder(_clientId);
|
|
406
|
+
const [firstClientId] = blockOrder;
|
|
407
|
+
|
|
408
|
+
if (blockOrder.length === 1 && (0, _blocks.isUnmodifiedBlock)(getBlock(firstClientId))) {
|
|
409
|
+
removeBlock(_clientId);
|
|
410
|
+
} else {
|
|
411
|
+
if (canInsertBlockType(getBlockName(firstClientId), targetRootClientId)) {
|
|
412
|
+
moveBlocksToPosition([firstClientId], _clientId, targetRootClientId, getBlockIndex(_clientId));
|
|
413
|
+
} else {
|
|
414
|
+
const replacement = (0, _blocks.switchToBlockType)(getBlock(firstClientId), (0, _blocks.getDefaultBlockName)());
|
|
415
|
+
|
|
416
|
+
if (replacement && replacement.length) {
|
|
417
|
+
registry.batch(() => {
|
|
418
|
+
insertBlocks(replacement, getBlockIndex(_clientId), targetRootClientId, changeSelection);
|
|
419
|
+
removeBlock(firstClientId, false);
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
if (!getBlockOrder(_clientId).length && (0, _blocks.isUnmodifiedBlock)(getBlock(_clientId))) {
|
|
425
|
+
removeBlock(_clientId, false);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
} // For `Delete` or forward merge, we should do the exact same thing
|
|
384
429
|
// as `Backspace`, but from the other block.
|
|
385
430
|
|
|
431
|
+
|
|
386
432
|
if (forward) {
|
|
387
433
|
if (rootClientId) {
|
|
388
434
|
const nextRootClientId = getNextBlockClientId(rootClientId);
|
|
@@ -413,14 +459,10 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
|
|
|
413
459
|
|
|
414
460
|
if (!nextBlockClientId) {
|
|
415
461
|
return;
|
|
416
|
-
}
|
|
417
|
-
// before trying to merge.
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
const replacement = (0, _blocks.switchToBlockType)(getBlock(nextBlockClientId), '*');
|
|
462
|
+
}
|
|
421
463
|
|
|
422
|
-
if (
|
|
423
|
-
|
|
464
|
+
if (getBlockOrder(nextBlockClientId).length) {
|
|
465
|
+
moveFirstItemUp(nextBlockClientId, false);
|
|
424
466
|
} else {
|
|
425
467
|
mergeBlocks(clientId, nextBlockClientId);
|
|
426
468
|
}
|
|
@@ -444,18 +486,9 @@ var _default = (0, _compose.compose)([(0, _data.withSelect)((select, _ref3) => {
|
|
|
444
486
|
});
|
|
445
487
|
return;
|
|
446
488
|
}
|
|
447
|
-
} // Attempt to "unwrap" the block contents when there's no
|
|
448
|
-
// preceding block to merge with.
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
const replacement = (0, _blocks.switchToBlockType)(getBlock(rootClientId), '*');
|
|
452
|
-
|
|
453
|
-
if (replacement && replacement.length) {
|
|
454
|
-
registry.batch(() => {
|
|
455
|
-
replaceBlocks(rootClientId, replacement);
|
|
456
|
-
selectBlock(replacement[0].clientId, 0);
|
|
457
|
-
});
|
|
458
489
|
}
|
|
490
|
+
|
|
491
|
+
moveFirstItemUp(rootClientId);
|
|
459
492
|
}
|
|
460
493
|
}
|
|
461
494
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","onMerge","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","parentBlockAlignment","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","BlockListBlock","Component","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","styles","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","draggingEnabled","draggingClientId","align","accessibilityLabel","isFullWidth","isContainerRelated","alignmentHelpers","accessible","screenWidth","Dimensions","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getBlockCount","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","getBlockHierarchyRootClientId","blockEditorStore","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","includes","__experimentalGlobalStylesBaseStyles","hasInnerBlocks","getEditWrapperProps","dispatch","ownProps","registry","insertBlocks","mergeBlocks","replaceBlocks","selectBlock","updateBlockAttributes","moveBlocksToPosition","removeBlock","forward","rootClientId","getPreviousBlockClientId","getNextBlockClientId","getBlockAttributes","getBlockName","getBlockOrder","nextRootClientId","rootAttributes","previousRootAttributes","Object","keys","every","key","batch","nextBlockClientId","replacement","previousBlockClientId","previousRootClientId","index","initialPosition","indexToSelect","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\nimport { pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tonMerge,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\tparentBlockAlignment,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\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\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\n\t\tJSON.stringify(\n\t\t\tpick( attributes, GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES )\n\t\t),\n\t] );\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ onMerge }\n\t\t\t\t// Block level styles.\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// Inherited styles merged with block level styles.\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// Focus on the first block inserted.\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t\tdraggingEnabled,\n\t\t\tdraggingClientId,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockDraggable\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () =>\n\t\t\t\t\t\t\t\tisValid ? (\n\t\t\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\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\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t\tgetBlockHierarchyRootClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor =\n\t\t\tgetLowestCommonAncestorWithSelectedBlock( clientId );\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\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( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected =\n\t\t\tselectedParents.includes( parentId );\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles =\n\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t// gesture from being disabled for elements within the block UI.\n\t\tconst draggingEnabled =\n\t\t\t! hasInnerBlocks ||\n\t\t\tisSelected ||\n\t\t\t! hasSelectedInnerBlock( clientId, true );\n\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t// will be the top in the hierarchy.\n\t\tconst draggingClientId = getBlockHierarchyRootClientId( clientId );\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tdraggingClientId,\n\t\t\tdraggingEnabled,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, registry ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t\tmoveBlocksToPosition,\n\t\t\tremoveBlock,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonMerge( forward ) {\n\t\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t\t// as `Backspace`, but from the other block.\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if it's possibile to \"unwrap\" the following block\n\t\t\t\t\t// before trying to merge.\n\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\tgetBlock( nextBlockClientId ),\n\t\t\t\t\t\t'*'\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\treplaceBlocks( nextBlockClientId, replacement );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\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( previousRootClientId );\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( rootClientId ),\n\t\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( rootClientId, 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}\n\n\t\t\t\t\t\t// Attempt to \"unwrap\" the block contents when there's no\n\t\t\t\t\t\t// preceding block to merge with.\n\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\tgetBlock( rootClientId ),\n\t\t\t\t\t\t\t'*'\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\treplaceBlocks( rootClientId, replacement );\n\t\t\t\t\t\t\t\tselectBlock( replacement[ 0 ].clientId, 0 );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"names":["emptyArray","BlockForType","attributes","clientId","contentStyle","getBlockWidth","insertBlocksAfter","isSelected","onMerge","name","onBlockFocus","onChange","onDeleteBlock","onReplace","parentWidth","parentBlockAlignment","wrapperProps","blockWidth","baseGlobalStyles","defaultColors","fontSizes","globalStyle","mergedStyle","style","JSON","stringify","Object","fromEntries","entries","filter","key","GlobalStylesContext","BLOCK_STYLE_ATTRIBUTES","includes","parentLayout","BlockListBlock","Component","constructor","arguments","bind","onFocus","state","props","marginHorizontal","anchorNodeRef","firstToSelectId","onSelect","blocks","onInsertBlocks","order","nativeEvent","layout","layoutWidth","Math","floor","width","setState","getBlockForType","renderBlockTitle","styles","blockTitle","render","blockType","icon","isValid","title","isDimmed","isTouchable","isStackedHorizontally","isParentSelected","getStylesFromColorScheme","marginVertical","isInnerBlockSelected","draggingEnabled","draggingClientId","align","accessibilityLabel","isFullWidth","isContainerRelated","alignmentHelpers","accessible","screenWidth","Dimensions","get","isScreenWidthEqual","isScreenWidthWider","isFullWidthToolbar","flex","dimmed","solidBorder","borderFullWidth","containerBorderFullWidth","solidBorderColor","solidBorderColorDark","dashedBorder","dashedBorderColor","dashedBorderColorDark","neutralToolbar","current","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","set","select","getBlockIndex","getBlockCount","getSettings","isBlockSelected","getBlock","getSelectedBlockClientId","getLowestCommonAncestorWithSelectedBlock","getBlockParents","hasSelectedInnerBlock","getBlockHierarchyRootClientId","blockEditorStore","block","parents","parentId","selectedBlockClientId","commonAncestor","commonAncestorIndex","indexOf","length","selectedParents","isDescendantOfParentSelected","__experimentalGlobalStylesBaseStyles","hasInnerBlocks","getEditWrapperProps","dispatch","ownProps","registry","insertBlocks","mergeBlocks","replaceBlocks","selectBlock","updateBlockAttributes","moveBlocksToPosition","removeBlock","forward","rootClientId","getPreviousBlockClientId","getNextBlockClientId","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","blockOrder","firstClientId","replacement","batch","nextRootClientId","rootAttributes","previousRootAttributes","keys","every","nextBlockClientId","previousBlockClientId","previousRootClientId","index","initialPosition","indexToSelect","withPreferredColorScheme"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component, createRef, useMemo } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\talignmentHelpers,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport {\n\tgetBlockType,\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tswitchToBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n} from '@wordpress/blocks';\nimport { useSetting } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './block.scss';\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockMobileToolbar from '../block-mobile-toolbar';\nimport { store as blockEditorStore } from '../../store';\nimport BlockDraggable from '../block-draggable';\nimport { useLayout } from './layout';\n\nconst emptyArray = [];\nfunction BlockForType( {\n\tattributes,\n\tclientId,\n\tcontentStyle,\n\tgetBlockWidth,\n\tinsertBlocksAfter,\n\tisSelected,\n\tonMerge,\n\tname,\n\tonBlockFocus,\n\tonChange,\n\tonDeleteBlock,\n\tonReplace,\n\tparentWidth,\n\tparentBlockAlignment,\n\twrapperProps,\n\tblockWidth,\n\tbaseGlobalStyles,\n} ) {\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\tconst globalStyle = useGlobalStyles();\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\n\t\t);\n\t}, [\n\t\tdefaultColors,\n\t\tglobalStyle,\n\t\t// I couldn't simply use attributes and wrapperProps.styles as a dependency because they are almost always a new reference.\n\t\t// Thanks to the JSON.stringify we check if the value is the same instead of reference.\n\t\tJSON.stringify( wrapperProps.style ),\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 parentLayout = useLayout();\n\n\treturn (\n\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t<BlockEdit\n\t\t\t\tname={ name }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tattributes={ attributes }\n\t\t\t\tsetAttributes={ onChange }\n\t\t\t\tonFocus={ onBlockFocus }\n\t\t\t\tonReplace={ onReplace }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmergeBlocks={ onMerge }\n\t\t\t\t// Block level styles.\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t// Inherited styles merged with block level styles.\n\t\t\t\tstyle={ mergedStyle }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t__unstableParentLayout={ parentLayout }\n\t\t\t/>\n\t\t\t<View onLayout={ getBlockWidth } />\n\t\t</GlobalStylesContext.Provider>\n\t);\n}\n\nclass BlockListBlock extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.insertBlocksAfter = this.insertBlocksAfter.bind( this );\n\t\tthis.onFocus = this.onFocus.bind( this );\n\t\tthis.getBlockWidth = this.getBlockWidth.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth - 2 * this.props.marginHorizontal,\n\t\t};\n\n\t\tthis.anchorNodeRef = createRef();\n\t}\n\n\tonFocus() {\n\t\tconst { firstToSelectId, isSelected, onSelect } = this.props;\n\t\tif ( ! isSelected ) {\n\t\t\tonSelect( firstToSelectId );\n\t\t}\n\t}\n\n\tinsertBlocksAfter( blocks ) {\n\t\tthis.props.onInsertBlocks( blocks, this.props.order + 1 );\n\n\t\tif ( blocks[ 0 ] ) {\n\t\t\t// Focus on the first block inserted.\n\t\t\tthis.props.onSelect( blocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tgetBlockWidth( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\n\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( { blockWidth: layoutWidth } );\n\t\t}\n\t}\n\n\tgetBlockForType() {\n\t\tconst { blockWidth } = this.state;\n\t\treturn (\n\t\t\t<BlockForType\n\t\t\t\t{ ...this.props }\n\t\t\t\tonBlockFocus={ this.onFocus }\n\t\t\t\tinsertBlocksAfter={ this.insertBlocksAfter }\n\t\t\t\tgetBlockWidth={ this.getBlockWidth }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t/>\n\t\t);\n\t}\n\n\trenderBlockTitle() {\n\t\treturn (\n\t\t\t<View style={ styles.blockTitle }>\n\t\t\t\t<Text>BlockType: { this.props.name }</Text>\n\t\t\t</View>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tclientId,\n\t\t\ticon,\n\t\t\tisSelected,\n\t\t\tisValid,\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tisDimmed,\n\t\t\tisTouchable,\n\t\t\tonDeleteBlock,\n\t\t\tisStackedHorizontally,\n\t\t\tisParentSelected,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t\tisInnerBlockSelected,\n\t\t\tname,\n\t\t\tdraggingEnabled,\n\t\t\tdraggingClientId,\n\t\t} = this.props;\n\n\t\tif ( ! attributes || ! blockType ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst { blockWidth } = this.state;\n\t\tconst { align } = attributes;\n\t\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\t\tblockType,\n\t\t\tattributes,\n\t\t\torder + 1\n\t\t);\n\t\tconst { isFullWidth, isContainerRelated } = alignmentHelpers;\n\t\tconst accessible = ! ( isSelected || isInnerBlockSelected );\n\t\tconst screenWidth = Math.floor( Dimensions.get( 'window' ).width );\n\t\tconst isScreenWidthEqual = blockWidth === screenWidth;\n\t\tconst isScreenWidthWider = blockWidth < screenWidth;\n\t\tconst isFullWidthToolbar = isFullWidth( align ) || isScreenWidthEqual;\n\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tonPress={ this.onFocus }\n\t\t\t\taccessible={ accessible }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t>\n\t\t\t\t<View\n\t\t\t\t\tstyle={ { flex: 1 } }\n\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t>\n\t\t\t\t\t<View\n\t\t\t\t\t\tpointerEvents={ isTouchable ? 'auto' : 'box-only' }\n\t\t\t\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t{ marginVertical, marginHorizontal, flex: 1 },\n\t\t\t\t\t\t\tisDimmed && styles.dimmed,\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.solidBorder,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.borderFullWidth,\n\t\t\t\t\t\t\t\t\tisFullWidth( align ) &&\n\t\t\t\t\t\t\t\t\t\tisContainerRelated( name ) &&\n\t\t\t\t\t\t\t\t\t\tisScreenWidthWider &&\n\t\t\t\t\t\t\t\t\t\tstyles.containerBorderFullWidth,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.solidBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ isParentSelected && (\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\tstyles.dashedBorder,\n\t\t\t\t\t\t\t\t\tgetStylesFromColorScheme(\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColor,\n\t\t\t\t\t\t\t\t\t\tstyles.dashedBorderColorDark\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<BlockDraggable\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ () =>\n\t\t\t\t\t\t\t\tisValid ? (\n\t\t\t\t\t\t\t\t\tthis.getBlockForType()\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<BlockInvalidWarning\n\t\t\t\t\t\t\t\t\t\tblockTitle={ title }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BlockDraggable>\n\t\t\t\t\t\t<View\n\t\t\t\t\t\t\tstyle={ styles.neutralToolbar }\n\t\t\t\t\t\t\tref={ this.anchorNodeRef }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ isSelected && (\n\t\t\t\t\t\t\t\t<BlockMobileToolbar\n\t\t\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\t\t\tonDelete={ onDeleteBlock }\n\t\t\t\t\t\t\t\t\tisStackedHorizontally={\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\t\t\tanchorNodeRef={ this.anchorNodeRef.current }\n\t\t\t\t\t\t\t\t\tisFullWidth={ isFullWidthToolbar }\n\t\t\t\t\t\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</View>\n\t\t\t\t\t</View>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n}\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\nexport default compose( [\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t\tisBlockSelected,\n\t\t\tgetBlock,\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetLowestCommonAncestorWithSelectedBlock,\n\t\t\tgetBlockParents,\n\t\t\thasSelectedInnerBlock,\n\t\t\tgetBlockHierarchyRootClientId,\n\t\t} = select( blockEditorStore );\n\n\t\tconst order = getBlockIndex( clientId );\n\t\tconst isSelected = isBlockSelected( clientId );\n\t\tconst isInnerBlockSelected = hasSelectedInnerBlock( clientId );\n\t\tconst block = getBlock( clientId );\n\t\tconst { name, attributes, isValid } = block || {};\n\n\t\tconst blockType = getBlockType( name || 'core/missing' );\n\t\tconst title = blockType?.title;\n\t\tconst icon = blockType?.icon;\n\n\t\tconst parents = getBlockParents( clientId, true );\n\t\tconst parentId = parents[ 0 ] || '';\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\tconst commonAncestor =\n\t\t\tgetLowestCommonAncestorWithSelectedBlock( clientId );\n\t\tconst commonAncestorIndex = parents.indexOf( commonAncestor ) - 1;\n\t\tconst firstToSelectId = commonAncestor\n\t\t\t? parents[ commonAncestorIndex ]\n\t\t\t: parents[ parents.length - 1 ];\n\n\t\tconst isParentSelected =\n\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( selectedBlockClientId || false ) &&\n\t\t\tselectedBlockClientId === parentId;\n\n\t\tconst selectedParents = selectedBlockClientId\n\t\t\t? getBlockParents( selectedBlockClientId )\n\t\t\t: [];\n\t\tconst isDescendantOfParentSelected =\n\t\t\tselectedParents.includes( parentId );\n\t\tconst isTouchable =\n\t\t\tisSelected ||\n\t\t\tisDescendantOfParentSelected ||\n\t\t\tisParentSelected ||\n\t\t\tparentId === '';\n\t\tconst baseGlobalStyles =\n\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\tconst hasInnerBlocks = getBlockCount( clientId ) > 0;\n\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t// gesture from being disabled for elements within the block UI.\n\t\tconst draggingEnabled =\n\t\t\t! hasInnerBlocks ||\n\t\t\tisSelected ||\n\t\t\t! hasSelectedInnerBlock( clientId, true );\n\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t// will be the top in the hierarchy.\n\t\tconst draggingClientId = getBlockHierarchyRootClientId( clientId );\n\n\t\treturn {\n\t\t\ticon,\n\t\t\tname: name || 'core/missing',\n\t\t\torder,\n\t\t\ttitle,\n\t\t\tattributes,\n\t\t\tblockType,\n\t\t\tdraggingClientId,\n\t\t\tdraggingEnabled,\n\t\t\tisSelected,\n\t\t\tisInnerBlockSelected,\n\t\t\tisValid,\n\t\t\tisParentSelected,\n\t\t\tfirstToSelectId,\n\t\t\tisTouchable,\n\t\t\tbaseGlobalStyles,\n\t\t\twrapperProps: getWrapperProps(\n\t\t\t\tattributes,\n\t\t\t\tblockType.getEditWrapperProps\n\t\t\t),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, registry ) => {\n\t\tconst {\n\t\t\tinsertBlocks,\n\t\t\tmergeBlocks,\n\t\t\treplaceBlocks,\n\t\t\tselectBlock,\n\t\t\tupdateBlockAttributes,\n\t\t\tmoveBlocksToPosition,\n\t\t\tremoveBlock,\n\t\t} = dispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tonMerge( forward ) {\n\t\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\t\tconst {\n\t\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\t\tgetNextBlockClientId,\n\t\t\t\t\tgetBlock,\n\t\t\t\t\tgetBlockAttributes,\n\t\t\t\t\tgetBlockName,\n\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\tcanInsertBlockType,\n\t\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t\t/**\n\t\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t\t * convert to the default block type.\n\t\t\t\t *\n\t\t\t\t * @param {string} _clientId The block to move.\n\t\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t\t * to the moved block.\n\t\t\t\t */\n\t\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\t\tconst targetRootClientId =\n\t\t\t\t\t\tgetBlockRootClientId( _clientId );\n\t\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t\t) {\n\t\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t\t} else {\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\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t\t} );\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\n\t\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t\t// as `Backspace`, but from the other block.\n\t\t\t\tif ( forward ) {\n\t\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\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( previousRootClientId );\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( rootClientId ),\n\t\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( rootClientId, 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}\n\n\t\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tonInsertBlocks( blocks, index ) {\n\t\t\t\tinsertBlocks( blocks, index, ownProps.rootClientId );\n\t\t\t},\n\t\t\tonSelect( clientId = ownProps.clientId, initialPosition ) {\n\t\t\t\tselectBlock( clientId, initialPosition );\n\t\t\t},\n\t\t\tonChange: ( attributes ) => {\n\t\t\t\tupdateBlockAttributes( ownProps.clientId, attributes );\n\t\t\t},\n\t\t\tonReplace( blocks, indexToSelect ) {\n\t\t\t\treplaceBlocks( [ ownProps.clientId ], blocks, indexToSelect );\n\t\t\t},\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockListBlock );\n"]}
|
|
@@ -42,6 +42,8 @@ var _blockTransformationsMenu = _interopRequireDefault(require("../block-switche
|
|
|
42
42
|
/**
|
|
43
43
|
* WordPress dependencies
|
|
44
44
|
*/
|
|
45
|
+
// Disable Reason: Needs to be refactored.
|
|
46
|
+
// eslint-disable-next-line no-restricted-imports
|
|
45
47
|
|
|
46
48
|
/**
|
|
47
49
|
* Internal dependencies
|
|
@@ -88,6 +90,7 @@ const BlockActionsMenu = _ref => {
|
|
|
88
90
|
HTML: clipboard
|
|
89
91
|
})[0];
|
|
90
92
|
const isPasteEnabled = clipboardBlock && canInsertBlockType(clipboardBlock.name, rootClientId);
|
|
93
|
+
const innerBlockCount = (0, _data.useSelect)(select => select(_store.store).getBlockCount(selectedBlockClientId), [selectedBlockClientId]);
|
|
91
94
|
const {
|
|
92
95
|
actionTitle: {
|
|
93
96
|
backward: backwardButtonTitle,
|
|
@@ -182,14 +185,17 @@ const BlockActionsMenu = _ref => {
|
|
|
182
185
|
},
|
|
183
186
|
convertToRegularBlocks: {
|
|
184
187
|
id: 'convertToRegularBlocksOption',
|
|
185
|
-
label: (0, _i18n.__)('Convert to regular blocks'),
|
|
188
|
+
label: innerBlockCount > 1 ? (0, _i18n.__)('Convert to regular blocks') : (0, _i18n.__)('Convert to regular block'),
|
|
186
189
|
value: 'convertToRegularBlocksOption',
|
|
187
190
|
onSelect: () => {
|
|
188
191
|
var _reusableBlock$title;
|
|
189
192
|
|
|
190
|
-
|
|
193
|
+
const successNotice = innerBlockCount > 1 ?
|
|
191
194
|
/* translators: %s: name of the reusable block */
|
|
192
|
-
(0, _i18n.__)('%s converted to regular blocks')
|
|
195
|
+
(0, _i18n.__)('%s converted to regular blocks') :
|
|
196
|
+
/* translators: %s: name of the reusable block */
|
|
197
|
+
(0, _i18n.__)('%s converted to regular block');
|
|
198
|
+
createSuccessNotice((0, _i18n.sprintf)(successNotice, (reusableBlock === null || reusableBlock === void 0 ? void 0 : (_reusableBlock$title = reusableBlock.title) === null || _reusableBlock$title === void 0 ? void 0 : _reusableBlock$title.raw) || blockTitle));
|
|
193
199
|
convertToRegularBlocks();
|
|
194
200
|
}
|
|
195
201
|
}
|
|
@@ -258,6 +264,8 @@ const BlockActionsMenu = _ref => {
|
|
|
258
264
|
}));
|
|
259
265
|
};
|
|
260
266
|
|
|
267
|
+
const EMPTY_BLOCK_LIST = [];
|
|
268
|
+
|
|
261
269
|
var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
|
|
262
270
|
let {
|
|
263
271
|
clientIds
|
|
@@ -295,7 +303,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
|
|
|
295
303
|
const isLocked = !!getTemplateLock(rootClientId);
|
|
296
304
|
const selectedBlockClientId = getSelectedBlockClientIds()[0];
|
|
297
305
|
const selectedBlock = selectedBlockClientId ? getBlocksByClientId(selectedBlockClientId)[0] : undefined;
|
|
298
|
-
const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems(
|
|
306
|
+
const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems(selectedBlock, rootClientId) : EMPTY_BLOCK_LIST;
|
|
299
307
|
const isReusableBlockType = block ? (0, _blocks.isReusableBlock)(block) : false;
|
|
300
308
|
const reusableBlock = isReusableBlockType ? select(_coreData.store).getEntityRecord('postType', 'wp_block', block === null || block === void 0 ? void 0 : block.attributes.ref) : undefined;
|
|
301
309
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/block-actions-menu.native.js"],"names":["BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","blockActionsMenuPickerRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","HTML","isPasteEnabled","name","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","allOptions","settings","id","label","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","cutButton","pasteButton","onPasteBlock","duplicateButton","title","raw","options","length","filter","Boolean","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","undefined","hint","select","clientIds","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","blockEditorStore","normalizedClientIds","Array","isArray","block","blockName","blockType","firstClientId","blockOrder","firstIndex","lastIndex","innerBlocks","every","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","selectedBlock","coreStore","getEntityRecord","ref","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlocks","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","insertedBlock","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy block' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel: __( 'Convert to regular blocks' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: name of the reusable block */\n\t\t\t\t\t\t__( '%s converted to regular blocks' ),\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tisReusableBlockType && allOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t].filter( Boolean );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\tdisabled={ true }\n\t\t\t/>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst block = getBlock( normalizedClientIds );\n\t\tconst blockName = getBlockName( normalizedClientIds );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\tconst innerBlocks = getBlocksByClientId( clientIds );\n\n\t\tconst canDuplicate = innerBlocks.every( ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? getBlocksByClientId( selectedBlockClientId )[ 0 ]\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( [ selectedBlock ], rootClientId )\n\t\t\t: [];\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: firstIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientIds, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlocks,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\t\t\tdispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( clientIds );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlocks( clientIds, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/block-actions-menu.native.js"],"names":["BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","blockActionsMenuPickerRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","HTML","isPasteEnabled","name","innerBlockCount","select","blockEditorStore","getBlockCount","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","allOptions","settings","id","label","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","cutButton","pasteButton","onPasteBlock","duplicateButton","successNotice","title","raw","options","length","filter","Boolean","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","undefined","hint","EMPTY_BLOCK_LIST","clientIds","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","normalizedClientIds","Array","isArray","block","blockName","blockType","firstClientId","blockOrder","firstIndex","lastIndex","innerBlocks","every","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","selectedBlock","coreStore","getEntityRecord","ref","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlocks","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","insertedBlock","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect, useSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\n// Disable Reason: Needs to be refactored.\n// eslint-disable-next-line no-restricted-imports\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst innerBlockCount = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlockCount( selectedBlockClientId ),\n\t\t[ selectedBlockClientId ]\n\t);\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy block' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel:\n\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t? __( 'Convert to regular blocks' )\n\t\t\t\t\t: __( 'Convert to regular block' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst successNotice =\n\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t? /* translators: %s: name of the reusable block */\n\t\t\t\t\t\t __( '%s converted to regular blocks' )\n\t\t\t\t\t\t: /* translators: %s: name of the reusable block */\n\t\t\t\t\t\t __( '%s converted to regular block' );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\tsuccessNotice,\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tisReusableBlockType && allOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t].filter( Boolean );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\tdisabled={ true }\n\t\t\t/>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nconst EMPTY_BLOCK_LIST = [];\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = Array.isArray( clientIds )\n\t\t\t? clientIds\n\t\t\t: [ clientIds ];\n\t\tconst block = getBlock( normalizedClientIds );\n\t\tconst blockName = getBlockName( normalizedClientIds );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst firstClientId = normalizedClientIds[ 0 ];\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex(\n\t\t\tnormalizedClientIds[ normalizedClientIds.length - 1 ]\n\t\t);\n\n\t\tconst innerBlocks = getBlocksByClientId( clientIds );\n\n\t\tconst canDuplicate = innerBlocks.every( ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = getSelectedBlockClientIds()[ 0 ];\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? getBlocksByClientId( selectedBlockClientId )[ 0 ]\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( selectedBlock, rootClientId )\n\t\t\t: EMPTY_BLOCK_LIST;\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: firstIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientIds, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlocks,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\t\t\tdispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( clientIds );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( clientIds, rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( clientIds, rootClientId, ...args ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlocks( clientIds, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"]}
|
|
@@ -137,9 +137,10 @@ const BlockPatternSetup = _ref4 => {
|
|
|
137
137
|
clientId,
|
|
138
138
|
blockName,
|
|
139
139
|
filterPatternsFn,
|
|
140
|
-
onBlockPatternSelect
|
|
140
|
+
onBlockPatternSelect,
|
|
141
|
+
initialViewMode = _constants.VIEWMODES.carousel
|
|
141
142
|
} = _ref4;
|
|
142
|
-
const [viewMode, setViewMode] = (0, _element.useState)(
|
|
143
|
+
const [viewMode, setViewMode] = (0, _element.useState)(initialViewMode);
|
|
143
144
|
const [activeSlide, setActiveSlide] = (0, _element.useState)(0);
|
|
144
145
|
const {
|
|
145
146
|
replaceBlock
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"names":["SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","composite","containerClass","VIEWMODES","carousel","slideClass","Map","map","pattern","index","get","name","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","title","undefined","BlockPatternSlide","className","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","setViewMode","setActiveSlide","replaceBlock","blockEditorStore","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","active"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-pattern-setup__carousel\">\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__grid\">\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t</CompositeItem>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\t__experimentalMinHeight={ minHeight }\n\t\t\t/>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tonBlockPatternSelect,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( VIEWMODES.carousel );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\n\tif ( ! patterns?.length ) {\n\t\treturn null;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-pattern-setup/index.js"],"names":["SetupContent","viewMode","activeSlide","patterns","onBlockPatternSelect","composite","containerClass","VIEWMODES","carousel","slideClass","Map","map","pattern","index","get","name","BlockPattern","onSelect","baseClassName","blocks","description","viewportWidth","descriptionId","title","undefined","BlockPatternSlide","className","minHeight","BlockPatternSetup","clientId","blockName","filterPatternsFn","initialViewMode","setViewMode","setActiveSlide","replaceBlock","blockEditorStore","length","onBlockPatternSelectDefault","clonedBlocks","block","onPatternSelectCallback","active"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch } from '@wordpress/data';\nimport { cloneBlock } from '@wordpress/blocks';\nimport {\n\tVisuallyHidden,\n\t__unstableComposite as Composite,\n\t__unstableUseCompositeState as useCompositeState,\n\t__unstableCompositeItem as CompositeItem,\n} from '@wordpress/components';\n\nimport { useState } from '@wordpress/element';\nimport { useInstanceId } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport BlockPreview from '../block-preview';\nimport SetupToolbar from './setup-toolbar';\nimport usePatternsSetup from './use-patterns-setup';\nimport { VIEWMODES } from './constants';\n\nconst SetupContent = ( {\n\tviewMode,\n\tactiveSlide,\n\tpatterns,\n\tonBlockPatternSelect,\n} ) => {\n\tconst composite = useCompositeState();\n\tconst containerClass = 'block-editor-block-pattern-setup__container';\n\tif ( viewMode === VIEWMODES.carousel ) {\n\t\tconst slideClass = new Map( [\n\t\t\t[ activeSlide, 'active-slide' ],\n\t\t\t[ activeSlide - 1, 'previous-slide' ],\n\t\t\t[ activeSlide + 1, 'next-slide' ],\n\t\t] );\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-pattern-setup__carousel\">\n\t\t\t\t<div className={ containerClass }>\n\t\t\t\t\t<ul className=\"carousel-container\">\n\t\t\t\t\t\t{ patterns.map( ( pattern, index ) => (\n\t\t\t\t\t\t\t<BlockPatternSlide\n\t\t\t\t\t\t\t\tclassName={ slideClass.get( index ) || '' }\n\t\t\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div className=\"block-editor-block-pattern-setup__grid\">\n\t\t\t<Composite\n\t\t\t\t{ ...composite }\n\t\t\t\trole=\"listbox\"\n\t\t\t\tclassName={ containerClass }\n\t\t\t\taria-label={ __( 'Patterns list' ) }\n\t\t\t>\n\t\t\t\t{ patterns.map( ( pattern ) => (\n\t\t\t\t\t<BlockPattern\n\t\t\t\t\t\tkey={ pattern.name }\n\t\t\t\t\t\tpattern={ pattern }\n\t\t\t\t\t\tonSelect={ onBlockPatternSelect }\n\t\t\t\t\t\tcomposite={ composite }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Composite>\n\t\t</div>\n\t);\n};\n\nfunction BlockPattern( { pattern, onSelect, composite } ) {\n\tconst baseClassName = 'block-editor-block-pattern-setup-list';\n\tconst { blocks, description, viewportWidth = 700 } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPattern,\n\t\t`${ baseClassName }__item-description`\n\t);\n\treturn (\n\t\t<div\n\t\t\tclassName={ `${ baseClassName }__list-item` }\n\t\t\taria-label={ pattern.title }\n\t\t\taria-describedby={ pattern.description ? descriptionId : undefined }\n\t\t>\n\t\t\t<CompositeItem\n\t\t\t\trole=\"option\"\n\t\t\t\tas=\"div\"\n\t\t\t\t{ ...composite }\n\t\t\t\tclassName={ `${ baseClassName }__item` }\n\t\t\t\tonClick={ () => onSelect( blocks ) }\n\t\t\t>\n\t\t\t\t<BlockPreview\n\t\t\t\t\tblocks={ blocks }\n\t\t\t\t\tviewportWidth={ viewportWidth }\n\t\t\t\t/>\n\t\t\t</CompositeItem>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nfunction BlockPatternSlide( { className, pattern, minHeight } ) {\n\tconst { blocks, title, description } = pattern;\n\tconst descriptionId = useInstanceId(\n\t\tBlockPatternSlide,\n\t\t'block-editor-block-pattern-setup-list__item-description'\n\t);\n\treturn (\n\t\t<li\n\t\t\tclassName={ `pattern-slide ${ className }` }\n\t\t\taria-label={ title }\n\t\t\taria-describedby={ description ? descriptionId : undefined }\n\t\t>\n\t\t\t<BlockPreview\n\t\t\t\tblocks={ blocks }\n\t\t\t\t__experimentalMinHeight={ minHeight }\n\t\t\t/>\n\t\t\t{ !! description && (\n\t\t\t\t<VisuallyHidden id={ descriptionId }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t</li>\n\t);\n}\n\nconst BlockPatternSetup = ( {\n\tclientId,\n\tblockName,\n\tfilterPatternsFn,\n\tonBlockPatternSelect,\n\tinitialViewMode = VIEWMODES.carousel,\n} ) => {\n\tconst [ viewMode, setViewMode ] = useState( initialViewMode );\n\tconst [ activeSlide, setActiveSlide ] = useState( 0 );\n\tconst { replaceBlock } = useDispatch( blockEditorStore );\n\tconst patterns = usePatternsSetup( clientId, blockName, filterPatternsFn );\n\n\tif ( ! patterns?.length ) {\n\t\treturn null;\n\t}\n\n\tconst onBlockPatternSelectDefault = ( blocks ) => {\n\t\tconst clonedBlocks = blocks.map( ( block ) => cloneBlock( block ) );\n\t\treplaceBlock( clientId, clonedBlocks );\n\t};\n\tconst onPatternSelectCallback =\n\t\tonBlockPatternSelect || onBlockPatternSelectDefault;\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={ `block-editor-block-pattern-setup view-mode-${ viewMode }` }\n\t\t\t>\n\t\t\t\t<SetupContent\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\tpatterns={ patterns }\n\t\t\t\t\tonBlockPatternSelect={ onPatternSelectCallback }\n\t\t\t\t/>\n\t\t\t\t<SetupToolbar\n\t\t\t\t\tviewMode={ viewMode }\n\t\t\t\t\tsetViewMode={ setViewMode }\n\t\t\t\t\tactiveSlide={ activeSlide }\n\t\t\t\t\ttotalSlides={ patterns.length }\n\t\t\t\t\thandleNext={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active + 1 );\n\t\t\t\t\t} }\n\t\t\t\t\thandlePrevious={ () => {\n\t\t\t\t\t\tsetActiveSlide( ( active ) => active - 1 );\n\t\t\t\t\t} }\n\t\t\t\t\tonBlockPatternSelect={ () => {\n\t\t\t\t\t\tonPatternSelectCallback(\n\t\t\t\t\t\t\tpatterns[ activeSlide ].blocks\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default BlockPatternSetup;\n"]}
|