@wordpress/block-editor 10.5.0 → 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/build/autocompleters/block.js +2 -6
- package/build/autocompleters/block.js.map +1 -1
- package/build/autocompleters/link.js +2 -0
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/block-card/index.js +51 -3
- package/build/components/block-card/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js +46 -39
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-edit/edit.js +4 -3
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-edit/edit.native.js +4 -7
- package/build/components/block-edit/edit.native.js.map +1 -1
- package/build/components/block-inspector/index.js +35 -33
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-list-context.native.js +5 -8
- package/build/components/block-list/block-list-context.native.js.map +1 -1
- package/build/components/block-list/block.js +55 -24
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +61 -28
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +12 -4
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +3 -2
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +33 -11
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-preview/auto.js +9 -3
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +5 -9
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +5 -2
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-toolbar/index.js +5 -1
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +8 -49
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-variation-picker/index.js +1 -2
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/height-control/index.js +115 -0
- package/build/components/height-control/index.js.map +1 -0
- package/build/components/iframe/index.js +11 -8
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +2 -0
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-editor/zoom-dropdown.js +1 -0
- package/build/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build/components/index.js +9 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +20 -6
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js +25 -10
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +25 -46
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +3 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-debounced-input.js +27 -0
- package/build/components/inserter/hooks/use-debounced-input.js.map +1 -0
- package/build/components/inserter/index.js +8 -3
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +3 -4
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/media-tab/hooks.js +103 -0
- package/build/components/inserter/media-tab/hooks.js.map +1 -0
- package/build/components/inserter/media-tab/index.js +32 -0
- package/build/components/inserter/media-tab/index.js.map +1 -0
- package/build/components/inserter/media-tab/media-list.js +100 -0
- package/build/components/inserter/media-tab/media-list.js.map +1 -0
- package/build/components/inserter/media-tab/media-panel.js +96 -0
- package/build/components/inserter/media-tab/media-panel.js.map +1 -0
- package/build/components/inserter/media-tab/media-tab.js +120 -0
- package/build/components/inserter/media-tab/media-tab.js.map +1 -0
- package/build/components/inserter/media-tab/utils.js +54 -0
- package/build/components/inserter/media-tab/utils.js.map +1 -0
- package/build/components/inserter/menu.js +35 -12
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +70 -0
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -0
- package/build/components/inserter/quick-inserter.js +1 -0
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-results.js +3 -1
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/tabs.js +16 -2
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inserter-list-item/index.js +4 -1
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/inspector-controls/groups.js +2 -0
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js +46 -0
- package/build/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
- package/build/components/inspector-controls-tabs/index.js +71 -0
- package/build/components/inspector-controls-tabs/index.js.map +1 -0
- package/build/components/inspector-controls-tabs/settings-tab.js +28 -0
- package/build/components/inspector-controls-tabs/settings-tab.js.map +1 -0
- package/build/components/inspector-controls-tabs/styles-tab.js +61 -0
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -0
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +97 -0
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
- package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +18 -0
- package/build/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
- package/build/components/inspector-controls-tabs/utils.js +37 -0
- package/build/components/inspector-controls-tabs/utils.js.map +1 -0
- package/build/components/link-control/index.js +1 -0
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +0 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/use-internal-input-value.js +3 -3
- package/build/components/link-control/use-internal-input-value.js.map +1 -1
- package/build/components/list-view/block.js +5 -2
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +13 -12
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/media-upload/index.native.js +2 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/off-canvas-editor/appender.js +104 -0
- package/build/components/off-canvas-editor/appender.js.map +1 -0
- package/build/components/off-canvas-editor/block-edit-button.js +50 -0
- package/build/components/off-canvas-editor/block-edit-button.js.map +1 -0
- package/build/components/off-canvas-editor/block.js +36 -4
- package/build/components/off-canvas-editor/block.js.map +1 -1
- package/build/components/off-canvas-editor/branch.js +3 -5
- package/build/components/off-canvas-editor/branch.js.map +1 -1
- package/build/components/off-canvas-editor/index.js +20 -11
- package/build/components/off-canvas-editor/index.js.map +1 -1
- package/build/components/off-canvas-editor/leaf.js +1 -1
- package/build/components/off-canvas-editor/leaf.js.map +1 -1
- package/build/components/off-canvas-editor/link-ui.js +185 -0
- package/build/components/off-canvas-editor/link-ui.js.map +1 -0
- package/build/components/off-canvas-editor/update-attributes.js +108 -0
- package/build/components/off-canvas-editor/update-attributes.js.map +1 -0
- package/build/components/rich-text/format-toolbar/index.js +8 -4
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +3 -3
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +0 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-insert-replacement-text.js +43 -0
- package/build/components/rich-text/use-insert-replacement-text.js.map +1 -0
- package/build/components/rich-text/use-undo-automatic-change.js +9 -1
- package/build/components/rich-text/use-undo-automatic-change.js.map +1 -1
- package/build/components/rich-text/utils.js +1 -19
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/spacing-sizes-control/spacing-input-control.js +12 -3
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build/components/ungroup-button/index.native.js +4 -2
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/url-input/index.js +46 -43
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +8 -4
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-setting/index.js +9 -1
- package/build/components/use-setting/index.js.map +1 -1
- package/build/hooks/child-layout.js +209 -0
- package/build/hooks/child-layout.js.map +1 -0
- package/build/hooks/content-lock-ui.js +1 -1
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/dimensions.js +25 -7
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/layout.js +57 -1
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/min-height.js +4 -10
- package/build/hooks/min-height.js.map +1 -1
- package/build/store/reducer.js +393 -270
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +57 -47
- package/build/store/selectors.js.map +1 -1
- package/build/utils/sorting.js +63 -0
- package/build/utils/sorting.js.map +1 -0
- package/build-module/autocompleters/block.js +2 -6
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/autocompleters/link.js +2 -0
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/block-card/index.js +45 -3
- package/build-module/components/block-card/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js +40 -31
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-edit/edit.js +4 -2
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-edit/edit.native.js +4 -6
- package/build-module/components/block-edit/edit.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +32 -30
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-list-context.native.js +5 -8
- package/build-module/components/block-list/block-list-context.native.js.map +1 -1
- package/build-module/components/block-list/block.js +55 -25
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +61 -28
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +13 -6
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +3 -2
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +35 -13
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +9 -3
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +5 -8
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +5 -2
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +6 -2
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +8 -49
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +1 -2
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/height-control/index.js +103 -0
- package/build-module/components/height-control/index.js.map +1 -0
- package/build-module/components/iframe/index.js +11 -8
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +2 -0
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-editor/zoom-dropdown.js +1 -0
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -1
- package/build-module/components/index.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +22 -8
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js +23 -10
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +27 -49
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +3 -2
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-debounced-input.js +18 -0
- package/build-module/components/inserter/hooks/use-debounced-input.js.map +1 -0
- package/build-module/components/inserter/index.js +8 -3
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +3 -5
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/media-tab/hooks.js +89 -0
- package/build-module/components/inserter/media-tab/hooks.js.map +1 -0
- package/build-module/components/inserter/media-tab/index.js +4 -0
- package/build-module/components/inserter/media-tab/index.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-list.js +86 -0
- package/build-module/components/inserter/media-tab/media-list.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-panel.js +77 -0
- package/build-module/components/inserter/media-tab/media-panel.js.map +1 -0
- package/build-module/components/inserter/media-tab/media-tab.js +100 -0
- package/build-module/components/inserter/media-tab/media-tab.js.map +1 -0
- package/build-module/components/inserter/media-tab/utils.js +45 -0
- package/build-module/components/inserter/media-tab/utils.js.map +1 -0
- package/build-module/components/inserter/menu.js +33 -12
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +61 -0
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -0
- package/build-module/components/inserter/quick-inserter.js +1 -0
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-results.js +3 -2
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/tabs.js +15 -2
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +5 -2
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +2 -0
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js +32 -0
- package/build-module/components/inspector-controls-tabs/advanced-controls-panel.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/index.js +56 -0
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/settings-tab.js +17 -0
- package/build-module/components/inspector-controls-tabs/settings-tab.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js +46 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +81 -0
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +8 -0
- package/build-module/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js.map +1 -0
- package/build-module/components/inspector-controls-tabs/utils.js +26 -0
- package/build-module/components/inspector-controls-tabs/utils.js.map +1 -0
- package/build-module/components/link-control/index.js +1 -0
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +0 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/use-internal-input-value.js +3 -3
- package/build-module/components/link-control/use-internal-input-value.js.map +1 -1
- package/build-module/components/list-view/block.js +5 -2
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +12 -11
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +2 -4
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/off-canvas-editor/appender.js +89 -0
- package/build-module/components/off-canvas-editor/appender.js.map +1 -0
- package/build-module/components/off-canvas-editor/block-edit-button.js +35 -0
- package/build-module/components/off-canvas-editor/block-edit-button.js.map +1 -0
- package/build-module/components/off-canvas-editor/block.js +36 -6
- package/build-module/components/off-canvas-editor/block.js.map +1 -1
- package/build-module/components/off-canvas-editor/branch.js +3 -4
- package/build-module/components/off-canvas-editor/branch.js.map +1 -1
- package/build-module/components/off-canvas-editor/index.js +20 -12
- package/build-module/components/off-canvas-editor/index.js.map +1 -1
- package/build-module/components/off-canvas-editor/leaf.js +1 -1
- package/build-module/components/off-canvas-editor/leaf.js.map +1 -1
- package/build-module/components/off-canvas-editor/link-ui.js +165 -0
- package/build-module/components/off-canvas-editor/link-ui.js.map +1 -0
- package/build-module/components/off-canvas-editor/update-attributes.js +97 -0
- package/build-module/components/off-canvas-editor/update-attributes.js.map +1 -0
- package/build-module/components/rich-text/format-toolbar/index.js +6 -2
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +2 -3
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +0 -2
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-insert-replacement-text.js +33 -0
- package/build-module/components/rich-text/use-insert-replacement-text.js.map +1 -0
- package/build-module/components/rich-text/use-undo-automatic-change.js +9 -1
- package/build-module/components/rich-text/use-undo-automatic-change.js.map +1 -1
- package/build-module/components/rich-text/utils.js +1 -16
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +12 -3
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js +3 -2
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +46 -43
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +9 -5
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +8 -1
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/hooks/child-layout.js +189 -0
- package/build-module/hooks/child-layout.js.map +1 -0
- package/build-module/hooks/content-lock-ui.js +1 -1
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/dimensions.js +25 -8
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/layout.js +55 -0
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/min-height.js +3 -9
- package/build-module/hooks/min-height.js.map +1 -1
- package/build-module/store/reducer.js +391 -271
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +54 -47
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/sorting.js +56 -0
- package/build-module/utils/sorting.js.map +1 -0
- package/build-style/content-rtl.css +701 -0
- package/build-style/content.css +701 -0
- package/build-style/default-editor-styles-rtl.css +14 -0
- package/build-style/default-editor-styles.css +14 -0
- package/build-style/style-rtl.css +286 -662
- package/build-style/style.css +286 -662
- package/package.json +32 -30
- package/src/autocompleters/block.js +2 -6
- package/src/autocompleters/link.js +2 -0
- package/src/components/alignment-control/test/index.js +4 -1
- package/src/components/block-alignment-control/test/index.js +4 -1
- package/src/components/block-card/index.js +46 -2
- package/src/components/block-card/style.scss +4 -0
- package/src/components/block-content-overlay/{style.scss → content.scss} +7 -1
- package/src/components/block-draggable/content.scss +20 -0
- package/src/components/block-draggable/index.native.js +54 -40
- package/src/components/block-draggable/style.scss +0 -21
- package/src/components/block-draggable/test/helpers.native.js +7 -9
- package/src/components/block-draggable/test/index.native.js +35 -45
- package/src/components/block-edit/edit.js +5 -2
- package/src/components/block-edit/edit.native.js +5 -6
- package/src/components/block-inspector/index.js +96 -81
- package/src/components/block-inspector/style.scss +9 -1
- package/src/components/block-list/block-list-context.native.js +5 -8
- package/src/components/block-list/block.js +74 -23
- package/src/components/block-list/block.native.js +78 -23
- package/src/components/block-list/{style.scss → content.scss} +1 -15
- package/src/components/block-list-appender/{style.scss → content.scss} +0 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +24 -6
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +0 -2
- package/src/components/block-pattern-setup/index.js +2 -1
- package/src/components/block-patterns-list/index.js +47 -24
- package/src/components/block-preview/README.md +15 -10
- package/src/components/block-preview/auto.js +7 -1
- package/src/components/block-preview/content.scss +4 -0
- package/src/components/block-preview/index.js +7 -12
- package/src/components/block-preview/style.scss +0 -7
- package/src/components/block-preview/test/index.js +18 -35
- package/src/components/block-selection-clearer/test/index.js +12 -12
- package/src/components/block-settings-menu/block-settings-dropdown.js +32 -20
- package/src/components/block-switcher/test/index.js +4 -0
- package/src/components/block-toolbar/index.js +12 -5
- package/src/components/block-toolbar/style.scss +10 -0
- package/src/components/block-tools/insertion-point.js +3 -47
- package/src/components/block-tools/style.scss +12 -5
- package/src/components/block-variation-picker/index.js +1 -4
- package/src/components/block-vertical-alignment-control/test/index.js +4 -1
- package/src/components/default-block-appender/{style.scss → content.scss} +0 -0
- package/src/components/height-control/index.js +123 -0
- package/src/components/height-control/stories/index.js +21 -0
- package/src/components/height-control/style.scss +5 -0
- package/src/components/iframe/index.js +25 -18
- package/src/components/image-editor/use-save-image.js +2 -0
- package/src/components/image-editor/zoom-dropdown.js +1 -0
- package/src/components/index.js +1 -0
- package/src/components/inner-blocks/{style.scss → content.scss} +0 -0
- package/src/components/inner-blocks/index.js +23 -6
- package/src/components/inner-blocks/use-inner-block-template-sync.js +28 -10
- package/src/components/inserter/block-patterns-explorer/sidebar.js +1 -0
- package/src/components/inserter/block-patterns-tab.js +28 -71
- package/src/components/inserter/block-types-tab.js +3 -2
- package/src/components/inserter/hooks/use-debounced-input.js +17 -0
- package/src/components/inserter/index.js +10 -2
- package/src/components/inserter/index.native.js +1 -1
- package/src/components/inserter/media-tab/hooks.js +88 -0
- package/src/components/inserter/media-tab/index.js +3 -0
- package/src/components/inserter/media-tab/media-list.js +93 -0
- package/src/components/inserter/media-tab/media-panel.js +83 -0
- package/src/components/inserter/media-tab/media-tab.js +135 -0
- package/src/components/inserter/media-tab/utils.js +37 -0
- package/src/components/inserter/menu.js +55 -13
- package/src/components/inserter/mobile-tab-navigation.js +85 -0
- package/src/components/inserter/quick-inserter.js +1 -0
- package/src/components/inserter/search-results.js +3 -2
- package/src/components/inserter/stories/index.js +1 -1
- package/src/components/inserter/stories/{fixtures.js → utils/fixtures.js} +0 -0
- package/src/components/inserter/style.scss +176 -11
- package/src/components/inserter/tabs.js +12 -1
- package/src/components/inserter-list-item/index.js +11 -1
- package/src/components/inserter-list-item/style.scss +26 -0
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/advanced-controls-panel.js +37 -0
- package/src/components/inspector-controls-tabs/index.js +62 -0
- package/src/components/inspector-controls-tabs/settings-tab.js +18 -0
- package/src/components/inspector-controls-tabs/styles-tab.js +51 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +89 -0
- package/src/components/inspector-controls-tabs/use-is-list-view-tab-disabled.js +9 -0
- package/src/components/inspector-controls-tabs/utils.js +28 -0
- package/src/components/line-height-control/test/index.js +5 -5
- package/src/components/link-control/README.md +1 -1
- package/src/components/link-control/index.js +1 -0
- package/src/components/link-control/search-input.js +0 -1
- package/src/components/link-control/test/index.js +188 -401
- package/src/components/link-control/use-internal-input-value.js +3 -3
- package/src/components/list-view/block.js +3 -0
- package/src/components/list-view/branch.js +10 -8
- package/src/components/list-view/style.scss +20 -9
- package/src/components/media-placeholder/{style.scss → content.scss} +0 -0
- package/src/components/media-replace-flow/test/index.js +37 -9
- package/src/components/media-upload/test/index.native.js +2 -0
- package/src/components/off-canvas-editor/appender.js +93 -0
- package/src/components/off-canvas-editor/block-edit-button.js +27 -0
- package/src/components/off-canvas-editor/block.js +88 -22
- package/src/components/off-canvas-editor/branch.js +3 -5
- package/src/components/off-canvas-editor/index.js +59 -33
- package/src/components/off-canvas-editor/leaf.js +5 -1
- package/src/components/off-canvas-editor/link-ui.js +166 -0
- package/src/components/off-canvas-editor/style.scss +17 -388
- package/src/components/off-canvas-editor/update-attributes.js +99 -0
- package/src/components/plain-text/{style.scss → content.scss} +0 -0
- package/src/components/recursion-provider/test/index.js +27 -29
- package/src/components/rich-text/content.scss +42 -0
- package/src/components/rich-text/format-toolbar/index.js +6 -4
- package/src/components/rich-text/index.js +2 -2
- package/src/components/rich-text/index.native.js +0 -2
- package/src/components/rich-text/style.scss +0 -43
- package/src/components/rich-text/use-insert-replacement-text.js +31 -0
- package/src/components/rich-text/use-undo-automatic-change.js +7 -1
- package/src/components/rich-text/utils.js +2 -21
- package/src/components/spacing-sizes-control/spacing-input-control.js +9 -0
- package/src/components/ungroup-button/index.native.js +6 -2
- package/src/components/url-input/index.js +57 -73
- package/src/components/url-popover/test/__snapshots__/index.js.snap +8 -6
- package/src/components/url-popover/test/index.js +21 -9
- package/src/components/use-block-display-information/index.js +14 -5
- package/src/components/use-setting/index.js +13 -1
- package/src/components/use-setting/test/index.js +99 -0
- package/src/content.scss +10 -0
- package/src/hooks/child-layout.js +190 -0
- package/src/hooks/content-lock-ui.js +1 -1
- package/src/hooks/dimensions.js +45 -7
- package/src/hooks/layout.js +60 -0
- package/src/hooks/min-height.js +2 -19
- package/src/store/reducer.js +459 -423
- package/src/store/selectors.js +56 -57
- package/src/store/test/performance.js +71 -0
- package/src/store/test/reducer.js +623 -491
- package/src/store/test/selectors.js +1820 -1306
- package/src/style.scss +4 -7
- package/src/utils/sorting.js +54 -0
- package/src/utils/test/sorting.js +49 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-preview/live.js +0 -30
- package/build/components/block-preview/live.js.map +0 -1
- package/build-module/components/block-preview/live.js +0 -20
- package/build-module/components/block-preview/live.js.map +0 -1
- package/src/components/block-preview/live.js +0 -19
package/src/store/selectors.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { map, find
|
|
4
|
+
import { map, find } from 'lodash';
|
|
5
5
|
import createSelector from 'rememo';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -27,6 +27,7 @@ import deprecated from '@wordpress/deprecated';
|
|
|
27
27
|
* Internal dependencies
|
|
28
28
|
*/
|
|
29
29
|
import { mapRichTextSettings } from './utils';
|
|
30
|
+
import { orderBy } from '../utils/sorting';
|
|
30
31
|
|
|
31
32
|
/**
|
|
32
33
|
* A block selection object.
|
|
@@ -65,12 +66,12 @@ const EMPTY_ARRAY = [];
|
|
|
65
66
|
* @return {string} Block name.
|
|
66
67
|
*/
|
|
67
68
|
export function getBlockName( state, clientId ) {
|
|
68
|
-
const block = state.blocks.byClientId
|
|
69
|
+
const block = state.blocks.byClientId.get( clientId );
|
|
69
70
|
const socialLinkName = 'core/social-link';
|
|
70
71
|
|
|
71
72
|
if ( Platform.OS !== 'web' && block?.name === socialLinkName ) {
|
|
72
|
-
const attributes = state.blocks.attributes
|
|
73
|
-
const { service } = attributes;
|
|
73
|
+
const attributes = state.blocks.attributes.get( clientId );
|
|
74
|
+
const { service } = attributes ?? {};
|
|
74
75
|
|
|
75
76
|
return service ? `${ socialLinkName }-${ service }` : socialLinkName;
|
|
76
77
|
}
|
|
@@ -86,7 +87,7 @@ export function getBlockName( state, clientId ) {
|
|
|
86
87
|
* @return {boolean} Is Valid.
|
|
87
88
|
*/
|
|
88
89
|
export function isBlockValid( state, clientId ) {
|
|
89
|
-
const block = state.blocks.byClientId
|
|
90
|
+
const block = state.blocks.byClientId.get( clientId );
|
|
90
91
|
return !! block && block.isValid;
|
|
91
92
|
}
|
|
92
93
|
|
|
@@ -100,12 +101,12 @@ export function isBlockValid( state, clientId ) {
|
|
|
100
101
|
* @return {Object?} Block attributes.
|
|
101
102
|
*/
|
|
102
103
|
export function getBlockAttributes( state, clientId ) {
|
|
103
|
-
const block = state.blocks.byClientId
|
|
104
|
+
const block = state.blocks.byClientId.get( clientId );
|
|
104
105
|
if ( ! block ) {
|
|
105
106
|
return null;
|
|
106
107
|
}
|
|
107
108
|
|
|
108
|
-
return state.blocks.attributes
|
|
109
|
+
return state.blocks.attributes.get( clientId );
|
|
109
110
|
}
|
|
110
111
|
|
|
111
112
|
/**
|
|
@@ -130,29 +131,27 @@ export function getBlockAttributes( state, clientId ) {
|
|
|
130
131
|
* @return {Object} Parsed block object.
|
|
131
132
|
*/
|
|
132
133
|
export function getBlock( state, clientId ) {
|
|
133
|
-
|
|
134
|
-
if ( ! block ) {
|
|
134
|
+
if ( ! state.blocks.byClientId.has( clientId ) ) {
|
|
135
135
|
return null;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
return state.blocks.tree
|
|
138
|
+
return state.blocks.tree.get( clientId );
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
export const __unstableGetBlockWithoutInnerBlocks = createSelector(
|
|
142
142
|
( state, clientId ) => {
|
|
143
|
-
|
|
144
|
-
if ( ! block ) {
|
|
143
|
+
if ( ! state.blocks.byClientId.has( clientId ) ) {
|
|
145
144
|
return null;
|
|
146
145
|
}
|
|
147
146
|
|
|
148
147
|
return {
|
|
149
|
-
...
|
|
148
|
+
...state.blocks.byClientId.get( clientId ),
|
|
150
149
|
attributes: getBlockAttributes( state, clientId ),
|
|
151
150
|
};
|
|
152
151
|
},
|
|
153
152
|
( state, clientId ) => [
|
|
154
|
-
state.blocks.byClientId
|
|
155
|
-
state.blocks.attributes
|
|
153
|
+
state.blocks.byClientId.get( clientId ),
|
|
154
|
+
state.blocks.attributes.get( clientId ),
|
|
156
155
|
]
|
|
157
156
|
);
|
|
158
157
|
|
|
@@ -171,7 +170,7 @@ export function getBlocks( state, rootClientId ) {
|
|
|
171
170
|
! rootClientId || ! areInnerBlocksControlled( state, rootClientId )
|
|
172
171
|
? rootClientId || ''
|
|
173
172
|
: 'controlled||' + rootClientId;
|
|
174
|
-
return state.blocks.tree
|
|
173
|
+
return state.blocks.tree.get( treeKey )?.innerBlocks || EMPTY_ARRAY;
|
|
175
174
|
}
|
|
176
175
|
|
|
177
176
|
/**
|
|
@@ -274,7 +273,7 @@ export const getGlobalBlockCount = createSelector(
|
|
|
274
273
|
return clientIds.length;
|
|
275
274
|
}
|
|
276
275
|
return clientIds.reduce( ( accumulator, clientId ) => {
|
|
277
|
-
const block = state.blocks.byClientId
|
|
276
|
+
const block = state.blocks.byClientId.get( clientId );
|
|
278
277
|
return block.name === blockName ? accumulator + 1 : accumulator;
|
|
279
278
|
}, 0 );
|
|
280
279
|
},
|
|
@@ -296,7 +295,7 @@ export const __experimentalGetGlobalBlocksByName = createSelector(
|
|
|
296
295
|
}
|
|
297
296
|
const clientIds = getClientIdsWithDescendants( state );
|
|
298
297
|
const foundBlocks = clientIds.filter( ( clientId ) => {
|
|
299
|
-
const block = state.blocks.byClientId
|
|
298
|
+
const block = state.blocks.byClientId.get( clientId );
|
|
300
299
|
return block.name === blockName;
|
|
301
300
|
} );
|
|
302
301
|
return foundBlocks.length > 0 ? foundBlocks : EMPTY_ARRAY;
|
|
@@ -322,7 +321,7 @@ export const getBlocksByClientId = createSelector(
|
|
|
322
321
|
( state, clientIds ) =>
|
|
323
322
|
map(
|
|
324
323
|
Array.isArray( clientIds ) ? clientIds : [ clientIds ],
|
|
325
|
-
( clientId ) => state.blocks.tree
|
|
324
|
+
( clientId ) => state.blocks.tree.get( clientId )
|
|
326
325
|
)
|
|
327
326
|
);
|
|
328
327
|
|
|
@@ -463,8 +462,8 @@ export function getSelectedBlock( state ) {
|
|
|
463
462
|
* @return {?string} Root client ID, if exists
|
|
464
463
|
*/
|
|
465
464
|
export function getBlockRootClientId( state, clientId ) {
|
|
466
|
-
return state.blocks.parents
|
|
467
|
-
? state.blocks.parents
|
|
465
|
+
return state.blocks.parents.has( clientId )
|
|
466
|
+
? state.blocks.parents.get( clientId )
|
|
468
467
|
: null;
|
|
469
468
|
}
|
|
470
469
|
|
|
@@ -481,8 +480,8 @@ export const getBlockParents = createSelector(
|
|
|
481
480
|
( state, clientId, ascending = false ) => {
|
|
482
481
|
const parents = [];
|
|
483
482
|
let current = clientId;
|
|
484
|
-
while ( !! state.blocks.parents
|
|
485
|
-
current = state.blocks.parents
|
|
483
|
+
while ( !! state.blocks.parents.get( current ) ) {
|
|
484
|
+
current = state.blocks.parents.get( current );
|
|
486
485
|
parents.push( current );
|
|
487
486
|
}
|
|
488
487
|
|
|
@@ -509,24 +508,20 @@ export const getBlockParentsByBlockName = createSelector(
|
|
|
509
508
|
( state, clientId, blockName, ascending = false ) => {
|
|
510
509
|
const parents = getBlockParents( state, clientId, ascending );
|
|
511
510
|
return map(
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
if ( Array.isArray( blockName ) ) {
|
|
519
|
-
return blockName.includes( name );
|
|
520
|
-
}
|
|
521
|
-
return name === blockName;
|
|
511
|
+
map( parents, ( id ) => ( {
|
|
512
|
+
id,
|
|
513
|
+
name: getBlockName( state, id ),
|
|
514
|
+
} ) ).filter( ( { name } ) => {
|
|
515
|
+
if ( Array.isArray( blockName ) ) {
|
|
516
|
+
return blockName.includes( name );
|
|
522
517
|
}
|
|
523
|
-
|
|
518
|
+
return name === blockName;
|
|
519
|
+
} ),
|
|
524
520
|
( { id } ) => id
|
|
525
521
|
);
|
|
526
522
|
},
|
|
527
523
|
( state ) => [ state.blocks.parents ]
|
|
528
524
|
);
|
|
529
|
-
|
|
530
525
|
/**
|
|
531
526
|
* Given a block client ID, returns the root of the hierarchy from which the block is nested, return the block itself for root level blocks.
|
|
532
527
|
*
|
|
@@ -540,7 +535,7 @@ export function getBlockHierarchyRootClientId( state, clientId ) {
|
|
|
540
535
|
let parent;
|
|
541
536
|
do {
|
|
542
537
|
parent = current;
|
|
543
|
-
current = state.blocks.parents
|
|
538
|
+
current = state.blocks.parents.get( current );
|
|
544
539
|
} while ( current );
|
|
545
540
|
return parent;
|
|
546
541
|
}
|
|
@@ -617,7 +612,7 @@ export function getAdjacentBlockClientId( state, startClientId, modifier = 1 ) {
|
|
|
617
612
|
}
|
|
618
613
|
|
|
619
614
|
const { order } = state.blocks;
|
|
620
|
-
const orderSet = order
|
|
615
|
+
const orderSet = order.get( rootClientId );
|
|
621
616
|
const index = orderSet.indexOf( startClientId );
|
|
622
617
|
const nextIndex = index + 1 * modifier;
|
|
623
618
|
|
|
@@ -1132,7 +1127,7 @@ export const __unstableGetSelectedBlocksWithPartialSelection = ( state ) => {
|
|
|
1132
1127
|
* @return {Array} Ordered client IDs of editor blocks.
|
|
1133
1128
|
*/
|
|
1134
1129
|
export function getBlockOrder( state, rootClientId ) {
|
|
1135
|
-
return state.blocks.order
|
|
1130
|
+
return state.blocks.order.get( rootClientId || '' ) || EMPTY_ARRAY;
|
|
1136
1131
|
}
|
|
1137
1132
|
|
|
1138
1133
|
/**
|
|
@@ -1431,19 +1426,14 @@ export function getTemplate( state ) {
|
|
|
1431
1426
|
* @param {Object} state Editor state.
|
|
1432
1427
|
* @param {?string} rootClientId Optional block root client ID.
|
|
1433
1428
|
*
|
|
1434
|
-
* @return {
|
|
1429
|
+
* @return {string|false} Block Template Lock
|
|
1435
1430
|
*/
|
|
1436
1431
|
export function getTemplateLock( state, rootClientId ) {
|
|
1437
1432
|
if ( ! rootClientId ) {
|
|
1438
|
-
return state.settings.templateLock;
|
|
1439
|
-
}
|
|
1440
|
-
|
|
1441
|
-
const blockListSettings = getBlockListSettings( state, rootClientId );
|
|
1442
|
-
if ( ! blockListSettings ) {
|
|
1443
|
-
return undefined;
|
|
1433
|
+
return state.settings.templateLock ?? false;
|
|
1444
1434
|
}
|
|
1445
1435
|
|
|
1446
|
-
return
|
|
1436
|
+
return getBlockListSettings( state, rootClientId )?.templateLock ?? false;
|
|
1447
1437
|
}
|
|
1448
1438
|
|
|
1449
1439
|
const checkAllowList = ( list, item, defaultResult = null ) => {
|
|
@@ -1598,7 +1588,7 @@ export const canInsertBlockType = createSelector(
|
|
|
1598
1588
|
canInsertBlockTypeUnmemoized,
|
|
1599
1589
|
( state, blockName, rootClientId ) => [
|
|
1600
1590
|
state.blockListSettings[ rootClientId ],
|
|
1601
|
-
state.blocks.byClientId
|
|
1591
|
+
state.blocks.byClientId.get( rootClientId ),
|
|
1602
1592
|
state.settings.allowedBlockTypes,
|
|
1603
1593
|
state.settings.templateLock,
|
|
1604
1594
|
]
|
|
@@ -2111,7 +2101,7 @@ export const getBlockTransformItems = createSelector(
|
|
|
2111
2101
|
'desc'
|
|
2112
2102
|
);
|
|
2113
2103
|
},
|
|
2114
|
-
( state, rootClientId ) => [
|
|
2104
|
+
( state, blocks, rootClientId ) => [
|
|
2115
2105
|
state.blockListSettings[ rootClientId ],
|
|
2116
2106
|
state.blocks.byClientId,
|
|
2117
2107
|
state.preferences.insertUsage,
|
|
@@ -2167,7 +2157,7 @@ export const __experimentalGetAllowedBlocks = createSelector(
|
|
|
2167
2157
|
return;
|
|
2168
2158
|
}
|
|
2169
2159
|
|
|
2170
|
-
return
|
|
2160
|
+
return getBlockTypes().filter( ( blockType ) =>
|
|
2171
2161
|
canIncludeBlockTypeInInserter( state, blockType, rootClientId )
|
|
2172
2162
|
);
|
|
2173
2163
|
},
|
|
@@ -2214,7 +2204,7 @@ export const __experimentalGetDirectInsertBlock = createSelector(
|
|
|
2214
2204
|
},
|
|
2215
2205
|
( state, rootClientId ) => [
|
|
2216
2206
|
state.blockListSettings[ rootClientId ],
|
|
2217
|
-
state.blocks.tree
|
|
2207
|
+
state.blocks.tree.get( rootClientId ),
|
|
2218
2208
|
]
|
|
2219
2209
|
);
|
|
2220
2210
|
|
|
@@ -2292,8 +2282,7 @@ const getAllAllowedPatterns = createSelector(
|
|
|
2292
2282
|
export const __experimentalGetAllowedPatterns = createSelector(
|
|
2293
2283
|
( state, rootClientId = null ) => {
|
|
2294
2284
|
const availableParsedPatterns = getAllAllowedPatterns( state );
|
|
2295
|
-
const patternsAllowed = filter(
|
|
2296
|
-
availableParsedPatterns,
|
|
2285
|
+
const patternsAllowed = availableParsedPatterns.filter(
|
|
2297
2286
|
( { blocks } ) =>
|
|
2298
2287
|
blocks.every( ( { name } ) =>
|
|
2299
2288
|
canInsertBlockType( state, name, rootClientId )
|
|
@@ -2307,7 +2296,7 @@ export const __experimentalGetAllowedPatterns = createSelector(
|
|
|
2307
2296
|
state.settings.allowedBlockTypes,
|
|
2308
2297
|
state.settings.templateLock,
|
|
2309
2298
|
state.blockListSettings[ rootClientId ],
|
|
2310
|
-
state.blocks.byClientId
|
|
2299
|
+
state.blocks.byClientId.get( rootClientId ),
|
|
2311
2300
|
]
|
|
2312
2301
|
);
|
|
2313
2302
|
|
|
@@ -2340,7 +2329,7 @@ export const __experimentalGetPatternsByBlockTypes = createSelector(
|
|
|
2340
2329
|
)
|
|
2341
2330
|
);
|
|
2342
2331
|
},
|
|
2343
|
-
( state, rootClientId ) => [
|
|
2332
|
+
( state, blockNames, rootClientId ) => [
|
|
2344
2333
|
...__experimentalGetAllowedPatterns.getDependants(
|
|
2345
2334
|
state,
|
|
2346
2335
|
rootClientId
|
|
@@ -2401,7 +2390,7 @@ export const __experimentalGetPatternTransformItems = createSelector(
|
|
|
2401
2390
|
rootClientId
|
|
2402
2391
|
);
|
|
2403
2392
|
},
|
|
2404
|
-
( state, rootClientId ) => [
|
|
2393
|
+
( state, blocks, rootClientId ) => [
|
|
2405
2394
|
...__experimentalGetPatternsByBlockTypes.getDependants(
|
|
2406
2395
|
state,
|
|
2407
2396
|
rootClientId
|
|
@@ -2664,6 +2653,16 @@ export function wasBlockJustInserted( state, clientId, source ) {
|
|
|
2664
2653
|
);
|
|
2665
2654
|
}
|
|
2666
2655
|
|
|
2656
|
+
/**
|
|
2657
|
+
* Gets the client id of the last inserted block.
|
|
2658
|
+
*
|
|
2659
|
+
* @param {Object} state Global application state.
|
|
2660
|
+
* @return {string|undefined} Client Id of the last inserted block.
|
|
2661
|
+
*/
|
|
2662
|
+
export function getLastInsertedBlockClientId( state ) {
|
|
2663
|
+
return state?.lastBlockInserted?.clientId;
|
|
2664
|
+
}
|
|
2665
|
+
|
|
2667
2666
|
/**
|
|
2668
2667
|
* Tells if the block is visible on the canvas or not.
|
|
2669
2668
|
*
|
|
@@ -2701,8 +2700,8 @@ export const __unstableGetContentLockingParent = createSelector(
|
|
|
2701
2700
|
( state, clientId ) => {
|
|
2702
2701
|
let current = clientId;
|
|
2703
2702
|
let result;
|
|
2704
|
-
while (
|
|
2705
|
-
current = state.blocks.parents
|
|
2703
|
+
while ( state.blocks.parents.has( current ) ) {
|
|
2704
|
+
current = state.blocks.parents.get( current );
|
|
2706
2705
|
if ( getTemplateLock( state, current ) === 'contentOnly' ) {
|
|
2707
2706
|
result = current;
|
|
2708
2707
|
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal dependencies
|
|
3
|
+
*/
|
|
4
|
+
import reducer from '../reducer';
|
|
5
|
+
|
|
6
|
+
describe( 'performance', () => {
|
|
7
|
+
const state = reducer( undefined, { type: '@@init' } );
|
|
8
|
+
const blocks = [];
|
|
9
|
+
for ( let i = 0; i < 100000; i++ ) {
|
|
10
|
+
blocks.push( {
|
|
11
|
+
clientId: `block-${ i }`,
|
|
12
|
+
attributes: { content: `paragraph ${ i }` },
|
|
13
|
+
innerBlocks: [],
|
|
14
|
+
} );
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
let preparedState;
|
|
18
|
+
|
|
19
|
+
it( 'should reset blocks', () => {
|
|
20
|
+
preparedState = reducer( state, {
|
|
21
|
+
type: 'RESET_BLOCKS',
|
|
22
|
+
blocks,
|
|
23
|
+
} );
|
|
24
|
+
expect( preparedState ).toBeDefined();
|
|
25
|
+
} );
|
|
26
|
+
|
|
27
|
+
it( 'should update blocks', () => {
|
|
28
|
+
const updatedState = reducer( preparedState, {
|
|
29
|
+
type: 'UPDATE_BLOCK_ATTRIBUTES',
|
|
30
|
+
clientIds: [ 'block-10' ],
|
|
31
|
+
attributes: {
|
|
32
|
+
content: 'updated paragraph 10',
|
|
33
|
+
},
|
|
34
|
+
} );
|
|
35
|
+
|
|
36
|
+
expect( updatedState ).toBeDefined();
|
|
37
|
+
} );
|
|
38
|
+
|
|
39
|
+
it( 'should replace blocks (Enter in paragraphs)', () => {
|
|
40
|
+
const updatedState = reducer( preparedState, {
|
|
41
|
+
type: 'REPLACE_BLOCKS',
|
|
42
|
+
clientIds: [ 'block-10' ],
|
|
43
|
+
blocks: [
|
|
44
|
+
{
|
|
45
|
+
clientId: `block-10`,
|
|
46
|
+
attributes: { content: `paragraph 10` },
|
|
47
|
+
innerBlocks: [],
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
clientId: `block-10-2`,
|
|
51
|
+
attributes: { content: '' },
|
|
52
|
+
innerBlocks: [],
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
indexToSelect: 10,
|
|
56
|
+
initialPosition: 0,
|
|
57
|
+
} );
|
|
58
|
+
|
|
59
|
+
expect( updatedState ).toBeDefined();
|
|
60
|
+
} );
|
|
61
|
+
|
|
62
|
+
it( 'should move blocks', () => {
|
|
63
|
+
const updatedState = reducer( preparedState, {
|
|
64
|
+
type: 'MOVE_BLOCKS_DOWN',
|
|
65
|
+
clientIds: [ 'block-10' ],
|
|
66
|
+
rootClientId: '',
|
|
67
|
+
} );
|
|
68
|
+
|
|
69
|
+
expect( updatedState ).toBeDefined();
|
|
70
|
+
} );
|
|
71
|
+
} );
|