@wordpress/block-editor 12.9.1-next.5a1d1283.0 → 12.10.1
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 +33 -3
- package/build/components/block-canvas/index.js +107 -0
- package/build/components/block-canvas/index.js.map +1 -0
- package/build/components/block-inspector/index.js +4 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-patterns-list/index.js +28 -8
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +68 -0
- package/build/components/block-patterns-paging/index.js.map +1 -0
- package/build/components/block-settings-menu/block-settings-dropdown.js +28 -0
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +4 -7
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +1 -0
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-toolbar/block-toolbar-menu.native.js +3 -7
- package/build/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +18 -7
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +5 -1
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +1 -1
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/linked-button.js +2 -4
- package/build/components/border-radius-control/linked-button.js.map +1 -1
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/default-block-appender/index.native.js +20 -1
- package/build/components/default-block-appender/index.native.js.map +1 -1
- package/build/components/duotone/utils.js +68 -0
- package/build/components/duotone/utils.js.map +1 -1
- package/build/components/editor-styles/index.js +28 -9
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/global-styles/hooks.js +2 -101
- package/build/components/global-styles/hooks.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +61 -0
- package/build/components/global-styles/image-settings-panel.js.map +1 -0
- package/build/components/global-styles/index.js +11 -17
- package/build/components/global-styles/index.js.map +1 -1
- package/build/components/global-styles/use-global-styles-output.js +19 -15
- package/build/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build/components/global-styles/utils.js +1 -1
- package/build/components/global-styles/utils.js.map +1 -1
- package/build/components/iframe/index.js +67 -33
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/use-save-image.js +2 -5
- package/build/components/image-editor/use-save-image.js.map +1 -1
- package/build/components/image-editor/use-transform-image.js +9 -9
- package/build/components/image-editor/use-transform-image.js.map +1 -1
- package/build/components/index.js +8 -12
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +6 -5
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +13 -7
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/explorer.js +12 -6
- package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +45 -22
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/sidebar.js +9 -9
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build/components/inserter/block-patterns-filter.js +137 -0
- package/build/components/inserter/block-patterns-filter.js.map +1 -0
- package/build/components/inserter/block-patterns-tab.js +128 -42
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-paging.js +61 -0
- package/build/components/inserter/hooks/use-patterns-paging.js.map +1 -0
- package/build/components/inserter/hooks/use-patterns-state.js +21 -10
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/menu.js +13 -11
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/search-results.js +4 -3
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/inserter/tabs.js +1 -12
- package/build/components/inserter/tabs.js.map +1 -1
- package/build/components/inspector-controls/block-support-slot-container.js +12 -1
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build/components/inspector-controls/fill.js +24 -13
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/groups.js +5 -3
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls/slot.js +13 -0
- package/build/components/inspector-controls/slot.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/link-control/index.js +12 -2
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +1 -3
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +13 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +29 -24
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/media-placeholder/index.js +2 -2
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +11 -11
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +2 -3
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/constants.js +30 -0
- package/build/components/media-upload/constants.js.map +1 -0
- package/build/components/media-upload/index.native.js +63 -53
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +1 -1
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/rich-text/index.js +34 -35
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +14 -32
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/multiline.js +95 -0
- package/build/components/rich-text/multiline.js.map +1 -0
- package/build/components/rich-text/split-value.js +10 -16
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/use-enter.js +31 -40
- package/build/components/rich-text/use-enter.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +18 -33
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/spacing-sizes-control/utils.js +1 -1
- package/build/components/spacing-sizes-control/utils.js.map +1 -1
- package/build/components/use-block-commands/index.js +30 -18
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js +5 -2
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/hooks/background.js +263 -0
- package/build/hooks/background.js.map +1 -0
- package/build/hooks/block-hooks.js +188 -0
- package/build/hooks/block-hooks.js.map +1 -0
- package/build/hooks/block-rename-ui.js +161 -0
- package/build/hooks/block-rename-ui.js.map +1 -0
- package/build/hooks/duotone.js +29 -42
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +2 -2
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +31 -14
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/position.js +4 -2
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/style.js +10 -3
- package/build/hooks/style.js.map +1 -1
- package/build/private-apis.js +2 -0
- package/build/private-apis.js.map +1 -1
- package/build/store/actions.js +33 -10
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +42 -8
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +25 -3
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +43 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +84 -23
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +0 -4
- package/build/store/utils.js.map +1 -1
- package/build-module/components/block-canvas/index.js +97 -0
- package/build-module/components/block-canvas/index.js.map +1 -0
- package/build-module/components/block-inspector/index.js +4 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +30 -10
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +61 -0
- package/build-module/components/block-patterns-paging/index.js.map +1 -0
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -0
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +4 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +1 -0
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js +3 -7
- package/build-module/components/block-toolbar/block-toolbar-menu.native.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +18 -7
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +5 -1
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +1 -1
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/linked-button.js +2 -4
- package/build-module/components/border-radius-control/linked-button.js.map +1 -1
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -21
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/default-block-appender/index.native.js +20 -1
- package/build-module/components/default-block-appender/index.native.js.map +1 -1
- package/build-module/components/duotone/utils.js +65 -0
- package/build-module/components/duotone/utils.js.map +1 -1
- package/build-module/components/editor-styles/index.js +28 -9
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/global-styles/hooks.js +3 -100
- package/build-module/components/global-styles/hooks.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +53 -0
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -0
- package/build-module/components/global-styles/index.js +2 -2
- package/build-module/components/global-styles/index.js.map +1 -1
- package/build-module/components/global-styles/use-global-styles-output.js +18 -16
- package/build-module/components/global-styles/use-global-styles-output.js.map +1 -1
- package/build-module/components/global-styles/utils.js +1 -1
- package/build-module/components/global-styles/utils.js.map +1 -1
- package/build-module/components/iframe/index.js +66 -33
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/use-save-image.js +2 -5
- package/build-module/components/image-editor/use-save-image.js.map +1 -1
- package/build-module/components/image-editor/use-transform-image.js +9 -9
- package/build-module/components/image-editor/use-transform-image.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 +2 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +14 -8
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/explorer.js +12 -6
- package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +47 -24
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +9 -9
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -1
- package/build-module/components/inserter/block-patterns-filter.js +128 -0
- package/build-module/components/inserter/block-patterns-filter.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab.js +125 -44
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-paging.js +54 -0
- package/build-module/components/inserter/hooks/use-patterns-paging.js.map +1 -0
- package/build-module/components/inserter/hooks/use-patterns-state.js +22 -10
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/menu.js +13 -11
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/search-results.js +4 -3
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/inserter/tabs.js +1 -12
- package/build-module/components/inserter/tabs.js.map +1 -1
- package/build-module/components/inspector-controls/block-support-slot-container.js +13 -2
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -1
- package/build-module/components/inspector-controls/fill.js +25 -14
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +5 -3
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +15 -1
- package/build-module/components/inspector-controls/slot.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/link-control/index.js +12 -2
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +1 -3
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +13 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +30 -25
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +2 -2
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +7 -7
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +2 -3
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/constants.js +14 -0
- package/build-module/components/media-upload/constants.js.map +1 -0
- package/build-module/components/media-upload/index.native.js +53 -34
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +1 -1
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +35 -37
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +15 -33
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/multiline.js +87 -0
- package/build-module/components/rich-text/multiline.js.map +1 -0
- package/build-module/components/rich-text/split-value.js +10 -16
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/use-enter.js +33 -42
- package/build-module/components/rich-text/use-enter.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +19 -34
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/spacing-sizes-control/utils.js +2 -2
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +28 -16
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js +5 -2
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/hooks/background.js +249 -0
- package/build-module/hooks/background.js.map +1 -0
- package/build-module/hooks/block-hooks.js +181 -0
- package/build-module/hooks/block-hooks.js.map +1 -0
- package/build-module/hooks/block-rename-ui.js +154 -0
- package/build-module/hooks/block-rename-ui.js.map +1 -0
- package/build-module/hooks/duotone.js +26 -39
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +2 -2
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +33 -16
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/position.js +4 -2
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/style.js +10 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/private-apis.js +2 -0
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/actions.js +33 -10
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +39 -8
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +23 -3
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +41 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +78 -22
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +0 -4
- package/build-module/store/utils.js.map +1 -1
- package/build-style/content-rtl.css +0 -1
- package/build-style/content.css +0 -1
- package/build-style/style-rtl.css +201 -131
- package/build-style/style.css +201 -131
- package/package.json +32 -32
- package/src/components/block-canvas/index.js +108 -0
- package/src/components/block-inspector/index.js +5 -1
- package/src/components/block-list/content.scss +0 -1
- package/src/components/block-patterns-list/index.js +53 -19
- package/src/components/block-patterns-list/style.scss +26 -9
- package/src/components/block-patterns-paging/index.js +92 -0
- package/src/components/block-patterns-paging/style.scss +45 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +44 -0
- package/src/components/block-settings-menu-controls/index.js +4 -9
- package/src/components/block-styles/index.js +1 -0
- package/src/components/block-styles/style.scss +3 -3
- package/src/components/block-toolbar/block-toolbar-menu.native.js +1 -6
- package/src/components/block-tools/block-contextual-toolbar.js +16 -5
- package/src/components/block-tools/block-selection-button.js +9 -1
- package/src/components/block-tools/style.scss +0 -98
- package/src/components/border-radius-control/input-controls.js +1 -1
- package/src/components/border-radius-control/linked-button.js +8 -11
- package/src/components/color-palette/test/__snapshots__/control.js.snap +34 -21
- package/src/components/colors/with-colors.js +3 -2
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +8 -35
- package/src/components/default-block-appender/index.native.js +26 -3
- package/src/components/duotone/utils.js +65 -0
- package/src/components/editor-styles/index.js +32 -23
- package/src/components/global-styles/hooks.js +4 -112
- package/src/components/global-styles/image-settings-panel.js +71 -0
- package/src/components/global-styles/index.js +4 -3
- package/src/components/global-styles/use-global-styles-output.js +25 -16
- package/src/components/global-styles/utils.js +1 -2
- package/src/components/iframe/index.js +72 -33
- package/src/components/image-editor/use-save-image.js +2 -9
- package/src/components/image-editor/use-transform-image.js +9 -9
- package/src/components/index.js +1 -1
- package/src/components/index.native.js +2 -2
- package/src/components/inner-blocks/use-nested-settings-update.js +15 -10
- package/src/components/inserter/block-patterns-explorer/explorer.js +17 -5
- package/src/components/inserter/block-patterns-explorer/patterns-list.js +68 -43
- package/src/components/inserter/block-patterns-explorer/sidebar.js +8 -8
- package/src/components/inserter/block-patterns-filter.js +183 -0
- package/src/components/inserter/block-patterns-tab.js +217 -58
- package/src/components/inserter/hooks/use-patterns-paging.js +76 -0
- package/src/components/inserter/hooks/use-patterns-state.js +27 -16
- package/src/components/inserter/menu.js +15 -17
- package/src/components/inserter/search-results.js +6 -4
- package/src/components/inserter/style.scss +36 -7
- package/src/components/inserter/tabs.js +2 -12
- package/src/components/inserter/test/index.native.js +8 -12
- package/src/components/inspector-controls/block-support-slot-container.js +19 -3
- package/src/components/inspector-controls/fill.js +28 -14
- package/src/components/inspector-controls/groups.js +6 -2
- package/src/components/inspector-controls/slot.js +28 -3
- package/src/components/inspector-controls-tabs/styles-tab.js +4 -0
- package/src/components/link-control/index.js +13 -0
- package/src/components/link-control/style.scss +23 -2
- package/src/components/link-control/test/index.js +88 -6
- package/src/components/list-view/block-select-button.js +1 -3
- package/src/components/list-view/block.js +19 -1
- package/src/components/list-view/style.scss +1 -2
- package/src/components/list-view/use-block-selection.js +38 -32
- package/src/components/media-placeholder/README.md +2 -2
- package/src/components/media-placeholder/index.js +2 -2
- package/src/components/media-placeholder/index.native.js +11 -12
- package/src/components/media-replace-flow/index.js +2 -2
- package/src/components/media-replace-flow/test/index.js +5 -23
- package/src/components/media-upload/README.md +3 -2
- package/src/components/media-upload/constants.js +15 -0
- package/src/components/media-upload/index.native.js +66 -40
- package/src/components/media-upload/style.native.scss +4 -0
- package/src/components/media-upload/test/index.native.js +2 -2
- package/src/components/preview-options/README.md +7 -0
- package/src/components/preview-options/index.js +1 -1
- package/src/components/rich-text/index.js +48 -44
- package/src/components/rich-text/index.native.js +14 -42
- package/src/components/rich-text/multiline.js +121 -0
- package/src/components/rich-text/split-value.js +10 -35
- package/src/components/rich-text/use-enter.js +32 -42
- package/src/components/rich-text/use-paste-handler.js +16 -40
- package/src/components/spacing-sizes-control/style.scss +5 -7
- package/src/components/spacing-sizes-control/utils.js +1 -2
- package/src/components/use-block-commands/index.js +28 -20
- package/src/components/use-block-display-information/index.js +3 -0
- package/src/hooks/background.js +299 -0
- package/src/hooks/background.scss +75 -0
- package/src/hooks/block-hooks.js +257 -0
- package/src/hooks/block-hooks.scss +16 -0
- package/src/hooks/block-rename-ui.js +231 -0
- package/src/hooks/block-rename-ui.scss +3 -0
- package/src/hooks/duotone.js +42 -43
- package/src/hooks/index.js +2 -2
- package/src/hooks/layout.js +31 -33
- package/src/hooks/position.js +4 -3
- package/src/hooks/style.js +11 -2
- package/src/hooks/test/align.native.js +4 -3
- package/src/private-apis.js +2 -0
- package/src/store/actions.js +52 -10
- package/src/store/private-actions.js +37 -6
- package/src/store/private-selectors.js +28 -3
- package/src/store/reducer.js +38 -0
- package/src/store/selectors.js +107 -26
- package/src/store/test/actions.js +19 -8
- package/src/store/test/private-actions.js +17 -0
- package/src/store/test/reducer.js +25 -0
- package/src/store/test/selectors.js +130 -123
- package/src/store/utils.js +3 -10
- package/src/style.scss +4 -0
- package/build/components/duotone/components.js +0 -135
- package/build/components/duotone/components.js.map +0 -1
- package/build/components/duotone/index.js +0 -38
- package/build/components/duotone/index.js.map +0 -1
- package/build/components/global-styles/behaviors-panel.js +0 -64
- package/build/components/global-styles/behaviors-panel.js.map +0 -1
- package/build/components/inserter/reusable-blocks-tab.js +0 -85
- package/build/components/inserter/reusable-blocks-tab.js.map +0 -1
- package/build/hooks/auto-inserting-blocks.js +0 -174
- package/build/hooks/auto-inserting-blocks.js.map +0 -1
- package/build/hooks/behaviors.js +0 -173
- package/build/hooks/behaviors.js.map +0 -1
- package/build-module/components/duotone/components.js +0 -126
- package/build-module/components/duotone/components.js.map +0 -1
- package/build-module/components/duotone/index.js +0 -3
- package/build-module/components/duotone/index.js.map +0 -1
- package/build-module/components/global-styles/behaviors-panel.js +0 -57
- package/build-module/components/global-styles/behaviors-panel.js.map +0 -1
- package/build-module/components/inserter/reusable-blocks-tab.js +0 -76
- package/build-module/components/inserter/reusable-blocks-tab.js.map +0 -1
- package/build-module/hooks/auto-inserting-blocks.js +0 -167
- package/build-module/hooks/auto-inserting-blocks.js.map +0 -1
- package/build-module/hooks/behaviors.js +0 -166
- package/build-module/hooks/behaviors.js.map +0 -1
- package/src/components/duotone/components.js +0 -133
- package/src/components/duotone/index.js +0 -7
- package/src/components/global-styles/behaviors-panel.js +0 -71
- package/src/components/inserter/reusable-blocks-tab.js +0 -84
- package/src/components/inserter/test/reusable-blocks-tab.js +0 -73
- package/src/hooks/auto-inserting-blocks.js +0 -232
- package/src/hooks/behaviors.js +0 -206
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_blockAlignmentControl","require","_blockContext","_blockControls","_interopRequireWildcard","_blockEdit","_blockIcon","_interopRequireDefault","_blockVerticalAlignmentControl","_colors","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_gradients","_fontSizes","_alignmentControl","_innerBlocks","_inspectorControls","_justifyContentControl","_lineHeightControl","_blockHeadingLevelDropdown","_plainText","_richText","_mediaReplaceFlow","_mediaPlaceholder","_mediaUpload","_mediaUploadProgress","_blockMediaUpdateProgress","_urlInput","_blockInvalidWarning","_blockCaption","_caption","_panelColorSettings","_panelColorGradientSettings","_useSetting","_recursionProvider","_warning","_contrastChecker","_useMultipleOriginColorsAndGradients","_blockSettings","_videoPlayer","_utils","_blockList","_blockMover","_blockToolbar","_blockVariationPicker","_blockStyles","_defaultBlockAppender","_editorStyles","_inserter","_useBlockProps","_floatingToolbar","_provider","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set"],"sources":["@wordpress/block-editor/src/components/index.native.js"],"sourcesContent":["// Block Creation Components.\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { BlockContextProvider } from './block-context';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as HeadingLevelDropdown } from './block-heading-level-dropdown';\nexport { default as PlainText } from './plain-text';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport {
|
|
1
|
+
{"version":3,"names":["_blockAlignmentControl","require","_blockContext","_blockControls","_interopRequireWildcard","_blockEdit","_blockIcon","_interopRequireDefault","_blockVerticalAlignmentControl","_colors","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_gradients","_fontSizes","_alignmentControl","_innerBlocks","_inspectorControls","_justifyContentControl","_lineHeightControl","_blockHeadingLevelDropdown","_plainText","_richText","_mediaReplaceFlow","_mediaPlaceholder","_mediaUpload","_constants","_mediaUploadProgress","_blockMediaUpdateProgress","_urlInput","_blockInvalidWarning","_blockCaption","_caption","_panelColorSettings","_panelColorGradientSettings","_useSetting","_recursionProvider","_warning","_contrastChecker","_useMultipleOriginColorsAndGradients","_blockSettings","_videoPlayer","_utils","_blockList","_blockMover","_blockToolbar","_blockVariationPicker","_blockStyles","_defaultBlockAppender","_editorStyles","_inserter","_useBlockProps","_floatingToolbar","_provider","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set"],"sources":["@wordpress/block-editor/src/components/index.native.js"],"sourcesContent":["// Block Creation Components.\nexport {\n\tBlockAlignmentControl,\n\tBlockAlignmentToolbar,\n} from './block-alignment-control';\nexport { BlockContextProvider } from './block-context';\nexport {\n\tdefault as BlockControls,\n\tBlockFormatControls,\n} from './block-controls';\nexport { default as BlockEdit, useBlockEditContext } from './block-edit';\nexport { default as BlockIcon } from './block-icon';\nexport {\n\tBlockVerticalAlignmentToolbar,\n\tBlockVerticalAlignmentControl,\n} from './block-vertical-alignment-control';\nexport * from './colors';\nexport * from './gradients';\nexport * from './font-sizes';\nexport { AlignmentControl, AlignmentToolbar } from './alignment-control';\nexport { default as InnerBlocks, useInnerBlocksProps } from './inner-blocks';\nexport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from './inspector-controls';\nexport {\n\tJustifyToolbar,\n\tJustifyContentControl,\n} from './justify-content-control';\nexport { default as LineHeightControl } from './line-height-control';\nexport { default as HeadingLevelDropdown } from './block-heading-level-dropdown';\nexport { default as PlainText } from './plain-text';\nexport {\n\tdefault as RichText,\n\tRichTextShortcut,\n\tRichTextToolbarButton,\n\t__unstableRichTextInputEvent,\n} from './rich-text';\nexport { default as MediaReplaceFlow } from './media-replace-flow';\nexport { default as MediaPlaceholder } from './media-placeholder';\nexport { default as MediaUpload } from './media-upload';\nexport {\n\tMEDIA_TYPE_IMAGE,\n\tMEDIA_TYPE_VIDEO,\n\tMEDIA_TYPE_AUDIO,\n\tMEDIA_TYPE_ANY,\n} from './media-upload/constants';\nexport {\n\tdefault as MediaUploadProgress,\n\tMEDIA_UPLOAD_STATE_UPLOADING,\n\tMEDIA_UPLOAD_STATE_SUCCEEDED,\n\tMEDIA_UPLOAD_STATE_FAILED,\n\tMEDIA_UPLOAD_STATE_RESET,\n} from './media-upload-progress';\nexport { default as BlockMediaUpdateProgress } from './block-media-update-progress';\nexport { default as URLInput } from './url-input';\nexport { default as BlockInvalidWarning } from './block-list/block-invalid-warning';\nexport { default as BlockCaption } from './block-caption';\nexport { default as Caption } from './caption';\nexport { default as PanelColorSettings } from './panel-color-settings';\nexport { default as __experimentalPanelColorGradientSettings } from './colors-gradients/panel-color-gradient-settings';\nexport { default as useSetting } from './use-setting';\nexport {\n\tRecursionProvider as __experimentalRecursionProvider,\n\tuseHasRecursion as __experimentalUseHasRecursion,\n} from './recursion-provider';\nexport { default as Warning } from './warning';\nexport { default as ContrastChecker } from './contrast-checker';\nexport { default as useMultipleOriginColorsAndGradients } from './colors-gradients/use-multiple-origin-colors-and-gradients';\n\nexport {\n\tBottomSheetSettings,\n\tBlockSettingsButton,\n\tblockSettingsScreens,\n} from './block-settings';\nexport { default as VideoPlayer, VIDEO_ASPECT_RATIO } from './video-player';\n\nexport {\n\tgetSpacingPresetCssVar,\n\tgetCustomValueFromPreset,\n\tisValueSpacingPreset,\n} from './spacing-sizes-control/utils';\n// Content Related Components.\nexport { default as BlockList } from './block-list';\nexport { default as BlockMover } from './block-mover';\nexport { default as BlockToolbar } from './block-toolbar';\nexport { default as BlockVariationPicker } from './block-variation-picker';\nexport { default as BlockStyles } from './block-styles';\nexport { default as DefaultBlockAppender } from './default-block-appender';\nexport { default as __unstableEditorStyles } from './editor-styles';\nexport { default as Inserter } from './inserter';\nexport { useBlockProps } from './block-list/use-block-props';\nexport { default as FloatingToolbar } from './floating-toolbar';\n\n// State Related Components.\nexport { default as BlockEditorProvider } from './provider';\n"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ exports.default = useNestedSettingsUpdate;
|
|
|
8
8
|
var _element = require("@wordpress/element");
|
|
9
9
|
var _data = require("@wordpress/data");
|
|
10
10
|
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
|
|
11
|
+
var _isShallowEqual = _interopRequireDefault(require("@wordpress/is-shallow-equal"));
|
|
11
12
|
var _store = require("../../store");
|
|
12
13
|
var _layouts = require("../../layouts");
|
|
13
14
|
/**
|
|
@@ -21,6 +22,13 @@ var _layouts = require("../../layouts");
|
|
|
21
22
|
/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */
|
|
22
23
|
|
|
23
24
|
const pendingSettingsUpdates = new WeakMap();
|
|
25
|
+
function useShallowMemo(value) {
|
|
26
|
+
const [prevValue, setPrevValue] = (0, _element.useState)(value);
|
|
27
|
+
if (!(0, _isShallowEqual.default)(prevValue, value)) {
|
|
28
|
+
setPrevValue(value);
|
|
29
|
+
}
|
|
30
|
+
return prevValue;
|
|
31
|
+
}
|
|
24
32
|
|
|
25
33
|
/**
|
|
26
34
|
* This hook is a side effect which updates the block-editor store when changes
|
|
@@ -63,14 +71,12 @@ function useNestedSettingsUpdate(clientId, allowedBlocks, prioritizedInserterBlo
|
|
|
63
71
|
};
|
|
64
72
|
}, [clientId]);
|
|
65
73
|
|
|
66
|
-
//
|
|
67
|
-
// of the arrays. Implementors often pass a new array on every render,
|
|
74
|
+
// Implementors often pass a new array on every render,
|
|
68
75
|
// and the contents of the arrays are just strings, so the entire array
|
|
69
|
-
// can be passed as dependencies
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
allowedBlocks);
|
|
76
|
+
// can be passed as dependencies but We need to include the length of the array,
|
|
77
|
+
// otherwise if the arrays change length but the first elements are equal the comparison,
|
|
78
|
+
// does not works as expected.
|
|
79
|
+
const _allowedBlocks = useShallowMemo(allowedBlocks);
|
|
74
80
|
const _prioritizedInserterBlocks = (0, _element.useMemo)(() => prioritizedInserterBlocks,
|
|
75
81
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
76
82
|
prioritizedInserterBlocks);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_data","_deprecated","_interopRequireDefault","_store","_layouts","pendingSettingsUpdates","WeakMap","useNestedSettingsUpdate","clientId","allowedBlocks","prioritizedInserterBlocks","defaultBlock","directInsert","__experimentalDefaultBlock","__experimentalDirectInsert","templateLock","captureToolbars","orientation","layout","updateBlockListSettings","useDispatch","blockEditorStore","registry","useRegistry","parentLock","useSelect","select","rootClientId","getBlockRootClientId","getTemplateLock","_allowedBlocks","useMemo","_prioritizedInserterBlocks","_templateLock","undefined","useLayoutEffect","newSettings","__experimentalCaptureToolbars","layoutType","getLayoutType","type","getOrientation","deprecated","alternative","since","version","get","set","push","window","queueMicrotask","length","batch","forEach","args"],"sources":["@wordpress/block-editor/src/components/inner-blocks/use-nested-settings-update.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\n/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */\n\nconst pendingSettingsUpdates = new WeakMap();\n\n/**\n * This hook is a side effect which updates the block-editor store when changes\n * happen to inner block settings. The given props are transformed into a\n * settings object, and if that is different from the current settings object in\n * the block-editor store, then the store is updated with the new settings which\n * came from props.\n *\n * @param {string} clientId The client ID of the block to update.\n * @param {string[]} allowedBlocks An array of block names which are permitted\n * in inner blocks.\n * @param {string[]} prioritizedInserterBlocks Block names and/or block variations to be prioritized in the inserter, in the format {blockName}/{variationName}.\n * @param {?WPDirectInsertBlock} defaultBlock The default block to insert: [ blockName, { blockAttributes } ].\n * @param {?Function|boolean} directInsert If a default block should be inserted directly by the appender.\n *\n * @param {?WPDirectInsertBlock} __experimentalDefaultBlock A deprecated prop for the default block to insert: [ blockName, { blockAttributes } ]. Use `defaultBlock` instead.\n *\n * @param {?Function|boolean} __experimentalDirectInsert A deprecated prop for whether a default block should be inserted directly by the appender. Use `directInsert` instead.\n *\n * @param {string} [templateLock] The template lock specified for the inner\n * blocks component. (e.g. \"all\")\n * @param {boolean} captureToolbars Whether or children toolbars should be shown\n * in the inner blocks component rather than on\n * the child block.\n * @param {string} orientation The direction in which the block\n * should face.\n * @param {Object} layout The layout object for the block container.\n */\nexport default function useNestedSettingsUpdate(\n\tclientId,\n\tallowedBlocks,\n\tprioritizedInserterBlocks,\n\tdefaultBlock,\n\tdirectInsert,\n\t__experimentalDefaultBlock,\n\t__experimentalDirectInsert,\n\ttemplateLock,\n\tcaptureToolbars,\n\torientation,\n\tlayout\n) {\n\tconst { updateBlockListSettings } = useDispatch( blockEditorStore );\n\tconst registry = useRegistry();\n\n\tconst { parentLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst rootClientId =\n\t\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tparentLock:\n\t\t\t\t\tselect( blockEditorStore ).getTemplateLock( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Memoize allowedBlocks and prioritisedInnerBlocks based on the contents\n\t// of the arrays. Implementors often pass a new array on every render,\n\t// and the contents of the arrays are just strings, so the entire array\n\t// can be passed as dependencies.\n\n\tconst _allowedBlocks = useMemo(\n\t\t() => allowedBlocks,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tallowedBlocks\n\t);\n\n\tconst _prioritizedInserterBlocks = useMemo(\n\t\t() => prioritizedInserterBlocks,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tprioritizedInserterBlocks\n\t);\n\n\tconst _templateLock =\n\t\ttemplateLock === undefined || parentLock === 'contentOnly'\n\t\t\t? parentLock\n\t\t\t: templateLock;\n\n\tuseLayoutEffect( () => {\n\t\tconst newSettings = {\n\t\t\tallowedBlocks: _allowedBlocks,\n\t\t\tprioritizedInserterBlocks: _prioritizedInserterBlocks,\n\t\t\ttemplateLock: _templateLock,\n\t\t};\n\n\t\t// These values are not defined for RN, so only include them if they\n\t\t// are defined.\n\t\tif ( captureToolbars !== undefined ) {\n\t\t\tnewSettings.__experimentalCaptureToolbars = captureToolbars;\n\t\t}\n\n\t\t// Orientation depends on layout,\n\t\t// ideally the separate orientation prop should be deprecated.\n\t\tif ( orientation !== undefined ) {\n\t\t\tnewSettings.orientation = orientation;\n\t\t} else {\n\t\t\tconst layoutType = getLayoutType( layout?.type );\n\t\t\tnewSettings.orientation = layoutType.getOrientation( layout );\n\t\t}\n\n\t\tif ( __experimentalDefaultBlock !== undefined ) {\n\t\t\tdeprecated( '__experimentalDefaultBlock', {\n\t\t\t\talternative: 'defaultBlock',\n\t\t\t\tsince: '6.3',\n\t\t\t\tversion: '6.4',\n\t\t\t} );\n\t\t\tnewSettings.defaultBlock = __experimentalDefaultBlock;\n\t\t}\n\n\t\tif ( defaultBlock !== undefined ) {\n\t\t\tnewSettings.defaultBlock = defaultBlock;\n\t\t}\n\n\t\tif ( __experimentalDirectInsert !== undefined ) {\n\t\t\tdeprecated( '__experimentalDirectInsert', {\n\t\t\t\talternative: 'directInsert',\n\t\t\t\tsince: '6.3',\n\t\t\t\tversion: '6.4',\n\t\t\t} );\n\t\t\tnewSettings.directInsert = __experimentalDirectInsert;\n\t\t}\n\n\t\tif ( directInsert !== undefined ) {\n\t\t\tnewSettings.directInsert = directInsert;\n\t\t}\n\n\t\t// Batch updates to block list settings to avoid triggering cascading renders\n\t\t// for each container block included in a tree and optimize initial render.\n\t\t// To avoid triggering updateBlockListSettings for each container block\n\t\t// causing X re-renderings for X container blocks,\n\t\t// we batch all the updatedBlockListSettings in a single \"data\" batch\n\t\t// which results in a single re-render.\n\t\tif ( ! pendingSettingsUpdates.get( registry ) ) {\n\t\t\tpendingSettingsUpdates.set( registry, [] );\n\t\t}\n\t\tpendingSettingsUpdates\n\t\t\t.get( registry )\n\t\t\t.push( [ clientId, newSettings ] );\n\t\twindow.queueMicrotask( () => {\n\t\t\tif ( pendingSettingsUpdates.get( registry )?.length ) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tpendingSettingsUpdates\n\t\t\t\t\t\t.get( registry )\n\t\t\t\t\t\t.forEach( ( args ) => {\n\t\t\t\t\t\t\tupdateBlockListSettings( ...args );\n\t\t\t\t\t\t} );\n\t\t\t\t\tpendingSettingsUpdates.set( registry, [] );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}, [\n\t\tclientId,\n\t\t_allowedBlocks,\n\t\t_prioritizedInserterBlocks,\n\t\t_templateLock,\n\t\tdefaultBlock,\n\t\tdirectInsert,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\tcaptureToolbars,\n\t\torientation,\n\t\tupdateBlockListSettings,\n\t\tlayout,\n\t\tregistry,\n\t] );\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAC,sBAAA,CAAAH,OAAA;AAKA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AAXA;AACA;AACA;;AAKA;AACA;AACA;;AAIA;;AAEA,MAAMM,sBAAsB,GAAG,IAAIC,OAAO,CAAC,CAAC;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,uBAAuBA,CAC9CC,QAAQ,EACRC,aAAa,EACbC,yBAAyB,EACzBC,YAAY,EACZC,YAAY,EACZC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,YAAY,EACZC,eAAe,EACfC,WAAW,EACXC,MAAM,EACL;EACD,MAAM;IAAEC;EAAwB,CAAC,GAAG,IAAAC,iBAAW,EAAEC,YAAiB,CAAC;EACnE,MAAMC,QAAQ,GAAG,IAAAC,iBAAW,EAAC,CAAC;EAE9B,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAAC,eAAS,EAC7BC,MAAM,IAAM;IACb,MAAMC,YAAY,GACjBD,MAAM,CAAEL,YAAiB,CAAC,CAACO,oBAAoB,CAAEpB,QAAS,CAAC;IAC5D,OAAO;MACNgB,UAAU,EACTE,MAAM,CAAEL,YAAiB,CAAC,CAACQ,eAAe,CAAEF,YAAa;IAC3D,CAAC;EACF,CAAC,EACD,CAAEnB,QAAQ,CACX,CAAC;;EAED;EACA;EACA;EACA;;EAEA,MAAMsB,cAAc,GAAG,IAAAC,gBAAO,EAC7B,MAAMtB,aAAa;EACnB;EACAA,aACD,CAAC;EAED,MAAMuB,0BAA0B,GAAG,IAAAD,gBAAO,EACzC,MAAMrB,yBAAyB;EAC/B;EACAA,yBACD,CAAC;EAED,MAAMuB,aAAa,GAClBlB,YAAY,KAAKmB,SAAS,IAAIV,UAAU,KAAK,aAAa,GACvDA,UAAU,GACVT,YAAY;EAEhB,IAAAoB,wBAAe,EAAE,MAAM;IACtB,MAAMC,WAAW,GAAG;MACnB3B,aAAa,EAAEqB,cAAc;MAC7BpB,yBAAyB,EAAEsB,0BAA0B;MACrDjB,YAAY,EAAEkB;IACf,CAAC;;IAED;IACA;IACA,IAAKjB,eAAe,KAAKkB,SAAS,EAAG;MACpCE,WAAW,CAACC,6BAA6B,GAAGrB,eAAe;IAC5D;;IAEA;IACA;IACA,IAAKC,WAAW,KAAKiB,SAAS,EAAG;MAChCE,WAAW,CAACnB,WAAW,GAAGA,WAAW;IACtC,CAAC,MAAM;MACN,MAAMqB,UAAU,GAAG,IAAAC,sBAAa,EAAErB,MAAM,EAAEsB,IAAK,CAAC;MAChDJ,WAAW,CAACnB,WAAW,GAAGqB,UAAU,CAACG,cAAc,CAAEvB,MAAO,CAAC;IAC9D;IAEA,IAAKL,0BAA0B,KAAKqB,SAAS,EAAG;MAC/C,IAAAQ,mBAAU,EAAE,4BAA4B,EAAE;QACzCC,WAAW,EAAE,cAAc;QAC3BC,KAAK,EAAE,KAAK;QACZC,OAAO,EAAE;MACV,CAAE,CAAC;MACHT,WAAW,CAACzB,YAAY,GAAGE,0BAA0B;IACtD;IAEA,IAAKF,YAAY,KAAKuB,SAAS,EAAG;MACjCE,WAAW,CAACzB,YAAY,GAAGA,YAAY;IACxC;IAEA,IAAKG,0BAA0B,KAAKoB,SAAS,EAAG;MAC/C,IAAAQ,mBAAU,EAAE,4BAA4B,EAAE;QACzCC,WAAW,EAAE,cAAc;QAC3BC,KAAK,EAAE,KAAK;QACZC,OAAO,EAAE;MACV,CAAE,CAAC;MACHT,WAAW,CAACxB,YAAY,GAAGE,0BAA0B;IACtD;IAEA,IAAKF,YAAY,KAAKsB,SAAS,EAAG;MACjCE,WAAW,CAACxB,YAAY,GAAGA,YAAY;IACxC;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA,IAAK,CAAEP,sBAAsB,CAACyC,GAAG,CAAExB,QAAS,CAAC,EAAG;MAC/CjB,sBAAsB,CAAC0C,GAAG,CAAEzB,QAAQ,EAAE,EAAG,CAAC;IAC3C;IACAjB,sBAAsB,CACpByC,GAAG,CAAExB,QAAS,CAAC,CACf0B,IAAI,CAAE,CAAExC,QAAQ,EAAE4B,WAAW,CAAG,CAAC;IACnCa,MAAM,CAACC,cAAc,CAAE,MAAM;MAC5B,IAAK7C,sBAAsB,CAACyC,GAAG,CAAExB,QAAS,CAAC,EAAE6B,MAAM,EAAG;QACrD7B,QAAQ,CAAC8B,KAAK,CAAE,MAAM;UACrB/C,sBAAsB,CACpByC,GAAG,CAAExB,QAAS,CAAC,CACf+B,OAAO,CAAIC,IAAI,IAAM;YACrBnC,uBAAuB,CAAE,GAAGmC,IAAK,CAAC;UACnC,CAAE,CAAC;UACJjD,sBAAsB,CAAC0C,GAAG,CAAEzB,QAAQ,EAAE,EAAG,CAAC;QAC3C,CAAE,CAAC;MACJ;IACD,CAAE,CAAC;EACJ,CAAC,EAAE,CACFd,QAAQ,EACRsB,cAAc,EACdE,0BAA0B,EAC1BC,aAAa,EACbtB,YAAY,EACZC,YAAY,EACZC,0BAA0B,EAC1BC,0BAA0B,EAC1BE,eAAe,EACfC,WAAW,EACXE,uBAAuB,EACvBD,MAAM,EACNI,QAAQ,CACP,CAAC;AACJ"}
|
|
1
|
+
{"version":3,"names":["_element","require","_data","_deprecated","_interopRequireDefault","_isShallowEqual","_store","_layouts","pendingSettingsUpdates","WeakMap","useShallowMemo","value","prevValue","setPrevValue","useState","isShallowEqual","useNestedSettingsUpdate","clientId","allowedBlocks","prioritizedInserterBlocks","defaultBlock","directInsert","__experimentalDefaultBlock","__experimentalDirectInsert","templateLock","captureToolbars","orientation","layout","updateBlockListSettings","useDispatch","blockEditorStore","registry","useRegistry","parentLock","useSelect","select","rootClientId","getBlockRootClientId","getTemplateLock","_allowedBlocks","_prioritizedInserterBlocks","useMemo","_templateLock","undefined","useLayoutEffect","newSettings","__experimentalCaptureToolbars","layoutType","getLayoutType","type","getOrientation","deprecated","alternative","since","version","get","set","push","window","queueMicrotask","length","batch","forEach","args"],"sources":["@wordpress/block-editor/src/components/inner-blocks/use-nested-settings-update.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useLayoutEffect, useMemo, useState } from '@wordpress/element';\nimport { useSelect, useDispatch, useRegistry } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\n/** @typedef {import('../../selectors').WPDirectInsertBlock } WPDirectInsertBlock */\n\nconst pendingSettingsUpdates = new WeakMap();\n\nfunction useShallowMemo( value ) {\n\tconst [ prevValue, setPrevValue ] = useState( value );\n\tif ( ! isShallowEqual( prevValue, value ) ) {\n\t\tsetPrevValue( value );\n\t}\n\treturn prevValue;\n}\n\n/**\n * This hook is a side effect which updates the block-editor store when changes\n * happen to inner block settings. The given props are transformed into a\n * settings object, and if that is different from the current settings object in\n * the block-editor store, then the store is updated with the new settings which\n * came from props.\n *\n * @param {string} clientId The client ID of the block to update.\n * @param {string[]} allowedBlocks An array of block names which are permitted\n * in inner blocks.\n * @param {string[]} prioritizedInserterBlocks Block names and/or block variations to be prioritized in the inserter, in the format {blockName}/{variationName}.\n * @param {?WPDirectInsertBlock} defaultBlock The default block to insert: [ blockName, { blockAttributes } ].\n * @param {?Function|boolean} directInsert If a default block should be inserted directly by the appender.\n *\n * @param {?WPDirectInsertBlock} __experimentalDefaultBlock A deprecated prop for the default block to insert: [ blockName, { blockAttributes } ]. Use `defaultBlock` instead.\n *\n * @param {?Function|boolean} __experimentalDirectInsert A deprecated prop for whether a default block should be inserted directly by the appender. Use `directInsert` instead.\n *\n * @param {string} [templateLock] The template lock specified for the inner\n * blocks component. (e.g. \"all\")\n * @param {boolean} captureToolbars Whether or children toolbars should be shown\n * in the inner blocks component rather than on\n * the child block.\n * @param {string} orientation The direction in which the block\n * should face.\n * @param {Object} layout The layout object for the block container.\n */\nexport default function useNestedSettingsUpdate(\n\tclientId,\n\tallowedBlocks,\n\tprioritizedInserterBlocks,\n\tdefaultBlock,\n\tdirectInsert,\n\t__experimentalDefaultBlock,\n\t__experimentalDirectInsert,\n\ttemplateLock,\n\tcaptureToolbars,\n\torientation,\n\tlayout\n) {\n\tconst { updateBlockListSettings } = useDispatch( blockEditorStore );\n\tconst registry = useRegistry();\n\n\tconst { parentLock } = useSelect(\n\t\t( select ) => {\n\t\t\tconst rootClientId =\n\t\t\t\tselect( blockEditorStore ).getBlockRootClientId( clientId );\n\t\t\treturn {\n\t\t\t\tparentLock:\n\t\t\t\t\tselect( blockEditorStore ).getTemplateLock( rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\t// Implementors often pass a new array on every render,\n\t// and the contents of the arrays are just strings, so the entire array\n\t// can be passed as dependencies but We need to include the length of the array,\n\t// otherwise if the arrays change length but the first elements are equal the comparison,\n\t// does not works as expected.\n\tconst _allowedBlocks = useShallowMemo( allowedBlocks );\n\n\tconst _prioritizedInserterBlocks = useMemo(\n\t\t() => prioritizedInserterBlocks,\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tprioritizedInserterBlocks\n\t);\n\n\tconst _templateLock =\n\t\ttemplateLock === undefined || parentLock === 'contentOnly'\n\t\t\t? parentLock\n\t\t\t: templateLock;\n\n\tuseLayoutEffect( () => {\n\t\tconst newSettings = {\n\t\t\tallowedBlocks: _allowedBlocks,\n\t\t\tprioritizedInserterBlocks: _prioritizedInserterBlocks,\n\t\t\ttemplateLock: _templateLock,\n\t\t};\n\n\t\t// These values are not defined for RN, so only include them if they\n\t\t// are defined.\n\t\tif ( captureToolbars !== undefined ) {\n\t\t\tnewSettings.__experimentalCaptureToolbars = captureToolbars;\n\t\t}\n\n\t\t// Orientation depends on layout,\n\t\t// ideally the separate orientation prop should be deprecated.\n\t\tif ( orientation !== undefined ) {\n\t\t\tnewSettings.orientation = orientation;\n\t\t} else {\n\t\t\tconst layoutType = getLayoutType( layout?.type );\n\t\t\tnewSettings.orientation = layoutType.getOrientation( layout );\n\t\t}\n\n\t\tif ( __experimentalDefaultBlock !== undefined ) {\n\t\t\tdeprecated( '__experimentalDefaultBlock', {\n\t\t\t\talternative: 'defaultBlock',\n\t\t\t\tsince: '6.3',\n\t\t\t\tversion: '6.4',\n\t\t\t} );\n\t\t\tnewSettings.defaultBlock = __experimentalDefaultBlock;\n\t\t}\n\n\t\tif ( defaultBlock !== undefined ) {\n\t\t\tnewSettings.defaultBlock = defaultBlock;\n\t\t}\n\n\t\tif ( __experimentalDirectInsert !== undefined ) {\n\t\t\tdeprecated( '__experimentalDirectInsert', {\n\t\t\t\talternative: 'directInsert',\n\t\t\t\tsince: '6.3',\n\t\t\t\tversion: '6.4',\n\t\t\t} );\n\t\t\tnewSettings.directInsert = __experimentalDirectInsert;\n\t\t}\n\n\t\tif ( directInsert !== undefined ) {\n\t\t\tnewSettings.directInsert = directInsert;\n\t\t}\n\n\t\t// Batch updates to block list settings to avoid triggering cascading renders\n\t\t// for each container block included in a tree and optimize initial render.\n\t\t// To avoid triggering updateBlockListSettings for each container block\n\t\t// causing X re-renderings for X container blocks,\n\t\t// we batch all the updatedBlockListSettings in a single \"data\" batch\n\t\t// which results in a single re-render.\n\t\tif ( ! pendingSettingsUpdates.get( registry ) ) {\n\t\t\tpendingSettingsUpdates.set( registry, [] );\n\t\t}\n\t\tpendingSettingsUpdates\n\t\t\t.get( registry )\n\t\t\t.push( [ clientId, newSettings ] );\n\t\twindow.queueMicrotask( () => {\n\t\t\tif ( pendingSettingsUpdates.get( registry )?.length ) {\n\t\t\t\tregistry.batch( () => {\n\t\t\t\t\tpendingSettingsUpdates\n\t\t\t\t\t\t.get( registry )\n\t\t\t\t\t\t.forEach( ( args ) => {\n\t\t\t\t\t\t\tupdateBlockListSettings( ...args );\n\t\t\t\t\t\t} );\n\t\t\t\t\tpendingSettingsUpdates.set( registry, [] );\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t}, [\n\t\tclientId,\n\t\t_allowedBlocks,\n\t\t_prioritizedInserterBlocks,\n\t\t_templateLock,\n\t\tdefaultBlock,\n\t\tdirectInsert,\n\t\t__experimentalDefaultBlock,\n\t\t__experimentalDirectInsert,\n\t\tcaptureToolbars,\n\t\torientation,\n\t\tupdateBlockListSettings,\n\t\tlayout,\n\t\tregistry,\n\t] );\n}\n"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var _components = require("@wordpress/components");
|
|
|
10
10
|
var _i18n = require("@wordpress/i18n");
|
|
11
11
|
var _sidebar = _interopRequireDefault(require("./sidebar"));
|
|
12
12
|
var _patternsList = _interopRequireDefault(require("./patterns-list"));
|
|
13
|
+
var _blockPatternsTab = require("../block-patterns-tab");
|
|
13
14
|
/**
|
|
14
15
|
* WordPress dependencies
|
|
15
16
|
*/
|
|
@@ -20,22 +21,27 @@ var _patternsList = _interopRequireDefault(require("./patterns-list"));
|
|
|
20
21
|
|
|
21
22
|
function PatternsExplorer({
|
|
22
23
|
initialCategory,
|
|
23
|
-
|
|
24
|
+
rootClientId
|
|
24
25
|
}) {
|
|
25
|
-
const [
|
|
26
|
+
const [searchValue, setSearchValue] = (0, _element.useState)('');
|
|
27
|
+
const [patternSourceFilter, setPatternSourceFilter] = (0, _element.useState)('all');
|
|
26
28
|
const [selectedCategory, setSelectedCategory] = (0, _element.useState)(initialCategory?.name);
|
|
29
|
+
const patternCategories = (0, _blockPatternsTab.usePatternsCategories)(rootClientId, patternSourceFilter);
|
|
27
30
|
return (0, _element.createElement)("div", {
|
|
28
31
|
className: "block-editor-block-patterns-explorer"
|
|
29
32
|
}, (0, _element.createElement)(_sidebar.default, {
|
|
30
33
|
selectedCategory: selectedCategory,
|
|
31
34
|
patternCategories: patternCategories,
|
|
32
35
|
onClickCategory: setSelectedCategory,
|
|
33
|
-
|
|
34
|
-
|
|
36
|
+
searchValue: searchValue,
|
|
37
|
+
setSearchValue: setSearchValue,
|
|
38
|
+
patternSourceFilter: patternSourceFilter,
|
|
39
|
+
setPatternSourceFilter: setPatternSourceFilter
|
|
35
40
|
}), (0, _element.createElement)(_patternsList.default, {
|
|
36
|
-
|
|
41
|
+
searchValue: searchValue,
|
|
37
42
|
selectedCategory: selectedCategory,
|
|
38
|
-
patternCategories: patternCategories
|
|
43
|
+
patternCategories: patternCategories,
|
|
44
|
+
patternSourceFilter: patternSourceFilter
|
|
39
45
|
}));
|
|
40
46
|
}
|
|
41
47
|
function PatternsExplorerModal({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_components","_i18n","_sidebar","_interopRequireDefault","_patternsList","PatternsExplorer","initialCategory","
|
|
1
|
+
{"version":3,"names":["_element","require","_components","_i18n","_sidebar","_interopRequireDefault","_patternsList","_blockPatternsTab","PatternsExplorer","initialCategory","rootClientId","searchValue","setSearchValue","useState","patternSourceFilter","setPatternSourceFilter","selectedCategory","setSelectedCategory","name","patternCategories","usePatternsCategories","createElement","className","default","onClickCategory","PatternsExplorerModal","onModalClose","restProps","Modal","title","__","onRequestClose","isFullScreen","_default","exports"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/explorer.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Modal } from '@wordpress/components';\nimport { useState } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport PatternExplorerSidebar from './sidebar';\nimport PatternList from './patterns-list';\nimport { usePatternsCategories } from '../block-patterns-tab';\n\nfunction PatternsExplorer( { initialCategory, rootClientId } ) {\n\tconst [ searchValue, setSearchValue ] = useState( '' );\n\tconst [ patternSourceFilter, setPatternSourceFilter ] = useState( 'all' );\n\n\tconst [ selectedCategory, setSelectedCategory ] = useState(\n\t\tinitialCategory?.name\n\t);\n\n\tconst patternCategories = usePatternsCategories(\n\t\trootClientId,\n\t\tpatternSourceFilter\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-block-patterns-explorer\">\n\t\t\t<PatternExplorerSidebar\n\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t\tonClickCategory={ setSelectedCategory }\n\t\t\t\tsearchValue={ searchValue }\n\t\t\t\tsetSearchValue={ setSearchValue }\n\t\t\t\tpatternSourceFilter={ patternSourceFilter }\n\t\t\t\tsetPatternSourceFilter={ setPatternSourceFilter }\n\t\t\t/>\n\t\t\t<PatternList\n\t\t\t\tsearchValue={ searchValue }\n\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t\tpatternSourceFilter={ patternSourceFilter }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction PatternsExplorerModal( { onModalClose, ...restProps } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Patterns' ) }\n\t\t\tonRequestClose={ onModalClose }\n\t\t\tisFullScreen\n\t\t>\n\t\t\t<PatternsExplorer { ...restProps } />\n\t\t</Modal>\n\t);\n}\n\nexport default PatternsExplorerModal;\n"],"mappings":";;;;;;;AAIA,IAAAA,QAAA,GAAAC,OAAA;AADA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AAKA,IAAAG,QAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AAZA;AACA;AACA;;AAKA;AACA;AACA;;AAKA,SAASO,gBAAgBA,CAAE;EAAEC,eAAe;EAAEC;AAAa,CAAC,EAAG;EAC9D,MAAM,CAAEC,WAAW,EAAEC,cAAc,CAAE,GAAG,IAAAC,iBAAQ,EAAE,EAAG,CAAC;EACtD,MAAM,CAAEC,mBAAmB,EAAEC,sBAAsB,CAAE,GAAG,IAAAF,iBAAQ,EAAE,KAAM,CAAC;EAEzE,MAAM,CAAEG,gBAAgB,EAAEC,mBAAmB,CAAE,GAAG,IAAAJ,iBAAQ,EACzDJ,eAAe,EAAES,IAClB,CAAC;EAED,MAAMC,iBAAiB,GAAG,IAAAC,uCAAqB,EAC9CV,YAAY,EACZI,mBACD,CAAC;EAED,OACC,IAAAd,QAAA,CAAAqB,aAAA;IAAKC,SAAS,EAAC;EAAsC,GACpD,IAAAtB,QAAA,CAAAqB,aAAA,EAACjB,QAAA,CAAAmB,OAAsB;IACtBP,gBAAgB,EAAGA,gBAAkB;IACrCG,iBAAiB,EAAGA,iBAAmB;IACvCK,eAAe,EAAGP,mBAAqB;IACvCN,WAAW,EAAGA,WAAa;IAC3BC,cAAc,EAAGA,cAAgB;IACjCE,mBAAmB,EAAGA,mBAAqB;IAC3CC,sBAAsB,EAAGA;EAAwB,CACjD,CAAC,EACF,IAAAf,QAAA,CAAAqB,aAAA,EAACf,aAAA,CAAAiB,OAAW;IACXZ,WAAW,EAAGA,WAAa;IAC3BK,gBAAgB,EAAGA,gBAAkB;IACrCG,iBAAiB,EAAGA,iBAAmB;IACvCL,mBAAmB,EAAGA;EAAqB,CAC3C,CACG,CAAC;AAER;AAEA,SAASW,qBAAqBA,CAAE;EAAEC,YAAY;EAAE,GAAGC;AAAU,CAAC,EAAG;EAChE,OACC,IAAA3B,QAAA,CAAAqB,aAAA,EAACnB,WAAA,CAAA0B,KAAK;IACLC,KAAK,EAAG,IAAAC,QAAE,EAAE,UAAW,CAAG;IAC1BC,cAAc,EAAGL,YAAc;IAC/BM,YAAY;EAAA,GAEZ,IAAAhC,QAAA,CAAAqB,aAAA,EAACb,gBAAgB;IAAA,GAAMmB;EAAS,CAAI,CAC9B,CAAC;AAEV;AAAC,IAAAM,QAAA,GAEcR,qBAAqB;AAAAS,OAAA,CAAAX,OAAA,GAAAU,QAAA"}
|
|
@@ -11,11 +11,13 @@ var _compose = require("@wordpress/compose");
|
|
|
11
11
|
var _components = require("@wordpress/components");
|
|
12
12
|
var _a11y = require("@wordpress/a11y");
|
|
13
13
|
var _blockPatternsList = _interopRequireDefault(require("../../block-patterns-list"));
|
|
14
|
-
var _noResults = _interopRequireDefault(require("../no-results"));
|
|
15
14
|
var _useInsertionPoint = _interopRequireDefault(require("../hooks/use-insertion-point"));
|
|
16
15
|
var _usePatternsState = _interopRequireDefault(require("../hooks/use-patterns-state"));
|
|
17
16
|
var _inserterListbox = _interopRequireDefault(require("../../inserter-listbox"));
|
|
18
17
|
var _searchItems = require("../search-items");
|
|
18
|
+
var _blockPatternsPaging = _interopRequireDefault(require("../../block-patterns-paging"));
|
|
19
|
+
var _usePatternsPaging = _interopRequireDefault(require("../hooks/use-patterns-paging"));
|
|
20
|
+
var _blockPatternsTab = require("../block-patterns-tab");
|
|
19
21
|
/**
|
|
20
22
|
* WordPress dependencies
|
|
21
23
|
*/
|
|
@@ -24,7 +26,6 @@ var _searchItems = require("../search-items");
|
|
|
24
26
|
* Internal dependencies
|
|
25
27
|
*/
|
|
26
28
|
|
|
27
|
-
const INITIAL_INSERTER_RESULTS = 2;
|
|
28
29
|
function PatternsListHeader({
|
|
29
30
|
filterValue,
|
|
30
31
|
filteredBlockPatternsLength
|
|
@@ -36,51 +37,73 @@ function PatternsListHeader({
|
|
|
36
37
|
level: 2,
|
|
37
38
|
lineHeight: '48px',
|
|
38
39
|
className: "block-editor-block-patterns-explorer__search-results-count"
|
|
39
|
-
}, (0, _i18n.sprintf)( /* translators: %d: number of patterns.
|
|
40
|
-
(0, _i18n._n)('%
|
|
40
|
+
}, (0, _i18n.sprintf)( /* translators: %d: number of patterns. */
|
|
41
|
+
(0, _i18n._n)('%d pattern found', '%d patterns found', filteredBlockPatternsLength), filteredBlockPatternsLength));
|
|
41
42
|
}
|
|
42
43
|
function PatternList({
|
|
43
|
-
|
|
44
|
+
searchValue,
|
|
44
45
|
selectedCategory,
|
|
45
46
|
patternCategories
|
|
46
47
|
}) {
|
|
48
|
+
const container = (0, _element.useRef)();
|
|
47
49
|
const debouncedSpeak = (0, _compose.useDebounce)(_a11y.speak, 500);
|
|
48
50
|
const [destinationRootClientId, onInsertBlocks] = (0, _useInsertionPoint.default)({
|
|
49
51
|
shouldFocusBlock: true
|
|
50
52
|
});
|
|
51
|
-
const [
|
|
53
|
+
const [patterns,, onClickPattern] = (0, _usePatternsState.default)(onInsertBlocks, destinationRootClientId);
|
|
52
54
|
const registeredPatternCategories = (0, _element.useMemo)(() => patternCategories.map(patternCategory => patternCategory.name), [patternCategories]);
|
|
53
55
|
const filteredBlockPatterns = (0, _element.useMemo)(() => {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
const filteredPatterns = patterns.filter(pattern => {
|
|
57
|
+
if (selectedCategory === _blockPatternsTab.allPatternsCategory.name) {
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
if (selectedCategory === _blockPatternsTab.myPatternsCategory.name && pattern.id) {
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
if (selectedCategory === 'uncategorized') {
|
|
64
|
+
const hasKnownCategory = pattern.categories.some(category => registeredPatternCategories.includes(category));
|
|
65
|
+
return !pattern.categories?.length || !hasKnownCategory;
|
|
66
|
+
}
|
|
67
|
+
return pattern.categories?.includes(selectedCategory);
|
|
68
|
+
});
|
|
69
|
+
if (!searchValue) {
|
|
70
|
+
return filteredPatterns;
|
|
56
71
|
}
|
|
57
|
-
return (0, _searchItems.searchItems)(
|
|
58
|
-
}, [
|
|
72
|
+
return (0, _searchItems.searchItems)(filteredPatterns, searchValue);
|
|
73
|
+
}, [searchValue, patterns, selectedCategory, registeredPatternCategories]);
|
|
59
74
|
|
|
60
75
|
// Announce search results on change.
|
|
61
76
|
(0, _element.useEffect)(() => {
|
|
62
|
-
if (!
|
|
77
|
+
if (!searchValue) {
|
|
63
78
|
return;
|
|
64
79
|
}
|
|
65
80
|
const count = filteredBlockPatterns.length;
|
|
66
81
|
const resultsFoundMessage = (0, _i18n.sprintf)( /* translators: %d: number of results. */
|
|
67
82
|
(0, _i18n._n)('%d result found.', '%d results found.', count), count);
|
|
68
83
|
debouncedSpeak(resultsFoundMessage);
|
|
69
|
-
}, [
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
84
|
+
}, [searchValue, debouncedSpeak, filteredBlockPatterns.length]);
|
|
85
|
+
const pagingProps = (0, _usePatternsPaging.default)(filteredBlockPatterns, selectedCategory, container);
|
|
86
|
+
|
|
87
|
+
// Reset page when search value changes.
|
|
88
|
+
const [previousSearchValue, setPreviousSearchValue] = (0, _element.useState)(searchValue);
|
|
89
|
+
if (searchValue !== previousSearchValue) {
|
|
90
|
+
setPreviousSearchValue(searchValue);
|
|
91
|
+
pagingProps.changePage(1);
|
|
92
|
+
}
|
|
73
93
|
const hasItems = !!filteredBlockPatterns?.length;
|
|
74
94
|
return (0, _element.createElement)("div", {
|
|
75
|
-
className: "block-editor-block-patterns-explorer__list"
|
|
76
|
-
|
|
77
|
-
|
|
95
|
+
className: "block-editor-block-patterns-explorer__list",
|
|
96
|
+
ref: container
|
|
97
|
+
}, (0, _element.createElement)(PatternsListHeader, {
|
|
98
|
+
filterValue: searchValue,
|
|
78
99
|
filteredBlockPatternsLength: filteredBlockPatterns.length
|
|
79
|
-
}), (0, _element.createElement)(_inserterListbox.default, null,
|
|
80
|
-
shownPatterns:
|
|
81
|
-
blockPatterns:
|
|
82
|
-
onClickPattern:
|
|
100
|
+
}), (0, _element.createElement)(_inserterListbox.default, null, hasItems && (0, _element.createElement)(_blockPatternsList.default, {
|
|
101
|
+
shownPatterns: pagingProps.categoryPatternsAsyncList,
|
|
102
|
+
blockPatterns: pagingProps.categoryPatterns,
|
|
103
|
+
onClickPattern: onClickPattern,
|
|
83
104
|
isDraggable: false
|
|
105
|
+
}), pagingProps.numPages > 1 && (0, _element.createElement)(_blockPatternsPaging.default, {
|
|
106
|
+
...pagingProps
|
|
84
107
|
})));
|
|
85
108
|
}
|
|
86
109
|
var _default = PatternList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_element","require","_i18n","_compose","_components","_a11y","_blockPatternsList","_interopRequireDefault","
|
|
1
|
+
{"version":3,"names":["_element","require","_i18n","_compose","_components","_a11y","_blockPatternsList","_interopRequireDefault","_useInsertionPoint","_usePatternsState","_inserterListbox","_searchItems","_blockPatternsPaging","_usePatternsPaging","_blockPatternsTab","PatternsListHeader","filterValue","filteredBlockPatternsLength","createElement","__experimentalHeading","level","lineHeight","className","sprintf","_n","PatternList","searchValue","selectedCategory","patternCategories","container","useRef","debouncedSpeak","useDebounce","speak","destinationRootClientId","onInsertBlocks","useInsertionPoint","shouldFocusBlock","patterns","onClickPattern","usePatternsState","registeredPatternCategories","useMemo","map","patternCategory","name","filteredBlockPatterns","filteredPatterns","filter","pattern","allPatternsCategory","myPatternsCategory","id","hasKnownCategory","categories","some","category","includes","length","searchItems","useEffect","count","resultsFoundMessage","pagingProps","usePatternsPaging","previousSearchValue","setPreviousSearchValue","useState","changePage","hasItems","ref","default","shownPatterns","categoryPatternsAsyncList","blockPatterns","categoryPatterns","isDraggable","numPages","_default","exports"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/patterns-list.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, useEffect, useRef, useState } from '@wordpress/element';\nimport { _n, sprintf } from '@wordpress/i18n';\nimport { useDebounce } from '@wordpress/compose';\nimport { __experimentalHeading as Heading } from '@wordpress/components';\nimport { speak } from '@wordpress/a11y';\n\n/**\n * Internal dependencies\n */\nimport BlockPatternsList from '../../block-patterns-list';\nimport useInsertionPoint from '../hooks/use-insertion-point';\nimport usePatternsState from '../hooks/use-patterns-state';\nimport InserterListbox from '../../inserter-listbox';\nimport { searchItems } from '../search-items';\nimport BlockPatternsPaging from '../../block-patterns-paging';\nimport usePatternsPaging from '../hooks/use-patterns-paging';\nimport { allPatternsCategory, myPatternsCategory } from '../block-patterns-tab';\n\nfunction PatternsListHeader( { filterValue, filteredBlockPatternsLength } ) {\n\tif ( ! filterValue ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Heading\n\t\t\tlevel={ 2 }\n\t\t\tlineHeight={ '48px' }\n\t\t\tclassName=\"block-editor-block-patterns-explorer__search-results-count\"\n\t\t>\n\t\t\t{ sprintf(\n\t\t\t\t/* translators: %d: number of patterns. */\n\t\t\t\t_n(\n\t\t\t\t\t'%d pattern found',\n\t\t\t\t\t'%d patterns found',\n\t\t\t\t\tfilteredBlockPatternsLength\n\t\t\t\t),\n\t\t\t\tfilteredBlockPatternsLength\n\t\t\t) }\n\t\t</Heading>\n\t);\n}\n\nfunction PatternList( { searchValue, selectedCategory, patternCategories } ) {\n\tconst container = useRef();\n\tconst debouncedSpeak = useDebounce( speak, 500 );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tshouldFocusBlock: true,\n\t} );\n\tconst [ patterns, , onClickPattern ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\n\t);\n\n\tconst registeredPatternCategories = useMemo(\n\t\t() =>\n\t\t\tpatternCategories.map(\n\t\t\t\t( patternCategory ) => patternCategory.name\n\t\t\t),\n\t\t[ patternCategories ]\n\t);\n\n\tconst filteredBlockPatterns = useMemo( () => {\n\t\tconst filteredPatterns = patterns.filter( ( pattern ) => {\n\t\t\tif ( selectedCategory === allPatternsCategory.name ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif ( selectedCategory === myPatternsCategory.name && pattern.id ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif ( selectedCategory === 'uncategorized' ) {\n\t\t\t\tconst hasKnownCategory = pattern.categories.some(\n\t\t\t\t\t( category ) =>\n\t\t\t\t\t\tregisteredPatternCategories.includes( category )\n\t\t\t\t);\n\n\t\t\t\treturn ! pattern.categories?.length || ! hasKnownCategory;\n\t\t\t}\n\n\t\t\treturn pattern.categories?.includes( selectedCategory );\n\t\t} );\n\n\t\tif ( ! searchValue ) {\n\t\t\treturn filteredPatterns;\n\t\t}\n\n\t\treturn searchItems( filteredPatterns, searchValue );\n\t}, [\n\t\tsearchValue,\n\t\tpatterns,\n\t\tselectedCategory,\n\t\tregisteredPatternCategories,\n\t] );\n\n\t// Announce search results on change.\n\tuseEffect( () => {\n\t\tif ( ! searchValue ) {\n\t\t\treturn;\n\t\t}\n\t\tconst count = filteredBlockPatterns.length;\n\t\tconst resultsFoundMessage = sprintf(\n\t\t\t/* translators: %d: number of results. */\n\t\t\t_n( '%d result found.', '%d results found.', count ),\n\t\t\tcount\n\t\t);\n\t\tdebouncedSpeak( resultsFoundMessage );\n\t}, [ searchValue, debouncedSpeak, filteredBlockPatterns.length ] );\n\n\tconst pagingProps = usePatternsPaging(\n\t\tfilteredBlockPatterns,\n\t\tselectedCategory,\n\t\tcontainer\n\t);\n\n\t// Reset page when search value changes.\n\tconst [ previousSearchValue, setPreviousSearchValue ] =\n\t\tuseState( searchValue );\n\tif ( searchValue !== previousSearchValue ) {\n\t\tsetPreviousSearchValue( searchValue );\n\t\tpagingProps.changePage( 1 );\n\t}\n\n\tconst hasItems = !! filteredBlockPatterns?.length;\n\treturn (\n\t\t<div\n\t\t\tclassName=\"block-editor-block-patterns-explorer__list\"\n\t\t\tref={ container }\n\t\t>\n\t\t\t<PatternsListHeader\n\t\t\t\tfilterValue={ searchValue }\n\t\t\t\tfilteredBlockPatternsLength={ filteredBlockPatterns.length }\n\t\t\t/>\n\n\t\t\t<InserterListbox>\n\t\t\t\t{ hasItems && (\n\t\t\t\t\t<BlockPatternsList\n\t\t\t\t\t\tshownPatterns={ pagingProps.categoryPatternsAsyncList }\n\t\t\t\t\t\tblockPatterns={ pagingProps.categoryPatterns }\n\t\t\t\t\t\tonClickPattern={ onClickPattern }\n\t\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ pagingProps.numPages > 1 && (\n\t\t\t\t\t<BlockPatternsPaging { ...pagingProps } />\n\t\t\t\t) }\n\t\t\t</InserterListbox>\n\t\t</div>\n\t);\n}\n\nexport default PatternList;\n"],"mappings":"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"}
|
|
@@ -35,16 +35,16 @@ function PatternCategoriesList({
|
|
|
35
35
|
}));
|
|
36
36
|
}
|
|
37
37
|
function PatternsExplorerSearch({
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
searchValue,
|
|
39
|
+
setSearchValue
|
|
40
40
|
}) {
|
|
41
41
|
const baseClassName = 'block-editor-block-patterns-explorer__search';
|
|
42
42
|
return (0, _element.createElement)("div", {
|
|
43
43
|
className: baseClassName
|
|
44
44
|
}, (0, _element.createElement)(_components.SearchControl, {
|
|
45
45
|
__nextHasNoMarginBottom: true,
|
|
46
|
-
onChange:
|
|
47
|
-
value:
|
|
46
|
+
onChange: setSearchValue,
|
|
47
|
+
value: searchValue,
|
|
48
48
|
label: (0, _i18n.__)('Search for patterns'),
|
|
49
49
|
placeholder: (0, _i18n.__)('Search')
|
|
50
50
|
}));
|
|
@@ -53,16 +53,16 @@ function PatternExplorerSidebar({
|
|
|
53
53
|
selectedCategory,
|
|
54
54
|
patternCategories,
|
|
55
55
|
onClickCategory,
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
searchValue,
|
|
57
|
+
setSearchValue
|
|
58
58
|
}) {
|
|
59
59
|
const baseClassName = 'block-editor-block-patterns-explorer__sidebar';
|
|
60
60
|
return (0, _element.createElement)("div", {
|
|
61
61
|
className: baseClassName
|
|
62
62
|
}, (0, _element.createElement)(PatternsExplorerSearch, {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}), !
|
|
63
|
+
searchValue: searchValue,
|
|
64
|
+
setSearchValue: setSearchValue
|
|
65
|
+
}), !searchValue && (0, _element.createElement)(PatternCategoriesList, {
|
|
66
66
|
selectedCategory: selectedCategory,
|
|
67
67
|
patternCategories: patternCategories,
|
|
68
68
|
onClickCategory: onClickCategory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","PatternCategoriesList","selectedCategory","patternCategories","onClickCategory","baseClassName","_element","createElement","className","map","name","label","Button","key","isPressed","onClick","PatternsExplorerSearch","
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","PatternCategoriesList","selectedCategory","patternCategories","onClickCategory","baseClassName","_element","createElement","className","map","name","label","Button","key","isPressed","onClick","PatternsExplorerSearch","searchValue","setSearchValue","SearchControl","__nextHasNoMarginBottom","onChange","value","__","placeholder","PatternExplorerSidebar","_default","exports","default"],"sources":["@wordpress/block-editor/src/components/inserter/block-patterns-explorer/sidebar.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Button, SearchControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\nfunction PatternCategoriesList( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t<div className={ `${ baseClassName }__categories-list` }>\n\t\t\t{ patternCategories.map( ( { name, label } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ name }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tclassName={ `${ baseClassName }__categories-list__item` }\n\t\t\t\t\t\tisPressed={ selectedCategory === name }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonClickCategory( name );\n\t\t\t\t\t\t} }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ label }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</div>\n\t);\n}\n\nfunction PatternsExplorerSearch( { searchValue, setSearchValue } ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__search';\n\treturn (\n\t\t<div className={ baseClassName }>\n\t\t\t<SearchControl\n\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\tonChange={ setSearchValue }\n\t\t\t\tvalue={ searchValue }\n\t\t\t\tlabel={ __( 'Search for patterns' ) }\n\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction PatternExplorerSidebar( {\n\tselectedCategory,\n\tpatternCategories,\n\tonClickCategory,\n\tsearchValue,\n\tsetSearchValue,\n} ) {\n\tconst baseClassName = 'block-editor-block-patterns-explorer__sidebar';\n\treturn (\n\t\t<div className={ baseClassName }>\n\t\t\t<PatternsExplorerSearch\n\t\t\t\tsearchValue={ searchValue }\n\t\t\t\tsetSearchValue={ setSearchValue }\n\t\t\t/>\n\t\t\t{ ! searchValue && (\n\t\t\t\t<PatternCategoriesList\n\t\t\t\t\tselectedCategory={ selectedCategory }\n\t\t\t\t\tpatternCategories={ patternCategories }\n\t\t\t\t\tonClickCategory={ onClickCategory }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default PatternExplorerSidebar;\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,SAASE,qBAAqBA,CAAE;EAC/BC,gBAAgB;EAChBC,iBAAiB;EACjBC;AACD,CAAC,EAAG;EACH,MAAMC,aAAa,GAAG,+CAA+C;EACrE,OACC,IAAAC,QAAA,CAAAC,aAAA;IAAKC,SAAS,EAAI,GAAGH,aAAe;EAAoB,GACrDF,iBAAiB,CAACM,GAAG,CAAE,CAAE;IAAEC,IAAI;IAAEC;EAAM,CAAC,KAAM;IAC/C,OACC,IAAAL,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAc,MAAM;MACNC,GAAG,EAAGH,IAAM;MACZC,KAAK,EAAGA,KAAO;MACfH,SAAS,EAAI,GAAGH,aAAe,yBAA0B;MACzDS,SAAS,EAAGZ,gBAAgB,KAAKQ,IAAM;MACvCK,OAAO,EAAGA,CAAA,KAAM;QACfX,eAAe,CAAEM,IAAK,CAAC;MACxB;IAAG,GAEDC,KACK,CAAC;EAEX,CAAE,CACE,CAAC;AAER;AAEA,SAASK,sBAAsBA,CAAE;EAAEC,WAAW;EAAEC;AAAe,CAAC,EAAG;EAClE,MAAMb,aAAa,GAAG,8CAA8C;EACpE,OACC,IAAAC,QAAA,CAAAC,aAAA;IAAKC,SAAS,EAAGH;EAAe,GAC/B,IAAAC,QAAA,CAAAC,aAAA,EAACT,WAAA,CAAAqB,aAAa;IACbC,uBAAuB;IACvBC,QAAQ,EAAGH,cAAgB;IAC3BI,KAAK,EAAGL,WAAa;IACrBN,KAAK,EAAG,IAAAY,QAAE,EAAE,qBAAsB,CAAG;IACrCC,WAAW,EAAG,IAAAD,QAAE,EAAE,QAAS;EAAG,CAC9B,CACG,CAAC;AAER;AAEA,SAASE,sBAAsBA,CAAE;EAChCvB,gBAAgB;EAChBC,iBAAiB;EACjBC,eAAe;EACfa,WAAW;EACXC;AACD,CAAC,EAAG;EACH,MAAMb,aAAa,GAAG,+CAA+C;EACrE,OACC,IAAAC,QAAA,CAAAC,aAAA;IAAKC,SAAS,EAAGH;EAAe,GAC/B,IAAAC,QAAA,CAAAC,aAAA,EAACS,sBAAsB;IACtBC,WAAW,EAAGA,WAAa;IAC3BC,cAAc,EAAGA;EAAgB,CACjC,CAAC,EACA,CAAED,WAAW,IACd,IAAAX,QAAA,CAAAC,aAAA,EAACN,qBAAqB;IACrBC,gBAAgB,EAAGA,gBAAkB;IACrCC,iBAAiB,EAAGA,iBAAmB;IACvCC,eAAe,EAAGA;EAAiB,CACnC,CAEE,CAAC;AAER;AAAC,IAAAsB,QAAA,GAEcD,sBAAsB;AAAAE,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BlockPatternsSyncFilter = BlockPatternsSyncFilter;
|
|
7
|
+
exports.SYNC_TYPES = exports.PATTERN_TYPES = void 0;
|
|
8
|
+
var _element = require("@wordpress/element");
|
|
9
|
+
var _components = require("@wordpress/components");
|
|
10
|
+
var _i18n = require("@wordpress/i18n");
|
|
11
|
+
var _icons = require("@wordpress/icons");
|
|
12
|
+
var _blockPatternsTab = require("./block-patterns-tab");
|
|
13
|
+
/**
|
|
14
|
+
* WordPress dependencies
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Internal dependencies
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
const PATTERN_TYPES = {
|
|
22
|
+
all: 'all',
|
|
23
|
+
synced: 'synced',
|
|
24
|
+
unsynced: 'unsynced',
|
|
25
|
+
user: 'user',
|
|
26
|
+
theme: 'theme',
|
|
27
|
+
directory: 'directory'
|
|
28
|
+
};
|
|
29
|
+
exports.PATTERN_TYPES = PATTERN_TYPES;
|
|
30
|
+
const SYNC_TYPES = {
|
|
31
|
+
all: 'all',
|
|
32
|
+
full: 'fully',
|
|
33
|
+
unsynced: 'unsynced'
|
|
34
|
+
};
|
|
35
|
+
exports.SYNC_TYPES = SYNC_TYPES;
|
|
36
|
+
const getShouldDisableSyncFilter = sourceFilter => sourceFilter !== PATTERN_TYPES.all && sourceFilter !== PATTERN_TYPES.user;
|
|
37
|
+
const getShouldDisableNonUserSources = category => {
|
|
38
|
+
return category.name === _blockPatternsTab.myPatternsCategory.name;
|
|
39
|
+
};
|
|
40
|
+
function BlockPatternsSyncFilter({
|
|
41
|
+
setPatternSyncFilter,
|
|
42
|
+
setPatternSourceFilter,
|
|
43
|
+
patternSyncFilter,
|
|
44
|
+
patternSourceFilter,
|
|
45
|
+
scrollContainerRef,
|
|
46
|
+
category
|
|
47
|
+
}) {
|
|
48
|
+
// If the category is `myPatterns` then we need to set the source filter to `user`, but
|
|
49
|
+
// we do this by deriving from props rather than calling setPatternSourceFilter otherwise
|
|
50
|
+
// the user may be confused when switching to another category if the haven't explicity set
|
|
51
|
+
// this filter themselves.
|
|
52
|
+
const currentPatternSourceFilter = category.name === _blockPatternsTab.myPatternsCategory.name ? PATTERN_TYPES.user : patternSourceFilter;
|
|
53
|
+
|
|
54
|
+
// We need to disable the sync filter option if the source filter is not 'all' or 'user'
|
|
55
|
+
// otherwise applying them will just result in no patterns being shown.
|
|
56
|
+
const shouldDisableSyncFilter = getShouldDisableSyncFilter(currentPatternSourceFilter);
|
|
57
|
+
|
|
58
|
+
// We also need to disable the directory and theme source filter options if the category
|
|
59
|
+
// is `myPatterns` otherwise applying them will also just result in no patterns being shown.
|
|
60
|
+
const shouldDisableNonUserSources = getShouldDisableNonUserSources(category);
|
|
61
|
+
const patternSyncMenuOptions = (0, _element.useMemo)(() => [{
|
|
62
|
+
value: SYNC_TYPES.all,
|
|
63
|
+
label: (0, _i18n.__)('All')
|
|
64
|
+
}, {
|
|
65
|
+
value: SYNC_TYPES.full,
|
|
66
|
+
label: (0, _i18n.__)('Synced'),
|
|
67
|
+
info: (0, _i18n.__)('Updated everywhere'),
|
|
68
|
+
disabled: shouldDisableSyncFilter
|
|
69
|
+
}, {
|
|
70
|
+
value: SYNC_TYPES.unsynced,
|
|
71
|
+
label: (0, _i18n.__)('Standard'),
|
|
72
|
+
info: (0, _i18n.__)('Edit freely'),
|
|
73
|
+
disabled: shouldDisableSyncFilter
|
|
74
|
+
}], [shouldDisableSyncFilter]);
|
|
75
|
+
const patternSourceMenuOptions = (0, _element.useMemo)(() => [{
|
|
76
|
+
value: PATTERN_TYPES.all,
|
|
77
|
+
label: (0, _i18n.__)('All'),
|
|
78
|
+
disabled: shouldDisableNonUserSources
|
|
79
|
+
}, {
|
|
80
|
+
value: PATTERN_TYPES.directory,
|
|
81
|
+
label: (0, _i18n.__)('Directory'),
|
|
82
|
+
info: (0, _i18n.__)('Pattern directory & core'),
|
|
83
|
+
disabled: shouldDisableNonUserSources
|
|
84
|
+
}, {
|
|
85
|
+
value: PATTERN_TYPES.theme,
|
|
86
|
+
label: (0, _i18n.__)('Theme'),
|
|
87
|
+
info: (0, _i18n.__)('Bundled with the theme'),
|
|
88
|
+
disabled: shouldDisableNonUserSources
|
|
89
|
+
}, {
|
|
90
|
+
value: PATTERN_TYPES.user,
|
|
91
|
+
label: (0, _i18n.__)('User'),
|
|
92
|
+
info: (0, _i18n.__)('Custom created')
|
|
93
|
+
}], [shouldDisableNonUserSources]);
|
|
94
|
+
function handleSetSourceFilterChange(newSourceFilter) {
|
|
95
|
+
setPatternSourceFilter(newSourceFilter);
|
|
96
|
+
if (getShouldDisableSyncFilter(newSourceFilter)) {
|
|
97
|
+
setPatternSyncFilter(SYNC_TYPES.all);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.DropdownMenu, {
|
|
101
|
+
popoverProps: {
|
|
102
|
+
placement: 'right-end'
|
|
103
|
+
},
|
|
104
|
+
label: "Filter patterns",
|
|
105
|
+
icon: (0, _element.createElement)(_icons.Icon, {
|
|
106
|
+
icon: (0, _element.createElement)(_components.SVG, {
|
|
107
|
+
width: "24",
|
|
108
|
+
height: "24",
|
|
109
|
+
viewBox: "0 0 24 24",
|
|
110
|
+
fill: "none",
|
|
111
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
112
|
+
}, (0, _element.createElement)(_components.Path, {
|
|
113
|
+
d: "M10 17.5H14V16H10V17.5ZM6 6V7.5H18V6H6ZM8 12.5H16V11H8V12.5Z",
|
|
114
|
+
fill: "#1E1E1E"
|
|
115
|
+
}))
|
|
116
|
+
})
|
|
117
|
+
}, () => (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.MenuGroup, {
|
|
118
|
+
label: (0, _i18n.__)('Author')
|
|
119
|
+
}, (0, _element.createElement)(_components.MenuItemsChoice, {
|
|
120
|
+
choices: patternSourceMenuOptions,
|
|
121
|
+
onSelect: value => {
|
|
122
|
+
handleSetSourceFilterChange(value);
|
|
123
|
+
scrollContainerRef.current?.scrollTo(0, 0);
|
|
124
|
+
},
|
|
125
|
+
value: currentPatternSourceFilter
|
|
126
|
+
})), (0, _element.createElement)(_components.MenuGroup, {
|
|
127
|
+
label: (0, _i18n.__)('Type')
|
|
128
|
+
}, (0, _element.createElement)(_components.MenuItemsChoice, {
|
|
129
|
+
choices: patternSyncMenuOptions,
|
|
130
|
+
onSelect: value => {
|
|
131
|
+
setPatternSyncFilter(value);
|
|
132
|
+
scrollContainerRef.current?.scrollTo(0, 0);
|
|
133
|
+
},
|
|
134
|
+
value: patternSyncFilter
|
|
135
|
+
})))));
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=block-patterns-filter.js.map
|