@wordpress/block-editor 12.0.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 +6 -0
- package/README.md +1 -1
- 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-controls/slot.js +12 -4
- package/build/components/block-controls/slot.js.map +1 -1
- package/build/components/block-controls/slot.native.js +10 -1
- package/build/components/block-controls/slot.native.js.map +1 -1
- package/build/components/block-draggable/index.js +11 -7
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/use-scroll-when-dragging.js +2 -2
- package/build/components/block-draggable/use-scroll-when-dragging.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-invalid-warning.native.js +15 -7
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- 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-list-item-cell.native.js +15 -2
- package/build/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +158 -195
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-outline.native.js +57 -0
- package/build/components/block-list/block-outline.native.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 +347 -311
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +260 -357
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/insertion-point.native.js +4 -2
- package/build/components/block-list/insertion-point.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-settings-menu/block-settings-dropdown.js +8 -10
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +15 -4
- package/build/components/block-settings-menu-controls/index.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 +22 -65
- 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/block-tools/selected-block-popover.js +3 -8
- package/build/components/block-tools/selected-block-popover.js.map +1 -1
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.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/advanced-panel.js +86 -0
- package/build/components/global-styles/advanced-panel.js.map +1 -0
- package/build/components/global-styles/color-panel.js +4 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +9 -8
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/hooks.js +1 -2
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/index.js +24 -0
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +1 -1
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +27 -4
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +30 -0
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +14 -7
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +24 -8
- package/build/components/image-editor/use-save-image.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/inserter-draggable-blocks/index.js +5 -0
- package/build/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build/components/inspector-controls/fill.js +1 -1
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/fill.native.js +1 -1
- package/build/components/inspector-controls/fill.native.js.map +1 -1
- package/build/components/inspector-controls/slot.js +3 -6
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/inspector-controls/slot.native.js +1 -1
- package/build/components/inspector-controls/slot.native.js.map +1 -1
- package/build/components/line-height-control/index.js +7 -2
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/use-internal-input-value.js +9 -8
- package/build/components/link-control/use-internal-input-value.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 +9 -2
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +25 -29
- 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 +43 -22
- 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/list-view/use-list-view-drop-zone.js +163 -11
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/media-placeholder/index.js +68 -7
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +2 -2
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/preview-options/index.js +6 -1
- package/build/components/preview-options/index.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/spacing-sizes-control/spacing-input-control.js +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/url-input/index.js +4 -2
- 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 +4 -8
- 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/border.js +1 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +1 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/content-lock-ui.js +8 -12
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/dimensions.js +0 -30
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +5 -9
- 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/index.native.js +8 -0
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/layout.js +10 -11
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/position.js +1 -1
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +1 -1
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/use-editor-wrapper-styles.native.js +255 -0
- package/build/hooks/use-editor-wrapper-styles.native.js.map +1 -0
- package/build/hooks/use-typography-props.js +14 -10
- package/build/hooks/use-typography-props.js.map +1 -1
- package/build/index.native.js +31 -0
- package/build/index.native.js.map +1 -0
- 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/utils/use-should-contextual-toolbar-show.js +16 -12
- package/build/utils/use-should-contextual-toolbar-show.js.map +1 -1
- 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-controls/slot.js +11 -4
- package/build-module/components/block-controls/slot.js.map +1 -1
- package/build-module/components/block-controls/slot.native.js +9 -1
- package/build-module/components/block-controls/slot.native.js.map +1 -1
- package/build-module/components/block-draggable/index.js +10 -6
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/use-scroll-when-dragging.js +2 -2
- package/build-module/components/block-draggable/use-scroll-when-dragging.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-invalid-warning.native.js +16 -8
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- 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-list-item-cell.native.js +13 -2
- package/build-module/components/block-list/block-list-item-cell.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js +160 -190
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-outline.native.js +44 -0
- package/build-module/components/block-list/block-outline.native.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 +345 -310
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +263 -355
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/insertion-point.native.js +4 -2
- package/build-module/components/block-list/insertion-point.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-settings-menu/block-settings-dropdown.js +8 -9
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +13 -5
- package/build-module/components/block-settings-menu-controls/index.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 +22 -65
- 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/block-tools/selected-block-popover.js +3 -7
- package/build-module/components/block-tools/selected-block-popover.js.map +1 -1
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +3 -2
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.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/advanced-panel.js +74 -0
- package/build-module/components/global-styles/advanced-panel.js.map +1 -0
- package/build-module/components/global-styles/color-panel.js +5 -2
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +9 -8
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +1 -2
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/index.js +3 -1
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +1 -1
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +25 -4
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +25 -0
- package/build-module/components/global-styles/utils.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/image-editor/use-save-image.js +24 -8
- package/build-module/components/image-editor/use-save-image.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/inserter-draggable-blocks/index.js +4 -0
- package/build-module/components/inserter-draggable-blocks/index.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +1 -1
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/fill.native.js +1 -1
- package/build-module/components/inspector-controls/fill.native.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +4 -7
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/inspector-controls/slot.native.js +1 -1
- package/build-module/components/inspector-controls/slot.native.js.map +1 -1
- package/build-module/components/line-height-control/index.js +7 -2
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/use-internal-input-value.js +9 -8
- package/build-module/components/link-control/use-internal-input-value.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 +9 -3
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +24 -29
- 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 +44 -23
- 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/list-view/use-list-view-drop-zone.js +160 -11
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +66 -7
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +2 -2
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +7 -2
- package/build-module/components/preview-options/index.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/spacing-sizes-control/spacing-input-control.js +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/url-input/index.js +4 -2
- 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 +4 -7
- 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/border.js +1 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +1 -1
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +8 -11
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/dimensions.js +0 -28
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -7
- 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/index.native.js +1 -0
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/layout.js +9 -11
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/position.js +1 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +1 -1
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/use-editor-wrapper-styles.native.js +242 -0
- package/build-module/hooks/use-editor-wrapper-styles.native.js.map +1 -0
- package/build-module/hooks/use-typography-props.js +14 -10
- package/build-module/hooks/use-typography-props.js.map +1 -1
- package/build-module/index.native.js +6 -0
- package/build-module/index.native.js.map +1 -0
- 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-module/utils/use-should-contextual-toolbar-show.js +16 -12
- package/build-module/utils/use-should-contextual-toolbar-show.js.map +1 -1
- package/build-style/content-rtl.css +32 -14
- package/build-style/content.css +32 -14
- 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 +56 -77
- package/build-style/style.css +57 -77
- 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-breadcrumb/style.scss +2 -1
- package/src/components/block-controls/slot.js +8 -4
- package/src/components/block-controls/slot.native.js +6 -1
- package/src/components/block-draggable/index.js +10 -6
- package/src/components/block-draggable/use-scroll-when-dragging.js +8 -2
- package/src/components/block-editing-mode/index.js +71 -0
- package/src/components/block-list/block-invalid-warning.native.js +17 -9
- package/src/components/block-list/block-list-block-context.js +6 -0
- package/src/components/block-list/block-list-item-cell.native.js +10 -1
- package/src/components/block-list/block-list-item.native.js +180 -208
- package/src/components/block-list/block-outline.native.js +58 -0
- package/src/components/block-list/block.js +38 -56
- package/src/components/block-list/block.native.js +531 -501
- package/src/components/block-list/content.scss +5 -6
- package/src/components/block-list/index.native.js +324 -382
- package/src/components/block-list/insertion-point.native.js +2 -2
- package/src/components/block-list/test/block-invalid-warning.native.js +48 -0
- package/src/components/block-list/test/index.native.js +205 -0
- 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 +26 -1
- package/src/components/block-mover/style.scss +1 -0
- package/src/components/block-pattern-setup/style.scss +1 -4
- package/src/components/block-patterns-list/style.scss +1 -4
- package/src/components/block-settings-menu/block-settings-dropdown.js +10 -17
- package/src/components/block-settings-menu-controls/index.js +24 -4
- package/src/components/block-styles/preview-panel.js +1 -3
- package/src/components/block-styles/style.scss +4 -4
- 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 +32 -67
- package/src/components/block-tools/insertion-point.js +23 -9
- package/src/components/block-tools/selected-block-popover.js +3 -5
- package/src/components/block-tools/style.scss +8 -0
- package/src/components/button-block-appender/content.scss +22 -0
- package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +16 -2
- 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/advanced-panel.js +82 -0
- package/src/components/global-styles/color-panel.js +6 -1
- package/src/components/global-styles/dimensions-panel.js +9 -8
- package/src/components/global-styles/hooks.js +1 -5
- package/src/components/global-styles/index.js +6 -1
- package/src/components/global-styles/style.scss +17 -0
- package/src/components/global-styles/test/utils.js +57 -1
- package/src/components/global-styles/typography-panel.js +1 -1
- package/src/components/global-styles/use-global-styles-output.js +21 -3
- package/src/components/global-styles/utils.js +27 -0
- package/src/components/iframe/index.js +22 -12
- package/src/components/image-editor/use-save-image.js +20 -9
- 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/inserter-draggable-blocks/index.js +4 -0
- package/src/components/inspector-controls/fill.js +1 -1
- package/src/components/inspector-controls/fill.native.js +1 -1
- package/src/components/inspector-controls/slot.js +4 -9
- package/src/components/inspector-controls/slot.native.js +1 -1
- package/src/components/line-height-control/index.js +7 -2
- package/src/components/line-height-control/stories/index.js +1 -1
- package/src/components/link-control/test/index.js +42 -0
- package/src/components/link-control/use-internal-input-value.js +8 -7
- package/src/components/list-view/appender.js +3 -2
- package/src/components/list-view/block-contents.js +32 -20
- package/src/components/list-view/block-select-button.js +5 -1
- package/src/components/list-view/block.js +34 -37
- package/src/components/list-view/branch.js +1 -7
- package/src/components/list-view/index.js +42 -17
- package/src/components/list-view/style.scss +7 -7
- package/src/components/list-view/test/use-list-view-drop-zone.js +88 -12
- package/src/components/list-view/use-list-view-client-ids.js +21 -4
- package/src/components/list-view/use-list-view-drop-zone.js +194 -11
- package/src/components/media-placeholder/index.js +74 -1
- package/src/components/multi-selection-inspector/index.js +2 -2
- package/src/components/preview-options/index.js +9 -2
- package/src/components/publish-date-time-picker/index.js +0 -2
- package/src/components/spacing-sizes-control/spacing-input-control.js +1 -0
- package/src/components/url-input/README.md +6 -0
- package/src/components/url-input/index.js +2 -2
- 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 +5 -12
- package/src/hooks/behaviors.js +104 -0
- package/src/hooks/border.js +2 -1
- package/src/hooks/color.js +2 -1
- package/src/hooks/content-lock-ui.js +3 -15
- package/src/hooks/dimensions.js +0 -40
- package/src/hooks/duotone.js +4 -11
- package/src/hooks/index.js +1 -0
- package/src/hooks/index.native.js +1 -0
- package/src/hooks/layout.js +14 -20
- package/src/hooks/position.js +2 -1
- package/src/hooks/style.js +2 -1
- package/src/hooks/test/use-editor-wrapper-styles.native.js +282 -0
- package/src/hooks/test/use-typography-props.js +47 -2
- package/src/hooks/use-editor-wrapper-styles.native.js +250 -0
- package/src/hooks/use-editor-wrapper-styles.native.scss +11 -0
- package/src/hooks/use-typography-props.js +10 -11
- package/src/index.native.js +6 -0
- 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/src/utils/use-should-contextual-toolbar-show.js +19 -9
- package/tsconfig.json +1 -0
- package/tsconfig.tsbuildinfo +1 -1
- 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 -146
- 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 -128
- 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 -157
- 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":["View","Platform","TouchableWithoutFeedback","Component","withDispatch","withSelect","compose","withPreferredColorScheme","createBlock","KeyboardAwareFlatList","ReadableContentView","WIDE_ALIGNMENTS","alignmentHelpers","__","styles","BlockListAppender","BlockListItem","BlockListItemCell","BlockListProvider","BlockListConsumer","DEFAULT_BLOCK_LIST_CONTEXT","BlockDraggableWrapper","store","blockEditorStore","identity","x","stylesMemo","getStyles","isRootList","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","horizontal","overflowVisible","BlockList","constructor","arguments","extraData","parentWidth","props","renderFooterAppender","renderAppender","onDeleteBlock","contentStyle","renderItem","bind","renderBlockListFooter","scrollViewInnerRef","addBlockToEndOfPost","shouldFlatListPreventAutomaticScroll","shouldShowInnerBlockAppender","renderEmptyList","getExtraData","getCellRendererComponent","onLayout","state","blockWidth","newBlock","insertBlock","blockCount","ref","scrollViewRef","isBlockInsertionPointVisible","blockClientIds","length","rootClientId","gridProperties","children","item","nativeEvent","layout","maxWidth","layoutWidth","Math","floor","width","setState","min","render","isRTL","blockList","scrollRef","onScroll","renderList","parentScrollRef","extraProps","clearSelectedBlock","title","header","isReadOnly","marginVertical","defaultBlock","marginTop","marginHorizontal","marginLeft","isFloatingToolbarVisible","contentResizeMode","blockToolbar","headerToolbar","floatingToolbar","containerStyle","flex","isContentStretch","isMultiBlocks","isWider","extraScrollHeight","height","scrollViewStyle","OS","removeClippedSubviews","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","innerAppender","clientId","onAddBlock","isGridItem","gridItemProps","numOfColumns","numColumns","tileCount","tileIndex","indexOf","paragraphBlock","withFooter","blockListFooter","select","orientation","filterInnerBlocks","getBlockCount","getBlockHierarchyRootClientId","getBlockOrder","getSelectedBlockClientId","getSettings","selectedBlockClientId","readOnly","rootBlockId","undefined","dispatch","replaceBlock","EmptyListComponent","shouldShowInsertionPoint","defaultAppender","alignments","full","EmptyListComponentCompose","getBlockInsertionPoint","insertionPoint","blockInsertionPointIsVisible","index"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,QAAf,EAAyBC,wBAAzB,QAAyD,cAAzD;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,YAAT,EAAuBC,UAAvB,QAAyC,iBAAzC;AACA,SAASC,OAAT,EAAkBC,wBAAlB,QAAkD,oBAAlD;AACA,SAASC,WAAT,QAA4B,mBAA5B;AACA,SACCC,qBADD,EAECC,mBAFD,EAGCC,eAHD,EAICC,gBAJD,QAKO,uBALP;AAMA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,iBAAP,MAA8B,wBAA9B;AACA,SACCC,iBADD,EAECC,iBAFD,EAGCC,0BAHD,QAIO,sBAJP;AAKA,SAASC,qBAAT,QAAsC,oBAAtC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,MAAMC,QAAQ,GAAKC,CAAF,IAASA,CAA1B;;AAEA,MAAMC,UAAU,GAAG,EAAnB;;AACA,MAAMC,SAAS,GAAG,CACjBC,UADiB,EAEjBC,qBAFiB,EAGjBC,mBAHiB,KAIb;AACJ,MAAKF,UAAL,EAAkB;AACjB;AACA;;AACD,QAAMG,SAAS,GAAI,GAAGF,qBAAuB,IAAIC,mBAAqB,EAAtE;;AACA,MAAKJ,UAAU,CAAEK,SAAF,CAAf,EAA+B;AAC9B,WAAOL,UAAU,CAAEK,SAAF,CAAjB;AACA;;AACD,QAAMC,cAAc,GAAG,CACtBH,qBAAqB,IAAIf,MAAM,CAACmB,UADV,EAEtBH,mBAAmB,IAAIhB,MAAM,CAAG,cAAcgB,mBAAqB,EAAtC,CAFP,EAGtBhB,MAAM,CAACoB,eAHe,CAAvB;AAKAR,EAAAA,UAAU,CAAEK,SAAF,CAAV,GAA0BC,cAA1B;AACA,SAAOA,cAAP;AACA,CAnBD;;AAqBA,OAAO,MAAMG,SAAN,SAAwBhC,SAAxB,CAAkC;AACxCiC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AACA,SAAKC,SAAL,GAAiB;AAChBC,MAAAA,WAAW,EAAE,KAAKC,KAAL,CAAWD,WADR;AAEhBE,MAAAA,oBAAoB,EAAE,KAAKD,KAAL,CAAWC,oBAFjB;AAGhBC,MAAAA,cAAc,EAAE,KAAKF,KAAL,CAAWE,cAHX;AAIhBC,MAAAA,aAAa,EAAE,KAAKH,KAAL,CAAWG,aAJV;AAKhBC,MAAAA,YAAY,EAAE,KAAKJ,KAAL,CAAWI;AALT,KAAjB;AAOA,SAAKC,UAAL,GAAkB,KAAKA,UAAL,CAAgBC,IAAhB,CAAsB,IAAtB,CAAlB;AACA,SAAKC,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BD,IAA3B,CAAiC,IAAjC,CAA7B;AACA,SAAKE,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBF,IAAxB,CAA8B,IAA9B,CAA1B;AACA,SAAKG,mBAAL,GAA2B,KAAKA,mBAAL,CAAyBH,IAAzB,CAA+B,IAA/B,CAA3B;AACA,SAAKI,oCAAL,GACC,KAAKA,oCAAL,CAA0CJ,IAA1C,CAAgD,IAAhD,CADD;AAEA,SAAKK,4BAAL,GACC,KAAKA,4BAAL,CAAkCL,IAAlC,CAAwC,IAAxC,CADD;AAEA,SAAKM,eAAL,GAAuB,KAAKA,eAAL,CAAqBN,IAArB,CAA2B,IAA3B,CAAvB;AACA,SAAKO,YAAL,GAAoB,KAAKA,YAAL,CAAkBP,IAAlB,CAAwB,IAAxB,CAApB;AACA,SAAKQ,wBAAL,GACC,KAAKA,wBAAL,CAA8BR,IAA9B,CAAoC,IAApC,CADD;AAGA,SAAKS,QAAL,GAAgB,KAAKA,QAAL,CAAcT,IAAd,CAAoB,IAApB,CAAhB;AAEA,SAAKU,KAAL,GAAa;AACZC,MAAAA,UAAU,EAAE,KAAKjB,KAAL,CAAWiB,UAAX,IAAyB;AADzB,KAAb;AAGA;;AAEDR,EAAAA,mBAAmB,CAAES,QAAF,EAAa;AAC/B,SAAKlB,KAAL,CAAWmB,WAAX,CAAwBD,QAAxB,EAAkC,KAAKlB,KAAL,CAAWoB,UAA7C;AACA;;AAEDZ,EAAAA,kBAAkB,CAAEa,GAAF,EAAQ;AACzB,SAAKC,aAAL,GAAqBD,GAArB;AACA;;AAEDX,EAAAA,oCAAoC,GAAG;AACtC,WAAO,KAAKV,KAAL,CAAWuB,4BAAlB;AACA;;AAEDZ,EAAAA,4BAA4B,GAAG;AAC9B,UAAM;AAAEa,MAAAA,cAAF;AAAkBtB,MAAAA;AAAlB,QAAqC,KAAKF,KAAhD;AACA,WAAOE,cAAc,IAAIsB,cAAc,CAACC,MAAf,GAAwB,CAAjD;AACA;;AAEDb,EAAAA,eAAe,GAAG;AACjB,WACC,cAAC,yBAAD;AACC,MAAA,YAAY,EAAG,KAAKZ,KAAL,CAAW0B,YAD3B;AAEC,MAAA,cAAc,EAAG,KAAK1B,KAAL,CAAWE,cAF7B;AAGC,MAAA,oBAAoB,EAAG,KAAKF,KAAL,CAAWC;AAHnC,MADD;AAOA;;AAEDY,EAAAA,YAAY,GAAG;AACd,UAAM;AACLd,MAAAA,WADK;AAELE,MAAAA,oBAFK;AAGLE,MAAAA,aAHK;AAILC,MAAAA,YAJK;AAKLF,MAAAA,cALK;AAMLyB,MAAAA;AANK,QAOF,KAAK3B,KAPT;AAQA,UAAM;AAAEiB,MAAAA;AAAF,QAAiB,KAAKD,KAA5B;;AACA,QACC,KAAKlB,SAAL,CAAeC,WAAf,KAA+BA,WAA/B,IACA,KAAKD,SAAL,CAAeG,oBAAf,KAAwCA,oBADxC,IAEA,KAAKH,SAAL,CAAeK,aAAf,KAAiCA,aAFjC,IAGA,KAAKL,SAAL,CAAeM,YAAf,KAAgCA,YAHhC,IAIA,KAAKN,SAAL,CAAeI,cAAf,KAAkCA,cAJlC,IAKA,KAAKJ,SAAL,CAAemB,UAAf,KAA8BA,UAL9B,IAMA,KAAKnB,SAAL,CAAe6B,cAAf,KAAkCA,cAPnC,EAQE;AACD,WAAK7B,SAAL,GAAiB;AAChBC,QAAAA,WADgB;AAEhBE,QAAAA,oBAFgB;AAGhBE,QAAAA,aAHgB;AAIhBC,QAAAA,YAJgB;AAKhBF,QAAAA,cALgB;AAMhBe,QAAAA,UANgB;AAOhBU,QAAAA;AAPgB,OAAjB;AASA;;AACD,WAAO,KAAK7B,SAAZ;AACA;;AAEDgB,EAAAA,wBAAwB,OAAiC;AAAA,QAA/B;AAAEc,MAAAA,QAAF;AAAYC,MAAAA,IAAZ;AAAkBd,MAAAA;AAAlB,KAA+B;AACxD,UAAM;AAAEW,MAAAA;AAAF,QAAmB,KAAK1B,KAA9B;AACA,WACC,cAAC,iBAAD;AACC,MAAA,QAAQ,EAAG4B,QADZ;AAEC,MAAA,QAAQ,EAAGC,IAFZ;AAGC,MAAA,QAAQ,EAAGd,QAHZ;AAIC,MAAA,YAAY,EAAGW;AAJhB,MADD;AAQA;;AAEDX,EAAAA,QAAQ,QAAoB;AAAA,QAAlB;AAAEe,MAAAA;AAAF,KAAkB;AAC3B,UAAM;AAAEC,MAAAA;AAAF,QAAaD,WAAnB;AACA,UAAM;AAAEb,MAAAA;AAAF,QAAiB,KAAKD,KAA5B;AACA,UAAM;AAAE5B,MAAAA,UAAF;AAAc4C,MAAAA;AAAd,QAA2B,KAAKhC,KAAtC;AAEA,UAAMiC,WAAW,GAAGC,IAAI,CAACC,KAAL,CAAYJ,MAAM,CAACK,KAAnB,CAApB;;AACA,QAAKhD,UAAU,IAAI6B,UAAU,KAAKgB,WAAlC,EAAgD;AAC/C,WAAKI,QAAL,CAAe;AACdpB,QAAAA,UAAU,EAAEiB,IAAI,CAACI,GAAL,CAAUL,WAAV,EAAuBD,QAAvB;AADE,OAAf;AAGA,KAJD,MAIO,IAAK,CAAE5C,UAAF,IAAgB,CAAE6B,UAAvB,EAAoC;AAC1C,WAAKoB,QAAL,CAAe;AAAEpB,QAAAA,UAAU,EAAEiB,IAAI,CAACI,GAAL,CAAUL,WAAV,EAAuBD,QAAvB;AAAd,OAAf;AACA;AACD;;AAEDO,EAAAA,MAAM,GAAG;AACR,UAAM;AAAEnD,MAAAA,UAAF;AAAcoD,MAAAA;AAAd,QAAwB,KAAKxC,KAAnC,CADQ,CAER;;AACA,UAAMyC,SAAS,GAAGrD,UAAU,GAC3B,cAAC,iBAAD;AACC,MAAA,KAAK,EAAG,EACP,GAAGR,0BADI;AAEP8D,QAAAA,SAAS,EAAE,KAAKpB;AAFT;AADT,OAMC,cAAC,qBAAD;AAAuB,MAAA,KAAK,EAAGkB;AAA/B,OACG;AAAA,UAAE;AAAEG,QAAAA;AAAF,OAAF;AAAA,aAAoB,KAAKC,UAAL,CAAiB;AAAED,QAAAA;AAAF,OAAjB,CAApB;AAAA,KADH,CAND,CAD2B,GAY3B,cAAC,iBAAD,QACG;AAAA,UAAE;AAAED,QAAAA;AAAF,OAAF;AAAA,aACD,KAAKE,UAAL,CAAiB;AAChBC,QAAAA,eAAe,EAAEH;AADD,OAAjB,CADC;AAAA,KADH,CAZD;AAqBA,WAAOD,SAAP;AACA;;AAEDG,EAAAA,UAAU,GAAoB;AAAA,QAAlBE,UAAkB,uEAAL,EAAK;AAC7B,UAAM;AACLC,MAAAA,kBADK;AAELvB,MAAAA,cAFK;AAGLwB,MAAAA,KAHK;AAILC,MAAAA,MAJK;AAKLC,MAAAA,UALK;AAML9D,MAAAA,UANK;AAOLK,MAAAA,UAPK;AAQL0D,MAAAA,cAAc,GAAG7E,MAAM,CAAC8E,YAAP,CAAoBC,SARhC;AASLC,MAAAA,gBAAgB,GAAGhF,MAAM,CAAC8E,YAAP,CAAoBG,UATlC;AAULC,MAAAA,wBAVK;AAWLnE,MAAAA,qBAXK;AAYLC,MAAAA,mBAZK;AAaLmE,MAAAA,iBAbK;AAcLxC,MAAAA;AAdK,QAeF,KAAKjB,KAfT;AAgBA,UAAM;AAAE6C,MAAAA,eAAF;AAAmBF,MAAAA;AAAnB,QAAgCG,UAAtC;AAEA,UAAM;AAAEY,MAAAA,YAAF;AAAgBC,MAAAA,aAAhB;AAA+BC,MAAAA;AAA/B,QAAmDtF,MAAzD;AAEA,UAAMuF,cAAc,GAAG;AACtBC,MAAAA,IAAI,EAAE1E,UAAU,GAAG,CAAH,GAAO,CADD;AAEtB;AACA+D,MAAAA,cAAc,EAAE/D,UAAU,GAAG,CAAH,GAAO,CAAC+D,cAHZ;AAItBG,MAAAA,gBAAgB,EAAElE,UAAU,GAAG,CAAH,GAAO,CAACkE;AAJd,KAAvB;AAOA,UAAMS,gBAAgB,GAAGN,iBAAiB,KAAK,SAA/C;AACA,UAAMO,aAAa,GAAGxC,cAAc,CAACC,MAAf,GAAwB,CAA9C;AACA,UAAM;AAAEwC,MAAAA;AAAF,QAAc7F,gBAApB;AACA,UAAM8F,iBAAiB,GACtBP,aAAa,CAACQ,MAAd,GACAT,YAAY,CAACS,MADb,IAEEX,wBAAwB,GAAGI,eAAe,CAACO,MAAnB,GAA4B,CAFtD,CADD;AAKA,UAAMC,eAAe,GAAG,CACvB;AAAEN,MAAAA,IAAI,EAAE1E,UAAU,GAAG,CAAH,GAAO;AAAzB,KADuB,EAEvB,CAAEA,UAAF,IAAgBd,MAAM,CAACoB,eAFA,CAAxB;AAKA,WACC,cAAC,IAAD;AACC,MAAA,KAAK,EAAGmE,cADT;AAEC,MAAA,qBAAqB,EAAGd,kBAFzB;AAGC,MAAA,QAAQ,EAAG,KAAKhC,QAHjB;AAIC,MAAA,MAAM,EAAC;AAJR,OAMC,cAAC,qBAAD,eACQtD,QAAQ,CAAC4G,EAAT,KAAgB,SAAhB,GACJ;AAAEC,MAAAA,qBAAqB,EAAE;AAAzB,KADI,GAEJ,EAHJ;AAGW;AACV,MAAA,kBAAkB,EAAC,YAJpB;AAKC,MAAA,QAAQ,EAAKjD,GAAF,IAAW;AACrB,aAAKb,kBAAL,CAAyBqC,eAAe,IAAIxB,GAA5C;AACA,OAPF;AAQC,MAAA,iBAAiB,EAAG6C,iBARrB;AASC,MAAA,yBAAyB,EAAC,QAT3B;AAUC,MAAA,eAAe,EAAGE,eAVnB;AAWC,MAAA,SAAS,EAAG,KAAKvD,YAAL,EAXb;AAYC,MAAA,aAAa,EAAGzB,UAZjB;AAaC,MAAA,qBAAqB,EAAG,CACvBK,UAAU,IAAInB,MAAM,CAACiG,0BADE,EAEvBN,OAAO,CAAEhD,UAAF,EAAc,QAAd,CAAP,KACG8C,gBAAgB,IAAIC,aAApB,GACC1F,MAAM,CAACkG,iCADR,GAEClG,MAAM,CAACmG,gCAHX,CAFuB,CAbzB;AAoBC,MAAA,KAAK,EAAGtF,SAAS,CAChBC,UADgB,EAEhBC,qBAFgB,EAGhBC,mBAHgB,CApBlB;AAyBC,MAAA,IAAI,EAAGkC,cAzBR;AA0BC,MAAA,YAAY,EAAGxC,QA1BhB;AA2BC,MAAA,UAAU,EAAG,KAAKqB,UA3BnB;AA4BC,MAAA,qBAAqB,EAAG,KAAKS,wBA5B9B;AA6BC,MAAA,4BAA4B,EAC3B,KAAKJ,oCA9BP;AAgCC,MAAA,KAAK,EAAGsC,KAhCT;AAiCC,MAAA,mBAAmB,EAAGC,MAjCvB;AAkCC,MAAA,kBAAkB,EAAG,CAAEC,UAAF,IAAgB,KAAKtC,eAlC3C;AAmCC,MAAA,mBAAmB,EAAG,KAAKL,qBAnC5B;AAoCC,MAAA,QAAQ,EAAGoC;AApCZ,OAND,EA4CG,KAAKhC,4BAAL,MACD,cAAC,IAAD;AACC,MAAA,KAAK,EAAG;AACP2C,QAAAA,gBAAgB,EACfA,gBAAgB,GAChBhF,MAAM,CAACoG,aAAP,CAAqBnB;AAHf;AADT,OAOC,cAAC,iBAAD;AACC,MAAA,YAAY,EAAG,KAAKvD,KAAL,CAAW0B,YAD3B;AAEC,MAAA,cAAc,EAAG,KAAK1B,KAAL,CAAWE,cAF7B;AAGC,MAAA,aAAa;AAHd,MAPD,CA7CF,CADD;AA8DA;;AAEDG,EAAAA,UAAU,QAAuB;AAAA,QAArB;AAAEwB,MAAAA,IAAI,EAAE8C;AAAR,KAAqB;AAChC,UAAM;AACLlB,MAAAA,iBADK;AAELrD,MAAAA,YAFK;AAGLwE,MAAAA,UAHK;AAILzE,MAAAA,aAJK;AAKLuB,MAAAA,YALK;AAMLrC,MAAAA,qBANK;AAOLmC,MAAAA,cAPK;AAQLzB,MAAAA,WARK;AASLoD,MAAAA,cAAc,GAAG7E,MAAM,CAAC8E,YAAP,CAAoBC,SAThC;AAULC,MAAAA,gBAAgB,GAAGhF,MAAM,CAAC8E,YAAP,CAAoBG,UAVlC;AAWL5B,MAAAA;AAXK,QAYF,KAAK3B,KAZT;AAaA,UAAM;AAAEiB,MAAAA;AAAF,QAAiB,KAAKD,KAA5B,CAdgC,CAgBhC;AACA;;AACA,UAAM6D,UAAU,GAAG,CAAC,CAAElD,cAAtB;AACA,UAAMmD,aAAa,GAAGnD,cAAc,IAAI;AACvCoD,MAAAA,YAAY,EAAEpD,cAAc,CAACqD,UADU;AAEvCC,MAAAA,SAAS,EAAEzD,cAAc,CAACC,MAFa;AAGvCyD,MAAAA,SAAS,EAAE1D,cAAc,CAAC2D,OAAf,CAAwBR,QAAxB;AAH4B,KAAxC;AAKA,WACC,cAAC,aAAD;AACC,MAAA,qBAAqB,EAAGtF,qBADzB;AAEC,MAAA,YAAY,EAAGqC,YAFhB;AAGC,MAAA,QAAQ,EAAGiD,QAHZ;AAIC,MAAA,WAAW,EAAG5E,WAJf;AAKC,MAAA,iBAAiB,EAAG0D,iBALrB;AAMC,MAAA,YAAY,EAAGrD,YANhB;AAOC,MAAA,UAAU,EAAGwE,UAPd;AAQC,MAAA,cAAc,EAAGzB,cARlB;AASC,MAAA,gBAAgB,EAAGG,gBATpB;AAUC,MAAA,aAAa,EAAGnD,aAVjB;AAWC,MAAA,4BAA4B,EAC3B,KAAKQ,4BAZP;AAcC,MAAA,UAAU,EAAGM,UAdd;AAeC,MAAA,UAAU,EAAG4D;AAfd,OAgBMC,aAhBN,EADD;AAoBA;;AAEDvE,EAAAA,qBAAqB,GAAG;AACvB,UAAM6E,cAAc,GAAGpH,WAAW,CAAE,gBAAF,CAAlC;AACA,UAAM;AACLkF,MAAAA,UADK;AAELmC,MAAAA,UAAU,GAAG,IAFR;AAGLpF,MAAAA;AAHK,QAIF,KAAKD,KAJT;;AAMA,QAAK,CAAEkD,UAAF,IAAgBmC,UAArB,EAAkC;AACjC,aACC,8BACC,cAAC,wBAAD;AACC,QAAA,kBAAkB,EAAGhH,EAAE,CAAE,qBAAF,CADxB;AAEC,QAAA,MAAM,EAAGA,EAAE,CAAE,qBAAF,CAFZ;AAGC,QAAA,OAAO,EAAG,MAAM;AACf,eAAKoC,mBAAL,CAA0B2E,cAA1B;AACA;AALF,SAOC,cAAC,IAAD;AAAM,QAAA,KAAK,EAAG9G,MAAM,CAACgH;AAArB,QAPD,CADD,CADD;AAaA,KAdD,MAcO,IAAKrF,oBAAL,EAA4B;AAClC,aAAOA,oBAAoB,EAA3B;AACA;;AACD,WAAO,IAAP;AACA;;AAhUuC;AAmUzC,eAAenC,OAAO,CAAE,CACvBD,UAAU,CACT,CAAE0H,MAAF,YAAgE;AAAA,MAAtD;AAAE7D,IAAAA,YAAF;AAAgB8D,IAAAA,WAAhB;AAA6BC,IAAAA;AAA7B,GAAsD;AAC/D,QAAM;AACLC,IAAAA,aADK;AAELC,IAAAA,6BAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,wBAJK;AAKLtE,IAAAA,4BALK;AAMLuE,IAAAA;AANK,MAOFP,MAAM,CAAExG,gBAAF,CAPV;AASA,QAAMM,qBAAqB,GAAGmG,WAAW,KAAK,YAA9C;AAEA,QAAMO,qBAAqB,GAAGF,wBAAwB,EAAtD;AAEA,MAAIrE,cAAc,GAAGoE,aAAa,CAAElE,YAAF,CAAlC,CAd+D,CAe/D;;AACA,MAAK+D,iBAAL,EAAyB;AACxBjE,IAAAA,cAAc,GAAGiE,iBAAiB,CAAEjE,cAAF,CAAlC;AACA;;AAED,QAAM;AAAEQ,IAAAA;AAAF,MAAe8D,WAAW,EAAhC;AACA,QAAM5C,UAAU,GAAG4C,WAAW,GAAGE,QAAjC;AAEA,QAAM5E,UAAU,GAAGsE,aAAa,EAAhC;AACA,QAAMO,WAAW,GAAGN,6BAA6B,CAChDI,qBADgD,CAAjD;AAIA,QAAMvC,wBAAwB,GAC7B,CAAC,CAAEuC,qBAAH,IAA4B,CAAC,CAAEL,aAAa,CAAEO,WAAF,CAD7C;AAEA,QAAMzD,KAAK,GAAGsD,WAAW,GAAGtD,KAA5B;AAEA,SAAO;AACNhB,IAAAA,cADM;AAENJ,IAAAA,UAFM;AAGNG,IAAAA,4BAA4B,EAC3B9D,QAAQ,CAAC4G,EAAT,KAAgB,KAAhB,IAAyB9C,4BAA4B,EAJhD;AAKN2B,IAAAA,UALM;AAMN9D,IAAAA,UAAU,EAAEsC,YAAY,KAAKwE,SANvB;AAON1C,IAAAA,wBAPM;AAQNnE,IAAAA,qBARM;AASN2C,IAAAA,QATM;AAUNQ,IAAAA;AAVM,GAAP;AAYA,CA7CQ,CADa,EAgDvB5E,YAAY,CAAIuI,QAAF,IAAgB;AAC7B,QAAM;AAAEhF,IAAAA,WAAF;AAAeiF,IAAAA,YAAf;AAA6BrD,IAAAA;AAA7B,MACLoD,QAAQ,CAAEpH,gBAAF,CADT;AAGA,SAAO;AACNgE,IAAAA,kBADM;AAEN5B,IAAAA,WAFM;AAGNiF,IAAAA;AAHM,GAAP;AAKA,CATW,CAhDW,EA0DvBrI,wBA1DuB,CAAF,CAAP,CA2DV4B,SA3DU,CAAf;;AA6DA,MAAM0G,kBAAN,SAAiC1I,SAAjC,CAA2C;AAC1C4E,EAAAA,MAAM,GAAG;AACR,UAAM;AACL+D,MAAAA,wBADK;AAEL5E,MAAAA,YAFK;AAGLxB,MAAAA,cAHK;AAILD,MAAAA;AAJK,QAKF,KAAKD,KALT;;AAOA,QAAKC,oBAAoB,IAAIC,cAAc,KAAK,KAAhD,EAAwD;AACvD,aAAO,IAAP;AACA;;AAED,WACC,cAAC,IAAD;AAAM,MAAA,KAAK,EAAG5B,MAAM,CAACiI;AAArB,OACC,cAAC,mBAAD;AACC,MAAA,KAAK,EACJrG,cAAc,GACX/B,eAAe,CAACqI,UAAhB,CAA2BC,IADhB,GAEXP;AAJL,OAOC,cAAC,iBAAD;AACC,MAAA,YAAY,EAAGxE,YADhB;AAEC,MAAA,cAAc,EAAGxB,cAFlB;AAGC,MAAA,aAAa,EAAGoG;AAHjB,MAPD,CADD,CADD;AAiBA;;AA9ByC;;AAiC3C,MAAMI,yBAAyB,GAAG5I,OAAO,CAAE,CAC1CD,UAAU,CAAE,CAAE0H,MAAF,YAA6C;AAAA,MAAnC;AAAE7D,IAAAA,YAAF;AAAgB8D,IAAAA;AAAhB,GAAmC;AACxD,QAAM;AACLI,IAAAA,aADK;AAELe,IAAAA,sBAFK;AAGLpF,IAAAA;AAHK,MAIFgE,MAAM,CAAExG,gBAAF,CAJV;AAMA,QAAMM,qBAAqB,GAAGmG,WAAW,KAAK,YAA9C;AACA,QAAMhE,cAAc,GAAGoE,aAAa,CAAElE,YAAF,CAApC;AACA,QAAMkF,cAAc,GAAGD,sBAAsB,EAA7C;AACA,QAAME,4BAA4B,GAAGtF,4BAA4B,EAAjE;AACA,QAAM+E,wBAAwB,GAC7B,CAAEjH,qBAAF,IACAwH,4BADA,IAEAD,cAAc,CAAClF,YAAf,KAAgCA,YAFhC,MAGA;AACEF,EAAAA,cAAc,CAACC,MAAf,KAA0B,CAA1B,IACD;AACA,GAAED,cAAc,CAAEoF,cAAc,CAACE,KAAjB,CANjB,CADD;AASA,SAAO;AACNR,IAAAA;AADM,GAAP;AAGA,CAvBS,CADgC,CAAF,CAAP,CAyB7BD,kBAzB6B,CAAlC","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Platform, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\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 class BlockList extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.extraData = {\n\t\t\tparentWidth: this.props.parentWidth,\n\t\t\trenderFooterAppender: this.props.renderFooterAppender,\n\t\t\trenderAppender: this.props.renderAppender,\n\t\t\tonDeleteBlock: this.props.onDeleteBlock,\n\t\t\tcontentStyle: this.props.contentStyle,\n\t\t};\n\t\tthis.renderItem = this.renderItem.bind( this );\n\t\tthis.renderBlockListFooter = this.renderBlockListFooter.bind( this );\n\t\tthis.scrollViewInnerRef = this.scrollViewInnerRef.bind( this );\n\t\tthis.addBlockToEndOfPost = this.addBlockToEndOfPost.bind( this );\n\t\tthis.shouldFlatListPreventAutomaticScroll =\n\t\t\tthis.shouldFlatListPreventAutomaticScroll.bind( this );\n\t\tthis.shouldShowInnerBlockAppender =\n\t\t\tthis.shouldShowInnerBlockAppender.bind( this );\n\t\tthis.renderEmptyList = this.renderEmptyList.bind( this );\n\t\tthis.getExtraData = this.getExtraData.bind( this );\n\t\tthis.getCellRendererComponent =\n\t\t\tthis.getCellRendererComponent.bind( this );\n\n\t\tthis.onLayout = this.onLayout.bind( this );\n\n\t\tthis.state = {\n\t\t\tblockWidth: this.props.blockWidth || 0,\n\t\t};\n\t}\n\n\taddBlockToEndOfPost( newBlock ) {\n\t\tthis.props.insertBlock( newBlock, this.props.blockCount );\n\t}\n\n\tscrollViewInnerRef( ref ) {\n\t\tthis.scrollViewRef = ref;\n\t}\n\n\tshouldFlatListPreventAutomaticScroll() {\n\t\treturn this.props.isBlockInsertionPointVisible;\n\t}\n\n\tshouldShowInnerBlockAppender() {\n\t\tconst { blockClientIds, renderAppender } = this.props;\n\t\treturn renderAppender && blockClientIds.length > 0;\n\t}\n\n\trenderEmptyList() {\n\t\treturn (\n\t\t\t<EmptyListComponentCompose\n\t\t\t\trootClientId={ this.props.rootClientId }\n\t\t\t\trenderAppender={ this.props.renderAppender }\n\t\t\t\trenderFooterAppender={ this.props.renderFooterAppender }\n\t\t\t/>\n\t\t);\n\t}\n\n\tgetExtraData() {\n\t\tconst {\n\t\t\tparentWidth,\n\t\t\trenderFooterAppender,\n\t\t\tonDeleteBlock,\n\t\t\tcontentStyle,\n\t\t\trenderAppender,\n\t\t\tgridProperties,\n\t\t} = this.props;\n\t\tconst { blockWidth } = this.state;\n\t\tif (\n\t\t\tthis.extraData.parentWidth !== parentWidth ||\n\t\t\tthis.extraData.renderFooterAppender !== renderFooterAppender ||\n\t\t\tthis.extraData.onDeleteBlock !== onDeleteBlock ||\n\t\t\tthis.extraData.contentStyle !== contentStyle ||\n\t\t\tthis.extraData.renderAppender !== renderAppender ||\n\t\t\tthis.extraData.blockWidth !== blockWidth ||\n\t\t\tthis.extraData.gridProperties !== gridProperties\n\t\t) {\n\t\t\tthis.extraData = {\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 this.extraData;\n\t}\n\n\tgetCellRendererComponent( { children, item, onLayout } ) {\n\t\tconst { rootClientId } = this.props;\n\t\treturn (\n\t\t\t<BlockListItemCell\n\t\t\t\tchildren={ children }\n\t\t\t\tclientId={ item }\n\t\t\t\tonLayout={ onLayout }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t/>\n\t\t);\n\t}\n\n\tonLayout( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst { blockWidth } = this.state;\n\t\tconst { isRootList, maxWidth } = this.props;\n\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( isRootList && blockWidth !== layoutWidth ) {\n\t\t\tthis.setState( {\n\t\t\t\tblockWidth: Math.min( layoutWidth, maxWidth ),\n\t\t\t} );\n\t\t} else if ( ! isRootList && ! blockWidth ) {\n\t\t\tthis.setState( { blockWidth: Math.min( layoutWidth, maxWidth ) } );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { isRootList, isRTL } = this.props;\n\t\t// Use of Context to propagate the main scroll ref to its children e.g InnerBlocks.\n\t\tconst blockList = isRootList ? (\n\t\t\t<BlockListProvider\n\t\t\t\tvalue={ {\n\t\t\t\t\t...DEFAULT_BLOCK_LIST_CONTEXT,\n\t\t\t\t\tscrollRef: this.scrollViewRef,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<BlockDraggableWrapper isRTL={ isRTL }>\n\t\t\t\t\t{ ( { onScroll } ) => this.renderList( { onScroll } ) }\n\t\t\t\t</BlockDraggableWrapper>\n\t\t\t</BlockListProvider>\n\t\t) : (\n\t\t\t<BlockListConsumer>\n\t\t\t\t{ ( { scrollRef } ) =>\n\t\t\t\t\tthis.renderList( {\n\t\t\t\t\t\tparentScrollRef: scrollRef,\n\t\t\t\t\t} )\n\t\t\t\t}\n\t\t\t</BlockListConsumer>\n\t\t);\n\n\t\treturn blockList;\n\t}\n\n\trenderList( extraProps = {} ) {\n\t\tconst {\n\t\t\tclearSelectedBlock,\n\t\t\tblockClientIds,\n\t\t\ttitle,\n\t\t\theader,\n\t\t\tisReadOnly,\n\t\t\tisRootList,\n\t\t\thorizontal,\n\t\t\tmarginVertical = styles.defaultBlock.marginTop,\n\t\t\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\t\t\tisFloatingToolbarVisible,\n\t\t\tisStackedHorizontally,\n\t\t\thorizontalAlignment,\n\t\t\tcontentResizeMode,\n\t\t\tblockWidth,\n\t\t} = this.props;\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={ this.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\tthis.scrollViewInnerRef( 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={ this.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\trenderItem={ this.renderItem }\n\t\t\t\t\tCellRendererComponent={ this.getCellRendererComponent }\n\t\t\t\t\tshouldPreventAutomaticScroll={\n\t\t\t\t\t\tthis.shouldFlatListPreventAutomaticScroll\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={ ! isReadOnly && this.renderEmptyList }\n\t\t\t\t\tListFooterComponent={ this.renderBlockListFooter }\n\t\t\t\t\tonScroll={ onScroll }\n\t\t\t\t/>\n\t\t\t\t{ this.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={ this.props.rootClientId }\n\t\t\t\t\t\t\trenderAppender={ this.props.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\trenderItem( { item: clientId } ) {\n\t\tconst {\n\t\t\tcontentResizeMode,\n\t\t\tcontentStyle,\n\t\t\tonAddBlock,\n\t\t\tonDeleteBlock,\n\t\t\trootClientId,\n\t\t\tisStackedHorizontally,\n\t\t\tblockClientIds,\n\t\t\tparentWidth,\n\t\t\tmarginVertical = styles.defaultBlock.marginTop,\n\t\t\tmarginHorizontal = styles.defaultBlock.marginLeft,\n\t\t\tgridProperties,\n\t\t} = this.props;\n\t\tconst { blockWidth } = this.state;\n\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\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={\n\t\t\t\t\tthis.shouldShowInnerBlockAppender\n\t\t\t\t}\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\trenderBlockListFooter() {\n\t\tconst paragraphBlock = createBlock( 'core/paragraph' );\n\t\tconst {\n\t\t\tisReadOnly,\n\t\t\twithFooter = true,\n\t\t\trenderFooterAppender,\n\t\t} = this.props;\n\n\t\tif ( ! isReadOnly && withFooter ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\taccessibilityLabel={ __( 'Add paragraph block' ) }\n\t\t\t\t\t\ttestID={ __( 'Add paragraph block' ) }\n\t\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\t\tthis.addBlockToEndOfPost( paragraphBlock );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t<View style={ styles.blockListFooter } />\n\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t</>\n\t\t\t);\n\t\t} else if ( renderFooterAppender ) {\n\t\t\treturn renderFooterAppender();\n\t\t}\n\t\treturn null;\n\t}\n}\n\nexport default compose( [\n\twithSelect(\n\t\t( select, { rootClientId, orientation, filterInnerBlocks } ) => {\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 isStackedHorizontally = orientation === 'horizontal';\n\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tlet blockClientIds = 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\tblockClientIds = filterInnerBlocks( blockClientIds );\n\t\t\t}\n\n\t\t\tconst { maxWidth } = getSettings();\n\t\t\tconst isReadOnly = getSettings().readOnly;\n\n\t\t\tconst blockCount = getBlockCount();\n\t\t\tconst rootBlockId = getBlockHierarchyRootClientId(\n\t\t\t\tselectedBlockClientId\n\t\t\t);\n\n\t\t\tconst isFloatingToolbarVisible =\n\t\t\t\t!! selectedBlockClientId && !! getBlockCount( rootBlockId );\n\t\t\tconst isRTL = getSettings().isRTL;\n\n\t\t\treturn {\n\t\t\t\tblockClientIds,\n\t\t\t\tblockCount,\n\t\t\t\tisBlockInsertionPointVisible:\n\t\t\t\t\tPlatform.OS === 'ios' && isBlockInsertionPointVisible(),\n\t\t\t\tisReadOnly,\n\t\t\t\tisRootList: rootClientId === undefined,\n\t\t\t\tisFloatingToolbarVisible,\n\t\t\t\tisStackedHorizontally,\n\t\t\t\tmaxWidth,\n\t\t\t\tisRTL,\n\t\t\t};\n\t\t}\n\t),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { insertBlock, replaceBlock, clearSelectedBlock } =\n\t\t\tdispatch( blockEditorStore );\n\n\t\treturn {\n\t\t\tclearSelectedBlock,\n\t\t\tinsertBlock,\n\t\t\treplaceBlock,\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( BlockList );\n\nclass EmptyListComponent extends Component {\n\trender() {\n\t\tconst {\n\t\t\tshouldShowInsertionPoint,\n\t\t\trootClientId,\n\t\t\trenderAppender,\n\t\t\trenderFooterAppender,\n\t\t} = this.props;\n\n\t\tif ( renderFooterAppender || renderAppender === false ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={ styles.defaultAppender }>\n\t\t\t\t<ReadableContentView\n\t\t\t\t\talign={\n\t\t\t\t\t\trenderAppender\n\t\t\t\t\t\t\t? WIDE_ALIGNMENTS.alignments.full\n\t\t\t\t\t\t\t: undefined\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={ shouldShowInsertionPoint }\n\t\t\t\t\t/>\n\t\t\t\t</ReadableContentView>\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nconst EmptyListComponentCompose = compose( [\n\twithSelect( ( select, { rootClientId, orientation } ) => {\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\t\tconst shouldShowInsertionPoint =\n\t\t\t! isStackedHorizontally &&\n\t\t\tblockInsertionPointIsVisible &&\n\t\t\tinsertionPoint.rootClientId === rootClientId &&\n\t\t\t// If list is empty, show the insertion point (via the default appender)\n\t\t\t( blockClientIds.length === 0 ||\n\t\t\t\t// Or if the insertion point is right before the denoted block.\n\t\t\t\t! blockClientIds[ insertionPoint.index ] );\n\n\t\treturn {\n\t\t\tshouldShowInsertionPoint,\n\t\t};\n\t} ),\n] )( EmptyListComponent );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/index.native.js"],"names":["View","Platform","TouchableWithoutFeedback","useRef","useState","useSelect","useDispatch","createBlock","KeyboardAwareFlatList","WIDE_ALIGNMENTS","alignmentHelpers","__","styles","BlockListAppender","BlockListItem","BlockListItemCell","BlockListProvider","DEFAULT_BLOCK_LIST_CONTEXT","BlockDraggableWrapper","useEditorWrapperStyles","store","blockEditorStore","identity","x","stylesMemo","getStyles","isStackedHorizontally","horizontalAlignment","styleName","computedStyles","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","selectedBlockClientId","rootBlockId","blockOrder","isRTLSetting","maxWidthSetting","readOnly","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","extraScrollHeight","height","scrollRef","onScroll","removeClippedSubviews","ref","horizontalContentContainer","horizontalContentContainerStretch","horizontalContentContainerCenter","map","currentClientId","innerAppender","Footer","paragraphBlock","blockListFooter","EmptyList","shouldShowInsertionPoint","getBlockInsertionPoint","insertionPoint","align","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"]}
|
|
@@ -18,12 +18,14 @@ import styles from './style.scss';
|
|
|
18
18
|
|
|
19
19
|
const BlockInsertionPoint = _ref => {
|
|
20
20
|
let {
|
|
21
|
-
getStylesFromColorScheme
|
|
21
|
+
getStylesFromColorScheme,
|
|
22
|
+
testID
|
|
22
23
|
} = _ref;
|
|
23
24
|
const lineStyle = getStylesFromColorScheme(styles.lineStyleAddHere, styles.lineStyleAddHereDark);
|
|
24
25
|
const labelStyle = getStylesFromColorScheme(styles.labelStyleAddHere, styles.labelStyleAddHereDark);
|
|
25
26
|
return createElement(View, {
|
|
26
|
-
style: styles.containerStyleAddHere
|
|
27
|
+
style: styles.containerStyleAddHere,
|
|
28
|
+
testID: testID
|
|
27
29
|
}, createElement(View, {
|
|
28
30
|
style: lineStyle
|
|
29
31
|
}), createElement(Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/insertion-point.native.js"],"names":["Text","View","__","withPreferredColorScheme","styles","BlockInsertionPoint","getStylesFromColorScheme","lineStyle","lineStyleAddHere","lineStyleAddHereDark","labelStyle","labelStyleAddHere","labelStyleAddHereDark","containerStyleAddHere"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,IAAf,QAA2B,cAA3B;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,wBAAT,QAAyC,oBAAzC;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;;AAEA,MAAMC,mBAAmB,GAAG,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/insertion-point.native.js"],"names":["Text","View","__","withPreferredColorScheme","styles","BlockInsertionPoint","getStylesFromColorScheme","testID","lineStyle","lineStyleAddHere","lineStyleAddHereDark","labelStyle","labelStyleAddHere","labelStyleAddHereDark","containerStyleAddHere"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,IAAf,QAA2B,cAA3B;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,wBAAT,QAAyC,oBAAzC;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;;AAEA,MAAMC,mBAAmB,GAAG,QAA4C;AAAA,MAA1C;AAAEC,IAAAA,wBAAF;AAA4BC,IAAAA;AAA5B,GAA0C;AACvE,QAAMC,SAAS,GAAGF,wBAAwB,CACzCF,MAAM,CAACK,gBADkC,EAEzCL,MAAM,CAACM,oBAFkC,CAA1C;AAIA,QAAMC,UAAU,GAAGL,wBAAwB,CAC1CF,MAAM,CAACQ,iBADmC,EAE1CR,MAAM,CAACS,qBAFmC,CAA3C;AAKA,SACC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGT,MAAM,CAACU,qBAArB;AAA6C,IAAA,MAAM,EAAGP;AAAtD,KACC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGC;AAAd,IADD,EAEC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGG;AAAd,KAA6BT,EAAE,CAAE,gBAAF,CAA/B,CAFD,EAGC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGM;AAAd,IAHD,CADD;AAOA,CAjBD;;AAmBA,eAAeL,wBAAwB,CAAEE,mBAAF,CAAvC","sourcesContent":["/**\n * External dependencies\n */\nimport { Text, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { withPreferredColorScheme } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst BlockInsertionPoint = ( { getStylesFromColorScheme, testID } ) => {\n\tconst lineStyle = getStylesFromColorScheme(\n\t\tstyles.lineStyleAddHere,\n\t\tstyles.lineStyleAddHereDark\n\t);\n\tconst labelStyle = getStylesFromColorScheme(\n\t\tstyles.labelStyleAddHere,\n\t\tstyles.labelStyleAddHereDark\n\t);\n\n\treturn (\n\t\t<View style={ styles.containerStyleAddHere } testID={ testID }>\n\t\t\t<View style={ lineStyle }></View>\n\t\t\t<Text style={ labelStyle }>{ __( 'ADD BLOCK HERE' ) }</Text>\n\t\t\t<View style={ lineStyle }></View>\n\t\t</View>\n\t);\n};\n\nexport default withPreferredColorScheme( BlockInsertionPoint );\n"]}
|
|
@@ -17,7 +17,7 @@ import warning from '@wordpress/warning';
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
import useMovingAnimation from '../../use-moving-animation';
|
|
20
|
-
import { BlockListBlockContext } from '../block';
|
|
20
|
+
import { BlockListBlockContext } from '../block-list-block-context';
|
|
21
21
|
import { useFocusFirstElement } from './use-focus-first-element';
|
|
22
22
|
import { useIsHovered } from './use-is-hovered';
|
|
23
23
|
import { useBlockEditContext } from '../../block-edit/context';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/index.js"],"names":["classnames","useContext","__","sprintf","__unstableGetBlockProps","getBlockProps","getBlockType","store","blocksStore","useMergeRefs","useDisabled","useSelect","warning","useMovingAnimation","BlockListBlockContext","useFocusFirstElement","useIsHovered","useBlockEditContext","useBlockClassNames","useBlockDefaultClassName","useBlockCustomClassName","useBlockMovingModeClassNames","useFocusHandler","useEventHandlers","useNavModeExit","useBlockRefProvider","useIntersectionObserver","blockEditorStore","useBlockOverlayActive","BLOCK_ANIMATION_THRESHOLD","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isPartOfSelection","adjustScrolling","enableAnimation","select","getBlockAttributes","getBlockIndex","getBlockMode","getBlockName","isTyping","getGlobalBlockCount","isBlockSelected","isBlockMultiSelected","isAncestorMultiSelected","isFirstMultiSelectedBlock","getActiveBlockVariation","isSelected","isPartOfMultiSelection","blockName","blockType","attributes","match","apiVersion","title","hasOverlay","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","blockEditContext","tabIndex","id","role","style","save"],"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":["classnames","useContext","__","sprintf","__unstableGetBlockProps","getBlockProps","getBlockType","store","blocksStore","useMergeRefs","useDisabled","useSelect","warning","useMovingAnimation","BlockListBlockContext","useFocusFirstElement","useIsHovered","useBlockEditContext","useBlockClassNames","useBlockDefaultClassName","useBlockCustomClassName","useBlockMovingModeClassNames","useFocusHandler","useEventHandlers","useNavModeExit","useBlockRefProvider","useIntersectionObserver","blockEditorStore","useBlockOverlayActive","BLOCK_ANIMATION_THRESHOLD","useBlockProps","props","__unstableIsHtml","clientId","className","wrapperProps","isAligned","index","mode","name","blockApiVersion","blockTitle","isPartOfSelection","adjustScrolling","enableAnimation","select","getBlockAttributes","getBlockIndex","getBlockMode","getBlockName","isTyping","getGlobalBlockCount","isBlockSelected","isBlockMultiSelected","isAncestorMultiSelected","isFirstMultiSelectedBlock","getActiveBlockVariation","isSelected","isPartOfMultiSelection","blockName","blockType","attributes","match","apiVersion","title","hasOverlay","blockLabel","htmlSuffix","mergedRefs","ref","triggerAnimationOnChange","isDisabled","blockEditContext","tabIndex","id","role","style","save"],"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"]}
|
|
@@ -11,6 +11,7 @@ import { isRTL } from '@wordpress/i18n';
|
|
|
11
11
|
|
|
12
12
|
import { store as blockEditorStore } from '../../store';
|
|
13
13
|
import { InsertionPointOpenRef } from '../block-tools/insertion-point';
|
|
14
|
+
import { unlock } from '../../lock-unlock';
|
|
14
15
|
export function useInBetweenInserter() {
|
|
15
16
|
const openRef = useContext(InsertionPointOpenRef);
|
|
16
17
|
const isInBetweenInserterDisabled = useSelect(select => select(blockEditorStore).getSettings().isDistractionFree || select(blockEditorStore).__unstableGetEditorMode() === 'zoom-out', []);
|
|
@@ -22,8 +23,9 @@ export function useInBetweenInserter() {
|
|
|
22
23
|
isMultiSelecting,
|
|
23
24
|
getSelectedBlockClientIds,
|
|
24
25
|
getTemplateLock,
|
|
25
|
-
__unstableIsWithinBlockOverlay
|
|
26
|
-
|
|
26
|
+
__unstableIsWithinBlockOverlay,
|
|
27
|
+
getBlockEditingMode
|
|
28
|
+
} = unlock(useSelect(blockEditorStore));
|
|
27
29
|
const {
|
|
28
30
|
showInsertionPoint,
|
|
29
31
|
hideInsertionPoint
|
|
@@ -59,10 +61,9 @@ export function useInBetweenInserter() {
|
|
|
59
61
|
if (!event.target.classList.contains('is-root-container')) {
|
|
60
62
|
const blockElement = !!event.target.getAttribute('data-block') ? event.target : event.target.closest('[data-block]');
|
|
61
63
|
rootClientId = blockElement.getAttribute('data-block');
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
+
}
|
|
64
65
|
|
|
65
|
-
if (getTemplateLock(rootClientId)) {
|
|
66
|
+
if (getTemplateLock(rootClientId) || getBlockEditingMode(rootClientId) === 'disabled') {
|
|
66
67
|
return;
|
|
67
68
|
}
|
|
68
69
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"names":["useRefEffect","useSelect","useDispatch","useContext","isRTL","store","blockEditorStore","InsertionPointOpenRef","useInBetweenInserter","openRef","isInBetweenInserterDisabled","select","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":"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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';\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} = 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\t// Don't set the insertion point if the template is locked.\n\t\t\t\tif ( getTemplateLock( rootClientId ) ) {\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"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-in-between-inserter.js"],"names":["useRefEffect","useSelect","useDispatch","useContext","isRTL","store","blockEditorStore","InsertionPointOpenRef","unlock","useInBetweenInserter","openRef","isInBetweenInserterDisabled","select","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":"AAAA;AACA;AACA;AACA,SAASA,YAAT,QAA6B,oBAA7B;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,KAAT,QAAsB,iBAAtB;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,qBAAT,QAAsC,gCAAtC;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,OAAO,SAASC,oBAAT,GAAgC;AACtC,QAAMC,OAAO,GAAGP,UAAU,CAAEI,qBAAF,CAA1B;AACA,QAAMI,2BAA2B,GAAGV,SAAS,CAC1CW,MAAF,IACCA,MAAM,CAAEN,gBAAF,CAAN,CAA2BO,WAA3B,GAAyCC,iBAAzC,IACAF,MAAM,CAAEN,gBAAF,CAAN,CAA2BS,uBAA3B,OAAyD,UAHd,EAI5C,EAJ4C,CAA7C;AAMA,QAAM;AACLC,IAAAA,oBADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,4BAJK;AAKLC,IAAAA,gBALK;AAMLC,IAAAA,yBANK;AAOLC,IAAAA,eAPK;AAQLC,IAAAA,8BARK;AASLC,IAAAA;AATK,MAUFhB,MAAM,CAAEP,SAAS,CAAEK,gBAAF,CAAX,CAVV;AAWA,QAAM;AAAEmB,IAAAA,kBAAF;AAAsBC,IAAAA;AAAtB,MACLxB,WAAW,CAAEI,gBAAF,CADZ;AAGA,SAAON,YAAY,CAChB2B,IAAF,IAAY;AACX,QAAKhB,2BAAL,EAAmC;AAClC;AACA;;AAED,aAASiB,WAAT,CAAsBC,KAAtB,EAA8B;AAAA;;AAC7B,UAAKnB,OAAO,CAACoB,OAAb,EAAuB;AACtB;AACA,OAH4B,CAK7B;;;AACA,UAAKD,KAAK,CAACE,MAAN,CAAaC,QAAb,KAA0BH,KAAK,CAACE,MAAN,CAAaE,SAA5C,EAAwD;AACvD;AACA;;AAED,UAAKb,gBAAgB,EAArB,EAA0B;AACzB;AACA;;AAED,UACC,CAAES,KAAK,CAACE,MAAN,CAAaG,SAAb,CAAuBC,QAAvB,CACD,iCADC,CADH,EAIE;AACDT,QAAAA,kBAAkB;AAClB;AACA;;AAED,UAAIU,YAAJ;;AACA,UACC,CAAEP,KAAK,CAACE,MAAN,CAAaG,SAAb,CAAuBC,QAAvB,CAAiC,mBAAjC,CADH,EAEE;AACD,cAAME,YAAY,GAAG,CAAC,CAAER,KAAK,CAACE,MAAN,CAAaO,YAAb,CACvB,YADuB,CAAH,GAGlBT,KAAK,CAACE,MAHY,GAIlBF,KAAK,CAACE,MAAN,CAAaQ,OAAb,CAAsB,cAAtB,CAJH;AAKAH,QAAAA,YAAY,GAAGC,YAAY,CAACC,YAAb,CAA2B,YAA3B,CAAf;AACA;;AAED,UACChB,eAAe,CAAEc,YAAF,CAAf,IACAZ,mBAAmB,CAAEY,YAAF,CAAnB,KAAwC,UAFzC,EAGE;AACD;AACA;;AAED,YAAMI,WAAW,GAChB,0BAAAxB,oBAAoB,CAAEoB,YAAF,CAApB,gFAAsCI,WAAtC,KACA,UAFD;AAGA,YAAMC,SAAS,GAAGZ,KAAK,CAACa,OAAxB;AACA,YAAMC,UAAU,GAAGd,KAAK,CAACe,OAAzB;AAEA,YAAMC,QAAQ,GAAGC,KAAK,CAACC,IAAN,CAAYlB,KAAK,CAACE,MAAN,CAAac,QAAzB,CAAjB;AACA,UAAIG,OAAO,GAAGH,QAAQ,CAACI,IAAT,CAAiBC,OAAF,IAAe;AAC3C,cAAMC,WAAW,GAAGD,OAAO,CAACE,qBAAR,EAApB;AACA,eACGF,OAAO,CAAChB,SAAR,CAAkBC,QAAlB,CAA4B,UAA5B,KACDK,WAAW,KAAK,UADf,IAEDW,WAAW,CAACE,GAAZ,GAAkBZ,SAFnB,IAGES,OAAO,CAAChB,SAAR,CAAkBC,QAAlB,CAA4B,UAA5B,KACDK,WAAW,KAAK,YADf,KAECpC,KAAK,KACJ+C,WAAW,CAACG,KAAZ,GAAoBX,UADhB,GAEJQ,WAAW,CAACI,IAAZ,GAAmBZ,UAJrB,CAJH;AAUA,OAZa,CAAd;;AAcA,UAAK,CAAEK,OAAP,EAAiB;AAChBtB,QAAAA,kBAAkB;AAClB;AACA,OAlE4B,CAoE7B;AACA;;;AACA,UAAK,CAAEsB,OAAO,CAACQ,EAAf,EAAoB;AACnBR,QAAAA,OAAO,GAAGA,OAAO,CAACS,iBAAlB;;AAEA,YAAK,CAAET,OAAP,EAAiB;AAChBtB,UAAAA,kBAAkB;AAClB;AACA;AACD,OA7E4B,CA+E7B;AACA;;;AACA,YAAMgC,QAAQ,GAAGV,OAAO,CAACQ,EAAR,CAAWG,KAAX,CAAkB,SAASC,MAA3B,CAAjB;;AACA,UACC,CAAEF,QAAF,IACAnC,8BAA8B,CAAEmC,QAAF,CAF/B,EAGE;AACD;AACA,OAvF4B,CAyF7B;AACA;;;AACA,UAAKrC,yBAAyB,GAAGwC,QAA5B,CAAsCH,QAAtC,CAAL,EAAwD;AACvD;AACA;;AACD,YAAMI,WAAW,GAAGd,OAAO,CAACI,qBAAR,EAApB;;AAEA,UACGZ,WAAW,KAAK,YAAhB,KACCX,KAAK,CAACa,OAAN,GAAgBoB,WAAW,CAACC,MAA5B,IACDlC,KAAK,CAACa,OAAN,GAAgBoB,WAAW,CAACT,GAF5B,CAAF,IAGEb,WAAW,KAAK,UAAhB,KACCX,KAAK,CAACe,OAAN,GAAgBkB,WAAW,CAACR,KAA5B,IACDzB,KAAK,CAACe,OAAN,GAAgBkB,WAAW,CAACP,IAF5B,CAJH,EAOE;AACD7B,QAAAA,kBAAkB;AAClB;AACA;;AAED,YAAMsC,KAAK,GAAG9C,aAAa,CAAEwC,QAAF,CAA3B,CA5G6B,CA8G7B;AACA;;AACA,UAAKM,KAAK,KAAK,CAAf,EAAmB;AAClBtC,QAAAA,kBAAkB;AAClB;AACA;;AAEDD,MAAAA,kBAAkB,CAAEW,YAAF,EAAgB4B,KAAhB,EAAuB;AACxCC,QAAAA,sBAAsB,EAAE;AADgB,OAAvB,CAAlB;AAGA;;AAEDtC,IAAAA,IAAI,CAACuC,gBAAL,CAAuB,WAAvB,EAAoCtC,WAApC;AAEA,WAAO,MAAM;AACZD,MAAAA,IAAI,CAACwC,mBAAL,CAA0B,WAA1B,EAAuCvC,WAAvC;AACA,KAFD;AAGA,GArIiB,EAsIlB,CACClB,OADD,EAECM,oBAFD,EAGCC,oBAHD,EAICC,aAJD,EAKCC,4BALD,EAMCC,gBAND,EAOCK,kBAPD,EAQCC,kBARD,EASCL,yBATD,EAUCV,2BAVD,CAtIkB,CAAnB;AAmJA","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"]}
|
|
@@ -82,6 +82,18 @@ function BlockListAppender(_ref2) {
|
|
|
82
82
|
tagName: TagName = 'div'
|
|
83
83
|
} = _ref2;
|
|
84
84
|
const appender = useAppender(rootClientId, renderAppender);
|
|
85
|
+
const isDragOver = useSelect(select => {
|
|
86
|
+
const {
|
|
87
|
+
getBlockInsertionPoint,
|
|
88
|
+
isBlockInsertionPointVisible,
|
|
89
|
+
getBlockCount
|
|
90
|
+
} = select(blockEditorStore);
|
|
91
|
+
const insertionPoint = getBlockInsertionPoint(); // Ideally we should also check for `isDragging` but currently it
|
|
92
|
+
// requires a lot more setup. We can revisit this once we refactor
|
|
93
|
+
// the DnD utility hooks.
|
|
94
|
+
|
|
95
|
+
return isBlockInsertionPointVisible() && rootClientId === (insertionPoint === null || insertionPoint === void 0 ? void 0 : insertionPoint.rootClientId) && getBlockCount(rootClientId) === 0;
|
|
96
|
+
}, [rootClientId]);
|
|
85
97
|
|
|
86
98
|
if (!appender) {
|
|
87
99
|
return null;
|
|
@@ -97,7 +109,9 @@ function BlockListAppender(_ref2) {
|
|
|
97
109
|
// See: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#Clicking_and_focus
|
|
98
110
|
, {
|
|
99
111
|
tabIndex: -1,
|
|
100
|
-
className: classnames('block-list-appender wp-block', className
|
|
112
|
+
className: classnames('block-list-appender wp-block', className, {
|
|
113
|
+
'is-drag-over': isDragOver
|
|
114
|
+
}) // Needed in case the whole editor is content editable (for multi
|
|
101
115
|
// selection). It fixes an edge case where ArrowDown and ArrowRight
|
|
102
116
|
// should collapse the selection to the end of that selection and
|
|
103
117
|
// not into the appender.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["classnames","useSelect","getDefaultBlockName","DefaultBlockAppender","ButtonBlockAppender","store","blockEditorStore","DefaultAppender","rootClientId","canInsertDefaultBlock","select","canInsertBlockType","useAppender","CustomAppender","hideInserter","isParentSelected","getTemplateLock","getSelectedBlockClientId","__unstableGetEditorMode","selectedBlockClientId","BlockListAppender","renderAppender","className","tagName","TagName","appender"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,mBAAT,QAAoC,mBAApC;AAEA;AACA;AACA;;AACA,OAAOC,oBAAP,MAAiC,2BAAjC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,eAAT,OAA6C;AAAA,MAAnB;AAAEC,IAAAA;AAAF,GAAmB;AAC5C,QAAMC,qBAAqB,GAAGR,SAAS,CAAIS,MAAF,IACxCA,MAAM,CAAEJ,gBAAF,CAAN,CAA2BK,kBAA3B,CACCT,mBAAmB,EADpB,EAECM,YAFD,CADsC,CAAvC;;AAOA,MAAKC,qBAAL,EAA6B;AAC5B;AACA;AACA,WAAO,cAAC,oBAAD;AAAsB,MAAA,YAAY,EAAGD;AAArC,MAAP;AACA,GAZ2C,CAc5C;;;AACA,SACC,cAAC,mBAAD;AACC,IAAA,YAAY,EAAGA,YADhB;AAEC,IAAA,SAAS,EAAC;AAFX,IADD;AAMA;;AAED,SAASI,WAAT,CAAsBJ,YAAtB,EAAoCK,cAApC,EAAqD;AACpD,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAqCd,SAAS,CACjDS,MAAF,IAAc;AACb,UAAM;AACLM,MAAAA,eADK;AAELC,MAAAA,wBAFK;AAGLC,MAAAA;AAHK,QAIFR,MAAM,CAAEJ,gBAAF,CAJV;AAMA,UAAMa,qBAAqB,GAAGF,wBAAwB,EAAtD;AAEA,WAAO;AACNH,MAAAA,YAAY,EACX,CAAC,CAAEE,eAAe,CAAER,YAAF,CAAlB,IACAU,uBAAuB,OAAO,UAHzB;AAINH,MAAAA,gBAAgB,EACfP,YAAY,KAAKW,qBAAjB,IACE,CAAEX,YAAF,IAAkB,CAAEW;AANjB,KAAP;AAQA,GAlBkD,EAmBnD,CAAEX,YAAF,CAnBmD,CAApD;;AAsBA,MAAKM,YAAY,IAAID,cAAc,KAAK,KAAxC,EAAgD;AAC/C,WAAO,IAAP;AACA;;AAED,MAAKA,cAAL,EAAsB;AACrB;AACA,WAAO,cAAC,cAAD,OAAP;AACA;;AAED,MAAK,CAAEE,gBAAP,EAA0B;AACzB,WAAO,IAAP;AACA;;AAED,SAAO,cAAC,eAAD;AAAiB,IAAA,YAAY,EAAGP;AAAhC,IAAP;AACA;;AAED,SAASY,iBAAT,QAKI;AAAA,MALwB;AAC3BZ,IAAAA,YAD2B;AAE3Ba,IAAAA,cAF2B;AAG3BC,IAAAA,SAH2B;AAI3BC,IAAAA,OAAO,EAAEC,OAAO,GAAG;AAJQ,GAKxB;AACH,QAAMC,QAAQ,GAAGb,WAAW,CAAEJ,YAAF,EAAgBa,cAAhB,CAA5B;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list-appender/index.js"],"names":["classnames","useSelect","getDefaultBlockName","DefaultBlockAppender","ButtonBlockAppender","store","blockEditorStore","DefaultAppender","rootClientId","canInsertDefaultBlock","select","canInsertBlockType","useAppender","CustomAppender","hideInserter","isParentSelected","getTemplateLock","getSelectedBlockClientId","__unstableGetEditorMode","selectedBlockClientId","BlockListAppender","renderAppender","className","tagName","TagName","appender","isDragOver","getBlockInsertionPoint","isBlockInsertionPointVisible","getBlockCount","insertionPoint"],"mappings":"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","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"]}
|
|
@@ -27,6 +27,7 @@ import { store as coreStore } from '@wordpress/core-data';
|
|
|
27
27
|
import { getMoversSetup } from '../block-mover/mover-description';
|
|
28
28
|
import { store as blockEditorStore } from '../../store';
|
|
29
29
|
import BlockTransformationsMenu from '../block-switcher/block-transformations-menu';
|
|
30
|
+
import { useConvertToGroupButtons, useConvertToGroupButtonProps } from '../convert-to-group-buttons';
|
|
30
31
|
|
|
31
32
|
const BlockActionsMenu = _ref => {
|
|
32
33
|
let {
|
|
@@ -44,6 +45,7 @@ const BlockActionsMenu = _ref => {
|
|
|
44
45
|
rootClientId,
|
|
45
46
|
selectedBlockClientId,
|
|
46
47
|
selectedBlockPossibleTransformations,
|
|
48
|
+
canRemove,
|
|
47
49
|
// Dispatch.
|
|
48
50
|
createSuccessNotice,
|
|
49
51
|
convertToRegularBlocks,
|
|
@@ -76,7 +78,16 @@ const BlockActionsMenu = _ref => {
|
|
|
76
78
|
backward: backwardButtonTitle,
|
|
77
79
|
forward: forwardButtonTitle
|
|
78
80
|
}
|
|
79
|
-
} = getMoversSetup(isStackedHorizontally, moversOptions);
|
|
81
|
+
} = getMoversSetup(isStackedHorizontally, moversOptions); // Check if selected block is Groupable and/or Ungroupable.
|
|
82
|
+
|
|
83
|
+
const convertToGroupButtonProps = useConvertToGroupButtonProps([selectedBlockClientId]);
|
|
84
|
+
const {
|
|
85
|
+
isGroupable,
|
|
86
|
+
isUngroupable
|
|
87
|
+
} = convertToGroupButtonProps;
|
|
88
|
+
const showConvertToGroupButton = (isGroupable || isUngroupable) && canRemove;
|
|
89
|
+
const convertToGroupButtons = useConvertToGroupButtons({ ...convertToGroupButtonProps
|
|
90
|
+
});
|
|
80
91
|
const allOptions = {
|
|
81
92
|
settings: {
|
|
82
93
|
id: 'settingsOption',
|
|
@@ -180,7 +191,7 @@ const BlockActionsMenu = _ref => {
|
|
|
180
191
|
}
|
|
181
192
|
}
|
|
182
193
|
};
|
|
183
|
-
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 && allOptions.convertToRegularBlocks, !isLocked && allOptions.delete].filter(Boolean); // End early if there are no options to show.
|
|
194
|
+
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.
|
|
184
195
|
|
|
185
196
|
if (!options.length) {
|
|
186
197
|
return createElement(ToolbarButton, {
|
|
@@ -260,7 +271,8 @@ export default compose(withSelect((select, _ref2) => {
|
|
|
260
271
|
getBlocksByClientId,
|
|
261
272
|
getSelectedBlockClientIds,
|
|
262
273
|
canInsertBlockType,
|
|
263
|
-
getTemplateLock
|
|
274
|
+
getTemplateLock,
|
|
275
|
+
canRemoveBlock
|
|
264
276
|
} = select(blockEditorStore);
|
|
265
277
|
const block = getBlock(clientId);
|
|
266
278
|
const blockName = getBlockName(clientId);
|
|
@@ -283,6 +295,7 @@ export default compose(withSelect((select, _ref2) => {
|
|
|
283
295
|
const selectedBlockClientId = getSelectedBlockClientIds()[0];
|
|
284
296
|
const selectedBlock = selectedBlockClientId ? getBlocksByClientId(selectedBlockClientId)[0] : undefined;
|
|
285
297
|
const selectedBlockPossibleTransformations = selectedBlock ? getBlockTransformItems(selectedBlock, rootClientId) : EMPTY_BLOCK_LIST;
|
|
298
|
+
const canRemove = canRemoveBlock(selectedBlockClientId);
|
|
286
299
|
const isReusableBlockType = block ? isReusableBlock(block) : false;
|
|
287
300
|
const reusableBlock = isReusableBlockType ? select(coreStore).getEntityRecord('postType', 'wp_block', block === null || block === void 0 ? void 0 : block.attributes.ref) : undefined;
|
|
288
301
|
return {
|
|
@@ -299,7 +312,8 @@ export default compose(withSelect((select, _ref2) => {
|
|
|
299
312
|
reusableBlock,
|
|
300
313
|
rootClientId,
|
|
301
314
|
selectedBlockClientId,
|
|
302
|
-
selectedBlockPossibleTransformations
|
|
315
|
+
selectedBlockPossibleTransformations,
|
|
316
|
+
canRemove
|
|
303
317
|
};
|
|
304
318
|
}), withDispatch((dispatch, _ref3, _ref4) => {
|
|
305
319
|
let {
|