@wordpress/block-editor 12.1.0 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/autocompleters/block.js +13 -5
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +6 -3
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-editing-mode/index.js +84 -0
- package/build/components/block-editing-mode/index.js.map +1 -0
- package/build/components/block-list/block-list-block-context.js +15 -0
- package/build/components/block-list/block-list-block-context.js.map +1 -0
- package/build/components/block-list/block.js +29 -37
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +14 -22
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +107 -108
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +2 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +7 -5
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +15 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +1 -2
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +8 -0
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +125 -0
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
- package/build/components/block-switcher/index.js +34 -12
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +9 -7
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +5 -3
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +11 -5
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +7 -2
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.native.js +87 -3
- package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +3 -2
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/iframe/index.js +14 -7
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +7 -7
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +3 -7
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -4
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-results.js +19 -6
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/list-view/appender.js +6 -1
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/block-contents.js +4 -2
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block.js +21 -25
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +1 -3
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +14 -7
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +27 -3
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +0 -2
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/url-input/index.js +3 -0
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +25 -15
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +8 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +13 -7
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/hooks/align.js +3 -7
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/behaviors.js +115 -0
- package/build/hooks/behaviors.js.map +1 -0
- package/build/hooks/dimensions.js +0 -30
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +4 -8
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +8 -9
- package/build/hooks/layout.js.map +1 -1
- package/build/private-apis.js +4 -7
- package/build/private-apis.js.map +1 -1
- package/build/store/private-actions.js +46 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +88 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +36 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +28 -18
- package/build/store/selectors.js.map +1 -1
- package/build/utils/order-inserter-block-items.js +41 -0
- package/build/utils/order-inserter-block-items.js.map +1 -0
- package/build-module/autocompleters/block.js +12 -5
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +5 -3
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +72 -0
- package/build-module/components/block-editing-mode/index.js.map +1 -0
- package/build-module/components/block-list/block-list-block-context.js +6 -0
- package/build-module/components/block-list/block-list-block-context.js.map +1 -0
- package/build-module/components/block-list/block.js +26 -34
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +14 -22
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +108 -110
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +6 -5
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +15 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +1 -2
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
- package/build-module/components/block-switcher/index.js +33 -12
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +8 -7
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +4 -3
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +11 -5
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +7 -2
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
- package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +3 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/iframe/index.js +15 -8
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +7 -6
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -7
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -4
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-results.js +16 -6
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/list-view/appender.js +6 -2
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +4 -2
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block.js +20 -25
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -3
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +15 -8
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +0 -2
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/url-input/index.js +3 -0
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +25 -16
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +8 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/hooks/align.js +3 -6
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/behaviors.js +97 -0
- package/build-module/hooks/behaviors.js.map +1 -0
- package/build-module/hooks/dimensions.js +0 -28
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +3 -6
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +7 -9
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/private-apis.js +3 -5
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-actions.js +42 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +79 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +34 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +26 -17
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/order-inserter-block-items.js +32 -0
- package/build-module/utils/order-inserter-block-items.js.map +1 -0
- package/build-style/content-rtl.css +32 -13
- package/build-style/content.css +32 -13
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +19 -64
- package/build-style/style.css +20 -64
- package/package.json +32 -31
- package/src/autocompleters/block.js +15 -7
- package/src/components/block-breadcrumb/index.js +11 -3
- package/src/components/block-editing-mode/index.js +71 -0
- package/src/components/block-list/block-list-block-context.js +6 -0
- package/src/components/block-list/block.js +38 -56
- package/src/components/block-list/block.native.js +30 -41
- package/src/components/block-list/content.scss +5 -5
- package/src/components/block-list/index.native.js +164 -153
- package/src/components/block-list/test/index.native.js +2 -2
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-in-between-inserter.js +7 -3
- package/src/components/block-list-appender/index.js +22 -4
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +23 -0
- package/src/components/block-mover/style.scss +1 -0
- package/src/components/block-styles/preview-panel.js +1 -3
- package/src/components/block-switcher/block-transformations-menu.js +12 -0
- package/src/components/block-switcher/block-variation-transformations.js +115 -0
- package/src/components/block-switcher/index.js +38 -5
- package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
- package/src/components/block-switcher/style.scss +6 -5
- package/src/components/block-toolbar/index.js +10 -11
- package/src/components/block-tools/block-contextual-toolbar.js +4 -5
- package/src/components/block-tools/insertion-point.js +23 -9
- package/src/components/button-block-appender/content.scss +22 -0
- package/src/components/convert-to-group-buttons/index.js +9 -2
- package/src/components/convert-to-group-buttons/index.native.js +79 -1
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
- package/src/components/global-styles/dimensions-panel.js +3 -2
- package/src/components/global-styles/style.scss +3 -0
- package/src/components/iframe/index.js +22 -12
- package/src/components/inner-blocks/README.md +5 -0
- package/src/components/inner-blocks/index.js +2 -0
- package/src/components/inner-blocks/index.native.js +16 -6
- package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
- package/src/components/inserter/index.js +1 -9
- package/src/components/inserter/quick-inserter.js +0 -2
- package/src/components/inserter/search-results.js +32 -6
- package/src/components/list-view/appender.js +3 -2
- package/src/components/list-view/block-contents.js +8 -2
- package/src/components/list-view/block.js +29 -35
- package/src/components/list-view/branch.js +1 -7
- package/src/components/list-view/index.js +17 -4
- package/src/components/list-view/style.scss +2 -5
- package/src/components/list-view/use-list-view-client-ids.js +21 -4
- package/src/components/publish-date-time-picker/index.js +0 -2
- package/src/components/url-input/README.md +6 -0
- package/src/components/url-input/index.js +1 -0
- package/src/components/use-block-drop-zone/index.js +31 -17
- package/src/components/use-resize-canvas/index.js +9 -1
- package/src/components/writing-flow/test/index.js +15 -0
- package/src/components/writing-flow/use-arrow-nav.js +17 -4
- package/src/hooks/align.js +3 -11
- package/src/hooks/behaviors.js +104 -0
- package/src/hooks/dimensions.js +0 -40
- package/src/hooks/duotone.js +3 -11
- package/src/hooks/index.js +1 -0
- package/src/hooks/layout.js +10 -18
- package/src/private-apis.js +2 -4
- package/src/store/private-actions.js +39 -0
- package/src/store/private-selectors.js +95 -0
- package/src/store/reducer.js +27 -0
- package/src/store/selectors.js +25 -15
- package/src/store/test/private-actions.js +32 -1
- package/src/store/test/private-selectors.js +158 -0
- package/src/store/test/reducer.js +48 -0
- package/src/style.scss +0 -3
- package/src/utils/order-inserter-block-items.js +26 -0
- package/build/components/block-list/block-list-compact.native.js +0 -75
- package/build/components/block-list/block-list-compact.native.js.map +0 -1
- package/build/components/off-canvas-editor/appender.js +0 -125
- package/build/components/off-canvas-editor/appender.js.map +0 -1
- package/build/components/off-canvas-editor/block-contents.js +0 -141
- package/build/components/off-canvas-editor/block-contents.js.map +0 -1
- package/build/components/off-canvas-editor/block-select-button.js +0 -126
- package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
- package/build/components/off-canvas-editor/block.js +0 -297
- package/build/components/off-canvas-editor/block.js.map +0 -1
- package/build/components/off-canvas-editor/branch.js +0 -197
- package/build/components/off-canvas-editor/branch.js.map +0 -1
- package/build/components/off-canvas-editor/context.js +0 -19
- package/build/components/off-canvas-editor/context.js.map +0 -1
- package/build/components/off-canvas-editor/drop-indicator.js +0 -118
- package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
- package/build/components/off-canvas-editor/expander.js +0 -41
- package/build/components/off-canvas-editor/expander.js.map +0 -1
- package/build/components/off-canvas-editor/index.js +0 -236
- package/build/components/off-canvas-editor/index.js.map +0 -1
- package/build/components/off-canvas-editor/leaf-more-menu.js +0 -148
- package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
- package/build/components/off-canvas-editor/leaf.js +0 -60
- package/build/components/off-canvas-editor/leaf.js.map +0 -1
- package/build/components/off-canvas-editor/link-ui.js +0 -186
- package/build/components/off-canvas-editor/link-ui.js.map +0 -1
- package/build/components/off-canvas-editor/update-attributes.js +0 -108
- package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
- package/build/components/off-canvas-editor/use-block-selection.js +0 -139
- package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
- package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
- package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
- package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
- package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
- package/build/components/off-canvas-editor/utils.js +0 -60
- package/build/components/off-canvas-editor/utils.js.map +0 -1
- package/build-module/components/block-list/block-list-compact.native.js +0 -60
- package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
- package/build-module/components/off-canvas-editor/appender.js +0 -108
- package/build-module/components/off-canvas-editor/appender.js.map +0 -1
- package/build-module/components/off-canvas-editor/block-contents.js +0 -121
- package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
- package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
- package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
- package/build-module/components/off-canvas-editor/block.js +0 -273
- package/build-module/components/off-canvas-editor/block.js.map +0 -1
- package/build-module/components/off-canvas-editor/branch.js +0 -179
- package/build-module/components/off-canvas-editor/branch.js.map +0 -1
- package/build-module/components/off-canvas-editor/context.js +0 -7
- package/build-module/components/off-canvas-editor/context.js.map +0 -1
- package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
- package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
- package/build-module/components/off-canvas-editor/expander.js +0 -32
- package/build-module/components/off-canvas-editor/expander.js.map +0 -1
- package/build-module/components/off-canvas-editor/index.js +0 -213
- package/build-module/components/off-canvas-editor/index.js.map +0 -1
- package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -130
- package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
- package/build-module/components/off-canvas-editor/leaf.js +0 -45
- package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
- package/build-module/components/off-canvas-editor/link-ui.js +0 -166
- package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
- package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
- package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
- package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
- package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
- package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
- package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
- package/build-module/components/off-canvas-editor/utils.js +0 -44
- package/build-module/components/off-canvas-editor/utils.js.map +0 -1
- package/src/components/block-list/block-list-compact.native.js +0 -63
- package/src/components/off-canvas-editor/README.md +0 -5
- package/src/components/off-canvas-editor/appender.js +0 -124
- package/src/components/off-canvas-editor/block-contents.js +0 -156
- package/src/components/off-canvas-editor/block-select-button.js +0 -128
- package/src/components/off-canvas-editor/block.js +0 -347
- package/src/components/off-canvas-editor/branch.js +0 -238
- package/src/components/off-canvas-editor/context.js +0 -8
- package/src/components/off-canvas-editor/drop-indicator.js +0 -126
- package/src/components/off-canvas-editor/expander.js +0 -26
- package/src/components/off-canvas-editor/index.js +0 -271
- package/src/components/off-canvas-editor/leaf-more-menu.js +0 -158
- package/src/components/off-canvas-editor/leaf.js +0 -52
- package/src/components/off-canvas-editor/link-ui.js +0 -167
- package/src/components/off-canvas-editor/style.scss +0 -34
- package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
- package/src/components/off-canvas-editor/test/utils.js +0 -50
- package/src/components/off-canvas-editor/update-attributes.js +0 -99
- package/src/components/off-canvas-editor/use-block-selection.js +0 -169
- package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
- package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
- package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
- package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
- package/src/components/off-canvas-editor/utils.js +0 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"names":["identity","x","stylesMemo","getStyles","isRootList","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","styles","horizontal","overflowVisible","BlockList","blockWidth","initialBlockWidth","contentResizeMode","contentStyle","filterInnerBlocks","gridProperties","header","marginHorizontal","defaultBlock","marginLeft","marginVertical","marginTop","onAddBlock","onDeleteBlock","orientation","parentWidth","renderAppender","renderFooterAppender","rootClientId","title","withFooter","blockClientIds","blockCount","blockInsertionPointIsVisible","isReadOnly","isFloatingToolbarVisible","maxWidth","isRTL","select","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","isBlockInsertionPointVisible","getSettings","blockEditorStore","selectedBlockClientId","rootBlockId","blockOrder","isRTLSetting","maxWidthSetting","readOnly","Platform","OS","undefined","insertBlock","clearSelectedBlock","extraData","setBlockWidth","addBlockToEndOfPost","newBlock","scrollViewRef","shouldFlatListPreventAutomaticScroll","shouldShowInnerBlockAppender","length","getExtraData","current","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","min","renderList","extraProps","parentScrollRef","onScroll","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","alignmentHelpers","extraScrollHeight","height","scrollViewStyle","removeClippedSubviews","ref","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","renderItem","BlockListItemCell","innerAppender","item","clientId","index","isGridItem","gridItemProps","numOfColumns","numColumns","tileCount","tileIndex","indexOf","blockList","DEFAULT_BLOCK_LIST_CONTEXT","scrollRef","Footer","paragraphBlock","blockListFooter","EmptyList","shouldShowInsertionPoint","getBlockInsertionPoint","insertionPoint","defaultAppender","WIDE_ALIGNMENTS","alignments","full"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tKeyboardAwareFlatList,\n\tReadableContentView,\n\tWIDE_ALIGNMENTS,\n\talignmentHelpers,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockListAppender from '../block-list-appender';\nimport BlockListItem from './block-list-item';\nimport BlockListItemCell from './block-list-item-cell';\nimport {\n\tBlockListProvider,\n\tBlockListConsumer,\n\tDEFAULT_BLOCK_LIST_CONTEXT,\n} from './block-list-context';\nimport { BlockDraggableWrapper } from '../block-draggable';\nimport { store as blockEditorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nconst stylesMemo = {};\nconst getStyles = (\n\tisRootList,\n\tisStackedHorizontally,\n\thorizontalAlignment\n) => {\n\tif ( isRootList ) {\n\t\treturn;\n\t}\n\tconst styleName = `${ isStackedHorizontally }-${ horizontalAlignment }`;\n\tif ( stylesMemo[ styleName ] ) {\n\t\treturn stylesMemo[ styleName ];\n\t}\n\tconst computedStyles = [\n\t\tisStackedHorizontally && styles.horizontal,\n\t\thorizontalAlignment && styles[ `is-aligned-${ horizontalAlignment }` ],\n\t\tstyles.overflowVisible,\n\t];\n\tstylesMemo[ styleName ] = computedStyles;\n\treturn computedStyles;\n};\n\nexport default function BlockList( {\n\tblockWidth: initialBlockWidth,\n\tcontentResizeMode,\n\tcontentStyle,\n\tfilterInnerBlocks,\n\tgridProperties,\n\theader,\n\thorizontal,\n\thorizontalAlignment,\n\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\tmarginVertical = styles.defaultBlock.marginTop,\n\tonAddBlock,\n\tonDeleteBlock,\n\torientation,\n\tparentWidth,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n\ttitle,\n\twithFooter = true,\n} ) {\n\tconst {\n\t\tblockClientIds,\n\t\tblockCount,\n\t\tblockInsertionPointIsVisible,\n\t\tisReadOnly,\n\t\tisRootList,\n\t\tisFloatingToolbarVisible,\n\t\tisStackedHorizontally,\n\t\tmaxWidth,\n\t\tisRTL,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst rootBlockId = getBlockHierarchyRootClientId(\n\t\t\t\tselectedBlockClientId\n\t\t\t);\n\n\t\t\tlet blockOrder = getBlockOrder( rootClientId );\n\t\t\t// Display only block which fulfill the condition in passed `filterInnerBlocks` function.\n\t\t\tif ( filterInnerBlocks ) {\n\t\t\t\tblockOrder = filterInnerBlocks( blockOrder );\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\treadOnly,\n\t\t\t} = getSettings();\n\n\t\t\treturn {\n\t\t\t\tblockClientIds: blockOrder,\n\t\t\t\tblockCount: getBlockCount(),\n\t\t\t\tblockInsertionPointIsVisible:\n\t\t\t\t\tPlatform.OS === 'ios' && isBlockInsertionPointVisible(),\n\t\t\t\tisReadOnly: readOnly,\n\t\t\t\tisRootList: rootClientId === undefined,\n\t\t\t\tisFloatingToolbarVisible:\n\t\t\t\t\t!! selectedBlockClientId && !! getBlockCount( rootBlockId ),\n\t\t\t\tisStackedHorizontally: orientation === 'horizontal',\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t};\n\t\t},\n\t\t[ filterInnerBlocks, orientation, rootClientId ]\n\t);\n\n\tconst { insertBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst extraData = useRef( {\n\t\tparentWidth,\n\t\trenderFooterAppender,\n\t\trenderAppender,\n\t\tonDeleteBlock,\n\t\tcontentStyle,\n\t} );\n\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth || 0 );\n\n\tconst addBlockToEndOfPost = ( newBlock ) => {\n\t\tinsertBlock( newBlock, blockCount );\n\t};\n\n\tconst scrollViewRef = useRef( null );\n\n\tconst shouldFlatListPreventAutomaticScroll = () =>\n\t\tblockInsertionPointIsVisible;\n\n\tconst shouldShowInnerBlockAppender = () =>\n\t\trenderAppender && blockClientIds.length > 0;\n\n\tconst getExtraData = () => {\n\t\tif (\n\t\t\textraData.current.parentWidth !== parentWidth ||\n\t\t\textraData.current.renderFooterAppender !== renderFooterAppender ||\n\t\t\textraData.current.onDeleteBlock !== onDeleteBlock ||\n\t\t\textraData.current.contentStyle !== contentStyle ||\n\t\t\textraData.current.renderAppender !== renderAppender ||\n\t\t\textraData.current.blockWidth !== blockWidth ||\n\t\t\textraData.current.gridProperties !== gridProperties\n\t\t) {\n\t\t\textraData.current = {\n\t\t\t\tparentWidth,\n\t\t\t\trenderFooterAppender,\n\t\t\t\tonDeleteBlock,\n\t\t\t\tcontentStyle,\n\t\t\t\trenderAppender,\n\t\t\t\tblockWidth,\n\t\t\t\tgridProperties,\n\t\t\t};\n\t\t}\n\t\treturn extraData.current;\n\t};\n\n\tconst onLayout = ( { nativeEvent } ) => {\n\t\tconst { layout } = nativeEvent;\n\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( isRootList && blockWidth !== layoutWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t} else if ( ! isRootList && ! blockWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t}\n\t};\n\n\tconst renderList = ( extraProps = {} ) => {\n\t\tconst { parentScrollRef, onScroll } = extraProps;\n\n\t\tconst { blockToolbar, headerToolbar, floatingToolbar } = styles;\n\n\t\tconst containerStyle = {\n\t\t\tflex: isRootList ? 1 : 0,\n\t\t\t// We set negative margin in the parent to remove the edge spacing between parent block and child block in ineer blocks.\n\t\t\tmarginVertical: isRootList ? 0 : -marginVertical,\n\t\t\tmarginHorizontal: isRootList ? 0 : -marginHorizontal,\n\t\t};\n\n\t\tconst isContentStretch = contentResizeMode === 'stretch';\n\t\tconst isMultiBlocks = blockClientIds.length > 1;\n\t\tconst { isWider } = alignmentHelpers;\n\t\tconst extraScrollHeight =\n\t\t\theaderToolbar.height +\n\t\t\tblockToolbar.height +\n\t\t\t( isFloatingToolbarVisible ? floatingToolbar.height : 0 );\n\n\t\tconst scrollViewStyle = [\n\t\t\t{ flex: isRootList ? 1 : 0 },\n\t\t\t! isRootList && styles.overflowVisible,\n\t\t];\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ containerStyle }\n\t\t\t\tonAccessibilityEscape={ clearSelectedBlock }\n\t\t\t\tonLayout={ onLayout }\n\t\t\t\ttestID=\"block-list-wrapper\"\n\t\t\t>\n\t\t\t\t<KeyboardAwareFlatList\n\t\t\t\t\t{ ...( Platform.OS === 'android'\n\t\t\t\t\t\t? { removeClippedSubviews: false }\n\t\t\t\t\t\t: {} ) } // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541\n\t\t\t\t\taccessibilityLabel=\"block-list\"\n\t\t\t\t\tinnerRef={ ( ref ) => {\n\t\t\t\t\t\tscrollViewRef.current = parentScrollRef || ref;\n\t\t\t\t\t} }\n\t\t\t\t\textraScrollHeight={ extraScrollHeight }\n\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\tscrollViewStyle={ scrollViewStyle }\n\t\t\t\t\textraData={ getExtraData() }\n\t\t\t\t\tscrollEnabled={ isRootList }\n\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\thorizontal && styles.horizontalContentContainer,\n\t\t\t\t\t\tisWider( blockWidth, 'medium' ) &&\n\t\t\t\t\t\t\t( isContentStretch && isMultiBlocks\n\t\t\t\t\t\t\t\t? styles.horizontalContentContainerStretch\n\t\t\t\t\t\t\t\t: styles.horizontalContentContainerCenter ),\n\t\t\t\t\t] }\n\t\t\t\t\tstyle={ getStyles(\n\t\t\t\t\t\tisRootList,\n\t\t\t\t\t\tisStackedHorizontally,\n\t\t\t\t\t\thorizontalAlignment\n\t\t\t\t\t) }\n\t\t\t\t\tdata={ blockClientIds }\n\t\t\t\t\tkeyExtractor={ identity }\n\t\t\t\t\tlistKey={\n\t\t\t\t\t\trootClientId ? `list-${ rootClientId }` : 'list-root'\n\t\t\t\t\t}\n\t\t\t\t\trenderItem={ renderItem }\n\t\t\t\t\tCellRendererComponent={ BlockListItemCell }\n\t\t\t\t\tshouldPreventAutomaticScroll={\n\t\t\t\t\t\tshouldFlatListPreventAutomaticScroll\n\t\t\t\t\t}\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tListHeaderComponent={ header }\n\t\t\t\t\tListEmptyComponent={\n\t\t\t\t\t\t! isReadOnly && (\n\t\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\t\trenderFooterAppender={ renderFooterAppender }\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\tListFooterComponent={\n\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\taddBlockToEndOfPost={ addBlockToEndOfPost }\n\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\trenderFooterAppender={ renderFooterAppender }\n\t\t\t\t\t\t\twithFooter={ withFooter }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tonScroll={ onScroll }\n\t\t\t\t/>\n\t\t\t\t{ shouldShowInnerBlockAppender() && (\n\t\t\t\t\t<View\n\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\tmarginHorizontal:\n\t\t\t\t\t\t\t\tmarginHorizontal -\n\t\t\t\t\t\t\t\tstyles.innerAppender.marginLeft,\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<BlockListAppender\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\tshowSeparator\n\t\t\t\t\t\t/>\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t</View>\n\t\t);\n\t};\n\n\tconst renderItem = ( { item: clientId, index } ) => {\n\t\t// Extracting the grid item properties here to avoid\n\t\t// re-renders in the blockListItem component.\n\t\tconst isGridItem = !! gridProperties;\n\t\tconst gridItemProps = gridProperties && {\n\t\t\tnumOfColumns: gridProperties.numColumns,\n\t\t\ttileCount: blockClientIds.length,\n\t\t\ttileIndex: blockClientIds.indexOf( clientId ),\n\t\t};\n\t\treturn (\n\t\t\t<BlockListItem\n\t\t\t\tindex={ index }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\tmarginVertical={ marginVertical }\n\t\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tshouldShowInnerBlockAppender={ shouldShowInnerBlockAppender }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tisGridItem={ isGridItem }\n\t\t\t\t{ ...gridItemProps }\n\t\t\t/>\n\t\t);\n\t};\n\n\t// Use of Context to propagate the main scroll ref to its children e.g InnerBlocks.\n\tconst blockList = isRootList ? (\n\t\t<BlockListProvider\n\t\t\tvalue={ {\n\t\t\t\t...DEFAULT_BLOCK_LIST_CONTEXT,\n\t\t\t\tscrollRef: scrollViewRef.current,\n\t\t\t} }\n\t\t>\n\t\t\t<BlockDraggableWrapper isRTL={ isRTL }>\n\t\t\t\t{ ( { onScroll } ) => renderList( { onScroll } ) }\n\t\t\t</BlockDraggableWrapper>\n\t\t</BlockListProvider>\n\t) : (\n\t\t<BlockListConsumer>\n\t\t\t{ ( { scrollRef } ) =>\n\t\t\t\trenderList( {\n\t\t\t\t\tparentScrollRef: scrollRef,\n\t\t\t\t} )\n\t\t\t}\n\t\t</BlockListConsumer>\n\t);\n\n\treturn blockList;\n}\n\nfunction Footer( {\n\taddBlockToEndOfPost,\n\tisReadOnly,\n\trenderFooterAppender,\n\twithFooter,\n} ) {\n\tif ( ! isReadOnly && withFooter ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\t\t\t\t\taddBlockToEndOfPost( paragraphBlock );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t</>\n\t\t);\n\t} else if ( renderFooterAppender ) {\n\t\treturn renderFooterAppender();\n\t}\n\n\treturn null;\n}\n\nfunction EmptyList( {\n\torientation,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n} ) {\n\tconst { shouldShowInsertionPoint } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockInsertionPointVisible,\n\t\t} = select( blockEditorStore );\n\n\t\tconst isStackedHorizontally = orientation === 'horizontal';\n\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\n\t\treturn {\n\t\t\tshouldShowInsertionPoint:\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t\t! blockClientIds[ insertionPoint.index ] ),\n\t\t};\n\t} );\n\n\tif ( renderFooterAppender || renderAppender === false ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<View style={ styles.defaultAppender }>\n\t\t\t<ReadableContentView\n\t\t\t\talign={\n\t\t\t\t\trenderAppender ? WIDE_ALIGNMENTS.alignments.full : undefined\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<BlockListAppender\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\tshowSeparator={ shouldShowInsertionPoint }\n\t\t\t\t/>\n\t\t\t</ReadableContentView>\n\t\t</View>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"names":["identity","x","stylesMemo","getStyles","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","styles","horizontal","overflowVisible","BlockList","blockWidth","initialBlockWidth","contentResizeMode","contentStyle","filterInnerBlocks","gridProperties","header","marginHorizontal","defaultBlock","marginLeft","marginVertical","marginTop","onAddBlock","onDeleteBlock","orientation","parentWidth","renderAppender","renderFooterAppender","rootClientId","withFooter","blockClientIds","blockCount","blockInsertionPointIsVisible","isReadOnly","isRootList","isFloatingToolbarVisible","maxWidth","isRTL","select","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","isBlockInsertionPointVisible","getSettings","blockEditorStore","selectedBlockClientId","rootBlockId","blockOrder","isRTLSetting","maxWidthSetting","readOnly","Platform","OS","undefined","insertBlock","clearSelectedBlock","extraData","setBlockWidth","addBlockToEndOfPost","newBlock","scrollViewRef","shouldFlatListPreventAutomaticScroll","shouldShowInnerBlockAppender","length","getExtraData","current","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","min","renderItem","item","clientId","index","isGridItem","gridItemProps","numOfColumns","numColumns","tileCount","tileIndex","indexOf","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","alignmentHelpers","extraScrollHeight","height","DEFAULT_BLOCK_LIST_CONTEXT","scrollRef","onScroll","removeClippedSubviews","ref","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","BlockListItemCell","map","currentClientId","innerAppender","Footer","paragraphBlock","blockListFooter","EmptyList","shouldShowInsertionPoint","getBlockInsertionPoint","insertionPoint","align","WIDE_ALIGNMENTS","alignments","full","wrapperStyles","containerStyles","defaultAppender"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tKeyboardAwareFlatList,\n\tWIDE_ALIGNMENTS,\n\talignmentHelpers,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockListAppender from '../block-list-appender';\nimport BlockListItem from './block-list-item';\nimport BlockListItemCell from './block-list-item-cell';\nimport {\n\tBlockListProvider,\n\tDEFAULT_BLOCK_LIST_CONTEXT,\n} from './block-list-context';\nimport { BlockDraggableWrapper } from '../block-draggable';\nimport { useEditorWrapperStyles } from '../../hooks/use-editor-wrapper-styles';\nimport { store as blockEditorStore } from '../../store';\n\nconst identity = ( x ) => x;\n\nconst stylesMemo = {};\nconst getStyles = ( isStackedHorizontally, horizontalAlignment ) => {\n\tconst styleName = `${ isStackedHorizontally }-${ horizontalAlignment }`;\n\tif ( stylesMemo[ styleName ] ) {\n\t\treturn stylesMemo[ styleName ];\n\t}\n\tconst computedStyles = [\n\t\tisStackedHorizontally && styles.horizontal,\n\t\thorizontalAlignment && styles[ `is-aligned-${ horizontalAlignment }` ],\n\t\tstyles.overflowVisible,\n\t];\n\tstylesMemo[ styleName ] = computedStyles;\n\treturn computedStyles;\n};\n\nexport default function BlockList( {\n\tblockWidth: initialBlockWidth,\n\tcontentResizeMode,\n\tcontentStyle,\n\tfilterInnerBlocks,\n\tgridProperties,\n\theader,\n\thorizontal,\n\thorizontalAlignment,\n\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\tmarginVertical = styles.defaultBlock.marginTop,\n\tonAddBlock,\n\tonDeleteBlock,\n\torientation,\n\tparentWidth,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n\twithFooter = true,\n} ) {\n\tconst {\n\t\tblockClientIds,\n\t\tblockCount,\n\t\tblockInsertionPointIsVisible,\n\t\tisReadOnly,\n\t\tisRootList,\n\t\tisFloatingToolbarVisible,\n\t\tisStackedHorizontally,\n\t\tmaxWidth,\n\t\tisRTL,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetSettings,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\t\t\tconst rootBlockId = getBlockHierarchyRootClientId(\n\t\t\t\tselectedBlockClientId\n\t\t\t);\n\n\t\t\tlet blockOrder = getBlockOrder( rootClientId );\n\t\t\t// Display only block which fulfill the condition in passed `filterInnerBlocks` function.\n\t\t\tif ( filterInnerBlocks ) {\n\t\t\t\tblockOrder = filterInnerBlocks( blockOrder );\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\treadOnly,\n\t\t\t} = getSettings();\n\n\t\t\treturn {\n\t\t\t\tblockClientIds: blockOrder,\n\t\t\t\tblockCount: getBlockCount(),\n\t\t\t\tblockInsertionPointIsVisible:\n\t\t\t\t\tPlatform.OS === 'ios' && isBlockInsertionPointVisible(),\n\t\t\t\tisReadOnly: readOnly,\n\t\t\t\tisRootList: rootClientId === undefined,\n\t\t\t\tisFloatingToolbarVisible:\n\t\t\t\t\t!! selectedBlockClientId && !! getBlockCount( rootBlockId ),\n\t\t\t\tisStackedHorizontally: orientation === 'horizontal',\n\t\t\t\tmaxWidth: maxWidthSetting,\n\t\t\t\tisRTL: isRTLSetting,\n\t\t\t};\n\t\t},\n\t\t[ filterInnerBlocks, orientation, rootClientId ]\n\t);\n\n\tconst { insertBlock, clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst extraData = useRef( {\n\t\tparentWidth,\n\t\trenderFooterAppender,\n\t\trenderAppender,\n\t\tonDeleteBlock,\n\t\tcontentStyle,\n\t} );\n\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth || 0 );\n\n\tconst addBlockToEndOfPost = ( newBlock ) => {\n\t\tinsertBlock( newBlock, blockCount );\n\t};\n\n\tconst scrollViewRef = useRef( null );\n\n\tconst shouldFlatListPreventAutomaticScroll = () =>\n\t\tblockInsertionPointIsVisible;\n\n\tconst shouldShowInnerBlockAppender = () =>\n\t\trenderAppender && blockClientIds.length > 0;\n\n\tconst getExtraData = () => {\n\t\tif (\n\t\t\textraData.current.parentWidth !== parentWidth ||\n\t\t\textraData.current.renderFooterAppender !== renderFooterAppender ||\n\t\t\textraData.current.onDeleteBlock !== onDeleteBlock ||\n\t\t\textraData.current.contentStyle !== contentStyle ||\n\t\t\textraData.current.renderAppender !== renderAppender ||\n\t\t\textraData.current.blockWidth !== blockWidth ||\n\t\t\textraData.current.gridProperties !== gridProperties\n\t\t) {\n\t\t\textraData.current = {\n\t\t\t\tparentWidth,\n\t\t\t\trenderFooterAppender,\n\t\t\t\tonDeleteBlock,\n\t\t\t\tcontentStyle,\n\t\t\t\trenderAppender,\n\t\t\t\tblockWidth,\n\t\t\t\tgridProperties,\n\t\t\t};\n\t\t}\n\t\treturn extraData.current;\n\t};\n\n\tconst onLayout = ( { nativeEvent } ) => {\n\t\tconst { layout } = nativeEvent;\n\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( isRootList && blockWidth !== layoutWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t} else if ( ! isRootList && ! blockWidth ) {\n\t\t\tsetBlockWidth( Math.min( layoutWidth, maxWidth ) );\n\t\t}\n\t};\n\n\tconst renderItem = ( { item: clientId, index } ) => {\n\t\t// Extracting the grid item properties here to avoid\n\t\t// re-renders in the blockListItem component.\n\t\tconst isGridItem = !! gridProperties;\n\t\tconst gridItemProps = gridProperties && {\n\t\t\tnumOfColumns: gridProperties.numColumns,\n\t\t\ttileCount: blockClientIds.length,\n\t\t\ttileIndex: blockClientIds.indexOf( clientId ),\n\t\t};\n\t\treturn (\n\t\t\t<BlockListItem\n\t\t\t\tindex={ index }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\tcontentResizeMode={ contentResizeMode }\n\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\tonAddBlock={ onAddBlock }\n\t\t\t\tmarginVertical={ marginVertical }\n\t\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\tshouldShowInnerBlockAppender={ shouldShowInnerBlockAppender }\n\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\tisGridItem={ isGridItem }\n\t\t\t\t{ ...gridItemProps }\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst { blockToolbar, headerToolbar, floatingToolbar } = styles;\n\n\tconst containerStyle = {\n\t\tflex: isRootList ? 1 : 0,\n\t\t// We set negative margin in the parent to remove the edge spacing between parent block and child block in ineer blocks.\n\t\tmarginVertical: isRootList ? 0 : -marginVertical,\n\t\tmarginHorizontal: isRootList ? 0 : -marginHorizontal,\n\t};\n\n\tconst isContentStretch = contentResizeMode === 'stretch';\n\tconst isMultiBlocks = blockClientIds.length > 1;\n\tconst { isWider } = alignmentHelpers;\n\tconst extraScrollHeight =\n\t\theaderToolbar.height +\n\t\tblockToolbar.height +\n\t\t( isFloatingToolbarVisible ? floatingToolbar.height : 0 );\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ containerStyle }\n\t\t\tonAccessibilityEscape={ clearSelectedBlock }\n\t\t\tonLayout={ onLayout }\n\t\t\ttestID=\"block-list-wrapper\"\n\t\t>\n\t\t\t{ isRootList ? (\n\t\t\t\t<BlockListProvider\n\t\t\t\t\tvalue={ {\n\t\t\t\t\t\t...DEFAULT_BLOCK_LIST_CONTEXT,\n\t\t\t\t\t\tscrollRef: scrollViewRef.current,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<BlockDraggableWrapper isRTL={ isRTL }>\n\t\t\t\t\t\t{ ( { onScroll } ) => (\n\t\t\t\t\t\t\t<KeyboardAwareFlatList\n\t\t\t\t\t\t\t\t{ ...( Platform.OS === 'android'\n\t\t\t\t\t\t\t\t\t? { removeClippedSubviews: false }\n\t\t\t\t\t\t\t\t\t: {} ) } // Disable clipping on Android to fix focus losing. See https://github.com/wordpress-mobile/gutenberg-mobile/pull/741#issuecomment-472746541\n\t\t\t\t\t\t\t\taccessibilityLabel=\"block-list\"\n\t\t\t\t\t\t\t\tinnerRef={ ( ref ) => {\n\t\t\t\t\t\t\t\t\tscrollViewRef.current = ref;\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\textraScrollHeight={ extraScrollHeight }\n\t\t\t\t\t\t\t\tkeyboardShouldPersistTaps=\"always\"\n\t\t\t\t\t\t\t\tscrollViewStyle={ { flex: 1 } }\n\t\t\t\t\t\t\t\textraData={ getExtraData() }\n\t\t\t\t\t\t\t\tscrollEnabled={ isRootList }\n\t\t\t\t\t\t\t\tcontentContainerStyle={ [\n\t\t\t\t\t\t\t\t\thorizontal &&\n\t\t\t\t\t\t\t\t\t\tstyles.horizontalContentContainer,\n\t\t\t\t\t\t\t\t\tisWider( blockWidth, 'medium' ) &&\n\t\t\t\t\t\t\t\t\t\t( isContentStretch && isMultiBlocks\n\t\t\t\t\t\t\t\t\t\t\t? styles.horizontalContentContainerStretch\n\t\t\t\t\t\t\t\t\t\t\t: styles.horizontalContentContainerCenter ),\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\tdata={ blockClientIds }\n\t\t\t\t\t\t\t\tkeyExtractor={ identity }\n\t\t\t\t\t\t\t\trenderItem={ renderItem }\n\t\t\t\t\t\t\t\tCellRendererComponent={ BlockListItemCell }\n\t\t\t\t\t\t\t\tshouldPreventAutomaticScroll={\n\t\t\t\t\t\t\t\t\tshouldFlatListPreventAutomaticScroll\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tListHeaderComponent={ header }\n\t\t\t\t\t\t\t\tListEmptyComponent={\n\t\t\t\t\t\t\t\t\t! isReadOnly && (\n\t\t\t\t\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t/>\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\tListFooterComponent={\n\t\t\t\t\t\t\t\t\t<Footer\n\t\t\t\t\t\t\t\t\t\taddBlockToEndOfPost={\n\t\t\t\t\t\t\t\t\t\t\taddBlockToEndOfPost\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\twithFooter={ withFooter }\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\tonScroll={ onScroll }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</BlockDraggableWrapper>\n\t\t\t\t</BlockListProvider>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{ blockClientIds.length > 0 ? (\n\t\t\t\t\t\t<View style={ [ { flex: 0 }, styles.overflowVisible ] }>\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\t...getStyles(\n\t\t\t\t\t\t\t\t\t\tisStackedHorizontally,\n\t\t\t\t\t\t\t\t\t\thorizontalAlignment\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\thorizontal &&\n\t\t\t\t\t\t\t\t\t\tstyles.horizontalContentContainer,\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\t{ blockClientIds.map(\n\t\t\t\t\t\t\t\t\t( currentClientId, index ) => {\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<View key={ currentClientId }>\n\t\t\t\t\t\t\t\t\t\t\t\t{ renderItem( {\n\t\t\t\t\t\t\t\t\t\t\t\t\titem: currentClientId,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t\t);\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<Footer\n\t\t\t\t\t\t\t\t\taddBlockToEndOfPost={ addBlockToEndOfPost }\n\t\t\t\t\t\t\t\t\tisReadOnly={ isReadOnly }\n\t\t\t\t\t\t\t\t\trenderFooterAppender={\n\t\t\t\t\t\t\t\t\t\trenderFooterAppender\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\twithFooter={ withFooter }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</View>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<EmptyList\n\t\t\t\t\t\t\torientation={ orientation }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\t\trenderFooterAppender={ renderFooterAppender }\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\t{ shouldShowInnerBlockAppender() && (\n\t\t\t\t<View\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\tmarginHorizontal:\n\t\t\t\t\t\t\tmarginHorizontal - styles.innerAppender.marginLeft,\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<BlockListAppender\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\t\t\tshowSeparator\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t) }\n\t\t</View>\n\t);\n}\n\nfunction Footer( {\n\taddBlockToEndOfPost,\n\tisReadOnly,\n\trenderFooterAppender,\n\twithFooter,\n} ) {\n\tif ( ! isReadOnly && withFooter ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\t\t\t\t\taddBlockToEndOfPost( paragraphBlock );\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t</>\n\t\t);\n\t} else if ( renderFooterAppender ) {\n\t\treturn <View>{ renderFooterAppender() }</View>;\n\t}\n\n\treturn null;\n}\n\nfunction EmptyList( {\n\torientation,\n\trenderAppender,\n\trenderFooterAppender,\n\trootClientId,\n} ) {\n\tconst { shouldShowInsertionPoint } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockInsertionPoint,\n\t\t\tisBlockInsertionPointVisible,\n\t\t} = select( blockEditorStore );\n\n\t\tconst isStackedHorizontally = orientation === 'horizontal';\n\t\tconst blockClientIds = getBlockOrder( rootClientId );\n\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\tconst blockInsertionPointIsVisible = isBlockInsertionPointVisible();\n\n\t\treturn {\n\t\t\tshouldShowInsertionPoint:\n\t\t\t\t! isStackedHorizontally &&\n\t\t\t\tblockInsertionPointIsVisible &&\n\t\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t\t! blockClientIds[ insertionPoint.index ] ),\n\t\t};\n\t} );\n\tconst align = renderAppender ? WIDE_ALIGNMENTS.alignments.full : undefined;\n\tconst [ wrapperStyles ] = useEditorWrapperStyles( { align } );\n\n\tif ( renderFooterAppender || renderAppender === false ) {\n\t\treturn null;\n\t}\n\n\tconst containerStyles = [ styles.defaultAppender, wrapperStyles ];\n\n\treturn (\n\t\t<View style={ containerStyles }>\n\t\t\t<BlockListAppender\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\trenderAppender={ renderAppender }\n\t\t\t\tshowSeparator={ shouldShowInsertionPoint }\n\t\t\t/>\n\t\t</View>\n\t);\n}\n"]}
|
|
@@ -23,7 +23,7 @@ var _warning = _interopRequireDefault(require("@wordpress/warning"));
|
|
|
23
23
|
|
|
24
24
|
var _useMovingAnimation = _interopRequireDefault(require("../../use-moving-animation"));
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _blockListBlockContext = require("../block-list-block-context");
|
|
27
27
|
|
|
28
28
|
var _useFocusFirstElement = require("./use-focus-first-element");
|
|
29
29
|
|
|
@@ -97,7 +97,7 @@ function useBlockProps() {
|
|
|
97
97
|
className,
|
|
98
98
|
wrapperProps = {},
|
|
99
99
|
isAligned
|
|
100
|
-
} = (0, _element.useContext)(
|
|
100
|
+
} = (0, _element.useContext)(_blockListBlockContext.BlockListBlockContext);
|
|
101
101
|
const {
|
|
102
102
|
index,
|
|
103
103
|
mode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"names":["BLOCK_ANIMATION_THRESHOLD","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","BlockListBlockContext","index","mode","name","blockApiVersion","blockTitle","isPartOfSelection","adjustScrolling","enableAnimation","select","getBlockAttributes","getBlockIndex","getBlockMode","getBlockName","isTyping","getGlobalBlockCount","isBlockSelected","isBlockMultiSelected","isAncestorMultiSelected","isFirstMultiSelectedBlock","blockEditorStore","getActiveBlockVariation","blocksStore","isSelected","isPartOfMultiSelection","blockName","blockType","attributes","match","apiVersion","title","hasOverlay","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","blockEditContext","tabIndex","id","role","style","save","getBlockProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__unstableGetBlockProps as getBlockProps,\n\tgetBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { BlockListBlockContext } from '../block';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport { useBlockEditContext } from '../../block-edit/context';\nimport { useBlockClassNames } from './use-block-class-names';\nimport { useBlockDefaultClassName } from './use-block-default-class-name';\nimport { useBlockCustomClassName } from './use-block-custom-class-name';\nimport { useBlockMovingModeClassNames } from './use-block-moving-mode-class-names';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { store as blockEditorStore } from '../../../store';\nimport useBlockOverlayActive from '../../block-content-overlay';\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\nconst BLOCK_ANIMATION_THRESHOLD = 200;\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t} = useContext( BlockListBlockContext );\n\tconst {\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisPartOfSelection,\n\t\tadjustScrolling,\n\t\tenableAnimation,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisTyping,\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisAncestorMultiSelected,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst isPartOfMultiSelection =\n\t\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\t\tisAncestorMultiSelected( clientId );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\n\t\t\treturn {\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tname: blockName,\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisPartOfSelection: isSelected || isPartOfMultiSelection,\n\t\t\t\tadjustScrolling:\n\t\t\t\t\tisSelected || isFirstMultiSelectedBlock( clientId ),\n\t\t\t\tenableAnimation:\n\t\t\t\t\t! isTyping() &&\n\t\t\t\t\tgetGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasOverlay = useBlockOverlayActive( clientId );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( clientId ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( clientId ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered(),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( {\n\t\t\tisSelected: isPartOfSelection,\n\t\t\tadjustScrolling,\n\t\t\tenableAnimation,\n\t\t\ttriggerAnimationOnChange: index,\n\t\t} ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\treturn {\n\t\ttabIndex: 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tclassName: classnames(\n\t\t\t// The wp-block className is important for editor styles.\n\t\t\tclassnames( 'block-editor-block-list__block', {\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t} ),\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tuseBlockClassNames( clientId ),\n\t\t\tuseBlockDefaultClassName( clientId ),\n\t\t\tuseBlockCustomClassName( clientId ),\n\t\t\tuseBlockMovingModeClassNames( clientId )\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"names":["BLOCK_ANIMATION_THRESHOLD","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","BlockListBlockContext","index","mode","name","blockApiVersion","blockTitle","isPartOfSelection","adjustScrolling","enableAnimation","select","getBlockAttributes","getBlockIndex","getBlockMode","getBlockName","isTyping","getGlobalBlockCount","isBlockSelected","isBlockMultiSelected","isAncestorMultiSelected","isFirstMultiSelectedBlock","blockEditorStore","getActiveBlockVariation","blocksStore","isSelected","isPartOfMultiSelection","blockName","blockType","attributes","match","apiVersion","title","hasOverlay","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","blockEditContext","tabIndex","id","role","style","save","getBlockProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__unstableGetBlockProps as getBlockProps,\n\tgetBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport { useMergeRefs, useDisabled } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\nimport warning from '@wordpress/warning';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../../use-moving-animation';\nimport { BlockListBlockContext } from '../block-list-block-context';\nimport { useFocusFirstElement } from './use-focus-first-element';\nimport { useIsHovered } from './use-is-hovered';\nimport { useBlockEditContext } from '../../block-edit/context';\nimport { useBlockClassNames } from './use-block-class-names';\nimport { useBlockDefaultClassName } from './use-block-default-class-name';\nimport { useBlockCustomClassName } from './use-block-custom-class-name';\nimport { useBlockMovingModeClassNames } from './use-block-moving-mode-class-names';\nimport { useFocusHandler } from './use-focus-handler';\nimport { useEventHandlers } from './use-selected-block-event-handlers';\nimport { useNavModeExit } from './use-nav-mode-exit';\nimport { useBlockRefProvider } from './use-block-refs';\nimport { useIntersectionObserver } from './use-intersection-observer';\nimport { store as blockEditorStore } from '../../../store';\nimport useBlockOverlayActive from '../../block-content-overlay';\n\n/**\n * If the block count exceeds the threshold, we disable the reordering animation\n * to avoid laginess.\n */\nconst BLOCK_ANIMATION_THRESHOLD = 200;\n\n/**\n * This hook is used to lightly mark an element as a block element. The element\n * should be the outermost element of a block. Call this hook and pass the\n * returned props to the element to mark as a block. If you define a ref for the\n * element, it is important to pass the ref to this hook, which the hook in turn\n * will pass to the component through the props it returns. Optionally, you can\n * also pass any other props through this hook, and they will be merged and\n * returned.\n *\n * @param {Object} props Optional. Props to pass to the element. Must contain\n * the ref if one is defined.\n * @param {Object} options Options for internal use only.\n * @param {boolean} options.__unstableIsHtml\n *\n * @return {Object} Props to pass to the element to mark as a block.\n */\nexport function useBlockProps( props = {}, { __unstableIsHtml } = {} ) {\n\tconst {\n\t\tclientId,\n\t\tclassName,\n\t\twrapperProps = {},\n\t\tisAligned,\n\t} = useContext( BlockListBlockContext );\n\tconst {\n\t\tindex,\n\t\tmode,\n\t\tname,\n\t\tblockApiVersion,\n\t\tblockTitle,\n\t\tisPartOfSelection,\n\t\tadjustScrolling,\n\t\tenableAnimation,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockMode,\n\t\t\t\tgetBlockName,\n\t\t\t\tisTyping,\n\t\t\t\tgetGlobalBlockCount,\n\t\t\t\tisBlockSelected,\n\t\t\t\tisBlockMultiSelected,\n\t\t\t\tisAncestorMultiSelected,\n\t\t\t\tisFirstMultiSelectedBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst { getActiveBlockVariation } = select( blocksStore );\n\t\t\tconst isSelected = isBlockSelected( clientId );\n\t\t\tconst isPartOfMultiSelection =\n\t\t\t\tisBlockMultiSelected( clientId ) ||\n\t\t\t\tisAncestorMultiSelected( clientId );\n\t\t\tconst blockName = getBlockName( clientId );\n\t\t\tconst blockType = getBlockType( blockName );\n\t\t\tconst attributes = getBlockAttributes( clientId );\n\t\t\tconst match = getActiveBlockVariation( blockName, attributes );\n\n\t\t\treturn {\n\t\t\t\tindex: getBlockIndex( clientId ),\n\t\t\t\tmode: getBlockMode( clientId ),\n\t\t\t\tname: blockName,\n\t\t\t\tblockApiVersion: blockType?.apiVersion || 1,\n\t\t\t\tblockTitle: match?.title || blockType?.title,\n\t\t\t\tisPartOfSelection: isSelected || isPartOfMultiSelection,\n\t\t\t\tadjustScrolling:\n\t\t\t\t\tisSelected || isFirstMultiSelectedBlock( clientId ),\n\t\t\t\tenableAnimation:\n\t\t\t\t\t! isTyping() &&\n\t\t\t\t\tgetGlobalBlockCount() <= BLOCK_ANIMATION_THRESHOLD,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst hasOverlay = useBlockOverlayActive( clientId );\n\n\t// translators: %s: Type of block (i.e. Text, Image etc)\n\tconst blockLabel = sprintf( __( 'Block: %s' ), blockTitle );\n\tconst htmlSuffix = mode === 'html' && ! __unstableIsHtml ? '-visual' : '';\n\tconst mergedRefs = useMergeRefs( [\n\t\tprops.ref,\n\t\tuseFocusFirstElement( clientId ),\n\t\tuseBlockRefProvider( clientId ),\n\t\tuseFocusHandler( clientId ),\n\t\tuseEventHandlers( clientId ),\n\t\tuseNavModeExit( clientId ),\n\t\tuseIsHovered(),\n\t\tuseIntersectionObserver(),\n\t\tuseMovingAnimation( {\n\t\t\tisSelected: isPartOfSelection,\n\t\t\tadjustScrolling,\n\t\t\tenableAnimation,\n\t\t\ttriggerAnimationOnChange: index,\n\t\t} ),\n\t\tuseDisabled( { isDisabled: ! hasOverlay } ),\n\t] );\n\n\tconst blockEditContext = useBlockEditContext();\n\t// Ensures it warns only inside the `edit` implementation for the block.\n\tif ( blockApiVersion < 2 && clientId === blockEditContext.clientId ) {\n\t\twarning(\n\t\t\t`Block type \"${ name }\" must support API version 2 or higher to work correctly with \"useBlockProps\" method.`\n\t\t);\n\t}\n\n\treturn {\n\t\ttabIndex: 0,\n\t\t...wrapperProps,\n\t\t...props,\n\t\tref: mergedRefs,\n\t\tid: `block-${ clientId }${ htmlSuffix }`,\n\t\trole: 'document',\n\t\t'aria-label': blockLabel,\n\t\t'data-block': clientId,\n\t\t'data-type': name,\n\t\t'data-title': blockTitle,\n\t\tclassName: classnames(\n\t\t\t// The wp-block className is important for editor styles.\n\t\t\tclassnames( 'block-editor-block-list__block', {\n\t\t\t\t'wp-block': ! isAligned,\n\t\t\t\t'has-block-overlay': hasOverlay,\n\t\t\t} ),\n\t\t\tclassName,\n\t\t\tprops.className,\n\t\t\twrapperProps.className,\n\t\t\tuseBlockClassNames( clientId ),\n\t\t\tuseBlockDefaultClassName( clientId ),\n\t\t\tuseBlockCustomClassName( clientId ),\n\t\t\tuseBlockMovingModeClassNames( clientId )\n\t\t),\n\t\tstyle: { ...wrapperProps.style, ...props.style },\n\t};\n}\n\n/**\n * Call within a save function to get the props for the block wrapper.\n *\n * @param {Object} props Optional. Props to pass to the element.\n */\nuseBlockProps.save = getBlockProps;\n"]}
|
|
@@ -17,6 +17,8 @@ var _store = require("../../store");
|
|
|
17
17
|
|
|
18
18
|
var _insertionPoint = require("../block-tools/insertion-point");
|
|
19
19
|
|
|
20
|
+
var _lockUnlock = require("../../lock-unlock");
|
|
21
|
+
|
|
20
22
|
/**
|
|
21
23
|
* WordPress dependencies
|
|
22
24
|
*/
|
|
@@ -35,8 +37,9 @@ function useInBetweenInserter() {
|
|
|
35
37
|
isMultiSelecting,
|
|
36
38
|
getSelectedBlockClientIds,
|
|
37
39
|
getTemplateLock,
|
|
38
|
-
__unstableIsWithinBlockOverlay
|
|
39
|
-
|
|
40
|
+
__unstableIsWithinBlockOverlay,
|
|
41
|
+
getBlockEditingMode
|
|
42
|
+
} = (0, _lockUnlock.unlock)((0, _data.useSelect)(_store.store));
|
|
40
43
|
const {
|
|
41
44
|
showInsertionPoint,
|
|
42
45
|
hideInsertionPoint
|
|
@@ -72,10 +75,9 @@ function useInBetweenInserter() {
|
|
|
72
75
|
if (!event.target.classList.contains('is-root-container')) {
|
|
73
76
|
const blockElement = !!event.target.getAttribute('data-block') ? event.target : event.target.closest('[data-block]');
|
|
74
77
|
rootClientId = blockElement.getAttribute('data-block');
|
|
75
|
-
}
|
|
76
|
-
|
|
78
|
+
}
|
|
77
79
|
|
|
78
|
-
if (getTemplateLock(rootClientId)) {
|
|
80
|
+
if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled') {
|
|
79
81
|
return;
|
|
80
82
|
}
|
|
81
83
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"names":["useInBetweenInserter","openRef","InsertionPointOpenRef","isInBetweenInserterDisabled","select","blockEditorStore","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockRootClientId","getBlockIndex","isBlockInsertionPointVisible","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"mappings":";;;;;;;AAGA;;AACA;;AACA;;AACA;;AAKA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"names":["useInBetweenInserter","openRef","InsertionPointOpenRef","isInBetweenInserterDisabled","select","blockEditorStore","getSettings","isDistractionFree","__unstableGetEditorMode","getBlockListSettings","getBlockRootClientId","getBlockIndex","isBlockInsertionPointVisible","isMultiSelecting","getSelectedBlockClientIds","getTemplateLock","__unstableIsWithinBlockOverlay","getBlockEditingMode","showInsertionPoint","hideInsertionPoint","node","onMouseMove","event","current","target","nodeType","TEXT_NODE","classList","contains","rootClientId","blockElement","getAttribute","closest","orientation","offsetTop","clientY","offsetLeft","clientX","children","Array","from","element","find","blockEl","blockElRect","getBoundingClientRect","top","right","left","id","firstElementChild","clientId","slice","length","includes","elementRect","bottom","index","__unstableWithInserter","addEventListener","removeEventListener"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useRefEffect } from '@wordpress/compose';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useContext } from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { InsertionPointOpenRef } from '../block-tools/insertion-point';\nimport { unlock } from '../../lock-unlock';\n\nexport function useInBetweenInserter() {\n\tconst openRef = useContext( InsertionPointOpenRef );\n\tconst isInBetweenInserterDisabled = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getSettings().isDistractionFree ||\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst {\n\t\tgetBlockListSettings,\n\t\tgetBlockRootClientId,\n\t\tgetBlockIndex,\n\t\tisBlockInsertionPointVisible,\n\t\tisMultiSelecting,\n\t\tgetSelectedBlockClientIds,\n\t\tgetTemplateLock,\n\t\t__unstableIsWithinBlockOverlay,\n\t\tgetBlockEditingMode,\n\t} = unlock( useSelect( blockEditorStore ) );\n\tconst { showInsertionPoint, hideInsertionPoint } =\n\t\tuseDispatch( blockEditorStore );\n\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tif ( isInBetweenInserterDisabled ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tfunction onMouseMove( event ) {\n\t\t\t\tif ( openRef.current ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Ignore text nodes sometimes detected in FireFox.\n\t\t\t\tif ( event.target.nodeType === event.target.TEXT_NODE ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( isMultiSelecting() ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains(\n\t\t\t\t\t\t'block-editor-block-list__layout'\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet rootClientId;\n\t\t\t\tif (\n\t\t\t\t\t! event.target.classList.contains( 'is-root-container' )\n\t\t\t\t) {\n\t\t\t\t\tconst blockElement = !! event.target.getAttribute(\n\t\t\t\t\t\t'data-block'\n\t\t\t\t\t)\n\t\t\t\t\t\t? event.target\n\t\t\t\t\t\t: event.target.closest( '[data-block]' );\n\t\t\t\t\trootClientId = blockElement.getAttribute( 'data-block' );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\tgetTemplateLock( rootClientId ) ||\n\t\t\t\t\tgetBlockEditingMode( rootClientId ) === 'disabled'\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst orientation =\n\t\t\t\t\tgetBlockListSettings( rootClientId )?.orientation ||\n\t\t\t\t\t'vertical';\n\t\t\t\tconst offsetTop = event.clientY;\n\t\t\t\tconst offsetLeft = event.clientX;\n\n\t\t\t\tconst children = Array.from( event.target.children );\n\t\t\t\tlet element = children.find( ( blockEl ) => {\n\t\t\t\t\tconst blockElRect = blockEl.getBoundingClientRect();\n\t\t\t\t\treturn (\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'vertical' &&\n\t\t\t\t\t\t\tblockElRect.top > offsetTop ) ||\n\t\t\t\t\t\t( blockEl.classList.contains( 'wp-block' ) &&\n\t\t\t\t\t\t\torientation === 'horizontal' &&\n\t\t\t\t\t\t\t( isRTL()\n\t\t\t\t\t\t\t\t? blockElRect.right < offsetLeft\n\t\t\t\t\t\t\t\t: blockElRect.left > offsetLeft ) )\n\t\t\t\t\t);\n\t\t\t\t} );\n\n\t\t\t\tif ( ! element ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// The block may be in an alignment wrapper, so check the first direct\n\t\t\t\t// child if the element has no ID.\n\t\t\t\tif ( ! element.id ) {\n\t\t\t\t\telement = element.firstElementChild;\n\n\t\t\t\t\tif ( ! element ) {\n\t\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Don't show the insertion point if a parent block has an \"overlay\"\n\t\t\t\t// See https://github.com/WordPress/gutenberg/pull/34012#pullrequestreview-727762337\n\t\t\t\tconst clientId = element.id.slice( 'block-'.length );\n\t\t\t\tif (\n\t\t\t\t\t! clientId ||\n\t\t\t\t\t__unstableIsWithinBlockOverlay( clientId )\n\t\t\t\t) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Don't show the inserter when hovering above (conflicts with\n\t\t\t\t// block toolbar) or inside selected block(s).\n\t\t\t\tif ( getSelectedBlockClientIds().includes( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst elementRect = element.getBoundingClientRect();\n\n\t\t\t\tif (\n\t\t\t\t\t( orientation === 'horizontal' &&\n\t\t\t\t\t\t( event.clientY > elementRect.bottom ||\n\t\t\t\t\t\t\tevent.clientY < elementRect.top ) ) ||\n\t\t\t\t\t( orientation === 'vertical' &&\n\t\t\t\t\t\t( event.clientX > elementRect.right ||\n\t\t\t\t\t\t\tevent.clientX < elementRect.left ) )\n\t\t\t\t) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst index = getBlockIndex( clientId );\n\n\t\t\t\t// Don't show the in-between inserter before the first block in\n\t\t\t\t// the list (preserves the original behaviour).\n\t\t\t\tif ( index === 0 ) {\n\t\t\t\t\thideInsertionPoint();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tshowInsertionPoint( rootClientId, index, {\n\t\t\t\t\t__unstableWithInserter: true,\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousemove', onMouseMove );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousemove', onMouseMove );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\topenRef,\n\t\t\tgetBlockListSettings,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockIndex,\n\t\t\tisBlockInsertionPointVisible,\n\t\t\tisMultiSelecting,\n\t\t\tshowInsertionPoint,\n\t\t\thideInsertionPoint,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisInBetweenInserterDisabled,\n\t\t]\n\t);\n}\n"]}
|
|
@@ -96,6 +96,18 @@ function BlockListAppender(_ref2) {
|
|
|
96
96
|
tagName: TagName = 'div'
|
|
97
97
|
} = _ref2;
|
|
98
98
|
const appender = useAppender(rootClientId, renderAppender);
|
|
99
|
+
const isDragOver = (0, _data.useSelect)(select => {
|
|
100
|
+
const {
|
|
101
|
+
getBlockInsertionPoint,
|
|
102
|
+
isBlockInsertionPointVisible,
|
|
103
|
+
getBlockCount
|
|
104
|
+
} = select(_store.store);
|
|
105
|
+
const insertionPoint = getBlockInsertionPoint(); // Ideally we should also check for `isDragging` but currently it
|
|
106
|
+
// requires a lot more setup. We can revisit this once we refactor
|
|
107
|
+
// the DnD utility hooks.
|
|
108
|
+
|
|
109
|
+
return isBlockInsertionPointVisible() && rootClientId === (insertionPoint === null || insertionPoint === void 0 ? void 0 : insertionPoint.rootClientId) && getBlockCount(rootClientId) === 0;
|
|
110
|
+
}, [rootClientId]);
|
|
99
111
|
|
|
100
112
|
if (!appender) {
|
|
101
113
|
return null;
|
|
@@ -111,7 +123,9 @@ function BlockListAppender(_ref2) {
|
|
|
111
123
|
// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
|
|
112
124
|
, {
|
|
113
125
|
tabIndex: -1,
|
|
114
|
-
className: (0, _classnames.default)('block-list-appender wp-block', className
|
|
126
|
+
className: (0, _classnames.default)('block-list-appender wp-block', className, {
|
|
127
|
+
'is-drag-over': isDragOver
|
|
128
|
+
}) // Needed in case the whole editor is content editable (for multi
|
|
115
129
|
// selection). It fixes an edge case where ArrowDown and ArrowRight
|
|
116
130
|
// should collapse the selection to the end of that selection and
|
|
117
131
|
// not into the appender.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["DefaultAppender","rootClientId","canInsertDefaultBlock","select","blockEditorStore","canInsertBlockType","useAppender","CustomAppender","hideInserter","isParentSelected","getTemplateLock","getSelectedBlockClientId","__unstableGetEditorMode","selectedBlockClientId","BlockListAppender","renderAppender","className","tagName","TagName","appender"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,eAAT,OAA6C;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AAC5C,QAAMC,qBAAqB,GAAG,qBAAaC,MAAF,IACxCA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,kBAA3B,CACC,kCADD,EAECJ,YAFD,CAD6B,CAA9B;;AAOA,MAAKC,qBAAL,EAA6B;AAC5B;AACA;AACA,WAAO,4BAAC,6BAAD;AAAsB,MAAA,YAAY,EAAGD;AAArC,MAAP;AACA,GAZ2C,CAc5C;;;AACA,SACC,4BAAC,4BAAD;AACC,IAAA,YAAY,EAAGA,YADhB;AAEC,IAAA,SAAS,EAAC;AAFX,IADD;AAMA;;AAED,SAASK,WAAT,CAAsBL,YAAtB,EAAoCM,cAApC,EAAqD;AACpD,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAqC,qBACxCN,MAAF,IAAc;AACb,UAAM;AACLO,MAAAA,eADK;AAELC,MAAAA,wBAFK;AAGLC,MAAAA;AAHK,QAIFT,MAAM,CAAEC,YAAF,CAJV;AAMA,UAAMS,qBAAqB,GAAGF,wBAAwB,EAAtD;AAEA,WAAO;AACNH,MAAAA,YAAY,EACX,CAAC,CAAEE,eAAe,CAAET,YAAF,CAAlB,IACAW,uBAAuB,OAAO,UAHzB;AAINH,MAAAA,gBAAgB,EACfR,YAAY,KAAKY,qBAAjB,IACE,CAAEZ,YAAF,IAAkB,CAAEY;AANjB,KAAP;AAQA,GAlByC,EAmB1C,CAAEZ,YAAF,CAnB0C,CAA3C;;AAsBA,MAAKO,YAAY,IAAID,cAAc,KAAK,KAAxC,EAAgD;AAC/C,WAAO,IAAP;AACA;;AAED,MAAKA,cAAL,EAAsB;AACrB;AACA,WAAO,4BAAC,cAAD,OAAP;AACA;;AAED,MAAK,CAAEE,gBAAP,EAA0B;AACzB,WAAO,IAAP;AACA;;AAED,SAAO,4BAAC,eAAD;AAAiB,IAAA,YAAY,EAAGR;AAAhC,IAAP;AACA;;AAED,SAASa,iBAAT,QAKI;AAAA,MALwB;AAC3Bb,IAAAA,YAD2B;AAE3Bc,IAAAA,cAF2B;AAG3BC,IAAAA,SAH2B;AAI3BC,IAAAA,OAAO,EAAEC,OAAO,GAAG;AAJQ,GAKxB;AACH,QAAMC,QAAQ,GAAGb,WAAW,CAAEL,YAAF,EAAgBc,cAAhB,CAA5B;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["DefaultAppender","rootClientId","canInsertDefaultBlock","select","blockEditorStore","canInsertBlockType","useAppender","CustomAppender","hideInserter","isParentSelected","getTemplateLock","getSelectedBlockClientId","__unstableGetEditorMode","selectedBlockClientId","BlockListAppender","renderAppender","className","tagName","TagName","appender","isDragOver","getBlockInsertionPoint","isBlockInsertionPointVisible","getBlockCount","insertionPoint"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AAKA;;AACA;;AACA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAKA,SAASA,eAAT,OAA6C;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AAC5C,QAAMC,qBAAqB,GAAG,qBAAaC,MAAF,IACxCA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,kBAA3B,CACC,kCADD,EAECJ,YAFD,CAD6B,CAA9B;;AAOA,MAAKC,qBAAL,EAA6B;AAC5B;AACA;AACA,WAAO,4BAAC,6BAAD;AAAsB,MAAA,YAAY,EAAGD;AAArC,MAAP;AACA,GAZ2C,CAc5C;;;AACA,SACC,4BAAC,4BAAD;AACC,IAAA,YAAY,EAAGA,YADhB;AAEC,IAAA,SAAS,EAAC;AAFX,IADD;AAMA;;AAED,SAASK,WAAT,CAAsBL,YAAtB,EAAoCM,cAApC,EAAqD;AACpD,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAqC,qBACxCN,MAAF,IAAc;AACb,UAAM;AACLO,MAAAA,eADK;AAELC,MAAAA,wBAFK;AAGLC,MAAAA;AAHK,QAIFT,MAAM,CAAEC,YAAF,CAJV;AAMA,UAAMS,qBAAqB,GAAGF,wBAAwB,EAAtD;AAEA,WAAO;AACNH,MAAAA,YAAY,EACX,CAAC,CAAEE,eAAe,CAAET,YAAF,CAAlB,IACAW,uBAAuB,OAAO,UAHzB;AAINH,MAAAA,gBAAgB,EACfR,YAAY,KAAKY,qBAAjB,IACE,CAAEZ,YAAF,IAAkB,CAAEY;AANjB,KAAP;AAQA,GAlByC,EAmB1C,CAAEZ,YAAF,CAnB0C,CAA3C;;AAsBA,MAAKO,YAAY,IAAID,cAAc,KAAK,KAAxC,EAAgD;AAC/C,WAAO,IAAP;AACA;;AAED,MAAKA,cAAL,EAAsB;AACrB;AACA,WAAO,4BAAC,cAAD,OAAP;AACA;;AAED,MAAK,CAAEE,gBAAP,EAA0B;AACzB,WAAO,IAAP;AACA;;AAED,SAAO,4BAAC,eAAD;AAAiB,IAAA,YAAY,EAAGR;AAAhC,IAAP;AACA;;AAED,SAASa,iBAAT,QAKI;AAAA,MALwB;AAC3Bb,IAAAA,YAD2B;AAE3Bc,IAAAA,cAF2B;AAG3BC,IAAAA,SAH2B;AAI3BC,IAAAA,OAAO,EAAEC,OAAO,GAAG;AAJQ,GAKxB;AACH,QAAMC,QAAQ,GAAGb,WAAW,CAAEL,YAAF,EAAgBc,cAAhB,CAA5B;AACA,QAAMK,UAAU,GAAG,qBAChBjB,MAAF,IAAc;AACb,UAAM;AACLkB,MAAAA,sBADK;AAELC,MAAAA,4BAFK;AAGLC,MAAAA;AAHK,QAIFpB,MAAM,CAAEC,YAAF,CAJV;AAKA,UAAMoB,cAAc,GAAGH,sBAAsB,EAA7C,CANa,CAOb;AACA;AACA;;AACA,WACCC,4BAA4B,MAC5BrB,YAAY,MAAKuB,cAAL,aAAKA,cAAL,uBAAKA,cAAc,CAAEvB,YAArB,CADZ,IAEAsB,aAAa,CAAEtB,YAAF,CAAb,KAAkC,CAHnC;AAKA,GAhBiB,EAiBlB,CAAEA,YAAF,CAjBkB,CAAnB;;AAoBA,MAAK,CAAEkB,QAAP,EAAkB;AACjB,WAAO,IAAP;AACA;;AAED,SACC,4BAAC,OAAD,CACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AARD;AASC,IAAA,QAAQ,EAAG,CAAC,CATb;AAUC,IAAA,SAAS,EAAG,yBAAY,8BAAZ,EAA4CH,SAA5C,EAAuD;AAClE,sBAAgBI;AADkD,KAAvD,CAVb,CAaC;AACA;AACA;AACA;AAhBD;AAiBC,IAAA,eAAe,EAAG,KAjBnB,CAkBC;AACA;AACA;AACA;AACA;AACA;AACA;AAxBD;AAyBC;AAzBD,KA2BGD,QA3BH,CADD;AA+BA;;eAEcL,iB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { getDefaultBlockName } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport DefaultBlockAppender from '../default-block-appender';\nimport ButtonBlockAppender from '../button-block-appender';\nimport { store as blockEditorStore } from '../../store';\n\nfunction DefaultAppender( { rootClientId } ) {\n\tconst canInsertDefaultBlock = useSelect( ( select ) =>\n\t\tselect( blockEditorStore ).canInsertBlockType(\n\t\t\tgetDefaultBlockName(),\n\t\t\trootClientId\n\t\t)\n\t);\n\n\tif ( canInsertDefaultBlock ) {\n\t\t// Render the default block appender if the context supports use\n\t\t// of the default appender.\n\t\treturn <DefaultBlockAppender rootClientId={ rootClientId } />;\n\t}\n\n\t// Fallback in case the default block can't be inserted.\n\treturn (\n\t\t<ButtonBlockAppender\n\t\t\trootClientId={ rootClientId }\n\t\t\tclassName=\"block-list-appender__toggle\"\n\t\t/>\n\t);\n}\n\nfunction useAppender( rootClientId, CustomAppender ) {\n\tconst { hideInserter, isParentSelected } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetTemplateLock,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\t__unstableGetEditorMode,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\treturn {\n\t\t\t\thideInserter:\n\t\t\t\t\t!! getTemplateLock( rootClientId ) ||\n\t\t\t\t\t__unstableGetEditorMode() === 'zoom-out',\n\t\t\t\tisParentSelected:\n\t\t\t\t\trootClientId === selectedBlockClientId ||\n\t\t\t\t\t( ! rootClientId && ! selectedBlockClientId ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tif ( hideInserter || CustomAppender === false ) {\n\t\treturn null;\n\t}\n\n\tif ( CustomAppender ) {\n\t\t// Prefer custom render prop if provided.\n\t\treturn <CustomAppender />;\n\t}\n\n\tif ( ! isParentSelected ) {\n\t\treturn null;\n\t}\n\n\treturn <DefaultAppender rootClientId={ rootClientId } />;\n}\n\nfunction BlockListAppender( {\n\trootClientId,\n\trenderAppender,\n\tclassName,\n\ttagName: TagName = 'div',\n} ) {\n\tconst appender = useAppender( rootClientId, renderAppender );\n\tconst isDragOver = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockInsertionPoint,\n\t\t\t\tisBlockInsertionPointVisible,\n\t\t\t\tgetBlockCount,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst insertionPoint = getBlockInsertionPoint();\n\t\t\t// Ideally we should also check for `isDragging` but currently it\n\t\t\t// requires a lot more setup. We can revisit this once we refactor\n\t\t\t// the DnD utility hooks.\n\t\t\treturn (\n\t\t\t\tisBlockInsertionPointVisible() &&\n\t\t\t\trootClientId === insertionPoint?.rootClientId &&\n\t\t\t\tgetBlockCount( rootClientId ) === 0\n\t\t\t);\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tif ( ! appender ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<TagName\n\t\t\t// A `tabIndex` is used on the wrapping `div` element in order to\n\t\t\t// force a focus event to occur when an appender `button` element\n\t\t\t// is clicked. In some browsers (Firefox, Safari), button clicks do\n\t\t\t// not emit a focus event, which could cause this event to propagate\n\t\t\t// unexpectedly. The `tabIndex` ensures that the interaction is\n\t\t\t// captured as a focus, without also adding an extra tab stop.\n\t\t\t//\n\t\t\t// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus\n\t\t\ttabIndex={ -1 }\n\t\t\tclassName={ classnames( 'block-list-appender wp-block', className, {\n\t\t\t\t'is-drag-over': isDragOver,\n\t\t\t} ) }\n\t\t\t// Needed in case the whole editor is content editable (for multi\n\t\t\t// selection). It fixes an edge case where ArrowDown and ArrowRight\n\t\t\t// should collapse the selection to the end of that selection and\n\t\t\t// not into the appender.\n\t\t\tcontentEditable={ false }\n\t\t\t// The appender exists to let you add the first Paragraph before\n\t\t\t// any is inserted. To that end, this appender should visually be\n\t\t\t// presented as a block. That means theme CSS should style it as if\n\t\t\t// it were an empty paragraph block. That means a `wp-block` class to\n\t\t\t// ensure the width is correct, and a [data-block] attribute to ensure\n\t\t\t// the correct margin is applied, especially for classic themes which\n\t\t\t// have commonly targeted that attribute for margins.\n\t\t\tdata-block\n\t\t>\n\t\t\t{ appender }\n\t\t</TagName>\n\t);\n}\n\nexport default BlockListAppender;\n"]}
|
|
@@ -35,6 +35,8 @@ var _store = require("../../store");
|
|
|
35
35
|
|
|
36
36
|
var _blockTransformationsMenu = _interopRequireDefault(require("../block-switcher/block-transformations-menu"));
|
|
37
37
|
|
|
38
|
+
var _convertToGroupButtons = require("../convert-to-group-buttons");
|
|
39
|
+
|
|
38
40
|
/**
|
|
39
41
|
* External dependencies
|
|
40
42
|
*/
|
|
@@ -64,6 +66,7 @@ const BlockActionsMenu = _ref => {
|
|
|
64
66
|
rootClientId,
|
|
65
67
|
selectedBlockClientId,
|
|
66
68
|
selectedBlockPossibleTransformations,
|
|
69
|
+
canRemove,
|
|
67
70
|
// Dispatch.
|
|
68
71
|
createSuccessNotice,
|
|
69
72
|
convertToRegularBlocks,
|
|
@@ -96,7 +99,16 @@ const BlockActionsMenu = _ref => {
|
|
|
96
99
|
backward: backwardButtonTitle,
|
|
97
100
|
forward: forwardButtonTitle
|
|
98
101
|
}
|
|
99
|
-
} = (0, _moverDescription.getMoversSetup)(isStackedHorizontally, moversOptions);
|
|
102
|
+
} = (0, _moverDescription.getMoversSetup)(isStackedHorizontally, moversOptions); // Check if selected block is Groupable and/or Ungroupable.
|
|
103
|
+
|
|
104
|
+
const convertToGroupButtonProps = (0, _convertToGroupButtons.useConvertToGroupButtonProps)([selectedBlockClientId]);
|
|
105
|
+
const {
|
|
106
|
+
isGroupable,
|
|
107
|
+
isUngroupable
|
|
108
|
+
} = convertToGroupButtonProps;
|
|
109
|
+
const showConvertToGroupButton = (isGroupable || isUngroupable) && canRemove;
|
|
110
|
+
const convertToGroupButtons = (0, _convertToGroupButtons.useConvertToGroupButtons)({ ...convertToGroupButtonProps
|
|
111
|
+
});
|
|
100
112
|
const allOptions = {
|
|
101
113
|
settings: {
|
|
102
114
|
id: 'settingsOption',
|
|
@@ -200,7 +212,7 @@ const BlockActionsMenu = _ref => {
|
|
|
200
212
|
}
|
|
201
213
|
}
|
|
202
214
|
};
|
|
203
|
-
const options = [wrapBlockMover && allOptions.backwardButton, wrapBlockMover && allOptions.forwardButton, wrapBlockSettings && allOptions.settings, !isLocked && selectedBlockPossibleTransformations.length && allOptions.transformButton, canDuplicate && allOptions.copyButton, canDuplicate && allOptions.cutButton, canDuplicate && isPasteEnabled && allOptions.pasteButton, canDuplicate && allOptions.duplicateButton, isReusableBlockType && innerBlockCount > 0 && allOptions.convertToRegularBlocks, !isLocked && allOptions.delete].filter(Boolean); // End early if there are no options to show.
|
|
215
|
+
const options = [wrapBlockMover && allOptions.backwardButton, wrapBlockMover && allOptions.forwardButton, wrapBlockSettings && allOptions.settings, !isLocked && selectedBlockPossibleTransformations.length && allOptions.transformButton, canDuplicate && allOptions.copyButton, canDuplicate && allOptions.cutButton, canDuplicate && isPasteEnabled && allOptions.pasteButton, canDuplicate && allOptions.duplicateButton, showConvertToGroupButton && isGroupable && convertToGroupButtons.group, showConvertToGroupButton && isUngroupable && convertToGroupButtons.ungroup, isReusableBlockType && innerBlockCount > 0 && allOptions.convertToRegularBlocks, !isLocked && allOptions.delete].filter(Boolean); // End early if there are no options to show.
|
|
204
216
|
|
|
205
217
|
if (!options.length) {
|
|
206
218
|
return (0, _element.createElement)(_components.ToolbarButton, {
|
|
@@ -281,7 +293,8 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
|
|
|
281
293
|
getBlocksByClientId,
|
|
282
294
|
getSelectedBlockClientIds,
|
|
283
295
|
canInsertBlockType,
|
|
284
|
-
getTemplateLock
|
|
296
|
+
getTemplateLock,
|
|
297
|
+
canRemoveBlock
|
|
285
298
|
} = select(_store.store);
|
|
286
299
|
const block = getBlock(clientId);
|
|
287
300
|
const blockName = getBlockName(clientId);
|
|
@@ -304,6 +317,7 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
|
|
|
304
317
|
const selectedBlockClientId = getSelectedBlockClientIds()[0];
|
|
305
318
|
const selectedBlock = selectedBlockClientId ? getBlocksByClientId(selectedBlockClientId)[0] : undefined;
|
|
306
319
|
const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems(selectedBlock, rootClientId) : EMPTY_BLOCK_LIST;
|
|
320
|
+
const canRemove = canRemoveBlock(selectedBlockClientId);
|
|
307
321
|
const isReusableBlockType = block ? (0, _blocks.isReusableBlock)(block) : false;
|
|
308
322
|
const reusableBlock = isReusableBlockType ? select(_coreData.store).getEntityRecord('postType', 'wp_block', block === null || block === void 0 ? void 0 : block.attributes.ref) : undefined;
|
|
309
323
|
return {
|
|
@@ -320,7 +334,8 @@ var _default = (0, _compose.compose)((0, _data.withSelect)((select, _ref2) => {
|
|
|
320
334
|
reusableBlock,
|
|
321
335
|
rootClientId,
|
|
322
336
|
selectedBlockClientId,
|
|
323
|
-
selectedBlockPossibleTransformations
|
|
337
|
+
selectedBlockPossibleTransformations,
|
|
338
|
+
canRemove
|
|
324
339
|
};
|
|
325
340
|
}), (0, _data.withDispatch)((dispatch, _ref3, _ref4) => {
|
|
326
341
|
let {
|
|
@@ -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","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","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","block","blockName","blockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","selectedBlock","coreStore","getEntityRecord","ref","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","args","canReplaceBlock","insertedBlock","withInstanceId"],"mappings":";;;;;;;;;AA4BA;;AAzBA;;AAKA;;AAMA;;AAUA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AAGA;;AAKA;;AACA;;AACA;;AAxCA;AACA;AACA;;AAGA;AACA;AACA;AAwBA;AACA;;AAGA;AACA;AACA;AAKA,MAAMA,gBAAgB,GAAG,QA8BlB;AAAA,MA9BoB;AAC1B;AACAC,IAAAA,UAF0B;AAG1BC,IAAAA,kBAH0B;AAI1BC,IAAAA,mBAJ0B;AAK1BC,IAAAA,mBAL0B;AAM1BC,IAAAA,QAN0B;AAO1BC,IAAAA,YAP0B;AAQ1BC,IAAAA,OAR0B;AAS1BC,IAAAA,MAT0B;AAU1BC,IAAAA,mBAV0B;AAW1BC,IAAAA,aAX0B;AAY1BC,IAAAA,YAZ0B;AAa1BC,IAAAA,qBAb0B;AAc1BC,IAAAA,oCAd0B;AAe1B;AACAC,IAAAA,mBAhB0B;AAiB1BC,IAAAA,sBAjB0B;AAkB1BC,IAAAA,cAlB0B;AAmB1BC,IAAAA,UAnB0B;AAoB1BC,IAAAA,QApB0B;AAqB1BC,IAAAA,kBArB0B;AAsB1BC,IAAAA,UAtB0B;AAuB1BC,IAAAA,YAvB0B;AAwB1B;AACAC,IAAAA,aAzB0B;AA0B1BC,IAAAA,qBA1B0B;AA2B1BC,IAAAA,QA3B0B;AA4B1BC,IAAAA,cA5B0B;AA6B1BC,IAAAA;AA7B0B,GA8BpB;AACN,QAAM,CAAEC,SAAF,EAAaC,mBAAb,IAAqC,uBAAU,+BAAV,CAA3C;AACA,QAAMC,yBAAyB,GAAG,sBAAlC;AACA,QAAMC,gCAAgC,GAAG,sBAAzC;AACA,QAAMC,aAAa,GAAG;AAAEC,IAAAA,IAAI,EAAE,CAAE,MAAF,EAAU,aAAV;AAAR,GAAtB;AACA,QAAMC,cAAc,GAAGN,SAAS,IAAI,wBAAY;AAAEO,IAAAA,IAAI,EAAEP;AAAR,GAAZ,EAAmC,CAAnC,CAApC;AACA,QAAMQ,cAAc,GACnBF,cAAc,IACd/B,kBAAkB,CAAE+B,cAAc,CAACG,IAAjB,EAAuBzB,YAAvB,CAFnB;AAIA,QAAM0B,eAAe,GAAG,qBACrBC,MAAF,IACCA,MAAM,CAAEC,YAAF,CAAN,CAA2BC,aAA3B,CAA0C5B,qBAA1C,CAFsB,EAGvB,CAAEA,qBAAF,CAHuB,CAAxB;AAMA,QAAM;AACL6B,IAAAA,WAAW,EAAE;AACZC,MAAAA,QAAQ,EAAEC,mBADE;AAEZC,MAAAA,OAAO,EAAEC;AAFG;AADR,MAKF,sCAAgBtB,qBAAhB,EAAuCQ,aAAvC,CALJ;AAOA,QAAMe,UAAU,GAAG;AAClBC,IAAAA,QAAQ,EAAE;AACTC,MAAAA,EAAE,EAAE,gBADK;AAETC,MAAAA,KAAK,EAAE,cAAI,gBAAJ,CAFE;AAGTC,MAAAA,KAAK,EAAE,gBAHE;AAITC,MAAAA,QAAQ,EAAEhC;AAJD,KADQ;AAOlBiC,IAAAA,cAAc,EAAE;AACfJ,MAAAA,EAAE,EAAE,sBADW;AAEfC,MAAAA,KAAK,EAAEN,mBAFQ;AAGfO,MAAAA,KAAK,EAAE,sBAHQ;AAIfG,MAAAA,QAAQ,EAAE9C,OAJK;AAKf4C,MAAAA,QAAQ,EAAEjC;AALK,KAPE;AAclBoC,IAAAA,aAAa,EAAE;AACdN,MAAAA,EAAE,EAAE,qBADU;AAEdC,MAAAA,KAAK,EAAEJ,kBAFO;AAGdK,MAAAA,KAAK,EAAE,qBAHO;AAIdG,MAAAA,QAAQ,EAAE7C,MAJI;AAKd2C,MAAAA,QAAQ,EAAElC;AALI,KAdG;AAqBlBsC,IAAAA,MAAM,EAAE;AACPP,MAAAA,EAAE,EAAE,cADG;AAEPC,MAAAA,KAAK,EAAE,cAAI,cAAJ,CAFA;AAGPC,MAAAA,KAAK,EAAE,cAHA;AAIPM,MAAAA,SAAS,EAAE,IAJJ;AAKPH,MAAAA,QAAQ,EAAEjD,mBALH;AAMP+C,MAAAA,QAAQ,EAAE,MAAM;AACf3B,QAAAA,QAAQ;AACRV,QAAAA,mBAAmB,EAClB;AACA,sBAAI,eAAJ,CAFkB,CAAnB;AAIA;AAZM,KArBU;AAmClB2C,IAAAA,eAAe,EAAE;AAChBT,MAAAA,EAAE,EAAE,uBADY;AAEhBC,MAAAA,KAAK,EAAE,cAAI,kBAAJ,CAFS;AAGhBC,MAAAA,KAAK,EAAE,uBAHS;AAIhBC,MAAAA,QAAQ,EAAE,MAAM;AACf,YAAKrB,gCAAgC,CAAC4B,OAAtC,EAAgD;AAC/C5B,UAAAA,gCAAgC,CAAC4B,OAAjC,CAAyCC,aAAzC;AACA;AACD;AARe,KAnCC;AA6ClBC,IAAAA,UAAU,EAAE;AACXZ,MAAAA,EAAE,EAAE,kBADO;AAEXC,MAAAA,KAAK,EAAE,cAAI,YAAJ,CAFI;AAGXC,MAAAA,KAAK,EAAE,kBAHI;AAIXC,MAAAA,QAAQ,EAAE,MAAM;AACf,cAAMU,eAAe,GAAG,uBACvB1D,mBAAmB,CAAES,qBAAF,CADI,CAAxB;AAGAgB,QAAAA,mBAAmB,CAAEiC,eAAF,CAAnB;AACA,sCAAcA,eAAd;AACA/C,QAAAA,mBAAmB,EAClB;AACA,sBAAI,cAAJ,CAFkB,CAAnB;AAIA;AAdU,KA7CM;AA6DlBgD,IAAAA,SAAS,EAAE;AACVd,MAAAA,EAAE,EAAE,iBADM;AAEVC,MAAAA,KAAK,EAAE,cAAI,WAAJ,CAFG;AAGVC,MAAAA,KAAK,EAAE,iBAHG;AAIVC,MAAAA,QAAQ,EAAE,MAAM;AACf,sCACC,uBAAWhD,mBAAmB,CAAES,qBAAF,CAA9B,CADD;AAGAS,QAAAA,YAAY,CAAET,qBAAF,CAAZ;AACAE,QAAAA,mBAAmB,EAClB;AACA,sBAAI,WAAJ,CAFkB,CAAnB;AAIA;AAbS,KA7DO;AA4ElBiD,IAAAA,WAAW,EAAE;AACZf,MAAAA,EAAE,EAAE,mBADQ;AAEZC,MAAAA,KAAK,EAAE,cAAI,mBAAJ,CAFK;AAGZC,MAAAA,KAAK,EAAE,mBAHK;AAIZC,MAAAA,QAAQ,EAAE,MAAM;AACfa,QAAAA,YAAY;AACZlD,QAAAA,mBAAmB,EAClB;AACA,sBAAI,cAAJ,CAFkB,CAAnB;AAIA;AAVW,KA5EK;AAwFlBmD,IAAAA,eAAe,EAAE;AAChBjB,MAAAA,EAAE,EAAE,uBADY;AAEhBC,MAAAA,KAAK,EAAE,cAAI,iBAAJ,CAFS;AAGhBC,MAAAA,KAAK,EAAE,uBAHS;AAIhBC,MAAAA,QAAQ,EAAE,MAAM;AACfnC,QAAAA,cAAc;AACdF,QAAAA,mBAAmB,EAClB;AACA,sBAAI,kBAAJ,CAFkB,CAAnB;AAIA;AAVe,KAxFC;AAoGlBC,IAAAA,sBAAsB,EAAE;AACvBiC,MAAAA,EAAE,EAAE,8BADmB;AAEvBC,MAAAA,KAAK,EACJZ,eAAe,GAAG,CAAlB,GACG,cAAI,2BAAJ,CADH,GAEG,cAAI,0BAAJ,CALmB;AAMvBa,MAAAA,KAAK,EAAE,8BANgB;AAOvBC,MAAAA,QAAQ,EAAE,MAAM;AAAA;;AACf,cAAMe,aAAa,GAClB7B,eAAe,GAAG,CAAlB;AACG;AACA,sBAAI,gCAAJ,CAFH;AAGG;AACA,sBAAI,+BAAJ,CALJ;AAMAvB,QAAAA,mBAAmB,CAClB,mBACCoD,aADD,EAEC,CAAAxD,aAAa,SAAb,IAAAA,aAAa,WAAb,oCAAAA,aAAa,CAAEyD,KAAf,8EAAsBC,GAAtB,KAA6BnE,UAF9B,CADkB,CAAnB;AAMAc,QAAAA,sBAAsB;AACtB;AArBsB;AApGN,GAAnB;AA6HA,QAAMsD,OAAO,GAAG,CACf5C,cAAc,IAAIqB,UAAU,CAACM,cADd,EAEf3B,cAAc,IAAIqB,UAAU,CAACQ,aAFd,EAGf5B,iBAAiB,IAAIoB,UAAU,CAACC,QAHjB,EAIf,CAAE1C,QAAF,IACCQ,oCAAoC,CAACyD,MADtC,IAECxB,UAAU,CAACW,eANG,EAOfnD,YAAY,IAAIwC,UAAU,CAACc,UAPZ,EAQftD,YAAY,IAAIwC,UAAU,CAACgB,SARZ,EASfxD,YAAY,IAAI6B,cAAhB,IAAkCW,UAAU,CAACiB,WAT9B,EAUfzD,YAAY,IAAIwC,UAAU,CAACmB,eAVZ,EAWfxD,mBAAmB,IAClB4B,eAAe,GAAG,CADnB,IAECS,UAAU,CAAC/B,sBAbG,EAcf,CAAEV,QAAF,IAAcyC,UAAU,CAACS,MAdV,EAedgB,MAfc,CAeNC,OAfM,CAAhB,CApJM,CAqKN;;AACA,MAAK,CAAEH,OAAO,CAACC,MAAf,EAAwB;AACvB,WACC,4BAAC,yBAAD;AACC,MAAA,KAAK,EAAG,cAAI,yBAAJ,CADT;AAEC,MAAA,IAAI,EAAGG,2BAFR;AAGC,MAAA,QAAQ,EAAG;AAHZ,MADD;AAOA;;AAED,WAAST,YAAT,GAAwB;AACvB,QAAK,CAAErC,SAAP,EAAmB;AAClB;AACA;;AAEDP,IAAAA,UAAU,CAAE,wBAAY;AAAEc,MAAAA,IAAI,EAAEP;AAAR,KAAZ,EAAmC,CAAnC,CAAF,CAAV;AACA;;AAED,WAAS+C,cAAT,CAAyBxB,KAAzB,EAAiC;AAChC,UAAMyB,YAAY,GAAGN,OAAO,CAACO,IAAR,CAAgBC,IAAF,IAAYA,IAAI,CAAC3B,KAAL,KAAeA,KAAzC,CAArB;AACAyB,IAAAA,YAAY,CAACxB,QAAb;AACA;;AAED,WAAS2B,eAAT,GAA2B;AAC1B,QAAKjD,yBAAyB,CAAC6B,OAA/B,EAAyC;AACxC7B,MAAAA,yBAAyB,CAAC6B,OAA1B,CAAkCC,aAAlC;AACA;AACD;;AAED,QAAMoB,qBAAqB,GAAGV,OAAO,CACnCW,GAD4B,CACvB,CAAEC,MAAF,EAAUC,KAAV,KAAqBD,MAAM,CAAC5B,QAAP,IAAmB6B,KAAK,GAAG,CADzB,EAE5BX,MAF4B,CAEpBC,OAFoB,CAA9B;AAIA,QAAMW,iBAAiB,GACtBC,sBAASC,EAAT,KAAgB,KAAhB,GACG,cAAI,wDAAJ,CADH,GAEG,cAAI,wDAAJ,CAHJ;;AAKA,QAAMC,SAAS,GAAG,MACjBhE,aAAa,GAAG,iCAAgBA,aAAhB,CAAH,GAAqCiE,SADnD;;AAGA,SACC,qDACC,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAG,cAAI,yBAAJ,CADT;AAEC,IAAA,OAAO,EAAGT,eAFX;AAGC,IAAA,IAAI,EAAGL,2BAHR;AAIC,IAAA,UAAU,EAAG;AACZe,MAAAA,IAAI,EAAEL;AADM;AAJd,IADD,EASC,4BAAC,kBAAD;AACC,IAAA,MAAM,EAAC,oBADR;AAEC,IAAA,GAAG,EAAGtD,yBAFP;AAGC,IAAA,OAAO,EAAGwC,OAHX;AAIC,IAAA,QAAQ,EAAGK,cAJZ;AAKC,IAAA,sBAAsB,EAAGL,OAAO,CAACC,MALlC;AAMC,IAAA,qBAAqB,EAAGS,qBANzB;AAOC,IAAA,gBAAgB,EAAGK,sBAASC,EAAT,KAAgB,KAPpC;AAQC,IAAA,SAAS,EAAG,IARb;AASC,IAAA,SAAS,EAAGC,SATb,CAUC;AAVD;AAWC,IAAA,KAAK,EAAG,mBAAS,cAAI,kBAAJ,CAAT,EAAmCrF,UAAnC;AAXT,IATD,EAsBC,4BAAC,iCAAD;AACC,IAAA,aAAa,EAAGqB,aADjB;AAEC,IAAA,UAAU,EAAGrB,UAFd;AAGC,IAAA,SAAS,EAAG6B,gCAHb;AAIC,IAAA,uBAAuB,EAAGjB,oCAJ3B;AAKC,IAAA,aAAa,EAAGV,mBAAmB,CAAES,qBAAF,CALpC;AAMC,IAAA,qBAAqB,EAAGA;AANzB,IAtBD,CADD;AAiCA,CA9QD;;AAgRA,MAAM6E,gBAAgB,GAAG,EAAzB;;eAEe,sBACd,sBAAY,CAAEnD,MAAF,YAA4B;AAAA,MAAlB;AAAEoD,IAAAA;AAAF,GAAkB;AACvC,QAAM;AACLC,IAAAA,aADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,YAJK;AAKLC,IAAAA,sBALK;AAMLC,IAAAA,QANK;AAOL7F,IAAAA,mBAPK;AAQL8F,IAAAA,yBARK;AASL/F,IAAAA,kBATK;AAULgG,IAAAA;AAVK,MAWF5D,MAAM,CAAEC,YAAF,CAXV;AAYA,QAAM4D,KAAK,GAAGH,QAAQ,CAAEN,QAAF,CAAtB;AACA,QAAMU,SAAS,GAAGN,YAAY,CAAEJ,QAAF,CAA9B;AACA,QAAMW,SAAS,GAAG,0BAAcD,SAAd,CAAlB;AACA,QAAMnG,UAAU,GAAGoG,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAElC,KAA9B;AACA,QAAMxD,YAAY,GAAGiF,oBAAoB,CAAEF,QAAF,CAAzC;AACA,QAAMY,UAAU,GAAGT,aAAa,CAAElF,YAAF,CAAhC;AAEA,QAAM4F,iBAAiB,GAAGZ,aAAa,CAAED,QAAF,CAAvC;AACA,QAAMnF,OAAO,GAAGgG,iBAAiB,KAAK,CAAtC;AACA,QAAM/F,MAAM,GAAG+F,iBAAiB,KAAKD,UAAU,CAAChC,MAAX,GAAoB,CAAzD;AAEA,QAAMkC,WAAW,GAAGrG,mBAAmB,CAAEuF,QAAF,CAAvC;AAEA,QAAMpF,YAAY,GAAGkG,WAAW,CAACC,KAAZ,CAAqBC,UAAF,IAAkB;AACzD,WACC,CAAC,CAAEA,UAAH,IACA,6BAAiBA,UAAU,CAACtE,IAA5B,EAAkC,UAAlC,EAA8C,IAA9C,CADA,IAEAlC,kBAAkB,CAAEwG,UAAU,CAACtE,IAAb,EAAmBzB,YAAnB,CAHnB;AAKA,GANoB,CAArB;AAQA,QAAMgG,cAAc,GAAGP,SAAS,KAAK,kCAArC;AACA,QAAMQ,cAAc,GAAG,CAAAT,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEU,UAAP,CAAkBC,OAAlB,MAA8B,EAArD;AACA,QAAMC,iBAAiB,GAAGT,UAAU,CAAChC,MAAX,KAAsB,CAAhD;AACA,QAAMlE,mBAAmB,GACxB2G,iBAAiB,IAAIJ,cAArB,IAAuCC,cADxC;AAEA,QAAMvG,QAAQ,GAAG,CAAC,CAAE6F,eAAe,CAAEvF,YAAF,CAAnC;AAEA,QAAMC,qBAAqB,GAAGqF,yBAAyB,GAAI,CAAJ,CAAvD;AACA,QAAMe,aAAa,GAAGpG,qBAAqB,GACxCT,mBAAmB,CAAES,qBAAF,CAAnB,CAA8C,CAA9C,CADwC,GAExC2E,SAFH;AAGA,QAAM1E,oCAAoC,GAAGmG,aAAa,GACvDjB,sBAAsB,CAAEiB,aAAF,EAAiBrG,YAAjB,CADiC,GAEvD8E,gBAFH;AAIA,QAAMhF,mBAAmB,GAAG0F,KAAK,GAAG,6BAAiBA,KAAjB,CAAH,GAA8B,KAA/D;AACA,QAAMzF,aAAa,GAAGD,mBAAmB,GACtC6B,MAAM,CAAE2E,eAAF,CAAN,CAAoBC,eAApB,CACA,UADA,EAEA,UAFA,EAGAf,KAHA,aAGAA,KAHA,uBAGAA,KAAK,CAAEU,UAAP,CAAkBM,GAHlB,CADsC,GAMtC5B,SANH;AAQA,SAAO;AACNtF,IAAAA,UADM;AAENC,IAAAA,kBAFM;AAGNkH,IAAAA,YAAY,EAAEb,iBAHR;AAINpG,IAAAA,mBAJM;AAKNC,IAAAA,mBALM;AAMNC,IAAAA,QANM;AAONC,IAAAA,YAPM;AAQNC,IAAAA,OARM;AASNC,IAAAA,MATM;AAUNC,IAAAA,mBAVM;AAWNC,IAAAA,aAXM;AAYNC,IAAAA,YAZM;AAaNC,IAAAA,qBAbM;AAcNC,IAAAA;AAdM,GAAP;AAgBA,CA1ED,CADc,EA4Ed,wBACC,CACCwG,QADD,mBAIK;AAAA,MAFJ;AAAE3B,IAAAA,QAAF;AAAY/E,IAAAA,YAAZ;AAA0ByG,IAAAA,YAA1B;AAAwCxG,IAAAA;AAAxC,GAEI;AAAA,MADJ;AAAE0B,IAAAA;AAAF,GACI;AACJ,QAAM;AACLgF,IAAAA,cADK;AAELC,IAAAA,YAFK;AAGLC,IAAAA,eAHK;AAILnG,IAAAA,YAJK;AAKLoG,IAAAA,WALK;AAMLC,IAAAA,YANK;AAOLC,IAAAA;AAPK,MAQFN,QAAQ,CAAE9E,YAAF,CARZ;AASA,QAAM;AAAEpB,IAAAA;AAAF,MAAyBkG,QAAQ,CAAE,gBAAF,CAAvC;AACA,QAAM;AAAEO,IAAAA,oBAAF;AAAwB5B,IAAAA;AAAxB,MACL1D,MAAM,CAAEC,YAAF,CADP;AAEA,QAAM;AAAEzB,IAAAA;AAAF,MAA0BuG,QAAQ,CAAEQ,cAAF,CAAxC;AAEA,QAAM;AAAEC,IAAAA,kCAAkC,EAAEC;AAAtC,MACLV,QAAQ,CAAEW,qBAAF,CADT;AAGA,SAAO;AACNlH,IAAAA,mBADM;;AAENC,IAAAA,sBAAsB,GAAG;AACxB4G,MAAAA,kBAAkB,GADM,CAExB;AACA;;AACAM,MAAAA,YAAY,CAAE,MACbF,oBAAoB,CAAEnH,qBAAF,CADT,CAAZ;AAGA,KATK;;AAUNI,IAAAA,cAAc,GAAG;AAChB,aAAOwG,eAAe,CAAE,CAAE9B,QAAF,CAAF,CAAtB;AACA,KAZK;;AAaNzE,IAAAA,UAAU,EAAE;AAAA,wCAAKiH,IAAL;AAAKA,QAAAA,IAAL;AAAA;;AAAA,aACXZ,cAAc,CAAE,CAAE5B,QAAF,CAAF,EAAgB/E,YAAhB,EAA8B,GAAGuH,IAAjC,CADH;AAAA,KAbN;AAeNhH,IAAAA,QAAQ,EAAE;AAAA,yCAAKgH,IAAL;AAAKA,QAAAA,IAAL;AAAA;;AAAA,aACTX,YAAY,CAAE,CAAE7B,QAAF,CAAF,EAAgB/E,YAAhB,EAA8B,GAAGuH,IAAjC,CADH;AAAA,KAfJ;AAiBN/G,IAAAA,kBAAkB,EAAE,MACnBA,kBAAkB,CAAE,iBAAF,CAlBb;AAmBNC,IAAAA,UAAU,EAAIa,cAAF,IAAsB;AACjC,YAAMkG,eAAe,GAAG,sCACvBnC,QAAQ,CAAE4B,oBAAoB,EAAtB,CADe,CAAxB;;AAIA,UAAK,CAAEO,eAAP,EAAyB;AACxB,cAAMC,aAAa,GAAG,yBACrBnG,cAAc,CAACG,IADM,EAErBH,cAAc,CAAC4E,UAFM,EAGrB5E,cAAc,CAACuE,WAHM,CAAtB;AAMAiB,QAAAA,WAAW,CACVW,aADU,EAEVhB,YAAY,GAAG,CAFL,EAGVzG,YAHU,CAAX;AAKA,OAZD,MAYO;AACN+G,QAAAA,YAAY,CAAEhC,QAAF,EAAYzD,cAAZ,CAAZ;AACA;AACD,KAvCK;AAwCNZ,IAAAA;AAxCM,GAAP;AA0CA,CAjEF,CA5Ec,EA+IdgH,uBA/Ic,EAgJZrI,gBAhJY,C","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 &&\n\t\t\tinnerBlockCount > 0 &&\n\t\t\tallOptions.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\ttestID=\"block-actions-menu\"\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, { clientId } ) => {\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 block = getBlock( clientId );\n\t\tconst blockName = getBlockName( clientId );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst currentBlockIndex = getBlockIndex( clientId );\n\t\tconst isFirst = currentBlockIndex === 0;\n\t\tconst isLast = currentBlockIndex === blockOrder.length - 1;\n\n\t\tconst innerBlocks = getBlocksByClientId( clientId );\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: currentBlockIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst,\n\t\t\tisLast,\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{ clientId, 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\treplaceBlock,\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( [ clientId ] );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( [ clientId ], 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\treplaceBlock( clientId, 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","canRemove","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","convertToGroupButtonProps","isGroupable","isUngroupable","showConvertToGroupButton","convertToGroupButtons","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","group","ungroup","filter","Boolean","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","accessibilityHint","Platform","OS","getAnchor","undefined","hint","EMPTY_BLOCK_LIST","clientId","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","canRemoveBlock","block","blockName","blockType","blockOrder","currentBlockIndex","innerBlocks","every","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","selectedBlock","coreStore","getEntityRecord","ref","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlock","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';\nimport {\n\tuseConvertToGroupButtons,\n\tuseConvertToGroupButtonProps,\n} from '../convert-to-group-buttons';\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\tcanRemove,\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\t// Check if selected block is Groupable and/or Ungroupable.\n\tconst convertToGroupButtonProps = useConvertToGroupButtonProps( [\n\t\tselectedBlockClientId,\n\t] );\n\tconst { isGroupable, isUngroupable } = convertToGroupButtonProps;\n\tconst showConvertToGroupButton =\n\t\t( isGroupable || isUngroupable ) && canRemove;\n\tconst convertToGroupButtons = useConvertToGroupButtons( {\n\t\t...convertToGroupButtonProps,\n\t} );\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\tshowConvertToGroupButton && isGroupable && convertToGroupButtons.group,\n\t\tshowConvertToGroupButton &&\n\t\t\tisUngroupable &&\n\t\t\tconvertToGroupButtons.ungroup,\n\t\tisReusableBlockType &&\n\t\t\tinnerBlockCount > 0 &&\n\t\t\tallOptions.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\ttestID=\"block-actions-menu\"\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, { clientId } ) => {\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\tcanRemoveBlock,\n\t\t} = select( blockEditorStore );\n\t\tconst block = getBlock( clientId );\n\t\tconst blockName = getBlockName( clientId );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst rootClientId = getBlockRootClientId( clientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst currentBlockIndex = getBlockIndex( clientId );\n\t\tconst isFirst = currentBlockIndex === 0;\n\t\tconst isLast = currentBlockIndex === blockOrder.length - 1;\n\n\t\tconst innerBlocks = getBlocksByClientId( clientId );\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\t\tconst canRemove = canRemoveBlock( selectedBlockClientId );\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: currentBlockIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst,\n\t\t\tisLast,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t\tcanRemove,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientId, 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\treplaceBlock,\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( [ clientId ] );\n\t\t\t\t},\n\t\t\t\tonMoveDown: ( ...args ) =>\n\t\t\t\t\tmoveBlocksDown( [ clientId ], rootClientId, ...args ),\n\t\t\t\tonMoveUp: ( ...args ) =>\n\t\t\t\t\tmoveBlocksUp( [ clientId ], 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\treplaceBlock( clientId, 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"]}
|
|
@@ -44,8 +44,7 @@ function BlockStylesPreviewPanel(_ref) {
|
|
|
44
44
|
};
|
|
45
45
|
}, [genericPreviewBlock, styleClassName]);
|
|
46
46
|
return (0, _element.createElement)(_previewPanel.default, {
|
|
47
|
-
item: previewBlocks
|
|
48
|
-
isStylePreview: true
|
|
47
|
+
item: previewBlocks
|
|
49
48
|
});
|
|
50
49
|
}
|
|
51
50
|
//# sourceMappingURL=preview-panel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/preview-panel.js"],"names":["BlockStylesPreviewPanel","genericPreviewBlock","style","className","activeStyle","example","name","styleClassName","previewBlocks","title","label","description","initialAttributes","attributes"],"mappings":";;;;;;;;;AAIA;;AADA;;AAMA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIe,SAASA,uBAAT,OAKX;AAAA;;AAAA,MAL6C;AAChDC,IAAAA,mBADgD;AAEhDC,IAAAA,KAFgD;AAGhDC,IAAAA,SAHgD;AAIhDC,IAAAA;AAJgD,GAK7C;AACH,QAAMC,OAAO,oBAAG,0BAAcJ,mBAAmB,CAACK,IAAlC,CAAH,kDAAG,cAA0CD,OAA1D;AACA,QAAME,cAAc,GAAG,+BAAoBJ,SAApB,EAA+BC,WAA/B,EAA4CF,KAA5C,CAAvB;AACA,QAAMM,aAAa,GAAG,sBAAS,MAAM;AACpC,WAAO,EACN,GAAGP,mBADG;AAENQ,MAAAA,KAAK,EAAEP,KAAK,CAACQ,KAAN,IAAeR,KAAK,CAACI,IAFtB;AAGNK,MAAAA,WAAW,EAAET,KAAK,CAACS,WAHb;AAINC,MAAAA,iBAAiB,EAAE,EAClB,GAAGX,mBAAmB,CAACY,UADL;AAElBV,QAAAA,SAAS,EACRI,cAAc,GACd;AAJiB,OAJb;AAUNF,MAAAA;AAVM,KAAP;AAYA,GAbqB,EAanB,CAAEJ,mBAAF,EAAuBM,cAAvB,CAbmB,CAAtB;AAeA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-styles/preview-panel.js"],"names":["BlockStylesPreviewPanel","genericPreviewBlock","style","className","activeStyle","example","name","styleClassName","previewBlocks","title","label","description","initialAttributes","attributes"],"mappings":";;;;;;;;;AAIA;;AADA;;AAMA;;AACA;;AAVA;AACA;AACA;;AAIA;AACA;AACA;AAIe,SAASA,uBAAT,OAKX;AAAA;;AAAA,MAL6C;AAChDC,IAAAA,mBADgD;AAEhDC,IAAAA,KAFgD;AAGhDC,IAAAA,SAHgD;AAIhDC,IAAAA;AAJgD,GAK7C;AACH,QAAMC,OAAO,oBAAG,0BAAcJ,mBAAmB,CAACK,IAAlC,CAAH,kDAAG,cAA0CD,OAA1D;AACA,QAAME,cAAc,GAAG,+BAAoBJ,SAApB,EAA+BC,WAA/B,EAA4CF,KAA5C,CAAvB;AACA,QAAMM,aAAa,GAAG,sBAAS,MAAM;AACpC,WAAO,EACN,GAAGP,mBADG;AAENQ,MAAAA,KAAK,EAAEP,KAAK,CAACQ,KAAN,IAAeR,KAAK,CAACI,IAFtB;AAGNK,MAAAA,WAAW,EAAET,KAAK,CAACS,WAHb;AAINC,MAAAA,iBAAiB,EAAE,EAClB,GAAGX,mBAAmB,CAACY,UADL;AAElBV,QAAAA,SAAS,EACRI,cAAc,GACd;AAJiB,OAJb;AAUNF,MAAAA;AAVM,KAAP;AAYA,GAbqB,EAanB,CAAEJ,mBAAF,EAAuBM,cAAvB,CAbmB,CAAtB;AAeA,SAAO,4BAAC,qBAAD;AAAsB,IAAA,IAAI,EAAGC;AAA7B,IAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InserterPreviewPanel from '../inserter/preview-panel';\nimport { replaceActiveStyle } from './utils';\n\nexport default function BlockStylesPreviewPanel( {\n\tgenericPreviewBlock,\n\tstyle,\n\tclassName,\n\tactiveStyle,\n} ) {\n\tconst example = getBlockType( genericPreviewBlock.name )?.example;\n\tconst styleClassName = replaceActiveStyle( className, activeStyle, style );\n\tconst previewBlocks = useMemo( () => {\n\t\treturn {\n\t\t\t...genericPreviewBlock,\n\t\t\ttitle: style.label || style.name,\n\t\t\tdescription: style.description,\n\t\t\tinitialAttributes: {\n\t\t\t\t...genericPreviewBlock.attributes,\n\t\t\t\tclassName:\n\t\t\t\t\tstyleClassName +\n\t\t\t\t\t' block-editor-block-styles__block-preview-container',\n\t\t\t},\n\t\t\texample,\n\t\t};\n\t}, [ genericPreviewBlock, styleClassName ] );\n\n\treturn <InserterPreviewPanel item={ previewBlocks } />;\n}\n"]}
|