@wordpress/block-editor 12.16.1-next.79a6196f.0 → 12.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +32 -0
- package/build/components/block-draggable/index.js +11 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-edit/context.js +3 -1
- package/build/components/block-edit/context.js.map +1 -1
- package/build/components/block-edit/index.js +4 -2
- package/build/components/block-edit/index.js.map +1 -1
- package/build/components/block-editing-mode/index.js +6 -3
- package/build/components/block-editing-mode/index.js.map +1 -1
- package/build/components/block-inspector/index.js +5 -2
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +4 -3
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +9 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js +30 -4
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/private-block-context.js +1 -1
- package/build/components/block-list/private-block-context.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +1 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-popover/inbetween.js +15 -3
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-preview/auto.js +1 -1
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-removal-warning-modal/index.js +3 -2
- package/build/components/block-removal-warning-modal/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +2 -4
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +12 -1
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/index.js +119 -90
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +10 -3
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/font-sizes/fluid-utils.js +7 -1
- package/build/components/font-sizes/fluid-utils.js.map +1 -1
- package/build/components/global-styles/border-panel.js +5 -14
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/effects-panel.js +7 -1
- package/build/components/global-styles/effects-panel.js.map +1 -1
- package/build/components/iframe/get-compatibility-styles.js +99 -0
- package/build/components/iframe/get-compatibility-styles.js.map +1 -0
- package/build/components/iframe/index.js +2 -3
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.js +16 -2
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +16 -2
- package/build/components/index.native.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/styles-tab.js +3 -0
- package/build/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -2
- package/build/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build/components/link-control/link-preview.js +30 -26
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js +1 -9
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/list-view/block-contents.js +3 -1
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block.js +10 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +29 -8
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +100 -32
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js +52 -4
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +2 -2
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/list-view/use-list-view-block-indexes.js +30 -0
- package/build/components/list-view/use-list-view-block-indexes.js.map +1 -0
- package/build/components/list-view/use-list-view-drop-zone.js +56 -5
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/utils.js +92 -0
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/provider/index.js +1 -1
- package/build/components/provider/index.js.map +1 -1
- package/build/components/recursion-provider/index.js +21 -0
- package/build/components/recursion-provider/index.js.map +1 -1
- package/build/components/rich-text/index.js +30 -6
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/native/index.native.js +9 -9
- package/build/components/rich-text/native/index.native.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +30 -7
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +50 -8
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/hooks/block-hooks.js +5 -14
- package/build/hooks/block-hooks.js.map +1 -1
- package/build/hooks/content-lock-ui.js +17 -42
- package/build/hooks/content-lock-ui.js.map +1 -1
- package/build/hooks/effects.js +66 -0
- package/build/hooks/effects.js.map +1 -0
- package/build/hooks/index.js +14 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +13 -0
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/style.js +6 -2
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/supports.js +2 -1
- package/build/hooks/supports.js.map +1 -1
- package/build/hooks/typography.native.js +2 -2
- package/build/hooks/typography.native.js.map +1 -1
- package/build/hooks/use-bindings-attributes.js +115 -0
- package/build/hooks/use-bindings-attributes.js.map +1 -0
- package/build/hooks/use-shadow-props.js +46 -0
- package/build/hooks/use-shadow-props.js.map +1 -0
- package/build/hooks/utils.js +7 -6
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +14 -0
- package/build/index.js.map +1 -1
- package/build/store/actions.js +10 -6
- package/build/store/actions.js.map +1 -1
- package/build/store/index.js +2 -0
- package/build/store/index.js.map +1 -1
- package/build/store/private-actions.js +37 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +60 -9
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +44 -3
- package/build/store/reducer.js.map +1 -1
- package/build/store/resolvers.js +27 -0
- package/build/store/resolvers.js.map +1 -0
- package/build/store/selectors.js +94 -56
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +5 -26
- package/build/store/utils.js.map +1 -1
- package/build/utils/index.js +0 -16
- package/build/utils/index.js.map +1 -1
- package/build/utils/math.js +13 -0
- package/build/utils/math.js.map +1 -1
- package/build/utils/transform-styles/index.js +37 -27
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +11 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-edit/context.js +1 -0
- package/build-module/components/block-edit/context.js.map +1 -1
- package/build-module/components/block-edit/index.js +5 -3
- package/build-module/components/block-edit/index.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +7 -4
- package/build-module/components/block-editing-mode/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +5 -2
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +6 -5
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +11 -7
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js +31 -5
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/private-block-context.js +1 -1
- package/build-module/components/block-list/private-block-context.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +15 -3
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-preview/auto.js +3 -3
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-removal-warning-modal/index.js +3 -2
- package/build-module/components/block-removal-warning-modal/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +2 -4
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +12 -1
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/index.js +116 -86
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +10 -3
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/font-sizes/fluid-utils.js +7 -1
- package/build-module/components/font-sizes/fluid-utils.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +5 -14
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/effects-panel.js +7 -1
- package/build-module/components/global-styles/effects-panel.js.map +1 -1
- package/build-module/components/iframe/get-compatibility-styles.js +93 -0
- package/build-module/components/iframe/get-compatibility-styles.js.map +1 -0
- package/build-module/components/iframe/index.js +2 -3
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.js +1 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -1
- package/build-module/components/index.native.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/styles-tab.js +3 -0
- package/build-module/components/inspector-controls-tabs/styles-tab.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js +3 -2
- package/build-module/components/inspector-controls-tabs/use-inspector-controls-tabs.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +32 -28
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js +1 -8
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +3 -1
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block.js +10 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +30 -9
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +99 -32
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js +54 -6
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +2 -2
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/list-view/use-list-view-block-indexes.js +23 -0
- package/build-module/components/list-view/use-list-view-block-indexes.js.map +1 -0
- package/build-module/components/list-view/use-list-view-drop-zone.js +58 -7
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/utils.js +91 -0
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/provider/index.js +1 -1
- package/build-module/components/provider/index.js.map +1 -1
- package/build-module/components/recursion-provider/index.js +17 -0
- package/build-module/components/recursion-provider/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +30 -6
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/native/index.native.js +9 -9
- package/build-module/components/rich-text/native/index.native.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +31 -8
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +51 -9
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/hooks/block-hooks.js +5 -14
- package/build-module/hooks/block-hooks.js.map +1 -1
- package/build-module/hooks/content-lock-ui.js +19 -43
- package/build-module/hooks/content-lock-ui.js.map +1 -1
- package/build-module/hooks/effects.js +51 -0
- package/build-module/hooks/effects.js.map +1 -0
- package/build-module/hooks/index.js +2 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +1 -0
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/style.js +6 -2
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/supports.js +2 -1
- package/build-module/hooks/supports.js.map +1 -1
- package/build-module/hooks/typography.native.js +2 -2
- package/build-module/hooks/typography.native.js.map +1 -1
- package/build-module/hooks/use-bindings-attributes.js +112 -0
- package/build-module/hooks/use-bindings-attributes.js.map +1 -0
- package/build-module/hooks/use-shadow-props.js +39 -0
- package/build-module/hooks/use-shadow-props.js.map +1 -0
- package/build-module/hooks/utils.js +9 -8
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/store/actions.js +10 -6
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/index.js +2 -0
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/private-actions.js +35 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +53 -8
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +43 -3
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/resolvers.js +20 -0
- package/build-module/store/resolvers.js.map +1 -0
- package/build-module/store/selectors.js +89 -52
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +3 -23
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/index.js +0 -1
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/math.js +12 -0
- package/build-module/utils/math.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +36 -27
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/content-rtl.css +33 -16
- package/build-style/content.css +33 -16
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +169 -114
- package/build-style/style.css +169 -114
- package/package.json +31 -31
- package/src/components/block-canvas/style.scss +8 -1
- package/src/components/block-draggable/index.js +16 -5
- package/src/components/block-edit/context.js +1 -0
- package/src/components/block-edit/index.js +4 -0
- package/src/components/block-editing-mode/index.js +12 -7
- package/src/components/block-inspector/index.js +5 -2
- package/src/components/block-list/block.js +5 -4
- package/src/components/block-list/block.native.js +13 -3
- package/src/components/block-list/content.scss +34 -5
- package/src/components/block-list/index.js +52 -16
- package/src/components/block-list/private-block-context.js +1 -1
- package/src/components/block-list/use-in-between-inserter.js +1 -2
- package/src/components/block-popover/inbetween.js +22 -2
- package/src/components/block-preview/auto.js +3 -3
- package/src/components/block-removal-warning-modal/index.js +3 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +2 -7
- package/src/components/block-switcher/block-transformations-menu.js +18 -1
- package/src/components/block-switcher/index.js +133 -111
- package/src/components/block-switcher/style.scss +6 -4
- package/src/components/block-switcher/test/index.js +113 -230
- package/src/components/block-toolbar/style.scss +22 -18
- package/src/components/block-tools/insertion-point.js +15 -2
- package/src/components/block-tools/style.scss +8 -7
- package/src/components/font-sizes/fluid-utils.js +8 -2
- package/src/components/font-sizes/test/fluid-utils.js +9 -0
- package/src/components/global-styles/border-panel.js +7 -17
- package/src/components/global-styles/effects-panel.js +16 -1
- package/src/components/iframe/get-compatibility-styles.js +120 -0
- package/src/components/iframe/index.js +2 -3
- package/src/components/index.js +4 -2
- package/src/components/index.native.js +4 -2
- package/src/components/inspector-controls/groups.js +2 -0
- package/src/components/inspector-controls-tabs/styles-tab.js +1 -0
- package/src/components/inspector-controls-tabs/use-inspector-controls-tabs.js +2 -0
- package/src/components/link-control/link-preview.js +31 -55
- package/src/components/link-control/search-input.js +1 -9
- package/src/components/link-control/style.scss +31 -85
- package/src/components/link-control/test/index.js +2 -1
- package/src/components/list-view/block-contents.js +5 -1
- package/src/components/list-view/block.js +9 -0
- package/src/components/list-view/branch.js +30 -10
- package/src/components/list-view/drop-indicator.js +139 -46
- package/src/components/list-view/index.js +74 -3
- package/src/components/list-view/leaf.js +2 -2
- package/src/components/list-view/style.scss +102 -13
- package/src/components/list-view/test/use-list-view-drop-zone.js +4 -0
- package/src/components/list-view/test/utils.js +218 -1
- package/src/components/list-view/use-list-view-block-indexes.js +29 -0
- package/src/components/list-view/use-list-view-drop-zone.js +78 -6
- package/src/components/list-view/utils.js +116 -0
- package/src/components/provider/index.js +3 -1
- package/src/components/recursion-provider/README.md +2 -2
- package/src/components/recursion-provider/index.js +17 -0
- package/src/components/rich-text/index.js +48 -10
- package/src/components/rich-text/native/index.native.js +10 -10
- package/src/components/use-block-drop-zone/index.js +60 -19
- package/src/components/use-block-drop-zone/test/index.js +32 -61
- package/src/components/use-on-block-drop/index.js +92 -11
- package/src/hooks/block-hooks.js +5 -17
- package/src/hooks/content-lock-ui.js +15 -55
- package/src/hooks/effects.js +57 -0
- package/src/hooks/index.js +2 -0
- package/src/hooks/index.native.js +1 -0
- package/src/hooks/style.js +8 -0
- package/src/hooks/supports.js +2 -0
- package/src/hooks/test/effects.js +39 -0
- package/src/hooks/typography.native.js +2 -2
- package/src/hooks/use-bindings-attributes.js +148 -0
- package/src/hooks/use-shadow-props.js +37 -0
- package/src/hooks/utils.js +10 -6
- package/src/index.js +2 -0
- package/src/store/actions.js +9 -4
- package/src/store/index.js +2 -0
- package/src/store/private-actions.js +32 -0
- package/src/store/private-selectors.js +78 -21
- package/src/store/reducer.js +49 -2
- package/src/store/resolvers.js +17 -0
- package/src/store/selectors.js +169 -161
- package/src/store/test/registry-selectors.js +431 -0
- package/src/store/test/selectors.js +14 -400
- package/src/store/utils.js +10 -33
- package/src/style.scss +0 -1
- package/src/utils/index.js +0 -1
- package/src/utils/math.js +12 -0
- package/src/utils/transform-styles/index.js +52 -37
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/iframe/use-compatibility-styles.js +0 -100
- package/build/components/iframe/use-compatibility-styles.js.map +0 -1
- package/build/utils/block-variation-transforms.js +0 -42
- package/build/utils/block-variation-transforms.js.map +0 -1
- package/build-module/components/iframe/use-compatibility-styles.js +0 -94
- package/build-module/components/iframe/use-compatibility-styles.js.map +0 -1
- package/build-module/utils/block-variation-transforms.js +0 -35
- package/build-module/utils/block-variation-transforms.js.map +0 -1
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +0 -116
- package/src/components/contrast-checker/style.scss +0 -3
- package/src/components/iframe/use-compatibility-styles.js +0 -122
- package/src/utils/block-variation-transforms.js +0 -38
- package/src/utils/test/block-variation-transforms.js +0 -94
package/src/store/selectors.js
CHANGED
|
@@ -27,11 +27,13 @@ import { createRegistrySelector } from '@wordpress/data';
|
|
|
27
27
|
* Internal dependencies
|
|
28
28
|
*/
|
|
29
29
|
import {
|
|
30
|
-
getUserPatterns,
|
|
31
30
|
checkAllowListRecursive,
|
|
32
31
|
checkAllowList,
|
|
32
|
+
getAllPatternsDependants,
|
|
33
33
|
} from './utils';
|
|
34
34
|
import { orderBy } from '../utils/sorting';
|
|
35
|
+
import { STORE_NAME } from './constants';
|
|
36
|
+
import { unlock } from '../lock-unlock';
|
|
35
37
|
|
|
36
38
|
/**
|
|
37
39
|
* A block selection object.
|
|
@@ -318,14 +320,14 @@ export const getGlobalBlockCount = createSelector(
|
|
|
318
320
|
);
|
|
319
321
|
|
|
320
322
|
/**
|
|
321
|
-
* Returns all
|
|
323
|
+
* Returns all blocks that match a blockName. Results include nested blocks.
|
|
322
324
|
*
|
|
323
325
|
* @param {Object} state Global application state.
|
|
324
326
|
* @param {?string} blockName Optional block name, if not specified, returns an empty array.
|
|
325
327
|
*
|
|
326
328
|
* @return {Array} Array of clientIds of blocks with name equal to blockName.
|
|
327
329
|
*/
|
|
328
|
-
export const
|
|
330
|
+
export const getBlocksByName = createSelector(
|
|
329
331
|
( state, blockName ) => {
|
|
330
332
|
if ( ! blockName ) {
|
|
331
333
|
return EMPTY_ARRAY;
|
|
@@ -343,6 +345,27 @@ export const __experimentalGetGlobalBlocksByName = createSelector(
|
|
|
343
345
|
( state ) => [ state.blocks.order, state.blocks.byClientId ]
|
|
344
346
|
);
|
|
345
347
|
|
|
348
|
+
/**
|
|
349
|
+
* Returns all global blocks that match a blockName. Results include nested blocks.
|
|
350
|
+
*
|
|
351
|
+
* @deprecated
|
|
352
|
+
*
|
|
353
|
+
* @param {Object} state Global application state.
|
|
354
|
+
* @param {?string} blockName Optional block name, if not specified, returns an empty array.
|
|
355
|
+
*
|
|
356
|
+
* @return {Array} Array of clientIds of blocks with name equal to blockName.
|
|
357
|
+
*/
|
|
358
|
+
export function __experimentalGetGlobalBlocksByName( state, blockName ) {
|
|
359
|
+
deprecated(
|
|
360
|
+
"wp.data.select( 'core/block-editor' ).__experimentalGetGlobalBlocksByName",
|
|
361
|
+
{
|
|
362
|
+
since: '6.5',
|
|
363
|
+
alternative: `wp.data.select( 'core/block-editor' ).getBlocksByName`,
|
|
364
|
+
}
|
|
365
|
+
);
|
|
366
|
+
return getBlocksByName( state, blockName );
|
|
367
|
+
}
|
|
368
|
+
|
|
346
369
|
/**
|
|
347
370
|
* Given an array of block client IDs, returns the corresponding array of block
|
|
348
371
|
* objects.
|
|
@@ -2015,7 +2038,7 @@ export const getInserterItems = createSelector(
|
|
|
2015
2038
|
},
|
|
2016
2039
|
( state, rootClientId ) => [
|
|
2017
2040
|
state.blockListSettings[ rootClientId ],
|
|
2018
|
-
state.blocks.byClientId,
|
|
2041
|
+
state.blocks.byClientId.get( rootClientId ),
|
|
2019
2042
|
state.blocks.order,
|
|
2020
2043
|
state.preferences.insertUsage,
|
|
2021
2044
|
state.settings.allowedBlockTypes,
|
|
@@ -2086,7 +2109,7 @@ export const getBlockTransformItems = createSelector(
|
|
|
2086
2109
|
},
|
|
2087
2110
|
( state, blocks, rootClientId ) => [
|
|
2088
2111
|
state.blockListSettings[ rootClientId ],
|
|
2089
|
-
state.blocks.byClientId,
|
|
2112
|
+
state.blocks.byClientId.get( rootClientId ),
|
|
2090
2113
|
state.preferences.insertUsage,
|
|
2091
2114
|
state.settings.allowedBlockTypes,
|
|
2092
2115
|
state.settings.templateLock,
|
|
@@ -2118,7 +2141,7 @@ export const hasInserterItems = createSelector(
|
|
|
2118
2141
|
},
|
|
2119
2142
|
( state, rootClientId ) => [
|
|
2120
2143
|
state.blockListSettings[ rootClientId ],
|
|
2121
|
-
state.blocks.byClientId,
|
|
2144
|
+
state.blocks.byClientId.get( rootClientId ),
|
|
2122
2145
|
state.settings.allowedBlockTypes,
|
|
2123
2146
|
state.settings.templateLock,
|
|
2124
2147
|
getReusableBlocks( state ),
|
|
@@ -2143,18 +2166,20 @@ export const getAllowedBlocks = createSelector(
|
|
|
2143
2166
|
const blockTypes = getBlockTypes().filter( ( blockType ) =>
|
|
2144
2167
|
canIncludeBlockTypeInInserter( state, blockType, rootClientId )
|
|
2145
2168
|
);
|
|
2169
|
+
|
|
2146
2170
|
const hasReusableBlock =
|
|
2147
2171
|
canInsertBlockTypeUnmemoized( state, 'core/block', rootClientId ) &&
|
|
2148
2172
|
getReusableBlocks( state ).length > 0;
|
|
2149
2173
|
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2174
|
+
if ( hasReusableBlock ) {
|
|
2175
|
+
blockTypes.push( 'core/block' );
|
|
2176
|
+
}
|
|
2177
|
+
|
|
2178
|
+
return blockTypes;
|
|
2154
2179
|
},
|
|
2155
2180
|
( state, rootClientId ) => [
|
|
2156
2181
|
state.blockListSettings[ rootClientId ],
|
|
2157
|
-
state.blocks.byClientId,
|
|
2182
|
+
state.blocks.byClientId.get( rootClientId ),
|
|
2158
2183
|
state.settings.allowedBlockTypes,
|
|
2159
2184
|
state.settings.templateLock,
|
|
2160
2185
|
getReusableBlocks( state ),
|
|
@@ -2237,62 +2262,35 @@ export const __experimentalGetDirectInsertBlock = createSelector(
|
|
|
2237
2262
|
]
|
|
2238
2263
|
);
|
|
2239
2264
|
|
|
2240
|
-
export const
|
|
2241
|
-
(
|
|
2242
|
-
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2250
|
-
|
|
2251
|
-
|
|
2252
|
-
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
|
|
2256
|
-
|
|
2257
|
-
}
|
|
2258
|
-
return {
|
|
2259
|
-
...pattern,
|
|
2260
|
-
blocks: parse( pattern.content, {
|
|
2261
|
-
__unstableSkipMigrationLogs: true,
|
|
2262
|
-
} ),
|
|
2263
|
-
};
|
|
2264
|
-
},
|
|
2265
|
-
( state ) => [
|
|
2266
|
-
state.settings.__experimentalBlockPatterns,
|
|
2267
|
-
state.settings.__experimentalReusableBlocks,
|
|
2268
|
-
state?.settings?.__experimentalUserPatternCategories,
|
|
2269
|
-
]
|
|
2265
|
+
export const __experimentalGetParsedPattern = createRegistrySelector(
|
|
2266
|
+
( select ) =>
|
|
2267
|
+
createSelector( ( state, patternName ) => {
|
|
2268
|
+
const { getAllPatterns } = unlock( select( STORE_NAME ) );
|
|
2269
|
+
const patterns = getAllPatterns();
|
|
2270
|
+
const pattern = patterns.find(
|
|
2271
|
+
( { name } ) => name === patternName
|
|
2272
|
+
);
|
|
2273
|
+
if ( ! pattern ) {
|
|
2274
|
+
return null;
|
|
2275
|
+
}
|
|
2276
|
+
return {
|
|
2277
|
+
...pattern,
|
|
2278
|
+
blocks: parse( pattern.content, {
|
|
2279
|
+
__unstableSkipMigrationLogs: true,
|
|
2280
|
+
} ),
|
|
2281
|
+
};
|
|
2282
|
+
}, getAllPatternsDependants )
|
|
2270
2283
|
);
|
|
2271
2284
|
|
|
2272
|
-
const
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
const userPatterns = getUserPatterns( state );
|
|
2276
|
-
|
|
2277
|
-
const { allowedBlockTypes } = getSettings( state );
|
|
2278
|
-
|
|
2279
|
-
const parsedPatterns = [ ...userPatterns, ...patterns ]
|
|
2280
|
-
.filter( ( { inserter = true } ) => !! inserter )
|
|
2281
|
-
.map( ( { name } ) =>
|
|
2282
|
-
__experimentalGetParsedPattern( state, name )
|
|
2283
|
-
);
|
|
2284
|
-
const allowedPatterns = parsedPatterns.filter( ( { blocks } ) =>
|
|
2285
|
-
checkAllowListRecursive( blocks, allowedBlockTypes )
|
|
2286
|
-
);
|
|
2287
|
-
return allowedPatterns;
|
|
2288
|
-
},
|
|
2289
|
-
( state ) => [
|
|
2290
|
-
state.settings.__experimentalBlockPatterns,
|
|
2291
|
-
state.settings.__experimentalReusableBlocks,
|
|
2285
|
+
const getAllowedPatternsDependants = ( state, rootClientId ) => {
|
|
2286
|
+
return [
|
|
2287
|
+
...getAllPatternsDependants( state ),
|
|
2292
2288
|
state.settings.allowedBlockTypes,
|
|
2293
|
-
state
|
|
2294
|
-
|
|
2295
|
-
)
|
|
2289
|
+
state.settings.templateLock,
|
|
2290
|
+
state.blockListSettings[ rootClientId ],
|
|
2291
|
+
state.blocks.byClientId.get( rootClientId ),
|
|
2292
|
+
];
|
|
2293
|
+
};
|
|
2296
2294
|
|
|
2297
2295
|
/**
|
|
2298
2296
|
* Returns the list of allowed patterns for inner blocks children.
|
|
@@ -2302,26 +2300,33 @@ const getAllAllowedPatterns = createSelector(
|
|
|
2302
2300
|
*
|
|
2303
2301
|
* @return {Array?} The list of allowed patterns.
|
|
2304
2302
|
*/
|
|
2305
|
-
export const __experimentalGetAllowedPatterns =
|
|
2306
|
-
(
|
|
2307
|
-
|
|
2308
|
-
|
|
2309
|
-
|
|
2310
|
-
|
|
2311
|
-
|
|
2312
|
-
|
|
2313
|
-
|
|
2303
|
+
export const __experimentalGetAllowedPatterns = createRegistrySelector(
|
|
2304
|
+
( select ) => {
|
|
2305
|
+
return createSelector( ( state, rootClientId = null ) => {
|
|
2306
|
+
const {
|
|
2307
|
+
getAllPatterns,
|
|
2308
|
+
__experimentalGetParsedPattern: getParsedPattern,
|
|
2309
|
+
} = unlock( select( STORE_NAME ) );
|
|
2310
|
+
const patterns = getAllPatterns();
|
|
2311
|
+
const { allowedBlockTypes } = getSettings( state );
|
|
2312
|
+
|
|
2313
|
+
const parsedPatterns = patterns
|
|
2314
|
+
.filter( ( { inserter = true } ) => !! inserter )
|
|
2315
|
+
.map( ( { name } ) => getParsedPattern( name ) );
|
|
2316
|
+
const availableParsedPatterns = parsedPatterns.filter(
|
|
2317
|
+
( { blocks } ) =>
|
|
2318
|
+
checkAllowListRecursive( blocks, allowedBlockTypes )
|
|
2319
|
+
);
|
|
2320
|
+
const patternsAllowed = availableParsedPatterns.filter(
|
|
2321
|
+
( { blocks } ) =>
|
|
2322
|
+
blocks.every( ( { name } ) =>
|
|
2323
|
+
canInsertBlockType( state, name, rootClientId )
|
|
2324
|
+
)
|
|
2325
|
+
);
|
|
2314
2326
|
|
|
2315
|
-
|
|
2316
|
-
|
|
2317
|
-
|
|
2318
|
-
state.settings.__experimentalBlockPatterns,
|
|
2319
|
-
state.settings.__experimentalReusableBlocks,
|
|
2320
|
-
state.settings.allowedBlockTypes,
|
|
2321
|
-
state.settings.templateLock,
|
|
2322
|
-
state.blockListSettings[ rootClientId ],
|
|
2323
|
-
state.blocks.byClientId.get( rootClientId ),
|
|
2324
|
-
]
|
|
2327
|
+
return patternsAllowed;
|
|
2328
|
+
}, getAllowedPatternsDependants );
|
|
2329
|
+
}
|
|
2325
2330
|
);
|
|
2326
2331
|
|
|
2327
2332
|
/**
|
|
@@ -2337,36 +2342,34 @@ export const __experimentalGetAllowedPatterns = createSelector(
|
|
|
2337
2342
|
*
|
|
2338
2343
|
* @return {Array} The list of matched block patterns based on declared `blockTypes` and block name.
|
|
2339
2344
|
*/
|
|
2340
|
-
export const getPatternsByBlockTypes =
|
|
2341
|
-
(
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
state,
|
|
2363
|
-
|
|
2364
|
-
),
|
|
2365
|
-
]
|
|
2345
|
+
export const getPatternsByBlockTypes = createRegistrySelector( ( select ) =>
|
|
2346
|
+
createSelector(
|
|
2347
|
+
( state, blockNames, rootClientId = null ) => {
|
|
2348
|
+
if ( ! blockNames ) return EMPTY_ARRAY;
|
|
2349
|
+
const patterns =
|
|
2350
|
+
select( STORE_NAME ).__experimentalGetAllowedPatterns(
|
|
2351
|
+
rootClientId
|
|
2352
|
+
);
|
|
2353
|
+
const normalizedBlockNames = Array.isArray( blockNames )
|
|
2354
|
+
? blockNames
|
|
2355
|
+
: [ blockNames ];
|
|
2356
|
+
const filteredPatterns = patterns.filter( ( pattern ) =>
|
|
2357
|
+
pattern?.blockTypes?.some?.( ( blockName ) =>
|
|
2358
|
+
normalizedBlockNames.includes( blockName )
|
|
2359
|
+
)
|
|
2360
|
+
);
|
|
2361
|
+
if ( filteredPatterns.length === 0 ) {
|
|
2362
|
+
return EMPTY_ARRAY;
|
|
2363
|
+
}
|
|
2364
|
+
return filteredPatterns;
|
|
2365
|
+
},
|
|
2366
|
+
( state, blockNames, rootClientId ) =>
|
|
2367
|
+
getAllowedPatternsDependants( state, rootClientId )
|
|
2368
|
+
)
|
|
2366
2369
|
);
|
|
2367
2370
|
|
|
2368
|
-
export const __experimentalGetPatternsByBlockTypes =
|
|
2369
|
-
(
|
|
2371
|
+
export const __experimentalGetPatternsByBlockTypes = createRegistrySelector(
|
|
2372
|
+
( select ) => {
|
|
2370
2373
|
deprecated(
|
|
2371
2374
|
'wp.data.select( "core/block-editor" ).__experimentalGetPatternsByBlockTypes',
|
|
2372
2375
|
{
|
|
@@ -2376,14 +2379,8 @@ export const __experimentalGetPatternsByBlockTypes = createSelector(
|
|
|
2376
2379
|
version: '6.4',
|
|
2377
2380
|
}
|
|
2378
2381
|
);
|
|
2379
|
-
return
|
|
2380
|
-
}
|
|
2381
|
-
( state, blockNames, rootClientId ) => [
|
|
2382
|
-
...__experimentalGetAllowedPatterns.getDependants(
|
|
2383
|
-
state,
|
|
2384
|
-
rootClientId
|
|
2385
|
-
),
|
|
2386
|
-
]
|
|
2382
|
+
return select( STORE_NAME ).getPatternsByBlockTypes;
|
|
2383
|
+
}
|
|
2387
2384
|
);
|
|
2388
2385
|
|
|
2389
2386
|
/**
|
|
@@ -2403,45 +2400,46 @@ export const __experimentalGetPatternsByBlockTypes = createSelector(
|
|
|
2403
2400
|
*
|
|
2404
2401
|
* @return {WPBlockPattern[]} Items that are eligible for a pattern transformation.
|
|
2405
2402
|
*/
|
|
2406
|
-
export const __experimentalGetPatternTransformItems =
|
|
2407
|
-
(
|
|
2408
|
-
|
|
2409
|
-
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2414
|
-
|
|
2415
|
-
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
(
|
|
2419
|
-
|
|
2420
|
-
|
|
2421
|
-
|
|
2422
|
-
|
|
2423
|
-
|
|
2424
|
-
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
2440
|
-
|
|
2441
|
-
|
|
2442
|
-
|
|
2443
|
-
|
|
2444
|
-
|
|
2403
|
+
export const __experimentalGetPatternTransformItems = createRegistrySelector(
|
|
2404
|
+
( select ) =>
|
|
2405
|
+
createSelector(
|
|
2406
|
+
( state, blocks, rootClientId = null ) => {
|
|
2407
|
+
if ( ! blocks ) return EMPTY_ARRAY;
|
|
2408
|
+
/**
|
|
2409
|
+
* For now we only handle blocks without InnerBlocks and take into account
|
|
2410
|
+
* the `__experimentalRole` property of blocks' attributes for the transformation.
|
|
2411
|
+
* Note that the blocks have been retrieved through `getBlock`, which doesn't
|
|
2412
|
+
* return the inner blocks of an inner block controller, so we still need
|
|
2413
|
+
* to check for this case too.
|
|
2414
|
+
*/
|
|
2415
|
+
if (
|
|
2416
|
+
blocks.some(
|
|
2417
|
+
( { clientId, innerBlocks } ) =>
|
|
2418
|
+
innerBlocks.length ||
|
|
2419
|
+
areInnerBlocksControlled( state, clientId )
|
|
2420
|
+
)
|
|
2421
|
+
) {
|
|
2422
|
+
return EMPTY_ARRAY;
|
|
2423
|
+
}
|
|
2424
|
+
|
|
2425
|
+
// Create a Set of the selected block names that is used in patterns filtering.
|
|
2426
|
+
const selectedBlockNames = Array.from(
|
|
2427
|
+
new Set( blocks.map( ( { name } ) => name ) )
|
|
2428
|
+
);
|
|
2429
|
+
/**
|
|
2430
|
+
* Here we will return first set of possible eligible block patterns,
|
|
2431
|
+
* by checking the `blockTypes` property. We still have to recurse through
|
|
2432
|
+
* block pattern's blocks and try to find matches from the selected blocks.
|
|
2433
|
+
* Now this happens in the consumer to avoid heavy operations in the selector.
|
|
2434
|
+
*/
|
|
2435
|
+
return select( STORE_NAME ).getPatternsByBlockTypes(
|
|
2436
|
+
selectedBlockNames,
|
|
2437
|
+
rootClientId
|
|
2438
|
+
);
|
|
2439
|
+
},
|
|
2440
|
+
( state, blocks, rootClientId ) =>
|
|
2441
|
+
getAllowedPatternsDependants( state, rootClientId )
|
|
2442
|
+
)
|
|
2445
2443
|
);
|
|
2446
2444
|
|
|
2447
2445
|
/**
|
|
@@ -2566,7 +2564,7 @@ export function __experimentalGetLastBlockAttributeChanges( state ) {
|
|
|
2566
2564
|
* @return {Array} Reusable blocks
|
|
2567
2565
|
*/
|
|
2568
2566
|
function getReusableBlocks( state ) {
|
|
2569
|
-
return state
|
|
2567
|
+
return state.settings.__experimentalReusableBlocks ?? EMPTY_ARRAY;
|
|
2570
2568
|
}
|
|
2571
2569
|
|
|
2572
2570
|
/**
|
|
@@ -2743,8 +2741,7 @@ export const __unstableGetContentLockingParent = createSelector(
|
|
|
2743
2741
|
current = state.blocks.parents.get( current );
|
|
2744
2742
|
if (
|
|
2745
2743
|
( current &&
|
|
2746
|
-
getBlockName( state, current ) === 'core/block'
|
|
2747
|
-
window.__experimentalPatternPartialSyncing ) ||
|
|
2744
|
+
getBlockName( state, current ) === 'core/block' ) ||
|
|
2748
2745
|
( current &&
|
|
2749
2746
|
getTemplateLock( state, current ) === 'contentOnly' )
|
|
2750
2747
|
) {
|
|
@@ -2767,6 +2764,17 @@ export function __unstableGetTemporarilyEditingAsBlocks( state ) {
|
|
|
2767
2764
|
return state.temporarilyEditingAsBlocks;
|
|
2768
2765
|
}
|
|
2769
2766
|
|
|
2767
|
+
/**
|
|
2768
|
+
* DO-NOT-USE in production.
|
|
2769
|
+
* This selector is created for internal/experimental only usage and may be
|
|
2770
|
+
* removed anytime without any warning, causing breakage on any plugin or theme invoking it.
|
|
2771
|
+
*
|
|
2772
|
+
* @param {Object} state Global application state.
|
|
2773
|
+
*/
|
|
2774
|
+
export function __unstableGetTemporarilyEditingFocusModeToRevert( state ) {
|
|
2775
|
+
return state.temporarilyEditingFocusModeRevert;
|
|
2776
|
+
}
|
|
2777
|
+
|
|
2770
2778
|
export function __unstableHasActiveBlockOverlayActive( state, clientId ) {
|
|
2771
2779
|
// Prevent overlay on blocks with a non-default editing mode. If the mdoe is
|
|
2772
2780
|
// 'disabled' then the overlay is redundant since the block can't be
|