@wordpress/block-editor 8.4.0 → 8.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +56 -19
- package/build/components/alignment-control/index.js +13 -6
- package/build/components/alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/index.js +13 -6
- package/build/components/block-alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-content-overlay/index.js +13 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/index.js +2 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-icon/index.js +4 -0
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +1 -6
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +14 -17
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js +7 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build/components/block-list-appender/index.js +6 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-lock/index.js +8 -0
- package/build/components/block-lock/index.js.map +1 -1
- package/build/components/block-lock/menu-item.js +9 -15
- package/build/components/block-lock/menu-item.js.map +1 -1
- package/build/components/block-lock/modal.js +35 -23
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-lock/toolbar.js +11 -16
- package/build/components/block-lock/toolbar.js.map +1 -1
- package/build/components/block-lock/use-block-lock.js +50 -0
- package/build/components/block-lock/use-block-lock.js.map +1 -0
- package/build/components/block-mover/index.js +4 -0
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +37 -22
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-preview/auto.js +6 -3
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +4 -2
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +50 -5
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-switcher/index.js +8 -3
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +2 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +1 -1
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/block-name-context.js +17 -0
- package/build/components/block-toolbar/block-name-context.js.map +1 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js +20 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build/components/block-toolbar/index.js +20 -5
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/index.js +0 -16
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +92 -47
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/index.js +13 -6
- package/build/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build/components/contrast-checker/index.js +4 -0
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +8 -0
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +105 -0
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build/components/copy-handler/index.js +48 -9
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/font-sizes/font-size-picker.js +4 -0
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/iframe/index.js +6 -9
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.js +18 -0
- package/build/components/index.js.map +1 -1
- package/build/components/justify-content-control/index.js +13 -6
- package/build/components/justify-content-control/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/line-height-control/index.js +10 -3
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +6 -7
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +19 -6
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +18 -3
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +1 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/media-replace-flow/index.js +4 -0
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +1 -1
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/rich-text/index.js +26 -4
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/split-value.js +12 -2
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/use-firefox-compat.js +49 -0
- package/build/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +34 -2
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -0
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/writing-flow/index.js +9 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +3 -44
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js +68 -0
- package/build/components/writing-flow/use-click-selection.js.map +1 -0
- package/build/components/writing-flow/use-drag-selection.js +134 -0
- package/build/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build/components/writing-flow/use-input.js +116 -0
- package/build/components/writing-flow/use-input.js.map +1 -0
- package/build/components/writing-flow/use-multi-selection.js +18 -38
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +161 -0
- package/build/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build/components/writing-flow/use-tab-nav.js +1 -8
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/border-color.js +3 -3
- package/build/hooks/border-color.js.map +1 -1
- package/build/hooks/border.js +0 -14
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +20 -17
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/font-family.js +5 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +4 -2
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +23 -16
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/layout.js +7 -2
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/style.js +34 -3
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +29 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/flex.js +76 -12
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +9 -4
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +290 -51
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +5 -2
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +25 -13
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +264 -21
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +27 -0
- package/build/store/utils.js.map +1 -0
- package/build/utils/dom.js +2 -1
- package/build/utils/dom.js.map +1 -1
- package/build-module/components/alignment-control/index.js +12 -4
- package/build-module/components/alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/index.js +12 -4
- package/build-module/components/block-alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +2 -2
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +13 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +2 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-icon/index.js +4 -0
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -4
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +15 -17
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js +7 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +6 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-lock/index.js +1 -0
- package/build-module/components/block-lock/index.js.map +1 -1
- package/build-module/components/block-lock/menu-item.js +8 -13
- package/build-module/components/block-lock/menu-item.js.map +1 -1
- package/build-module/components/block-lock/modal.js +34 -24
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-lock/toolbar.js +10 -14
- package/build-module/components/block-lock/toolbar.js.map +1 -1
- package/build-module/components/block-lock/use-block-lock.js +41 -0
- package/build-module/components/block-lock/use-block-lock.js.map +1 -0
- package/build-module/components/block-mover/index.js +4 -0
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +39 -24
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-preview/auto.js +6 -3
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +4 -2
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +50 -7
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-switcher/index.js +9 -4
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +2 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +1 -1
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/block-name-context.js +9 -0
- package/build-module/components/block-toolbar/block-name-context.js.map +1 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js +11 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +16 -4
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/index.js +0 -16
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +95 -49
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/index.js +12 -4
- package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +4 -0
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +2 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +90 -0
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build-module/components/copy-handler/index.js +48 -9
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/font-sizes/font-size-picker.js +4 -0
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/iframe/index.js +6 -9
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.js +2 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/justify-content-control/index.js +12 -4
- package/build-module/components/justify-content-control/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +9 -2
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +6 -7
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +17 -6
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +18 -3
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +4 -0
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +2 -2
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +25 -4
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/split-value.js +12 -2
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/use-firefox-compat.js +39 -0
- package/build-module/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +35 -4
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -0
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/writing-flow/index.js +5 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -45
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js +57 -0
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-drag-selection.js +124 -0
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-input.js +104 -0
- package/build-module/components/writing-flow/use-input.js.map +1 -0
- package/build-module/components/writing-flow/use-multi-selection.js +18 -37
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +150 -0
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build-module/components/writing-flow/use-tab-nav.js +1 -9
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/border-color.js +5 -5
- package/build-module/hooks/border-color.js.map +1 -1
- package/build-module/hooks/border.js +0 -12
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +19 -18
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +4 -3
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +22 -15
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +7 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/style.js +33 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +26 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/flex.js +76 -13
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +9 -5
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +277 -49
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +5 -2
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +25 -13
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +250 -21
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +20 -0
- package/build-module/store/utils.js.map +1 -0
- package/build-module/utils/dom.js +2 -1
- package/build-module/utils/dom.js.map +1 -1
- package/build-style/style-rtl.css +142 -101
- package/build-style/style.css +142 -101
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +28 -28
- package/src/components/alignment-control/index.js +9 -4
- package/src/components/block-alignment-control/index.js +9 -4
- package/src/components/block-alignment-control/ui.js +2 -2
- package/src/components/block-content-overlay/index.js +19 -2
- package/src/components/block-draggable/index.js +2 -5
- package/src/components/block-icon/index.js +3 -0
- package/src/components/block-inspector/index.js +4 -0
- package/src/components/block-list/style.scss +4 -5
- package/src/components/block-list/use-block-props/index.js +0 -5
- package/src/components/block-list/use-block-props/use-focus-first-element.js +19 -26
- package/src/components/block-list/use-block-props/use-focus-handler.js +8 -0
- package/src/components/block-list-appender/index.js +5 -0
- package/src/components/block-lock/index.js +1 -0
- package/src/components/block-lock/menu-item.js +6 -19
- package/src/components/block-lock/modal.js +52 -23
- package/src/components/block-lock/style.scss +7 -5
- package/src/components/block-lock/toolbar.js +7 -14
- package/src/components/block-lock/use-block-lock.js +45 -0
- package/src/components/block-mover/index.js +3 -0
- package/src/components/block-mover/style.scss +4 -0
- package/src/components/block-pattern-setup/index.js +84 -59
- package/src/components/block-pattern-setup/setup-toolbar.js +3 -1
- package/src/components/block-pattern-setup/style.scss +32 -26
- package/src/components/block-preview/auto.js +10 -1
- package/src/components/block-preview/index.js +2 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +62 -4
- package/src/components/block-switcher/index.js +15 -3
- package/src/components/block-switcher/style.scss +15 -4
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +15 -13
- package/src/components/block-switcher/test/index.js +2 -2
- package/src/components/block-title/index.js +2 -2
- package/src/components/block-title/use-block-display-title.js +1 -1
- package/src/components/block-toolbar/block-name-context.js +8 -0
- package/src/components/block-toolbar/block-toolbar-last-item.js +12 -0
- package/src/components/block-toolbar/index.js +18 -2
- package/src/components/block-toolbar/style.scss +6 -0
- package/src/components/block-tools/index.js +0 -19
- package/src/components/block-tools/style.scss +3 -5
- package/src/components/block-variation-transforms/index.js +105 -36
- package/src/components/block-variation-transforms/style.scss +1 -1
- package/src/components/block-vertical-alignment-control/index.js +9 -4
- package/src/components/button-block-appender/style.scss +5 -1
- package/src/components/contrast-checker/index.js +3 -0
- package/src/components/convert-to-group-buttons/index.js +6 -1
- package/src/components/convert-to-group-buttons/toolbar.js +87 -0
- package/src/components/copy-handler/index.js +55 -10
- package/src/components/font-sizes/font-size-picker.js +3 -0
- package/src/components/iframe/index.js +5 -7
- package/src/components/index.js +2 -0
- package/src/components/justify-content-control/index.js +9 -4
- package/src/components/keyboard-shortcuts/index.js +1 -1
- package/src/components/line-height-control/index.js +8 -3
- package/src/components/link-control/index.js +5 -5
- package/src/components/list-view/block-select-button.js +13 -3
- package/src/components/list-view/block.js +24 -8
- package/src/components/list-view/branch.js +1 -1
- package/src/components/list-view/style.scss +56 -14
- package/src/components/media-placeholder/README.md +8 -0
- package/src/components/media-replace-flow/index.js +3 -0
- package/src/components/multi-selection-inspector/index.js +2 -2
- package/src/components/rich-text/index.js +24 -1
- package/src/components/rich-text/split-value.js +5 -1
- package/src/components/rich-text/use-firefox-compat.js +39 -0
- package/src/components/rich-text/use-input-rules.js +40 -3
- package/src/components/skip-to-selected-block/index.js +3 -0
- package/src/components/url-input/style.scss +3 -2
- package/src/components/writing-flow/index.js +8 -0
- package/src/components/writing-flow/readme.md +28 -0
- package/src/components/writing-flow/use-arrow-nav.js +4 -53
- package/src/components/writing-flow/use-click-selection.js +65 -0
- package/src/components/writing-flow/use-drag-selection.js +126 -0
- package/src/components/writing-flow/use-input.js +112 -0
- package/src/components/writing-flow/use-multi-selection.js +13 -36
- package/src/components/writing-flow/use-selection-observer.js +153 -0
- package/src/components/writing-flow/use-tab-nav.js +1 -11
- package/src/hooks/border-color.js +5 -5
- package/src/hooks/border.js +0 -13
- package/src/hooks/color.js +51 -24
- package/src/hooks/font-family.js +5 -2
- package/src/hooks/font-size.js +10 -7
- package/src/hooks/gap.js +25 -17
- package/src/hooks/layout.js +11 -1
- package/src/hooks/style.js +40 -4
- package/src/hooks/test/gap.js +25 -1
- package/src/hooks/test/style.js +94 -0
- package/src/hooks/test/utils.js +1 -1
- package/src/hooks/utils.js +26 -0
- package/src/layouts/flex.js +89 -5
- package/src/layouts/flow.js +15 -4
- package/src/store/actions.js +341 -32
- package/src/store/defaults.js +7 -2
- package/src/store/reducer.js +25 -10
- package/src/store/selectors.js +329 -26
- package/src/store/test/selectors.js +242 -5
- package/src/store/utils.js +19 -0
- package/src/utils/dom.js +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-list/use-block-props/use-multi-selection.js +0 -205
- package/build/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build/components/block-list/use-block-props/use-scroll-into-view.js +0 -77
- package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +0 -192
- package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +0 -63
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/src/components/block-list/use-block-props/use-multi-selection.js +0 -227
- package/src/components/block-list/use-block-props/use-scroll-into-view.js +0 -73
package/build/store/selectors.js
CHANGED
|
@@ -7,11 +7,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.__experimentalGetGlobalBlocksByName = exports.__experimentalGetDirectInsertBlock = exports.__experimentalGetBlockListSettingsForBlocks = exports.__experimentalGetAllowedPatterns = exports.__experimentalGetAllowedBlocks = exports.__experimentalGetActiveBlockIdByBlockNames = void 0;
|
|
9
9
|
exports.__experimentalGetLastBlockAttributeChanges = __experimentalGetLastBlockAttributeChanges;
|
|
10
|
-
exports.__unstableGetClientIdsTree = exports.__unstableGetClientIdWithClientIdsTree = exports.__unstableGetBlockWithoutInnerBlocks = exports.__experimentalGetReusableBlockTitle = exports.__experimentalGetPatternsByBlockTypes = exports.__experimentalGetPatternTransformItems = exports.__experimentalGetParsedPattern = void 0;
|
|
10
|
+
exports.__unstableGetSelectedBlocksWithPartialSelection = exports.__unstableGetClientIdsTree = exports.__unstableGetClientIdWithClientIdsTree = exports.__unstableGetBlockWithoutInnerBlocks = exports.__experimentalGetReusableBlockTitle = exports.__experimentalGetPatternsByBlockTypes = exports.__experimentalGetPatternTransformItems = exports.__experimentalGetParsedPattern = void 0;
|
|
11
|
+
exports.__unstableIsFullySelected = __unstableIsFullySelected;
|
|
11
12
|
exports.__unstableIsLastBlockChangeIgnored = __unstableIsLastBlockChangeIgnored;
|
|
13
|
+
exports.__unstableIsSelectionCollapsed = __unstableIsSelectionCollapsed;
|
|
14
|
+
exports.__unstableIsSelectionMergeable = __unstableIsSelectionMergeable;
|
|
12
15
|
exports.areInnerBlocksControlled = areInnerBlocksControlled;
|
|
16
|
+
exports.canEditBlock = canEditBlock;
|
|
13
17
|
exports.canInsertBlockType = void 0;
|
|
14
18
|
exports.canInsertBlocks = canInsertBlocks;
|
|
19
|
+
exports.canLockBlockType = canLockBlockType;
|
|
15
20
|
exports.canMoveBlock = canMoveBlock;
|
|
16
21
|
exports.canMoveBlocks = canMoveBlocks;
|
|
17
22
|
exports.canRemoveBlock = canRemoveBlock;
|
|
@@ -93,6 +98,12 @@ var _hooks = require("@wordpress/hooks");
|
|
|
93
98
|
|
|
94
99
|
var _icons = require("@wordpress/icons");
|
|
95
100
|
|
|
101
|
+
var _i18n = require("@wordpress/i18n");
|
|
102
|
+
|
|
103
|
+
var _richText = require("@wordpress/rich-text");
|
|
104
|
+
|
|
105
|
+
var _utils = require("./utils");
|
|
106
|
+
|
|
96
107
|
/**
|
|
97
108
|
* External dependencies
|
|
98
109
|
*/
|
|
@@ -101,6 +112,10 @@ var _icons = require("@wordpress/icons");
|
|
|
101
112
|
* WordPress dependencies
|
|
102
113
|
*/
|
|
103
114
|
|
|
115
|
+
/**
|
|
116
|
+
* Internal dependencies
|
|
117
|
+
*/
|
|
118
|
+
|
|
104
119
|
/**
|
|
105
120
|
* A block selection object.
|
|
106
121
|
*
|
|
@@ -282,8 +297,9 @@ const __unstableGetClientIdsTree = (0, _rememo.default)(function (state) {
|
|
|
282
297
|
return (0, _lodash.map)(getBlockOrder(state, rootClientId), clientId => __unstableGetClientIdWithClientIdsTree(state, clientId));
|
|
283
298
|
}, state => [state.blocks.order]);
|
|
284
299
|
/**
|
|
285
|
-
* Returns an array containing the clientIds of all descendants
|
|
286
|
-
* of the
|
|
300
|
+
* Returns an array containing the clientIds of all descendants of the blocks
|
|
301
|
+
* given. Returned ids are ordered first by the order of the ids given, then
|
|
302
|
+
* by the order that they appear in the editor.
|
|
287
303
|
*
|
|
288
304
|
* @param {Object} state Global application state.
|
|
289
305
|
* @param {Array} clientIds Array of blocks to inspect.
|
|
@@ -293,25 +309,36 @@ const __unstableGetClientIdsTree = (0, _rememo.default)(function (state) {
|
|
|
293
309
|
|
|
294
310
|
|
|
295
311
|
exports.__unstableGetClientIdsTree = __unstableGetClientIdsTree;
|
|
312
|
+
const getClientIdsOfDescendants = (0, _rememo.default)((state, clientIds) => {
|
|
313
|
+
const collectedIds = [];
|
|
296
314
|
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
}
|
|
315
|
+
for (const givenId of clientIds) {
|
|
316
|
+
for (const descendantId of getBlockOrder(state, givenId)) {
|
|
317
|
+
collectedIds.push(descendantId, ...getClientIdsOfDescendants(state, [descendantId]));
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return collectedIds;
|
|
322
|
+
}, state => [state.blocks.order]);
|
|
301
323
|
/**
|
|
302
|
-
* Returns an array containing the clientIds of the top-level blocks
|
|
303
|
-
*
|
|
324
|
+
* Returns an array containing the clientIds of the top-level blocks and
|
|
325
|
+
* their descendants of any depth (for nested blocks). Ids are returned
|
|
326
|
+
* in the same order that they appear in the editor.
|
|
304
327
|
*
|
|
305
328
|
* @param {Object} state Global application state.
|
|
306
329
|
*
|
|
307
330
|
* @return {Array} ids of top-level and descendant blocks.
|
|
308
331
|
*/
|
|
309
332
|
|
|
310
|
-
|
|
311
333
|
exports.getClientIdsOfDescendants = getClientIdsOfDescendants;
|
|
312
334
|
const getClientIdsWithDescendants = (0, _rememo.default)(state => {
|
|
313
|
-
const
|
|
314
|
-
|
|
335
|
+
const collectedIds = [];
|
|
336
|
+
|
|
337
|
+
for (const topLevelId of getBlockOrder(state)) {
|
|
338
|
+
collectedIds.push(topLevelId, ...getClientIdsOfDescendants(state, [topLevelId]));
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
return collectedIds;
|
|
315
342
|
}, state => [state.blocks.order]);
|
|
316
343
|
/**
|
|
317
344
|
* Returns the total number of blocks, or the total number of blocks with a specific name in a post.
|
|
@@ -968,6 +995,156 @@ function getMultiSelectedBlocksEndClientId(state) {
|
|
|
968
995
|
|
|
969
996
|
return selectionEnd.clientId || null;
|
|
970
997
|
}
|
|
998
|
+
/**
|
|
999
|
+
* Returns true if the selection is not partial.
|
|
1000
|
+
*
|
|
1001
|
+
* @param {Object} state Editor state.
|
|
1002
|
+
*
|
|
1003
|
+
* @return {boolean} Whether the selection is mergeable.
|
|
1004
|
+
*/
|
|
1005
|
+
|
|
1006
|
+
|
|
1007
|
+
function __unstableIsFullySelected(state) {
|
|
1008
|
+
const selectionAnchor = getSelectionStart(state);
|
|
1009
|
+
const selectionFocus = getSelectionEnd(state);
|
|
1010
|
+
return !selectionAnchor.attributeKey && !selectionFocus.attributeKey && typeof selectionAnchor.offset === 'undefined' && typeof selectionFocus.offset === 'undefined';
|
|
1011
|
+
}
|
|
1012
|
+
/**
|
|
1013
|
+
* Returns true if the selection is collapsed.
|
|
1014
|
+
*
|
|
1015
|
+
* @param {Object} state Editor state.
|
|
1016
|
+
*
|
|
1017
|
+
* @return {boolean} Whether the selection is collapsed.
|
|
1018
|
+
*/
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
function __unstableIsSelectionCollapsed(state) {
|
|
1022
|
+
const selectionAnchor = getSelectionStart(state);
|
|
1023
|
+
const selectionFocus = getSelectionEnd(state);
|
|
1024
|
+
return !!selectionAnchor && !!selectionFocus && selectionAnchor.clientId === selectionFocus.clientId && selectionAnchor.attributeKey === selectionFocus.attributeKey && selectionAnchor.offset === selectionFocus.offset;
|
|
1025
|
+
}
|
|
1026
|
+
/**
|
|
1027
|
+
* Check whether the selection is mergeable.
|
|
1028
|
+
*
|
|
1029
|
+
* @param {Object} state Editor state.
|
|
1030
|
+
* @param {boolean} isForward Whether to merge forwards.
|
|
1031
|
+
*
|
|
1032
|
+
* @return {boolean} Whether the selection is mergeable.
|
|
1033
|
+
*/
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
function __unstableIsSelectionMergeable(state, isForward) {
|
|
1037
|
+
const selectionAnchor = getSelectionStart(state);
|
|
1038
|
+
const selectionFocus = getSelectionEnd(state); // It's not mergeable if the start and end are within the same block.
|
|
1039
|
+
|
|
1040
|
+
if (selectionAnchor.clientId === selectionFocus.clientId) return false; // It's not mergeable if there's no rich text selection.
|
|
1041
|
+
|
|
1042
|
+
if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') return false;
|
|
1043
|
+
const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId);
|
|
1044
|
+
const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); // It's not mergeable if the selection doesn't start and end in the same
|
|
1045
|
+
// block list. Maybe in the future it should be allowed.
|
|
1046
|
+
|
|
1047
|
+
if (anchorRootClientId !== focusRootClientId) {
|
|
1048
|
+
return false;
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
const blockOrder = getBlockOrder(state, anchorRootClientId);
|
|
1052
|
+
const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId);
|
|
1053
|
+
const focusIndex = blockOrder.indexOf(selectionFocus.clientId); // Reassign selection start and end based on order.
|
|
1054
|
+
|
|
1055
|
+
let selectionStart, selectionEnd;
|
|
1056
|
+
|
|
1057
|
+
if (anchorIndex > focusIndex) {
|
|
1058
|
+
selectionStart = selectionFocus;
|
|
1059
|
+
selectionEnd = selectionAnchor;
|
|
1060
|
+
} else {
|
|
1061
|
+
selectionStart = selectionAnchor;
|
|
1062
|
+
selectionEnd = selectionFocus;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
const targetBlockClientId = isForward ? selectionEnd.clientId : selectionStart.clientId;
|
|
1066
|
+
const blockToMergeClientId = isForward ? selectionStart.clientId : selectionEnd.clientId;
|
|
1067
|
+
const targetBlock = getBlock(state, targetBlockClientId);
|
|
1068
|
+
const targetBlockType = (0, _blocks.getBlockType)(targetBlock.name);
|
|
1069
|
+
if (!targetBlockType.merge) return false;
|
|
1070
|
+
const blockToMerge = getBlock(state, blockToMergeClientId); // It's mergeable if the blocks are of the same type.
|
|
1071
|
+
|
|
1072
|
+
if (blockToMerge.name === targetBlock.name) return true; // If the blocks are of a different type, try to transform the block being
|
|
1073
|
+
// merged into the same type of block.
|
|
1074
|
+
|
|
1075
|
+
const blocksToMerge = (0, _blocks.switchToBlockType)(blockToMerge, targetBlock.name);
|
|
1076
|
+
return blocksToMerge && blocksToMerge.length;
|
|
1077
|
+
}
|
|
1078
|
+
/**
|
|
1079
|
+
* Get partial selected blocks with their content updated
|
|
1080
|
+
* based on the selection.
|
|
1081
|
+
*
|
|
1082
|
+
* @param {Object} state Editor state.
|
|
1083
|
+
*
|
|
1084
|
+
* @return {Object[]} Updated partial selected blocks.
|
|
1085
|
+
*/
|
|
1086
|
+
|
|
1087
|
+
|
|
1088
|
+
const __unstableGetSelectedBlocksWithPartialSelection = state => {
|
|
1089
|
+
const selectionAnchor = getSelectionStart(state);
|
|
1090
|
+
const selectionFocus = getSelectionEnd(state);
|
|
1091
|
+
|
|
1092
|
+
if (selectionAnchor.clientId === selectionFocus.clientId) {
|
|
1093
|
+
return EMPTY_ARRAY;
|
|
1094
|
+
} // Can't split if the selection is not set.
|
|
1095
|
+
|
|
1096
|
+
|
|
1097
|
+
if (!selectionAnchor.attributeKey || !selectionFocus.attributeKey || typeof selectionAnchor.offset === 'undefined' || typeof selectionFocus.offset === 'undefined') {
|
|
1098
|
+
return EMPTY_ARRAY;
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
const anchorRootClientId = getBlockRootClientId(state, selectionAnchor.clientId);
|
|
1102
|
+
const focusRootClientId = getBlockRootClientId(state, selectionFocus.clientId); // It's not splittable if the selection doesn't start and end in the same
|
|
1103
|
+
// block list. Maybe in the future it should be allowed.
|
|
1104
|
+
|
|
1105
|
+
if (anchorRootClientId !== focusRootClientId) {
|
|
1106
|
+
return EMPTY_ARRAY;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
const blockOrder = getBlockOrder(state, anchorRootClientId);
|
|
1110
|
+
const anchorIndex = blockOrder.indexOf(selectionAnchor.clientId);
|
|
1111
|
+
const focusIndex = blockOrder.indexOf(selectionFocus.clientId); // Reassign selection start and end based on order.
|
|
1112
|
+
|
|
1113
|
+
const [selectionStart, selectionEnd] = anchorIndex > focusIndex ? [selectionFocus, selectionAnchor] : [selectionAnchor, selectionFocus];
|
|
1114
|
+
const blockA = getBlock(state, selectionStart.clientId);
|
|
1115
|
+
const blockAType = (0, _blocks.getBlockType)(blockA.name);
|
|
1116
|
+
const blockB = getBlock(state, selectionEnd.clientId);
|
|
1117
|
+
const blockBType = (0, _blocks.getBlockType)(blockB.name);
|
|
1118
|
+
const htmlA = blockA.attributes[selectionStart.attributeKey];
|
|
1119
|
+
const htmlB = blockB.attributes[selectionEnd.attributeKey];
|
|
1120
|
+
const attributeDefinitionA = blockAType.attributes[selectionStart.attributeKey];
|
|
1121
|
+
const attributeDefinitionB = blockBType.attributes[selectionEnd.attributeKey];
|
|
1122
|
+
let valueA = (0, _richText.create)({
|
|
1123
|
+
html: htmlA,
|
|
1124
|
+
...(0, _utils.mapRichTextSettings)(attributeDefinitionA)
|
|
1125
|
+
});
|
|
1126
|
+
let valueB = (0, _richText.create)({
|
|
1127
|
+
html: htmlB,
|
|
1128
|
+
...(0, _utils.mapRichTextSettings)(attributeDefinitionB)
|
|
1129
|
+
});
|
|
1130
|
+
valueA = (0, _richText.remove)(valueA, 0, selectionStart.offset);
|
|
1131
|
+
valueB = (0, _richText.remove)(valueB, selectionEnd.offset, valueB.text.length);
|
|
1132
|
+
return [{ ...blockA,
|
|
1133
|
+
attributes: { ...blockA.attributes,
|
|
1134
|
+
[selectionStart.attributeKey]: (0, _richText.toHTMLString)({
|
|
1135
|
+
value: valueA,
|
|
1136
|
+
...(0, _utils.mapRichTextSettings)(attributeDefinitionA)
|
|
1137
|
+
})
|
|
1138
|
+
}
|
|
1139
|
+
}, { ...blockB,
|
|
1140
|
+
attributes: { ...blockB.attributes,
|
|
1141
|
+
[selectionEnd.attributeKey]: (0, _richText.toHTMLString)({
|
|
1142
|
+
value: valueB,
|
|
1143
|
+
...(0, _utils.mapRichTextSettings)(attributeDefinitionB)
|
|
1144
|
+
})
|
|
1145
|
+
}
|
|
1146
|
+
}];
|
|
1147
|
+
};
|
|
971
1148
|
/**
|
|
972
1149
|
* Returns an array containing all block client IDs in the editor in the order
|
|
973
1150
|
* they appear. Optionally accepts a root client ID of the block list for which
|
|
@@ -980,6 +1157,8 @@ function getMultiSelectedBlocksEndClientId(state) {
|
|
|
980
1157
|
*/
|
|
981
1158
|
|
|
982
1159
|
|
|
1160
|
+
exports.__unstableGetSelectedBlocksWithPartialSelection = __unstableGetSelectedBlocksWithPartialSelection;
|
|
1161
|
+
|
|
983
1162
|
function getBlockOrder(state, rootClientId) {
|
|
984
1163
|
return state.blocks.order[rootClientId || ''] || EMPTY_ARRAY;
|
|
985
1164
|
}
|
|
@@ -1380,7 +1559,15 @@ const canInsertBlockTypeUnmemoized = function (state, blockName) {
|
|
|
1380
1559
|
const blockAllowedParentBlocks = blockType.parent;
|
|
1381
1560
|
const parentName = getBlockName(state, rootClientId);
|
|
1382
1561
|
const hasBlockAllowedParent = checkAllowList(blockAllowedParentBlocks, parentName);
|
|
1383
|
-
|
|
1562
|
+
let hasBlockAllowedAncestor = true;
|
|
1563
|
+
const blockAllowedAncestorBlocks = blockType.ancestor;
|
|
1564
|
+
|
|
1565
|
+
if (blockAllowedAncestorBlocks) {
|
|
1566
|
+
const ancestors = [rootClientId, ...getBlockParents(state, rootClientId)];
|
|
1567
|
+
hasBlockAllowedAncestor = (0, _lodash.some)(ancestors, ancestorClientId => checkAllowList(blockAllowedAncestorBlocks, getBlockName(state, ancestorClientId)));
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
const canInsert = hasBlockAllowedAncestor && (hasParentAllowedBlock === null && hasBlockAllowedParent === null || hasParentAllowedBlock === true || hasBlockAllowedParent === true);
|
|
1384
1571
|
|
|
1385
1572
|
if (!canInsert) {
|
|
1386
1573
|
return canInsert;
|
|
@@ -1458,7 +1645,7 @@ function canRemoveBlock(state, clientId) {
|
|
|
1458
1645
|
const {
|
|
1459
1646
|
lock
|
|
1460
1647
|
} = attributes;
|
|
1461
|
-
const parentIsLocked = !!getTemplateLock(state, rootClientId); // If we don't have a lock on the blockType level, we
|
|
1648
|
+
const parentIsLocked = !!getTemplateLock(state, rootClientId); // If we don't have a lock on the blockType level, we defer to the parent templateLock.
|
|
1462
1649
|
|
|
1463
1650
|
if (lock === undefined || (lock === null || lock === void 0 ? void 0 : lock.remove) === undefined) {
|
|
1464
1651
|
return !parentIsLocked;
|
|
@@ -1504,7 +1691,7 @@ function canMoveBlock(state, clientId) {
|
|
|
1504
1691
|
const {
|
|
1505
1692
|
lock
|
|
1506
1693
|
} = attributes;
|
|
1507
|
-
const parentIsLocked = getTemplateLock(state, rootClientId) === 'all'; // If we don't have a lock on the blockType level, we
|
|
1694
|
+
const parentIsLocked = getTemplateLock(state, rootClientId) === 'all'; // If we don't have a lock on the blockType level, we defer to the parent templateLock.
|
|
1508
1695
|
|
|
1509
1696
|
if (lock === undefined || (lock === null || lock === void 0 ? void 0 : lock.move) === undefined) {
|
|
1510
1697
|
return !parentIsLocked;
|
|
@@ -1528,6 +1715,49 @@ function canMoveBlocks(state, clientIds) {
|
|
|
1528
1715
|
let rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1529
1716
|
return clientIds.every(clientId => canMoveBlock(state, clientId, rootClientId));
|
|
1530
1717
|
}
|
|
1718
|
+
/**
|
|
1719
|
+
* Determines if the given block is allowed to be edited.
|
|
1720
|
+
*
|
|
1721
|
+
* @param {Object} state Editor state.
|
|
1722
|
+
* @param {string} clientId The block client Id.
|
|
1723
|
+
*
|
|
1724
|
+
* @return {boolean} Whether the given block is allowed to be edited.
|
|
1725
|
+
*/
|
|
1726
|
+
|
|
1727
|
+
|
|
1728
|
+
function canEditBlock(state, clientId) {
|
|
1729
|
+
const attributes = getBlockAttributes(state, clientId);
|
|
1730
|
+
|
|
1731
|
+
if (attributes === null) {
|
|
1732
|
+
return true;
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
const {
|
|
1736
|
+
lock
|
|
1737
|
+
} = attributes; // When the edit is true, we cannot edit the block.
|
|
1738
|
+
|
|
1739
|
+
return !(lock !== null && lock !== void 0 && lock.edit);
|
|
1740
|
+
}
|
|
1741
|
+
/**
|
|
1742
|
+
* Determines if the given block type can be locked/unlocked by a user.
|
|
1743
|
+
*
|
|
1744
|
+
* @param {Object} state Editor state.
|
|
1745
|
+
* @param {(string|Object)} nameOrType Block name or type object.
|
|
1746
|
+
*
|
|
1747
|
+
* @return {boolean} Whether a given block type can be locked/unlocked.
|
|
1748
|
+
*/
|
|
1749
|
+
|
|
1750
|
+
|
|
1751
|
+
function canLockBlockType(state, nameOrType) {
|
|
1752
|
+
var _state$settings;
|
|
1753
|
+
|
|
1754
|
+
if (!(0, _blocks.hasBlockSupport)(nameOrType, 'lock', true)) {
|
|
1755
|
+
return false;
|
|
1756
|
+
} // Use block editor settings as the default value.
|
|
1757
|
+
|
|
1758
|
+
|
|
1759
|
+
return !!((_state$settings = state.settings) !== null && _state$settings !== void 0 && _state$settings.canLockBlocks);
|
|
1760
|
+
}
|
|
1531
1761
|
/**
|
|
1532
1762
|
* Returns information about how recently and frequently a block has been inserted.
|
|
1533
1763
|
*
|
|
@@ -1858,7 +2088,10 @@ const getInserterItems = (0, _rememo.default)(function (state) {
|
|
|
1858
2088
|
|
|
1859
2089
|
exports.getInserterItems = getInserterItems;
|
|
1860
2090
|
const getBlockTransformItems = (0, _rememo.default)(function (state, blocks) {
|
|
2091
|
+
var _itemsByName$sourceBl;
|
|
2092
|
+
|
|
1861
2093
|
let rootClientId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
2094
|
+
const [sourceBlock] = blocks;
|
|
1862
2095
|
const buildBlockTypeTransformItem = buildBlockTypeItem(state, {
|
|
1863
2096
|
buildScope: 'transform'
|
|
1864
2097
|
});
|
|
@@ -1868,16 +2101,26 @@ const getBlockTransformItems = (0, _rememo.default)(function (state, blocks) {
|
|
|
1868
2101
|
name
|
|
1869
2102
|
} = _ref5;
|
|
1870
2103
|
return name;
|
|
1871
|
-
});
|
|
2104
|
+
}); // Consider unwraping the highest priority.
|
|
2105
|
+
|
|
2106
|
+
itemsByName['*'] = {
|
|
2107
|
+
frecency: +Infinity,
|
|
2108
|
+
id: '*',
|
|
2109
|
+
isDisabled: false,
|
|
2110
|
+
name: '*',
|
|
2111
|
+
title: (0, _i18n.__)('Unwrap'),
|
|
2112
|
+
icon: (_itemsByName$sourceBl = itemsByName[sourceBlock.name]) === null || _itemsByName$sourceBl === void 0 ? void 0 : _itemsByName$sourceBl.icon
|
|
2113
|
+
};
|
|
1872
2114
|
const possibleTransforms = (0, _blocks.getPossibleBlockTransformations)(blocks).reduce((accumulator, block) => {
|
|
1873
|
-
if (
|
|
2115
|
+
if (block === '*') {
|
|
2116
|
+
accumulator.push(itemsByName['*']);
|
|
2117
|
+
} else if (itemsByName[block === null || block === void 0 ? void 0 : block.name]) {
|
|
1874
2118
|
accumulator.push(itemsByName[block.name]);
|
|
1875
2119
|
}
|
|
1876
2120
|
|
|
1877
2121
|
return accumulator;
|
|
1878
2122
|
}, []);
|
|
1879
|
-
|
|
1880
|
-
return possibleBlockTransformations;
|
|
2123
|
+
return (0, _lodash.orderBy)(possibleTransforms, block => itemsByName[block.name].frecency, 'desc');
|
|
1881
2124
|
}, (state, rootClientId) => [state.blockListSettings[rootClientId], state.blocks.byClientId, state.preferences.insertUsage, state.settings.allowedBlockTypes, state.settings.templateLock, (0, _blocks.getBlockTypes)()]);
|
|
1882
2125
|
/**
|
|
1883
2126
|
* Determines whether there are items to show in the inserter.
|
|
@@ -2277,9 +2520,9 @@ function __experimentalGetLastBlockAttributeChanges(state) {
|
|
|
2277
2520
|
|
|
2278
2521
|
|
|
2279
2522
|
function getReusableBlocks(state) {
|
|
2280
|
-
var _state$settings$__exp, _state$
|
|
2523
|
+
var _state$settings$__exp, _state$settings2;
|
|
2281
2524
|
|
|
2282
|
-
return (_state$settings$__exp = state === null || state === void 0 ? void 0 : (_state$
|
|
2525
|
+
return (_state$settings$__exp = state === null || state === void 0 ? void 0 : (_state$settings2 = state.settings) === null || _state$settings2 === void 0 ? void 0 : _state$settings2.__experimentalReusableBlocks) !== null && _state$settings$__exp !== void 0 ? _state$settings$__exp : EMPTY_ARRAY;
|
|
2283
2526
|
}
|
|
2284
2527
|
/**
|
|
2285
2528
|
* Returns whether the navigation mode is enabled.
|