@wordpress/block-editor 14.12.0 → 14.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/build/autocompleters/block.js +0 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/autocompleters/link.js +0 -1
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/alignment-control/ui.js +0 -1
- package/build/components/alignment-control/ui.js.map +1 -1
- package/build/components/autocomplete/index.js +0 -1
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/background-image-control/index.js +2 -6
- package/build/components/background-image-control/index.js.map +1 -1
- package/build/components/block-actions/index.js +0 -1
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +0 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/ui.native.js +0 -1
- package/build/components/block-alignment-control/ui.native.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +0 -1
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +0 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-compare/index.js +0 -1
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-controls/fill.js +0 -1
- package/build/components/block-controls/fill.js.map +1 -1
- package/build/components/block-edit/edit.js +0 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-edit/edit.native.js +0 -1
- package/build/components/block-edit/edit.native.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.js +0 -1
- package/build/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build/components/block-heading-level-dropdown/index.native.js +0 -1
- package/build/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build/components/block-inspector/index.js +0 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +0 -1
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block-list-context.native.js +0 -1
- package/build/components/block-list/block-list-context.native.js.map +1 -1
- package/build/components/block-list/block.js +0 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +0 -1
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +9 -6
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +0 -1
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +0 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +0 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-lock/modal.js +0 -1
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-manager/category.js +0 -1
- package/build/components/block-manager/category.js.map +1 -1
- package/build/components/block-manager/checklist.js +0 -1
- package/build/components/block-manager/checklist.js.map +1 -1
- package/build/components/block-manager/index.js +0 -1
- package/build/components/block-manager/index.js.map +1 -1
- package/build/components/block-media-update-progress/index.native.js +0 -1
- package/build/components/block-media-update-progress/index.native.js.map +1 -1
- package/build/components/block-mover/index.native.js +0 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-mover/mover-description.native.js +0 -1
- package/build/components/block-mover/mover-description.native.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +0 -1
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/use-patterns-setup.js +0 -1
- package/build/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
- package/build/components/block-patterns-list/index.js +0 -1
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-popover/use-popover-scroll.js +13 -7
- package/build/components/block-popover/use-popover-scroll.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +0 -1
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-rename/modal.js +0 -1
- package/build/components/block-rename/modal.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +26 -7
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/index.js +0 -1
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/index.native.js +0 -1
- package/build/components/block-styles/index.native.js.map +1 -1
- package/build/components/block-styles/menu-items.js +0 -1
- package/build/components/block-styles/menu-items.js.map +1 -1
- package/build/components/block-styles/preview.native.js +0 -1
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +0 -1
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.native.js +0 -1
- package/build/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +0 -1
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build/components/block-switcher/index.js +0 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +0 -1
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +0 -1
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-switcher/utils.js +0 -1
- package/build/components/block-switcher/utils.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js +0 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-toolbar/change-design.js +0 -1
- package/build/components/block-toolbar/change-design.js.map +1 -1
- package/build/components/block-toolbar/index.js +0 -1
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-toolbar-popover.js +3 -2
- package/build/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build/components/block-tools/use-selected-block-tool-props.js +0 -1
- package/build/components/block-tools/use-selected-block-tool-props.js.map +1 -1
- package/build/components/block-types-list/index.js +0 -1
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/block-variation-picker/index.js +0 -1
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-picker/index.native.js +0 -1
- package/build/components/block-variation-picker/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +0 -1
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/ui.js +0 -1
- package/build/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build/components/border-radius-control/index.js +0 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +0 -1
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/utils.js +0 -1
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors/utils.js +0 -1
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +0 -1
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +0 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +0 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js +0 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +0 -1
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/date-format-picker/index.js +0 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/dimensions-tool/scale-tool.js +0 -1
- package/build/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build/components/duotone/utils.js +0 -1
- package/build/components/duotone/utils.js.map +1 -1
- package/build/components/editor-styles/index.js +0 -1
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +0 -1
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +0 -1
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +0 -1
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/global-styles/border-panel.js +0 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +0 -1
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.native.js +0 -1
- package/build/components/global-styles/color-panel.native.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +0 -1
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +42 -25
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/get-global-styles-changes.js +0 -1
- package/build/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +41 -17
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/global-styles/typography-utils.js +0 -1
- package/build/components/global-styles/typography-utils.js.map +1 -1
- package/build/components/global-styles/use-global-styles-context.native.js +0 -1
- package/build/components/global-styles/use-global-styles-context.native.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +0 -1
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +0 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/grid/grid-visualizer.js +0 -1
- package/build/components/grid/grid-visualizer.js.map +1 -1
- package/build/components/grid/use-grid-layout-sync.js +0 -1
- package/build/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build/components/grid/utils.js +0 -1
- package/build/components/grid/utils.js.map +1 -1
- package/build/components/iframe/get-compatibility-styles.js +0 -1
- package/build/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build/components/iframe/index.js +9 -7
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +1 -2
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +2 -2
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-block-context.js +0 -1
- package/build/components/inner-blocks/use-block-context.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/index.js +6 -3
- package/build/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +0 -1
- package/build/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/pattern-list.js +6 -3
- package/build/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/index.js +1 -1
- package/build/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -5
- package/build/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
- package/build/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js +0 -1
- package/build/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +0 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +0 -1
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/category-tabs/index.js +1 -2
- package/build/components/inserter/category-tabs/index.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js +0 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +0 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +0 -1
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +0 -1
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +0 -1
- package/build/components/inserter/media-tab/hooks.js.map +1 -1
- package/build/components/inserter/media-tab/media-list.js +0 -1
- package/build/components/inserter/media-tab/media-list.js.map +1 -1
- package/build/components/inserter/media-tab/media-tab.js +0 -1
- package/build/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +0 -1
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inserter/no-results.js +3 -7
- package/build/components/inserter/no-results.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-items.js +0 -1
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.js +1 -2
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/tabs.native.js +0 -1
- package/build/components/inserter/tabs.native.js.map +1 -1
- package/build/components/inserter/utils.native.js +0 -1
- package/build/components/inserter/utils.native.js.map +1 -1
- package/build/components/inspector-controls/block-support-tools-panel.js +0 -1
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build/components/inspector-controls/fill.js +0 -1
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +0 -1
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +0 -1
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/justify-content-control/ui.js +0 -1
- package/build/components/justify-content-control/ui.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +28 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/link-control/index.js +0 -1
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-results.js +0 -1
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/settings.js +0 -1
- package/build/components/link-control/settings.js.map +1 -1
- package/build/components/link-control/use-internal-value.js +0 -1
- package/build/components/link-control/use-internal-value.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +0 -1
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-select-button.js +0 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +0 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +0 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +0 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +0 -1
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/list-view/use-clipboard-handler.js +0 -1
- package/build/components/list-view/use-clipboard-handler.js.map +1 -1
- package/build/components/list-view/use-list-view-block-indexes.js +0 -1
- package/build/components/list-view/use-list-view-block-indexes.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js +0 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/utils.js +0 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +2 -2
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +0 -1
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +0 -1
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +0 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +0 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/panel-color-settings/index.js +0 -1
- package/build/components/panel-color-settings/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +0 -1
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/responsive-block-control/index.js +0 -1
- package/build/components/responsive-block-control/index.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js +0 -1
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build/components/rich-text/event-listeners/before-input-rules.js +0 -1
- package/build/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
- package/build/components/rich-text/event-listeners/delete.js +5 -3
- package/build/components/rich-text/event-listeners/delete.js.map +1 -1
- package/build/components/rich-text/event-listeners/index.js +0 -1
- package/build/components/rich-text/event-listeners/index.js.map +1 -1
- package/build/components/rich-text/event-listeners/input-rules.js +0 -1
- package/build/components/rich-text/event-listeners/input-rules.js.map +1 -1
- package/build/components/rich-text/event-listeners/paste-handler.js +0 -1
- package/build/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build/components/rich-text/file-paste-handler.native.js +0 -1
- package/build/components/rich-text/file-paste-handler.native.js.map +1 -1
- package/build/components/rich-text/format-edit.js +0 -1
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +0 -1
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +0 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +0 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +0 -1
- package/build/components/rich-text/multiline.js.map +1 -1
- package/build/components/rich-text/native/format-edit.js +0 -1
- package/build/components/rich-text/native/format-edit.js.map +1 -1
- package/build/components/rich-text/native/get-format-colors.native.js +0 -1
- package/build/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +0 -1
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/rich-text/native/toolbar-button-with-options.native.js +0 -1
- package/build/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
- package/build/components/rich-text/native/use-format-types.js +0 -1
- package/build/components/rich-text/native/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +0 -1
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +0 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js +0 -1
- package/build/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js +0 -1
- package/build/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/single.js +0 -1
- package/build/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +0 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/tabbed-sidebar/index.js +0 -1
- package/build/components/tabbed-sidebar/index.js.map +1 -1
- package/build/components/text-alignment-control/index.js +0 -1
- package/build/components/text-alignment-control/index.js.map +1 -1
- package/build/components/text-decoration-control/index.js +0 -1
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +0 -1
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/tool-selector/index.js +1 -1
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/unsupported-block-details/index.native.js +0 -1
- package/build/components/unsupported-block-details/index.native.js.map +1 -1
- package/build/components/url-input/index.js +0 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +0 -1
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/use-block-commands/index.js +0 -1
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +0 -1
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js +0 -1
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-flash-editable-blocks/index.js +0 -1
- package/build/components/use-flash-editable-blocks/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +0 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.native.js +0 -1
- package/build/components/use-on-block-drop/index.native.js.map +1 -1
- package/build/components/use-paste-styles/index.js +0 -1
- package/build/components/use-paste-styles/index.js.map +1 -1
- package/build/components/warning/index.js +0 -1
- package/build/components/warning/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +0 -1
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-clipboard-handler.js +0 -1
- package/build/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build/components/writing-flow/use-input.js +0 -1
- package/build/components/writing-flow/use-input.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +3 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/components/writing-flow/utils.js +0 -1
- package/build/components/writing-flow/utils.js.map +1 -1
- package/build/components/writing-mode-control/index.js +0 -1
- package/build/components/writing-mode-control/index.js.map +1 -1
- package/build/hooks/align.js +0 -1
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/align.native.js +0 -1
- package/build/hooks/align.native.js.map +1 -1
- package/build/hooks/aria-label.js +3 -8
- package/build/hooks/aria-label.js.map +1 -1
- package/build/hooks/block-bindings.js +0 -1
- package/build/hooks/block-bindings.js.map +1 -1
- package/build/hooks/block-hooks.js +0 -1
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/block-style-variation.js +0 -1
- package/build/hooks/block-style-variation.js.map +1 -1
- package/build/hooks/border.js +0 -1
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/contrast-checker.js +0 -1
- package/build/hooks/contrast-checker.js.map +1 -1
- package/build/hooks/duotone.js +0 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +0 -1
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +1 -2
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/position.js +0 -1
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +0 -1
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/supports.js +0 -1
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/text-align.js +0 -1
- package/build/hooks/text-align.js.map +1 -1
- package/build/hooks/typography.js +0 -1
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/use-zoom-out.js +1 -12
- package/build/hooks/use-zoom-out.js.map +1 -1
- package/build/hooks/utils.js +0 -1
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +0 -1
- package/build/layouts/constrained.js.map +1 -1
- package/build/layouts/flex.js +0 -1
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +0 -1
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/index.js +0 -1
- package/build/layouts/index.js.map +1 -1
- package/build/layouts/utils.js +0 -1
- package/build/layouts/utils.js.map +1 -1
- package/build/store/actions.js +0 -1
- package/build/store/actions.js.map +1 -1
- package/build/store/get-block-settings.js +0 -1
- package/build/store/get-block-settings.js.map +1 -1
- package/build/store/private-actions.js +0 -1
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +0 -1
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +0 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +0 -1
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +0 -1
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +0 -1
- package/build/utils/block-bindings.js.map +1 -1
- package/build/utils/get-editor-region.js +0 -1
- package/build/utils/get-editor-region.js.map +1 -1
- package/build/utils/get-font-styles-and-weights.js +0 -1
- package/build/utils/get-font-styles-and-weights.js.map +1 -1
- package/build/utils/math.js +0 -1
- package/build/utils/math.js.map +1 -1
- package/build/utils/object.js +0 -1
- package/build/utils/object.js.map +1 -1
- package/build/utils/selection.js +0 -1
- package/build/utils/selection.js.map +1 -1
- package/build/utils/transform-styles/index.js +0 -1
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/autocompleters/block.js +0 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/autocompleters/link.js +0 -1
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/alignment-control/ui.js +0 -1
- package/build-module/components/alignment-control/ui.js.map +1 -1
- package/build-module/components/autocomplete/index.js +0 -1
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/background-image-control/index.js +2 -6
- package/build-module/components/background-image-control/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +0 -1
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +0 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.native.js +0 -1
- package/build-module/components/block-alignment-control/ui.native.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +0 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +0 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-compare/index.js +0 -1
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-controls/fill.js +0 -1
- package/build-module/components/block-controls/fill.js.map +1 -1
- package/build-module/components/block-edit/edit.js +0 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-edit/edit.native.js +0 -1
- package/build-module/components/block-edit/edit.native.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.js +0 -1
- package/build-module/components/block-heading-level-dropdown/index.js.map +1 -1
- package/build-module/components/block-heading-level-dropdown/index.native.js +0 -1
- package/build-module/components/block-heading-level-dropdown/index.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +0 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +0 -1
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block-list-context.native.js +0 -1
- package/build-module/components/block-list/block-list-context.native.js.map +1 -1
- package/build-module/components/block-list/block.js +0 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +0 -1
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +9 -6
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +0 -1
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +0 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +0 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-lock/modal.js +0 -1
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-manager/category.js +0 -1
- package/build-module/components/block-manager/category.js.map +1 -1
- package/build-module/components/block-manager/checklist.js +0 -1
- package/build-module/components/block-manager/checklist.js.map +1 -1
- package/build-module/components/block-manager/index.js +0 -1
- package/build-module/components/block-manager/index.js.map +1 -1
- package/build-module/components/block-media-update-progress/index.native.js +0 -1
- package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +0 -1
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.native.js +0 -1
- package/build-module/components/block-mover/mover-description.native.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +0 -1
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/use-patterns-setup.js +0 -1
- package/build-module/components/block-pattern-setup/use-patterns-setup.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +0 -1
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-popover/use-popover-scroll.js +12 -7
- package/build-module/components/block-popover/use-popover-scroll.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +0 -1
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-rename/modal.js +0 -1
- package/build-module/components/block-rename/modal.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +26 -7
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/index.js +0 -1
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/index.native.js +0 -1
- package/build-module/components/block-styles/index.native.js.map +1 -1
- package/build-module/components/block-styles/menu-items.js +0 -1
- package/build-module/components/block-styles/menu-items.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +0 -1
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +0 -1
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js +0 -1
- package/build-module/components/block-switcher/block-transformations-menu.native.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js +0 -1
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -1
- package/build-module/components/block-switcher/index.js +0 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +0 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-switcher/utils.js +0 -1
- package/build-module/components/block-switcher/utils.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js +0 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-toolbar/change-design.js +0 -1
- package/build-module/components/block-toolbar/change-design.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +0 -1
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-toolbar-popover.js +3 -2
- package/build-module/components/block-tools/block-toolbar-popover.js.map +1 -1
- package/build-module/components/block-tools/use-selected-block-tool-props.js +0 -1
- package/build-module/components/block-tools/use-selected-block-tool-props.js.map +1 -1
- package/build-module/components/block-types-list/index.js +0 -1
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +0 -1
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-picker/index.native.js +0 -1
- package/build-module/components/block-variation-picker/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +0 -1
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/ui.js +0 -1
- package/build-module/components/block-vertical-alignment-control/ui.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +0 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +0 -1
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +0 -1
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors/utils.js +0 -1
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +0 -1
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +0 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +0 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js +0 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +0 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +0 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/dimensions-tool/scale-tool.js +0 -1
- package/build-module/components/dimensions-tool/scale-tool.js.map +1 -1
- package/build-module/components/duotone/utils.js +0 -1
- package/build-module/components/duotone/utils.js.map +1 -1
- package/build-module/components/editor-styles/index.js +0 -1
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +0 -1
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +0 -1
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +0 -1
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +0 -1
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +0 -1
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.native.js +0 -1
- package/build-module/components/global-styles/color-panel.native.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +0 -1
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +45 -28
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/get-global-styles-changes.js +0 -1
- package/build-module/components/global-styles/get-global-styles-changes.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +44 -20
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/global-styles/typography-utils.js +0 -1
- package/build-module/components/global-styles/typography-utils.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-context.native.js +0 -1
- package/build-module/components/global-styles/use-global-styles-context.native.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +0 -1
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +0 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/grid/grid-visualizer.js +0 -1
- package/build-module/components/grid/grid-visualizer.js.map +1 -1
- package/build-module/components/grid/use-grid-layout-sync.js +0 -1
- package/build-module/components/grid/use-grid-layout-sync.js.map +1 -1
- package/build-module/components/grid/utils.js +0 -1
- package/build-module/components/grid/utils.js.map +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js +0 -1
- package/build-module/components/iframe/get-compatibility-styles.js.map +1 -1
- package/build-module/components/iframe/index.js +9 -7
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +1 -2
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +2 -2
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-block-context.js +0 -1
- package/build-module/components/inner-blocks/use-block-context.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/index.js +6 -3
- package/build-module/components/inserter/block-patterns-explorer/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js +0 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-explorer-sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js +6 -3
- package/build-module/components/inserter/block-patterns-explorer/pattern-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js +1 -1
- package/build-module/components/inserter/block-patterns-tab/index.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -5
- package/build-module/components/inserter/block-patterns-tab/pattern-category-previews.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
- package/build-module/components/inserter/block-patterns-tab/patterns-filter.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js +0 -1
- package/build-module/components/inserter/block-patterns-tab/use-pattern-categories.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +0 -1
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +0 -1
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/category-tabs/index.js +1 -2
- package/build-module/components/inserter/category-tabs/index.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +0 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +0 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +0 -1
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +0 -1
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +0 -1
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-list.js +0 -1
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-tab.js +0 -1
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +0 -1
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inserter/no-results.js +4 -8
- package/build-module/components/inserter/no-results.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-items.js +0 -1
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.js +1 -2
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/tabs.native.js +0 -1
- package/build-module/components/inserter/tabs.native.js.map +1 -1
- package/build-module/components/inserter/utils.native.js +0 -1
- package/build-module/components/inserter/utils.native.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js +0 -1
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +0 -1
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +0 -1
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +0 -1
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/justify-content-control/ui.js +0 -1
- package/build-module/components/justify-content-control/ui.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +28 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/link-control/index.js +0 -1
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-results.js +0 -1
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/settings.js +0 -1
- package/build-module/components/link-control/settings.js.map +1 -1
- package/build-module/components/link-control/use-internal-value.js +0 -1
- package/build-module/components/link-control/use-internal-value.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +0 -1
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +0 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +0 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +0 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +0 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +0 -1
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/list-view/use-clipboard-handler.js +0 -1
- package/build-module/components/list-view/use-clipboard-handler.js.map +1 -1
- package/build-module/components/list-view/use-list-view-block-indexes.js +0 -1
- package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js +0 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/utils.js +0 -1
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +2 -2
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +0 -1
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +0 -1
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +0 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +0 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/panel-color-settings/index.js +0 -1
- package/build-module/components/panel-color-settings/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +0 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/responsive-block-control/index.js +0 -1
- package/build-module/components/responsive-block-control/index.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js +0 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/before-input-rules.js +0 -1
- package/build-module/components/rich-text/event-listeners/before-input-rules.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/delete.js +5 -3
- package/build-module/components/rich-text/event-listeners/delete.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/index.js +0 -1
- package/build-module/components/rich-text/event-listeners/index.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/input-rules.js +0 -1
- package/build-module/components/rich-text/event-listeners/input-rules.js.map +1 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js +0 -1
- package/build-module/components/rich-text/event-listeners/paste-handler.js.map +1 -1
- package/build-module/components/rich-text/file-paste-handler.native.js +0 -1
- package/build-module/components/rich-text/file-paste-handler.native.js.map +1 -1
- package/build-module/components/rich-text/format-edit.js +0 -1
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +0 -1
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +0 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +0 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +0 -1
- package/build-module/components/rich-text/multiline.js.map +1 -1
- package/build-module/components/rich-text/native/format-edit.js +0 -1
- package/build-module/components/rich-text/native/format-edit.js.map +1 -1
- package/build-module/components/rich-text/native/get-format-colors.native.js +0 -1
- package/build-module/components/rich-text/native/get-format-colors.native.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +0 -1
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/rich-text/native/toolbar-button-with-options.native.js +0 -1
- package/build-module/components/rich-text/native/toolbar-button-with-options.native.js.map +1 -1
- package/build-module/components/rich-text/native/use-format-types.js +0 -1
- package/build-module/components/rich-text/native/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +0 -1
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +0 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js +0 -1
- package/build-module/components/spacing-sizes-control/input-controls/axial.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js +0 -1
- package/build-module/components/spacing-sizes-control/input-controls/separated.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js +0 -1
- package/build-module/components/spacing-sizes-control/input-controls/single.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +0 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +0 -1
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/tabbed-sidebar/index.js +0 -1
- package/build-module/components/tabbed-sidebar/index.js.map +1 -1
- package/build-module/components/text-alignment-control/index.js +0 -1
- package/build-module/components/text-alignment-control/index.js.map +1 -1
- package/build-module/components/text-decoration-control/index.js +0 -1
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +0 -1
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +1 -1
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/unsupported-block-details/index.native.js +0 -1
- package/build-module/components/unsupported-block-details/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +0 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +0 -1
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +0 -1
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +0 -1
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js +0 -1
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-flash-editable-blocks/index.js +0 -1
- package/build-module/components/use-flash-editable-blocks/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +0 -1
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.native.js +0 -1
- package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
- package/build-module/components/use-paste-styles/index.js +0 -1
- package/build-module/components/use-paste-styles/index.js.map +1 -1
- package/build-module/components/warning/index.js +0 -1
- package/build-module/components/warning/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +0 -1
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js +0 -1
- package/build-module/components/writing-flow/use-clipboard-handler.js.map +1 -1
- package/build-module/components/writing-flow/use-input.js +0 -1
- package/build-module/components/writing-flow/use-input.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +3 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/components/writing-flow/utils.js +0 -1
- package/build-module/components/writing-flow/utils.js.map +1 -1
- package/build-module/components/writing-mode-control/index.js +0 -1
- package/build-module/components/writing-mode-control/index.js.map +1 -1
- package/build-module/hooks/align.js +0 -1
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/align.native.js +0 -1
- package/build-module/hooks/align.native.js.map +1 -1
- package/build-module/hooks/aria-label.js +3 -7
- package/build-module/hooks/aria-label.js.map +1 -1
- package/build-module/hooks/block-bindings.js +0 -1
- package/build-module/hooks/block-bindings.js.map +1 -1
- package/build-module/hooks/block-hooks.js +0 -1
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/block-style-variation.js +0 -1
- package/build-module/hooks/block-style-variation.js.map +1 -1
- package/build-module/hooks/border.js +0 -1
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/contrast-checker.js +0 -1
- package/build-module/hooks/contrast-checker.js.map +1 -1
- package/build-module/hooks/duotone.js +0 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +0 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +1 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/position.js +0 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +0 -1
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/supports.js +0 -1
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/text-align.js +0 -1
- package/build-module/hooks/text-align.js.map +1 -1
- package/build-module/hooks/typography.js +0 -1
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/use-zoom-out.js +2 -12
- package/build-module/hooks/use-zoom-out.js.map +1 -1
- package/build-module/hooks/utils.js +0 -1
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +0 -1
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/layouts/flex.js +0 -1
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +0 -1
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/index.js +0 -1
- package/build-module/layouts/index.js.map +1 -1
- package/build-module/layouts/utils.js +0 -1
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/store/actions.js +0 -1
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/get-block-settings.js +0 -1
- package/build-module/store/get-block-settings.js.map +1 -1
- package/build-module/store/private-actions.js +0 -1
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +0 -1
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +0 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +0 -1
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +0 -1
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/block-bindings.js +0 -1
- package/build-module/utils/block-bindings.js.map +1 -1
- package/build-module/utils/get-editor-region.js +0 -1
- package/build-module/utils/get-editor-region.js.map +1 -1
- package/build-module/utils/get-font-styles-and-weights.js +0 -1
- package/build-module/utils/get-font-styles-and-weights.js.map +1 -1
- package/build-module/utils/math.js +0 -1
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/object.js +0 -1
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/selection.js +0 -1
- package/build-module/utils/selection.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +0 -1
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +22 -25
- package/build-style/content.css +22 -25
- package/build-style/style-rtl.css +136 -104
- package/build-style/style.css +136 -104
- package/package.json +34 -34
- package/src/components/background-image-control/index.js +1 -6
- package/src/components/block-canvas/style.scss +3 -2
- package/src/components/block-draggable/style.scss +3 -1
- package/src/components/block-list/content.scss +19 -12
- package/src/components/block-list/index.js +21 -7
- package/src/components/block-mover/style.scss +5 -4
- package/src/components/block-pattern-setup/style.scss +3 -1
- package/src/components/block-patterns-list/style.scss +3 -3
- package/src/components/block-popover/use-popover-scroll.js +13 -8
- package/src/components/block-settings-menu/block-settings-dropdown.js +26 -7
- package/src/components/block-switcher/style.scss +3 -1
- package/src/components/block-toolbar/style.scss +5 -3
- package/src/components/block-tools/block-toolbar-popover.js +4 -3
- package/src/components/block-tools/style.scss +6 -3
- package/src/components/button-block-appender/content.scss +2 -4
- package/src/components/color-palette/test/__snapshots__/control.js.snap +1 -1
- package/src/components/colors-gradients/style.scss +3 -2
- package/src/components/global-styles/filters-panel.js +48 -21
- package/src/components/global-styles/shadow-panel-components.js +44 -13
- package/src/components/global-styles/style.scss +53 -1
- package/src/components/grid/style.scss +5 -4
- package/src/components/iframe/content.scss +5 -2
- package/src/components/iframe/index.js +16 -13
- package/src/components/image-editor/aspect-ratio-dropdown.js +1 -1
- package/src/components/inner-blocks/index.js +2 -2
- package/src/components/inner-blocks/index.native.js +2 -2
- package/src/components/inserter/block-patterns-explorer/index.js +6 -4
- package/src/components/inserter/block-patterns-explorer/pattern-list.js +5 -1
- package/src/components/inserter/block-patterns-tab/index.js +1 -3
- package/src/components/inserter/block-patterns-tab/pattern-category-previews.js +4 -4
- package/src/components/inserter/block-patterns-tab/patterns-filter.js +2 -2
- package/src/components/inserter/category-tabs/index.js +1 -3
- package/src/components/inserter/no-results.js +0 -5
- package/src/components/inserter/quick-inserter.js +4 -1
- package/src/components/inserter/search-results.js +3 -1
- package/src/components/inserter/style.scss +11 -8
- package/src/components/inserter-list-item/style.scss +9 -6
- package/src/components/keyboard-shortcuts/index.js +31 -1
- package/src/components/link-control/style.scss +11 -6
- package/src/components/list-view/style.scss +34 -17
- package/src/components/media-placeholder/index.js +1 -0
- package/src/components/rich-text/event-listeners/delete.js +3 -3
- package/src/components/tool-selector/index.js +1 -1
- package/src/components/url-input/style.scss +3 -2
- package/src/components/writing-flow/use-tab-nav.js +4 -0
- package/src/hooks/aria-label.js +3 -8
- package/src/hooks/layout.js +1 -1
- package/src/hooks/use-zoom-out.js +2 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_blocks","_components","_compose","_icons","_element","_data","_i18n","_keycodes","_isShallowEqual","_keyboardShortcuts","_a11y","_leaf","_useListViewScrollIntoView","_button","_blockContents","_context","_utils","_store","_useBlockDisplayInformation","_blockLock","_ariaReferencedText","_lockUnlock","_jsxRuntime","ListViewBlock","block","clientId","displacement","isAfterDraggedBlocks","isDragged","isNesting","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","useRef","rowRef","settingsRef","isHovered","setIsHovered","useState","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","useBlockLock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","duplicateBlocks","multiSelect","replaceBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","setOpenedBlockSettingsMenu","unlock","useDispatch","blockEditorStore","canInsertBlockType","getSelectedBlockClientIds","getPreviousBlockClientId","getBlockRootClientId","getBlockOrder","getBlockParents","getBlocksByClientId","canRemoveBlocks","isGroupable","useSelect","getGroupingBlockName","blocksStore","blockInformation","useBlockDisplayInformation","blockName","allowRightClickOverrides","select","getBlock","getBlockName","getSettings","showBlockActions","hasBlockSupport","instanceId","useInstanceId","descriptionId","expand","collapse","collapseAll","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","rootClientId","useListViewContext","isMatch","useShortcutEventMatch","getBlocksToUpdate","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","onKeyDown","event","defaultPrevented","target","closest","isDeleteKey","BACKSPACE","DELETE","keyCode","stopPropagation","preventDefault","undefined","_getPreviousBlockClie","blocksToDelete","blockToFocus","shouldUpdateSelection","updateFocusAndSelection","canDuplicate","every","blockToUpdate","name","updatedBlocks","newlySelectedBlocks","at","blockClientIds","isShallowEqual","blockParents","blocks","groupingBlockName","newBlocks","switchToBlockType","speak","__","onMouseEnter","useCallback","onMouseLeave","selectEditorBlock","focusClientId","shouldSelectBlock","focusListItem","current","toggleExpanded","onContextMenu","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","useMemo","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","useListViewScrollIntoView","rowItemRef","blockPositionDescription","getBlockPositionDescription","blockPropertiesDescription","getBlockPropertiesDescription","hasSiblings","hasRenderedMovers","moverCellClassName","clsx","listViewBlockSettingsClassName","colSpan","classes","isSynced","dropdownClientIds","currentlyEditingBlockInCanvas","jsxs","default","className","onFocus","onBlur","id","ref","children","jsx","__experimentalTreeGridCell","tabIndex","onClick","onToggleExpanded","ariaDescribedBy","filter","Boolean","join","Fragment","withoutGridItem","__experimentalTreeGridItem","BlockMoverUpButton","orientation","clientIds","BlockMoverDownButton","icon","moreVertical","label","popoverProps","anchor","toggleProps","disableOpenOnArrowDown","__experimentalSelectBlock","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport {\n\tgetBlockPositionDescription,\n\tgetBlockPropertiesDescription,\n\tfocusListItem,\n} from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\nimport { unlock } from '../../lock-unlock';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tdisplacement,\n\tisAfterDraggedBlocks,\n\tisDragged,\n\tisNesting,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst {\n\t\ttoggleBlockHighlight,\n\t\tduplicateBlocks,\n\t\tmultiSelect,\n\t\treplaceBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tsetOpenedBlockSettingsMenu,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetSelectedBlockClientIds,\n\t\tgetPreviousBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockParents,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tconst { block, blockName, allowRightClickOverrides } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tallowRightClickOverrides:\n\t\t\t\t\tgetSettings().allowRightClickOverrides,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true );\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__description-${ instanceId }`;\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tcollapseAll,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t\trootClientId,\n\t} = useListViewContext();\n\tconst isMatch = useShortcutEventMatch();\n\n\t// Determine which blocks to update:\n\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t// If the focused block is not part of the block selection, only update the focused block.\n\tfunction getBlocksToUpdate() {\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst isUpdatingSelectedBlocks =\n\t\t\tselectedBlockClientIds.includes( clientId );\n\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t: clientId;\n\t\tconst firstBlockRootClientId =\n\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn {\n\t\t\tblocksToUpdate,\n\t\t\tfirstBlockClientId,\n\t\t\tfirstBlockRootClientId,\n\t\t\tselectedBlockClientIds,\n\t\t};\n\t}\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tasync function onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Do not handle events if it comes from modals;\n\t\t// retain the default behavior for these keys.\n\t\tif ( event.target.closest( '[role=dialog]' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isDeleteKey = [ BACKSPACE, DELETE ].includes( event.keyCode );\n\n\t\t// If multiple blocks are selected, deselect all blocks when the user\n\t\t// presses the escape key.\n\t\tif (\n\t\t\tisMatch( 'core/block-editor/unselect', event ) &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t} else if (\n\t\t\tisDeleteKey ||\n\t\t\tisMatch( 'core/block-editor/remove', event )\n\t\t) {\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: blocksToDelete,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\tselectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate();\n\n\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\tif ( ! canRemoveBlocks( blocksToDelete ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blockToFocus =\n\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t// fallback to focus the parent block.\n\t\t\t\tfirstBlockRootClientId;\n\n\t\t\tremoveBlocks( blocksToDelete, false );\n\n\t\t\t// Update the selection if the original selection has been removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\tselectedBlockClientIds.length > 0 &&\n\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate, firstBlockRootClientId } =\n\t\t\t\tgetBlocksToUpdate();\n\n\t\t\tconst canDuplicate = getBlocksByClientId( blocksToUpdate ).every(\n\t\t\t\t( blockToUpdate ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! blockToUpdate &&\n\t\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\t\tblockToUpdate.name,\n\t\t\t\t\t\t\t'multiple',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\tblockToUpdate.name,\n\t\t\t\t\t\t\tfirstBlockRootClientId\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( canDuplicate ) {\n\t\t\t\tconst updatedBlocks = await duplicateBlocks(\n\t\t\t\t\tblocksToUpdate,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\tif ( updatedBlocks?.length ) {\n\t\t\t\t\t// If blocks have been duplicated, focus the first duplicated block.\n\t\t\t\t\tupdateFocusAndSelection( updatedBlocks[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tawait insertBeforeBlock( blocksToUpdate[ 0 ] );\n\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tawait insertAfterBlock( blocksToUpdate.at( -1 ) );\n\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t} else if ( isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { firstBlockRootClientId, selectedBlockClientIds } =\n\t\t\t\tgetBlocksToUpdate();\n\t\t\tconst blockClientIds = getBlockOrder( firstBlockRootClientId );\n\t\t\tif ( ! blockClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a level.\n\t\t\t// This is a similar implementation to that used by `useSelectAll`.\n\t\t\t// `isShallowEqual` is used for the list view instead of a length check,\n\t\t\t// as the array of siblings of the currently focused block may be a different\n\t\t\t// set of blocks from the current block selection if the user is focused\n\t\t\t// on a different part of the list view from the block selection.\n\t\t\tif ( isShallowEqual( selectedBlockClientIds, blockClientIds ) ) {\n\t\t\t\t// Only select up a level if the first block is not the root block.\n\t\t\t\t// This ensures that the block selection can't break out of the root block\n\t\t\t\t// used by the list view, if the list view is only showing a partial hierarchy.\n\t\t\t\tif (\n\t\t\t\t\tfirstBlockRootClientId &&\n\t\t\t\t\tfirstBlockRootClientId !== rootClientId\n\t\t\t\t) {\n\t\t\t\t\tupdateFocusAndSelection( firstBlockRootClientId, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all while passing `null` to skip focusing to the editor canvas,\n\t\t\t// and retain focus within the list view.\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ],\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\tevent.preventDefault();\n\t\t\tconst { firstBlockClientId } = getBlocksToUpdate();\n\t\t\tconst blockParents = getBlockParents( firstBlockClientId, false );\n\t\t\t// Collapse all blocks.\n\t\t\tcollapseAll();\n\t\t\t// Expand all parents of the current block.\n\t\t\texpand( blockParents );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tif ( blocksToUpdate.length > 1 && isGroupable( blocksToUpdate ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( blocksToUpdate );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( blocksToUpdate, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\t\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef?.current );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// When switching between rendering modes (such as template preview and content only),\n\t// it is possible for a block to temporarily be unavailable. In this case, we should not\n\t// render the leaf, to avoid errors further down the tree.\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockPropertiesDescription = getBlockPropertiesDescription(\n\t\tblockInformation,\n\t\tisLocked\n\t);\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = clsx(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = clsx(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = clsx( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t\t'is-displacement-normal': displacement === 'normal',\n\t\t'is-displacement-up': displacement === 'up',\n\t\t'is-displacement-down': displacement === 'down',\n\t\t'is-after-dragged-blocks': isAfterDraggedBlocks,\n\t\t'is-nesting': isNesting,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tisDragged={ isDragged }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ [\n\t\t\t\t\t\t\t\tblockPositionDescription,\n\t\t\t\t\t\t\t\tblockPropertiesDescription,\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_blocks","_components","_compose","_icons","_element","_data","_i18n","_keycodes","_isShallowEqual","_keyboardShortcuts","_a11y","_leaf","_useListViewScrollIntoView","_button","_blockContents","_context","_utils","_store","_useBlockDisplayInformation","_blockLock","_ariaReferencedText","_lockUnlock","_jsxRuntime","ListViewBlock","block","clientId","displacement","isAfterDraggedBlocks","isDragged","isNesting","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","isSyncedBranch","cellRef","useRef","rowRef","settingsRef","isHovered","setIsHovered","useState","settingsAnchorRect","setSettingsAnchorRect","isLocked","canEdit","canMove","useBlockLock","isFirstSelectedBlock","isLastSelectedBlock","length","toggleBlockHighlight","duplicateBlocks","multiSelect","replaceBlocks","removeBlocks","insertAfterBlock","insertBeforeBlock","setOpenedBlockSettingsMenu","unlock","useDispatch","blockEditorStore","canInsertBlockType","getSelectedBlockClientIds","getPreviousBlockClientId","getBlockRootClientId","getBlockOrder","getBlockParents","getBlocksByClientId","canRemoveBlocks","isGroupable","useSelect","getGroupingBlockName","blocksStore","blockInformation","useBlockDisplayInformation","blockName","allowRightClickOverrides","select","getBlock","getBlockName","getSettings","showBlockActions","hasBlockSupport","instanceId","useInstanceId","descriptionId","expand","collapse","collapseAll","BlockSettingsMenu","listViewInstanceId","expandedState","setInsertedBlock","treeGridElementRef","rootClientId","useListViewContext","isMatch","useShortcutEventMatch","getBlocksToUpdate","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","onKeyDown","event","defaultPrevented","target","closest","isDeleteKey","BACKSPACE","DELETE","keyCode","stopPropagation","preventDefault","undefined","_getPreviousBlockClie","blocksToDelete","blockToFocus","shouldUpdateSelection","updateFocusAndSelection","canDuplicate","every","blockToUpdate","name","updatedBlocks","newlySelectedBlocks","at","blockClientIds","isShallowEqual","blockParents","blocks","groupingBlockName","newBlocks","switchToBlockType","speak","__","onMouseEnter","useCallback","onMouseLeave","selectEditorBlock","focusClientId","shouldSelectBlock","focusListItem","current","toggleExpanded","onContextMenu","click","window","DOMRect","clientX","clientY","onMouseDown","button","settingsPopoverAnchor","useMemo","ownerDocument","getBoundingClientRect","clearSettingsAnchorRect","useListViewScrollIntoView","rowItemRef","blockPositionDescription","getBlockPositionDescription","blockPropertiesDescription","getBlockPropertiesDescription","hasSiblings","hasRenderedMovers","moverCellClassName","clsx","listViewBlockSettingsClassName","colSpan","classes","isSynced","dropdownClientIds","currentlyEditingBlockInCanvas","jsxs","default","className","onFocus","onBlur","id","ref","children","jsx","__experimentalTreeGridCell","tabIndex","onClick","onToggleExpanded","ariaDescribedBy","filter","Boolean","join","Fragment","withoutGridItem","__experimentalTreeGridItem","BlockMoverUpButton","orientation","clientIds","BlockMoverDownButton","icon","moreVertical","label","popoverProps","anchor","toggleProps","disableOpenOnArrowDown","__experimentalSelectBlock","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\thasBlockSupport,\n\tswitchToBlockType,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseCallback,\n\tuseMemo,\n\tuseState,\n\tuseRef,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport { __unstableUseShortcutEventMatch as useShortcutEventMatch } from '@wordpress/keyboard-shortcuts';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport useListViewScrollIntoView from './use-list-view-scroll-into-view';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport { useListViewContext } from './context';\nimport {\n\tgetBlockPositionDescription,\n\tgetBlockPropertiesDescription,\n\tfocusListItem,\n} from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { useBlockLock } from '../block-lock';\nimport AriaReferencedText from './aria-referenced-text';\nimport { unlock } from '../../lock-unlock';\n\nfunction ListViewBlock( {\n\tblock: { clientId },\n\tdisplacement,\n\tisAfterDraggedBlocks,\n\tisDragged,\n\tisNesting,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n\tisSyncedBranch,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst rowRef = useRef( null );\n\tconst settingsRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ settingsAnchorRect, setSettingsAnchorRect ] = useState();\n\n\tconst { isLocked, canEdit, canMove } = useBlockLock( clientId );\n\n\tconst isFirstSelectedBlock =\n\t\tisSelected && selectedClientIds[ 0 ] === clientId;\n\tconst isLastSelectedBlock =\n\t\tisSelected &&\n\t\tselectedClientIds[ selectedClientIds.length - 1 ] === clientId;\n\n\tconst {\n\t\ttoggleBlockHighlight,\n\t\tduplicateBlocks,\n\t\tmultiSelect,\n\t\treplaceBlocks,\n\t\tremoveBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t\tsetOpenedBlockSettingsMenu,\n\t} = unlock( useDispatch( blockEditorStore ) );\n\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetSelectedBlockClientIds,\n\t\tgetPreviousBlockClientId,\n\t\tgetBlockRootClientId,\n\t\tgetBlockOrder,\n\t\tgetBlockParents,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t\tisGroupable,\n\t} = useSelect( blockEditorStore );\n\tconst { getGroupingBlockName } = useSelect( blocksStore );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\n\tconst { block, blockName, allowRightClickOverrides } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlock, getBlockName, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tblock: getBlock( clientId ),\n\t\t\t\tblockName: getBlockName( clientId ),\n\t\t\t\tallowRightClickOverrides:\n\t\t\t\t\tgetSettings().allowRightClickOverrides,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showBlockActions =\n\t\t// When a block hides its toolbar it also hides the block settings menu,\n\t\t// since that menu is part of the toolbar in the editor canvas.\n\t\t// List View respects this by also hiding the block settings menu.\n\t\thasBlockSupport( blockName, '__experimentalToolbar', true );\n\tconst instanceId = useInstanceId( ListViewBlock );\n\tconst descriptionId = `list-view-block-select-button__description-${ instanceId }`;\n\n\tconst {\n\t\texpand,\n\t\tcollapse,\n\t\tcollapseAll,\n\t\tBlockSettingsMenu,\n\t\tlistViewInstanceId,\n\t\texpandedState,\n\t\tsetInsertedBlock,\n\t\ttreeGridElementRef,\n\t\trootClientId,\n\t} = useListViewContext();\n\tconst isMatch = useShortcutEventMatch();\n\n\t// Determine which blocks to update:\n\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t// If the focused block is not part of the block selection, only update the focused block.\n\tfunction getBlocksToUpdate() {\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\tconst isUpdatingSelectedBlocks =\n\t\t\tselectedBlockClientIds.includes( clientId );\n\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t: clientId;\n\t\tconst firstBlockRootClientId =\n\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t? selectedBlockClientIds\n\t\t\t: [ clientId ];\n\n\t\treturn {\n\t\t\tblocksToUpdate,\n\t\t\tfirstBlockClientId,\n\t\t\tfirstBlockRootClientId,\n\t\t\tselectedBlockClientIds,\n\t\t};\n\t}\n\n\t/**\n\t * @param {KeyboardEvent} event\n\t */\n\tasync function onKeyDown( event ) {\n\t\tif ( event.defaultPrevented ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Do not handle events if it comes from modals;\n\t\t// retain the default behavior for these keys.\n\t\tif ( event.target.closest( '[role=dialog]' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isDeleteKey = [ BACKSPACE, DELETE ].includes( event.keyCode );\n\n\t\t// If multiple blocks are selected, deselect all blocks when the user\n\t\t// presses the escape key.\n\t\tif (\n\t\t\tisMatch( 'core/block-editor/unselect', event ) &&\n\t\t\tselectedClientIds.length > 0\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tselectBlock( event, undefined );\n\t\t} else if (\n\t\t\tisDeleteKey ||\n\t\t\tisMatch( 'core/block-editor/remove', event )\n\t\t) {\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: blocksToDelete,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\tselectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate();\n\n\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\tif ( ! canRemoveBlocks( blocksToDelete ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blockToFocus =\n\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t// fallback to focus the parent block.\n\t\t\t\tfirstBlockRootClientId;\n\n\t\t\tremoveBlocks( blocksToDelete, false );\n\n\t\t\t// Update the selection if the original selection has been removed.\n\t\t\tconst shouldUpdateSelection =\n\t\t\t\tselectedBlockClientIds.length > 0 &&\n\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\tif ( ! blockToFocus ) {\n\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t}\n\n\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t} else if ( isMatch( 'core/block-editor/duplicate', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate, firstBlockRootClientId } =\n\t\t\t\tgetBlocksToUpdate();\n\n\t\t\tconst canDuplicate = getBlocksByClientId( blocksToUpdate ).every(\n\t\t\t\t( blockToUpdate ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t!! blockToUpdate &&\n\t\t\t\t\t\thasBlockSupport(\n\t\t\t\t\t\t\tblockToUpdate.name,\n\t\t\t\t\t\t\t'multiple',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\tblockToUpdate.name,\n\t\t\t\t\t\t\tfirstBlockRootClientId\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( canDuplicate ) {\n\t\t\t\tconst updatedBlocks = await duplicateBlocks(\n\t\t\t\t\tblocksToUpdate,\n\t\t\t\t\tfalse\n\t\t\t\t);\n\n\t\t\t\tif ( updatedBlocks?.length ) {\n\t\t\t\t\t// If blocks have been duplicated, focus the first duplicated block.\n\t\t\t\t\tupdateFocusAndSelection( updatedBlocks[ 0 ], false );\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ( isMatch( 'core/block-editor/insert-before', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tawait insertBeforeBlock( blocksToUpdate[ 0 ] );\n\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t} else if ( isMatch( 'core/block-editor/insert-after', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tawait insertAfterBlock( blocksToUpdate.at( -1 ) );\n\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t} else if ( isMatch( 'core/block-editor/select-all', event ) ) {\n\t\t\tevent.preventDefault();\n\n\t\t\tconst { firstBlockRootClientId, selectedBlockClientIds } =\n\t\t\t\tgetBlocksToUpdate();\n\t\t\tconst blockClientIds = getBlockOrder( firstBlockRootClientId );\n\t\t\tif ( ! blockClientIds.length ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If we have selected all sibling nested blocks, try selecting up a level.\n\t\t\t// This is a similar implementation to that used by `useSelectAll`.\n\t\t\t// `isShallowEqual` is used for the list view instead of a length check,\n\t\t\t// as the array of siblings of the currently focused block may be a different\n\t\t\t// set of blocks from the current block selection if the user is focused\n\t\t\t// on a different part of the list view from the block selection.\n\t\t\tif ( isShallowEqual( selectedBlockClientIds, blockClientIds ) ) {\n\t\t\t\t// Only select up a level if the first block is not the root block.\n\t\t\t\t// This ensures that the block selection can't break out of the root block\n\t\t\t\t// used by the list view, if the list view is only showing a partial hierarchy.\n\t\t\t\tif (\n\t\t\t\t\tfirstBlockRootClientId &&\n\t\t\t\t\tfirstBlockRootClientId !== rootClientId\n\t\t\t\t) {\n\t\t\t\t\tupdateFocusAndSelection( firstBlockRootClientId, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Select all while passing `null` to skip focusing to the editor canvas,\n\t\t\t// and retain focus within the list view.\n\t\t\tmultiSelect(\n\t\t\t\tblockClientIds[ 0 ],\n\t\t\t\tblockClientIds[ blockClientIds.length - 1 ],\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if ( isMatch( 'core/block-editor/collapse-list-view', event ) ) {\n\t\t\tevent.preventDefault();\n\t\t\tconst { firstBlockClientId } = getBlocksToUpdate();\n\t\t\tconst blockParents = getBlockParents( firstBlockClientId, false );\n\t\t\t// Collapse all blocks.\n\t\t\tcollapseAll();\n\t\t\t// Expand all parents of the current block.\n\t\t\texpand( blockParents );\n\t\t} else if ( isMatch( 'core/block-editor/group', event ) ) {\n\t\t\tconst { blocksToUpdate } = getBlocksToUpdate();\n\t\t\tif ( blocksToUpdate.length > 1 && isGroupable( blocksToUpdate ) ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst blocks = getBlocksByClientId( blocksToUpdate );\n\t\t\t\tconst groupingBlockName = getGroupingBlockName();\n\t\t\t\tconst newBlocks = switchToBlockType(\n\t\t\t\t\tblocks,\n\t\t\t\t\tgroupingBlockName\n\t\t\t\t);\n\t\t\t\treplaceBlocks( blocksToUpdate, newBlocks );\n\t\t\t\tspeak( __( 'Selected blocks are grouped.' ) );\n\t\t\t\tconst newlySelectedBlocks = getSelectedBlockClientIds();\n\t\t\t\t// Focus the first block of the newly inserted blocks, to keep focus within the list view.\n\t\t\t\tsetOpenedBlockSettingsMenu( undefined );\n\t\t\t\tupdateFocusAndSelection( newlySelectedBlocks[ 0 ], false );\n\t\t\t}\n\t\t}\n\t}\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\ttoggleBlockHighlight( clientId, true );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\ttoggleBlockHighlight( clientId, false );\n\t}, [ clientId, setIsHovered, toggleBlockHighlight ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t\tevent.preventDefault();\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst updateFocusAndSelection = useCallback(\n\t\t( focusClientId, shouldSelectBlock ) => {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, treeGridElementRef?.current );\n\t\t},\n\t\t[ selectBlock, treeGridElementRef ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\t// Allow right-clicking an item in the List View to open up the block settings dropdown.\n\tconst onContextMenu = useCallback(\n\t\t( event ) => {\n\t\t\tif ( showBlockActions && allowRightClickOverrides ) {\n\t\t\t\tsettingsRef.current?.click();\n\t\t\t\t// Ensure the position of the settings dropdown is at the cursor.\n\t\t\t\tsetSettingsAnchorRect(\n\t\t\t\t\tnew window.DOMRect( event.clientX, event.clientY, 0, 0 )\n\t\t\t\t);\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides, settingsRef, showBlockActions ]\n\t);\n\n\tconst onMouseDown = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent right-click from focusing the block,\n\t\t\t// because focus will be handled when opening the block settings dropdown.\n\t\t\tif ( allowRightClickOverrides && event.button === 2 ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t},\n\t\t[ allowRightClickOverrides ]\n\t);\n\n\tconst settingsPopoverAnchor = useMemo( () => {\n\t\tconst { ownerDocument } = rowRef?.current || {};\n\n\t\t// If no custom position is set, the settings dropdown will be anchored to the\n\t\t// DropdownMenu toggle button.\n\t\tif ( ! settingsAnchorRect || ! ownerDocument ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\t// Position the settings dropdown at the cursor when right-clicking a block.\n\t\treturn {\n\t\t\townerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\treturn settingsAnchorRect;\n\t\t\t},\n\t\t};\n\t}, [ settingsAnchorRect ] );\n\n\tconst clearSettingsAnchorRect = useCallback( () => {\n\t\t// Clear the custom position for the settings dropdown so that it is restored back\n\t\t// to being anchored to the DropdownMenu toggle button.\n\t\tsetSettingsAnchorRect( undefined );\n\t}, [ setSettingsAnchorRect ] );\n\n\t// Pass in a ref to the row, so that it can be scrolled\n\t// into view when selected. For long lists, the placeholder for the\n\t// selected block is also observed, within ListViewLeafPlaceholder.\n\tuseListViewScrollIntoView( {\n\t\tisSelected,\n\t\trowItemRef: rowRef,\n\t\tselectedClientIds,\n\t} );\n\n\t// When switching between rendering modes (such as template preview and content only),\n\t// it is possible for a block to temporarily be unavailable. In this case, we should not\n\t// render the leaf, to avoid errors further down the tree.\n\tif ( ! block ) {\n\t\treturn null;\n\t}\n\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\tconst blockPropertiesDescription = getBlockPropertiesDescription(\n\t\tblockInformation,\n\t\tisLocked\n\t);\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = clsx(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = clsx(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isFirstSelectedBlock }\n\t);\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( ! showBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = clsx( {\n\t\t'is-selected': isSelected,\n\t\t'is-first-selected': isFirstSelectedBlock,\n\t\t'is-last-selected': isLastSelectedBlock,\n\t\t'is-branch-selected': isBranchSelected,\n\t\t'is-synced-branch': isSyncedBranch,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': ! showBlockActions,\n\t\t'is-synced': blockInformation?.isSynced,\n\t\t'is-draggable': canMove,\n\t\t'is-displacement-normal': displacement === 'normal',\n\t\t'is-displacement-up': displacement === 'up',\n\t\t'is-displacement-down': displacement === 'down',\n\t\t'is-after-dragged-blocks': isAfterDraggedBlocks,\n\t\t'is-nesting': isNesting,\n\t} );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\t// Detect if there is a block in the canvas currently being edited and multi-selection is not happening.\n\tconst currentlyEditingBlockInCanvas =\n\t\tisSelected && selectedClientIds.length === 1;\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tisDragged={ isDragged }\n\t\t\tonKeyDown={ onKeyDown }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-${ listViewInstanceId }-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tdata-expanded={ canEdit ? isExpanded : undefined }\n\t\t\tref={ rowRef }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t\taria-selected={ !! isSelected }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonContextMenu={ onContextMenu }\n\t\t\t\t\t\t\tonMouseDown={ onMouseDown }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={\n\t\t\t\t\t\t\t\tcurrentlyEditingBlockInCanvas ? 0 : tabIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ canEdit ? isExpanded : undefined }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\tariaDescribedBy={ descriptionId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<AriaReferencedText id={ descriptionId }>\n\t\t\t\t\t\t\t{ [\n\t\t\t\t\t\t\t\tblockPositionDescription,\n\t\t\t\t\t\t\t\tblockPropertiesDescription,\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t.filter( Boolean )\n\t\t\t\t\t\t\t\t.join( ' ' ) }\n\t\t\t\t\t\t</AriaReferencedText>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && BlockSettingsMenu && (\n\t\t\t\t<TreeGridCell\n\t\t\t\t\tclassName={ listViewBlockSettingsClassName }\n\t\t\t\t\taria-selected={ !! isSelected }\n\t\t\t\t\tref={ settingsRef }\n\t\t\t\t>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsMenu\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ __( 'Options' ) }\n\t\t\t\t\t\t\tpopoverProps={ {\n\t\t\t\t\t\t\t\tanchor: settingsPopoverAnchor, // Used to position the settings at the cursor on right-click.\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonClick: clearSettingsAnchorRect,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\texpand={ expand }\n\t\t\t\t\t\t\texpandedState={ expandedState }\n\t\t\t\t\t\t\tsetInsertedBlock={ setInsertedBlock }\n\t\t\t\t\t\t\t__experimentalSelectBlock={\n\t\t\t\t\t\t\t\tupdateFocusAndSelection\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_element","_data","_appender","_block","_interopRequireDefault","_context","_utils","_store","_useBlockDisplayInformation","_jsxRuntime","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","_expandedState$block$","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","_expandedState$block$2","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","isSyncedBranch","showAppender","showAppenderProp","parentBlockInformation","useBlockDisplayInformation","syncedBranch","isSynced","canParentExpand","useSelect","select","blockEditorStore","canEditBlock","blockDropPosition","blockDropTargetIndex","firstDraggedBlockIndex","blockIndexes","useListViewContext","nextPositionRef","useRef","filteredBlocks","filter","Boolean","blockCount","rowCount","current","jsxs","Fragment","children","map","index","_expandedState$client","displacement","isAfterDraggedBlocks","isNesting","getDragDisplacementValues","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","isSelected","isClientIdSelected","isSelectedBranch","showBlock","AsyncModeProvider","value","jsx","default","siblingBlockCount","className","__experimentalTreeGridRow","setSize","positionInSet","__experimentalTreeGridCell","treeGridCellProps","Appender","nestingLevel","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { memo, useRef } from '@wordpress/element';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { Appender } from './appender';\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { getDragDisplacementValues, isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t\tisSyncedBranch = false,\n\t\tshowAppender: showAppenderProp = true,\n\t} = props;\n\n\tconst parentBlockInformation = useBlockDisplayInformation( parentId );\n\tconst syncedBranch = isSyncedBranch || !! parentBlockInformation?.isSynced;\n\n\tconst canParentExpand = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parentId ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn select( blockEditorStore ).canEditBlock( parentId );\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst {\n\t\tblockDropPosition,\n\t\tblockDropTargetIndex,\n\t\tfirstDraggedBlockIndex,\n\t\tblockIndexes,\n\t\texpandedState,\n\t\tdraggedClientIds,\n\t} = useListViewContext();\n\n\tconst nextPositionRef = useRef();\n\n\tif ( ! canParentExpand ) {\n\t\treturn null;\n\t}\n\n\t// Only show the appender at the first level.\n\tconst showAppender = showAppenderProp && level === 1;\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\t// The appender means an extra row in List View, so add 1 to the row count.\n\tconst rowCount = showAppender ? blockCount + 1 : blockCount;\n\tnextPositionRef.current = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPositionRef.current += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\t// Determine the displacement of the block while dragging. This\n\t\t\t\t// works out whether the current block should be displaced up or\n\t\t\t\t// down, relative to the dragged blocks and the drop target.\n\t\t\t\tconst { displacement, isAfterDraggedBlocks, isNesting } =\n\t\t\t\t\tgetDragDisplacementValues( {\n\t\t\t\t\t\tblockIndexes,\n\t\t\t\t\t\tblockDropTargetIndex,\n\t\t\t\t\t\tblockDropPosition,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tfirstDraggedBlockIndex,\n\t\t\t\t\t\tisDragged,\n\t\t\t\t\t} );\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPositionRef.current );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\n\t\t\t\t// To avoid performance issues, we only render blocks that are in view,\n\t\t\t\t// or blocks that are selected or dragged. If a block is selected,\n\t\t\t\t// it is only counted if it is the first of the block selection.\n\t\t\t\t// This prevents the entire tree from being rendered when a branch is\n\t\t\t\t// selected, or a user selects all blocks, while still enabling scroll\n\t\t\t\t// into view behavior when selecting a block or opening the list view.\n\t\t\t\t// The first and last blocks of the list are always rendered, to ensure\n\t\t\t\t// that Home and End keys work as expected.\n\t\t\t\tconst showBlock =\n\t\t\t\t\tisDragged ||\n\t\t\t\t\tblockInView ||\n\t\t\t\t\t( isSelected && clientId === selectedClientIds[ 0 ] ) ||\n\t\t\t\t\tindex === 0 ||\n\t\t\t\t\tindex === blockCount - 1;\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ rowCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ isDragged ? false : shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPositionRef.current }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t\tdisplacement={ displacement }\n\t\t\t\t\t\t\t\tisAfterDraggedBlocks={ isAfterDraggedBlocks }\n\t\t\t\t\t\t\t\tisNesting={ isNesting }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPositionRef.current + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ showAppender && (\n\t\t\t\t<TreeGridRow\n\t\t\t\t\tlevel={ level }\n\t\t\t\t\tsetSize={ rowCount }\n\t\t\t\t\tpositionInSet={ rowCount }\n\t\t\t\t\tisExpanded\n\t\t\t\t>\n\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t<Appender\n\t\t\t\t\t\t\t\tclientId={ parentId }\n\t\t\t\t\t\t\t\tnestingLevel={ level }\n\t\t\t\t\t\t\t\tblockCount={ blockCount }\n\t\t\t\t\t\t\t\t{ ...treeGridCellProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</TreeGridRow>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_components","require","_element","_data","_appender","_block","_interopRequireDefault","_context","_utils","_store","_useBlockDisplayInformation","_jsxRuntime","countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","_expandedState$block$","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","_expandedState$block$2","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","isSyncedBranch","showAppender","showAppenderProp","parentBlockInformation","useBlockDisplayInformation","syncedBranch","isSynced","canParentExpand","useSelect","select","blockEditorStore","canEditBlock","blockDropPosition","blockDropTargetIndex","firstDraggedBlockIndex","blockIndexes","useListViewContext","nextPositionRef","useRef","filteredBlocks","filter","Boolean","blockCount","rowCount","current","jsxs","Fragment","children","map","index","_expandedState$client","displacement","isAfterDraggedBlocks","isNesting","getDragDisplacementValues","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","isSelected","isClientIdSelected","isSelectedBranch","showBlock","AsyncModeProvider","value","jsx","default","siblingBlockCount","className","__experimentalTreeGridRow","setSize","positionInSet","__experimentalTreeGridCell","treeGridCellProps","Appender","nestingLevel","_default","exports","memo"],"sources":["@wordpress/block-editor/src/components/list-view/branch.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { memo, useRef } from '@wordpress/element';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { Appender } from './appender';\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { getDragDisplacementValues, isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t\tisSyncedBranch = false,\n\t\tshowAppender: showAppenderProp = true,\n\t} = props;\n\n\tconst parentBlockInformation = useBlockDisplayInformation( parentId );\n\tconst syncedBranch = isSyncedBranch || !! parentBlockInformation?.isSynced;\n\n\tconst canParentExpand = useSelect(\n\t\t( select ) => {\n\t\t\tif ( ! parentId ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\treturn select( blockEditorStore ).canEditBlock( parentId );\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst {\n\t\tblockDropPosition,\n\t\tblockDropTargetIndex,\n\t\tfirstDraggedBlockIndex,\n\t\tblockIndexes,\n\t\texpandedState,\n\t\tdraggedClientIds,\n\t} = useListViewContext();\n\n\tconst nextPositionRef = useRef();\n\n\tif ( ! canParentExpand ) {\n\t\treturn null;\n\t}\n\n\t// Only show the appender at the first level.\n\tconst showAppender = showAppenderProp && level === 1;\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\t// The appender means an extra row in List View, so add 1 to the row count.\n\tconst rowCount = showAppender ? blockCount + 1 : blockCount;\n\tnextPositionRef.current = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPositionRef.current += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\t// Determine the displacement of the block while dragging. This\n\t\t\t\t// works out whether the current block should be displaced up or\n\t\t\t\t// down, relative to the dragged blocks and the drop target.\n\t\t\t\tconst { displacement, isAfterDraggedBlocks, isNesting } =\n\t\t\t\t\tgetDragDisplacementValues( {\n\t\t\t\t\t\tblockIndexes,\n\t\t\t\t\t\tblockDropTargetIndex,\n\t\t\t\t\t\tblockDropPosition,\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\tfirstDraggedBlockIndex,\n\t\t\t\t\t\tisDragged,\n\t\t\t\t\t} );\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPositionRef.current );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\n\t\t\t\t// To avoid performance issues, we only render blocks that are in view,\n\t\t\t\t// or blocks that are selected or dragged. If a block is selected,\n\t\t\t\t// it is only counted if it is the first of the block selection.\n\t\t\t\t// This prevents the entire tree from being rendered when a branch is\n\t\t\t\t// selected, or a user selects all blocks, while still enabling scroll\n\t\t\t\t// into view behavior when selecting a block or opening the list view.\n\t\t\t\t// The first and last blocks of the list are always rendered, to ensure\n\t\t\t\t// that Home and End keys work as expected.\n\t\t\t\tconst showBlock =\n\t\t\t\t\tisDragged ||\n\t\t\t\t\tblockInView ||\n\t\t\t\t\t( isSelected && clientId === selectedClientIds[ 0 ] ) ||\n\t\t\t\t\tindex === 0 ||\n\t\t\t\t\tindex === blockCount - 1;\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ rowCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ isDragged ? false : shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPositionRef.current }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t\tdisplacement={ displacement }\n\t\t\t\t\t\t\t\tisAfterDraggedBlocks={ isAfterDraggedBlocks }\n\t\t\t\t\t\t\t\tisNesting={ isNesting }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPositionRef.current + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tisSyncedBranch={ syncedBranch }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ showAppender && (\n\t\t\t\t<TreeGridRow\n\t\t\t\t\tlevel={ level }\n\t\t\t\t\tsetSize={ rowCount }\n\t\t\t\t\tpositionInSet={ rowCount }\n\t\t\t\t\tisExpanded\n\t\t\t\t>\n\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t<Appender\n\t\t\t\t\t\t\t\tclientId={ parentId }\n\t\t\t\t\t\t\t\tnestingLevel={ level }\n\t\t\t\t\t\t\t\tblockCount={ blockCount }\n\t\t\t\t\t\t\t\t{ ...treeGridCellProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</TreeGridRow>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_data","_deprecated","_element","_i18n","_branch","_context","_dropIndicator","_useBlockSelection","_useListViewBlockIndexes","_useListViewClientIds","_useListViewCollapseItems","_useListViewDropZone","_useListViewExpandSelectedItem","_store","_blockSettingsDropdown","_utils","_useClipboardHandler","_jsxRuntime","expanded","state","action","type","Array","isArray","clientIds","reduce","newState","id","BLOCK_LIST_ITEM_HEIGHT","exports","ListViewComponent","blocks","dropZoneElement","showBlockMovers","isExpanded","showAppender","blockSettingsMenu","BlockSettingsMenu","BlockSettingsDropdown","rootClientId","description","onSelect","additionalBlockContent","AdditionalBlockContent","ref","deprecated","since","alternative","instanceId","useInstanceId","clientIdsTree","draggedClientIds","selectedClientIds","useListViewClientIds","blockIndexes","useListViewBlockIndexes","getBlock","useSelect","blockEditorStore","visibleBlockCount","select","getGlobalBlockCount","getClientIdsOfDescendants","draggedBlockCount","length","updateBlockSelection","useBlockSelection","expandedState","setExpandedState","useReducer","insertedBlock","setInsertedBlock","useState","setSelectedTreeId","useListViewExpandSelectedItem","firstSelectedBlockClientId","selectEditorBlock","useCallback","event","blockClientId","focusPosition","dropZoneRef","target","blockDropTarget","useListViewDropZone","elementRef","useRef","clipBoardRef","useClipboardHandler","selectBlock","treeGridRef","useMergeRefs","useEffect","focusListItem","current","expand","clientId","collapse","collapseAll","expandRow","row","dataset","block","collapseRow","focusRow","startRow","endRow","shiftKey","useListViewCollapseItems","firstDraggedBlockClientId","blockDropTargetIndex","blockDropPosition","firstDraggedBlockIndex","useMemo","_blockDropTargetIndex","_firstDraggedBlockIndex","foundBlockIndex","undefined","dropPosition","contextValue","listViewInstanceId","treeGridElementRef","fixedListWindow","useFixedWindowList","useWindowing","windowOverscan","describedById","jsxs","AsyncModeProvider","value","children","jsx","default","draggedBlockClientId","listViewRef","VisuallyHidden","__experimentalTreeGrid","className","clsx","__","onCollapseRow","onExpandRow","onFocusRow","applicationAriaLabel","style","ListViewContext","Provider","parentId","PrivateListView","forwardRef","_default","props"],"sources":["@wordpress/block-editor/src/components/list-view/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseInstanceId,\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport {\n\t__experimentalTreeGrid as TreeGrid,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicatorPreview from './drop-indicator';\nimport useBlockSelection from './use-block-selection';\nimport useListViewBlockIndexes from './use-list-view-block-indexes';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewCollapseItems from './use-list-view-collapse-items';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport useListViewExpandSelectedItem from './use-list-view-expand-selected-item';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockSettingsDropdown } from '../block-settings-menu/block-settings-dropdown';\nimport { focusListItem } from './utils';\nimport useClipboardHandler from './use-clipboard-handler';\n\nconst expanded = ( state, action ) => {\n\tif ( action.type === 'clear' ) {\n\t\treturn {};\n\t}\n\tif ( Array.isArray( action.clientIds ) ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.clientIds.reduce(\n\t\t\t\t( newState, id ) => ( {\n\t\t\t\t\t...newState,\n\t\t\t\t\t[ id ]: action.type === 'expand',\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t};\n\t}\n\treturn state;\n};\n\nexport const BLOCK_LIST_ITEM_HEIGHT = 32;\n\n/** @typedef {import('react').ComponentType} ComponentType */\n/** @typedef {import('react').Ref<HTMLElement>} Ref */\n\n/**\n * Show a hierarchical list of blocks.\n *\n * @param {Object} props Components props.\n * @param {string} props.id An HTML element id for the root element of ListView.\n * @param {Array} props.blocks _deprecated_ Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {?HTMLElement} props.dropZoneElement Optional element to be used as the drop zone.\n * @param {?boolean} props.showBlockMovers Flag to enable block movers. Defaults to `false`.\n * @param {?boolean} props.isExpanded Flag to determine whether nested levels are expanded by default. Defaults to `false`.\n * @param {?boolean} props.showAppender Flag to show or hide the block appender. Defaults to `false`.\n * @param {?ComponentType} props.blockSettingsMenu Optional more menu substitution. Defaults to the standard `BlockSettingsDropdown` component.\n * @param {string} props.rootClientId The client id of the root block from which we determine the blocks to show in the list.\n * @param {string} props.description Optional accessible description for the tree grid component.\n * @param {?Function} props.onSelect Optional callback to be invoked when a block is selected. Receives the block object that was selected.\n * @param {?ComponentType} props.additionalBlockContent Component that renders additional block content UI.\n * @param {Ref} ref Forwarded ref\n */\nfunction ListViewComponent(\n\t{\n\t\tid,\n\t\tblocks,\n\t\tdropZoneElement,\n\t\tshowBlockMovers = false,\n\t\tisExpanded = false,\n\t\tshowAppender = false,\n\t\tblockSettingsMenu: BlockSettingsMenu = BlockSettingsDropdown,\n\t\trootClientId,\n\t\tdescription,\n\t\tonSelect,\n\t\tadditionalBlockContent: AdditionalBlockContent,\n\t},\n\tref\n) {\n\t// This can be removed once we no longer need to support the blocks prop.\n\tif ( blocks ) {\n\t\tdeprecated(\n\t\t\t'`blocks` property in `wp.blockEditor.__experimentalListView`',\n\t\t\t{\n\t\t\t\tsince: '6.3',\n\t\t\t\talternative: '`rootClientId` property',\n\t\t\t}\n\t\t);\n\t}\n\n\tconst instanceId = useInstanceId( ListViewComponent );\n\tconst { clientIdsTree, draggedClientIds, selectedClientIds } =\n\t\tuseListViewClientIds( { blocks, rootClientId } );\n\tconst blockIndexes = useListViewBlockIndexes( clientIdsTree );\n\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst { visibleBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getGlobalBlockCount, getClientIdsOfDescendants } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\n\tconst { updateBlockSelection } = useBlockSelection();\n\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst [ insertedBlock, setInsertedBlock ] = useState( null );\n\n\tconst { setSelectedTreeId } = useListViewExpandSelectedItem( {\n\t\tfirstSelectedBlockClientId: selectedClientIds[ 0 ],\n\t\tsetExpandedState,\n\t} );\n\tconst selectEditorBlock = useCallback(\n\t\t/**\n\t\t * @param {MouseEvent | KeyboardEvent | undefined} event\n\t\t * @param {string} blockClientId\n\t\t * @param {null | undefined | -1 | 1} focusPosition\n\t\t */\n\t\t( event, blockClientId, focusPosition ) => {\n\t\t\tupdateBlockSelection( event, blockClientId, null, focusPosition );\n\t\t\tsetSelectedTreeId( blockClientId );\n\t\t\tif ( onSelect ) {\n\t\t\t\tonSelect( getBlock( blockClientId ) );\n\t\t\t}\n\t\t},\n\t\t[ setSelectedTreeId, updateBlockSelection, onSelect, getBlock ]\n\t);\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone( {\n\t\tdropZoneElement,\n\t\texpandedState,\n\t\tsetExpandedState,\n\t} );\n\tconst elementRef = useRef();\n\n\t// Allow handling of copy, cut, and paste events.\n\tconst clipBoardRef = useClipboardHandler( {\n\t\tselectBlock: selectEditorBlock,\n\t} );\n\n\tconst treeGridRef = useMergeRefs( [\n\t\tclipBoardRef,\n\t\telementRef,\n\t\tdropZoneRef,\n\t\tref,\n\t] );\n\n\tuseEffect( () => {\n\t\t// If a blocks are already selected when the list view is initially\n\t\t// mounted, shift focus to the first selected block.\n\t\tif ( selectedClientIds?.length ) {\n\t\t\tfocusListItem( selectedClientIds[ 0 ], elementRef?.current );\n\t\t}\n\t\t// Only focus on the selected item when the list view is mounted.\n\t}, [] );\n\n\tconst expand = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst clientIds = Array.isArray( clientId )\n\t\t\t\t? clientId\n\t\t\t\t: [ clientId ];\n\t\t\tsetExpandedState( { type: 'expand', clientIds } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( { type: 'collapse', clientIds: [ clientId ] } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapseAll = useCallback( () => {\n\t\tsetExpandedState( { type: 'clear' } );\n\t}, [ setExpandedState ] );\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\tconst focusRow = useCallback(\n\t\t( event, startRow, endRow ) => {\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tupdateBlockSelection(\n\t\t\t\t\tevent,\n\t\t\t\t\tstartRow?.dataset?.block,\n\t\t\t\t\tendRow?.dataset?.block\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ updateBlockSelection ]\n\t);\n\n\tuseListViewCollapseItems( {\n\t\tcollapseAll,\n\t\texpand,\n\t} );\n\n\tconst firstDraggedBlockClientId = draggedClientIds?.[ 0 ];\n\n\t// Convert a blockDropTarget into indexes relative to the blocks in the list view.\n\t// These values are used to determine which blocks should be displaced to make room\n\t// for the drop indicator. See `ListViewBranch` and `getDragDisplacementValues`.\n\tconst { blockDropTargetIndex, blockDropPosition, firstDraggedBlockIndex } =\n\t\tuseMemo( () => {\n\t\t\tlet _blockDropTargetIndex, _firstDraggedBlockIndex;\n\n\t\t\tif ( blockDropTarget?.clientId ) {\n\t\t\t\tconst foundBlockIndex =\n\t\t\t\t\tblockIndexes[ blockDropTarget.clientId ];\n\t\t\t\t// If dragging below or inside the block, treat the drop target as the next block.\n\t\t\t\t_blockDropTargetIndex =\n\t\t\t\t\tfoundBlockIndex === undefined ||\n\t\t\t\t\tblockDropTarget?.dropPosition === 'top'\n\t\t\t\t\t\t? foundBlockIndex\n\t\t\t\t\t\t: foundBlockIndex + 1;\n\t\t\t} else if ( blockDropTarget === null ) {\n\t\t\t\t// A `null` value is used to indicate that the user is dragging outside of the list view.\n\t\t\t\t_blockDropTargetIndex = null;\n\t\t\t}\n\n\t\t\tif ( firstDraggedBlockClientId ) {\n\t\t\t\tconst foundBlockIndex =\n\t\t\t\t\tblockIndexes[ firstDraggedBlockClientId ];\n\t\t\t\t_firstDraggedBlockIndex =\n\t\t\t\t\tfoundBlockIndex === undefined ||\n\t\t\t\t\tblockDropTarget?.dropPosition === 'top'\n\t\t\t\t\t\t? foundBlockIndex\n\t\t\t\t\t\t: foundBlockIndex + 1;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockDropTargetIndex: _blockDropTargetIndex,\n\t\t\t\tblockDropPosition: blockDropTarget?.dropPosition,\n\t\t\t\tfirstDraggedBlockIndex: _firstDraggedBlockIndex,\n\t\t\t};\n\t\t}, [ blockDropTarget, blockIndexes, firstDraggedBlockClientId ] );\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tblockDropPosition,\n\t\t\tblockDropTargetIndex,\n\t\t\tblockIndexes,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tfirstDraggedBlockIndex,\n\t\t\tcollapse,\n\t\t\tcollapseAll,\n\t\t\tBlockSettingsMenu,\n\t\t\tlistViewInstanceId: instanceId,\n\t\t\tAdditionalBlockContent,\n\t\t\tinsertedBlock,\n\t\t\tsetInsertedBlock,\n\t\t\ttreeGridElementRef: elementRef,\n\t\t\trootClientId,\n\t\t} ),\n\t\t[\n\t\t\tblockDropPosition,\n\t\t\tblockDropTargetIndex,\n\t\t\tblockIndexes,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tfirstDraggedBlockIndex,\n\t\t\tcollapse,\n\t\t\tcollapseAll,\n\t\t\tBlockSettingsMenu,\n\t\t\tinstanceId,\n\t\t\tAdditionalBlockContent,\n\t\t\tinsertedBlock,\n\t\t\tsetInsertedBlock,\n\t\t\trootClientId,\n\t\t]\n\t);\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\tBLOCK_LIST_ITEM_HEIGHT,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\t// Ensure that the windowing logic is recalculated when the expanded state changes.\n\t\t\t// This is necessary because expanding a collapsed block in a short list view can\n\t\t\t// switch the list view to a tall list view with a scrollbar, and vice versa.\n\t\t\t// When this happens, the windowing logic needs to be recalculated to ensure that\n\t\t\t// the correct number of blocks are rendered, by rechecking for a scroll container.\n\t\t\texpandedState,\n\t\t\tuseWindowing: true,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\t// If there are no blocks to show and we're not showing the appender, do not render the list view.\n\tif ( ! clientIdsTree.length && ! showAppender ) {\n\t\treturn null;\n\t}\n\n\tconst describedById =\n\t\tdescription && `block-editor-list-view-description-${ instanceId }`;\n\n\treturn (\n\t\t<AsyncModeProvider value>\n\t\t\t<ListViewDropIndicatorPreview\n\t\t\t\tdraggedBlockClientId={ firstDraggedBlockClientId }\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t{ description && (\n\t\t\t\t<VisuallyHidden id={ describedById }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t\t<TreeGrid\n\t\t\t\tid={ id }\n\t\t\t\tclassName={ clsx( 'block-editor-list-view-tree', {\n\t\t\t\t\t'is-dragging':\n\t\t\t\t\t\tdraggedClientIds?.length > 0 &&\n\t\t\t\t\t\tblockDropTargetIndex !== undefined,\n\t\t\t\t} ) }\n\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\tref={ treeGridRef }\n\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\tonExpandRow={ expandRow }\n\t\t\t\tonFocusRow={ focusRow }\n\t\t\t\tapplicationAriaLabel={ __( 'Block navigation structure' ) }\n\t\t\t\taria-describedby={ describedById }\n\t\t\t\tstyle={ {\n\t\t\t\t\t'--wp-admin--list-view-dragged-items-height':\n\t\t\t\t\t\tdraggedClientIds?.length\n\t\t\t\t\t\t\t? `${\n\t\t\t\t\t\t\t\t\tBLOCK_LIST_ITEM_HEIGHT *\n\t\t\t\t\t\t\t\t\t( draggedClientIds.length - 1 )\n\t\t\t\t\t\t\t }px`\n\t\t\t\t\t\t\t: null,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\tparentId={ rootClientId }\n\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\tshowAppender={ showAppender }\n\t\t\t\t\t/>\n\t\t\t\t</ListViewContext.Provider>\n\t\t\t</TreeGrid>\n\t\t</AsyncModeProvider>\n\t);\n}\n\n// This is the private API for the ListView component.\n// It allows access to all props, not just the public ones.\nexport const PrivateListView = forwardRef( ListViewComponent );\n\n// This is the public API for the ListView component.\n// We wrap the PrivateListView component to hide some props from the public API.\nexport default forwardRef( ( props, ref ) => {\n\treturn (\n\t\t<PrivateListView\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\tshowAppender={ false }\n\t\t\trootClientId={ null }\n\t\t\tonSelect={ null }\n\t\t\tadditionalBlockContent={ null }\n\t\t\tblockSettingsMenu={ undefined }\n\t\t/>\n\t);\n} );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_clsx","_interopRequireDefault","require","_compose","_components","_data","_deprecated","_element","_i18n","_branch","_context","_dropIndicator","_useBlockSelection","_useListViewBlockIndexes","_useListViewClientIds","_useListViewCollapseItems","_useListViewDropZone","_useListViewExpandSelectedItem","_store","_blockSettingsDropdown","_utils","_useClipboardHandler","_jsxRuntime","expanded","state","action","type","Array","isArray","clientIds","reduce","newState","id","BLOCK_LIST_ITEM_HEIGHT","exports","ListViewComponent","blocks","dropZoneElement","showBlockMovers","isExpanded","showAppender","blockSettingsMenu","BlockSettingsMenu","BlockSettingsDropdown","rootClientId","description","onSelect","additionalBlockContent","AdditionalBlockContent","ref","deprecated","since","alternative","instanceId","useInstanceId","clientIdsTree","draggedClientIds","selectedClientIds","useListViewClientIds","blockIndexes","useListViewBlockIndexes","getBlock","useSelect","blockEditorStore","visibleBlockCount","select","getGlobalBlockCount","getClientIdsOfDescendants","draggedBlockCount","length","updateBlockSelection","useBlockSelection","expandedState","setExpandedState","useReducer","insertedBlock","setInsertedBlock","useState","setSelectedTreeId","useListViewExpandSelectedItem","firstSelectedBlockClientId","selectEditorBlock","useCallback","event","blockClientId","focusPosition","dropZoneRef","target","blockDropTarget","useListViewDropZone","elementRef","useRef","clipBoardRef","useClipboardHandler","selectBlock","treeGridRef","useMergeRefs","useEffect","focusListItem","current","expand","clientId","collapse","collapseAll","expandRow","row","dataset","block","collapseRow","focusRow","startRow","endRow","shiftKey","useListViewCollapseItems","firstDraggedBlockClientId","blockDropTargetIndex","blockDropPosition","firstDraggedBlockIndex","useMemo","_blockDropTargetIndex","_firstDraggedBlockIndex","foundBlockIndex","undefined","dropPosition","contextValue","listViewInstanceId","treeGridElementRef","fixedListWindow","useFixedWindowList","useWindowing","windowOverscan","describedById","jsxs","AsyncModeProvider","value","children","jsx","default","draggedBlockClientId","listViewRef","VisuallyHidden","__experimentalTreeGrid","className","clsx","__","onCollapseRow","onExpandRow","onFocusRow","applicationAriaLabel","style","ListViewContext","Provider","parentId","PrivateListView","forwardRef","_default","props"],"sources":["@wordpress/block-editor/src/components/list-view/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseInstanceId,\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport {\n\t__experimentalTreeGrid as TreeGrid,\n\tVisuallyHidden,\n} from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n\tuseState,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicatorPreview from './drop-indicator';\nimport useBlockSelection from './use-block-selection';\nimport useListViewBlockIndexes from './use-list-view-block-indexes';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewCollapseItems from './use-list-view-collapse-items';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport useListViewExpandSelectedItem from './use-list-view-expand-selected-item';\nimport { store as blockEditorStore } from '../../store';\nimport { BlockSettingsDropdown } from '../block-settings-menu/block-settings-dropdown';\nimport { focusListItem } from './utils';\nimport useClipboardHandler from './use-clipboard-handler';\n\nconst expanded = ( state, action ) => {\n\tif ( action.type === 'clear' ) {\n\t\treturn {};\n\t}\n\tif ( Array.isArray( action.clientIds ) ) {\n\t\treturn {\n\t\t\t...state,\n\t\t\t...action.clientIds.reduce(\n\t\t\t\t( newState, id ) => ( {\n\t\t\t\t\t...newState,\n\t\t\t\t\t[ id ]: action.type === 'expand',\n\t\t\t\t} ),\n\t\t\t\t{}\n\t\t\t),\n\t\t};\n\t}\n\treturn state;\n};\n\nexport const BLOCK_LIST_ITEM_HEIGHT = 32;\n\n/** @typedef {import('react').ComponentType} ComponentType */\n/** @typedef {import('react').Ref<HTMLElement>} Ref */\n\n/**\n * Show a hierarchical list of blocks.\n *\n * @param {Object} props Components props.\n * @param {string} props.id An HTML element id for the root element of ListView.\n * @param {Array} props.blocks _deprecated_ Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {?HTMLElement} props.dropZoneElement Optional element to be used as the drop zone.\n * @param {?boolean} props.showBlockMovers Flag to enable block movers. Defaults to `false`.\n * @param {?boolean} props.isExpanded Flag to determine whether nested levels are expanded by default. Defaults to `false`.\n * @param {?boolean} props.showAppender Flag to show or hide the block appender. Defaults to `false`.\n * @param {?ComponentType} props.blockSettingsMenu Optional more menu substitution. Defaults to the standard `BlockSettingsDropdown` component.\n * @param {string} props.rootClientId The client id of the root block from which we determine the blocks to show in the list.\n * @param {string} props.description Optional accessible description for the tree grid component.\n * @param {?Function} props.onSelect Optional callback to be invoked when a block is selected. Receives the block object that was selected.\n * @param {?ComponentType} props.additionalBlockContent Component that renders additional block content UI.\n * @param {Ref} ref Forwarded ref\n */\nfunction ListViewComponent(\n\t{\n\t\tid,\n\t\tblocks,\n\t\tdropZoneElement,\n\t\tshowBlockMovers = false,\n\t\tisExpanded = false,\n\t\tshowAppender = false,\n\t\tblockSettingsMenu: BlockSettingsMenu = BlockSettingsDropdown,\n\t\trootClientId,\n\t\tdescription,\n\t\tonSelect,\n\t\tadditionalBlockContent: AdditionalBlockContent,\n\t},\n\tref\n) {\n\t// This can be removed once we no longer need to support the blocks prop.\n\tif ( blocks ) {\n\t\tdeprecated(\n\t\t\t'`blocks` property in `wp.blockEditor.__experimentalListView`',\n\t\t\t{\n\t\t\t\tsince: '6.3',\n\t\t\t\talternative: '`rootClientId` property',\n\t\t\t}\n\t\t);\n\t}\n\n\tconst instanceId = useInstanceId( ListViewComponent );\n\tconst { clientIdsTree, draggedClientIds, selectedClientIds } =\n\t\tuseListViewClientIds( { blocks, rootClientId } );\n\tconst blockIndexes = useListViewBlockIndexes( clientIdsTree );\n\n\tconst { getBlock } = useSelect( blockEditorStore );\n\tconst { visibleBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getGlobalBlockCount, getClientIdsOfDescendants } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\n\tconst { updateBlockSelection } = useBlockSelection();\n\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst [ insertedBlock, setInsertedBlock ] = useState( null );\n\n\tconst { setSelectedTreeId } = useListViewExpandSelectedItem( {\n\t\tfirstSelectedBlockClientId: selectedClientIds[ 0 ],\n\t\tsetExpandedState,\n\t} );\n\tconst selectEditorBlock = useCallback(\n\t\t/**\n\t\t * @param {MouseEvent | KeyboardEvent | undefined} event\n\t\t * @param {string} blockClientId\n\t\t * @param {null | undefined | -1 | 1} focusPosition\n\t\t */\n\t\t( event, blockClientId, focusPosition ) => {\n\t\t\tupdateBlockSelection( event, blockClientId, null, focusPosition );\n\t\t\tsetSelectedTreeId( blockClientId );\n\t\t\tif ( onSelect ) {\n\t\t\t\tonSelect( getBlock( blockClientId ) );\n\t\t\t}\n\t\t},\n\t\t[ setSelectedTreeId, updateBlockSelection, onSelect, getBlock ]\n\t);\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone( {\n\t\tdropZoneElement,\n\t\texpandedState,\n\t\tsetExpandedState,\n\t} );\n\tconst elementRef = useRef();\n\n\t// Allow handling of copy, cut, and paste events.\n\tconst clipBoardRef = useClipboardHandler( {\n\t\tselectBlock: selectEditorBlock,\n\t} );\n\n\tconst treeGridRef = useMergeRefs( [\n\t\tclipBoardRef,\n\t\telementRef,\n\t\tdropZoneRef,\n\t\tref,\n\t] );\n\n\tuseEffect( () => {\n\t\t// If a blocks are already selected when the list view is initially\n\t\t// mounted, shift focus to the first selected block.\n\t\tif ( selectedClientIds?.length ) {\n\t\t\tfocusListItem( selectedClientIds[ 0 ], elementRef?.current );\n\t\t}\n\t\t// Only focus on the selected item when the list view is mounted.\n\t}, [] );\n\n\tconst expand = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst clientIds = Array.isArray( clientId )\n\t\t\t\t? clientId\n\t\t\t\t: [ clientId ];\n\t\t\tsetExpandedState( { type: 'expand', clientIds } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( { type: 'collapse', clientIds: [ clientId ] } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapseAll = useCallback( () => {\n\t\tsetExpandedState( { type: 'clear' } );\n\t}, [ setExpandedState ] );\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\tconst focusRow = useCallback(\n\t\t( event, startRow, endRow ) => {\n\t\t\tif ( event.shiftKey ) {\n\t\t\t\tupdateBlockSelection(\n\t\t\t\t\tevent,\n\t\t\t\t\tstartRow?.dataset?.block,\n\t\t\t\t\tendRow?.dataset?.block\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t\t[ updateBlockSelection ]\n\t);\n\n\tuseListViewCollapseItems( {\n\t\tcollapseAll,\n\t\texpand,\n\t} );\n\n\tconst firstDraggedBlockClientId = draggedClientIds?.[ 0 ];\n\n\t// Convert a blockDropTarget into indexes relative to the blocks in the list view.\n\t// These values are used to determine which blocks should be displaced to make room\n\t// for the drop indicator. See `ListViewBranch` and `getDragDisplacementValues`.\n\tconst { blockDropTargetIndex, blockDropPosition, firstDraggedBlockIndex } =\n\t\tuseMemo( () => {\n\t\t\tlet _blockDropTargetIndex, _firstDraggedBlockIndex;\n\n\t\t\tif ( blockDropTarget?.clientId ) {\n\t\t\t\tconst foundBlockIndex =\n\t\t\t\t\tblockIndexes[ blockDropTarget.clientId ];\n\t\t\t\t// If dragging below or inside the block, treat the drop target as the next block.\n\t\t\t\t_blockDropTargetIndex =\n\t\t\t\t\tfoundBlockIndex === undefined ||\n\t\t\t\t\tblockDropTarget?.dropPosition === 'top'\n\t\t\t\t\t\t? foundBlockIndex\n\t\t\t\t\t\t: foundBlockIndex + 1;\n\t\t\t} else if ( blockDropTarget === null ) {\n\t\t\t\t// A `null` value is used to indicate that the user is dragging outside of the list view.\n\t\t\t\t_blockDropTargetIndex = null;\n\t\t\t}\n\n\t\t\tif ( firstDraggedBlockClientId ) {\n\t\t\t\tconst foundBlockIndex =\n\t\t\t\t\tblockIndexes[ firstDraggedBlockClientId ];\n\t\t\t\t_firstDraggedBlockIndex =\n\t\t\t\t\tfoundBlockIndex === undefined ||\n\t\t\t\t\tblockDropTarget?.dropPosition === 'top'\n\t\t\t\t\t\t? foundBlockIndex\n\t\t\t\t\t\t: foundBlockIndex + 1;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tblockDropTargetIndex: _blockDropTargetIndex,\n\t\t\t\tblockDropPosition: blockDropTarget?.dropPosition,\n\t\t\t\tfirstDraggedBlockIndex: _firstDraggedBlockIndex,\n\t\t\t};\n\t\t}, [ blockDropTarget, blockIndexes, firstDraggedBlockClientId ] );\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tblockDropPosition,\n\t\t\tblockDropTargetIndex,\n\t\t\tblockIndexes,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tfirstDraggedBlockIndex,\n\t\t\tcollapse,\n\t\t\tcollapseAll,\n\t\t\tBlockSettingsMenu,\n\t\t\tlistViewInstanceId: instanceId,\n\t\t\tAdditionalBlockContent,\n\t\t\tinsertedBlock,\n\t\t\tsetInsertedBlock,\n\t\t\ttreeGridElementRef: elementRef,\n\t\t\trootClientId,\n\t\t} ),\n\t\t[\n\t\t\tblockDropPosition,\n\t\t\tblockDropTargetIndex,\n\t\t\tblockIndexes,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tfirstDraggedBlockIndex,\n\t\t\tcollapse,\n\t\t\tcollapseAll,\n\t\t\tBlockSettingsMenu,\n\t\t\tinstanceId,\n\t\t\tAdditionalBlockContent,\n\t\t\tinsertedBlock,\n\t\t\tsetInsertedBlock,\n\t\t\trootClientId,\n\t\t]\n\t);\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\tBLOCK_LIST_ITEM_HEIGHT,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\t// Ensure that the windowing logic is recalculated when the expanded state changes.\n\t\t\t// This is necessary because expanding a collapsed block in a short list view can\n\t\t\t// switch the list view to a tall list view with a scrollbar, and vice versa.\n\t\t\t// When this happens, the windowing logic needs to be recalculated to ensure that\n\t\t\t// the correct number of blocks are rendered, by rechecking for a scroll container.\n\t\t\texpandedState,\n\t\t\tuseWindowing: true,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\t// If there are no blocks to show and we're not showing the appender, do not render the list view.\n\tif ( ! clientIdsTree.length && ! showAppender ) {\n\t\treturn null;\n\t}\n\n\tconst describedById =\n\t\tdescription && `block-editor-list-view-description-${ instanceId }`;\n\n\treturn (\n\t\t<AsyncModeProvider value>\n\t\t\t<ListViewDropIndicatorPreview\n\t\t\t\tdraggedBlockClientId={ firstDraggedBlockClientId }\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t{ description && (\n\t\t\t\t<VisuallyHidden id={ describedById }>\n\t\t\t\t\t{ description }\n\t\t\t\t</VisuallyHidden>\n\t\t\t) }\n\t\t\t<TreeGrid\n\t\t\t\tid={ id }\n\t\t\t\tclassName={ clsx( 'block-editor-list-view-tree', {\n\t\t\t\t\t'is-dragging':\n\t\t\t\t\t\tdraggedClientIds?.length > 0 &&\n\t\t\t\t\t\tblockDropTargetIndex !== undefined,\n\t\t\t\t} ) }\n\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\tref={ treeGridRef }\n\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\tonExpandRow={ expandRow }\n\t\t\t\tonFocusRow={ focusRow }\n\t\t\t\tapplicationAriaLabel={ __( 'Block navigation structure' ) }\n\t\t\t\taria-describedby={ describedById }\n\t\t\t\tstyle={ {\n\t\t\t\t\t'--wp-admin--list-view-dragged-items-height':\n\t\t\t\t\t\tdraggedClientIds?.length\n\t\t\t\t\t\t\t? `${\n\t\t\t\t\t\t\t\t\tBLOCK_LIST_ITEM_HEIGHT *\n\t\t\t\t\t\t\t\t\t( draggedClientIds.length - 1 )\n\t\t\t\t\t\t\t }px`\n\t\t\t\t\t\t\t: null,\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\tparentId={ rootClientId }\n\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\tshowAppender={ showAppender }\n\t\t\t\t\t/>\n\t\t\t\t</ListViewContext.Provider>\n\t\t\t</TreeGrid>\n\t\t</AsyncModeProvider>\n\t);\n}\n\n// This is the private API for the ListView component.\n// It allows access to all props, not just the public ones.\nexport const PrivateListView = forwardRef( ListViewComponent );\n\n// This is the public API for the ListView component.\n// We wrap the PrivateListView component to hide some props from the public API.\nexport default forwardRef( ( props, ref ) => {\n\treturn (\n\t\t<PrivateListView\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\tshowAppender={ false }\n\t\t\trootClientId={ null }\n\t\t\tonSelect={ null }\n\t\t\tadditionalBlockContent={ null }\n\t\t\tblockSettingsMenu={ undefined }\n\t\t/>\n\t);\n} );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_a11y","require","_i18n","_data","_element","_keycodes","_blocks","_store","_utils","useBlockSelection","clearSelectedBlock","multiSelect","selectBlock","useDispatch","blockEditorStore","getBlockName","getBlockParents","getBlockSelectionStart","getSelectedBlockClientIds","hasMultiSelection","hasSelectedBlock","useSelect","getBlockType","blocksStore","updateBlockSelection","useCallback","event","clientId","destinationClientId","focusPosition","shiftKey","keyCode","ESCAPE","preventDefault","isOnlyDeselection","type","isKeyPress","UP","DOWN","HOME","END","selectedBlocks","clientIdWithParents","some","blockId","includes","startTarget","endTarget","startParents","endParents","start","end","getCommonDepthClientIds","updatedSelectedBlocks","length","selectionDiff","filter","label","title","sprintf","__","speak"],"sources":["@wordpress/block-editor/src/components/list-view/use-block-selection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\nimport { UP, DOWN, HOME, END, ESCAPE } from '@wordpress/keycodes';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getCommonDepthClientIds } from './utils';\n\nexport default function useBlockSelection() {\n\tconst { clearSelectedBlock, multiSelect, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockName,\n\t\tgetBlockParents,\n\t\tgetBlockSelectionStart,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\thasSelectedBlock,\n\t} = useSelect( blockEditorStore );\n\n\tconst { getBlockType } = useSelect( blocksStore );\n\n\tconst updateBlockSelection = useCallback(\n\t\tasync ( event, clientId, destinationClientId, focusPosition ) => {\n\t\t\tif ( ! event?.shiftKey && event?.keyCode !== ESCAPE ) {\n\t\t\t\tselectBlock( clientId, focusPosition );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// To handle multiple block selection via the `SHIFT` key, prevent\n\t\t\t// the browser default behavior of opening the link in a new window.\n\t\t\tevent.preventDefault();\n\n\t\t\tconst isOnlyDeselection =\n\t\t\t\tevent.type === 'keydown' && event.keyCode === ESCAPE;\n\t\t\tconst isKeyPress =\n\t\t\t\tevent.type === 'keydown' &&\n\t\t\t\t( event.keyCode === UP ||\n\t\t\t\t\tevent.keyCode === DOWN ||\n\t\t\t\t\tevent.keyCode === HOME ||\n\t\t\t\t\tevent.keyCode === END );\n\n\t\t\t// Handle clicking on a block when no blocks are selected, and return early.\n\t\t\tif (\n\t\t\t\t! isKeyPress &&\n\t\t\t\t! hasSelectedBlock() &&\n\t\t\t\t! hasMultiSelection()\n\t\t\t) {\n\t\t\t\tselectBlock( clientId, null );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlocks = getSelectedBlockClientIds();\n\t\t\tconst clientIdWithParents = [\n\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\tclientId,\n\t\t\t];\n\n\t\t\tif (\n\t\t\t\tisOnlyDeselection ||\n\t\t\t\t( isKeyPress &&\n\t\t\t\t\t! selectedBlocks.some( ( blockId ) =>\n\t\t\t\t\t\tclientIdWithParents.includes( blockId )\n\t\t\t\t\t) )\n\t\t\t) {\n\t\t\t\t// Ensure that shift-selecting blocks via the keyboard only\n\t\t\t\t// expands the current selection if focusing over already\n\t\t\t\t// selected blocks. Otherwise, clear the selection so that\n\t\t\t\t// a user can create a new selection entirely by keyboard.\n\t\t\t\tawait clearSelectedBlock();\n\t\t\t}\n\n\t\t\t// Update selection, if not only clearing the selection.\n\t\t\tif ( ! isOnlyDeselection ) {\n\t\t\t\tlet startTarget = getBlockSelectionStart();\n\t\t\t\tlet endTarget = clientId;\n\n\t\t\t\t// Handle keyboard behavior for selecting multiple blocks.\n\t\t\t\tif ( isKeyPress ) {\n\t\t\t\t\tif ( ! hasSelectedBlock() && ! hasMultiSelection() ) {\n\t\t\t\t\t\t// Set the starting point of the selection to the currently\n\t\t\t\t\t\t// focused block, if there are no blocks currently selected.\n\t\t\t\t\t\t// This ensures that as the selection is expanded or contracted,\n\t\t\t\t\t\t// the starting point of the selection is anchored to that block.\n\t\t\t\t\t\tstartTarget = clientId;\n\t\t\t\t\t}\n\t\t\t\t\tif ( destinationClientId ) {\n\t\t\t\t\t\t// If the user presses UP or DOWN, we want to ensure that the block they're\n\t\t\t\t\t\t// moving to is the target for selection, and not the currently focused one.\n\t\t\t\t\t\tendTarget = destinationClientId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst startParents = getBlockParents( startTarget );\n\t\t\t\tconst endParents = getBlockParents( endTarget );\n\n\t\t\t\tconst { start, end } = getCommonDepthClientIds(\n\t\t\t\t\tstartTarget,\n\t\t\t\t\tendTarget,\n\t\t\t\t\tstartParents,\n\t\t\t\t\tendParents\n\t\t\t\t);\n\t\t\t\tawait multiSelect( start, end, null );\n\t\t\t}\n\n\t\t\t// Announce deselected block, or number of deselected blocks if\n\t\t\t// the total number of blocks deselected is greater than one.\n\t\t\tconst updatedSelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// If the selection is greater than 1 and the Home or End keys\n\t\t\t// were used to generate the selection, then skip announcing the\n\t\t\t// deselected blocks.\n\t\t\tif (\n\t\t\t\t( event.keyCode === HOME || event.keyCode === END ) &&\n\t\t\t\tupdatedSelectedBlocks.length > 1\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectionDiff = selectedBlocks.filter(\n\t\t\t\t( blockId ) => ! updatedSelectedBlocks.includes( blockId )\n\t\t\t);\n\n\t\t\tlet label;\n\t\t\tif ( selectionDiff.length === 1 ) {\n\t\t\t\tconst title = getBlockType(\n\t\t\t\t\tgetBlockName( selectionDiff[ 0 ] )\n\t\t\t\t)?.title;\n\t\t\t\tif ( title ) {\n\t\t\t\t\tlabel = sprintf(\n\t\t\t\t\t\t/* translators: %s: block name */\n\t\t\t\t\t\t__( '%s deselected.' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if ( selectionDiff.length > 1 ) {\n\t\t\t\tlabel = sprintf(\n\t\t\t\t\t/* translators: %s: number of deselected blocks */\n\t\t\t\t\t__( '%s blocks deselected.' ),\n\t\t\t\t\tselectionDiff.length\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( label ) {\n\t\t\t\tspeak( label, 'assertive' );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tclearSelectedBlock,\n\t\t\tgetBlockName,\n\t\t\tgetBlockType,\n\t\t\tgetBlockParents,\n\t\t\tgetBlockSelectionStart,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\thasMultiSelection,\n\t\t\thasSelectedBlock,\n\t\t\tmultiSelect,\n\t\t\tselectBlock,\n\t\t]\n\t);\n\n\treturn {\n\t\tupdateBlockSelection,\n\t};\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_a11y","require","_i18n","_data","_element","_keycodes","_blocks","_store","_utils","useBlockSelection","clearSelectedBlock","multiSelect","selectBlock","useDispatch","blockEditorStore","getBlockName","getBlockParents","getBlockSelectionStart","getSelectedBlockClientIds","hasMultiSelection","hasSelectedBlock","useSelect","getBlockType","blocksStore","updateBlockSelection","useCallback","event","clientId","destinationClientId","focusPosition","shiftKey","keyCode","ESCAPE","preventDefault","isOnlyDeselection","type","isKeyPress","UP","DOWN","HOME","END","selectedBlocks","clientIdWithParents","some","blockId","includes","startTarget","endTarget","startParents","endParents","start","end","getCommonDepthClientIds","updatedSelectedBlocks","length","selectionDiff","filter","label","title","sprintf","__","speak"],"sources":["@wordpress/block-editor/src/components/list-view/use-block-selection.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useCallback } from '@wordpress/element';\nimport { UP, DOWN, HOME, END, ESCAPE } from '@wordpress/keycodes';\nimport { store as blocksStore } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getCommonDepthClientIds } from './utils';\n\nexport default function useBlockSelection() {\n\tconst { clearSelectedBlock, multiSelect, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\tconst {\n\t\tgetBlockName,\n\t\tgetBlockParents,\n\t\tgetBlockSelectionStart,\n\t\tgetSelectedBlockClientIds,\n\t\thasMultiSelection,\n\t\thasSelectedBlock,\n\t} = useSelect( blockEditorStore );\n\n\tconst { getBlockType } = useSelect( blocksStore );\n\n\tconst updateBlockSelection = useCallback(\n\t\tasync ( event, clientId, destinationClientId, focusPosition ) => {\n\t\t\tif ( ! event?.shiftKey && event?.keyCode !== ESCAPE ) {\n\t\t\t\tselectBlock( clientId, focusPosition );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// To handle multiple block selection via the `SHIFT` key, prevent\n\t\t\t// the browser default behavior of opening the link in a new window.\n\t\t\tevent.preventDefault();\n\n\t\t\tconst isOnlyDeselection =\n\t\t\t\tevent.type === 'keydown' && event.keyCode === ESCAPE;\n\t\t\tconst isKeyPress =\n\t\t\t\tevent.type === 'keydown' &&\n\t\t\t\t( event.keyCode === UP ||\n\t\t\t\t\tevent.keyCode === DOWN ||\n\t\t\t\t\tevent.keyCode === HOME ||\n\t\t\t\t\tevent.keyCode === END );\n\n\t\t\t// Handle clicking on a block when no blocks are selected, and return early.\n\t\t\tif (\n\t\t\t\t! isKeyPress &&\n\t\t\t\t! hasSelectedBlock() &&\n\t\t\t\t! hasMultiSelection()\n\t\t\t) {\n\t\t\t\tselectBlock( clientId, null );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectedBlocks = getSelectedBlockClientIds();\n\t\t\tconst clientIdWithParents = [\n\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\tclientId,\n\t\t\t];\n\n\t\t\tif (\n\t\t\t\tisOnlyDeselection ||\n\t\t\t\t( isKeyPress &&\n\t\t\t\t\t! selectedBlocks.some( ( blockId ) =>\n\t\t\t\t\t\tclientIdWithParents.includes( blockId )\n\t\t\t\t\t) )\n\t\t\t) {\n\t\t\t\t// Ensure that shift-selecting blocks via the keyboard only\n\t\t\t\t// expands the current selection if focusing over already\n\t\t\t\t// selected blocks. Otherwise, clear the selection so that\n\t\t\t\t// a user can create a new selection entirely by keyboard.\n\t\t\t\tawait clearSelectedBlock();\n\t\t\t}\n\n\t\t\t// Update selection, if not only clearing the selection.\n\t\t\tif ( ! isOnlyDeselection ) {\n\t\t\t\tlet startTarget = getBlockSelectionStart();\n\t\t\t\tlet endTarget = clientId;\n\n\t\t\t\t// Handle keyboard behavior for selecting multiple blocks.\n\t\t\t\tif ( isKeyPress ) {\n\t\t\t\t\tif ( ! hasSelectedBlock() && ! hasMultiSelection() ) {\n\t\t\t\t\t\t// Set the starting point of the selection to the currently\n\t\t\t\t\t\t// focused block, if there are no blocks currently selected.\n\t\t\t\t\t\t// This ensures that as the selection is expanded or contracted,\n\t\t\t\t\t\t// the starting point of the selection is anchored to that block.\n\t\t\t\t\t\tstartTarget = clientId;\n\t\t\t\t\t}\n\t\t\t\t\tif ( destinationClientId ) {\n\t\t\t\t\t\t// If the user presses UP or DOWN, we want to ensure that the block they're\n\t\t\t\t\t\t// moving to is the target for selection, and not the currently focused one.\n\t\t\t\t\t\tendTarget = destinationClientId;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst startParents = getBlockParents( startTarget );\n\t\t\t\tconst endParents = getBlockParents( endTarget );\n\n\t\t\t\tconst { start, end } = getCommonDepthClientIds(\n\t\t\t\t\tstartTarget,\n\t\t\t\t\tendTarget,\n\t\t\t\t\tstartParents,\n\t\t\t\t\tendParents\n\t\t\t\t);\n\t\t\t\tawait multiSelect( start, end, null );\n\t\t\t}\n\n\t\t\t// Announce deselected block, or number of deselected blocks if\n\t\t\t// the total number of blocks deselected is greater than one.\n\t\t\tconst updatedSelectedBlocks = getSelectedBlockClientIds();\n\n\t\t\t// If the selection is greater than 1 and the Home or End keys\n\t\t\t// were used to generate the selection, then skip announcing the\n\t\t\t// deselected blocks.\n\t\t\tif (\n\t\t\t\t( event.keyCode === HOME || event.keyCode === END ) &&\n\t\t\t\tupdatedSelectedBlocks.length > 1\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst selectionDiff = selectedBlocks.filter(\n\t\t\t\t( blockId ) => ! updatedSelectedBlocks.includes( blockId )\n\t\t\t);\n\n\t\t\tlet label;\n\t\t\tif ( selectionDiff.length === 1 ) {\n\t\t\t\tconst title = getBlockType(\n\t\t\t\t\tgetBlockName( selectionDiff[ 0 ] )\n\t\t\t\t)?.title;\n\t\t\t\tif ( title ) {\n\t\t\t\t\tlabel = sprintf(\n\t\t\t\t\t\t/* translators: %s: block name */\n\t\t\t\t\t\t__( '%s deselected.' ),\n\t\t\t\t\t\ttitle\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else if ( selectionDiff.length > 1 ) {\n\t\t\t\tlabel = sprintf(\n\t\t\t\t\t/* translators: %s: number of deselected blocks */\n\t\t\t\t\t__( '%s blocks deselected.' ),\n\t\t\t\t\tselectionDiff.length\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif ( label ) {\n\t\t\t\tspeak( label, 'assertive' );\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tclearSelectedBlock,\n\t\t\tgetBlockName,\n\t\t\tgetBlockType,\n\t\t\tgetBlockParents,\n\t\t\tgetBlockSelectionStart,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\thasMultiSelection,\n\t\t\thasSelectedBlock,\n\t\t\tmultiSelect,\n\t\t\tselectBlock,\n\t\t]\n\t);\n\n\treturn {\n\t\tupdateBlockSelection,\n\t};\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_data","require","_compose","_store","_useNotifyCopy","_utils","_utils2","useClipboardHandler","selectBlock","registry","useRegistry","getBlockOrder","getBlockRootClientId","getBlocksByClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getSettings","canInsertBlockType","canRemoveBlocks","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","insertBlocks","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","updateFocusAndSelection","focusClientId","shouldSelectBlock","undefined","focusListItem","getBlocksToUpdate","clientId","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","originallySelectedBlockClientIds","handler","event","defaultPrevented","contains","target","ownerDocument","activeElement","listViewRow","closest","dataset","block","length","preventDefault","type","blocks","setClipboardBlocks","_getPreviousBlockClie","blockToFocus","shouldUpdateSelection","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","getPasteBlocks","selectedBlockClientId","every","name","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/list-view/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { focusListItem } from './utils';\nimport { getPasteBlocks, setClipboardBlocks } from '../writing-flow/utils';\n\n// This hook borrows from useClipboardHandler in ../writing-flow/use-clipboard-handler.js\n// and adds behaviour for the list view, while skipping partial selection.\nexport default function useClipboardHandler( { selectBlock } ) {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetSettings,\n\t\tcanInsertBlockType,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { flashBlock, removeBlocks, replaceBlocks, insertBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction updateFocusAndSelection( focusClientId, shouldSelectBlock ) {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, node );\n\t\t}\n\n\t\t// Determine which blocks to update:\n\t\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t\t// If the focused block is not part of the block selection, only update the focused block.\n\t\tfunction getBlocksToUpdate( clientId ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst isUpdatingSelectedBlocks =\n\t\t\t\tselectedBlockClientIds.includes( clientId );\n\t\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t\t: clientId;\n\t\t\tconst firstBlockRootClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t\t? selectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\treturn {\n\t\t\t\tblocksToUpdate,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\toriginallySelectedBlockClientIds: selectedBlockClientIds,\n\t\t\t};\n\t\t}\n\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was possibly already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only handle events that occur within the list view.\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Retrieve the block clientId associated with the focused list view row.\n\t\t\t// This enables applying copy / cut / paste behavior to the focused block,\n\t\t\t// rather than just the blocks that are currently selected.\n\t\t\tconst listViewRow =\n\t\t\t\tevent.target.ownerDocument.activeElement?.closest(\n\t\t\t\t\t'[role=row]'\n\t\t\t\t);\n\t\t\tconst clientId = listViewRow?.dataset?.block;\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: selectedBlockClientIds,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\toriginallySelectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate( clientId );\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\tconst blocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\t\tif ( ! canRemoveBlocks( selectedBlockClientIds ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet blockToFocus =\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t\t// fallback to focus the parent block.\n\t\t\t\t\tfirstBlockRootClientId;\n\n\t\t\t\t// Remove blocks, but don't update selection, and it will be handled below.\n\t\t\t\tremoveBlocks( selectedBlockClientIds, false );\n\n\t\t\t\t// Update the selection if the original selection has been removed.\n\t\t\t\tconst shouldUpdateSelection =\n\t\t\t\t\toriginallySelectedBlockClientIds.length > 0 &&\n\t\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\t\tif ( ! blockToFocus ) {\n\t\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t\t}\n\n\t\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst blocks = getPasteBlocks(\n\t\t\t\t\tevent,\n\t\t\t\t\tcanUserUseUnfilteredHTML\n\t\t\t\t);\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tconst [ selectedBlockClientId ] = selectedBlockClientIds;\n\n\t\t\t\t\t// If a single block is focused, and the blocks to be posted can\n\t\t\t\t\t// be inserted within the block, then append the pasted blocks\n\t\t\t\t\t// within the focused block. For example, if you have copied a paragraph\n\t\t\t\t\t// block and paste it within a single Group block, this will append\n\t\t\t\t\t// the paragraph block within the Group block.\n\t\t\t\t\tif (\n\t\t\t\t\t\tblocks.every( ( block ) =>\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t\tupdateFocusAndSelection( blocks[ 0 ]?.clientId, false );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t\tupdateFocusAndSelection( blocks[ 0 ]?.clientId, false );\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_data","require","_compose","_store","_useNotifyCopy","_utils","_utils2","useClipboardHandler","selectBlock","registry","useRegistry","getBlockOrder","getBlockRootClientId","getBlocksByClientId","getPreviousBlockClientId","getSelectedBlockClientIds","getSettings","canInsertBlockType","canRemoveBlocks","useSelect","blockEditorStore","flashBlock","removeBlocks","replaceBlocks","insertBlocks","useDispatch","notifyCopy","useNotifyCopy","useRefEffect","node","updateFocusAndSelection","focusClientId","shouldSelectBlock","undefined","focusListItem","getBlocksToUpdate","clientId","selectedBlockClientIds","isUpdatingSelectedBlocks","includes","firstBlockClientId","firstBlockRootClientId","blocksToUpdate","originallySelectedBlockClientIds","handler","event","defaultPrevented","contains","target","ownerDocument","activeElement","listViewRow","closest","dataset","block","length","preventDefault","type","blocks","setClipboardBlocks","_getPreviousBlockClie","blockToFocus","shouldUpdateSelection","__experimentalCanUserUseUnfilteredHTML","canUserUseUnfilteredHTML","getPasteBlocks","selectedBlockClientId","every","name","addEventListener","removeEventListener"],"sources":["@wordpress/block-editor/src/components/list-view/use-clipboard-handler.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useDispatch, useRegistry, useSelect } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { useNotifyCopy } from '../../utils/use-notify-copy';\nimport { focusListItem } from './utils';\nimport { getPasteBlocks, setClipboardBlocks } from '../writing-flow/utils';\n\n// This hook borrows from useClipboardHandler in ../writing-flow/use-clipboard-handler.js\n// and adds behaviour for the list view, while skipping partial selection.\nexport default function useClipboardHandler( { selectBlock } ) {\n\tconst registry = useRegistry();\n\tconst {\n\t\tgetBlockOrder,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tgetPreviousBlockClientId,\n\t\tgetSelectedBlockClientIds,\n\t\tgetSettings,\n\t\tcanInsertBlockType,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { flashBlock, removeBlocks, replaceBlocks, insertBlocks } =\n\t\tuseDispatch( blockEditorStore );\n\tconst notifyCopy = useNotifyCopy();\n\n\treturn useRefEffect( ( node ) => {\n\t\tfunction updateFocusAndSelection( focusClientId, shouldSelectBlock ) {\n\t\t\tif ( shouldSelectBlock ) {\n\t\t\t\tselectBlock( undefined, focusClientId, null, null );\n\t\t\t}\n\n\t\t\tfocusListItem( focusClientId, node );\n\t\t}\n\n\t\t// Determine which blocks to update:\n\t\t// If the current (focused) block is part of the block selection, use the whole selection.\n\t\t// If the focused block is not part of the block selection, only update the focused block.\n\t\tfunction getBlocksToUpdate( clientId ) {\n\t\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\t\t\tconst isUpdatingSelectedBlocks =\n\t\t\t\tselectedBlockClientIds.includes( clientId );\n\t\t\tconst firstBlockClientId = isUpdatingSelectedBlocks\n\t\t\t\t? selectedBlockClientIds[ 0 ]\n\t\t\t\t: clientId;\n\t\t\tconst firstBlockRootClientId =\n\t\t\t\tgetBlockRootClientId( firstBlockClientId );\n\n\t\t\tconst blocksToUpdate = isUpdatingSelectedBlocks\n\t\t\t\t? selectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\treturn {\n\t\t\t\tblocksToUpdate,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\toriginallySelectedBlockClientIds: selectedBlockClientIds,\n\t\t\t};\n\t\t}\n\n\t\tfunction handler( event ) {\n\t\t\tif ( event.defaultPrevented ) {\n\t\t\t\t// This was possibly already handled in rich-text/use-paste-handler.js.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only handle events that occur within the list view.\n\t\t\tif ( ! node.contains( event.target.ownerDocument.activeElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Retrieve the block clientId associated with the focused list view row.\n\t\t\t// This enables applying copy / cut / paste behavior to the focused block,\n\t\t\t// rather than just the blocks that are currently selected.\n\t\t\tconst listViewRow =\n\t\t\t\tevent.target.ownerDocument.activeElement?.closest(\n\t\t\t\t\t'[role=row]'\n\t\t\t\t);\n\t\t\tconst clientId = listViewRow?.dataset?.block;\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst {\n\t\t\t\tblocksToUpdate: selectedBlockClientIds,\n\t\t\t\tfirstBlockClientId,\n\t\t\t\tfirstBlockRootClientId,\n\t\t\t\toriginallySelectedBlockClientIds,\n\t\t\t} = getBlocksToUpdate( clientId );\n\n\t\t\tif ( selectedBlockClientIds.length === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\n\t\t\tif ( event.type === 'copy' || event.type === 'cut' ) {\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tflashBlock( selectedBlockClientIds[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\tnotifyCopy( event.type, selectedBlockClientIds );\n\t\t\t\tconst blocks = getBlocksByClientId( selectedBlockClientIds );\n\t\t\t\tsetClipboardBlocks( event, blocks, registry );\n\t\t\t}\n\n\t\t\tif ( event.type === 'cut' ) {\n\t\t\t\t// Don't update the selection if the blocks cannot be deleted.\n\t\t\t\tif ( ! canRemoveBlocks( selectedBlockClientIds ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlet blockToFocus =\n\t\t\t\t\tgetPreviousBlockClientId( firstBlockClientId ) ??\n\t\t\t\t\t// If the previous block is not found (when the first block is deleted),\n\t\t\t\t\t// fallback to focus the parent block.\n\t\t\t\t\tfirstBlockRootClientId;\n\n\t\t\t\t// Remove blocks, but don't update selection, and it will be handled below.\n\t\t\t\tremoveBlocks( selectedBlockClientIds, false );\n\n\t\t\t\t// Update the selection if the original selection has been removed.\n\t\t\t\tconst shouldUpdateSelection =\n\t\t\t\t\toriginallySelectedBlockClientIds.length > 0 &&\n\t\t\t\t\tgetSelectedBlockClientIds().length === 0;\n\n\t\t\t\t// If there's no previous block nor parent block, focus the first block.\n\t\t\t\tif ( ! blockToFocus ) {\n\t\t\t\t\tblockToFocus = getBlockOrder()[ 0 ];\n\t\t\t\t}\n\n\t\t\t\tupdateFocusAndSelection( blockToFocus, shouldUpdateSelection );\n\t\t\t} else if ( event.type === 'paste' ) {\n\t\t\t\tconst {\n\t\t\t\t\t__experimentalCanUserUseUnfilteredHTML:\n\t\t\t\t\t\tcanUserUseUnfilteredHTML,\n\t\t\t\t} = getSettings();\n\t\t\t\tconst blocks = getPasteBlocks(\n\t\t\t\t\tevent,\n\t\t\t\t\tcanUserUseUnfilteredHTML\n\t\t\t\t);\n\n\t\t\t\tif ( selectedBlockClientIds.length === 1 ) {\n\t\t\t\t\tconst [ selectedBlockClientId ] = selectedBlockClientIds;\n\n\t\t\t\t\t// If a single block is focused, and the blocks to be posted can\n\t\t\t\t\t// be inserted within the block, then append the pasted blocks\n\t\t\t\t\t// within the focused block. For example, if you have copied a paragraph\n\t\t\t\t\t// block and paste it within a single Group block, this will append\n\t\t\t\t\t// the paragraph block within the Group block.\n\t\t\t\t\tif (\n\t\t\t\t\t\tblocks.every( ( block ) =>\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tblock.name,\n\t\t\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\tblocks,\n\t\t\t\t\t\t\tundefined,\n\t\t\t\t\t\t\tselectedBlockClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t\tupdateFocusAndSelection( blocks[ 0 ]?.clientId, false );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treplaceBlocks(\n\t\t\t\t\tselectedBlockClientIds,\n\t\t\t\t\tblocks,\n\t\t\t\t\tblocks.length - 1,\n\t\t\t\t\t-1\n\t\t\t\t);\n\t\t\t\tupdateFocusAndSelection( blocks[ 0 ]?.clientId, false );\n\t\t\t}\n\t\t}\n\n\t\tnode.ownerDocument.addEventListener( 'copy', handler );\n\t\tnode.ownerDocument.addEventListener( 'cut', handler );\n\t\tnode.ownerDocument.addEventListener( 'paste', handler );\n\n\t\treturn () => {\n\t\t\tnode.ownerDocument.removeEventListener( 'copy', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'cut', handler );\n\t\t\tnode.ownerDocument.removeEventListener( 'paste', handler );\n\t\t};\n\t}, [] );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","useListViewBlockIndexes","blocks","blockIndexes","useMemo","indexes","currentGlobalIndex","traverseBlocks","blockList","forEach","block","clientId","innerBlocks","length"],"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-block-indexes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\nexport default function useListViewBlockIndexes( blocks ) {\n\tconst blockIndexes = useMemo( () => {\n\t\tconst indexes = {};\n\n\t\tlet currentGlobalIndex = 0;\n\n\t\tconst traverseBlocks = ( blockList ) => {\n\t\t\tblockList.forEach( ( block ) => {\n\t\t\t\tindexes[ block.clientId ] = currentGlobalIndex;\n\t\t\t\tcurrentGlobalIndex++;\n\n\t\t\t\tif ( block.innerBlocks.length > 0 ) {\n\t\t\t\t\ttraverseBlocks( block.innerBlocks );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\ttraverseBlocks( blocks );\n\n\t\treturn indexes;\n\t}, [ blocks ] );\n\n\treturn blockIndexes;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_element","require","useListViewBlockIndexes","blocks","blockIndexes","useMemo","indexes","currentGlobalIndex","traverseBlocks","blockList","forEach","block","clientId","innerBlocks","length"],"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-block-indexes.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\nexport default function useListViewBlockIndexes( blocks ) {\n\tconst blockIndexes = useMemo( () => {\n\t\tconst indexes = {};\n\n\t\tlet currentGlobalIndex = 0;\n\n\t\tconst traverseBlocks = ( blockList ) => {\n\t\t\tblockList.forEach( ( block ) => {\n\t\t\t\tindexes[ block.clientId ] = currentGlobalIndex;\n\t\t\t\tcurrentGlobalIndex++;\n\n\t\t\t\tif ( block.innerBlocks.length > 0 ) {\n\t\t\t\t\ttraverseBlocks( block.innerBlocks );\n\t\t\t\t}\n\t\t\t} );\n\t\t};\n\n\t\ttraverseBlocks( blocks );\n\n\t\treturn indexes;\n\t}, [ blocks ] );\n\n\treturn blockIndexes;\n}\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGe,SAASC,uBAAuBA,CAAEC,MAAM,EAAG;EACzD,MAAMC,YAAY,GAAG,IAAAC,gBAAO,EAAE,MAAM;IACnC,MAAMC,OAAO,GAAG,CAAC,CAAC;IAElB,IAAIC,kBAAkB,GAAG,CAAC;IAE1B,MAAMC,cAAc,GAAKC,SAAS,IAAM;MACvCA,SAAS,CAACC,OAAO,CAAIC,KAAK,IAAM;QAC/BL,OAAO,CAAEK,KAAK,CAACC,QAAQ,CAAE,GAAGL,kBAAkB;QAC9CA,kBAAkB,EAAE;QAEpB,IAAKI,KAAK,CAACE,WAAW,CAACC,MAAM,GAAG,CAAC,EAAG;UACnCN,cAAc,CAAEG,KAAK,CAACE,WAAY,CAAC;QACpC;MACD,CAAE,CAAC;IACJ,CAAC;IAEDL,cAAc,CAAEL,MAAO,CAAC;IAExB,OAAOG,OAAO;EACf,CAAC,EAAE,CAAEH,MAAM,CAAG,CAAC;EAEf,OAAOC,YAAY;AACpB","ignoreList":[]}
|