@wordpress/block-editor 14.3.4 → 14.4.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 +2 -0
- package/README.md +4 -0
- package/build/autocompleters/link.js +2 -1
- package/build/autocompleters/link.js.map +1 -1
- package/build/components/block-actions/index.js +1 -13
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-inspector/index.js +56 -75
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block.js +5 -19
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.js +5 -8
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +3 -11
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
- package/build/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +5 -3
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list/zoom-out-separator.js +14 -6
- package/build/components/block-list/zoom-out-separator.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +2 -4
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-parent-selector/index.js +13 -10
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +10 -20
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-patterns-paging/index.js +11 -13
- package/build/components/block-patterns-paging/index.js.map +1 -1
- package/build/components/block-quick-navigation/index.js +2 -4
- package/build/components/block-quick-navigation/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +79 -76
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -6
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +17 -14
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +16 -19
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-toolbar/use-has-block-toolbar.js +3 -5
- package/build/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build/components/block-tools/index.js +8 -11
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +1 -4
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/block-tools/use-show-block-tools.js +2 -5
- package/build/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
- package/build/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
- package/build/components/block-tools/zoom-out-mode-inserters.js +14 -17
- package/build/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build/components/block-tools/zoom-out-toolbar.js +2 -12
- package/build/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build/components/block-variation-picker/index.js +2 -4
- package/build/components/block-variation-picker/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +3 -4
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/button-block-appender/index.js +2 -4
- package/build/components/button-block-appender/index.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +2 -4
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/global-styles/border-panel.js +1 -1
- package/build/components/global-styles/border-panel.js.map +1 -1
- package/build/components/global-styles/color-panel.js +2 -4
- package/build/components/global-styles/color-panel.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +3 -3
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +2 -4
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/shadow-panel-components.js +24 -29
- package/build/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build/components/inner-blocks/index.js +1 -9
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +1 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-types-state.js +24 -5
- package/build/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js +22 -12
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js +23 -10
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/media-tab/media-preview.js +35 -13
- package/build/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build/components/inserter/menu.js +2 -2
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/mobile-tab-navigation.js +5 -5
- package/build/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +4 -4
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inspector-controls-tabs/index.js +11 -8
- package/build/components/inspector-controls-tabs/index.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +4 -8
- package/build/components/inspector-popover-header/index.js.map +1 -1
- package/build/components/link-control/index.js +5 -10
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +2 -4
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/list-view/block-contents.js +1 -25
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +1 -4
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/media-placeholder/index.js +12 -24
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +2 -4
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/tool-selector/index.js +13 -12
- package/build/components/tool-selector/index.js.map +1 -1
- package/build/components/url-input/button.js +14 -16
- package/build/components/url-input/button.js.map +1 -1
- package/build/components/url-input/index.js +2 -4
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +0 -61
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +2 -25
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/duotone.js +4 -1
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/layout-child.js +3 -1
- package/build/hooks/layout-child.js.map +1 -1
- package/build/hooks/position.js +3 -2
- package/build/hooks/position.js.map +1 -1
- package/build/layouts/flex.js +6 -38
- package/build/layouts/flex.js.map +1 -1
- package/build/store/actions.js +13 -14
- package/build/store/actions.js.map +1 -1
- package/build/store/private-actions.js +15 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +104 -7
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +22 -26
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +127 -56
- package/build/store/selectors.js.map +1 -1
- package/build/store/utils.js +4 -3
- package/build/store/utils.js.map +1 -1
- package/build/utils/block-bindings.js +2 -0
- package/build/utils/block-bindings.js.map +1 -1
- package/build-module/autocompleters/link.js +2 -1
- package/build-module/autocompleters/link.js.map +1 -1
- package/build-module/components/block-actions/index.js +1 -13
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +57 -76
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -19
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.js +5 -8
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +3 -11
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js +9 -12
- package/build-module/components/block-list/use-block-props/use-zoom-out-mode-exit.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +5 -3
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list/zoom-out-separator.js +14 -6
- package/build-module/components/block-list/zoom-out-separator.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +2 -4
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js +13 -10
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +10 -20
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-patterns-paging/index.js +11 -13
- package/build-module/components/block-patterns-paging/index.js.map +1 -1
- package/build-module/components/block-quick-navigation/index.js +2 -4
- package/build-module/components/block-quick-navigation/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +79 -76
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +2 -7
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +17 -14
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +17 -20
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-toolbar/use-has-block-toolbar.js +3 -5
- package/build-module/components/block-toolbar/use-has-block-toolbar.js.map +1 -1
- package/build-module/components/block-tools/index.js +8 -11
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +1 -4
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/block-tools/use-show-block-tools.js +2 -5
- package/build-module/components/block-tools/use-show-block-tools.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js +1 -12
- package/build-module/components/block-tools/zoom-out-mode-inserter-button.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-mode-inserters.js +14 -17
- package/build-module/components/block-tools/zoom-out-mode-inserters.js.map +1 -1
- package/build-module/components/block-tools/zoom-out-toolbar.js +2 -12
- package/build-module/components/block-tools/zoom-out-toolbar.js.map +1 -1
- package/build-module/components/block-variation-picker/index.js +2 -4
- package/build-module/components/block-variation-picker/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +3 -4
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/button-block-appender/index.js +2 -4
- package/build-module/components/button-block-appender/index.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +2 -4
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/global-styles/border-panel.js +1 -1
- package/build-module/components/global-styles/border-panel.js.map +1 -1
- package/build-module/components/global-styles/color-panel.js +2 -4
- package/build-module/components/global-styles/color-panel.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +1 -1
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +2 -4
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/shadow-panel-components.js +25 -30
- package/build-module/components/global-styles/shadow-panel-components.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +1 -9
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +1 -1
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-types-state.js +27 -8
- package/build-module/components/inserter/hooks/use-block-types-state.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js +22 -12
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js +23 -10
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/media-tab/media-preview.js +35 -13
- package/build-module/components/inserter/media-tab/media-preview.js.map +1 -1
- package/build-module/components/inserter/menu.js +2 -2
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/mobile-tab-navigation.js +6 -6
- package/build-module/components/inserter/mobile-tab-navigation.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +4 -4
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inspector-controls-tabs/index.js +12 -9
- package/build-module/components/inspector-controls-tabs/index.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +4 -8
- package/build-module/components/inspector-popover-header/index.js.map +1 -1
- package/build-module/components/link-control/index.js +5 -10
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +2 -4
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +1 -25
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -5
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +12 -24
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +2 -4
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/tool-selector/index.js +13 -12
- package/build-module/components/tool-selector/index.js.map +1 -1
- package/build-module/components/url-input/button.js +15 -17
- package/build-module/components/url-input/button.js.map +1 -1
- package/build-module/components/url-input/index.js +2 -4
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +1 -62
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +3 -26
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -1
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/layout-child.js +4 -1
- package/build-module/hooks/layout-child.js.map +1 -1
- package/build-module/hooks/position.js +4 -1
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/layouts/flex.js +7 -39
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/store/actions.js +12 -12
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/private-actions.js +14 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +98 -7
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +21 -25
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +129 -58
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/store/utils.js +3 -2
- package/build-module/store/utils.js.map +1 -1
- package/build-module/utils/block-bindings.js +2 -0
- package/build-module/utils/block-bindings.js.map +1 -1
- package/build-style/content-rtl.css +14 -56
- package/build-style/content.css +14 -56
- package/build-style/default-editor-styles-rtl.css +10 -1
- package/build-style/default-editor-styles.css +10 -1
- package/build-style/style-rtl.css +51 -149
- package/build-style/style.css +51 -149
- package/package.json +32 -32
- package/src/autocompleters/link.js +2 -1
- package/src/components/block-actions/index.js +1 -13
- package/src/components/block-draggable/style.scss +2 -2
- package/src/components/block-inspector/index.js +79 -95
- package/src/components/block-inspector/style.scss +2 -0
- package/src/components/block-list/block.js +7 -28
- package/src/components/block-list/content.scss +1 -61
- package/src/components/block-list/index.js +21 -29
- package/src/components/block-list/use-block-props/index.js +3 -10
- package/src/components/block-list/use-block-props/use-zoom-out-mode-exit.js +19 -11
- package/src/components/block-list/use-in-between-inserter.js +5 -2
- package/src/components/block-list/zoom-out-separator.js +24 -8
- package/src/components/block-navigation/dropdown.js +1 -2
- package/src/components/block-parent-selector/index.js +13 -10
- package/src/components/block-pattern-setup/setup-toolbar.js +5 -10
- package/src/components/block-patterns-paging/index.js +8 -7
- package/src/components/block-patterns-paging/style.scss +10 -27
- package/src/components/block-quick-navigation/index.js +1 -2
- package/src/components/block-settings-menu/block-settings-dropdown.js +120 -106
- package/src/components/block-settings-menu-controls/index.js +0 -15
- package/src/components/block-switcher/index.js +37 -30
- package/src/components/block-toolbar/index.js +22 -34
- package/src/components/block-toolbar/style.scss +10 -1
- package/src/components/block-toolbar/use-has-block-toolbar.js +19 -31
- package/src/components/block-tools/index.js +7 -16
- package/src/components/block-tools/insertion-point.js +1 -4
- package/src/components/block-tools/style.scss +3 -88
- package/src/components/block-tools/use-show-block-tools.js +2 -12
- package/src/components/block-tools/zoom-out-mode-inserter-button.js +2 -17
- package/src/components/block-tools/zoom-out-mode-inserters.js +11 -19
- package/src/components/block-tools/zoom-out-toolbar.js +2 -13
- package/src/components/block-variation-picker/index.js +1 -2
- package/src/components/block-variation-transforms/index.js +2 -2
- package/src/components/button-block-appender/content.scss +0 -5
- package/src/components/button-block-appender/index.js +1 -2
- package/src/components/colors-gradients/dropdown.js +1 -5
- package/src/components/font-family/README.md +5 -1
- package/src/components/global-styles/border-panel.js +1 -1
- package/src/components/global-styles/color-panel.js +1 -5
- package/src/components/global-styles/dimensions-panel.js +1 -1
- package/src/components/global-styles/filters-panel.js +1 -2
- package/src/components/global-styles/shadow-panel-components.js +28 -33
- package/src/components/global-styles/style.scss +5 -0
- package/src/components/inner-blocks/index.js +1 -16
- package/src/components/inserter/block-types-tab.js +1 -1
- package/src/components/inserter/hooks/use-block-types-state.js +34 -14
- package/src/components/inserter/hooks/use-insertion-point.js +35 -13
- package/src/components/inserter/hooks/use-patterns-state.js +46 -9
- package/src/components/inserter/media-tab/media-preview.js +38 -12
- package/src/components/inserter/menu.js +2 -2
- package/src/components/inserter/mobile-tab-navigation.js +10 -13
- package/src/components/inserter/quick-inserter.js +5 -4
- package/src/components/inserter/style.scss +0 -28
- package/src/components/inspector-controls-tabs/index.js +21 -20
- package/src/components/inspector-controls-tabs/style.scss +2 -6
- package/src/components/inspector-popover-header/index.js +2 -4
- package/src/components/inspector-popover-header/style.scss +0 -13
- package/src/components/link-control/index.js +2 -5
- package/src/components/link-control/settings-drawer.js +1 -2
- package/src/components/list-view/block-contents.js +1 -28
- package/src/components/list-view/block-select-button.js +2 -5
- package/src/components/list-view/style.scss +18 -14
- package/src/components/media-placeholder/index.js +6 -12
- package/src/components/skip-to-selected-block/index.js +1 -2
- package/src/components/skip-to-selected-block/style.scss +0 -9
- package/src/components/tool-selector/index.js +14 -9
- package/src/components/tool-selector/style.scss +5 -0
- package/src/components/url-input/button.js +16 -12
- package/src/components/url-input/index.js +1 -2
- package/src/components/url-input/style.scss +0 -6
- package/src/components/use-block-commands/index.js +0 -58
- package/src/components/writing-flow/use-tab-nav.js +4 -36
- package/src/content.scss +0 -1
- package/src/hooks/duotone.js +4 -1
- package/src/hooks/layout-child.js +4 -1
- package/src/hooks/position.js +4 -1
- package/src/layouts/flex.js +10 -53
- package/src/store/actions.js +14 -13
- package/src/store/private-actions.js +14 -0
- package/src/store/private-selectors.js +120 -16
- package/src/store/reducer.js +22 -28
- package/src/store/selectors.js +203 -114
- package/src/store/test/private-actions.js +15 -0
- package/src/store/test/private-selectors.js +34 -0
- package/src/store/test/reducer.js +40 -4
- package/src/store/test/selectors.js +183 -20
- package/src/store/utils.js +4 -2
- package/src/utils/block-bindings.js +2 -0
- package/build/components/block-controls/use-has-block-controls.js +0 -43
- package/build/components/block-controls/use-has-block-controls.js.map +0 -1
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js +0 -54
- package/build/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
- package/build/components/block-tools/block-selection-button.js +0 -259
- package/build/components/block-tools/block-selection-button.js.map +0 -1
- package/build/components/block-tools/block-toolbar-breadcrumb.js +0 -57
- package/build/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
- package/build/components/inserter/tabs.js +0 -78
- package/build/components/inserter/tabs.js.map +0 -1
- package/build-module/components/block-controls/use-has-block-controls.js +0 -34
- package/build-module/components/block-controls/use-has-block-controls.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js +0 -48
- package/build-module/components/block-list/use-block-props/use-nav-mode-exit.js.map +0 -1
- package/build-module/components/block-tools/block-selection-button.js +0 -254
- package/build-module/components/block-tools/block-selection-button.js.map +0 -1
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js +0 -49
- package/build-module/components/block-tools/block-toolbar-breadcrumb.js.map +0 -1
- package/build-module/components/inserter/tabs.js +0 -72
- package/build-module/components/inserter/tabs.js.map +0 -1
- package/src/components/block-controls/use-has-block-controls.js +0 -35
- package/src/components/block-list/use-block-props/use-nav-mode-exit.js +0 -46
- package/src/components/block-tools/block-selection-button.js +0 -302
- package/src/components/block-tools/block-toolbar-breadcrumb.js +0 -51
- package/src/components/inner-blocks/content.scss +0 -13
- package/src/components/inserter/tabs.js +0 -78
- package/src/components/inserter/test/block-types-tab.native.js +0 -67
|
@@ -11,37 +11,46 @@ import { store as noticesStore } from '@wordpress/notices';
|
|
|
11
11
|
* Internal dependencies
|
|
12
12
|
*/
|
|
13
13
|
import { store as blockEditorStore } from '../../../store';
|
|
14
|
+
import { unlock } from '../../../lock-unlock';
|
|
14
15
|
import { INSERTER_PATTERN_TYPES } from '../block-patterns-tab/utils';
|
|
16
|
+
import { isFiltered } from '../../../store/utils';
|
|
15
17
|
|
|
16
18
|
/**
|
|
17
19
|
* Retrieves the block patterns inserter state.
|
|
18
20
|
*
|
|
19
21
|
* @param {Function} onInsert function called when inserter a list of blocks.
|
|
20
22
|
* @param {string=} rootClientId Insertion's root client ID.
|
|
21
|
-
*
|
|
22
23
|
* @param {string} selectedCategory The selected pattern category.
|
|
24
|
+
* @param {boolean} isQuick For the quick inserter render only allowed patterns.
|
|
25
|
+
*
|
|
23
26
|
* @return {Array} Returns the patterns state. (patterns, categories, onSelect handler)
|
|
24
27
|
*/
|
|
25
|
-
const usePatternsState = (onInsert, rootClientId, selectedCategory) => {
|
|
28
|
+
const usePatternsState = (onInsert, rootClientId, selectedCategory, isQuick) => {
|
|
29
|
+
const options = useMemo(() => ({
|
|
30
|
+
[isFiltered]: !!isQuick
|
|
31
|
+
}), [isQuick]);
|
|
26
32
|
const {
|
|
27
33
|
patternCategories,
|
|
28
34
|
patterns,
|
|
29
35
|
userPatternCategories
|
|
30
36
|
} = useSelect(select => {
|
|
31
37
|
const {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
} = select(blockEditorStore);
|
|
38
|
+
getSettings,
|
|
39
|
+
__experimentalGetAllowedPatterns
|
|
40
|
+
} = unlock(select(blockEditorStore));
|
|
35
41
|
const {
|
|
36
42
|
__experimentalUserPatternCategories,
|
|
37
43
|
__experimentalBlockPatternCategories
|
|
38
44
|
} = getSettings();
|
|
39
45
|
return {
|
|
40
|
-
patterns: __experimentalGetAllowedPatterns(rootClientId),
|
|
46
|
+
patterns: __experimentalGetAllowedPatterns(rootClientId, options),
|
|
41
47
|
userPatternCategories: __experimentalUserPatternCategories,
|
|
42
48
|
patternCategories: __experimentalBlockPatternCategories
|
|
43
49
|
};
|
|
44
|
-
}, [rootClientId]);
|
|
50
|
+
}, [rootClientId, options]);
|
|
51
|
+
const {
|
|
52
|
+
getClosestAllowedInsertionPointForPattern
|
|
53
|
+
} = unlock(useSelect(blockEditorStore));
|
|
45
54
|
const allCategories = useMemo(() => {
|
|
46
55
|
const categories = [...patternCategories];
|
|
47
56
|
userPatternCategories?.forEach(userCategory => {
|
|
@@ -55,6 +64,10 @@ const usePatternsState = (onInsert, rootClientId, selectedCategory) => {
|
|
|
55
64
|
createSuccessNotice
|
|
56
65
|
} = useDispatch(noticesStore);
|
|
57
66
|
const onClickPattern = useCallback((pattern, blocks) => {
|
|
67
|
+
const destinationRootClientId = isQuick ? rootClientId : getClosestAllowedInsertionPointForPattern(pattern, rootClientId);
|
|
68
|
+
if (destinationRootClientId === null) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
58
71
|
const patternBlocks = pattern.type === INSERTER_PATTERN_TYPES.user && pattern.syncStatus !== 'unsynced' ? [createBlock('core/block', {
|
|
59
72
|
ref: pattern.id
|
|
60
73
|
})] : blocks;
|
|
@@ -64,13 +77,13 @@ const usePatternsState = (onInsert, rootClientId, selectedCategory) => {
|
|
|
64
77
|
clonedBlock.attributes.metadata.categories = [selectedCategory];
|
|
65
78
|
}
|
|
66
79
|
return clonedBlock;
|
|
67
|
-
}), pattern.name);
|
|
80
|
+
}), pattern.name, false, destinationRootClientId);
|
|
68
81
|
createSuccessNotice(sprintf( /* translators: %s: block pattern title. */
|
|
69
82
|
__('Block pattern "%s" inserted.'), pattern.title), {
|
|
70
83
|
type: 'snackbar',
|
|
71
|
-
id: '
|
|
84
|
+
id: 'inserter-notice'
|
|
72
85
|
});
|
|
73
|
-
}, [createSuccessNotice, onInsert, selectedCategory]);
|
|
86
|
+
}, [createSuccessNotice, onInsert, selectedCategory, rootClientId, getClosestAllowedInsertionPointForPattern, isQuick]);
|
|
74
87
|
return [patterns, allCategories, onClickPattern];
|
|
75
88
|
};
|
|
76
89
|
export default usePatternsState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useMemo","cloneBlock","createBlock","useDispatch","useSelect","__","sprintf","store","noticesStore","blockEditorStore","INSERTER_PATTERN_TYPES","usePatternsState","onInsert","rootClientId","selectedCategory","patternCategories","patterns","userPatternCategories","select","
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","cloneBlock","createBlock","useDispatch","useSelect","__","sprintf","store","noticesStore","blockEditorStore","unlock","INSERTER_PATTERN_TYPES","isFiltered","usePatternsState","onInsert","rootClientId","selectedCategory","isQuick","options","patternCategories","patterns","userPatternCategories","select","getSettings","__experimentalGetAllowedPatterns","__experimentalUserPatternCategories","__experimentalBlockPatternCategories","getClosestAllowedInsertionPointForPattern","allCategories","categories","forEach","userCategory","find","existingCategory","name","push","createSuccessNotice","onClickPattern","pattern","blocks","destinationRootClientId","patternBlocks","type","user","syncStatus","ref","id","map","block","clonedBlock","attributes","metadata","includes","title"],"sources":["@wordpress/block-editor/src/components/inserter/hooks/use-patterns-state.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo } from '@wordpress/element';\nimport { cloneBlock, createBlock } from '@wordpress/blocks';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { unlock } from '../../../lock-unlock';\nimport { INSERTER_PATTERN_TYPES } from '../block-patterns-tab/utils';\nimport { isFiltered } from '../../../store/utils';\n\n/**\n * Retrieves the block patterns inserter state.\n *\n * @param {Function} onInsert function called when inserter a list of blocks.\n * @param {string=} rootClientId Insertion's root client ID.\n * @param {string} selectedCategory The selected pattern category.\n * @param {boolean} isQuick For the quick inserter render only allowed patterns.\n *\n * @return {Array} Returns the patterns state. (patterns, categories, onSelect handler)\n */\nconst usePatternsState = (\n\tonInsert,\n\trootClientId,\n\tselectedCategory,\n\tisQuick\n) => {\n\tconst options = useMemo(\n\t\t() => ( { [ isFiltered ]: !! isQuick } ),\n\t\t[ isQuick ]\n\t);\n\tconst { patternCategories, patterns, userPatternCategories } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, __experimentalGetAllowedPatterns } = unlock(\n\t\t\t\tselect( blockEditorStore )\n\t\t\t);\n\t\t\tconst {\n\t\t\t\t__experimentalUserPatternCategories,\n\t\t\t\t__experimentalBlockPatternCategories,\n\t\t\t} = getSettings();\n\t\t\treturn {\n\t\t\t\tpatterns: __experimentalGetAllowedPatterns(\n\t\t\t\t\trootClientId,\n\t\t\t\t\toptions\n\t\t\t\t),\n\t\t\t\tuserPatternCategories: __experimentalUserPatternCategories,\n\t\t\t\tpatternCategories: __experimentalBlockPatternCategories,\n\t\t\t};\n\t\t},\n\t\t[ rootClientId, options ]\n\t);\n\tconst { getClosestAllowedInsertionPointForPattern } = unlock(\n\t\tuseSelect( blockEditorStore )\n\t);\n\n\tconst allCategories = useMemo( () => {\n\t\tconst categories = [ ...patternCategories ];\n\t\tuserPatternCategories?.forEach( ( userCategory ) => {\n\t\t\tif (\n\t\t\t\t! categories.find(\n\t\t\t\t\t( existingCategory ) =>\n\t\t\t\t\t\texistingCategory.name === userCategory.name\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcategories.push( userCategory );\n\t\t\t}\n\t\t} );\n\t\treturn categories;\n\t}, [ patternCategories, userPatternCategories ] );\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst onClickPattern = useCallback(\n\t\t( pattern, blocks ) => {\n\t\t\tconst destinationRootClientId = isQuick\n\t\t\t\t? rootClientId\n\t\t\t\t: getClosestAllowedInsertionPointForPattern(\n\t\t\t\t\t\tpattern,\n\t\t\t\t\t\trootClientId\n\t\t\t\t );\n\t\t\tif ( destinationRootClientId === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst patternBlocks =\n\t\t\t\tpattern.type === INSERTER_PATTERN_TYPES.user &&\n\t\t\t\tpattern.syncStatus !== 'unsynced'\n\t\t\t\t\t? [ createBlock( 'core/block', { ref: pattern.id } ) ]\n\t\t\t\t\t: blocks;\n\t\t\tonInsert(\n\t\t\t\t( patternBlocks ?? [] ).map( ( block ) => {\n\t\t\t\t\tconst clonedBlock = cloneBlock( block );\n\t\t\t\t\tif (\n\t\t\t\t\t\tclonedBlock.attributes.metadata?.categories?.includes(\n\t\t\t\t\t\t\tselectedCategory\n\t\t\t\t\t\t)\n\t\t\t\t\t) {\n\t\t\t\t\t\tclonedBlock.attributes.metadata.categories = [\n\t\t\t\t\t\t\tselectedCategory,\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\t\t\t\t\treturn clonedBlock;\n\t\t\t\t} ),\n\t\t\t\tpattern.name,\n\t\t\t\tfalse,\n\t\t\t\tdestinationRootClientId\n\t\t\t);\n\t\t\tcreateSuccessNotice(\n\t\t\t\tsprintf(\n\t\t\t\t\t/* translators: %s: block pattern title. */\n\t\t\t\t\t__( 'Block pattern \"%s\" inserted.' ),\n\t\t\t\t\tpattern.title\n\t\t\t\t),\n\t\t\t\t{\n\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t}\n\t\t\t);\n\t\t},\n\t\t[\n\t\t\tcreateSuccessNotice,\n\t\t\tonInsert,\n\t\t\tselectedCategory,\n\t\t\trootClientId,\n\t\t\tgetClosestAllowedInsertionPointForPattern,\n\t\t\tisQuick,\n\t\t]\n\t);\n\n\treturn [ patterns, allCategories, onClickPattern ];\n};\n\nexport default usePatternsState;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,7 @@ import { moreVertical, external } from '@wordpress/icons';
|
|
|
14
14
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
15
15
|
import { store as noticesStore } from '@wordpress/notices';
|
|
16
16
|
import { isBlobURL } from '@wordpress/blob';
|
|
17
|
+
import { getFilename } from '@wordpress/url';
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Internal dependencies
|
|
@@ -104,8 +105,12 @@ export function MediaPreview({
|
|
|
104
105
|
createSuccessNotice
|
|
105
106
|
} = useDispatch(noticesStore);
|
|
106
107
|
const {
|
|
107
|
-
getSettings
|
|
108
|
+
getSettings,
|
|
109
|
+
getBlock
|
|
108
110
|
} = useSelect(blockEditorStore);
|
|
111
|
+
const {
|
|
112
|
+
updateBlockAttributes
|
|
113
|
+
} = useDispatch(blockEditorStore);
|
|
109
114
|
const onMediaInsert = useCallback(previewBlock => {
|
|
110
115
|
// Prevent multiple uploads when we're in the process of inserting.
|
|
111
116
|
if (isInserting) {
|
|
@@ -137,8 +142,12 @@ export function MediaPreview({
|
|
|
137
142
|
// If this happens, we insert the image block using the external
|
|
138
143
|
// URL and let the user know about the possible implications.
|
|
139
144
|
window.fetch(url).then(response => response.blob()).then(blob => {
|
|
145
|
+
const fileName = getFilename(url) || 'image.jpg';
|
|
146
|
+
const file = new File([blob], fileName, {
|
|
147
|
+
type: blob.type
|
|
148
|
+
});
|
|
140
149
|
settings.mediaUpload({
|
|
141
|
-
filesList: [
|
|
150
|
+
filesList: [file],
|
|
142
151
|
additionalData: {
|
|
143
152
|
caption
|
|
144
153
|
},
|
|
@@ -146,23 +155,35 @@ export function MediaPreview({
|
|
|
146
155
|
if (isBlobURL(img.url)) {
|
|
147
156
|
return;
|
|
148
157
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
158
|
+
if (!getBlock(clonedBlock.clientId)) {
|
|
159
|
+
// Ensure the block is only inserted once.
|
|
160
|
+
onClick({
|
|
161
|
+
...clonedBlock,
|
|
162
|
+
attributes: {
|
|
163
|
+
...clonedBlock.attributes,
|
|
164
|
+
id: img.id,
|
|
165
|
+
url: img.url
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
createSuccessNotice(__('Image uploaded and inserted.'), {
|
|
169
|
+
type: 'snackbar',
|
|
170
|
+
id: 'inserter-notice'
|
|
171
|
+
});
|
|
172
|
+
} else {
|
|
173
|
+
// For subsequent calls, update the existing block.
|
|
174
|
+
updateBlockAttributes(clonedBlock.clientId, {
|
|
152
175
|
...clonedBlock.attributes,
|
|
153
176
|
id: img.id,
|
|
154
177
|
url: img.url
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
createSuccessNotice(__('Image uploaded and inserted.'), {
|
|
158
|
-
type: 'snackbar'
|
|
159
|
-
});
|
|
178
|
+
});
|
|
179
|
+
}
|
|
160
180
|
setIsInserting(false);
|
|
161
181
|
},
|
|
162
182
|
allowedTypes: ALLOWED_MEDIA_TYPES,
|
|
163
183
|
onError(message) {
|
|
164
184
|
createErrorNotice(message, {
|
|
165
|
-
type: 'snackbar'
|
|
185
|
+
type: 'snackbar',
|
|
186
|
+
id: 'inserter-notice'
|
|
166
187
|
});
|
|
167
188
|
setIsInserting(false);
|
|
168
189
|
}
|
|
@@ -171,7 +192,7 @@ export function MediaPreview({
|
|
|
171
192
|
setShowExternalUploadModal(true);
|
|
172
193
|
setIsInserting(false);
|
|
173
194
|
});
|
|
174
|
-
}, [isInserting, getSettings, onClick, createSuccessNotice, createErrorNotice]);
|
|
195
|
+
}, [isInserting, getSettings, onClick, createSuccessNotice, updateBlockAttributes, createErrorNotice, getBlock]);
|
|
175
196
|
const title = typeof media.title === 'string' ? media.title : media.title?.rendered || __('no title');
|
|
176
197
|
let truncatedTitle;
|
|
177
198
|
if (title.length > MAXIMUM_TITLE_LENGTH) {
|
|
@@ -226,7 +247,8 @@ export function MediaPreview({
|
|
|
226
247
|
onSubmit: () => {
|
|
227
248
|
onClick(cloneBlock(block));
|
|
228
249
|
createSuccessNotice(__('Image inserted.'), {
|
|
229
|
-
type: 'snackbar'
|
|
250
|
+
type: 'snackbar',
|
|
251
|
+
id: 'inserter-notice'
|
|
230
252
|
});
|
|
231
253
|
setShowExternalUploadModal(false);
|
|
232
254
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","Tooltip","DropdownMenu","MenuGroup","MenuItem","Spinner","Modal","Flex","FlexItem","Button","Composite","__experimentalVStack","VStack","__","sprintf","useMemo","useCallback","useState","cloneBlock","moreVertical","external","useSelect","useDispatch","store","noticesStore","isBlobURL","InserterDraggableBlocks","getBlockAndPreviewFromMedia","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","MAXIMUM_TITLE_LENGTH","MEDIA_OPTIONS_POPOVER_PROPS","position","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","label","popoverProps","icon","children","onClick","window","open","focus","mediaType","InsertExternalImageModal","onClose","onSubmit","title","onRequestClose","spacing","justify","expanded","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","createErrorNotice","createSuccessNotice","getSettings","onMediaInsert","previewBlock","settings","clonedBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","filesList","additionalData","onFileChange","img","type","allowedTypes","onError","message","catch","rendered","truncatedTitle","length","omission","slice","onMouseEnter","onMouseLeave","isEnabled","blocks","draggable","onDragStart","onDragEnd","text","Item","render","role"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MAXIMUM_TITLE_LENGTH = 25;\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ blob ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t{ type: 'snackbar' }\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tcreateErrorNotice,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tlet truncatedTitle;\n\tif ( title.length > MAXIMUM_TITLE_LENGTH ) {\n\t\tconst omission = '...';\n\t\ttruncatedTitle =\n\t\t\ttitle.slice( 0, MAXIMUM_TITLE_LENGTH - omission.length ) + omission;\n\t}\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ truncatedTitle || title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","Tooltip","DropdownMenu","MenuGroup","MenuItem","Spinner","Modal","Flex","FlexItem","Button","Composite","__experimentalVStack","VStack","__","sprintf","useMemo","useCallback","useState","cloneBlock","moreVertical","external","useSelect","useDispatch","store","noticesStore","isBlobURL","getFilename","InserterDraggableBlocks","getBlockAndPreviewFromMedia","blockEditorStore","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ALLOWED_MEDIA_TYPES","MAXIMUM_TITLE_LENGTH","MEDIA_OPTIONS_POPOVER_PROPS","position","className","MediaPreviewOptions","category","media","getReportUrl","reportUrl","label","popoverProps","icon","children","onClick","window","open","focus","mediaType","InsertExternalImageModal","onClose","onSubmit","title","onRequestClose","spacing","justify","expanded","__next40pxDefaultSize","variant","MediaPreview","showExternalUploadModal","setShowExternalUploadModal","isHovered","setIsHovered","isInserting","setIsInserting","block","preview","createErrorNotice","createSuccessNotice","getSettings","getBlock","updateBlockAttributes","onMediaInsert","previewBlock","settings","clonedBlock","id","url","caption","attributes","mediaUpload","fetch","then","response","blob","fileName","file","File","type","filesList","additionalData","onFileChange","img","clientId","allowedTypes","onError","message","catch","rendered","truncatedTitle","length","omission","slice","onMouseEnter","onMouseLeave","isEnabled","blocks","draggable","onDragStart","onDragEnd","text","Item","render","role"],"sources":["@wordpress/block-editor/src/components/inserter/media-tab/media-preview.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tTooltip,\n\tDropdownMenu,\n\tMenuGroup,\n\tMenuItem,\n\tSpinner,\n\tModal,\n\tFlex,\n\tFlexItem,\n\tButton,\n\tComposite,\n\t__experimentalVStack as VStack,\n} from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useMemo, useCallback, useState } from '@wordpress/element';\nimport { cloneBlock } from '@wordpress/blocks';\nimport { moreVertical, external } from '@wordpress/icons';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { isBlobURL } from '@wordpress/blob';\nimport { getFilename } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport InserterDraggableBlocks from '../../inserter-draggable-blocks';\nimport { getBlockAndPreviewFromMedia } from './utils';\nimport { store as blockEditorStore } from '../../../store';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\nconst MAXIMUM_TITLE_LENGTH = 25;\nconst MEDIA_OPTIONS_POPOVER_PROPS = {\n\tposition: 'bottom left',\n\tclassName:\n\t\t'block-editor-inserter__media-list__item-preview-options__popover',\n};\n\nfunction MediaPreviewOptions( { category, media } ) {\n\tif ( ! category.getReportUrl ) {\n\t\treturn null;\n\t}\n\tconst reportUrl = category.getReportUrl( media );\n\treturn (\n\t\t<DropdownMenu\n\t\t\tclassName=\"block-editor-inserter__media-list__item-preview-options\"\n\t\t\tlabel={ __( 'Options' ) }\n\t\t\tpopoverProps={ MEDIA_OPTIONS_POPOVER_PROPS }\n\t\t\ticon={ moreVertical }\n\t\t>\n\t\t\t{ () => (\n\t\t\t\t<MenuGroup>\n\t\t\t\t\t<MenuItem\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\twindow.open( reportUrl, '_blank' ).focus()\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ sprintf(\n\t\t\t\t\t\t\t/* translators: %s: The media type to report e.g: \"image\", \"video\", \"audio\" */\n\t\t\t\t\t\t\t__( 'Report %s' ),\n\t\t\t\t\t\t\tcategory.mediaType\n\t\t\t\t\t\t) }\n\t\t\t\t\t</MenuItem>\n\t\t\t\t</MenuGroup>\n\t\t\t) }\n\t\t</DropdownMenu>\n\t);\n}\n\nfunction InsertExternalImageModal( { onClose, onSubmit } ) {\n\treturn (\n\t\t<Modal\n\t\t\ttitle={ __( 'Insert external image' ) }\n\t\t\tonRequestClose={ onClose }\n\t\t\tclassName=\"block-editor-inserter-media-tab-media-preview-inserter-external-image-modal\"\n\t\t>\n\t\t\t<VStack spacing={ 3 }>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'This image cannot be uploaded to your Media Library, but it can still be inserted as an external image.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t<p>\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'External images can be removed by the external provider without warning and could even have legal compliance issues related to privacy legislation.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t</VStack>\n\t\t\t<Flex\n\t\t\t\tclassName=\"block-editor-block-lock-modal__actions\"\n\t\t\t\tjustify=\"flex-end\"\n\t\t\t\texpanded={ false }\n\t\t\t>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<Button\n\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tonClick={ onSubmit }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t</FlexItem>\n\t\t\t</Flex>\n\t\t</Modal>\n\t);\n}\n\nexport function MediaPreview( { media, onClick, category } ) {\n\tconst [ showExternalUploadModal, setShowExternalUploadModal ] =\n\t\tuseState( false );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst [ isInserting, setIsInserting ] = useState( false );\n\tconst [ block, preview ] = useMemo(\n\t\t() => getBlockAndPreviewFromMedia( media, category.mediaType ),\n\t\t[ media, category.mediaType ]\n\t);\n\tconst { createErrorNotice, createSuccessNotice } =\n\t\tuseDispatch( noticesStore );\n\tconst { getSettings, getBlock } = useSelect( blockEditorStore );\n\tconst { updateBlockAttributes } = useDispatch( blockEditorStore );\n\n\tconst onMediaInsert = useCallback(\n\t\t( previewBlock ) => {\n\t\t\t// Prevent multiple uploads when we're in the process of inserting.\n\t\t\tif ( isInserting ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst settings = getSettings();\n\t\t\tconst clonedBlock = cloneBlock( previewBlock );\n\t\t\tconst { id, url, caption } = clonedBlock.attributes;\n\n\t\t\t// User has no permission to upload media.\n\t\t\tif ( ! id && ! settings.mediaUpload ) {\n\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Media item already exists in library, so just insert it.\n\t\t\tif ( !! id ) {\n\t\t\t\tonClick( clonedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsetIsInserting( true );\n\t\t\t// Media item does not exist in library, so try to upload it.\n\t\t\t// Fist fetch the image data. This may fail if the image host\n\t\t\t// doesn't allow CORS with the domain.\n\t\t\t// If this happens, we insert the image block using the external\n\t\t\t// URL and let the user know about the possible implications.\n\t\t\twindow\n\t\t\t\t.fetch( url )\n\t\t\t\t.then( ( response ) => response.blob() )\n\t\t\t\t.then( ( blob ) => {\n\t\t\t\t\tconst fileName = getFilename( url ) || 'image.jpg';\n\t\t\t\t\tconst file = new File( [ blob ], fileName, {\n\t\t\t\t\t\ttype: blob.type,\n\t\t\t\t\t} );\n\n\t\t\t\t\tsettings.mediaUpload( {\n\t\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\t\tadditionalData: { caption },\n\t\t\t\t\t\tonFileChange( [ img ] ) {\n\t\t\t\t\t\t\tif ( isBlobURL( img.url ) ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif ( ! getBlock( clonedBlock.clientId ) ) {\n\t\t\t\t\t\t\t\t// Ensure the block is only inserted once.\n\t\t\t\t\t\t\t\tonClick( {\n\t\t\t\t\t\t\t\t\t...clonedBlock,\n\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t\t\t\t\t__( 'Image uploaded and inserted.' ),\n\t\t\t\t\t\t\t\t\t{ type: 'snackbar', id: 'inserter-notice' }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// For subsequent calls, update the existing block.\n\t\t\t\t\t\t\t\tupdateBlockAttributes( clonedBlock.clientId, {\n\t\t\t\t\t\t\t\t\t...clonedBlock.attributes,\n\t\t\t\t\t\t\t\t\tid: img.id,\n\t\t\t\t\t\t\t\t\turl: img.url,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t\t\tonError( message ) {\n\t\t\t\t\t\t\tcreateErrorNotice( message, {\n\t\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t\t\t},\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\tsetShowExternalUploadModal( true );\n\t\t\t\t\tsetIsInserting( false );\n\t\t\t\t} );\n\t\t},\n\t\t[\n\t\t\tisInserting,\n\t\t\tgetSettings,\n\t\t\tonClick,\n\t\t\tcreateSuccessNotice,\n\t\t\tupdateBlockAttributes,\n\t\t\tcreateErrorNotice,\n\t\t\tgetBlock,\n\t\t]\n\t);\n\n\tconst title =\n\t\ttypeof media.title === 'string'\n\t\t\t? media.title\n\t\t\t: media.title?.rendered || __( 'no title' );\n\n\tlet truncatedTitle;\n\tif ( title.length > MAXIMUM_TITLE_LENGTH ) {\n\t\tconst omission = '...';\n\t\ttruncatedTitle =\n\t\t\ttitle.slice( 0, MAXIMUM_TITLE_LENGTH - omission.length ) + omission;\n\t}\n\tconst onMouseEnter = useCallback( () => setIsHovered( true ), [] );\n\tconst onMouseLeave = useCallback( () => setIsHovered( false ), [] );\n\treturn (\n\t\t<>\n\t\t\t<InserterDraggableBlocks isEnabled blocks={ [ block ] }>\n\t\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t'block-editor-inserter__media-list__list-item',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-hovered': isHovered,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\t\tonDragStart={ onDragStart }\n\t\t\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ /* Adding `is-hovered` class to the wrapper element is needed\n\t\t\t\t\t\tbecause the options Popover is rendered outside of this node. */ }\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\t\t\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Tooltip text={ truncatedTitle || title }>\n\t\t\t\t\t\t\t\t<Composite.Item\n\t\t\t\t\t\t\t\t\trender={\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\taria-label={ title }\n\t\t\t\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"block-editor-inserter__media-list__item\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tonClick={ () => onMediaInsert( block ) }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview\">\n\t\t\t\t\t\t\t\t\t\t{ preview }\n\t\t\t\t\t\t\t\t\t\t{ isInserting && (\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"block-editor-inserter__media-list__item-preview-spinner\">\n\t\t\t\t\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</Composite.Item>\n\t\t\t\t\t\t\t</Tooltip>\n\t\t\t\t\t\t\t{ ! isInserting && (\n\t\t\t\t\t\t\t\t<MediaPreviewOptions\n\t\t\t\t\t\t\t\t\tcategory={ category }\n\t\t\t\t\t\t\t\t\tmedia={ media }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</InserterDraggableBlocks>\n\t\t\t{ showExternalUploadModal && (\n\t\t\t\t<InsertExternalImageModal\n\t\t\t\t\tonClose={ () => setShowExternalUploadModal( false ) }\n\t\t\t\t\tonSubmit={ () => {\n\t\t\t\t\t\tonClick( cloneBlock( block ) );\n\t\t\t\t\t\tcreateSuccessNotice( __( 'Image inserted.' ), {\n\t\t\t\t\t\t\ttype: 'snackbar',\n\t\t\t\t\t\t\tid: 'inserter-notice',\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tsetShowExternalUploadModal( false );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -79,11 +79,11 @@ function InserterMenu({
|
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
81
|
}, [onInsertBlocks, onSelect, shouldFocusBlock]);
|
|
82
|
-
const onInsertPattern = useCallback((blocks, patternName) => {
|
|
82
|
+
const onInsertPattern = useCallback((blocks, patternName, ...args) => {
|
|
83
83
|
onToggleInsertionPoint(false);
|
|
84
84
|
onInsertBlocks(blocks, {
|
|
85
85
|
patternName
|
|
86
|
-
});
|
|
86
|
+
}, ...args);
|
|
87
87
|
onSelect();
|
|
88
88
|
}, [onInsertBlocks, onSelect]);
|
|
89
89
|
const onHover = useCallback(item => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","forwardRef","useState","useCallback","useMemo","useRef","useLayoutEffect","VisuallyHidden","SearchControl","Popover","__","useDebouncedInput","useSelect","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTab","PatternCategoryPreviews","MediaTab","MediaCategoryPanel","InserterSearchResults","useInsertionPoint","store","blockEditorStore","TabbedSidebar","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","onPatternCategorySelection","onClose","__experimentalInitialTab","__experimentalInitialCategory","ref","isZoomOutMode","select","__unstableGetEditorMode","filterValue","setFilterValue","delayedFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","getInitialTab","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","blockTypesTabRef","onInsert","blocks","meta","shouldForceFocusBlock","_rootClientId","window","requestAnimationFrame","current","contains","ownerDocument","activeElement","querySelector","focus","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","filter","showPatternPanel","showMediaPanel","inserterSearch","children","__nextHasNoMarginBottom","className","onChange","value","label","placeholder","showBlockDirectory","prioritizePatterns","blocksTab","as","patternsTab","onSelectCategory","selectedCategory","category","showTitlesAsTooltip","mediaTab","handleSetSelectedTab","tabsRef","closeButtonLabel","tabs","name","title","panel","placement","offset","focusOnMount","animate","PrivateInserterMenu","PublicInserterMenu","props"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDebouncedInput } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviews } from './block-patterns-tab/pattern-category-previews';\nimport { MediaTab, MediaCategoryPanel } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport { store as blockEditorStore } from '../../store';\nimport TabbedSidebar from '../tabbed-sidebar';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\tonPatternCategorySelection,\n\t\tonClose,\n\t\t__experimentalInitialTab,\n\t\t__experimentalInitialCategory,\n\t},\n\tref\n) {\n\tconst isZoomOutMode = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\t__experimentalInitialCategory\n\t);\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tfunction getInitialTab() {\n\t\tif ( __experimentalInitialTab ) {\n\t\t\treturn __experimentalInitialTab;\n\t\t}\n\n\t\tif ( isZoomOutMode ) {\n\t\t\treturn 'patterns';\n\t\t}\n\t}\n\tconst [ selectedTab, setSelectedTab ] = useState( getInitialTab() );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\tconst blockTypesTabRef = useRef();\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock, _rootClientId ) => {\n\t\t\tonInsertBlocks(\n\t\t\t\tblocks,\n\t\t\t\tmeta,\n\t\t\t\tshouldForceFocusBlock,\n\t\t\t\t_rootClientId\n\t\t\t);\n\t\t\tonSelect( blocks );\n\n\t\t\t// Check for focus loss due to filtering blocks by selected block type\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tif (\n\t\t\t\t\t! shouldFocusBlock &&\n\t\t\t\t\t! blockTypesTabRef.current?.contains(\n\t\t\t\t\t\tref.current.ownerDocument.activeElement\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\t// There has been a focus loss, so focus the first button in the block types tab\n\t\t\t\t\tblockTypesTabRef.current?.querySelector( 'button' ).focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t\t[ onInsertBlocks, onSelect, shouldFocusBlock ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\n\t\t\tonToggleInsertionPoint( false );\n\t\t\tonInsertBlocks( blocks, { patternName } );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tonPatternCategorySelection?.();\n\t\t},\n\t\t[ setSelectedPatternCategory, onPatternCategorySelection ]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\t!! selectedPatternCategory;\n\n\tconst showMediaPanel = selectedTab === 'media' && !! selectedMediaCategory;\n\n\tconst inserterSearch = useMemo( () => {\n\t\tif ( selectedTab === 'media' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) {\n\t\t\t\t\t\t\tsetHoveredItem( null );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\tprioritizePatterns={ selectedTab === 'patterns' }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tselectedTab,\n\t\thoveredItem,\n\t\tsetHoveredItem,\n\t\tsetFilterValue,\n\t\tfilterValue,\n\t\tdelayedFilterValue,\n\t\tonSelect,\n\t\tonHover,\n\t\tshouldFocusBlock,\n\t\tclientId,\n\t\trootClientId,\n\t\t__experimentalInsertionIndex,\n\t\tisAppender,\n\t] );\n\n\tconst blocksTab = useMemo( () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\tref={ blockTypesTabRef }\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<Tips />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tonHover,\n\t\tshowMostUsedBlocks,\n\t\tshowInserterHelpPanel,\n\t] );\n\n\tconst patternsTab = useMemo( () => {\n\t\treturn (\n\t\t\t<BlockPatternsTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t>\n\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t<PatternCategoryPreviews\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPatternsTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsertPattern,\n\t\tonClickPatternCategory,\n\t\tpatternFilter,\n\t\tselectedPatternCategory,\n\t\tshowPatternPanel,\n\t] );\n\n\tconst mediaTab = useMemo( () => {\n\t\treturn (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t>\n\t\t\t\t{ showMediaPanel && (\n\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</MediaTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tselectedMediaCategory,\n\t\tsetSelectedMediaCategory,\n\t\tshowMediaPanel,\n\t] );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\t// Focus first active tab, if any\n\tconst tabsRef = useRef();\n\tuseLayoutEffect( () => {\n\t\tif ( tabsRef.current ) {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\ttabsRef.current\n\t\t\t\t\t.querySelector( '[role=\"tab\"][aria-selected=\"true\"]' )\n\t\t\t\t\t?.focus();\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel || showMediaPanel,\n\t\t\t\t'is-zoom-out': isZoomOutMode,\n\t\t\t} ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t<TabbedSidebar\n\t\t\t\t\tref={ tabsRef }\n\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\tselectedTab={ selectedTab }\n\t\t\t\t\tcloseButtonLabel={ __( 'Close block inserter' ) }\n\t\t\t\t\ttabs={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'blocks',\n\t\t\t\t\t\t\ttitle: __( 'Blocks' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'blocks' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tblocksTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'patterns',\n\t\t\t\t\t\t\ttitle: __( 'Patterns' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'patterns' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tpatternsTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'media',\n\t\t\t\t\t\t\ttitle: __( 'Media' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ mediaTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const PrivateInserterMenu = forwardRef( InserterMenu );\n\nfunction PublicInserterMenu( props, ref ) {\n\treturn (\n\t\t<PrivateInserterMenu\n\t\t\t{ ...props }\n\t\t\tonPatternCategorySelection={ NOOP }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PublicInserterMenu );\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["clsx","forwardRef","useState","useCallback","useMemo","useRef","useLayoutEffect","VisuallyHidden","SearchControl","Popover","__","useDebouncedInput","useSelect","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTab","PatternCategoryPreviews","MediaTab","MediaCategoryPanel","InserterSearchResults","useInsertionPoint","store","blockEditorStore","TabbedSidebar","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","NOOP","InserterMenu","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","onPatternCategorySelection","onClose","__experimentalInitialTab","__experimentalInitialCategory","ref","isZoomOutMode","select","__unstableGetEditorMode","filterValue","setFilterValue","delayedFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","patternFilter","setPatternFilter","selectedMediaCategory","setSelectedMediaCategory","getInitialTab","selectedTab","setSelectedTab","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","blockTypesTabRef","onInsert","blocks","meta","shouldForceFocusBlock","_rootClientId","window","requestAnimationFrame","current","contains","ownerDocument","activeElement","querySelector","focus","onInsertPattern","patternName","args","onHover","item","onClickPatternCategory","patternCategory","filter","showPatternPanel","showMediaPanel","inserterSearch","children","__nextHasNoMarginBottom","className","onChange","value","label","placeholder","showBlockDirectory","prioritizePatterns","blocksTab","as","patternsTab","onSelectCategory","selectedCategory","category","showTitlesAsTooltip","mediaTab","handleSetSelectedTab","tabsRef","closeButtonLabel","tabs","name","title","panel","placement","offset","focusOnMount","animate","PrivateInserterMenu","PublicInserterMenu","props"],"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseLayoutEffect,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl, Popover } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useDebouncedInput } from '@wordpress/compose';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport Tips from './tips';\nimport InserterPreviewPanel from './preview-panel';\nimport BlockTypesTab from './block-types-tab';\nimport BlockPatternsTab from './block-patterns-tab';\nimport { PatternCategoryPreviews } from './block-patterns-tab/pattern-category-previews';\nimport { MediaTab, MediaCategoryPanel } from './media-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport { store as blockEditorStore } from '../../store';\nimport TabbedSidebar from '../tabbed-sidebar';\n\nconst NOOP = () => {};\nfunction InserterMenu(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\t__experimentalInsertionIndex,\n\t\tonSelect,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks,\n\t\t__experimentalFilterValue = '',\n\t\tshouldFocusBlock = true,\n\t\tonPatternCategorySelection,\n\t\tonClose,\n\t\t__experimentalInitialTab,\n\t\t__experimentalInitialCategory,\n\t},\n\tref\n) {\n\tconst isZoomOutMode = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).__unstableGetEditorMode() === 'zoom-out',\n\t\t[]\n\t);\n\tconst [ filterValue, setFilterValue, delayedFilterValue ] =\n\t\tuseDebouncedInput( __experimentalFilterValue );\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\t__experimentalInitialCategory\n\t);\n\tconst [ patternFilter, setPatternFilter ] = useState( 'all' );\n\tconst [ selectedMediaCategory, setSelectedMediaCategory ] =\n\t\tuseState( null );\n\tfunction getInitialTab() {\n\t\tif ( __experimentalInitialTab ) {\n\t\t\treturn __experimentalInitialTab;\n\t\t}\n\n\t\tif ( isZoomOutMode ) {\n\t\t\treturn 'patterns';\n\t\t}\n\t}\n\tconst [ selectedTab, setSelectedTab ] = useState( getInitialTab() );\n\n\tconst [ destinationRootClientId, onInsertBlocks, onToggleInsertionPoint ] =\n\t\tuseInsertionPoint( {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\t\tshouldFocusBlock,\n\t\t} );\n\tconst blockTypesTabRef = useRef();\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock, _rootClientId ) => {\n\t\t\tonInsertBlocks(\n\t\t\t\tblocks,\n\t\t\t\tmeta,\n\t\t\t\tshouldForceFocusBlock,\n\t\t\t\t_rootClientId\n\t\t\t);\n\t\t\tonSelect( blocks );\n\n\t\t\t// Check for focus loss due to filtering blocks by selected block type\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tif (\n\t\t\t\t\t! shouldFocusBlock &&\n\t\t\t\t\t! blockTypesTabRef.current?.contains(\n\t\t\t\t\t\tref.current.ownerDocument.activeElement\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\t// There has been a focus loss, so focus the first button in the block types tab\n\t\t\t\t\tblockTypesTabRef.current?.querySelector( 'button' ).focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t},\n\t\t[ onInsertBlocks, onSelect, shouldFocusBlock ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName, ...args ) => {\n\t\t\tonToggleInsertionPoint( false );\n\t\t\tonInsertBlocks( blocks, { patternName }, ...args );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onHover = useCallback(\n\t\t( item ) => {\n\t\t\tonToggleInsertionPoint( item );\n\t\t\tsetHoveredItem( item );\n\t\t},\n\t\t[ onToggleInsertionPoint, setHoveredItem ]\n\t);\n\n\tconst onClickPatternCategory = useCallback(\n\t\t( patternCategory, filter ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t\tsetPatternFilter( filter );\n\t\t\tonPatternCategorySelection?.();\n\t\t},\n\t\t[ setSelectedPatternCategory, onPatternCategorySelection ]\n\t);\n\n\tconst showPatternPanel =\n\t\tselectedTab === 'patterns' &&\n\t\t! delayedFilterValue &&\n\t\t!! selectedPatternCategory;\n\n\tconst showMediaPanel = selectedTab === 'media' && !! selectedMediaCategory;\n\n\tconst inserterSearch = useMemo( () => {\n\t\tif ( selectedTab === 'media' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tif ( hoveredItem ) {\n\t\t\t\t\t\t\tsetHoveredItem( null );\n\t\t\t\t\t\t}\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t\t{ !! delayedFilterValue && (\n\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\tfilterValue={ delayedFilterValue }\n\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t}\n\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\tprioritizePatterns={ selectedTab === 'patterns' }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tselectedTab,\n\t\thoveredItem,\n\t\tsetHoveredItem,\n\t\tsetFilterValue,\n\t\tfilterValue,\n\t\tdelayedFilterValue,\n\t\tonSelect,\n\t\tonHover,\n\t\tshouldFocusBlock,\n\t\tclientId,\n\t\trootClientId,\n\t\t__experimentalInsertionIndex,\n\t\tisAppender,\n\t] );\n\n\tconst blocksTab = useMemo( () => {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-inserter__block-list\">\n\t\t\t\t\t<BlockTypesTab\n\t\t\t\t\t\tref={ blockTypesTabRef }\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ showInserterHelpPanel && (\n\t\t\t\t\t<div className=\"block-editor-inserter__tips\">\n\t\t\t\t\t\t<VisuallyHidden as=\"h2\">\n\t\t\t\t\t\t\t{ __( 'A tip for using the block editor' ) }\n\t\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t\t\t<Tips />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tonHover,\n\t\tshowMostUsedBlocks,\n\t\tshowInserterHelpPanel,\n\t] );\n\n\tconst patternsTab = useMemo( () => {\n\t\treturn (\n\t\t\t<BlockPatternsTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonSelectCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t>\n\t\t\t\t{ showPatternPanel && (\n\t\t\t\t\t<PatternCategoryPreviews\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\t\t\tcategory={ selectedPatternCategory }\n\t\t\t\t\t\tpatternFilter={ patternFilter }\n\t\t\t\t\t\tshowTitlesAsTooltip\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</BlockPatternsTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsertPattern,\n\t\tonClickPatternCategory,\n\t\tpatternFilter,\n\t\tselectedPatternCategory,\n\t\tshowPatternPanel,\n\t] );\n\n\tconst mediaTab = useMemo( () => {\n\t\treturn (\n\t\t\t<MediaTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tselectedCategory={ selectedMediaCategory }\n\t\t\t\tonSelectCategory={ setSelectedMediaCategory }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t>\n\t\t\t\t{ showMediaPanel && (\n\t\t\t\t\t<MediaCategoryPanel\n\t\t\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\t\t\tonInsert={ onInsert }\n\t\t\t\t\t\tcategory={ selectedMediaCategory }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</MediaTab>\n\t\t);\n\t}, [\n\t\tdestinationRootClientId,\n\t\tonInsert,\n\t\tselectedMediaCategory,\n\t\tsetSelectedMediaCategory,\n\t\tshowMediaPanel,\n\t] );\n\n\tconst handleSetSelectedTab = ( value ) => {\n\t\t// If no longer on patterns tab remove the category setting.\n\t\tif ( value !== 'patterns' ) {\n\t\t\tsetSelectedPatternCategory( null );\n\t\t}\n\t\tsetSelectedTab( value );\n\t};\n\n\t// Focus first active tab, if any\n\tconst tabsRef = useRef();\n\tuseLayoutEffect( () => {\n\t\tif ( tabsRef.current ) {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\ttabsRef.current\n\t\t\t\t\t.querySelector( '[role=\"tab\"][aria-selected=\"true\"]' )\n\t\t\t\t\t?.focus();\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__menu', {\n\t\t\t\t'show-panel': showPatternPanel || showMediaPanel,\n\t\t\t\t'is-zoom-out': isZoomOutMode,\n\t\t\t} ) }\n\t\t\tref={ ref }\n\t\t>\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t<TabbedSidebar\n\t\t\t\t\tref={ tabsRef }\n\t\t\t\t\tonSelect={ handleSetSelectedTab }\n\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\tselectedTab={ selectedTab }\n\t\t\t\t\tcloseButtonLabel={ __( 'Close block inserter' ) }\n\t\t\t\t\ttabs={ [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'blocks',\n\t\t\t\t\t\t\ttitle: __( 'Blocks' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'blocks' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tblocksTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'patterns',\n\t\t\t\t\t\t\ttitle: __( 'Patterns' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ selectedTab === 'patterns' &&\n\t\t\t\t\t\t\t\t\t\t! delayedFilterValue &&\n\t\t\t\t\t\t\t\t\t\tpatternsTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'media',\n\t\t\t\t\t\t\ttitle: __( 'Media' ),\n\t\t\t\t\t\t\tpanel: (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{ inserterSearch }\n\t\t\t\t\t\t\t\t\t{ mediaTab }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t},\n\t\t\t\t\t] }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<Popover\n\t\t\t\t\tclassName=\"block-editor-inserter__preview-container__popover\"\n\t\t\t\t\tplacement=\"right-start\"\n\t\t\t\t\toffset={ 16 }\n\t\t\t\t\tfocusOnMount={ false }\n\t\t\t\t\tanimate={ false }\n\t\t\t\t>\n\t\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport const PrivateInserterMenu = forwardRef( InserterMenu );\n\nfunction PublicInserterMenu( props, ref ) {\n\treturn (\n\t\t<PrivateInserterMenu\n\t\t\t{ ...props }\n\t\t\tonPatternCategorySelection={ NOOP }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( PublicInserterMenu );\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* WordPress dependencies
|
|
3
3
|
*/
|
|
4
4
|
import { __, isRTL } from '@wordpress/i18n';
|
|
5
|
-
import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalSpacer as Spacer, __experimentalHeading as Heading, __experimentalView as View,
|
|
5
|
+
import { __experimentalItemGroup as ItemGroup, __experimentalItem as Item, __experimentalHStack as HStack, __experimentalVStack as VStack, __experimentalSpacer as Spacer, __experimentalHeading as Heading, __experimentalView as View, Navigator, FlexBlock } from '@wordpress/components';
|
|
6
6
|
import { Icon, chevronRight, chevronLeft } from '@wordpress/icons';
|
|
7
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
8
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -18,7 +18,7 @@ function ScreenHeader({
|
|
|
18
18
|
paddingY: 3,
|
|
19
19
|
children: /*#__PURE__*/_jsxs(HStack, {
|
|
20
20
|
spacing: 2,
|
|
21
|
-
children: [/*#__PURE__*/_jsx(
|
|
21
|
+
children: [/*#__PURE__*/_jsx(Navigator.BackButton, {
|
|
22
22
|
style:
|
|
23
23
|
// TODO: This style override is also used in ToolsPanelHeader.
|
|
24
24
|
// It should be supported out-of-the-box by Button.
|
|
@@ -44,13 +44,13 @@ export default function MobileTabNavigation({
|
|
|
44
44
|
categories,
|
|
45
45
|
children
|
|
46
46
|
}) {
|
|
47
|
-
return /*#__PURE__*/_jsxs(
|
|
47
|
+
return /*#__PURE__*/_jsxs(Navigator, {
|
|
48
48
|
initialPath: "/",
|
|
49
49
|
className: "block-editor-inserter__mobile-tab-navigation",
|
|
50
|
-
children: [/*#__PURE__*/_jsx(
|
|
50
|
+
children: [/*#__PURE__*/_jsx(Navigator.Screen, {
|
|
51
51
|
path: "/",
|
|
52
52
|
children: /*#__PURE__*/_jsx(ItemGroup, {
|
|
53
|
-
children: categories.map(category => /*#__PURE__*/_jsx(
|
|
53
|
+
children: categories.map(category => /*#__PURE__*/_jsx(Navigator.Button, {
|
|
54
54
|
path: `/category/${category.name}`,
|
|
55
55
|
as: Item,
|
|
56
56
|
isAction: true,
|
|
@@ -63,7 +63,7 @@ export default function MobileTabNavigation({
|
|
|
63
63
|
})
|
|
64
64
|
}, category.name))
|
|
65
65
|
})
|
|
66
|
-
}), categories.map(category => /*#__PURE__*/_jsxs(
|
|
66
|
+
}), categories.map(category => /*#__PURE__*/_jsxs(Navigator.Screen, {
|
|
67
67
|
path: `/category/${category.name}`,
|
|
68
68
|
children: [/*#__PURE__*/_jsx(ScreenHeader, {
|
|
69
69
|
title: __('Back')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__","isRTL","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalSpacer","Spacer","__experimentalHeading","Heading","__experimentalView","View","
|
|
1
|
+
{"version":3,"names":["__","isRTL","__experimentalItemGroup","ItemGroup","__experimentalItem","Item","__experimentalHStack","HStack","__experimentalVStack","VStack","__experimentalSpacer","Spacer","__experimentalHeading","Heading","__experimentalView","View","Navigator","FlexBlock","Icon","chevronRight","chevronLeft","jsx","_jsx","jsxs","_jsxs","ScreenHeader","title","spacing","children","marginBottom","paddingX","paddingY","BackButton","style","minWidth","padding","icon","size","label","level","MobileTabNavigation","categories","initialPath","className","Screen","path","map","category","Button","name","as","isAction"],"sources":["@wordpress/block-editor/src/components/inserter/mobile-tab-navigation.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport {\n\t__experimentalItemGroup as ItemGroup,\n\t__experimentalItem as Item,\n\t__experimentalHStack as HStack,\n\t__experimentalVStack as VStack,\n\t__experimentalSpacer as Spacer,\n\t__experimentalHeading as Heading,\n\t__experimentalView as View,\n\tNavigator,\n\tFlexBlock,\n} from '@wordpress/components';\nimport { Icon, chevronRight, chevronLeft } from '@wordpress/icons';\n\nfunction ScreenHeader( { title } ) {\n\treturn (\n\t\t<VStack spacing={ 0 }>\n\t\t\t<View>\n\t\t\t\t<Spacer marginBottom={ 0 } paddingX={ 4 } paddingY={ 3 }>\n\t\t\t\t\t<HStack spacing={ 2 }>\n\t\t\t\t\t\t<Navigator.BackButton\n\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t// TODO: This style override is also used in ToolsPanelHeader.\n\t\t\t\t\t\t\t\t// It should be supported out-of-the-box by Button.\n\t\t\t\t\t\t\t\t{ minWidth: 24, padding: 0 }\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ticon={ isRTL() ? chevronRight : chevronLeft }\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tlabel={ __( 'Back' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Spacer>\n\t\t\t\t\t\t\t<Heading level={ 5 }>{ title }</Heading>\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t</HStack>\n\t\t\t\t</Spacer>\n\t\t\t</View>\n\t\t</VStack>\n\t);\n}\n\nexport default function MobileTabNavigation( { categories, children } ) {\n\treturn (\n\t\t<Navigator\n\t\t\tinitialPath=\"/\"\n\t\t\tclassName=\"block-editor-inserter__mobile-tab-navigation\"\n\t\t>\n\t\t\t<Navigator.Screen path=\"/\">\n\t\t\t\t<ItemGroup>\n\t\t\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t\t\t<Navigator.Button\n\t\t\t\t\t\t\tkey={ category.name }\n\t\t\t\t\t\t\tpath={ `/category/${ category.name }` }\n\t\t\t\t\t\t\tas={ Item }\n\t\t\t\t\t\t\tisAction\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<HStack>\n\t\t\t\t\t\t\t\t<FlexBlock>{ category.label }</FlexBlock>\n\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\tisRTL() ? chevronLeft : chevronRight\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</HStack>\n\t\t\t\t\t\t</Navigator.Button>\n\t\t\t\t\t) ) }\n\t\t\t\t</ItemGroup>\n\t\t\t</Navigator.Screen>\n\t\t\t{ categories.map( ( category ) => (\n\t\t\t\t<Navigator.Screen\n\t\t\t\t\tkey={ category.name }\n\t\t\t\t\tpath={ `/category/${ category.name }` }\n\t\t\t\t>\n\t\t\t\t\t<ScreenHeader title={ __( 'Back' ) } />\n\t\t\t\t\t{ children( category ) }\n\t\t\t\t</Navigator.Screen>\n\t\t\t) ) }\n\t\t</Navigator>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -43,7 +43,7 @@ export default function QuickInserter({
|
|
|
43
43
|
selectBlockOnInsert
|
|
44
44
|
});
|
|
45
45
|
const [blockTypes] = useBlockTypesState(destinationRootClientId, onInsertBlocks, true);
|
|
46
|
-
const [patterns] = usePatternsState(onInsertBlocks, destinationRootClientId);
|
|
46
|
+
const [patterns] = usePatternsState(onInsertBlocks, destinationRootClientId, undefined, true);
|
|
47
47
|
const {
|
|
48
48
|
setInserterIsOpened,
|
|
49
49
|
insertionIndex
|
|
@@ -73,10 +73,10 @@ export default function QuickInserter({
|
|
|
73
73
|
// the insertion point can work as expected.
|
|
74
74
|
const onBrowseAll = () => {
|
|
75
75
|
setInserterIsOpened({
|
|
76
|
-
rootClientId,
|
|
77
|
-
insertionIndex,
|
|
78
76
|
filterValue,
|
|
79
|
-
onSelect
|
|
77
|
+
onSelect,
|
|
78
|
+
rootClientId,
|
|
79
|
+
insertionIndex
|
|
80
80
|
});
|
|
81
81
|
};
|
|
82
82
|
let maxBlockPatterns = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clsx","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","onBrowseAll","maxBlockPatterns","className","children","__nextHasNoMarginBottom","value","onChange","label","placeholder","maxBlockTypes","isDraggable","isQuick","__next40pxDefaultSize","onClick"],"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\nconst SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tprioritizePatterns,\n\tselectBlockOnInsert,\n\thasSearch = true,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tselectBlockOnInsert,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\ttrue\n\t);\n\
|
|
1
|
+
{"version":3,"names":["clsx","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","jsx","_jsx","jsxs","_jsxs","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","selectBlockOnInsert","hasSearch","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","undefined","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","onBrowseAll","maxBlockPatterns","className","children","__nextHasNoMarginBottom","value","onChange","label","placeholder","maxBlockTypes","isDraggable","isQuick","__next40pxDefaultSize","onClick"],"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Button, SearchControl } from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport usePatternsState from './hooks/use-patterns-state';\nimport useBlockTypesState from './hooks/use-block-types-state';\nimport { store as blockEditorStore } from '../../store';\n\nconst SEARCH_THRESHOLD = 6;\nconst SHOWN_BLOCK_TYPES = 6;\nconst SHOWN_BLOCK_PATTERNS = 2;\nconst SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION = 4;\n\nexport default function QuickInserter( {\n\tonSelect,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tprioritizePatterns,\n\tselectBlockOnInsert,\n\thasSearch = true,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tselectBlockOnInsert,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\ttrue\n\t);\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId,\n\t\tundefined,\n\t\ttrue\n\t);\n\n\tconst { setInserterIsOpened, insertionIndex } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getSettings, getBlockIndex, getBlockCount } =\n\t\t\t\tselect( blockEditorStore );\n\t\t\tconst settings = getSettings();\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tconst blockCount = getBlockCount();\n\n\t\t\treturn {\n\t\t\t\tsetInserterIsOpened: settings.__experimentalSetIsInserterOpened,\n\t\t\t\tinsertionIndex: index === -1 ? blockCount : index,\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst showPatterns =\n\t\tpatterns.length && ( !! filterValue || prioritizePatterns );\n\tconst showSearch =\n\t\thasSearch &&\n\t\t( ( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\t\t\tblockTypes.length > SEARCH_THRESHOLD );\n\n\tuseEffect( () => {\n\t\tif ( setInserterIsOpened ) {\n\t\t\tsetInserterIsOpened( false );\n\t\t}\n\t}, [ setInserterIsOpened ] );\n\n\t// When clicking Browse All select the appropriate block so as\n\t// the insertion point can work as expected.\n\tconst onBrowseAll = () => {\n\t\tsetInserterIsOpened( {\n\t\t\tfilterValue,\n\t\t\tonSelect,\n\t\t\trootClientId,\n\t\t\tinsertionIndex,\n\t\t} );\n\t};\n\n\tlet maxBlockPatterns = 0;\n\tif ( showPatterns ) {\n\t\tmaxBlockPatterns = prioritizePatterns\n\t\t\t? SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION\n\t\t\t: SHOWN_BLOCK_PATTERNS;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ clsx( 'block-editor-inserter__quick-inserter', {\n\t\t\t\t'has-search': showSearch,\n\t\t\t\t'has-expand': setInserterIsOpened,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ showSearch && (\n\t\t\t\t<SearchControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t} }\n\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<div className=\"block-editor-inserter__quick-inserter-results\">\n\t\t\t\t<InserterSearchResults\n\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\tmaxBlockPatterns={ maxBlockPatterns }\n\t\t\t\t\tmaxBlockTypes={ SHOWN_BLOCK_TYPES }\n\t\t\t\t\tisDraggable={ false }\n\t\t\t\t\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t\tselectBlockOnInsert={ selectBlockOnInsert }\n\t\t\t\t\tisQuick\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tclassName=\"block-editor-inserter__quick-inserter-expand\"\n\t\t\t\t\tonClick={ onBrowseAll }\n\t\t\t\t\taria-label={ __(\n\t\t\t\t\t\t'Browse all. This will open the main inserter panel in the editor toolbar.'\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Browse all' ) }\n\t\t\t\t</Button>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"],"mappings":"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","ignoreList":[]}
|