@wordpress/block-editor 9.2.0 → 9.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +1 -8
- package/build/autocompleters/block.js +3 -1
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-matrix-control/index.js +3 -7
- package/build/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-context/index.js.map +1 -1
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-draggable/index.native.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.native.js +54 -6
- package/build/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js +2 -2
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +2 -1
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.js.map +1 -1
- package/build/components/block-list/index.native.js +4 -3
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/layout.js +20 -5
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +5 -2
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
- package/build/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-list-appender/index.native.js.map +1 -1
- package/build/components/block-lock/modal.js +35 -5
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mover/button.js.map +1 -1
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-parent-selector/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +8 -26
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +3 -8
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-popover/inbetween.js +1 -1
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-popover/index.js +1 -1
- package/build/components/block-popover/index.js.map +1 -1
- package/build/components/block-preview/auto.js +21 -5
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-selection-clearer/index.js.map +1 -1
- package/build/components/block-settings-menu/block-edit-visually-button.js +70 -0
- package/build/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
- package/build/components/block-settings-menu/block-mode-toggle.js +4 -8
- package/build/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +10 -4
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu/index.js +6 -2
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +4 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +6 -3
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/menu-items.js +3 -7
- package/build/components/block-styles/menu-items.js.map +1 -1
- package/build/components/block-styles/preview.native.js +3 -1
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/index.js +7 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +8 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +15 -15
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/index.native.js.map +1 -1
- package/build/components/block-toolbar/utils.js +5 -8
- package/build/components/block-toolbar/utils.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/border-radius-control/index.js +2 -0
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/color-style-selector/index.js.map +1 -1
- package/build/components/colors/with-colors.js +1 -1
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +45 -39
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +2 -1
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build/components/copy-handler/index.js +17 -1
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +1 -1
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/default-block-appender/index.native.js.map +1 -1
- package/build/components/default-style-picker/index.js.map +1 -1
- package/build/components/duotone/components.js +145 -0
- package/build/components/duotone/components.js.map +1 -0
- package/build/components/duotone/index.js +40 -0
- package/build/components/duotone/index.js.map +1 -0
- package/build/components/duotone/utils.js +38 -0
- package/build/components/duotone/utils.js.map +1 -0
- package/build/components/duotone-control/index.js +17 -5
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/iframe/index.js +19 -6
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build/components/image-size-control/index.js +3 -1
- package/build/components/image-size-control/index.js.map +1 -1
- package/build/components/index.js +32 -0
- package/build/components/index.js.map +1 -1
- package/build/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build/components/inserter/index.js +3 -3
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js +3 -7
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/no-results.native.js.map +1 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-items.js +1 -1
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inspector-popover-header/index.js +56 -0
- package/build/components/inspector-popover-header/index.js.map +1 -0
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/index.js +5 -5
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-create-button.js +1 -3
- package/build/components/link-control/search-create-button.js.map +1 -1
- package/build/components/link-control/search-input.js +5 -3
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/settings-drawer.js +3 -7
- package/build/components/link-control/settings-drawer.js.map +1 -1
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +15 -7
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/drop-indicator.js +1 -1
- package/build/components/list-view/drop-indicator.js.map +1 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build/components/list-view/utils.js +1 -7
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.js +18 -6
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +4 -4
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +25 -17
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +1 -1
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/preview-options/index.js +4 -0
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/provider/use-block-sync.js +5 -3
- package/build/components/provider/use-block-sync.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +17 -16
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js +4 -8
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/rich-text/use-input-rules.js +4 -13
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +20 -5
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/ungroup-button/index.native.js +3 -7
- package/build/components/ungroup-button/index.native.js.map +1 -1
- package/build/components/url-input/index.js +14 -3
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/index.js +2 -1
- package/build/components/url-popover/index.js.map +1 -1
- package/build/components/use-block-display-information/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build/components/use-display-block-controls/index.native.js.map +1 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.native.js.map +1 -1
- package/build/components/use-setting/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +46 -14
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js +3 -47
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +1 -3
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/elements/index.js +11 -3
- package/build/elements/index.js.map +1 -1
- package/build/hooks/aria-label.js +71 -0
- package/build/hooks/aria-label.js.map +1 -0
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color-panel.native.js.map +1 -1
- package/build/hooks/color.js +2 -4
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/duotone.js +33 -160
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +11 -7
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +74 -8
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/utils.js +5 -3
- package/build/hooks/utils.js.map +1 -1
- package/build/index.js +7 -7
- package/build/index.js.map +1 -1
- package/build/layouts/flex.js +42 -38
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +10 -35
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/utils.js +35 -3
- package/build/layouts/utils.js.map +1 -1
- package/build/store/actions.js +24 -31
- package/build/store/actions.js.map +1 -1
- package/build/store/index.js +0 -4
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +23 -12
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +4 -4
- package/build/store/selectors.js.map +1 -1
- package/build/utils/pasting.js.map +1 -1
- package/build/utils/selection.js +34 -0
- package/build/utils/selection.js.map +1 -0
- package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-module/autocompleters/block.js +4 -1
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-matrix-control/index.js +2 -5
- package/build-module/components/block-alignment-matrix-control/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-context/index.js.map +1 -1
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-draggable/index.native.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.native.js +50 -6
- package/build-module/components/block-list/block-invalid-warning.native.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js +2 -2
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +2 -1
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.js.map +1 -1
- package/build-module/components/block-list/index.native.js +3 -1
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/layout.js +19 -4
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +5 -2
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-custom-class-name.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-selected-block-event-handlers.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-list-appender/index.native.js.map +1 -1
- package/build-module/components/block-lock/modal.js +37 -6
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mover/button.js.map +1 -1
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-parent-selector/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +9 -27
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +3 -8
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +1 -1
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-popover/index.js +1 -1
- package/build-module/components/block-popover/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +20 -5
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-selection-clearer/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-edit-visually-button.js +56 -0
- package/build-module/components/block-settings-menu/block-edit-visually-button.js.map +1 -0
- package/build-module/components/block-settings-menu/block-mode-toggle.js +4 -6
- package/build-module/components/block-settings-menu/block-mode-toggle.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +10 -3
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +6 -3
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +5 -2
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +5 -2
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/menu-items.js +3 -5
- package/build-module/components/block-styles/menu-items.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +3 -2
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/index.js +7 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +8 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +15 -14
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-toolbar/utils.js +3 -5
- package/build-module/components/block-toolbar/utils.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +2 -0
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/color-style-selector/index.js.map +1 -1
- package/build-module/components/colors/with-colors.js +2 -2
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +46 -40
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +2 -1
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -1
- package/build-module/components/copy-handler/index.js +18 -2
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +1 -1
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.native.js.map +1 -1
- package/build-module/components/default-style-picker/index.js.map +1 -1
- package/build-module/components/duotone/components.js +130 -0
- package/build-module/components/duotone/components.js.map +1 -0
- package/build-module/components/duotone/index.js +3 -0
- package/build-module/components/duotone/index.js.map +1 -0
- package/build-module/components/duotone/utils.js +30 -0
- package/build-module/components/duotone/utils.js.map +1 -0
- package/build-module/components/duotone-control/index.js +18 -6
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/iframe/index.js +19 -6
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -1
- package/build-module/components/image-size-control/index.js +4 -1
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +3 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/inner-blocks/use-inner-block-template-sync.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-insertion-point.js.map +1 -1
- package/build-module/components/inserter/hooks/use-patterns-state.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -2
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js +2 -5
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/no-results.native.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-items.js +2 -2
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inspector-popover-header/index.js +46 -0
- package/build-module/components/inspector-popover-header/index.js.map +1 -0
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +3 -2
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-create-button.js +1 -2
- package/build-module/components/link-control/search-create-button.js.map +1 -1
- package/build-module/components/link-control/search-input.js +3 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/settings-drawer.js +2 -5
- package/build-module/components/link-control/settings-drawer.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +16 -8
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/drop-indicator.js +1 -1
- package/build-module/components/list-view/drop-indicator.js.map +1 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/list-view/use-list-view-drop-zone.js.map +1 -1
- package/build-module/components/list-view/utils.js +1 -6
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +16 -3
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +5 -3
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +27 -18
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +1 -1
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/preview-options/index.js +4 -0
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/provider/use-block-sync.js +4 -1
- package/build-module/components/provider/use-block-sync.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +16 -16
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js +3 -5
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/rich-text/use-input-rules.js +3 -11
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/rich-text/use-mark-persistent.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +20 -5
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/ungroup-button/index.native.js +3 -5
- package/build-module/components/ungroup-button/index.native.js.map +1 -1
- package/build-module/components/url-input/index.js +11 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/index.js +2 -1
- package/build-module/components/url-popover/index.js.map +1 -1
- package/build-module/components/use-block-display-information/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.native.js.map +1 -1
- package/build-module/components/use-display-block-controls/index.native.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.native.js.map +1 -1
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +47 -14
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js +3 -45
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +1 -3
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/elements/index.js +7 -1
- package/build-module/elements/index.js.map +1 -1
- package/build-module/hooks/aria-label.js +59 -0
- package/build-module/hooks/aria-label.js.map +1 -0
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color-panel.native.js.map +1 -1
- package/build-module/hooks/color.js +2 -3
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/duotone.js +22 -140
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/index.js +2 -1
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +76 -10
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/utils.js +5 -2
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/flex.js +43 -35
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +11 -36
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/utils.js +33 -3
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/store/actions.js +14 -20
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/index.js +0 -4
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/reducer.js +23 -11
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +5 -5
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/pasting.js.map +1 -1
- package/build-module/utils/selection.js +24 -0
- package/build-module/utils/selection.js.map +1 -0
- package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-style/style-rtl.css +57 -34
- package/build-style/style.css +57 -34
- package/package.json +28 -28
- package/src/autocompleters/block.js +2 -1
- package/src/components/block-actions/index.js +2 -3
- package/src/components/block-alignment-control/ui.js +4 -6
- package/src/components/block-alignment-matrix-control/index.js +2 -4
- package/src/components/block-breadcrumb/index.js +2 -5
- package/src/components/block-compare/test/block-view.js +2 -1
- package/src/components/block-content-overlay/index.js +2 -5
- package/src/components/block-context/index.js +4 -4
- package/src/components/block-controls/hook.js +2 -3
- package/src/components/block-draggable/index.js +6 -13
- package/src/components/block-draggable/index.native.js +6 -14
- package/src/components/block-draggable/test/helpers.native.js +3 -3
- package/src/components/block-draggable/test/index.native.js +12 -15
- package/src/components/block-edit/test/edit.js +2 -1
- package/src/components/block-list/block-invalid-warning.native.js +42 -7
- package/src/components/block-list/block-list-item.native.js +4 -12
- package/src/components/block-list/block-selection-button.native.js +2 -3
- package/src/components/block-list/block.js +10 -12
- package/src/components/block-list/block.native.js +11 -15
- package/src/components/block-list/index.js +2 -3
- package/src/components/block-list/index.native.js +13 -22
- package/src/components/block-list/layout.js +15 -3
- package/src/components/block-list/style.scss +2 -2
- package/src/components/block-list/test/block-list-context.native.js +8 -16
- package/src/components/block-list/use-block-props/index.js +6 -3
- package/src/components/block-list/use-block-props/use-block-class-names.js +5 -1
- package/src/components/block-list/use-block-props/use-block-custom-class-name.js +2 -3
- package/src/components/block-list/use-block-props/use-selected-block-event-handlers.js +2 -3
- package/src/components/block-list/use-in-between-inserter.js +2 -3
- package/src/components/block-list-appender/index.js +2 -5
- package/src/components/block-list-appender/index.native.js +2 -3
- package/src/components/block-lock/modal.js +42 -4
- package/src/components/block-lock/style.scss +10 -0
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +4 -6
- package/src/components/block-mover/button.js +2 -3
- package/src/components/block-mover/index.native.js +4 -6
- package/src/components/block-parent-selector/index.js +2 -3
- package/src/components/block-pattern-setup/index.js +5 -27
- package/src/components/block-pattern-setup/setup-toolbar.js +2 -9
- package/src/components/block-pattern-setup/style.scss +4 -2
- package/src/components/block-popover/inbetween.js +1 -1
- package/src/components/block-popover/index.js +1 -1
- package/src/components/block-preview/auto.js +21 -11
- package/src/components/block-selection-clearer/index.js +2 -3
- package/src/components/block-settings-menu/block-edit-visually-button.js +52 -0
- package/src/components/block-settings-menu/block-mode-toggle.js +5 -8
- package/src/components/block-settings-menu/block-settings-dropdown.js +13 -9
- package/src/components/block-settings-menu/index.js +15 -11
- package/src/components/block-settings-menu-controls/index.js +3 -2
- package/src/components/block-styles/index.js +3 -1
- package/src/components/block-styles/menu-items.js +2 -5
- package/src/components/block-styles/preview.native.js +3 -2
- package/src/components/block-switcher/block-transformations-menu.js +2 -4
- package/src/components/block-switcher/index.js +7 -1
- package/src/components/block-title/index.js +3 -2
- package/src/components/block-title/use-block-display-title.js +20 -12
- package/src/components/block-toolbar/index.native.js +2 -5
- package/src/components/block-toolbar/utils.js +3 -11
- package/src/components/block-tools/block-contextual-toolbar.js +5 -6
- package/src/components/block-tools/index.js +2 -3
- package/src/components/block-types-list/index.native.js +2 -4
- package/src/components/block-variation-transforms/index.js +4 -6
- package/src/components/border-radius-control/index.js +2 -0
- package/src/components/color-palette/test/control.js +2 -1
- package/src/components/color-style-selector/index.js +27 -28
- package/src/components/colors/test/with-colors.js +14 -14
- package/src/components/colors/with-colors.js +10 -14
- package/src/components/colors-gradients/control.js +77 -65
- package/src/components/colors-gradients/dropdown.js +22 -16
- package/src/components/colors-gradients/style.scss +4 -0
- package/src/components/colors-gradients/test/control.js +25 -32
- package/src/components/convert-to-group-buttons/toolbar.js +2 -6
- package/src/components/copy-handler/README.md +7 -2
- package/src/components/copy-handler/index.js +26 -6
- package/src/components/date-format-picker/index.js +1 -0
- package/src/components/default-block-appender/index.js +4 -6
- package/src/components/default-block-appender/index.native.js +4 -9
- package/src/components/default-style-picker/index.js +20 -21
- package/src/components/duotone/components.js +133 -0
- package/src/components/duotone/index.js +7 -0
- package/src/components/duotone/utils.js +25 -0
- package/src/components/duotone-control/index.js +12 -7
- package/src/components/duotone-control/style.scss +5 -0
- package/src/components/font-sizes/with-font-sizes.js +2 -3
- package/src/components/iframe/index.js +25 -6
- package/src/components/image-editor/aspect-ratio-dropdown.js +2 -6
- package/src/components/image-size-control/index.js +4 -7
- package/src/components/index.js +3 -0
- package/src/components/inner-blocks/use-inner-block-template-sync.js +2 -3
- package/src/components/inner-blocks/use-nested-settings-update.js +6 -9
- package/src/components/inserter/block-types-tab.native.js +2 -3
- package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -3
- package/src/components/inserter/hooks/use-insertion-point.js +3 -2
- package/src/components/inserter/hooks/use-patterns-state.js +4 -5
- package/src/components/inserter/index.js +7 -11
- package/src/components/inserter/index.native.js +6 -11
- package/src/components/inserter/library.js +2 -5
- package/src/components/inserter/menu.js +14 -19
- package/src/components/inserter/menu.native.js +8 -6
- package/src/components/inserter/no-results.native.js +2 -1
- package/src/components/inserter/quick-inserter.js +2 -3
- package/src/components/inserter/search-items.js +6 -6
- package/src/components/inserter/search-results.native.js +4 -6
- package/src/components/inserter/style.scss +1 -1
- package/src/components/inspector-popover-header/README.md +76 -0
- package/src/components/inspector-popover-header/index.js +56 -0
- package/src/components/inspector-popover-header/style.scss +16 -0
- package/src/components/line-height-control/index.js +1 -2
- package/src/components/link-control/index.js +5 -4
- package/src/components/link-control/search-create-button.js +4 -2
- package/src/components/link-control/search-input.js +3 -1
- package/src/components/link-control/settings-drawer.js +2 -5
- package/src/components/link-control/test/fixtures/index.js +5 -7
- package/src/components/link-control/test/index.js +85 -106
- package/src/components/link-control/use-search-handler.js +2 -2
- package/src/components/list-view/block-contents.js +2 -4
- package/src/components/list-view/block-select-button.js +29 -14
- package/src/components/list-view/branch.js +22 -23
- package/src/components/list-view/drop-indicator.js +1 -1
- package/src/components/list-view/index.js +4 -8
- package/src/components/list-view/style.scss +18 -4
- package/src/components/list-view/use-block-selection.js +5 -5
- package/src/components/list-view/use-list-view-drop-zone.js +2 -1
- package/src/components/list-view/utils.js +1 -6
- package/src/components/media-placeholder/index.js +22 -1
- package/src/components/media-placeholder/index.native.js +9 -5
- package/src/components/media-replace-flow/index.js +78 -56
- package/src/components/media-replace-flow/test/index.js +14 -4
- package/src/components/media-upload/README.md +8 -0
- package/src/components/media-upload/index.native.js +1 -1
- package/src/components/navigable-toolbar/index.js +1 -2
- package/src/components/panel-color-settings/test/index.js +2 -1
- package/src/components/plain-text/index.native.js +2 -6
- package/src/components/preview-options/index.js +4 -0
- package/src/components/provider/use-block-sync.js +5 -2
- package/src/components/publish-date-time-picker/README.md +1 -1
- package/src/components/publish-date-time-picker/index.js +18 -27
- package/src/components/responsive-block-control/README.md +3 -1
- package/src/components/responsive-block-control/test/index.js +4 -4
- package/src/components/rich-text/embed-handler-picker.native.js +2 -5
- package/src/components/rich-text/index.js +7 -4
- package/src/components/rich-text/use-format-types.js +16 -16
- package/src/components/rich-text/use-input-rules.js +6 -15
- package/src/components/rich-text/use-mark-persistent.js +2 -3
- package/src/components/rich-text/use-paste-handler.js +17 -5
- package/src/components/skip-to-selected-block/index.js +2 -3
- package/src/components/ungroup-button/index.native.js +4 -8
- package/src/components/url-input/index.js +21 -20
- package/src/components/url-popover/index.js +1 -0
- package/src/components/url-popover/test/__snapshots__/index.js.snap +3 -0
- package/src/components/use-block-display-information/index.js +4 -6
- package/src/components/use-block-drop-zone/index.js +2 -3
- package/src/components/use-block-drop-zone/index.native.js +2 -4
- package/src/components/use-block-drop-zone/test/index.js +22 -23
- package/src/components/use-display-block-controls/index.native.js +2 -3
- package/src/components/use-no-recursive-renders/test/use-no-recursive-renders.js +2 -3
- package/src/components/use-on-block-drop/index.js +2 -5
- package/src/components/use-on-block-drop/index.native.js +4 -8
- package/src/components/use-setting/index.js +8 -6
- package/src/components/writing-flow/test/index.js +22 -4
- package/src/components/writing-flow/use-arrow-nav.js +54 -11
- package/src/components/writing-flow/use-click-selection.js +2 -5
- package/src/components/writing-flow/use-drag-selection.js +6 -9
- package/src/components/writing-flow/use-multi-selection.js +1 -50
- package/src/components/writing-flow/use-select-all.js +2 -5
- package/src/components/writing-flow/use-selection-observer.js +6 -9
- package/src/components/writing-flow/use-tab-nav.js +2 -5
- package/src/elements/index.js +8 -1
- package/src/elements/test/index.js +18 -0
- package/src/hooks/aria-label.js +67 -0
- package/src/hooks/color-panel.js +4 -4
- package/src/hooks/color-panel.native.js +2 -2
- package/src/hooks/color.js +12 -5
- package/src/hooks/duotone.js +18 -139
- package/src/hooks/font-family.js +4 -2
- package/src/hooks/gap.js +2 -3
- package/src/hooks/index.js +2 -1
- package/src/hooks/layout.js +102 -15
- package/src/hooks/test/align.js +2 -1
- package/src/hooks/test/generated-class-name.js +2 -5
- package/src/hooks/test/utils.js +2 -5
- package/src/hooks/utils.js +7 -3
- package/src/index.js +1 -1
- package/src/layouts/flex.js +49 -43
- package/src/layouts/flow.js +14 -35
- package/src/layouts/test/flex.js +21 -0
- package/src/layouts/test/flow.js +21 -0
- package/src/layouts/test/utils.js +138 -0
- package/src/layouts/utils.js +44 -3
- package/src/store/actions.js +763 -733
- package/src/store/index.js +0 -4
- package/src/store/reducer.js +208 -184
- package/src/store/selectors.js +57 -58
- package/src/store/test/actions.js +2 -1
- package/src/store/test/reducer.js +140 -10
- package/src/store/test/selectors.js +20 -27
- package/src/style.scss +1 -1
- package/src/utils/pasting.js +3 -3
- package/src/utils/selection.js +26 -0
- package/src/utils/test/selection.js +39 -0
- package/src/utils/transform-styles/transforms/wrap.js +30 -28
- package/tsconfig.json +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/src/components/publish-date-time-picker/style.scss +0 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["size","classnames","speak","__","_x","sprintf","Dropdown","Button","Component","withDispatch","withSelect","compose","ifCondition","createBlock","store","blocksStore","plus","InserterMenu","QuickInserter","blockEditorStore","defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","prioritizePatterns","label","onClick","rest","handleClick","event","Inserter","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","render","position","insertOnlyAllowedBlock","onSelectOrClose","select","getBlockRootClientId","hasInserterItems","__experimentalGetAllowedBlocks","__experimentalGetDirectInsertBlock","getBlockIndex","getBlockCount","getSettings","getBlockVariations","undefined","allowedBlocks","index","blockCount","settings","name","allowedBlockType","title","__experimentalPreferPatternsOnRoot","dispatch","ownProps","getAdjacentBlockAttributes","attributesToCopy","getBlock","getPreviousBlockClientId","result","adjacentAttributes","parentBlock","innerBlocks","length","lastInnerBlock","attributes","currentBlock","previousBlock","forEach","attribute","hasOwnProperty","getInsertionIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","newAttributes","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { size } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n\tprioritizePatterns,\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else if ( prioritizePatterns ) {\n\t\tlabel = __( 'Add pattern' );\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component.\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\tprioritizePatterns,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\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\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tposition={ position }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\thasInserterItems,\n\t\t\t__experimentalGetAllowedBlocks,\n\t\t\t__experimentalGetDirectInsertBlock,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\trootClientId =\n\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\tconst allowedBlocks = __experimentalGetAllowedBlocks( rootClientId );\n\n\t\tconst directInsertBlock = __experimentalGetDirectInsertBlock(\n\t\t\trootClientId\n\t\t);\n\n\t\tconst index = getBlockIndex( clientId );\n\t\tconst blockCount = getBlockCount();\n\t\tconst settings = getSettings();\n\n\t\tconst hasSingleBlockType =\n\t\t\tsize( allowedBlocks ) === 1 &&\n\t\t\tsize(\n\t\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t) === 0;\n\n\t\tlet allowedBlockType = false;\n\t\tif ( hasSingleBlockType ) {\n\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t}\n\n\t\treturn {\n\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\thasSingleBlockType,\n\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\tallowedBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\trootClientId,\n\t\t\tprioritizePatterns:\n\t\t\t\tsettings.__experimentalPreferPatternsOnRoot &&\n\t\t\t\t! rootClientId &&\n\t\t\t\tindex > 0 &&\n\t\t\t\t( index < blockCount || blockCount === 0 ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjacentBlockAttributes( attributesToCopy ) {\n\t\t\t\t\tconst { getBlock, getPreviousBlockClientId } = select(\n\t\t\t\t\t\tblockEditorStore\n\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! attributesToCopy ||\n\t\t\t\t\t\t( ! clientId && ! rootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = {};\n\t\t\t\t\tlet adjacentAttributes = {};\n\n\t\t\t\t\t// If there is no clientId, then attempt to get attributes\n\t\t\t\t\t// from the last block within innerBlocks of the root block.\n\t\t\t\t\tif ( ! clientId ) {\n\t\t\t\t\t\tconst parentBlock = getBlock( rootClientId );\n\n\t\t\t\t\t\tif ( parentBlock?.innerBlocks?.length ) {\n\t\t\t\t\t\t\tconst lastInnerBlock =\n\t\t\t\t\t\t\t\tparentBlock.innerBlocks[\n\t\t\t\t\t\t\t\t\tparentBlock.innerBlocks.length - 1\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdirectInsertBlock &&\n\t\t\t\t\t\t\t\tdirectInsertBlock?.name === lastInnerBlock.name\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tadjacentAttributes = lastInnerBlock.attributes;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Otherwise, attempt to get attributes from the\n\t\t\t\t\t\t// previous block relative to the current clientId.\n\t\t\t\t\t\tconst currentBlock = getBlock( clientId );\n\t\t\t\t\t\tconst previousBlock = getBlock(\n\t\t\t\t\t\t\tgetPreviousBlockClientId( clientId )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( currentBlock?.name === previousBlock?.name ) {\n\t\t\t\t\t\t\tadjacentAttributes =\n\t\t\t\t\t\t\t\tpreviousBlock?.attributes || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy over only those attributes flagged to be copied.\n\t\t\t\t\tattributesToCopy.forEach( ( attribute ) => {\n\t\t\t\t\t\tif ( adjacentAttributes.hasOwnProperty( attribute ) ) {\n\t\t\t\t\t\t\tresult[ attribute ] =\n\t\t\t\t\t\t\t\tadjacentAttributes[ attribute ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tlet blockToInsert;\n\n\t\t\t\t// Attempt to augment the directInsertBlock with attributes from an adjacent block.\n\t\t\t\t// This ensures styling from nearby blocks is preserved in the newly inserted block.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/37904\n\t\t\t\tif ( directInsertBlock ) {\n\t\t\t\t\tconst newAttributes = getAdjacentBlockAttributes(\n\t\t\t\t\t\tdirectInsertBlock.attributesToCopy\n\t\t\t\t\t);\n\n\t\t\t\t\tblockToInsert = createBlock( directInsertBlock.name, {\n\t\t\t\t\t\t...( directInsertBlock.attributes || {} ),\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tblockToInsert = createBlock( allowedBlockType.name );\n\t\t\t\t}\n\n\t\t\t\tinsertBlock( blockToInsert, getInsertionIndex(), rootClientId );\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose();\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.js"],"names":["classnames","speak","__","_x","sprintf","Dropdown","Button","Component","withDispatch","withSelect","compose","ifCondition","createBlock","store","blocksStore","plus","InserterMenu","QuickInserter","blockEditorStore","defaultRenderToggle","onToggle","disabled","isOpen","blockTitle","hasSingleBlockType","toggleProps","prioritizePatterns","label","onClick","rest","handleClick","event","Inserter","constructor","arguments","bind","renderToggle","renderContent","props","directInsertBlock","hasItems","onClose","rootClientId","clientId","isAppender","showInserterHelpPanel","__experimentalIsQuick","isQuick","render","position","insertOnlyAllowedBlock","onSelectOrClose","select","getBlockRootClientId","hasInserterItems","__experimentalGetAllowedBlocks","__experimentalGetDirectInsertBlock","getBlockIndex","getBlockCount","getSettings","getBlockVariations","undefined","allowedBlocks","index","blockCount","settings","length","name","allowedBlockType","title","__experimentalPreferPatternsOnRoot","dispatch","ownProps","getAdjacentBlockAttributes","attributesToCopy","getBlock","getPreviousBlockClientId","result","adjacentAttributes","parentBlock","innerBlocks","lastInnerBlock","attributes","currentBlock","previousBlock","forEach","attribute","hasOwnProperty","getInsertionIndex","getBlockSelectionEnd","getBlockOrder","end","insertBlock","blockToInsert","newAttributes","message"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { speak } from '@wordpress/a11y';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { Dropdown, Button } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, ifCondition } from '@wordpress/compose';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport { plus } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport QuickInserter from './quick-inserter';\nimport { store as blockEditorStore } from '../../store';\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tisOpen,\n\tblockTitle,\n\thasSingleBlockType,\n\ttoggleProps = {},\n\tprioritizePatterns,\n} ) => {\n\tlet label;\n\tif ( hasSingleBlockType ) {\n\t\tlabel = sprintf(\n\t\t\t// translators: %s: the name of the block when there is only one\n\t\t\t_x( 'Add %s', 'directly add the only allowed block' ),\n\t\t\tblockTitle\n\t\t);\n\t} else if ( prioritizePatterns ) {\n\t\tlabel = __( 'Add pattern' );\n\t} else {\n\t\tlabel = _x( 'Add block', 'Generic label for block inserter button' );\n\t}\n\n\tconst { onClick, ...rest } = toggleProps;\n\n\t// Handle both onClick functions from the toggle and the parent component.\n\tfunction handleClick( event ) {\n\t\tif ( onToggle ) {\n\t\t\tonToggle( event );\n\t\t}\n\t\tif ( onClick ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\ticon={ plus }\n\t\t\tlabel={ label }\n\t\t\ttooltipPosition=\"bottom\"\n\t\t\tonClick={ handleClick }\n\t\t\tclassName=\"block-editor-inserter__toggle\"\n\t\t\taria-haspopup={ ! hasSingleBlockType ? 'true' : false }\n\t\t\taria-expanded={ ! hasSingleBlockType ? isOpen : false }\n\t\t\tdisabled={ disabled }\n\t\t\t{ ...rest }\n\t\t/>\n\t);\n};\n\nclass Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderToggle = this.renderToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { onToggle } = this.props;\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\thasItems,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\treturn renderToggle( {\n\t\t\tonToggle,\n\t\t\tisOpen,\n\t\t\tdisabled: disabled || ! hasItems,\n\t\t\tblockTitle,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\ttoggleProps,\n\t\t\tprioritizePatterns,\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose } ) {\n\t\tconst {\n\t\t\trootClientId,\n\t\t\tclientId,\n\t\t\tisAppender,\n\t\t\tshowInserterHelpPanel,\n\n\t\t\t// This prop is experimental to give some time for the quick inserter to mature\n\t\t\t// Feel free to make them stable after a few releases.\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tprioritizePatterns,\n\t\t} = this.props;\n\n\t\tif ( isQuick ) {\n\t\t\treturn (\n\t\t\t\t<QuickInserter\n\t\t\t\t\tonSelect={ () => {\n\t\t\t\t\t\tonClose();\n\t\t\t\t\t} }\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\tprioritizePatterns={ prioritizePatterns }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tonSelect={ () => {\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t\trootClientId={ rootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tposition,\n\t\t\thasSingleBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\tinsertOnlyAllowedBlock,\n\t\t\t__experimentalIsQuick: isQuick,\n\t\t\tonSelectOrClose,\n\t\t} = this.props;\n\n\t\tif ( hasSingleBlockType || directInsertBlock ) {\n\t\t\treturn this.renderToggle( { onToggle: insertOnlyAllowedBlock } );\n\t\t}\n\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tclassName=\"block-editor-inserter\"\n\t\t\t\tcontentClassName={ classnames(\n\t\t\t\t\t'block-editor-inserter__popover',\n\t\t\t\t\t{ 'is-quick': isQuick }\n\t\t\t\t) }\n\t\t\t\tposition={ position }\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\texpandOnMobile\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t\tonClose={ onSelectOrClose }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, { clientId, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\thasInserterItems,\n\t\t\t__experimentalGetAllowedBlocks,\n\t\t\t__experimentalGetDirectInsertBlock,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockCount,\n\t\t\tgetSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst { getBlockVariations } = select( blocksStore );\n\n\t\trootClientId =\n\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined;\n\n\t\tconst allowedBlocks = __experimentalGetAllowedBlocks( rootClientId );\n\n\t\tconst directInsertBlock =\n\t\t\t__experimentalGetDirectInsertBlock( rootClientId );\n\n\t\tconst index = getBlockIndex( clientId );\n\t\tconst blockCount = getBlockCount();\n\t\tconst settings = getSettings();\n\n\t\tconst hasSingleBlockType =\n\t\t\tallowedBlocks?.length === 1 &&\n\t\t\tgetBlockVariations( allowedBlocks[ 0 ].name, 'inserter' )\n\t\t\t\t?.length === 0;\n\n\t\tlet allowedBlockType = false;\n\t\tif ( hasSingleBlockType ) {\n\t\t\tallowedBlockType = allowedBlocks[ 0 ];\n\t\t}\n\n\t\treturn {\n\t\t\thasItems: hasInserterItems( rootClientId ),\n\t\t\thasSingleBlockType,\n\t\t\tblockTitle: allowedBlockType ? allowedBlockType.title : '',\n\t\t\tallowedBlockType,\n\t\t\tdirectInsertBlock,\n\t\t\trootClientId,\n\t\t\tprioritizePatterns:\n\t\t\t\tsettings.__experimentalPreferPatternsOnRoot &&\n\t\t\t\t! rootClientId &&\n\t\t\t\tindex > 0 &&\n\t\t\t\t( index < blockCount || blockCount === 0 ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps, { select } ) => {\n\t\treturn {\n\t\t\tinsertOnlyAllowedBlock() {\n\t\t\t\tconst {\n\t\t\t\t\trootClientId,\n\t\t\t\t\tclientId,\n\t\t\t\t\tisAppender,\n\t\t\t\t\thasSingleBlockType,\n\t\t\t\t\tallowedBlockType,\n\t\t\t\t\tdirectInsertBlock,\n\t\t\t\t\tonSelectOrClose,\n\t\t\t\t} = ownProps;\n\n\t\t\t\tif ( ! hasSingleBlockType && ! directInsertBlock ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfunction getAdjacentBlockAttributes( attributesToCopy ) {\n\t\t\t\t\tconst { getBlock, getPreviousBlockClientId } =\n\t\t\t\t\t\tselect( blockEditorStore );\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t! attributesToCopy ||\n\t\t\t\t\t\t( ! clientId && ! rootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn {};\n\t\t\t\t\t}\n\n\t\t\t\t\tconst result = {};\n\t\t\t\t\tlet adjacentAttributes = {};\n\n\t\t\t\t\t// If there is no clientId, then attempt to get attributes\n\t\t\t\t\t// from the last block within innerBlocks of the root block.\n\t\t\t\t\tif ( ! clientId ) {\n\t\t\t\t\t\tconst parentBlock = getBlock( rootClientId );\n\n\t\t\t\t\t\tif ( parentBlock?.innerBlocks?.length ) {\n\t\t\t\t\t\t\tconst lastInnerBlock =\n\t\t\t\t\t\t\t\tparentBlock.innerBlocks[\n\t\t\t\t\t\t\t\t\tparentBlock.innerBlocks.length - 1\n\t\t\t\t\t\t\t\t];\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdirectInsertBlock &&\n\t\t\t\t\t\t\t\tdirectInsertBlock?.name === lastInnerBlock.name\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tadjacentAttributes = lastInnerBlock.attributes;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Otherwise, attempt to get attributes from the\n\t\t\t\t\t\t// previous block relative to the current clientId.\n\t\t\t\t\t\tconst currentBlock = getBlock( clientId );\n\t\t\t\t\t\tconst previousBlock = getBlock(\n\t\t\t\t\t\t\tgetPreviousBlockClientId( clientId )\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif ( currentBlock?.name === previousBlock?.name ) {\n\t\t\t\t\t\t\tadjacentAttributes =\n\t\t\t\t\t\t\t\tpreviousBlock?.attributes || {};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Copy over only those attributes flagged to be copied.\n\t\t\t\t\tattributesToCopy.forEach( ( attribute ) => {\n\t\t\t\t\t\tif ( adjacentAttributes.hasOwnProperty( attribute ) ) {\n\t\t\t\t\t\t\tresult[ attribute ] =\n\t\t\t\t\t\t\t\tadjacentAttributes[ attribute ];\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tfunction getInsertionIndex() {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tgetBlockIndex,\n\t\t\t\t\t\tgetBlockSelectionEnd,\n\t\t\t\t\t\tgetBlockOrder,\n\t\t\t\t\t\tgetBlockRootClientId,\n\t\t\t\t\t} = select( blockEditorStore );\n\n\t\t\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\t\t\tif ( clientId ) {\n\t\t\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t\t\t}\n\n\t\t\t\t\t// If there a selected block, we insert after the selected block.\n\t\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\t\tif (\n\t\t\t\t\t\t! isAppender &&\n\t\t\t\t\t\tend &&\n\t\t\t\t\t\tgetBlockRootClientId( end ) === rootClientId\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn getBlockIndex( end ) + 1;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\t\t\treturn getBlockOrder( rootClientId ).length;\n\t\t\t\t}\n\n\t\t\t\tconst { insertBlock } = dispatch( blockEditorStore );\n\n\t\t\t\tlet blockToInsert;\n\n\t\t\t\t// Attempt to augment the directInsertBlock with attributes from an adjacent block.\n\t\t\t\t// This ensures styling from nearby blocks is preserved in the newly inserted block.\n\t\t\t\t// See: https://github.com/WordPress/gutenberg/issues/37904\n\t\t\t\tif ( directInsertBlock ) {\n\t\t\t\t\tconst newAttributes = getAdjacentBlockAttributes(\n\t\t\t\t\t\tdirectInsertBlock.attributesToCopy\n\t\t\t\t\t);\n\n\t\t\t\t\tblockToInsert = createBlock( directInsertBlock.name, {\n\t\t\t\t\t\t...( directInsertBlock.attributes || {} ),\n\t\t\t\t\t\t...newAttributes,\n\t\t\t\t\t} );\n\t\t\t\t} else {\n\t\t\t\t\tblockToInsert = createBlock( allowedBlockType.name );\n\t\t\t\t}\n\n\t\t\t\tinsertBlock( blockToInsert, getInsertionIndex(), rootClientId );\n\n\t\t\t\tif ( onSelectOrClose ) {\n\t\t\t\t\tonSelectOrClose();\n\t\t\t\t}\n\n\t\t\t\tconst message = sprintf(\n\t\t\t\t\t// translators: %s: the name of the block that has been added\n\t\t\t\t\t__( '%s block added' ),\n\t\t\t\t\tallowedBlockType.title\n\t\t\t\t);\n\t\t\t\tspeak( message );\n\t\t\t},\n\t\t};\n\t} ),\n\t// The global inserter should always be visible, we are using ( ! isAppender && ! rootClientId && ! clientId ) as\n\t// a way to detect the global Inserter.\n\tifCondition(\n\t\t( { hasItems, isAppender, rootClientId, clientId } ) =>\n\t\t\thasItems || ( ! isAppender && ! rootClientId && ! clientId )\n\t),\n] )( Inserter );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["AccessibilityInfo","Platform","Text","delay","__","_x","Dropdown","ToolbarButton","Picker","Component","withDispatch","withSelect","compose","withPreferredColorScheme","isUnmodifiedDefaultBlock","Icon","plus","plusCircle","plusCircleFilled","insertAfter","insertBefore","setBlockTypeImpressions","styles","InserterMenu","BlockInsertionPoint","store","blockEditorStore","VOICE_OVER_ANNOUNCEMENT_DELAY","defaultRenderToggle","onToggle","disabled","style","containerStyle","onLongPress","useExpandedMode","expandedModeViewProps","icon","customContainerStyles","fixedRatio","expandedModeViewText","hint","testID","Inserter","constructor","arguments","bind","renderInserterToggle","renderContent","getInsertionOptions","addBeforeOption","value","label","replaceCurrentOption","addAfterOption","addToBeginningOption","addToEndOption","isAnyBlockSelected","isSelectedBlockReplaceable","props","getInsertionIndex","insertionType","insertionIndexDefault","insertionIndexStart","insertionIndexBefore","insertionIndexAfter","insertionIndexEnd","shouldReplaceBlock","isOpen","blockTypeImpressions","updateSettings","impressionsRemain","Object","values","some","count","decrementedImpressions","entries","reduce","acc","blockName","Math","max","impressions","onInserterToggledAnnouncement","isScreenReaderEnabled","done","isEnabled","isIOS","OS","announcement","announceForAccessibility","renderToggle","getStylesFromColorScheme","showSeparator","onPress","setState","destinationRootClientId","insertionIndex","picker","presentPicker","onPickerSelect","instance","onClose","clientId","isAppender","state","render","dispatch","select","rootClientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","getBlock","getSettings","getBlockEditorSettings","end","selectedBlockIndex","endOfRootIndex","length","isSelectedUnmodifiedDefaultBlock","undefined","getDefaultInsertionIndex","__experimentalShouldInsertAtTheTop","shouldInsertAtTheTop"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,iBAAT,EAA4BC,QAA5B,EAAsCC,IAAtC,QAAkD,cAAlD;AACA,SAASC,KAAT,QAAsB,QAAtB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,EAAaC,EAAb,QAAuB,iBAAvB;AACA,SAASC,QAAT,EAAmBC,aAAnB,EAAkCC,MAAlC,QAAgD,uBAAhD;AACA,SAASC,SAAT,QAA0B,oBAA1B;AACA,SAASC,YAAT,EAAuBC,UAAvB,QAAyC,iBAAzC;AACA,SAASC,OAAT,EAAkBC,wBAAlB,QAAkD,oBAAlD;AACA,SAASC,wBAAT,QAAyC,mBAAzC;AACA,SACCC,IADD,EAECC,IAFD,EAGCC,UAHD,EAICC,gBAJD,EAKCC,WALD,EAMCC,YAND,QAOO,kBAPP;AAQA,SAASC,uBAAT,QAAwC,gCAAxC;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,OAAOC,YAAP,MAAyB,QAAzB;AACA,OAAOC,mBAAP,MAAgC,+BAAhC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAMC,6BAA6B,GAAG,IAAtC;;AAEA,MAAMC,mBAAmB,GAAG,QAOrB;AAAA,MAPuB;AAC7BC,IAAAA,QAD6B;AAE7BC,IAAAA,QAF6B;AAG7BC,IAAAA,KAH6B;AAI7BC,IAAAA,cAJ6B;AAK7BC,IAAAA,WAL6B;AAM7BC,IAAAA;AAN6B,GAOvB;AACN;AACA;AACA;AACA;AACA,QAAMC,qBAAqB,GAAGD,eAAe,IAAI;AAChDE,IAAAA,IAAI,EAAE,cAAC,IAAD;AAAM,MAAA,IAAI,EAAGpB,IAAb;AAAoB,MAAA,KAAK,EAAGe;AAA5B,MAD0C;AAEhDM,IAAAA,qBAAqB,EAAEL,cAFyB;AAGhDM,IAAAA,UAAU,EAAE;AAHoC,GAAjD;AAKA,QAAMC,oBAAoB,GACzB,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGjB,MAAM,CAAE,sCAAF;AAApB,KACGlB,EAAE,CAAE,YAAF,CADL,CADD;AAMA,SACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGC,EAAE,CACT,WADS,EAET,yCAFS,CADX;AAKC,IAAA,IAAI,EAAG,cAAC,IAAD;AAAM,MAAA,IAAI,EAAGa,gBAAb;AAAgC,MAAA,KAAK,EAAGa;AAAxC,MALR;AAMC,IAAA,OAAO,EAAGF,QANX;AAOC,IAAA,UAAU,EAAG;AACZW,MAAAA,IAAI,EAAEpC,EAAE,CAAE,2BAAF,CADI;AAEZ;AACA;AACAqC,MAAAA,MAAM,EAAE,kBAJI;AAKZR,MAAAA;AALY,KAPd;AAcC,IAAA,UAAU,EAAGH;AAdd,KAeMK,qBAfN,GAiBGD,eAAe,IAAIK,oBAjBtB,CADD;AAqBA,CA5CD;;AA8CA,OAAO,MAAMG,QAAN,SAAuBjC,SAAvB,CAAiC;AACvCkC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AAEA,SAAKf,QAAL,GAAgB,KAAKA,QAAL,CAAcgB,IAAd,CAAoB,IAApB,CAAhB;AACA,SAAKC,oBAAL,GAA4B,KAAKA,oBAAL,CAA0BD,IAA1B,CAAgC,IAAhC,CAA5B;AACA,SAAKE,aAAL,GAAqB,KAAKA,aAAL,CAAmBF,IAAnB,CAAyB,IAAzB,CAArB;AACA;;AAEDG,EAAAA,mBAAmB,GAAG;AACrB,UAAMC,eAAe,GAAG;AACvBC,MAAAA,KAAK,EAAE,QADgB;AAEvBC,MAAAA,KAAK,EAAE/C,EAAE,CAAE,kBAAF,CAFc;AAGvBgC,MAAAA,IAAI,EAAEnB;AAHiB,KAAxB;AAMA,UAAMmC,oBAAoB,GAAG;AAC5BF,MAAAA,KAAK,EAAE,SADqB;AAE5BC,MAAAA,KAAK,EAAE/C,EAAE,CAAE,uBAAF,CAFmB;AAG5BgC,MAAAA,IAAI,EAAElB;AAHsB,KAA7B;AAMA,UAAMmC,cAAc,GAAG;AACtBH,MAAAA,KAAK,EAAE,OADe;AAEtBC,MAAAA,KAAK,EAAE/C,EAAE,CAAE,iBAAF,CAFa;AAGtBgC,MAAAA,IAAI,EAAEnB;AAHgB,KAAvB;AAMA,UAAMqC,oBAAoB,GAAG;AAC5BJ,MAAAA,KAAK,EAAE,OADqB;AAE5BC,MAAAA,KAAK,EAAE/C,EAAE,CAAE,kBAAF,CAFmB;AAG5BgC,MAAAA,IAAI,EAAEhB;AAHsB,KAA7B;AAMA,UAAMmC,cAAc,GAAG;AACtBL,MAAAA,KAAK,EAAE,KADe;AAEtBC,MAAAA,KAAK,EAAE/C,EAAE,CAAE,YAAF,CAFa;AAGtBgC,MAAAA,IAAI,EAAEjB;AAHgB,KAAvB;AAMA,UAAM;AAAEqC,MAAAA,kBAAF;AAAsBC,MAAAA;AAAtB,QAAqD,KAAKC,KAAhE;;AACA,QAAKF,kBAAL,EAA0B;AACzB,UAAKC,0BAAL,EAAkC;AACjC,eAAO,CACNH,oBADM,EAENL,eAFM,EAGNG,oBAHM,EAINC,cAJM,EAKNE,cALM,CAAP;AAOA;;AACD,aAAO,CACND,oBADM,EAENL,eAFM,EAGNI,cAHM,EAINE,cAJM,CAAP;AAMA;;AACD,WAAO,CAAED,oBAAF,EAAwBC,cAAxB,CAAP;AACA;;AAEDI,EAAAA,iBAAiB,CAAEC,aAAF,EAAkB;AAClC,UAAM;AACLC,MAAAA,qBADK;AAELC,MAAAA,mBAFK;AAGLC,MAAAA,oBAHK;AAILC,MAAAA,mBAJK;AAKLC,MAAAA;AALK,QAMF,KAAKP,KANT;;AAOA,QAAKE,aAAa,KAAK,OAAvB,EAAiC;AAChC,aAAOE,mBAAP;AACA;;AACD,QAAKF,aAAa,KAAK,QAAlB,IAA8BA,aAAa,KAAK,SAArD,EAAiE;AAChE,aAAOG,oBAAP;AACA;;AACD,QAAKH,aAAa,KAAK,OAAvB,EAAiC;AAChC,aAAOI,mBAAP;AACA;;AACD,QAAKJ,aAAa,KAAK,KAAvB,EAA+B;AAC9B,aAAOK,iBAAP;AACA;;AACD,WAAOJ,qBAAP;AACA;;AAEDK,EAAAA,kBAAkB,CAAEN,aAAF,EAAkB;AACnC,UAAM;AAAEH,MAAAA;AAAF,QAAiC,KAAKC,KAA5C;;AACA,QAAKE,aAAa,KAAK,SAAvB,EAAmC;AAClC,aAAO,IAAP;AACA;;AACD,QAAKA,aAAa,KAAK,SAAlB,IAA+BH,0BAApC,EAAiE;AAChE,aAAO,IAAP;AACA;;AACD,WAAO,KAAP;AACA;;AAED5B,EAAAA,QAAQ,CAAEsC,MAAF,EAAW;AAClB,UAAM;AAAEC,MAAAA,oBAAF;AAAwBvC,MAAAA,QAAxB;AAAkCwC,MAAAA;AAAlC,QAAqD,KAAKX,KAAhE;;AAEA,QAAK,CAAES,MAAP,EAAgB;AACf,YAAMG,iBAAiB,GAAGC,MAAM,CAACC,MAAP,CACzBJ,oBADyB,EAExBK,IAFwB,CAEhBC,KAAF,IAAaA,KAAK,GAAG,CAFH,CAA1B;;AAIA,UAAKJ,iBAAL,EAAyB;AACxB,cAAMK,sBAAsB,GAAGJ,MAAM,CAACK,OAAP,CAC9BR,oBAD8B,EAE7BS,MAF6B,CAG9B,CAAEC,GAAF;AAAA,cAAO,CAAEC,SAAF,EAAaL,KAAb,CAAP;AAAA,iBAAmC,EAClC,GAAGI,GAD+B;AAElC,aAAEC,SAAF,GAAeC,IAAI,CAACC,GAAL,CAAUP,KAAK,GAAG,CAAlB,EAAqB,CAArB;AAFmB,WAAnC;AAAA,SAH8B,EAO9B,EAP8B,CAA/B,CADwB,CAWxB;;AACAL,QAAAA,cAAc,CAAE;AACfa,UAAAA,WAAW,EAAEP;AADE,SAAF,CAAd,CAZwB,CAgBxB;;AACAtD,QAAAA,uBAAuB,CAAEsD,sBAAF,CAAvB;AACA;AACD,KA3BiB,CA6BlB;;;AACA,QAAK9C,QAAL,EAAgB;AACfA,MAAAA,QAAQ,CAAEsC,MAAF,CAAR;AACA;;AACD,SAAKgB,6BAAL,CAAoChB,MAApC;AACA;;AAEDgB,EAAAA,6BAA6B,CAAEhB,MAAF,EAAW;AACvCnE,IAAAA,iBAAiB,CAACoF,qBAAlB,GAA0CC,IAA1C,CAAkDC,SAAF,IAAiB;AAChE,UAAKA,SAAL,EAAiB;AAChB,cAAMC,KAAK,GAAGtF,QAAQ,CAACuF,EAAT,KAAgB,KAA9B;AACA,cAAMC,YAAY,GAAGtB,MAAM,GACxB/D,EAAE,CAAE,+CAAF,CADsB,GAExBA,EAAE,CAAE,+BAAF,CAFL;AAGAD,QAAAA,KAAK,CACJ,MACCH,iBAAiB,CAAC0F,wBAAlB,CACCD,YADD,CAFG,EAKJF,KAAK,GAAG5D,6BAAH,GAAmC,CALpC,CAAL;AAOA;AACD,KAdD;AAeA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACCmB,EAAAA,oBAAoB,QAAyB;AAAA,QAAvB;AAAEjB,MAAAA,QAAF;AAAYsC,MAAAA;AAAZ,KAAuB;AAC5C,UAAM;AACLrC,MAAAA,QADK;AAEL6D,MAAAA,YAAY,GAAG/D,mBAFV;AAGLgE,MAAAA,wBAHK;AAILC,MAAAA,aAJK;AAKL3D,MAAAA;AALK,QAMF,KAAKwB,KANT;;AAOA,QAAKmC,aAAa,IAAI1B,MAAtB,EAA+B;AAC9B,aAAO,cAAC,mBAAD,OAAP;AACA;;AACD,UAAMpC,KAAK,GAAGG,eAAe,GAC1BZ,MAAM,CAAE,gDAAF,CADoB,GAE1BsE,wBAAwB,CACxBtE,MAAM,CAAE,sCAAF,CADkB,EAExBA,MAAM,CAAE,4CAAF,CAFkB,CAF3B;AAOA,UAAMU,cAAc,GAAG4D,wBAAwB,CAC9CtE,MAAM,CAAE,iCAAF,CADwC,EAE9CA,MAAM,CAAE,uCAAF,CAFwC,CAA/C;;AAKA,UAAMwE,OAAO,GAAG,MAAM;AACrB,WAAKC,QAAL,CACC;AACCC,QAAAA,uBAAuB,EAAE,KAAKtC,KAAL,CAAWsC,uBADrC;AAEC9B,QAAAA,kBAAkB,EAAE,KAAKA,kBAAL,CAAyB,SAAzB,CAFrB;AAGC+B,QAAAA,cAAc,EAAE,KAAKtC,iBAAL,CAAwB,SAAxB;AAHjB,OADD,EAMC9B,QAND;AAQA,KATD;;AAWA,UAAMI,WAAW,GAAG,MAAM;AACzB,UAAK,KAAKiE,MAAV,EAAmB;AAClB,aAAKA,MAAL,CAAYC,aAAZ;AACA;AACD,KAJD;;AAMA,UAAMC,cAAc,GAAKxC,aAAF,IAAqB;AAC3C,WAAKmC,QAAL,CACC;AACCC,QAAAA,uBAAuB,EAAE,KAAKtC,KAAL,CAAWsC,uBADrC;AAEC9B,QAAAA,kBAAkB,EAAE,KAAKA,kBAAL,CACnBN,aADmB,CAFrB;AAKCqC,QAAAA,cAAc,EAAE,KAAKtC,iBAAL,CAAwBC,aAAxB;AALjB,OADD,EAQC/B,QARD;AAUA,KAXD;;AAaA,WACC,8BACG8D,YAAY,CAAE;AACf9D,MAAAA,QAAQ,EAAEiE,OADK;AAEf3B,MAAAA,MAFe;AAGfrC,MAAAA,QAHe;AAIfC,MAAAA,KAJe;AAKfC,MAAAA,cALe;AAMfC,MAAAA,WANe;AAOfC,MAAAA;AAPe,KAAF,CADf,EAUC,cAAC,MAAD;AACC,MAAA,GAAG,EAAKmE,QAAF,IAAkB,KAAKH,MAAL,GAAcG,QADvC;AAEC,MAAA,OAAO,EAAG,KAAKrD,mBAAL,EAFX;AAGC,MAAA,QAAQ,EAAGoD,cAHZ;AAIC,MAAA,gBAAgB;AAJjB,MAVD,CADD;AAmBA;AAED;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACCrD,EAAAA,aAAa,QAAwB;AAAA,QAAtB;AAAEuD,MAAAA,OAAF;AAAWnC,MAAAA;AAAX,KAAsB;AACpC,UAAM;AAAEoC,MAAAA,QAAF;AAAYC,MAAAA;AAAZ,QAA2B,KAAK9C,KAAtC;AACA,UAAM;AACLsC,MAAAA,uBADK;AAEL9B,MAAAA,kBAFK;AAGL+B,MAAAA;AAHK,QAIF,KAAKQ,KAJT;AAKA,WACC,cAAC,YAAD;AACC,MAAA,MAAM,EAAGtC,MADV;AAEC,MAAA,QAAQ,EAAGmC,OAFZ;AAGC,MAAA,SAAS,EAAGA,OAHb;AAIC,MAAA,YAAY,EAAGN,uBAJhB;AAKC,MAAA,QAAQ,EAAGO,QALZ;AAMC,MAAA,UAAU,EAAGC,UANd;AAOC,MAAA,kBAAkB,EAAGtC,kBAPtB;AAQC,MAAA,cAAc,EAAG+B;AARlB,MADD;AAYA;;AAEDS,EAAAA,MAAM,GAAG;AACR,WACC,cAAC,QAAD;AACC,MAAA,QAAQ,EAAG,KAAK7E,QADjB;AAEC,MAAA,WAAW,EAAGzB,EAAE,CAAE,aAAF,CAFjB;AAGC,MAAA,YAAY,EAAG,KAAK0C,oBAHrB;AAIC,MAAA,aAAa,EAAG,KAAKC;AAJtB,MADD;AAQA;;AAjRsC;AAoRxC,eAAenC,OAAO,CAAE,CACvBF,YAAY,CAAIiG,QAAF,IAAgB;AAC7B,QAAM;AAAEtC,IAAAA;AAAF,MAAqBsC,QAAQ,CAAEjF,gBAAF,CAAnC;AACA,SAAO;AAAE2C,IAAAA;AAAF,GAAP;AACA,CAHW,CADW,EAKvB1D,UAAU,CAAE,CAAEiG,MAAF,YAAsD;AAAA,MAA5C;AAAEL,IAAAA,QAAF;AAAYC,IAAAA,UAAZ;AAAwBK,IAAAA;AAAxB,GAA4C;AACjE,QAAM;AACLC,IAAAA,oBADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,aAHK;AAILC,IAAAA,aAJK;AAKLC,IAAAA,QALK;AAMLC,IAAAA,WAAW,EAAEC;AANR,MAOFR,MAAM,CAAElF,gBAAF,CAPV;AASA,QAAM2F,GAAG,GAAGN,oBAAoB,EAAhC,CAViE,CAWjE;AACA;AACA;;AACA,QAAMvD,kBAAkB,GAAG,CAAEgD,UAAF,IAAgBa,GAAhB,IAAuBH,QAAQ,CAAEG,GAAF,CAA1D;AACA,QAAMrB,uBAAuB,GAAGxC,kBAAkB,GAC/CsD,oBAAoB,CAAEO,GAAF,CAD2B,GAE/CR,YAFH;AAGA,QAAMS,kBAAkB,GAAGL,aAAa,CAAEI,GAAF,CAAxC;AACA,QAAME,cAAc,GAAGP,aAAa,CAAEH,YAAF,CAAb,CAA8BW,MAArD;AACA,QAAMC,gCAAgC,GAAGjE,kBAAkB,GACxD1C,wBAAwB,CAAEoG,QAAQ,CAAEG,GAAF,CAAV,CADgC,GAExDK,SAFH;;AAIA,WAASC,wBAAT,GAAoC;AACnC,UAAM;AACLC,MAAAA,kCAAkC,EAAEC;AAD/B,QAEFT,sBAAsB,EAF1B,CADmC,CAKnC;;AACA,QAAKS,oBAAL,EAA4B;AAC3B,aAAO,CAAP;AACA,KARkC,CAUnC;;;AACA,QAAKtB,QAAL,EAAgB;AACf,aAAOU,aAAa,CAAEV,QAAF,CAApB;AACA,KAbkC,CAenC;;;AACA,QAAK/C,kBAAL,EAA0B;AACzB;AACA,UAAKiE,gCAAL,EAAwC;AACvC,eAAOH,kBAAP;AACA,OAJwB,CAMzB;;;AACA,aAAOA,kBAAkB,GAAG,CAA5B;AACA,KAxBkC,CA0BnC;;;AACA,WAAOC,cAAP;AACA;;AAED,QAAMzD,mBAAmB,GAAG,CAA5B;AAEA,QAAMC,oBAAoB,GAAGP,kBAAkB,GAC5C8D,kBAD4C,GAE5CxD,mBAFH;AAIA,QAAME,mBAAmB,GAAGR,kBAAkB,GAC3C8D,kBAAkB,GAAG,CADsB,GAE3CC,cAFH;AAIA,QAAMtD,iBAAiB,GAAGsD,cAA1B;AAEA,SAAO;AACNnD,IAAAA,oBAAoB,EAAEgD,sBAAsB,GAAGlC,WADzC;AAENc,IAAAA,uBAFM;AAGNnC,IAAAA,qBAAqB,EAAE8D,wBAAwB,EAHzC;AAIN5D,IAAAA,oBAJM;AAKNC,IAAAA,mBALM;AAMNF,IAAAA,mBANM;AAONG,IAAAA,iBAPM;AAQNT,IAAAA,kBAAkB,EAAE,CAAC,CAAEA,kBARjB;AASNC,IAAAA,0BAA0B,EAAEgE;AATtB,GAAP;AAWA,CA7ES,CALa,EAoFvB5G,wBApFuB,CAAF,CAAP,CAqFV6B,QArFU,CAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, Platform, Text } from 'react-native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Dropdown, ToolbarButton, Picker } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport {\n\tIcon,\n\tplus,\n\tplusCircle,\n\tplusCircleFilled,\n\tinsertAfter,\n\tinsertBefore,\n} from '@wordpress/icons';\nimport { setBlockTypeImpressions } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterMenu from './menu';\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport { store as blockEditorStore } from '../../store';\n\nconst VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tstyle,\n\tcontainerStyle,\n\tonLongPress,\n\tuseExpandedMode,\n} ) => {\n\t// The \"expanded mode\" refers to the editor's appearance when no blocks\n\t// are currently selected. The \"add block\" button has a separate style\n\t// for the \"expanded mode\", which are added via the below \"expandedModeViewProps\"\n\t// and \"expandedModeViewText\" variables.\n\tconst expandedModeViewProps = useExpandedMode && {\n\t\ticon: <Icon icon={ plus } style={ style } />,\n\t\tcustomContainerStyles: containerStyle,\n\t\tfixedRatio: false,\n\t};\n\tconst expandedModeViewText = (\n\t\t<Text style={ styles[ 'inserter-menu__add-block-button-text' ] }>\n\t\t\t{ __( 'Add blocks' ) }\n\t\t</Text>\n\t);\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\ttitle={ _x(\n\t\t\t\t'Add block',\n\t\t\t\t'Generic label for block inserter button'\n\t\t\t) }\n\t\t\ticon={ <Icon icon={ plusCircleFilled } style={ style } /> }\n\t\t\tonClick={ onToggle }\n\t\t\textraProps={ {\n\t\t\t\thint: __( 'Double tap to add a block' ),\n\t\t\t\t// testID is present to disambiguate this element for native UI tests. It's not\n\t\t\t\t// usually required for components. See: https://github.com/WordPress/gutenberg/pull/18832#issuecomment-561411389.\n\t\t\t\ttestID: 'add-block-button',\n\t\t\t\tonLongPress,\n\t\t\t} }\n\t\t\tisDisabled={ disabled }\n\t\t\t{ ...expandedModeViewProps }\n\t\t>\n\t\t\t{ useExpandedMode && expandedModeViewText }\n\t\t</ToolbarButton>\n\t);\n};\n\nexport class Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderInserterToggle = this.renderInserterToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tgetInsertionOptions() {\n\t\tconst addBeforeOption = {\n\t\t\tvalue: 'before',\n\t\t\tlabel: __( 'Add Block Before' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst replaceCurrentOption = {\n\t\t\tvalue: 'replace',\n\t\t\tlabel: __( 'Replace Current Block' ),\n\t\t\ticon: plusCircleFilled,\n\t\t};\n\n\t\tconst addAfterOption = {\n\t\t\tvalue: 'after',\n\t\t\tlabel: __( 'Add Block After' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst addToBeginningOption = {\n\t\t\tvalue: 'start',\n\t\t\tlabel: __( 'Add To Beginning' ),\n\t\t\ticon: insertBefore,\n\t\t};\n\n\t\tconst addToEndOption = {\n\t\t\tvalue: 'end',\n\t\t\tlabel: __( 'Add To End' ),\n\t\t\ticon: insertAfter,\n\t\t};\n\n\t\tconst { isAnyBlockSelected, isSelectedBlockReplaceable } = this.props;\n\t\tif ( isAnyBlockSelected ) {\n\t\t\tif ( isSelectedBlockReplaceable ) {\n\t\t\t\treturn [\n\t\t\t\t\taddToBeginningOption,\n\t\t\t\t\taddBeforeOption,\n\t\t\t\t\treplaceCurrentOption,\n\t\t\t\t\taddAfterOption,\n\t\t\t\t\taddToEndOption,\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn [\n\t\t\t\taddToBeginningOption,\n\t\t\t\taddBeforeOption,\n\t\t\t\taddAfterOption,\n\t\t\t\taddToEndOption,\n\t\t\t];\n\t\t}\n\t\treturn [ addToBeginningOption, addToEndOption ];\n\t}\n\n\tgetInsertionIndex( insertionType ) {\n\t\tconst {\n\t\t\tinsertionIndexDefault,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexEnd,\n\t\t} = this.props;\n\t\tif ( insertionType === 'start' ) {\n\t\t\treturn insertionIndexStart;\n\t\t}\n\t\tif ( insertionType === 'before' || insertionType === 'replace' ) {\n\t\t\treturn insertionIndexBefore;\n\t\t}\n\t\tif ( insertionType === 'after' ) {\n\t\t\treturn insertionIndexAfter;\n\t\t}\n\t\tif ( insertionType === 'end' ) {\n\t\t\treturn insertionIndexEnd;\n\t\t}\n\t\treturn insertionIndexDefault;\n\t}\n\n\tshouldReplaceBlock( insertionType ) {\n\t\tconst { isSelectedBlockReplaceable } = this.props;\n\t\tif ( insertionType === 'replace' ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( insertionType === 'default' && isSelectedBlockReplaceable ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { blockTypeImpressions, onToggle, updateSettings } = this.props;\n\n\t\tif ( ! isOpen ) {\n\t\t\tconst impressionsRemain = Object.values(\n\t\t\t\tblockTypeImpressions\n\t\t\t).some( ( count ) => count > 0 );\n\n\t\t\tif ( impressionsRemain ) {\n\t\t\t\tconst decrementedImpressions = Object.entries(\n\t\t\t\t\tblockTypeImpressions\n\t\t\t\t).reduce(\n\t\t\t\t\t( acc, [ blockName, count ] ) => ( {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ blockName ]: Math.max( count - 1, 0 ),\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\t// Persist block type impression to JavaScript store.\n\t\t\t\tupdateSettings( {\n\t\t\t\t\timpressions: decrementedImpressions,\n\t\t\t\t} );\n\n\t\t\t\t// Persist block type impression count to native app store.\n\t\t\t\tsetBlockTypeImpressions( decrementedImpressions );\n\t\t\t}\n\t\t}\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t\tthis.onInserterToggledAnnouncement( isOpen );\n\t}\n\n\tonInserterToggledAnnouncement( isOpen ) {\n\t\tAccessibilityInfo.isScreenReaderEnabled().done( ( isEnabled ) => {\n\t\t\tif ( isEnabled ) {\n\t\t\t\tconst isIOS = Platform.OS === 'ios';\n\t\t\t\tconst announcement = isOpen\n\t\t\t\t\t? __( 'Scrollable block menu opened. Select a block.' )\n\t\t\t\t\t: __( 'Scrollable block menu closed.' );\n\t\t\t\tdelay(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tAccessibilityInfo.announceForAccessibility(\n\t\t\t\t\t\t\tannouncement\n\t\t\t\t\t\t),\n\t\t\t\t\tisIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderInserterToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tshowSeparator,\n\t\t\tuseExpandedMode,\n\t\t} = this.props;\n\t\tif ( showSeparator && isOpen ) {\n\t\t\treturn <BlockInsertionPoint />;\n\t\t}\n\t\tconst style = useExpandedMode\n\t\t\t? styles[ 'inserter-menu__add-block-button-icon--expanded' ]\n\t\t\t: getStylesFromColorScheme(\n\t\t\t\t\tstyles[ 'inserter-menu__add-block-button-icon' ],\n\t\t\t\t\tstyles[ 'inserter-menu__add-block-button-icon--dark' ]\n\t\t\t );\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyles[ 'inserter-menu__add-block-button' ],\n\t\t\tstyles[ 'inserter-menu__add-block-button--dark' ]\n\t\t);\n\n\t\tconst onPress = () => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock( 'default' ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( 'default' ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\tconst onLongPress = () => {\n\t\t\tif ( this.picker ) {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t};\n\n\t\tconst onPickerSelect = ( insertionType ) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock(\n\t\t\t\t\t\tinsertionType\n\t\t\t\t\t),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( insertionType ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ renderToggle( {\n\t\t\t\t\tonToggle: onPress,\n\t\t\t\t\tisOpen,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tstyle,\n\t\t\t\t\tcontainerStyle,\n\t\t\t\t\tonLongPress,\n\t\t\t\t\tuseExpandedMode,\n\t\t\t\t} ) }\n\t\t\t\t<Picker\n\t\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\t\toptions={ this.getInsertionOptions() }\n\t\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose, isOpen } ) {\n\t\tconst { clientId, isAppender } = this.props;\n\t\tconst {\n\t\t\tdestinationRootClientId,\n\t\t\tshouldReplaceBlock,\n\t\t\tinsertionIndex,\n\t\t} = this.state;\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tisOpen={ isOpen }\n\t\t\t\tonSelect={ onClose }\n\t\t\t\tonDismiss={ onClose }\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshouldReplaceBlock={ shouldReplaceBlock }\n\t\t\t\tinsertionIndex={ insertionIndex }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderInserterToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { updateSettings } = dispatch( blockEditorStore );\n\t\treturn { updateSettings };\n\t} ),\n\twithSelect( ( select, { clientId, isAppender, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlock,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst end = getBlockSelectionEnd();\n\t\t// `end` argument (id) can refer to the component which is removed\n\t\t// due to pressing `undo` button, that's why we need to check\n\t\t// if `getBlock( end) is valid, otherwise `null` is passed\n\t\tconst isAnyBlockSelected = ! isAppender && end && getBlock( end );\n\t\tconst destinationRootClientId = isAnyBlockSelected\n\t\t\t? getBlockRootClientId( end )\n\t\t\t: rootClientId;\n\t\tconst selectedBlockIndex = getBlockIndex( end );\n\t\tconst endOfRootIndex = getBlockOrder( rootClientId ).length;\n\t\tconst isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected\n\t\t\t? isUnmodifiedDefaultBlock( getBlock( end ) )\n\t\t\t: undefined;\n\n\t\tfunction getDefaultInsertionIndex() {\n\t\t\tconst {\n\t\t\t\t__experimentalShouldInsertAtTheTop: shouldInsertAtTheTop,\n\t\t\t} = getBlockEditorSettings();\n\n\t\t\t// If post title is selected insert as first block.\n\t\t\tif ( shouldInsertAtTheTop ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\tif ( clientId ) {\n\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t}\n\n\t\t\t// If there is a selected block,\n\t\t\tif ( isAnyBlockSelected ) {\n\t\t\t\t// And the last selected block is unmodified (empty), it will be replaced.\n\t\t\t\tif ( isSelectedUnmodifiedDefaultBlock ) {\n\t\t\t\t\treturn selectedBlockIndex;\n\t\t\t\t}\n\n\t\t\t\t// We insert after the selected block.\n\t\t\t\treturn selectedBlockIndex + 1;\n\t\t\t}\n\n\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\treturn endOfRootIndex;\n\t\t}\n\n\t\tconst insertionIndexStart = 0;\n\n\t\tconst insertionIndexBefore = isAnyBlockSelected\n\t\t\t? selectedBlockIndex\n\t\t\t: insertionIndexStart;\n\n\t\tconst insertionIndexAfter = isAnyBlockSelected\n\t\t\t? selectedBlockIndex + 1\n\t\t\t: endOfRootIndex;\n\n\t\tconst insertionIndexEnd = endOfRootIndex;\n\n\t\treturn {\n\t\t\tblockTypeImpressions: getBlockEditorSettings().impressions,\n\t\t\tdestinationRootClientId,\n\t\t\tinsertionIndexDefault: getDefaultInsertionIndex(),\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexEnd,\n\t\t\tisAnyBlockSelected: !! isAnyBlockSelected,\n\t\t\tisSelectedBlockReplaceable: isSelectedUnmodifiedDefaultBlock,\n\t\t};\n\t} ),\n\n\twithPreferredColorScheme,\n] )( Inserter );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["AccessibilityInfo","Platform","Text","delay","__","_x","Dropdown","ToolbarButton","Picker","Component","withDispatch","withSelect","compose","withPreferredColorScheme","isUnmodifiedDefaultBlock","Icon","plus","plusCircle","plusCircleFilled","insertAfter","insertBefore","setBlockTypeImpressions","styles","InserterMenu","BlockInsertionPoint","store","blockEditorStore","VOICE_OVER_ANNOUNCEMENT_DELAY","defaultRenderToggle","onToggle","disabled","style","containerStyle","onLongPress","useExpandedMode","expandedModeViewProps","icon","customContainerStyles","fixedRatio","expandedModeViewText","hint","testID","Inserter","constructor","arguments","bind","renderInserterToggle","renderContent","getInsertionOptions","addBeforeOption","value","label","replaceCurrentOption","addAfterOption","addToBeginningOption","addToEndOption","isAnyBlockSelected","isSelectedBlockReplaceable","props","getInsertionIndex","insertionType","insertionIndexDefault","insertionIndexStart","insertionIndexBefore","insertionIndexAfter","insertionIndexEnd","shouldReplaceBlock","isOpen","blockTypeImpressions","updateSettings","impressionsRemain","Object","values","some","count","decrementedImpressions","entries","reduce","acc","blockName","Math","max","impressions","onInserterToggledAnnouncement","isScreenReaderEnabled","done","isEnabled","isIOS","OS","announcement","announceForAccessibility","renderToggle","getStylesFromColorScheme","showSeparator","onPress","setState","destinationRootClientId","insertionIndex","picker","presentPicker","onPickerSelect","instance","onClose","clientId","isAppender","state","render","dispatch","select","rootClientId","getBlockRootClientId","getBlockSelectionEnd","getBlockOrder","getBlockIndex","getBlock","getSettings","getBlockEditorSettings","end","selectedBlockIndex","endOfRootIndex","length","isSelectedUnmodifiedDefaultBlock","undefined","getDefaultInsertionIndex","__experimentalShouldInsertAtTheTop","shouldInsertAtTheTop"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, Platform, Text } from 'react-native';\nimport { delay } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Dropdown, ToolbarButton, Picker } from '@wordpress/components';\nimport { Component } from '@wordpress/element';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { isUnmodifiedDefaultBlock } from '@wordpress/blocks';\nimport {\n\tIcon,\n\tplus,\n\tplusCircle,\n\tplusCircleFilled,\n\tinsertAfter,\n\tinsertBefore,\n} from '@wordpress/icons';\nimport { setBlockTypeImpressions } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport InserterMenu from './menu';\nimport BlockInsertionPoint from '../block-list/insertion-point';\nimport { store as blockEditorStore } from '../../store';\n\nconst VOICE_OVER_ANNOUNCEMENT_DELAY = 1000;\n\nconst defaultRenderToggle = ( {\n\tonToggle,\n\tdisabled,\n\tstyle,\n\tcontainerStyle,\n\tonLongPress,\n\tuseExpandedMode,\n} ) => {\n\t// The \"expanded mode\" refers to the editor's appearance when no blocks\n\t// are currently selected. The \"add block\" button has a separate style\n\t// for the \"expanded mode\", which are added via the below \"expandedModeViewProps\"\n\t// and \"expandedModeViewText\" variables.\n\tconst expandedModeViewProps = useExpandedMode && {\n\t\ticon: <Icon icon={ plus } style={ style } />,\n\t\tcustomContainerStyles: containerStyle,\n\t\tfixedRatio: false,\n\t};\n\tconst expandedModeViewText = (\n\t\t<Text style={ styles[ 'inserter-menu__add-block-button-text' ] }>\n\t\t\t{ __( 'Add blocks' ) }\n\t\t</Text>\n\t);\n\n\treturn (\n\t\t<ToolbarButton\n\t\t\ttitle={ _x(\n\t\t\t\t'Add block',\n\t\t\t\t'Generic label for block inserter button'\n\t\t\t) }\n\t\t\ticon={ <Icon icon={ plusCircleFilled } style={ style } /> }\n\t\t\tonClick={ onToggle }\n\t\t\textraProps={ {\n\t\t\t\thint: __( 'Double tap to add a block' ),\n\t\t\t\t// testID is present to disambiguate this element for native UI tests. It's not\n\t\t\t\t// usually required for components. See: https://github.com/WordPress/gutenberg/pull/18832#issuecomment-561411389.\n\t\t\t\ttestID: 'add-block-button',\n\t\t\t\tonLongPress,\n\t\t\t} }\n\t\t\tisDisabled={ disabled }\n\t\t\t{ ...expandedModeViewProps }\n\t\t>\n\t\t\t{ useExpandedMode && expandedModeViewText }\n\t\t</ToolbarButton>\n\t);\n};\n\nexport class Inserter extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onToggle = this.onToggle.bind( this );\n\t\tthis.renderInserterToggle = this.renderInserterToggle.bind( this );\n\t\tthis.renderContent = this.renderContent.bind( this );\n\t}\n\n\tgetInsertionOptions() {\n\t\tconst addBeforeOption = {\n\t\t\tvalue: 'before',\n\t\t\tlabel: __( 'Add Block Before' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst replaceCurrentOption = {\n\t\t\tvalue: 'replace',\n\t\t\tlabel: __( 'Replace Current Block' ),\n\t\t\ticon: plusCircleFilled,\n\t\t};\n\n\t\tconst addAfterOption = {\n\t\t\tvalue: 'after',\n\t\t\tlabel: __( 'Add Block After' ),\n\t\t\ticon: plusCircle,\n\t\t};\n\n\t\tconst addToBeginningOption = {\n\t\t\tvalue: 'start',\n\t\t\tlabel: __( 'Add To Beginning' ),\n\t\t\ticon: insertBefore,\n\t\t};\n\n\t\tconst addToEndOption = {\n\t\t\tvalue: 'end',\n\t\t\tlabel: __( 'Add To End' ),\n\t\t\ticon: insertAfter,\n\t\t};\n\n\t\tconst { isAnyBlockSelected, isSelectedBlockReplaceable } = this.props;\n\t\tif ( isAnyBlockSelected ) {\n\t\t\tif ( isSelectedBlockReplaceable ) {\n\t\t\t\treturn [\n\t\t\t\t\taddToBeginningOption,\n\t\t\t\t\taddBeforeOption,\n\t\t\t\t\treplaceCurrentOption,\n\t\t\t\t\taddAfterOption,\n\t\t\t\t\taddToEndOption,\n\t\t\t\t];\n\t\t\t}\n\t\t\treturn [\n\t\t\t\taddToBeginningOption,\n\t\t\t\taddBeforeOption,\n\t\t\t\taddAfterOption,\n\t\t\t\taddToEndOption,\n\t\t\t];\n\t\t}\n\t\treturn [ addToBeginningOption, addToEndOption ];\n\t}\n\n\tgetInsertionIndex( insertionType ) {\n\t\tconst {\n\t\t\tinsertionIndexDefault,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexEnd,\n\t\t} = this.props;\n\t\tif ( insertionType === 'start' ) {\n\t\t\treturn insertionIndexStart;\n\t\t}\n\t\tif ( insertionType === 'before' || insertionType === 'replace' ) {\n\t\t\treturn insertionIndexBefore;\n\t\t}\n\t\tif ( insertionType === 'after' ) {\n\t\t\treturn insertionIndexAfter;\n\t\t}\n\t\tif ( insertionType === 'end' ) {\n\t\t\treturn insertionIndexEnd;\n\t\t}\n\t\treturn insertionIndexDefault;\n\t}\n\n\tshouldReplaceBlock( insertionType ) {\n\t\tconst { isSelectedBlockReplaceable } = this.props;\n\t\tif ( insertionType === 'replace' ) {\n\t\t\treturn true;\n\t\t}\n\t\tif ( insertionType === 'default' && isSelectedBlockReplaceable ) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tonToggle( isOpen ) {\n\t\tconst { blockTypeImpressions, onToggle, updateSettings } = this.props;\n\n\t\tif ( ! isOpen ) {\n\t\t\tconst impressionsRemain = Object.values(\n\t\t\t\tblockTypeImpressions\n\t\t\t).some( ( count ) => count > 0 );\n\n\t\t\tif ( impressionsRemain ) {\n\t\t\t\tconst decrementedImpressions = Object.entries(\n\t\t\t\t\tblockTypeImpressions\n\t\t\t\t).reduce(\n\t\t\t\t\t( acc, [ blockName, count ] ) => ( {\n\t\t\t\t\t\t...acc,\n\t\t\t\t\t\t[ blockName ]: Math.max( count - 1, 0 ),\n\t\t\t\t\t} ),\n\t\t\t\t\t{}\n\t\t\t\t);\n\n\t\t\t\t// Persist block type impression to JavaScript store.\n\t\t\t\tupdateSettings( {\n\t\t\t\t\timpressions: decrementedImpressions,\n\t\t\t\t} );\n\n\t\t\t\t// Persist block type impression count to native app store.\n\t\t\t\tsetBlockTypeImpressions( decrementedImpressions );\n\t\t\t}\n\t\t}\n\n\t\t// Surface toggle callback to parent component.\n\t\tif ( onToggle ) {\n\t\t\tonToggle( isOpen );\n\t\t}\n\t\tthis.onInserterToggledAnnouncement( isOpen );\n\t}\n\n\tonInserterToggledAnnouncement( isOpen ) {\n\t\tAccessibilityInfo.isScreenReaderEnabled().done( ( isEnabled ) => {\n\t\t\tif ( isEnabled ) {\n\t\t\t\tconst isIOS = Platform.OS === 'ios';\n\t\t\t\tconst announcement = isOpen\n\t\t\t\t\t? __( 'Scrollable block menu opened. Select a block.' )\n\t\t\t\t\t: __( 'Scrollable block menu closed.' );\n\t\t\t\tdelay(\n\t\t\t\t\t() =>\n\t\t\t\t\t\tAccessibilityInfo.announceForAccessibility(\n\t\t\t\t\t\t\tannouncement\n\t\t\t\t\t\t),\n\t\t\t\t\tisIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\t}\n\n\t/**\n\t * Render callback to display Dropdown toggle element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onToggle Callback to invoke when toggle is\n\t * pressed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown toggle element.\n\t */\n\trenderInserterToggle( { onToggle, isOpen } ) {\n\t\tconst {\n\t\t\tdisabled,\n\t\t\trenderToggle = defaultRenderToggle,\n\t\t\tgetStylesFromColorScheme,\n\t\t\tshowSeparator,\n\t\t\tuseExpandedMode,\n\t\t} = this.props;\n\t\tif ( showSeparator && isOpen ) {\n\t\t\treturn <BlockInsertionPoint />;\n\t\t}\n\t\tconst style = useExpandedMode\n\t\t\t? styles[ 'inserter-menu__add-block-button-icon--expanded' ]\n\t\t\t: getStylesFromColorScheme(\n\t\t\t\t\tstyles[ 'inserter-menu__add-block-button-icon' ],\n\t\t\t\t\tstyles[ 'inserter-menu__add-block-button-icon--dark' ]\n\t\t\t );\n\n\t\tconst containerStyle = getStylesFromColorScheme(\n\t\t\tstyles[ 'inserter-menu__add-block-button' ],\n\t\t\tstyles[ 'inserter-menu__add-block-button--dark' ]\n\t\t);\n\n\t\tconst onPress = () => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock: this.shouldReplaceBlock( 'default' ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( 'default' ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\tconst onLongPress = () => {\n\t\t\tif ( this.picker ) {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t};\n\n\t\tconst onPickerSelect = ( insertionType ) => {\n\t\t\tthis.setState(\n\t\t\t\t{\n\t\t\t\t\tdestinationRootClientId: this.props.destinationRootClientId,\n\t\t\t\t\tshouldReplaceBlock:\n\t\t\t\t\t\tthis.shouldReplaceBlock( insertionType ),\n\t\t\t\t\tinsertionIndex: this.getInsertionIndex( insertionType ),\n\t\t\t\t},\n\t\t\t\tonToggle\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ renderToggle( {\n\t\t\t\t\tonToggle: onPress,\n\t\t\t\t\tisOpen,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tstyle,\n\t\t\t\t\tcontainerStyle,\n\t\t\t\t\tonLongPress,\n\t\t\t\t\tuseExpandedMode,\n\t\t\t\t} ) }\n\t\t\t\t<Picker\n\t\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\t\toptions={ this.getInsertionOptions() }\n\t\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\t/**\n\t * Render callback to display Dropdown content element.\n\t *\n\t * @param {Object} options\n\t * @param {Function} options.onClose Callback to invoke when dropdown is\n\t * closed.\n\t * @param {boolean} options.isOpen Whether dropdown is currently open.\n\t *\n\t * @return {WPElement} Dropdown content element.\n\t */\n\trenderContent( { onClose, isOpen } ) {\n\t\tconst { clientId, isAppender } = this.props;\n\t\tconst { destinationRootClientId, shouldReplaceBlock, insertionIndex } =\n\t\t\tthis.state;\n\t\treturn (\n\t\t\t<InserterMenu\n\t\t\t\tisOpen={ isOpen }\n\t\t\t\tonSelect={ onClose }\n\t\t\t\tonDismiss={ onClose }\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisAppender={ isAppender }\n\t\t\t\tshouldReplaceBlock={ shouldReplaceBlock }\n\t\t\t\tinsertionIndex={ insertionIndex }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Dropdown\n\t\t\t\tonToggle={ this.onToggle }\n\t\t\t\theaderTitle={ __( 'Add a block' ) }\n\t\t\t\trenderToggle={ this.renderInserterToggle }\n\t\t\t\trenderContent={ this.renderContent }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { updateSettings } = dispatch( blockEditorStore );\n\t\treturn { updateSettings };\n\t} ),\n\twithSelect( ( select, { clientId, isAppender, rootClientId } ) => {\n\t\tconst {\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockSelectionEnd,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockIndex,\n\t\t\tgetBlock,\n\t\t\tgetSettings: getBlockEditorSettings,\n\t\t} = select( blockEditorStore );\n\n\t\tconst end = getBlockSelectionEnd();\n\t\t// `end` argument (id) can refer to the component which is removed\n\t\t// due to pressing `undo` button, that's why we need to check\n\t\t// if `getBlock( end) is valid, otherwise `null` is passed\n\t\tconst isAnyBlockSelected = ! isAppender && end && getBlock( end );\n\t\tconst destinationRootClientId = isAnyBlockSelected\n\t\t\t? getBlockRootClientId( end )\n\t\t\t: rootClientId;\n\t\tconst selectedBlockIndex = getBlockIndex( end );\n\t\tconst endOfRootIndex = getBlockOrder( rootClientId ).length;\n\t\tconst isSelectedUnmodifiedDefaultBlock = isAnyBlockSelected\n\t\t\t? isUnmodifiedDefaultBlock( getBlock( end ) )\n\t\t\t: undefined;\n\n\t\tfunction getDefaultInsertionIndex() {\n\t\t\tconst { __experimentalShouldInsertAtTheTop: shouldInsertAtTheTop } =\n\t\t\t\tgetBlockEditorSettings();\n\n\t\t\t// If post title is selected insert as first block.\n\t\t\tif ( shouldInsertAtTheTop ) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\t// If the clientId is defined, we insert at the position of the block.\n\t\t\tif ( clientId ) {\n\t\t\t\treturn getBlockIndex( clientId );\n\t\t\t}\n\n\t\t\t// If there is a selected block,\n\t\t\tif ( isAnyBlockSelected ) {\n\t\t\t\t// And the last selected block is unmodified (empty), it will be replaced.\n\t\t\t\tif ( isSelectedUnmodifiedDefaultBlock ) {\n\t\t\t\t\treturn selectedBlockIndex;\n\t\t\t\t}\n\n\t\t\t\t// We insert after the selected block.\n\t\t\t\treturn selectedBlockIndex + 1;\n\t\t\t}\n\n\t\t\t// Otherwise, we insert at the end of the current rootClientId.\n\t\t\treturn endOfRootIndex;\n\t\t}\n\n\t\tconst insertionIndexStart = 0;\n\n\t\tconst insertionIndexBefore = isAnyBlockSelected\n\t\t\t? selectedBlockIndex\n\t\t\t: insertionIndexStart;\n\n\t\tconst insertionIndexAfter = isAnyBlockSelected\n\t\t\t? selectedBlockIndex + 1\n\t\t\t: endOfRootIndex;\n\n\t\tconst insertionIndexEnd = endOfRootIndex;\n\n\t\treturn {\n\t\t\tblockTypeImpressions: getBlockEditorSettings().impressions,\n\t\t\tdestinationRootClientId,\n\t\t\tinsertionIndexDefault: getDefaultInsertionIndex(),\n\t\t\tinsertionIndexBefore,\n\t\t\tinsertionIndexAfter,\n\t\t\tinsertionIndexStart,\n\t\t\tinsertionIndexEnd,\n\t\t\tisAnyBlockSelected: !! isAnyBlockSelected,\n\t\t\tisSelectedBlockReplaceable: isSelectedUnmodifiedDefaultBlock,\n\t\t};\n\t} ),\n\n\twithPreferredColorScheme,\n] )( Inserter );\n"]}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
1
|
import { createElement } from "@wordpress/element";
|
|
2
2
|
|
|
3
|
-
/**
|
|
4
|
-
* External dependencies
|
|
5
|
-
*/
|
|
6
|
-
import { noop } from 'lodash';
|
|
7
3
|
/**
|
|
8
4
|
* WordPress dependencies
|
|
9
5
|
*/
|
|
10
|
-
|
|
11
6
|
import { useSelect } from '@wordpress/data';
|
|
12
7
|
import { forwardRef } from '@wordpress/element';
|
|
13
8
|
/**
|
|
@@ -17,6 +12,8 @@ import { forwardRef } from '@wordpress/element';
|
|
|
17
12
|
import InserterMenu from './menu';
|
|
18
13
|
import { store as blockEditorStore } from '../../store';
|
|
19
14
|
|
|
15
|
+
const noop = () => {};
|
|
16
|
+
|
|
20
17
|
function InserterLibrary(_ref, ref) {
|
|
21
18
|
let {
|
|
22
19
|
rootClientId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/library.js"],"names":["
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/library.js"],"names":["useSelect","forwardRef","InserterMenu","store","blockEditorStore","noop","InserterLibrary","ref","rootClientId","clientId","isAppender","showInserterHelpPanel","showMostUsedBlocks","__experimentalInsertionIndex","__experimentalFilterValue","onSelect","shouldFocusBlock","destinationRootClientId","select","getBlockRootClientId","undefined"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,UAAT,QAA2B,oBAA3B;AAEA;AACA;AACA;;AACA,OAAOC,YAAP,MAAyB,QAAzB;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,MAAMC,IAAI,GAAG,MAAM,CAAE,CAArB;;AAEA,SAASC,eAAT,OAYCC,GAZD,EAaE;AAAA,MAZD;AACCC,IAAAA,YADD;AAECC,IAAAA,QAFD;AAGCC,IAAAA,UAHD;AAICC,IAAAA,qBAJD;AAKCC,IAAAA,kBAAkB,GAAG,KALtB;AAMCC,IAAAA,4BAND;AAOCC,IAAAA,yBAPD;AAQCC,IAAAA,QAAQ,GAAGV,IARZ;AASCW,IAAAA,gBAAgB,GAAG;AATpB,GAYC;AACD,QAAMC,uBAAuB,GAAGjB,SAAS,CACtCkB,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAA2BD,MAAM,CAAEd,gBAAF,CAAvC;AAEA,WACCI,YAAY,IAAIW,oBAAoB,CAAEV,QAAF,CAApC,IAAoDW,SADrD;AAGA,GAPuC,EAQxC,CAAEX,QAAF,EAAYD,YAAZ,CARwC,CAAzC;AAWA,SACC,cAAC,YAAD;AACC,IAAA,QAAQ,EAAGO,QADZ;AAEC,IAAA,YAAY,EAAGE,uBAFhB;AAGC,IAAA,QAAQ,EAAGR,QAHZ;AAIC,IAAA,UAAU,EAAGC,UAJd;AAKC,IAAA,qBAAqB,EAAGC,qBALzB;AAMC,IAAA,kBAAkB,EAAGC,kBANtB;AAOC,IAAA,4BAA4B,EAAGC,4BAPhC;AAQC,IAAA,yBAAyB,EAAGC,yBAR7B;AASC,IAAA,gBAAgB,EAAGE,gBATpB;AAUC,IAAA,GAAG,EAAGT;AAVP,IADD;AAcA;;AAED,eAAeN,UAAU,CAAEK,eAAF,CAAzB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport InserterMenu from './menu';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\n\nfunction InserterLibrary(\n\t{\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tshowInserterHelpPanel,\n\t\tshowMostUsedBlocks = false,\n\t\t__experimentalInsertionIndex,\n\t\t__experimentalFilterValue,\n\t\tonSelect = noop,\n\t\tshouldFocusBlock = false,\n\t},\n\tref\n) {\n\tconst destinationRootClientId = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId } = select( blockEditorStore );\n\n\t\t\treturn (\n\t\t\t\trootClientId || getBlockRootClientId( clientId ) || undefined\n\t\t\t);\n\t\t},\n\t\t[ clientId, rootClientId ]\n\t);\n\n\treturn (\n\t\t<InserterMenu\n\t\t\tonSelect={ onSelect }\n\t\t\trootClientId={ destinationRootClientId }\n\t\t\tclientId={ clientId }\n\t\t\tisAppender={ isAppender }\n\t\t\tshowInserterHelpPanel={ showInserterHelpPanel }\n\t\t\tshowMostUsedBlocks={ showMostUsedBlocks }\n\t\t\t__experimentalInsertionIndex={ __experimentalInsertionIndex }\n\t\t\t__experimentalFilterValue={ __experimentalFilterValue }\n\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\tref={ ref }\n\t\t/>\n\t);\n}\n\nexport default forwardRef( InserterLibrary );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"names":["forwardRef","useState","useCallback","useMemo","useImperativeHandle","useRef","VisuallyHidden","SearchControl","__","useSelect","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTabs","ReusableBlocksTab","InserterSearchResults","useInsertionPoint","InserterTabs","store","blockEditorStore","InserterMenu","ref","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","filterValue","setFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","hasReusableBlocks","select","__experimentalGetAllowedPatterns","getSettings","length","__experimentalReusableBlocks","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","blocksTab","patternsTab","reusableBlocksTab","getCurrentTab","tab","name","searchRef","focusSearch","current","focus","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseImperativeHandle,\n\tuseRef,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\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 BlockPatternsTabs from './block-patterns-tab';\nimport ReusableBlocksTab from './reusable-blocks-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { store as blockEditorStore } from '../../store';\n\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},\n\tref\n) {\n\tconst [ filterValue, setFilterValue ] = useState(\n\t\t__experimentalFilterValue\n\t);\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] = useState(\n\t\tnull\n\t);\n\n\tconst [\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks,\n\t\tonToggleInsertionPoint,\n\t] = useInsertionPoint( {\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t\tinsertionIndex: __experimentalInsertionIndex,\n\t\tshouldFocusBlock,\n\t} );\n\tconst { showPatterns, hasReusableBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tshowPatterns: !! __experimentalGetAllowedPatterns(\n\t\t\t\t\tdestinationRootClientId\n\t\t\t\t).length,\n\t\t\t\thasReusableBlocks: !! getSettings().__experimentalReusableBlocks\n\t\t\t\t\t?.length,\n\t\t\t};\n\t\t},\n\t\t[ destinationRootClientId ]\n\t);\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock ) => {\n\t\t\tonInsertBlocks( blocks, meta, shouldForceFocusBlock );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\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 ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t},\n\t\t[ setSelectedPatternCategory ]\n\t);\n\n\tconst blocksTab = useMemo(\n\t\t() => (\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\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\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tonHover,\n\t\t\tfilterValue,\n\t\t\tshowMostUsedBlocks,\n\t\t\tshowInserterHelpPanel,\n\t\t]\n\t);\n\n\tconst patternsTab = useMemo(\n\t\t() => (\n\t\t\t<BlockPatternsTabs\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonClickCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t/>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsertPattern,\n\t\t\tonClickPatternCategory,\n\t\t\tselectedPatternCategory,\n\t\t]\n\t);\n\n\tconst reusableBlocksTab = useMemo(\n\t\t() => (\n\t\t\t<ReusableBlocksTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t),\n\t\t[ destinationRootClientId, onInsert, onHover ]\n\t);\n\n\tconst getCurrentTab = useCallback(\n\t\t( tab ) => {\n\t\t\tif ( tab.name === 'blocks' ) {\n\t\t\t\treturn blocksTab;\n\t\t\t} else if ( tab.name === 'patterns' ) {\n\t\t\t\treturn patternsTab;\n\t\t\t}\n\t\t\treturn reusableBlocksTab;\n\t\t},\n\t\t[ blocksTab, patternsTab, reusableBlocksTab ]\n\t);\n\n\tconst searchRef = useRef();\n\tuseImperativeHandle( ref, () => ( {\n\t\tfocusSearch: () => {\n\t\t\tsearchRef.current.focus();\n\t\t},\n\t} ) );\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__menu\">\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t{ /* The following div is necessary to fix the sticky position of the search form. */ }\n\t\t\t\t<div className=\"block-editor-inserter__content\">\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tif ( hoveredItem ) setHoveredItem( null );\n\t\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\t\tref={ searchRef }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! filterValue && (\n\t\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! filterValue && ( showPatterns || hasReusableBlocks ) && (\n\t\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\t\tshowPatterns={ showPatterns }\n\t\t\t\t\t\t\tshowReusableBlocks={ hasReusableBlocks }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getCurrentTab }\n\t\t\t\t\t\t</InserterTabs>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! filterValue &&\n\t\t\t\t\t\t! showPatterns &&\n\t\t\t\t\t\t! hasReusableBlocks &&\n\t\t\t\t\t\tblocksTab }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.js"],"names":["forwardRef","useState","useCallback","useMemo","useImperativeHandle","useRef","VisuallyHidden","SearchControl","__","useSelect","Tips","InserterPreviewPanel","BlockTypesTab","BlockPatternsTabs","ReusableBlocksTab","InserterSearchResults","useInsertionPoint","InserterTabs","store","blockEditorStore","InserterMenu","ref","rootClientId","clientId","isAppender","__experimentalInsertionIndex","onSelect","showInserterHelpPanel","showMostUsedBlocks","__experimentalFilterValue","shouldFocusBlock","filterValue","setFilterValue","hoveredItem","setHoveredItem","selectedPatternCategory","setSelectedPatternCategory","destinationRootClientId","onInsertBlocks","onToggleInsertionPoint","insertionIndex","showPatterns","hasReusableBlocks","select","__experimentalGetAllowedPatterns","getSettings","length","__experimentalReusableBlocks","onInsert","blocks","meta","shouldForceFocusBlock","onInsertPattern","patternName","onHover","item","onClickPatternCategory","patternCategory","blocksTab","patternsTab","reusableBlocksTab","getCurrentTab","tab","name","searchRef","focusSearch","current","focus","value"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tuseState,\n\tuseCallback,\n\tuseMemo,\n\tuseImperativeHandle,\n\tuseRef,\n} from '@wordpress/element';\nimport { VisuallyHidden, SearchControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\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 BlockPatternsTabs from './block-patterns-tab';\nimport ReusableBlocksTab from './reusable-blocks-tab';\nimport InserterSearchResults from './search-results';\nimport useInsertionPoint from './hooks/use-insertion-point';\nimport InserterTabs from './tabs';\nimport { store as blockEditorStore } from '../../store';\n\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},\n\tref\n) {\n\tconst [ filterValue, setFilterValue ] = useState(\n\t\t__experimentalFilterValue\n\t);\n\tconst [ hoveredItem, setHoveredItem ] = useState( null );\n\tconst [ selectedPatternCategory, setSelectedPatternCategory ] =\n\t\tuseState( null );\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 { showPatterns, hasReusableBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { __experimentalGetAllowedPatterns, getSettings } =\n\t\t\t\tselect( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tshowPatterns: !! __experimentalGetAllowedPatterns(\n\t\t\t\t\tdestinationRootClientId\n\t\t\t\t).length,\n\t\t\t\thasReusableBlocks:\n\t\t\t\t\t!! getSettings().__experimentalReusableBlocks?.length,\n\t\t\t};\n\t\t},\n\t\t[ destinationRootClientId ]\n\t);\n\n\tconst onInsert = useCallback(\n\t\t( blocks, meta, shouldForceFocusBlock ) => {\n\t\t\tonInsertBlocks( blocks, meta, shouldForceFocusBlock );\n\t\t\tonSelect();\n\t\t},\n\t\t[ onInsertBlocks, onSelect ]\n\t);\n\n\tconst onInsertPattern = useCallback(\n\t\t( blocks, patternName ) => {\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 ) => {\n\t\t\tsetSelectedPatternCategory( patternCategory );\n\t\t},\n\t\t[ setSelectedPatternCategory ]\n\t);\n\n\tconst blocksTab = useMemo(\n\t\t() => (\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\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\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsert,\n\t\t\tonHover,\n\t\t\tfilterValue,\n\t\t\tshowMostUsedBlocks,\n\t\t\tshowInserterHelpPanel,\n\t\t]\n\t);\n\n\tconst patternsTab = useMemo(\n\t\t() => (\n\t\t\t<BlockPatternsTabs\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsertPattern }\n\t\t\t\tonClickCategory={ onClickPatternCategory }\n\t\t\t\tselectedCategory={ selectedPatternCategory }\n\t\t\t/>\n\t\t),\n\t\t[\n\t\t\tdestinationRootClientId,\n\t\t\tonInsertPattern,\n\t\t\tonClickPatternCategory,\n\t\t\tselectedPatternCategory,\n\t\t]\n\t);\n\n\tconst reusableBlocksTab = useMemo(\n\t\t() => (\n\t\t\t<ReusableBlocksTab\n\t\t\t\trootClientId={ destinationRootClientId }\n\t\t\t\tonInsert={ onInsert }\n\t\t\t\tonHover={ onHover }\n\t\t\t/>\n\t\t),\n\t\t[ destinationRootClientId, onInsert, onHover ]\n\t);\n\n\tconst getCurrentTab = useCallback(\n\t\t( tab ) => {\n\t\t\tif ( tab.name === 'blocks' ) {\n\t\t\t\treturn blocksTab;\n\t\t\t} else if ( tab.name === 'patterns' ) {\n\t\t\t\treturn patternsTab;\n\t\t\t}\n\t\t\treturn reusableBlocksTab;\n\t\t},\n\t\t[ blocksTab, patternsTab, reusableBlocksTab ]\n\t);\n\n\tconst searchRef = useRef();\n\tuseImperativeHandle( ref, () => ( {\n\t\tfocusSearch: () => {\n\t\t\tsearchRef.current.focus();\n\t\t},\n\t} ) );\n\n\treturn (\n\t\t<div className=\"block-editor-inserter__menu\">\n\t\t\t<div className=\"block-editor-inserter__main-area\">\n\t\t\t\t{ /* The following div is necessary to fix the sticky position of the search form. */ }\n\t\t\t\t<div className=\"block-editor-inserter__content\">\n\t\t\t\t\t<SearchControl\n\t\t\t\t\t\tclassName=\"block-editor-inserter__search\"\n\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\tif ( hoveredItem ) setHoveredItem( null );\n\t\t\t\t\t\t\tsetFilterValue( value );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\tlabel={ __( 'Search for blocks and patterns' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Search' ) }\n\t\t\t\t\t\tref={ searchRef }\n\t\t\t\t\t/>\n\t\t\t\t\t{ !! filterValue && (\n\t\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\t\t\tonSelect={ onSelect }\n\t\t\t\t\t\t\tonHover={ onHover }\n\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tisAppender={ isAppender }\n\t\t\t\t\t\t\t__experimentalInsertionIndex={\n\t\t\t\t\t\t\t\t__experimentalInsertionIndex\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshowBlockDirectory\n\t\t\t\t\t\t\tshouldFocusBlock={ shouldFocusBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! filterValue && ( showPatterns || hasReusableBlocks ) && (\n\t\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\t\tshowPatterns={ showPatterns }\n\t\t\t\t\t\t\tshowReusableBlocks={ hasReusableBlocks }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ getCurrentTab }\n\t\t\t\t\t\t</InserterTabs>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! filterValue &&\n\t\t\t\t\t\t! showPatterns &&\n\t\t\t\t\t\t! hasReusableBlocks &&\n\t\t\t\t\t\tblocksTab }\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{ showInserterHelpPanel && hoveredItem && (\n\t\t\t\t<InserterPreviewPanel item={ hoveredItem } />\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default forwardRef( InserterMenu );\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.native.js"],"names":["AccessibilityInfo","TouchableHighlight","Platform","useEffect","useState","useCallback","useSelect","useDispatch","createBlock","BottomSheet","BottomSheetConsumer","SearchControl","InserterSearchResults","store","blockEditorStore","InserterTabs","styles","filterInserterItems","MIN_ITEMS_FOR_SEARCH","InserterMenu","onSelect","onDismiss","rootClientId","clientId","isAppender","shouldReplaceBlock","insertionIndex","filterValue","setFilterValue","showTabs","setShowTabs","tabIndex","setTabIndex","isIOS","OS","showInsertionPoint","hideInsertionPoint","clearSelectedBlock","insertBlock","removeBlock","resetBlocks","insertDefaultBlock","items","destinationRootClientId","showReusableBlocks","select","getInserterItems","getBlockRootClientId","getBlockSelectionEnd","targetRootClientId","end","undefined","allItems","reusableBlockItems","onlyReusable","length","getBlockOrder","getBlockCount","count","blockToReplace","onClose","onInsert","item","name","initialAttributes","innerBlocks","newBlock","source","onSelectItem","isScreenReaderEnabled","then","enabled","timeout","setTimeout","onChangeSearch","value","onKeyboardShow","onKeyboardHide","showSearchForm","isFullScreen","listProps"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, TouchableHighlight, Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tBottomSheet,\n\tBottomSheetConsumer,\n\tSearchControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport { store as blockEditorStore } from '../../store';\nimport InserterTabs from './tabs';\nimport styles from './style.scss';\nimport { filterInserterItems } from './utils';\n\nconst MIN_ITEMS_FOR_SEARCH = 2;\nfunction InserterMenu( {\n\tonSelect,\n\tonDismiss,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tshouldReplaceBlock,\n\tinsertionIndex,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ showTabs, setShowTabs ] = useState( true );\n\tconst [ tabIndex, setTabIndex ] = useState( 0 );\n\n\tconst isIOS = Platform.OS === 'ios';\n\n\tconst {\n\t\tshowInsertionPoint,\n\t\thideInsertionPoint,\n\t\tclearSelectedBlock,\n\t\tinsertBlock,\n\t\tremoveBlock,\n\t\tresetBlocks,\n\t\tinsertDefaultBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst { items, destinationRootClientId, showReusableBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetInserterItems,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockSelectionEnd,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet targetRootClientId = rootClientId;\n\t\t\tif ( ! targetRootClientId && ! clientId && ! isAppender ) {\n\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\tif ( end ) {\n\t\t\t\t\ttargetRootClientId =\n\t\t\t\t\t\tgetBlockRootClientId( end ) || undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst allItems = getInserterItems( targetRootClientId );\n\t\t\tconst reusableBlockItems = filterInserterItems( allItems, {\n\t\t\t\tonlyReusable: true,\n\t\t\t} );\n\n\t\t\treturn {\n\t\t\t\titems: allItems,\n\t\t\t\tdestinationRootClientId: targetRootClientId,\n\t\t\t\tshowReusableBlocks: !! reusableBlockItems.length,\n\t\t\t};\n\t\t}\n\t);\n\n\tconst { getBlockOrder, getBlockCount } = useSelect( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// Show/Hide insertion point on Mount/Dismount\n\t\tif ( shouldReplaceBlock ) {\n\t\t\tconst count = getBlockCount();\n\t\t\t// Check if there is a rootClientId because that means it is a nested replaceable block\n\t\t\t// and we don't want to clear/reset all blocks.\n\t\t\tif ( count === 1 && ! rootClientId ) {\n\t\t\t\t// Removing the last block is not possilble with `removeBlock` action.\n\t\t\t\t// It always inserts a default block if the last of the blocks have been removed.\n\t\t\t\tclearSelectedBlock();\n\t\t\t\tresetBlocks( [] );\n\t\t\t} else {\n\t\t\t\tconst blockToReplace = getBlockOrder( destinationRootClientId )[\n\t\t\t\t\tinsertionIndex\n\t\t\t\t];\n\t\t\t\tremoveBlock( blockToReplace, false );\n\t\t\t}\n\t\t}\n\t\tshowInsertionPoint( destinationRootClientId, insertionIndex );\n\n\t\treturn hideInsertionPoint;\n\t}, [] );\n\n\tconst onClose = useCallback( () => {\n\t\t// If should replace but didn't insert any block\n\t\t// re-insert default block.\n\t\tif ( shouldReplaceBlock ) {\n\t\t\tinsertDefaultBlock( {}, destinationRootClientId, insertionIndex );\n\t\t}\n\t\tonDismiss();\n\t}, [ shouldReplaceBlock, destinationRootClientId, insertionIndex ] );\n\n\tconst onInsert = useCallback(\n\t\t( item ) => {\n\t\t\tconst { name, initialAttributes, innerBlocks } = item;\n\n\t\t\tconst newBlock = createBlock(\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tinnerBlocks\n\t\t\t);\n\n\t\t\tinsertBlock(\n\t\t\t\tnewBlock,\n\t\t\t\tinsertionIndex,\n\t\t\t\tdestinationRootClientId,\n\t\t\t\ttrue,\n\t\t\t\t{ source: 'inserter_menu' }\n\t\t\t);\n\t\t},\n\t\t[ insertBlock, destinationRootClientId, insertionIndex ]\n\t);\n\n\tconst onSelectItem = useCallback(\n\t\t( item ) => {\n\t\t\t// Avoid a focus loop, see https://github.com/WordPress/gutenberg/issues/30562\n\t\t\tif ( Platform.OS === 'ios' ) {\n\t\t\t\tAccessibilityInfo.isScreenReaderEnabled().then( ( enabled ) => {\n\t\t\t\t\t// In testing, the bug focus loop needed a longer timeout when VoiceOver was enabled.\n\t\t\t\t\tconst timeout = enabled ? 200 : 100;\n\t\t\t\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\tonInsert( item );\n\t\t\t\t\t}, timeout );\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tonInsert( item );\n\t\t\t}\n\t\t\tonSelect( item );\n\t\t},\n\t\t[ onInsert, onSelect ]\n\t);\n\n\tconst onChangeSearch = useCallback(\n\t\t( value ) => {\n\t\t\tsetFilterValue( value );\n\t\t},\n\t\t[ setFilterValue ]\n\t);\n\n\tconst onKeyboardShow = useCallback( () => setShowTabs( false ), [\n\t\tsetShowTabs,\n\t] );\n\n\tconst onKeyboardHide = useCallback( () => setShowTabs( true ), [\n\t\tsetShowTabs,\n\t] );\n\n\tconst showSearchForm = items.length > MIN_ITEMS_FOR_SEARCH;\n\tconst isFullScreen = ! isIOS && showSearchForm;\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ true }\n\t\t\tonClose={ onClose }\n\t\t\tonKeyboardShow={ onKeyboardShow }\n\t\t\tonKeyboardHide={ onKeyboardHide }\n\t\t\theader={\n\t\t\t\t<>\n\t\t\t\t\t{ showSearchForm && (\n\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\tonChange={ onChangeSearch }\n\t\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showTabs && ! filterValue && (\n\t\t\t\t\t\t<InserterTabs.Control\n\t\t\t\t\t\t\tonChangeTab={ setTabIndex }\n\t\t\t\t\t\t\tshowReusableBlocks={ showReusableBlocks }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t\thasNavigation\n\t\t\tsetMinHeightToMaxHeight={ true }\n\t\t\tcontentStyle={ styles[ 'inserter-menu__list' ] }\n\t\t\tisFullScreen={ isFullScreen }\n\t\t\tallowDragIndicator={ true }\n\t\t>\n\t\t\t<BottomSheetConsumer>\n\t\t\t\t{ ( { listProps } ) => (\n\t\t\t\t\t<TouchableHighlight\n\t\t\t\t\t\taccessible={ false }\n\t\t\t\t\t\tstyle={ styles[ 'inserter-menu__list-wrapper' ] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! showTabs || filterValue ? (\n\t\t\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\t\t\t\t\tlistProps={ listProps }\n\t\t\t\t\t\t\t\tisFullScreen={ isFullScreen }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\tlistProps={ listProps }\n\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\t\t\t\t\tshowReusableBlocks={ showReusableBlocks }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TouchableHighlight>\n\t\t\t\t) }\n\t\t\t</BottomSheetConsumer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default InserterMenu;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/menu.native.js"],"names":["AccessibilityInfo","TouchableHighlight","Platform","useEffect","useState","useCallback","useSelect","useDispatch","createBlock","BottomSheet","BottomSheetConsumer","SearchControl","InserterSearchResults","store","blockEditorStore","InserterTabs","styles","filterInserterItems","MIN_ITEMS_FOR_SEARCH","InserterMenu","onSelect","onDismiss","rootClientId","clientId","isAppender","shouldReplaceBlock","insertionIndex","filterValue","setFilterValue","showTabs","setShowTabs","tabIndex","setTabIndex","isIOS","OS","showInsertionPoint","hideInsertionPoint","clearSelectedBlock","insertBlock","removeBlock","resetBlocks","insertDefaultBlock","items","destinationRootClientId","showReusableBlocks","select","getInserterItems","getBlockRootClientId","getBlockSelectionEnd","targetRootClientId","end","undefined","allItems","reusableBlockItems","onlyReusable","length","getBlockOrder","getBlockCount","count","blockToReplace","onClose","onInsert","item","name","initialAttributes","innerBlocks","newBlock","source","onSelectItem","isScreenReaderEnabled","then","enabled","timeout","setTimeout","onChangeSearch","value","onKeyboardShow","onKeyboardHide","showSearchForm","isFullScreen","listProps"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,iBAAT,EAA4BC,kBAA5B,EAAgDC,QAAhD,QAAgE,cAAhE;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,QAApB,EAA8BC,WAA9B,QAAiD,oBAAjD;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SAASC,WAAT,QAA4B,mBAA5B;AACA,SACCC,WADD,EAECC,mBAFD,EAGCC,aAHD,QAIO,uBAJP;AAMA;AACA;AACA;;AACA,OAAOC,qBAAP,MAAkC,kBAAlC;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,YAAP,MAAyB,QAAzB;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,SAASC,mBAAT,QAAoC,SAApC;AAEA,MAAMC,oBAAoB,GAAG,CAA7B;;AACA,SAASC,YAAT,OAQI;AAAA,MARmB;AACtBC,IAAAA,QADsB;AAEtBC,IAAAA,SAFsB;AAGtBC,IAAAA,YAHsB;AAItBC,IAAAA,QAJsB;AAKtBC,IAAAA,UALsB;AAMtBC,IAAAA,kBANsB;AAOtBC,IAAAA;AAPsB,GAQnB;AACH,QAAM,CAAEC,WAAF,EAAeC,cAAf,IAAkCxB,QAAQ,CAAE,EAAF,CAAhD;AACA,QAAM,CAAEyB,QAAF,EAAYC,WAAZ,IAA4B1B,QAAQ,CAAE,IAAF,CAA1C;AACA,QAAM,CAAE2B,QAAF,EAAYC,WAAZ,IAA4B5B,QAAQ,CAAE,CAAF,CAA1C;AAEA,QAAM6B,KAAK,GAAG/B,QAAQ,CAACgC,EAAT,KAAgB,KAA9B;AAEA,QAAM;AACLC,IAAAA,kBADK;AAELC,IAAAA,kBAFK;AAGLC,IAAAA,kBAHK;AAILC,IAAAA,WAJK;AAKLC,IAAAA,WALK;AAMLC,IAAAA,WANK;AAOLC,IAAAA;AAPK,MAQFlC,WAAW,CAAEO,gBAAF,CARf;AAUA,QAAM;AAAE4B,IAAAA,KAAF;AAASC,IAAAA,uBAAT;AAAkCC,IAAAA;AAAlC,MAAyDtC,SAAS,CACrEuC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,gBADK;AAELC,MAAAA,oBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAE/B,gBAAF,CAJV;AAMA,QAAImC,kBAAkB,GAAG3B,YAAzB;;AACA,QAAK,CAAE2B,kBAAF,IAAwB,CAAE1B,QAA1B,IAAsC,CAAEC,UAA7C,EAA0D;AACzD,YAAM0B,GAAG,GAAGF,oBAAoB,EAAhC;;AACA,UAAKE,GAAL,EAAW;AACVD,QAAAA,kBAAkB,GACjBF,oBAAoB,CAAEG,GAAF,CAApB,IAA+BC,SADhC;AAEA;AACD;;AAED,UAAMC,QAAQ,GAAGN,gBAAgB,CAAEG,kBAAF,CAAjC;AACA,UAAMI,kBAAkB,GAAGpC,mBAAmB,CAAEmC,QAAF,EAAY;AACzDE,MAAAA,YAAY,EAAE;AAD2C,KAAZ,CAA9C;AAIA,WAAO;AACNZ,MAAAA,KAAK,EAAEU,QADD;AAENT,MAAAA,uBAAuB,EAAEM,kBAFnB;AAGNL,MAAAA,kBAAkB,EAAE,CAAC,CAAES,kBAAkB,CAACE;AAHpC,KAAP;AAKA,GA3BsE,CAAxE;AA8BA,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA;AAAjB,MAAmCnD,SAAS,CAAEQ,gBAAF,CAAlD;AAEAX,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA,QAAKsB,kBAAL,EAA0B;AACzB,YAAMiC,KAAK,GAAGD,aAAa,EAA3B,CADyB,CAEzB;AACA;;AACA,UAAKC,KAAK,KAAK,CAAV,IAAe,CAAEpC,YAAtB,EAAqC;AACpC;AACA;AACAe,QAAAA,kBAAkB;AAClBG,QAAAA,WAAW,CAAE,EAAF,CAAX;AACA,OALD,MAKO;AACN,cAAMmB,cAAc,GAAGH,aAAa,CAAEb,uBAAF,CAAb,CACtBjB,cADsB,CAAvB;AAGAa,QAAAA,WAAW,CAAEoB,cAAF,EAAkB,KAAlB,CAAX;AACA;AACD;;AACDxB,IAAAA,kBAAkB,CAAEQ,uBAAF,EAA2BjB,cAA3B,CAAlB;AAEA,WAAOU,kBAAP;AACA,GArBQ,EAqBN,EArBM,CAAT;AAuBA,QAAMwB,OAAO,GAAGvD,WAAW,CAAE,MAAM;AAClC;AACA;AACA,QAAKoB,kBAAL,EAA0B;AACzBgB,MAAAA,kBAAkB,CAAE,EAAF,EAAME,uBAAN,EAA+BjB,cAA/B,CAAlB;AACA;;AACDL,IAAAA,SAAS;AACT,GAP0B,EAOxB,CAAEI,kBAAF,EAAsBkB,uBAAtB,EAA+CjB,cAA/C,CAPwB,CAA3B;AASA,QAAMmC,QAAQ,GAAGxD,WAAW,CACzByD,IAAF,IAAY;AACX,UAAM;AAAEC,MAAAA,IAAF;AAAQC,MAAAA,iBAAR;AAA2BC,MAAAA;AAA3B,QAA2CH,IAAjD;AAEA,UAAMI,QAAQ,GAAG1D,WAAW,CAC3BuD,IAD2B,EAE3BC,iBAF2B,EAG3BC,WAH2B,CAA5B;AAMA3B,IAAAA,WAAW,CACV4B,QADU,EAEVxC,cAFU,EAGViB,uBAHU,EAIV,IAJU,EAKV;AAAEwB,MAAAA,MAAM,EAAE;AAAV,KALU,CAAX;AAOA,GAjB0B,EAkB3B,CAAE7B,WAAF,EAAeK,uBAAf,EAAwCjB,cAAxC,CAlB2B,CAA5B;AAqBA,QAAM0C,YAAY,GAAG/D,WAAW,CAC7ByD,IAAF,IAAY;AACX;AACA,QAAK5D,QAAQ,CAACgC,EAAT,KAAgB,KAArB,EAA6B;AAC5BlC,MAAAA,iBAAiB,CAACqE,qBAAlB,GAA0CC,IAA1C,CAAkDC,OAAF,IAAe;AAC9D;AACA,cAAMC,OAAO,GAAGD,OAAO,GAAG,GAAH,GAAS,GAAhC,CAF8D,CAG9D;;AACAE,QAAAA,UAAU,CAAE,MAAM;AACjBZ,UAAAA,QAAQ,CAAEC,IAAF,CAAR;AACA,SAFS,EAEPU,OAFO,CAAV;AAGA,OAPD;AAQA,KATD,MASO;AACNX,MAAAA,QAAQ,CAAEC,IAAF,CAAR;AACA;;AACD1C,IAAAA,QAAQ,CAAE0C,IAAF,CAAR;AACA,GAhB8B,EAiB/B,CAAED,QAAF,EAAYzC,QAAZ,CAjB+B,CAAhC;AAoBA,QAAMsD,cAAc,GAAGrE,WAAW,CAC/BsE,KAAF,IAAa;AACZ/C,IAAAA,cAAc,CAAE+C,KAAF,CAAd;AACA,GAHgC,EAIjC,CAAE/C,cAAF,CAJiC,CAAlC;AAOA,QAAMgD,cAAc,GAAGvE,WAAW,CACjC,MAAMyB,WAAW,CAAE,KAAF,CADgB,EAEjC,CAAEA,WAAF,CAFiC,CAAlC;AAKA,QAAM+C,cAAc,GAAGxE,WAAW,CACjC,MAAMyB,WAAW,CAAE,IAAF,CADgB,EAEjC,CAAEA,WAAF,CAFiC,CAAlC;AAKA,QAAMgD,cAAc,GAAGpC,KAAK,CAACa,MAAN,GAAerC,oBAAtC;AACA,QAAM6D,YAAY,GAAG,CAAE9C,KAAF,IAAW6C,cAAhC;AAEA,SACC,cAAC,WAAD;AACC,IAAA,SAAS,EAAG,IADb;AAEC,IAAA,OAAO,EAAGlB,OAFX;AAGC,IAAA,cAAc,EAAGgB,cAHlB;AAIC,IAAA,cAAc,EAAGC,cAJlB;AAKC,IAAA,MAAM,EACL,8BACGC,cAAc,IACf,cAAC,aAAD;AACC,MAAA,QAAQ,EAAGJ,cADZ;AAEC,MAAA,KAAK,EAAG/C;AAFT,MAFF,EAOGE,QAAQ,IAAI,CAAEF,WAAd,IACD,cAAC,YAAD,CAAc,OAAd;AACC,MAAA,WAAW,EAAGK,WADf;AAEC,MAAA,kBAAkB,EAAGY;AAFtB,MARF,CANF;AAqBC,IAAA,aAAa,MArBd;AAsBC,IAAA,uBAAuB,EAAG,IAtB3B;AAuBC,IAAA,YAAY,EAAG5B,MAAM,CAAE,qBAAF,CAvBtB;AAwBC,IAAA,YAAY,EAAG+D,YAxBhB;AAyBC,IAAA,kBAAkB,EAAG;AAzBtB,KA2BC,cAAC,mBAAD,QACG;AAAA,QAAE;AAAEC,MAAAA;AAAF,KAAF;AAAA,WACD,cAAC,kBAAD;AACC,MAAA,UAAU,EAAG,KADd;AAEC,MAAA,KAAK,EAAGhE,MAAM,CAAE,6BAAF;AAFf,OAIG,CAAEa,QAAF,IAAcF,WAAd,GACD,cAAC,qBAAD;AACC,MAAA,YAAY,EAAGL,YADhB;AAEC,MAAA,WAAW,EAAGK,WAFf;AAGC,MAAA,QAAQ,EAAGyC,YAHZ;AAIC,MAAA,SAAS,EAAGY,SAJb;AAKC,MAAA,YAAY,EAAGD;AALhB,MADC,GASD,cAAC,YAAD;AACC,MAAA,YAAY,EAAGzD,YADhB;AAEC,MAAA,SAAS,EAAG0D,SAFb;AAGC,MAAA,QAAQ,EAAGjD,QAHZ;AAIC,MAAA,QAAQ,EAAGqC,YAJZ;AAKC,MAAA,kBAAkB,EAAGxB;AALtB,MAbF,CADC;AAAA,GADH,CA3BD,CADD;AAwDA;;AAED,eAAezB,YAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { AccessibilityInfo, TouchableHighlight, Platform } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState, useCallback } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tBottomSheet,\n\tBottomSheetConsumer,\n\tSearchControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport InserterSearchResults from './search-results';\nimport { store as blockEditorStore } from '../../store';\nimport InserterTabs from './tabs';\nimport styles from './style.scss';\nimport { filterInserterItems } from './utils';\n\nconst MIN_ITEMS_FOR_SEARCH = 2;\nfunction InserterMenu( {\n\tonSelect,\n\tonDismiss,\n\trootClientId,\n\tclientId,\n\tisAppender,\n\tshouldReplaceBlock,\n\tinsertionIndex,\n} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ showTabs, setShowTabs ] = useState( true );\n\tconst [ tabIndex, setTabIndex ] = useState( 0 );\n\n\tconst isIOS = Platform.OS === 'ios';\n\n\tconst {\n\t\tshowInsertionPoint,\n\t\thideInsertionPoint,\n\t\tclearSelectedBlock,\n\t\tinsertBlock,\n\t\tremoveBlock,\n\t\tresetBlocks,\n\t\tinsertDefaultBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst { items, destinationRootClientId, showReusableBlocks } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetInserterItems,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockSelectionEnd,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tlet targetRootClientId = rootClientId;\n\t\t\tif ( ! targetRootClientId && ! clientId && ! isAppender ) {\n\t\t\t\tconst end = getBlockSelectionEnd();\n\t\t\t\tif ( end ) {\n\t\t\t\t\ttargetRootClientId =\n\t\t\t\t\t\tgetBlockRootClientId( end ) || undefined;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst allItems = getInserterItems( targetRootClientId );\n\t\t\tconst reusableBlockItems = filterInserterItems( allItems, {\n\t\t\t\tonlyReusable: true,\n\t\t\t} );\n\n\t\t\treturn {\n\t\t\t\titems: allItems,\n\t\t\t\tdestinationRootClientId: targetRootClientId,\n\t\t\t\tshowReusableBlocks: !! reusableBlockItems.length,\n\t\t\t};\n\t\t}\n\t);\n\n\tconst { getBlockOrder, getBlockCount } = useSelect( blockEditorStore );\n\n\tuseEffect( () => {\n\t\t// Show/Hide insertion point on Mount/Dismount\n\t\tif ( shouldReplaceBlock ) {\n\t\t\tconst count = getBlockCount();\n\t\t\t// Check if there is a rootClientId because that means it is a nested replaceable block\n\t\t\t// and we don't want to clear/reset all blocks.\n\t\t\tif ( count === 1 && ! rootClientId ) {\n\t\t\t\t// Removing the last block is not possilble with `removeBlock` action.\n\t\t\t\t// It always inserts a default block if the last of the blocks have been removed.\n\t\t\t\tclearSelectedBlock();\n\t\t\t\tresetBlocks( [] );\n\t\t\t} else {\n\t\t\t\tconst blockToReplace = getBlockOrder( destinationRootClientId )[\n\t\t\t\t\tinsertionIndex\n\t\t\t\t];\n\t\t\t\tremoveBlock( blockToReplace, false );\n\t\t\t}\n\t\t}\n\t\tshowInsertionPoint( destinationRootClientId, insertionIndex );\n\n\t\treturn hideInsertionPoint;\n\t}, [] );\n\n\tconst onClose = useCallback( () => {\n\t\t// If should replace but didn't insert any block\n\t\t// re-insert default block.\n\t\tif ( shouldReplaceBlock ) {\n\t\t\tinsertDefaultBlock( {}, destinationRootClientId, insertionIndex );\n\t\t}\n\t\tonDismiss();\n\t}, [ shouldReplaceBlock, destinationRootClientId, insertionIndex ] );\n\n\tconst onInsert = useCallback(\n\t\t( item ) => {\n\t\t\tconst { name, initialAttributes, innerBlocks } = item;\n\n\t\t\tconst newBlock = createBlock(\n\t\t\t\tname,\n\t\t\t\tinitialAttributes,\n\t\t\t\tinnerBlocks\n\t\t\t);\n\n\t\t\tinsertBlock(\n\t\t\t\tnewBlock,\n\t\t\t\tinsertionIndex,\n\t\t\t\tdestinationRootClientId,\n\t\t\t\ttrue,\n\t\t\t\t{ source: 'inserter_menu' }\n\t\t\t);\n\t\t},\n\t\t[ insertBlock, destinationRootClientId, insertionIndex ]\n\t);\n\n\tconst onSelectItem = useCallback(\n\t\t( item ) => {\n\t\t\t// Avoid a focus loop, see https://github.com/WordPress/gutenberg/issues/30562\n\t\t\tif ( Platform.OS === 'ios' ) {\n\t\t\t\tAccessibilityInfo.isScreenReaderEnabled().then( ( enabled ) => {\n\t\t\t\t\t// In testing, the bug focus loop needed a longer timeout when VoiceOver was enabled.\n\t\t\t\t\tconst timeout = enabled ? 200 : 100;\n\t\t\t\t\t// eslint-disable-next-line @wordpress/react-no-unsafe-timeout\n\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\tonInsert( item );\n\t\t\t\t\t}, timeout );\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tonInsert( item );\n\t\t\t}\n\t\t\tonSelect( item );\n\t\t},\n\t\t[ onInsert, onSelect ]\n\t);\n\n\tconst onChangeSearch = useCallback(\n\t\t( value ) => {\n\t\t\tsetFilterValue( value );\n\t\t},\n\t\t[ setFilterValue ]\n\t);\n\n\tconst onKeyboardShow = useCallback(\n\t\t() => setShowTabs( false ),\n\t\t[ setShowTabs ]\n\t);\n\n\tconst onKeyboardHide = useCallback(\n\t\t() => setShowTabs( true ),\n\t\t[ setShowTabs ]\n\t);\n\n\tconst showSearchForm = items.length > MIN_ITEMS_FOR_SEARCH;\n\tconst isFullScreen = ! isIOS && showSearchForm;\n\n\treturn (\n\t\t<BottomSheet\n\t\t\tisVisible={ true }\n\t\t\tonClose={ onClose }\n\t\t\tonKeyboardShow={ onKeyboardShow }\n\t\t\tonKeyboardHide={ onKeyboardHide }\n\t\t\theader={\n\t\t\t\t<>\n\t\t\t\t\t{ showSearchForm && (\n\t\t\t\t\t\t<SearchControl\n\t\t\t\t\t\t\tonChange={ onChangeSearch }\n\t\t\t\t\t\t\tvalue={ filterValue }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ showTabs && ! filterValue && (\n\t\t\t\t\t\t<InserterTabs.Control\n\t\t\t\t\t\t\tonChangeTab={ setTabIndex }\n\t\t\t\t\t\t\tshowReusableBlocks={ showReusableBlocks }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t}\n\t\t\thasNavigation\n\t\t\tsetMinHeightToMaxHeight={ true }\n\t\t\tcontentStyle={ styles[ 'inserter-menu__list' ] }\n\t\t\tisFullScreen={ isFullScreen }\n\t\t\tallowDragIndicator={ true }\n\t\t>\n\t\t\t<BottomSheetConsumer>\n\t\t\t\t{ ( { listProps } ) => (\n\t\t\t\t\t<TouchableHighlight\n\t\t\t\t\t\taccessible={ false }\n\t\t\t\t\t\tstyle={ styles[ 'inserter-menu__list-wrapper' ] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! showTabs || filterValue ? (\n\t\t\t\t\t\t\t<InserterSearchResults\n\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\tfilterValue={ filterValue }\n\t\t\t\t\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\t\t\t\t\tlistProps={ listProps }\n\t\t\t\t\t\t\t\tisFullScreen={ isFullScreen }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<InserterTabs\n\t\t\t\t\t\t\t\trootClientId={ rootClientId }\n\t\t\t\t\t\t\t\tlistProps={ listProps }\n\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\tonSelect={ onSelectItem }\n\t\t\t\t\t\t\t\tshowReusableBlocks={ showReusableBlocks }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TouchableHighlight>\n\t\t\t\t) }\n\t\t\t</BottomSheetConsumer>\n\t\t</BottomSheet>\n\t);\n}\n\nexport default InserterMenu;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/no-results.native.js"],"names":["View","Text","usePreferredColorSchemeStyle","__","styles","InserterNoResults","containerStyle","textPrimaryBaseStyle","textPrimaryDarkStyle","textSecondaryBaseStyle","textSecondaryDarkStyle","textPrimaryStyle","textSecondaryStyle"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,IAAf,QAA2B,cAA3B;AAEA;AACA;AACA;;AACA,SAASC,4BAAT,QAA6C,oBAA7C;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;;AAEA,SAASC,iBAAT,GAA6B;AAC5B,QAAM;AACL,6CAAyCC,cADpC;AAEL,gDAA4CC,oBAFvC;AAGL,sDAAkDC,oBAH7C;AAIL,kDAA8CC,sBAJzC;AAKL,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/no-results.native.js"],"names":["View","Text","usePreferredColorSchemeStyle","__","styles","InserterNoResults","containerStyle","textPrimaryBaseStyle","textPrimaryDarkStyle","textSecondaryBaseStyle","textSecondaryDarkStyle","textPrimaryStyle","textSecondaryStyle"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,IAAf,QAA2B,cAA3B;AAEA;AACA;AACA;;AACA,SAASC,4BAAT,QAA6C,oBAA7C;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;;AAEA,SAASC,iBAAT,GAA6B;AAC5B,QAAM;AACL,6CAAyCC,cADpC;AAEL,gDAA4CC,oBAFvC;AAGL,sDAAkDC,oBAH7C;AAIL,kDAA8CC,sBAJzC;AAKL,wDACCC;AANI,MAOFN,MAPJ;AAQA,QAAMO,gBAAgB,GAAGT,4BAA4B,CACpDK,oBADoD,EAEpDC,oBAFoD,CAArD;AAIA,QAAMI,kBAAkB,GAAGV,4BAA4B,CACtDO,sBADsD,EAEtDC,sBAFsD,CAAvD;AAKA,SACC,cAAC,IAAD,QACC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGJ;AAAd,KACC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGK;AAAd,KACGR,EAAE,CAAE,iBAAF,CADL,CADD,EAIC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGS;AAAd,KACGT,EAAE,CAAE,yBAAF,CADL,CAJD,CADD,CADD;AAYA;;AAED,eAAeE,iBAAf","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nfunction InserterNoResults() {\n\tconst {\n\t\t'inserter-search-no-results__container': containerStyle,\n\t\t'inserter-search-no-results__text-primary': textPrimaryBaseStyle,\n\t\t'inserter-search-no-results__text-primary--dark': textPrimaryDarkStyle,\n\t\t'inserter-search-no-results__text-secondary': textSecondaryBaseStyle,\n\t\t'inserter-search-no-results__text-secondary--dark':\n\t\t\ttextSecondaryDarkStyle,\n\t} = styles;\n\tconst textPrimaryStyle = usePreferredColorSchemeStyle(\n\t\ttextPrimaryBaseStyle,\n\t\ttextPrimaryDarkStyle\n\t);\n\tconst textSecondaryStyle = usePreferredColorSchemeStyle(\n\t\ttextSecondaryBaseStyle,\n\t\ttextSecondaryDarkStyle\n\t);\n\n\treturn (\n\t\t<View>\n\t\t\t<View style={ containerStyle }>\n\t\t\t\t<Text style={ textPrimaryStyle }>\n\t\t\t\t\t{ __( 'No blocks found' ) }\n\t\t\t\t</Text>\n\t\t\t\t<Text style={ textSecondaryStyle }>\n\t\t\t\t\t{ __( 'Try another search term' ) }\n\t\t\t\t</Text>\n\t\t\t</View>\n\t\t</View>\n\t);\n}\n\nexport default InserterNoResults;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"names":["classnames","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","onBrowseAll","maxBlockPatterns","value"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,oBAApC;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,MAAT,EAAiBC,aAAjB,QAAsC,uBAAtC;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,qBAAP,MAAkC,kBAAlC;AACA,OAAOC,iBAAP,MAA8B,6BAA9B;AACA,OAAOC,gBAAP,MAA6B,4BAA7B;AACA,OAAOC,kBAAP,MAA+B,+BAA/B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,MAAMC,gBAAgB,GAAG,CAAzB;AACA,MAAMC,iBAAiB,GAAG,CAA1B;AACA,MAAMC,oBAAoB,GAAG,CAA7B;AACA,MAAMC,wCAAwC,GAAG,CAAjD;AAEA,eAAe,SAASC,aAAT,OAMX;AAAA,MANmC;AACtCC,IAAAA,QADsC;AAEtCC,IAAAA,YAFsC;AAGtCC,IAAAA,QAHsC;AAItCC,IAAAA,UAJsC;AAKtCC,IAAAA;AALsC,GAMnC;AACH,QAAM,CAAEC,WAAF,EAAeC,cAAf,IAAkCvB,QAAQ,CAAE,EAAF,CAAhD;AACA,QAAM,CAAEwB,uBAAF,EAA2BC,cAA3B,IAA8ClB,iBAAiB,CAAE;AACtEU,IAAAA,QADsE;AAEtEC,IAAAA,YAFsE;AAGtEC,IAAAA,QAHsE;AAItEC,IAAAA;AAJsE,GAAF,CAArE;AAMA,QAAM,CAAEM,UAAF,IAAiBjB,kBAAkB,CACxCe,uBADwC,EAExCC,cAFwC,CAAzC;AAKA,QAAM,CAAEE,QAAF,IAAenB,gBAAgB,CACpCiB,cADoC,EAEpCD,uBAFoC,CAArC;AAKA,QAAM;AAAEI,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAA0CxB,SAAS,CACtDyB,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA,WAAF;AAAeC,MAAAA,aAAf;AAA8BC,MAAAA;AAA9B,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/quick-inserter.js"],"names":["classnames","useState","useEffect","__","Button","SearchControl","useSelect","InserterSearchResults","useInsertionPoint","usePatternsState","useBlockTypesState","store","blockEditorStore","SEARCH_THRESHOLD","SHOWN_BLOCK_TYPES","SHOWN_BLOCK_PATTERNS","SHOWN_BLOCK_PATTERNS_WITH_PRIORITIZATION","QuickInserter","onSelect","rootClientId","clientId","isAppender","prioritizePatterns","filterValue","setFilterValue","destinationRootClientId","onInsertBlocks","blockTypes","patterns","setInserterIsOpened","insertionIndex","select","getSettings","getBlockIndex","getBlockCount","settings","index","blockCount","__experimentalSetIsInserterOpened","showPatterns","length","showSearch","onBrowseAll","maxBlockPatterns","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\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} ) {\n\tconst [ filterValue, setFilterValue ] = useState( '' );\n\tconst [ destinationRootClientId, onInsertBlocks ] = useInsertionPoint( {\n\t\tonSelect,\n\t\trootClientId,\n\t\tclientId,\n\t\tisAppender,\n\t} );\n\tconst [ blockTypes ] = useBlockTypesState(\n\t\tdestinationRootClientId,\n\t\tonInsertBlocks\n\t);\n\n\tconst [ patterns ] = usePatternsState(\n\t\tonInsertBlocks,\n\t\tdestinationRootClientId\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\t( showPatterns && patterns.length > SEARCH_THRESHOLD ) ||\n\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( { rootClientId, insertionIndex, filterValue } );\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={ classnames( '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\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/>\n\t\t\t</div>\n\n\t\t\t{ setInserterIsOpened && (\n\t\t\t\t<Button\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"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import { deburr,
|
|
4
|
+
import { deburr, find, words } from 'lodash'; // Default search helpers.
|
|
5
5
|
|
|
6
6
|
const defaultGetName = item => item.name || '';
|
|
7
7
|
|
|
@@ -52,7 +52,7 @@ export const getNormalizedSearchTerms = function () {
|
|
|
52
52
|
};
|
|
53
53
|
|
|
54
54
|
const removeMatchingTerms = (unmatchedTerms, unprocessedTerms) => {
|
|
55
|
-
return
|
|
55
|
+
return unmatchedTerms.filter(term => !getNormalizedSearchTerms(unprocessedTerms).some(unprocessedTerm => unprocessedTerm.includes(term)));
|
|
56
56
|
};
|
|
57
57
|
|
|
58
58
|
export const searchBlockItems = (items, categories, collections, searchInput) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-items.js"],"names":["deburr","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-items.js"],"names":["deburr","find","words","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultGetCategory","category","defaultGetCollection","normalizeSearchInput","input","replace","toLowerCase","getNormalizedSearchTerms","removeMatchingTerms","unmatchedTerms","unprocessedTerms","filter","term","some","unprocessedTerm","includes","searchBlockItems","items","categories","collections","searchInput","normalizedSearchTerms","length","config","getCategory","slug","getCollection","split","searchItems","rankedItems","map","getItemSearchRank","rank","sort","rank1","rank2","searchTerm","getName","getTitle","getDescription","getKeywords","collection","normalizedSearchInput","normalizedTitle","startsWith","terms","join","isCoreBlockVariation","id"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { deburr, find, words } from 'lodash';\n\n// Default search helpers.\nconst defaultGetName = ( item ) => item.name || '';\nconst defaultGetTitle = ( item ) => item.title;\nconst defaultGetDescription = ( item ) => item.description || '';\nconst defaultGetKeywords = ( item ) => item.keywords || [];\nconst defaultGetCategory = ( item ) => item.category;\nconst defaultGetCollection = () => null;\n\n/**\n * Sanitizes the search input string.\n *\n * @param {string} input The search input to normalize.\n *\n * @return {string} The normalized search input.\n */\nfunction normalizeSearchInput( input = '' ) {\n\t// Disregard diacritics.\n\t// Input: \"média\"\n\tinput = deburr( input );\n\n\t// Accommodate leading slash, matching autocomplete expectations.\n\t// Input: \"/media\"\n\tinput = input.replace( /^\\//, '' );\n\n\t// Lowercase.\n\t// Input: \"MEDIA\"\n\tinput = input.toLowerCase();\n\n\treturn input;\n}\n\n/**\n * Converts the search term into a list of normalized terms.\n *\n * @param {string} input The search term to normalize.\n *\n * @return {string[]} The normalized list of search terms.\n */\nexport const getNormalizedSearchTerms = ( input = '' ) => {\n\t// Extract words.\n\treturn words( normalizeSearchInput( input ) );\n};\n\nconst removeMatchingTerms = ( unmatchedTerms, unprocessedTerms ) => {\n\treturn unmatchedTerms.filter(\n\t\t( term ) =>\n\t\t\t! getNormalizedSearchTerms( unprocessedTerms ).some(\n\t\t\t\t( unprocessedTerm ) => unprocessedTerm.includes( term )\n\t\t\t)\n\t);\n};\n\nexport const searchBlockItems = (\n\titems,\n\tcategories,\n\tcollections,\n\tsearchInput\n) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn items;\n\t}\n\n\tconst config = {\n\t\tgetCategory: ( item ) =>\n\t\t\tfind( categories, { slug: item.category } )?.title,\n\t\tgetCollection: ( item ) =>\n\t\t\tcollections[ item.name.split( '/' )[ 0 ] ]?.title,\n\t};\n\n\treturn searchItems( items, searchInput, config );\n};\n\n/**\n * Filters an item list given a search term.\n *\n * @param {Array} items Item list\n * @param {string} searchInput Search input.\n * @param {Object} config Search Config.\n *\n * @return {Array} Filtered item list.\n */\nexport const searchItems = ( items = [], searchInput = '', config = {} ) => {\n\tconst normalizedSearchTerms = getNormalizedSearchTerms( searchInput );\n\tif ( normalizedSearchTerms.length === 0 ) {\n\t\treturn items;\n\t}\n\n\tconst rankedItems = items\n\t\t.map( ( item ) => {\n\t\t\treturn [ item, getItemSearchRank( item, searchInput, config ) ];\n\t\t} )\n\t\t.filter( ( [ , rank ] ) => rank > 0 );\n\n\trankedItems.sort( ( [ , rank1 ], [ , rank2 ] ) => rank2 - rank1 );\n\treturn rankedItems.map( ( [ item ] ) => item );\n};\n\n/**\n * Get the search rank for a given item and a specific search term.\n * The better the match, the higher the rank.\n * If the rank equals 0, it should be excluded from the results.\n *\n * @param {Object} item Item to filter.\n * @param {string} searchTerm Search term.\n * @param {Object} config Search Config.\n *\n * @return {number} Search Rank.\n */\nexport function getItemSearchRank( item, searchTerm, config = {} ) {\n\tconst {\n\t\tgetName = defaultGetName,\n\t\tgetTitle = defaultGetTitle,\n\t\tgetDescription = defaultGetDescription,\n\t\tgetKeywords = defaultGetKeywords,\n\t\tgetCategory = defaultGetCategory,\n\t\tgetCollection = defaultGetCollection,\n\t} = config;\n\n\tconst name = getName( item );\n\tconst title = getTitle( item );\n\tconst description = getDescription( item );\n\tconst keywords = getKeywords( item );\n\tconst category = getCategory( item );\n\tconst collection = getCollection( item );\n\n\tconst normalizedSearchInput = normalizeSearchInput( searchTerm );\n\tconst normalizedTitle = normalizeSearchInput( title );\n\n\tlet rank = 0;\n\n\t// Prefers exact matches\n\t// Then prefers if the beginning of the title matches the search term\n\t// name, keywords, categories, collection, variations match come later.\n\tif ( normalizedSearchInput === normalizedTitle ) {\n\t\trank += 30;\n\t} else if ( normalizedTitle.startsWith( normalizedSearchInput ) ) {\n\t\trank += 20;\n\t} else {\n\t\tconst terms = [\n\t\t\tname,\n\t\t\ttitle,\n\t\t\tdescription,\n\t\t\t...keywords,\n\t\t\tcategory,\n\t\t\tcollection,\n\t\t].join( ' ' );\n\t\tconst normalizedSearchTerms = words( normalizedSearchInput );\n\t\tconst unmatchedTerms = removeMatchingTerms(\n\t\t\tnormalizedSearchTerms,\n\t\t\tterms\n\t\t);\n\n\t\tif ( unmatchedTerms.length === 0 ) {\n\t\t\trank += 10;\n\t\t}\n\t}\n\n\t// Give a better rank to \"core\" namespaced items.\n\tif ( rank !== 0 && name.startsWith( 'core/' ) ) {\n\t\tconst isCoreBlockVariation = name !== item.id;\n\t\t// Give a bit better rank to \"core\" blocks over \"core\" block variations.\n\t\trank += isCoreBlockVariation ? 1 : 2;\n\t}\n\n\treturn rank;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-results.native.js"],"names":["useSelect","searchItems","BlockTypesList","InserterNoResults","store","blockEditorStore","useBlockTypeImpressions","filterInserterItems","InserterSearchResults","filterValue","onSelect","listProps","rootClientId","isFullScreen","blockTypes","select","allItems","getInserterItems","availableItems","allowReusable","filteredItems","items","trackBlockTypeSelected","length","handleSelect"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,gBAA5B;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,iBAAP,MAA8B,cAA9B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,uBAAP,MAAoC,oCAApC;AACA,SAASC,mBAAT,QAAoC,SAApC;;AAEA,SAASC,qBAAT,OAMI;AAAA,MAN4B;AAC/BC,IAAAA,WAD+B;AAE/BC,IAAAA,QAF+B;AAG/BC,IAAAA,SAH+B;AAI/BC,IAAAA,YAJ+B;AAK/BC,IAAAA;AAL+B,GAM5B;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAiBd,SAAS,CAC7Be,MAAF,IAAc;AACb,UAAMC,QAAQ,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-results.native.js"],"names":["useSelect","searchItems","BlockTypesList","InserterNoResults","store","blockEditorStore","useBlockTypeImpressions","filterInserterItems","InserterSearchResults","filterValue","onSelect","listProps","rootClientId","isFullScreen","blockTypes","select","allItems","getInserterItems","availableItems","allowReusable","filteredItems","items","trackBlockTypeSelected","length","handleSelect"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,WAAT,QAA4B,gBAA5B;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,OAAOC,iBAAP,MAA8B,cAA9B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,OAAOC,uBAAP,MAAoC,oCAApC;AACA,SAASC,mBAAT,QAAoC,SAApC;;AAEA,SAASC,qBAAT,OAMI;AAAA,MAN4B;AAC/BC,IAAAA,WAD+B;AAE/BC,IAAAA,QAF+B;AAG/BC,IAAAA,SAH+B;AAI/BC,IAAAA,YAJ+B;AAK/BC,IAAAA;AAL+B,GAM5B;AACH,QAAM;AAAEC,IAAAA;AAAF,MAAiBd,SAAS,CAC7Be,MAAF,IAAc;AACb,UAAMC,QAAQ,GACbD,MAAM,CAAEV,gBAAF,CAAN,CAA2BY,gBAA3B,CAA6CL,YAA7C,CADD;AAGA,UAAMM,cAAc,GAAGX,mBAAmB,CAAES,QAAF,EAAY;AACrDG,MAAAA,aAAa,EAAE;AADsC,KAAZ,CAA1C;AAGA,UAAMC,aAAa,GAAGnB,WAAW,CAAEiB,cAAF,EAAkBT,WAAlB,CAAjC;AAEA,WAAO;AAAEK,MAAAA,UAAU,EAAEM;AAAd,KAAP;AACA,GAX8B,EAY/B,CAAER,YAAF,EAAgBH,WAAhB,CAZ+B,CAAhC;AAeA,QAAM;AAAEY,IAAAA,KAAF;AAASC,IAAAA;AAAT,MACLhB,uBAAuB,CAAEQ,UAAF,CADxB;;AAGA,MAAK,CAAEO,KAAF,IAAW,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAEE,MAAP,MAAkB,CAAlC,EAAsC;AACrC,WAAO,cAAC,iBAAD,OAAP;AACA;;AAED,QAAMC,YAAY,GAAG,YAAe;AACnCF,IAAAA,sBAAsB,CAAE,YAAF,CAAtB;AACAZ,IAAAA,QAAQ,CAAE,YAAF,CAAR;AACA,GAHD;;AAKA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,QADN;AAEC,IAAA,kBAAkB,EAAGG,YAAY,GAAG,EAAH,GAAQ,CAF1C;AAGQQ,IAAAA,KAHR;AAGeX,IAAAA,QAAQ,EAAEc,YAHzB;AAGuCb,IAAAA;AAHvC,IADD;AAOA;;AAED,eAAeH,qBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { searchItems } from './search-items';\nimport BlockTypesList from '../block-types-list';\nimport InserterNoResults from './no-results';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockTypeImpressions from './hooks/use-block-type-impressions';\nimport { filterInserterItems } from './utils';\n\nfunction InserterSearchResults( {\n\tfilterValue,\n\tonSelect,\n\tlistProps,\n\trootClientId,\n\tisFullScreen,\n} ) {\n\tconst { blockTypes } = useSelect(\n\t\t( select ) => {\n\t\t\tconst allItems =\n\t\t\t\tselect( blockEditorStore ).getInserterItems( rootClientId );\n\n\t\t\tconst availableItems = filterInserterItems( allItems, {\n\t\t\t\tallowReusable: true,\n\t\t\t} );\n\t\t\tconst filteredItems = searchItems( availableItems, filterValue );\n\n\t\t\treturn { blockTypes: filteredItems };\n\t\t},\n\t\t[ rootClientId, filterValue ]\n\t);\n\n\tconst { items, trackBlockTypeSelected } =\n\t\tuseBlockTypeImpressions( blockTypes );\n\n\tif ( ! items || items?.length === 0 ) {\n\t\treturn <InserterNoResults />;\n\t}\n\n\tconst handleSelect = ( ...args ) => {\n\t\ttrackBlockTypeSelected( ...args );\n\t\tonSelect( ...args );\n\t};\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"Blocks\"\n\t\t\tinitialNumToRender={ isFullScreen ? 10 : 3 }\n\t\t\t{ ...{ items, onSelect: handleSelect, listProps } }\n\t\t/>\n\t);\n}\n\nexport default InserterSearchResults;\n"]}
|