@wordpress/block-editor 9.5.0 → 9.7.1-next.d6164808d3.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 +4 -0
- package/build/components/block-alignment-control/use-available-alignments.js +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-edit-visually-button/index.js +46 -0
- package/build/components/block-edit-visually-button/index.js.map +1 -0
- package/build/components/block-list/block.js +12 -2
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/index.native.js +1 -1
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-lock/modal.js +2 -2
- package/build/components/block-lock/modal.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mover/mover-description.js +95 -32
- package/build/components/block-mover/mover-description.js.map +1 -1
- package/build/components/block-popover/inbetween.js +5 -3
- package/build/components/block-popover/inbetween.js.map +1 -1
- package/build/components/block-settings-menu/index.js +2 -6
- package/build/components/block-settings-menu/index.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +1 -1
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/index.js +3 -6
- package/build/components/block-styles/index.js.map +1 -1
- package/build/components/block-styles/preview.native.js +1 -3
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/index.js +10 -16
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-toolbar/index.js +5 -1
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +1 -7
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-tools/index.js +4 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-types-list/index.js +1 -1
- package/build/components/block-types-list/index.js.map +1 -1
- package/build/components/block-types-list/index.native.js +65 -23
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/border-radius-control/all-input-control.js +31 -3
- package/build/components/border-radius-control/all-input-control.js.map +1 -1
- package/build/components/border-radius-control/index.js +23 -7
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/input-controls.js +21 -6
- package/build/components/border-radius-control/input-controls.js.map +1 -1
- package/build/components/border-radius-control/utils.js +13 -16
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors/utils.js +6 -2
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors/with-colors.js +17 -4
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +8 -4
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/dropdown.js +9 -3
- package/build/components/colors-gradients/dropdown.js.map +1 -1
- package/build/components/copy-handler/index.js +6 -0
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +2 -7
- package/build/components/date-format-picker/index.js.map +1 -1
- package/build/components/duotone/components.js +5 -5
- package/build/components/duotone/components.js.map +1 -1
- package/build/components/font-appearance-control/index.js +10 -4
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/font-family/index.js +1 -1
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +17 -4
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/image-editor/cropper.js +4 -3
- package/build/components/image-editor/cropper.js.map +1 -1
- package/build/components/image-editor/index.js +3 -1
- package/build/components/image-editor/index.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 +22 -6
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +11 -4
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +30 -16
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/index.native.js +8 -3
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/preview-panel.js +8 -8
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +5 -1
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-items.js +22 -4
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.native.js +5 -2
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/utils.native.js +21 -0
- package/build/components/inserter/utils.native.js.map +1 -1
- package/build/components/inserter-list-item/index.js +7 -20
- package/build/components/inserter-list-item/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +6 -3
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +6 -3
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/link-control/is-url-like.js +1 -7
- package/build/components/link-control/is-url-like.js.map +1 -1
- package/build/components/link-control/link-preview.js +0 -1
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +1 -7
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-select-button.js +5 -2
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/branch.js +1 -7
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/expander.js +3 -1
- package/build/components/list-view/expander.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +1 -7
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/media-upload/index.native.js +8 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/observe-typing/index.js +22 -8
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/preview-options/index.js +2 -2
- package/build/components/preview-options/index.js.map +1 -1
- package/build/components/{use-no-recursive-renders → recursion-provider}/index.js +40 -18
- package/build/components/recursion-provider/index.js.map +1 -0
- package/build/components/rich-text/format-toolbar-container.js +61 -12
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/index.js +8 -2
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +3 -1
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-before-input-rules.js +110 -0
- package/build/components/rich-text/use-before-input-rules.js.map +1 -0
- package/build/components/rich-text/use-enter.js +0 -4
- package/build/components/rich-text/use-enter.js.map +1 -1
- package/build/components/rich-text/use-format-types.js +39 -22
- package/build/components/rich-text/use-format-types.js.map +1 -1
- package/build/components/spacing-sizes-control/all-input-control.js +53 -0
- package/build/components/spacing-sizes-control/all-input-control.js.map +1 -0
- package/build/components/spacing-sizes-control/axial-input-controls.js +69 -0
- package/build/components/spacing-sizes-control/axial-input-controls.js.map +1 -0
- package/build/components/spacing-sizes-control/index.js +100 -0
- package/build/components/spacing-sizes-control/index.js.map +1 -0
- package/build/components/spacing-sizes-control/input-controls.js +52 -0
- package/build/components/spacing-sizes-control/input-controls.js.map +1 -0
- package/build/components/spacing-sizes-control/linked-button.js +38 -0
- package/build/components/spacing-sizes-control/linked-button.js.map +1 -0
- package/build/components/spacing-sizes-control/spacing-input-control.js +208 -0
- package/build/components/spacing-sizes-control/spacing-input-control.js.map +1 -0
- package/build/components/spacing-sizes-control/utils.js +202 -0
- package/build/components/spacing-sizes-control/utils.js.map +1 -0
- package/build/components/text-decoration-control/index.js +3 -1
- package/build/components/text-decoration-control/index.js.map +1 -1
- package/build/components/text-transform-control/index.js +3 -1
- package/build/components/text-transform-control/index.js.map +1 -1
- package/build/components/url-input/index.js +1 -1
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +4 -1
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +4 -25
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-drag-selection.js +9 -2
- package/build/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js +4 -2
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +3 -1
- package/build/components/writing-flow/use-select-all.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +10 -2
- package/build/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +1 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/border-radius.js +2 -7
- package/build/hooks/border-radius.js.map +1 -1
- package/build/hooks/border.js +2 -2
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +4 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/dimensions.js +15 -0
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +4 -4
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/gap.js +6 -4
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/generated-class-name.js +1 -7
- package/build/hooks/generated-class-name.js.map +1 -1
- package/build/hooks/layout.js +42 -15
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/margin.js +28 -12
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +19 -8
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/style.js +40 -76
- package/build/hooks/style.js.map +1 -1
- package/build/layouts/constrained.js +215 -0
- package/build/layouts/constrained.js.map +1 -0
- package/build/layouts/flex.js +1 -1
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +6 -145
- package/build/layouts/flow.js.map +1 -1
- package/build/layouts/index.js +3 -1
- package/build/layouts/index.js.map +1 -1
- package/build/layouts/utils.js +43 -0
- package/build/layouts/utils.js.map +1 -1
- package/build/store/actions.js +25 -3
- package/build/store/actions.js.map +1 -1
- package/build/store/selectors.js +4 -6
- package/build/store/selectors.js.map +1 -1
- package/build/utils/block-variation-transforms.js +15 -9
- package/build/utils/block-variation-transforms.js.map +1 -1
- package/build/utils/pasting.js +9 -1
- package/build/utils/pasting.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-edit-visually-button/index.js +35 -0
- package/build-module/components/block-edit-visually-button/index.js.map +1 -0
- package/build-module/components/block-list/block.js +13 -3
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/index.native.js +1 -1
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-lock/modal.js +2 -2
- package/build-module/components/block-lock/modal.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +2 -2
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.js +97 -33
- package/build-module/components/block-mover/mover-description.js.map +1 -1
- package/build-module/components/block-popover/inbetween.js +5 -3
- package/build-module/components/block-popover/inbetween.js.map +1 -1
- package/build-module/components/block-settings-menu/index.js +3 -6
- package/build-module/components/block-settings-menu/index.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +2 -2
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/index.js +4 -7
- package/build-module/components/block-styles/index.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +2 -3
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/index.js +10 -16
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +4 -1
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +1 -7
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-tools/index.js +4 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-types-list/index.js +1 -1
- package/build-module/components/block-types-list/index.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +67 -25
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/border-radius-control/all-input-control.js +32 -4
- package/build-module/components/border-radius-control/all-input-control.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +24 -8
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/input-controls.js +22 -7
- package/build-module/components/border-radius-control/input-controls.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +13 -16
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors/utils.js +7 -3
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors/with-colors.js +16 -3
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +8 -4
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/dropdown.js +10 -4
- package/build-module/components/colors-gradients/dropdown.js.map +1 -1
- package/build-module/components/copy-handler/index.js +7 -1
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +2 -6
- package/build-module/components/date-format-picker/index.js.map +1 -1
- package/build-module/components/duotone/components.js +5 -5
- package/build-module/components/duotone/components.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +7 -4
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/font-family/index.js +1 -1
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +16 -3
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/image-editor/cropper.js +4 -3
- package/build-module/components/image-editor/cropper.js.map +1 -1
- package/build-module/components/image-editor/index.js +3 -1
- package/build-module/components/image-editor/index.js.map +1 -1
- package/build-module/components/image-size-control/index.js +3 -1
- package/build-module/components/image-size-control/index.js.map +1 -1
- package/build-module/components/index.js +2 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +31 -15
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/index.native.js +9 -2
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +9 -9
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +6 -2
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-items.js +19 -5
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +6 -3
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/utils.native.js +19 -0
- package/build-module/components/inserter/utils.native.js.map +1 -1
- package/build-module/components/inserter-list-item/index.js +5 -18
- package/build-module/components/inserter-list-item/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +5 -3
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +5 -3
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/link-control/is-url-like.js +1 -6
- package/build-module/components/link-control/is-url-like.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +0 -1
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +1 -6
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +5 -2
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -6
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/expander.js +3 -2
- package/build-module/components/list-view/expander.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +1 -6
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +9 -2
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/observe-typing/index.js +22 -8
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/preview-options/index.js +2 -2
- package/build-module/components/preview-options/index.js.map +1 -1
- package/build-module/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -19
- package/build-module/components/recursion-provider/index.js.map +1 -0
- package/build-module/components/rich-text/format-toolbar-container.js +58 -12
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/index.js +7 -2
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +3 -1
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-before-input-rules.js +96 -0
- package/build-module/components/rich-text/use-before-input-rules.js.map +1 -0
- package/build-module/components/rich-text/use-enter.js +0 -4
- package/build-module/components/rich-text/use-enter.js.map +1 -1
- package/build-module/components/rich-text/use-format-types.js +39 -22
- package/build-module/components/rich-text/use-format-types.js.map +1 -1
- package/build-module/components/spacing-sizes-control/all-input-control.js +41 -0
- package/build-module/components/spacing-sizes-control/all-input-control.js.map +1 -0
- package/build-module/components/spacing-sizes-control/axial-input-controls.js +57 -0
- package/build-module/components/spacing-sizes-control/axial-input-controls.js.map +1 -0
- package/build-module/components/spacing-sizes-control/index.js +83 -0
- package/build-module/components/spacing-sizes-control/index.js.map +1 -0
- package/build-module/components/spacing-sizes-control/input-controls.js +41 -0
- package/build-module/components/spacing-sizes-control/input-controls.js.map +1 -0
- package/build-module/components/spacing-sizes-control/linked-button.js +28 -0
- package/build-module/components/spacing-sizes-control/linked-button.js.map +1 -0
- package/build-module/components/spacing-sizes-control/spacing-input-control.js +192 -0
- package/build-module/components/spacing-sizes-control/spacing-input-control.js.map +1 -0
- package/build-module/components/spacing-sizes-control/utils.js +174 -0
- package/build-module/components/spacing-sizes-control/utils.js.map +1 -0
- package/build-module/components/text-decoration-control/index.js +4 -2
- package/build-module/components/text-decoration-control/index.js.map +1 -1
- package/build-module/components/text-transform-control/index.js +4 -2
- package/build-module/components/text-transform-control/index.js.map +1 -1
- package/build-module/components/url-input/index.js +1 -1
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +4 -1
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +5 -26
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-drag-selection.js +9 -2
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js +4 -2
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +3 -1
- package/build-module/components/writing-flow/use-select-all.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +10 -2
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/border-radius.js +2 -7
- package/build-module/hooks/border-radius.js.map +1 -1
- package/build-module/hooks/border.js +2 -2
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +4 -1
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/dimensions.js +13 -0
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +4 -4
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/gap.js +3 -2
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/generated-class-name.js +1 -6
- package/build-module/hooks/generated-class-name.js.map +1 -1
- package/build-module/hooks/layout.js +42 -15
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/margin.js +26 -12
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +17 -8
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/style.js +44 -81
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/layouts/constrained.js +197 -0
- package/build-module/layouts/constrained.js.map +1 -0
- package/build-module/layouts/flex.js +1 -1
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +7 -140
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/layouts/index.js +2 -1
- package/build-module/layouts/index.js.map +1 -1
- package/build-module/layouts/utils.js +40 -0
- package/build-module/layouts/utils.js.map +1 -1
- package/build-module/store/actions.js +25 -3
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/selectors.js +5 -7
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/block-variation-transforms.js +14 -7
- package/build-module/utils/block-variation-transforms.js.map +1 -1
- package/build-module/utils/pasting.js +9 -1
- package/build-module/utils/pasting.js.map +1 -1
- package/build-style/style-rtl.css +154 -27
- package/build-style/style.css +154 -27
- package/package.json +30 -28
- package/src/components/block-alignment-control/use-available-alignments.js +1 -1
- package/src/components/block-edit-visually-button/index.js +39 -0
- package/src/components/block-list/block.js +13 -2
- package/src/components/block-list/index.native.js +1 -1
- package/src/components/block-lock/modal.js +5 -5
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/src/components/block-mover/mover-description.js +131 -48
- package/src/components/block-mover/test/mover-description.js +55 -3
- package/src/components/block-popover/inbetween.js +5 -1
- package/src/components/block-popover/style.scss +25 -2
- package/src/components/block-settings-menu/index.js +11 -15
- package/src/components/block-settings-menu-controls/index.js +2 -2
- package/src/components/block-styles/index.js +4 -7
- package/src/components/block-styles/preview.native.js +2 -2
- package/src/components/block-styles/style.scss +10 -0
- package/src/components/block-switcher/index.js +9 -13
- package/src/components/block-switcher/test/index.js +1 -0
- package/src/components/block-toolbar/index.js +2 -0
- package/src/components/block-tools/block-selection-button.js +0 -5
- package/src/components/block-tools/index.js +4 -1
- package/src/components/block-types-list/index.js +1 -1
- package/src/components/block-types-list/index.native.js +76 -24
- package/src/components/block-types-list/style.native.scss +18 -0
- package/src/components/border-radius-control/all-input-control.js +41 -4
- package/src/components/border-radius-control/index.js +29 -6
- package/src/components/border-radius-control/input-controls.js +40 -13
- package/src/components/border-radius-control/test/utils.js +22 -60
- package/src/components/border-radius-control/utils.js +12 -16
- package/src/components/color-palette/test/__snapshots__/control.js.snap +91 -79
- package/src/components/colors/test/__snapshots__/with-colors.js.snap +1 -1
- package/src/components/colors/test/with-colors.js +1 -1
- package/src/components/colors/utils.js +5 -2
- package/src/components/colors/with-colors.js +11 -1
- package/src/components/colors-gradients/control.js +13 -8
- package/src/components/colors-gradients/dropdown.js +14 -3
- package/src/components/colors-gradients/style.scss +33 -12
- package/src/components/colors-gradients/test/control.js +3 -3
- package/src/components/copy-handler/index.js +18 -0
- package/src/components/date-format-picker/index.js +12 -14
- package/src/components/date-format-picker/style.scss +0 -4
- package/src/components/duotone/components.js +5 -5
- package/src/components/duotone-control/style.scss +0 -4
- package/src/components/font-appearance-control/index.js +3 -0
- package/src/components/font-appearance-control/style.scss +0 -2
- package/src/components/font-family/index.js +1 -1
- package/src/components/font-sizes/with-font-sizes.js +11 -1
- package/src/components/image-editor/cropper.js +9 -3
- package/src/components/image-editor/index.js +2 -0
- package/src/components/image-size-control/README.md +7 -0
- package/src/components/image-size-control/index.js +2 -0
- package/src/components/index.js +5 -1
- package/src/components/index.native.js +4 -1
- package/src/components/inserter/block-types-tab.native.js +42 -21
- package/src/components/inserter/index.native.js +7 -2
- package/src/components/inserter/preview-panel.js +6 -14
- package/src/components/inserter/reusable-blocks-tab.native.js +4 -2
- package/src/components/inserter/search-items.js +17 -5
- package/src/components/inserter/search-results.native.js +4 -2
- package/src/components/inserter/test/block-types-tab.native.js +2 -0
- package/src/components/inserter/test/utils.native.js +37 -0
- package/src/components/inserter/utils.native.js +11 -0
- package/src/components/inserter-list-item/index.js +5 -18
- package/src/components/letter-spacing-control/index.js +2 -0
- package/src/components/line-height-control/index.js +2 -0
- package/src/components/link-control/is-url-like.js +1 -6
- package/src/components/link-control/link-preview.js +0 -1
- package/src/components/link-control/test/index.js +540 -893
- package/src/components/link-control/use-search-handler.js +1 -6
- package/src/components/list-view/block-select-button.js +7 -2
- package/src/components/list-view/branch.js +1 -6
- package/src/components/list-view/expander.js +4 -2
- package/src/components/list-view/style.scss +11 -4
- package/src/components/list-view/use-block-selection.js +2 -8
- package/src/components/media-replace-flow/style.scss +1 -0
- package/src/components/media-upload/index.native.js +7 -3
- package/src/components/observe-typing/index.js +17 -14
- package/src/components/preview-options/index.js +2 -2
- package/src/components/{use-no-recursive-renders → recursion-provider}/index.js +39 -28
- package/src/components/{use-no-recursive-renders/test/use-no-recursive-renders.js → recursion-provider/test/index.js} +5 -6
- package/src/components/rich-text/README.md +13 -1
- package/src/components/rich-text/format-toolbar-container.js +63 -14
- package/src/components/rich-text/index.js +3 -0
- package/src/components/rich-text/index.native.js +2 -0
- package/src/components/rich-text/use-before-input-rules.js +91 -0
- package/src/components/rich-text/use-enter.js +0 -3
- package/src/components/rich-text/use-format-types.js +38 -17
- package/src/components/spacing-sizes-control/all-input-control.js +40 -0
- package/src/components/spacing-sizes-control/axial-input-controls.js +62 -0
- package/src/components/spacing-sizes-control/index.js +91 -0
- package/src/components/spacing-sizes-control/input-controls.js +46 -0
- package/src/components/spacing-sizes-control/linked-button.js +25 -0
- package/src/components/spacing-sizes-control/spacing-input-control.js +280 -0
- package/src/components/spacing-sizes-control/style.scss +122 -0
- package/src/components/spacing-sizes-control/test/utils.js +156 -0
- package/src/components/spacing-sizes-control/utils.js +195 -0
- package/src/components/text-decoration-control/index.js +4 -2
- package/src/components/text-transform-control/index.js +4 -2
- package/src/components/url-input/index.js +1 -1
- package/src/components/url-input/style.scss +2 -2
- package/src/components/url-popover/image-url-input-ui.js +3 -0
- package/src/components/url-popover/style.scss +0 -3
- package/src/components/writing-flow/use-arrow-nav.js +4 -33
- package/src/components/writing-flow/use-drag-selection.js +7 -1
- package/src/components/writing-flow/use-multi-selection.js +4 -1
- package/src/components/writing-flow/use-select-all.js +2 -1
- package/src/components/writing-flow/use-selection-observer.js +10 -2
- package/src/components/writing-flow/use-tab-nav.js +1 -1
- package/src/hooks/border-radius.js +2 -6
- package/src/hooks/border.js +2 -2
- package/src/hooks/color.js +13 -3
- package/src/hooks/dimensions.js +15 -0
- package/src/hooks/duotone.js +4 -4
- package/src/hooks/gap.js +7 -2
- package/src/hooks/generated-class-name.js +6 -9
- package/src/hooks/layout.js +66 -18
- package/src/hooks/margin.js +49 -17
- package/src/hooks/padding.js +41 -14
- package/src/hooks/style.js +42 -86
- package/src/hooks/test/gap.js +22 -0
- package/src/hooks/typography.scss +0 -1
- package/src/layouts/constrained.js +217 -0
- package/src/layouts/flex.js +1 -1
- package/src/layouts/flow.js +6 -151
- package/src/layouts/index.js +2 -1
- package/src/layouts/test/constrained.js +21 -0
- package/src/layouts/utils.js +34 -0
- package/src/store/actions.js +32 -4
- package/src/store/selectors.js +5 -4
- package/src/style.scss +1 -0
- package/src/utils/block-variation-transforms.js +13 -6
- package/src/utils/pasting.js +10 -1
- package/src/utils/test/block-variation-transforms.js +24 -0
- package/src/utils/test/pasting.js +10 -0
- package/build/components/block-settings-menu/block-edit-visually-button.js +0 -70
- package/build/components/block-settings-menu/block-edit-visually-button.js.map +0 -1
- package/build/components/use-no-recursive-renders/index.js.map +0 -1
- package/build-module/components/block-settings-menu/block-edit-visually-button.js +0 -56
- package/build-module/components/block-settings-menu/block-edit-visually-button.js.map +0 -1
- package/build-module/components/use-no-recursive-renders/index.js.map +0 -1
- package/src/components/block-settings-menu/block-edit-visually-button.js +0 -52
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
1
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
3
|
import { createElement, Fragment } from "@wordpress/element";
|
|
3
4
|
|
|
@@ -5,7 +6,6 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
5
6
|
* External dependencies
|
|
6
7
|
*/
|
|
7
8
|
import { AccessibilityInfo, Platform, Text } from 'react-native';
|
|
8
|
-
import { delay } from 'lodash';
|
|
9
9
|
/**
|
|
10
10
|
* WordPress dependencies
|
|
11
11
|
*/
|
|
@@ -73,11 +73,18 @@ const defaultRenderToggle = _ref => {
|
|
|
73
73
|
export class Inserter extends Component {
|
|
74
74
|
constructor() {
|
|
75
75
|
super(...arguments);
|
|
76
|
+
|
|
77
|
+
_defineProperty(this, "announcementTimeout", void 0);
|
|
78
|
+
|
|
76
79
|
this.onToggle = this.onToggle.bind(this);
|
|
77
80
|
this.renderInserterToggle = this.renderInserterToggle.bind(this);
|
|
78
81
|
this.renderContent = this.renderContent.bind(this);
|
|
79
82
|
}
|
|
80
83
|
|
|
84
|
+
componentWillUnmount() {
|
|
85
|
+
clearTimeout(this.announcementTimeout);
|
|
86
|
+
}
|
|
87
|
+
|
|
81
88
|
getInsertionOptions() {
|
|
82
89
|
const addBeforeOption = {
|
|
83
90
|
value: 'before',
|
|
@@ -203,7 +210,7 @@ export class Inserter extends Component {
|
|
|
203
210
|
if (isEnabled) {
|
|
204
211
|
const isIOS = Platform.OS === 'ios';
|
|
205
212
|
const announcement = isOpen ? __('Scrollable block menu opened. Select a block.') : __('Scrollable block menu closed.');
|
|
206
|
-
|
|
213
|
+
this.announcementTimeout = setTimeout(() => AccessibilityInfo.announceForAccessibility(announcement), isIOS ? VOICE_OVER_ANNOUNCEMENT_DELAY : 0);
|
|
207
214
|
}
|
|
208
215
|
});
|
|
209
216
|
}
|
|
@@ -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,EACjB,KAAKA,kBAAL,CAAyBN,aAAzB,CAHF;AAICqC,QAAAA,cAAc,EAAE,KAAKtC,iBAAL,CAAwBC,aAAxB;AAJjB,OADD,EAOC/B,QAPD;AASA,KAVD;;AAYA,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;AAAEsC,MAAAA,uBAAF;AAA2B9B,MAAAA,kBAA3B;AAA+C+B,MAAAA;AAA/C,QACL,KAAKQ,KADN;AAEA,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;;AA7QsC;AAgRxC,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;AAAEC,MAAAA,kCAAkC,EAAEC;AAAtC,QACLT,sBAAsB,EADvB,CADmC,CAInC;;AACA,QAAKS,oBAAL,EAA4B;AAC3B,aAAO,CAAP;AACA,KAPkC,CASnC;;;AACA,QAAKtB,QAAL,EAAgB;AACf,aAAOU,aAAa,CAAEV,QAAF,CAApB;AACA,KAZkC,CAcnC;;;AACA,QAAK/C,kBAAL,EAA0B;AACzB;AACA,UAAKiE,gCAAL,EAAwC;AACvC,eAAOH,kBAAP;AACA,OAJwB,CAMzB;;;AACA,aAAOA,kBAAkB,GAAG,CAA5B;AACA,KAvBkC,CAyBnC;;;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,CA5ES,CALa,EAmFvB5G,wBAnFuB,CAAF,CAAP,CAoFV6B,QApFU,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:\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
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/index.native.js"],"names":["AccessibilityInfo","Platform","Text","__","_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","componentWillUnmount","clearTimeout","announcementTimeout","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","setTimeout","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';\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\tannouncementTimeout;\n\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\tcomponentWillUnmount() {\n\t\tclearTimeout( this.announcementTimeout );\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\tthis.announcementTimeout = setTimeout(\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"]}
|
|
@@ -3,7 +3,7 @@ import { createElement } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* WordPress dependencies
|
|
5
5
|
*/
|
|
6
|
-
import { isReusableBlock, createBlock, getBlockFromExample
|
|
6
|
+
import { isReusableBlock, createBlock, getBlockFromExample } from '@wordpress/blocks';
|
|
7
7
|
import { __ } from '@wordpress/i18n';
|
|
8
8
|
/**
|
|
9
9
|
* Internal dependencies
|
|
@@ -13,7 +13,7 @@ import BlockCard from '../block-card';
|
|
|
13
13
|
import BlockPreview from '../block-preview';
|
|
14
14
|
|
|
15
15
|
function InserterPreviewPanel(_ref) {
|
|
16
|
-
var
|
|
16
|
+
var _example$viewportWidt;
|
|
17
17
|
|
|
18
18
|
let {
|
|
19
19
|
item
|
|
@@ -23,24 +23,24 @@ function InserterPreviewPanel(_ref) {
|
|
|
23
23
|
title,
|
|
24
24
|
icon,
|
|
25
25
|
description,
|
|
26
|
-
initialAttributes
|
|
26
|
+
initialAttributes,
|
|
27
|
+
example
|
|
27
28
|
} = item;
|
|
28
|
-
const hoveredItemBlockType = getBlockType(name);
|
|
29
29
|
const isReusable = isReusableBlock(item);
|
|
30
30
|
return createElement("div", {
|
|
31
31
|
className: "block-editor-inserter__preview-container"
|
|
32
32
|
}, createElement("div", {
|
|
33
33
|
className: "block-editor-inserter__preview"
|
|
34
|
-
}, isReusable ||
|
|
34
|
+
}, isReusable || example ? createElement("div", {
|
|
35
35
|
className: "block-editor-inserter__preview-content"
|
|
36
36
|
}, createElement(BlockPreview, {
|
|
37
37
|
__experimentalPadding: 16,
|
|
38
|
-
viewportWidth: (
|
|
39
|
-
blocks:
|
|
40
|
-
attributes: { ...
|
|
38
|
+
viewportWidth: (_example$viewportWidt = example === null || example === void 0 ? void 0 : example.viewportWidth) !== null && _example$viewportWidt !== void 0 ? _example$viewportWidt : 500,
|
|
39
|
+
blocks: example ? getBlockFromExample(item.name, {
|
|
40
|
+
attributes: { ...example.attributes,
|
|
41
41
|
...initialAttributes
|
|
42
42
|
},
|
|
43
|
-
innerBlocks:
|
|
43
|
+
innerBlocks: example.innerBlocks
|
|
44
44
|
}) : createBlock(name, initialAttributes)
|
|
45
45
|
})) : createElement("div", {
|
|
46
46
|
className: "block-editor-inserter__preview-content-missing"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/preview-panel.js"],"names":["isReusableBlock","createBlock","getBlockFromExample","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/preview-panel.js"],"names":["isReusableBlock","createBlock","getBlockFromExample","__","BlockCard","BlockPreview","InserterPreviewPanel","item","name","title","icon","description","initialAttributes","example","isReusable","viewportWidth","attributes","innerBlocks"],"mappings":";;AAAA;AACA;AACA;AACA,SACCA,eADD,EAECC,WAFD,EAGCC,mBAHD,QAIO,mBAJP;AAKA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,YAAP,MAAyB,kBAAzB;;AAEA,SAASC,oBAAT,OAA0C;AAAA;;AAAA,MAAX;AAAEC,IAAAA;AAAF,GAAW;AACzC,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,KAAR;AAAeC,IAAAA,IAAf;AAAqBC,IAAAA,WAArB;AAAkCC,IAAAA,iBAAlC;AAAqDC,IAAAA;AAArD,MAAiEN,IAAvE;AACA,QAAMO,UAAU,GAAGd,eAAe,CAAEO,IAAF,CAAlC;AACA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACGO,UAAU,IAAID,OAAd,GACD;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,YAAD;AACC,IAAA,qBAAqB,EAAG,EADzB;AAEC,IAAA,aAAa,2BAAGA,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEE,aAAZ,yEAA6B,GAF3C;AAGC,IAAA,MAAM,EACLF,OAAO,GACJX,mBAAmB,CAAEK,IAAI,CAACC,IAAP,EAAa;AAChCQ,MAAAA,UAAU,EAAE,EACX,GAAGH,OAAO,CAACG,UADA;AAEX,WAAGJ;AAFQ,OADoB;AAKhCK,MAAAA,WAAW,EAAEJ,OAAO,CAACI;AALW,KAAb,CADf,GAQJhB,WAAW,CAAEO,IAAF,EAAQI,iBAAR;AAZhB,IADD,CADC,GAmBD;AAAK,IAAA,SAAS,EAAC;AAAf,KACGT,EAAE,CAAE,uBAAF,CADL,CApBF,CADD,EA0BG,CAAEW,UAAF,IACD,cAAC,SAAD;AACC,IAAA,KAAK,EAAGL,KADT;AAEC,IAAA,IAAI,EAAGC,IAFR;AAGC,IAAA,WAAW,EAAGC;AAHf,IA3BF,CADD;AAoCA;;AAED,eAAeL,oBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tisReusableBlock,\n\tcreateBlock,\n\tgetBlockFromExample,\n} from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockCard from '../block-card';\nimport BlockPreview from '../block-preview';\n\nfunction InserterPreviewPanel( { item } ) {\n\tconst { name, title, icon, description, initialAttributes, example } = item;\n\tconst isReusable = isReusableBlock( item );\n\treturn (\n\t\t<div className=\"block-editor-inserter__preview-container\">\n\t\t\t<div className=\"block-editor-inserter__preview\">\n\t\t\t\t{ isReusable || example ? (\n\t\t\t\t\t<div className=\"block-editor-inserter__preview-content\">\n\t\t\t\t\t\t<BlockPreview\n\t\t\t\t\t\t\t__experimentalPadding={ 16 }\n\t\t\t\t\t\t\tviewportWidth={ example?.viewportWidth ?? 500 }\n\t\t\t\t\t\t\tblocks={\n\t\t\t\t\t\t\t\texample\n\t\t\t\t\t\t\t\t\t? getBlockFromExample( item.name, {\n\t\t\t\t\t\t\t\t\t\t\tattributes: {\n\t\t\t\t\t\t\t\t\t\t\t\t...example.attributes,\n\t\t\t\t\t\t\t\t\t\t\t\t...initialAttributes,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\tinnerBlocks: example.innerBlocks,\n\t\t\t\t\t\t\t\t\t } )\n\t\t\t\t\t\t\t\t\t: createBlock( name, initialAttributes )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<div className=\"block-editor-inserter__preview-content-missing\">\n\t\t\t\t\t\t{ __( 'No Preview Available.' ) }\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t\t{ ! isReusable && (\n\t\t\t\t<BlockCard\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tdescription={ description }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\nexport default InserterPreviewPanel;\n"]}
|
|
@@ -10,7 +10,7 @@ import { useSelect } from '@wordpress/data';
|
|
|
10
10
|
|
|
11
11
|
import BlockTypesList from '../block-types-list';
|
|
12
12
|
import { store as blockEditorStore } from '../../store';
|
|
13
|
-
import { filterInserterItems } from './utils';
|
|
13
|
+
import { createInserterSection, filterInserterItems } from './utils';
|
|
14
14
|
|
|
15
15
|
function ReusableBlocksTab(_ref) {
|
|
16
16
|
let {
|
|
@@ -31,9 +31,13 @@ function ReusableBlocksTab(_ref) {
|
|
|
31
31
|
})
|
|
32
32
|
};
|
|
33
33
|
}, [rootClientId]);
|
|
34
|
+
const sections = [createInserterSection({
|
|
35
|
+
key: 'reuseable',
|
|
36
|
+
items
|
|
37
|
+
})];
|
|
34
38
|
return createElement(BlockTypesList, {
|
|
35
39
|
name: "ReusableBlocks",
|
|
36
|
-
|
|
40
|
+
sections: sections,
|
|
37
41
|
onSelect: onSelect,
|
|
38
42
|
listProps: listProps
|
|
39
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.native.js"],"names":["useSelect","BlockTypesList","store","blockEditorStore","filterInserterItems","ReusableBlocksTab","onSelect","rootClientId","listProps","items","select","getInserterItems","allItems","onlyReusable"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/reusable-blocks-tab.native.js"],"names":["useSelect","BlockTypesList","store","blockEditorStore","createInserterSection","filterInserterItems","ReusableBlocksTab","onSelect","rootClientId","listProps","items","select","getInserterItems","allItems","onlyReusable","sections","key"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,OAAOC,cAAP,MAA2B,qBAA3B;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AACA,SAASC,qBAAT,EAAgCC,mBAAhC,QAA2D,SAA3D;;AAEA,SAASC,iBAAT,OAAoE;AAAA,MAAxC;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,GAAwC;AACnE,QAAM;AAAEC,IAAAA;AAAF,MAAYV,SAAS,CACxBW,MAAF,IAAc;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAuBD,MAAM,CAAER,gBAAF,CAAnC;AACA,UAAMU,QAAQ,GAAGD,gBAAgB,CAAEJ,YAAF,CAAjC;AAEA,WAAO;AACNE,MAAAA,KAAK,EAAEL,mBAAmB,CAAEQ,QAAF,EAAY;AAAEC,QAAAA,YAAY,EAAE;AAAhB,OAAZ;AADpB,KAAP;AAGA,GARyB,EAS1B,CAAEN,YAAF,CAT0B,CAA3B;AAYA,QAAMO,QAAQ,GAAG,CAAEX,qBAAqB,CAAE;AAAEY,IAAAA,GAAG,EAAE,WAAP;AAAoBN,IAAAA;AAApB,GAAF,CAAvB,CAAjB;AAEA,SACC,cAAC,cAAD;AACC,IAAA,IAAI,EAAC,gBADN;AAEC,IAAA,QAAQ,EAAGK,QAFZ;AAGC,IAAA,QAAQ,EAAGR,QAHZ;AAIC,IAAA,SAAS,EAAGE;AAJb,IADD;AAQA;;AAED,eAAeH,iBAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport BlockTypesList from '../block-types-list';\nimport { store as blockEditorStore } from '../../store';\nimport { createInserterSection, filterInserterItems } from './utils';\n\nfunction ReusableBlocksTab( { onSelect, rootClientId, listProps } ) {\n\tconst { items } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getInserterItems } = select( blockEditorStore );\n\t\t\tconst allItems = getInserterItems( rootClientId );\n\n\t\t\treturn {\n\t\t\t\titems: filterInserterItems( allItems, { onlyReusable: true } ),\n\t\t\t};\n\t\t},\n\t\t[ rootClientId ]\n\t);\n\n\tconst sections = [ createInserterSection( { key: 'reuseable', items } ) ];\n\n\treturn (\n\t\t<BlockTypesList\n\t\t\tname=\"ReusableBlocks\"\n\t\t\tsections={ sections }\n\t\t\tonSelect={ onSelect }\n\t\t\tlistProps={ listProps }\n\t\t/>\n\t);\n}\n\nexport default ReusableBlocksTab;\n"]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* External dependencies
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { noCase } from 'change-case';
|
|
5
|
+
import removeAccents from 'remove-accents';
|
|
6
|
+
import { find } from 'lodash'; // Default search helpers.
|
|
5
7
|
|
|
6
8
|
const defaultGetName = item => item.name || '';
|
|
7
9
|
|
|
@@ -27,7 +29,7 @@ function normalizeSearchInput() {
|
|
|
27
29
|
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
28
30
|
// Disregard diacritics.
|
|
29
31
|
// Input: "média"
|
|
30
|
-
input =
|
|
32
|
+
input = removeAccents(input); // Accommodate leading slash, matching autocomplete expectations.
|
|
31
33
|
// Input: "/media"
|
|
32
34
|
|
|
33
35
|
input = input.replace(/^\//, ''); // Lowercase.
|
|
@@ -36,6 +38,19 @@ function normalizeSearchInput() {
|
|
|
36
38
|
input = input.toLowerCase();
|
|
37
39
|
return input;
|
|
38
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Extracts words from an input string.
|
|
43
|
+
*
|
|
44
|
+
* @param {string} input The input string.
|
|
45
|
+
*
|
|
46
|
+
* @return {Array} Words, extracted from the input string.
|
|
47
|
+
*/
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
function extractWords() {
|
|
51
|
+
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
52
|
+
return noCase(input).split(' ').filter(Boolean);
|
|
53
|
+
}
|
|
39
54
|
/**
|
|
40
55
|
* Converts the search term into a list of normalized terms.
|
|
41
56
|
*
|
|
@@ -47,8 +62,7 @@ function normalizeSearchInput() {
|
|
|
47
62
|
|
|
48
63
|
export const getNormalizedSearchTerms = function () {
|
|
49
64
|
let input = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
|
50
|
-
|
|
51
|
-
return words(normalizeSearchInput(input));
|
|
65
|
+
return extractWords(normalizeSearchInput(input));
|
|
52
66
|
};
|
|
53
67
|
|
|
54
68
|
const removeMatchingTerms = (unmatchedTerms, unprocessedTerms) => {
|
|
@@ -154,7 +168,7 @@ export function getItemSearchRank(item, searchTerm) {
|
|
|
154
168
|
rank += 20;
|
|
155
169
|
} else {
|
|
156
170
|
const terms = [name, title, description, ...keywords, category, collection].join(' ');
|
|
157
|
-
const normalizedSearchTerms =
|
|
171
|
+
const normalizedSearchTerms = extractWords(normalizedSearchInput);
|
|
158
172
|
const unmatchedTerms = removeMatchingTerms(normalizedSearchTerms, terms);
|
|
159
173
|
|
|
160
174
|
if (unmatchedTerms.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-items.js"],"names":["noCase","removeAccents","find","defaultGetName","item","name","defaultGetTitle","title","defaultGetDescription","description","defaultGetKeywords","keywords","defaultGetCategory","category","defaultGetCollection","normalizeSearchInput","input","replace","toLowerCase","extractWords","split","filter","Boolean","getNormalizedSearchTerms","removeMatchingTerms","unmatchedTerms","unprocessedTerms","term","some","unprocessedTerm","includes","searchBlockItems","items","categories","collections","searchInput","normalizedSearchTerms","length","config","getCategory","slug","getCollection","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 { noCase } from 'change-case';\nimport removeAccents from 'remove-accents';\nimport { find } 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 = removeAccents( 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 * Extracts words from an input string.\n *\n * @param {string} input The input string.\n *\n * @return {Array} Words, extracted from the input string.\n */\nfunction extractWords( input = '' ) {\n\treturn noCase( input ).split( ' ' ).filter( Boolean );\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\treturn extractWords( 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 = extractWords( 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"]}
|
|
@@ -13,7 +13,7 @@ import BlockTypesList from '../block-types-list';
|
|
|
13
13
|
import InserterNoResults from './no-results';
|
|
14
14
|
import { store as blockEditorStore } from '../../store';
|
|
15
15
|
import useBlockTypeImpressions from './hooks/use-block-type-impressions';
|
|
16
|
-
import { filterInserterItems } from './utils';
|
|
16
|
+
import { createInserterSection, filterInserterItems } from './utils';
|
|
17
17
|
|
|
18
18
|
function InserterSearchResults(_ref) {
|
|
19
19
|
let {
|
|
@@ -52,9 +52,12 @@ function InserterSearchResults(_ref) {
|
|
|
52
52
|
return createElement(BlockTypesList, {
|
|
53
53
|
name: "Blocks",
|
|
54
54
|
initialNumToRender: isFullScreen ? 10 : 3,
|
|
55
|
-
|
|
55
|
+
sections: [createInserterSection({
|
|
56
|
+
key: 'search',
|
|
57
|
+
items
|
|
58
|
+
})],
|
|
56
59
|
onSelect: handleSelect,
|
|
57
|
-
listProps
|
|
60
|
+
listProps: listProps
|
|
58
61
|
});
|
|
59
62
|
}
|
|
60
63
|
|
|
@@ -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,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/search-results.native.js"],"names":["useSelect","searchItems","BlockTypesList","InserterNoResults","store","blockEditorStore","useBlockTypeImpressions","createInserterSection","filterInserterItems","InserterSearchResults","filterValue","onSelect","listProps","rootClientId","isFullScreen","blockTypes","select","allItems","getInserterItems","availableItems","allowReusable","filteredItems","items","trackBlockTypeSelected","length","handleSelect","key"],"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,qBAAT,EAAgCC,mBAAhC,QAA2D,SAA3D;;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,MAAiBf,SAAS,CAC7BgB,MAAF,IAAc;AACb,UAAMC,QAAQ,GACbD,MAAM,CAAEX,gBAAF,CAAN,CAA2Ba,gBAA3B,CAA6CL,YAA7C,CADD;AAGA,UAAMM,cAAc,GAAGX,mBAAmB,CAAES,QAAF,EAAY;AACrDG,MAAAA,aAAa,EAAE;AADsC,KAAZ,CAA1C;AAGA,UAAMC,aAAa,GAAGpB,WAAW,CAAEkB,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,MACLjB,uBAAuB,CAAES,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;AAGC,IAAA,QAAQ,EAAG,CAAEP,qBAAqB,CAAE;AAAEmB,MAAAA,GAAG,EAAE,QAAP;AAAiBJ,MAAAA;AAAjB,KAAF,CAAvB,CAHZ;AAIC,IAAA,QAAQ,EAAGG,YAJZ;AAKC,IAAA,SAAS,EAAGb;AALb,IADD;AASA;;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 { createInserterSection, 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\tsections={ [ createInserterSection( { key: 'search', items } ) ] }\n\t\t\tonSelect={ handleSelect }\n\t\t\tlistProps={ listProps }\n\t\t/>\n\t);\n}\n\nexport default InserterSearchResults;\n"]}
|
|
@@ -34,4 +34,23 @@ export function filterInserterItems(items) {
|
|
|
34
34
|
allowReusable
|
|
35
35
|
}));
|
|
36
36
|
}
|
|
37
|
+
export function createInserterSection(_ref2) {
|
|
38
|
+
let {
|
|
39
|
+
key,
|
|
40
|
+
metadata = {},
|
|
41
|
+
items
|
|
42
|
+
} = _ref2;
|
|
43
|
+
|
|
44
|
+
if (!key) {
|
|
45
|
+
throw new Error('A unique key for the section must be provided.');
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return {
|
|
49
|
+
metadata,
|
|
50
|
+
data: [{
|
|
51
|
+
key,
|
|
52
|
+
list: items
|
|
53
|
+
}]
|
|
54
|
+
};
|
|
55
|
+
}
|
|
37
56
|
//# sourceMappingURL=utils.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/utils.native.js"],"names":["REUSABLE_BLOCKS_CATEGORY","ALLOWED_EMBED_VARIATIONS","blockAllowed","block","onlyReusable","allowReusable","id","category","isReusable","includes","filterInserterItems","items","filter"],"mappings":"AAAA,MAAMA,wBAAwB,GAAG,UAAjC;AACA,MAAMC,wBAAwB,GAAG,CAChC,YADgC,EAEhC,oBAFgC,EAGhC,oBAHgC,EAIhC,sBAJgC,EAKhC,sBALgC,EAMhC,kBANgC,CAAjC;AASA,OAAO,SAASC,YAAT,CAAuBC,KAAvB,QAAgE;AAAA,MAAlC;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAkC;AACtE,QAAM;AAAEC,IAAAA,EAAF;AAAMC,IAAAA;AAAN,MAAmBJ,KAAzB;AACA,QAAMK,UAAU,GAAGD,QAAQ,KAAKP,wBAAhC;;AAEA,MAAKI,YAAL,EAAoB;AACnB,WAAOI,UAAP;AACA;;AAED,MAAKA,UAAL,EAAkB;AACjB,WAAOH,aAAP;AACA,GAVqE,CAWtE;AACA;AACA;;;AACA,SAAOE,QAAQ,KAAK,OAAb,IAAwBN,wBAAwB,CAACQ,QAAzB,CAAmCH,EAAnC,CAA/B;AACA;AAED,OAAO,SAASI,mBAAT,CACNC,KADM,EAGL;AAAA,MADD;AAAEP,IAAAA,YAAY,GAAG,KAAjB;AAAwBC,IAAAA,aAAa,GAAG;AAAxC,GACC,uEADiD,EACjD;AACD,SAAOM,KAAK,CAACC,MAAN,CAAgBT,KAAF,IACpBD,YAAY,CAAEC,KAAF,EAAS;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAT,CADN,CAAP;AAGA","sourcesContent":["const REUSABLE_BLOCKS_CATEGORY = 'reusable';\nconst ALLOWED_EMBED_VARIATIONS = [\n\t'core/embed',\n\t'core/embed/youtube',\n\t'core/embed/twitter',\n\t'core/embed/wordpress',\n\t'core/embed/instagram',\n\t'core/embed/vimeo',\n];\n\nexport function blockAllowed( block, { onlyReusable, allowReusable } ) {\n\tconst { id, category } = block;\n\tconst isReusable = category === REUSABLE_BLOCKS_CATEGORY;\n\n\tif ( onlyReusable ) {\n\t\treturn isReusable;\n\t}\n\n\tif ( isReusable ) {\n\t\treturn allowReusable;\n\t}\n\t// We don't want to show all possible embed variations\n\t// as different blocks in the inserter. We'll only show a\n\t// few popular ones.\n\treturn category !== 'embed' || ALLOWED_EMBED_VARIATIONS.includes( id );\n}\n\nexport function filterInserterItems(\n\titems,\n\t{ onlyReusable = false, allowReusable = false } = {}\n) {\n\treturn items.filter( ( block ) =>\n\t\tblockAllowed( block, { onlyReusable, allowReusable } )\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter/utils.native.js"],"names":["REUSABLE_BLOCKS_CATEGORY","ALLOWED_EMBED_VARIATIONS","blockAllowed","block","onlyReusable","allowReusable","id","category","isReusable","includes","filterInserterItems","items","filter","createInserterSection","key","metadata","Error","data","list"],"mappings":"AAAA,MAAMA,wBAAwB,GAAG,UAAjC;AACA,MAAMC,wBAAwB,GAAG,CAChC,YADgC,EAEhC,oBAFgC,EAGhC,oBAHgC,EAIhC,sBAJgC,EAKhC,sBALgC,EAMhC,kBANgC,CAAjC;AASA,OAAO,SAASC,YAAT,CAAuBC,KAAvB,QAAgE;AAAA,MAAlC;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAkC;AACtE,QAAM;AAAEC,IAAAA,EAAF;AAAMC,IAAAA;AAAN,MAAmBJ,KAAzB;AACA,QAAMK,UAAU,GAAGD,QAAQ,KAAKP,wBAAhC;;AAEA,MAAKI,YAAL,EAAoB;AACnB,WAAOI,UAAP;AACA;;AAED,MAAKA,UAAL,EAAkB;AACjB,WAAOH,aAAP;AACA,GAVqE,CAWtE;AACA;AACA;;;AACA,SAAOE,QAAQ,KAAK,OAAb,IAAwBN,wBAAwB,CAACQ,QAAzB,CAAmCH,EAAnC,CAA/B;AACA;AAED,OAAO,SAASI,mBAAT,CACNC,KADM,EAGL;AAAA,MADD;AAAEP,IAAAA,YAAY,GAAG,KAAjB;AAAwBC,IAAAA,aAAa,GAAG;AAAxC,GACC,uEADiD,EACjD;AACD,SAAOM,KAAK,CAACC,MAAN,CAAgBT,KAAF,IACpBD,YAAY,CAAEC,KAAF,EAAS;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,GAAT,CADN,CAAP;AAGA;AAED,OAAO,SAASQ,qBAAT,QAAgE;AAAA,MAAhC;AAAEC,IAAAA,GAAF;AAAOC,IAAAA,QAAQ,GAAG,EAAlB;AAAsBJ,IAAAA;AAAtB,GAAgC;;AACtE,MAAK,CAAEG,GAAP,EAAa;AACZ,UAAM,IAAIE,KAAJ,CAAW,gDAAX,CAAN;AACA;;AAED,SAAO;AACND,IAAAA,QADM;AAENE,IAAAA,IAAI,EAAE,CAAE;AAAEH,MAAAA,GAAF;AAAOI,MAAAA,IAAI,EAAEP;AAAb,KAAF;AAFA,GAAP;AAIA","sourcesContent":["const REUSABLE_BLOCKS_CATEGORY = 'reusable';\nconst ALLOWED_EMBED_VARIATIONS = [\n\t'core/embed',\n\t'core/embed/youtube',\n\t'core/embed/twitter',\n\t'core/embed/wordpress',\n\t'core/embed/instagram',\n\t'core/embed/vimeo',\n];\n\nexport function blockAllowed( block, { onlyReusable, allowReusable } ) {\n\tconst { id, category } = block;\n\tconst isReusable = category === REUSABLE_BLOCKS_CATEGORY;\n\n\tif ( onlyReusable ) {\n\t\treturn isReusable;\n\t}\n\n\tif ( isReusable ) {\n\t\treturn allowReusable;\n\t}\n\t// We don't want to show all possible embed variations\n\t// as different blocks in the inserter. We'll only show a\n\t// few popular ones.\n\treturn category !== 'embed' || ALLOWED_EMBED_VARIATIONS.includes( id );\n}\n\nexport function filterInserterItems(\n\titems,\n\t{ onlyReusable = false, allowReusable = false } = {}\n) {\n\treturn items.filter( ( block ) =>\n\t\tblockAllowed( block, { onlyReusable, allowReusable } )\n\t);\n}\n\nexport function createInserterSection( { key, metadata = {}, items } ) {\n\tif ( ! key ) {\n\t\tthrow new Error( 'A unique key for the section must be provided.' );\n\t}\n\n\treturn {\n\t\tmetadata,\n\t\tdata: [ { key, list: items } ],\n\t};\n}\n"]}
|
|
@@ -11,7 +11,8 @@ import classnames from 'classnames';
|
|
|
11
11
|
|
|
12
12
|
import { useMemo, useRef, memo } from '@wordpress/element';
|
|
13
13
|
import { createBlock, createBlocksFromInnerBlocksTemplate } from '@wordpress/blocks';
|
|
14
|
-
import {
|
|
14
|
+
import { __experimentalTruncate as Truncate } from '@wordpress/components';
|
|
15
|
+
import { ENTER, isAppleOS } from '@wordpress/keycodes';
|
|
15
16
|
/**
|
|
16
17
|
* Internal dependencies
|
|
17
18
|
*/
|
|
@@ -19,22 +20,6 @@ import { ENTER } from '@wordpress/keycodes';
|
|
|
19
20
|
import BlockIcon from '../block-icon';
|
|
20
21
|
import { InserterListboxItem } from '../inserter-listbox';
|
|
21
22
|
import InserterDraggableBlocks from '../inserter-draggable-blocks';
|
|
22
|
-
/**
|
|
23
|
-
* Return true if platform is MacOS.
|
|
24
|
-
*
|
|
25
|
-
* @param {Object} _window window object by default; used for DI testing.
|
|
26
|
-
*
|
|
27
|
-
* @return {boolean} True if MacOS; false otherwise.
|
|
28
|
-
*/
|
|
29
|
-
|
|
30
|
-
function isAppleOS() {
|
|
31
|
-
let _window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window;
|
|
32
|
-
|
|
33
|
-
const {
|
|
34
|
-
platform
|
|
35
|
-
} = _window.navigator;
|
|
36
|
-
return platform.indexOf('Mac') !== -1 || ['iPad', 'iPhone'].includes(platform);
|
|
37
|
-
}
|
|
38
23
|
|
|
39
24
|
function InserterListItem(_ref) {
|
|
40
25
|
let {
|
|
@@ -126,7 +111,9 @@ function InserterListItem(_ref) {
|
|
|
126
111
|
showColors: true
|
|
127
112
|
})), createElement("span", {
|
|
128
113
|
className: "block-editor-block-types-list__item-title"
|
|
129
|
-
},
|
|
114
|
+
}, createElement(Truncate, {
|
|
115
|
+
numberOfLines: 3
|
|
116
|
+
}, item.title))));
|
|
130
117
|
});
|
|
131
118
|
}
|
|
132
119
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter-list-item/index.js"],"names":["classnames","useMemo","useRef","memo","createBlock","createBlocksFromInnerBlocksTemplate","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/inserter-list-item/index.js"],"names":["classnames","useMemo","useRef","memo","createBlock","createBlocksFromInnerBlocksTemplate","__experimentalTruncate","Truncate","ENTER","isAppleOS","BlockIcon","InserterListboxItem","InserterDraggableBlocks","InserterListItem","className","isFirst","item","onSelect","onHover","isDraggable","props","isDragging","itemIconStyle","icon","backgroundColor","background","color","foreground","blocks","name","initialAttributes","innerBlocks","disabled","draggable","onDragStart","onDragEnd","event","current","isDisabled","preventDefault","metaKey","ctrlKey","keyCode","title"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useRef, memo } from '@wordpress/element';\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n} from '@wordpress/blocks';\nimport { __experimentalTruncate as Truncate } from '@wordpress/components';\nimport { ENTER, isAppleOS } from '@wordpress/keycodes';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { InserterListboxItem } from '../inserter-listbox';\nimport InserterDraggableBlocks from '../inserter-draggable-blocks';\n\nfunction InserterListItem( {\n\tclassName,\n\tisFirst,\n\titem,\n\tonSelect,\n\tonHover,\n\tisDraggable,\n\t...props\n} ) {\n\tconst isDragging = useRef( false );\n\tconst itemIconStyle = item.icon\n\t\t? {\n\t\t\t\tbackgroundColor: item.icon.background,\n\t\t\t\tcolor: item.icon.foreground,\n\t\t }\n\t\t: {};\n\tconst blocks = useMemo( () => {\n\t\treturn [\n\t\t\tcreateBlock(\n\t\t\t\titem.name,\n\t\t\t\titem.initialAttributes,\n\t\t\t\tcreateBlocksFromInnerBlocksTemplate( item.innerBlocks )\n\t\t\t),\n\t\t];\n\t}, [ item.name, item.initialAttributes, item.initialAttributes ] );\n\n\treturn (\n\t\t<InserterDraggableBlocks\n\t\t\tisEnabled={ isDraggable && ! item.disabled }\n\t\t\tblocks={ blocks }\n\t\t\ticon={ item.icon }\n\t\t>\n\t\t\t{ ( { draggable, onDragStart, onDragEnd } ) => (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"block-editor-block-types-list__list-item\"\n\t\t\t\t\tdraggable={ draggable }\n\t\t\t\t\tonDragStart={ ( event ) => {\n\t\t\t\t\t\tisDragging.current = true;\n\t\t\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t\tonDragStart( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\tonDragEnd={ ( event ) => {\n\t\t\t\t\t\tisDragging.current = false;\n\t\t\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\t\t\tonDragEnd( event );\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t<InserterListboxItem\n\t\t\t\t\t\tisFirst={ isFirst }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-block-types-list__item',\n\t\t\t\t\t\t\tclassName\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdisabled={ item.isDisabled }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\tisAppleOS() ? event.metaKey : event.ctrlKey\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\tconst { keyCode } = event;\n\t\t\t\t\t\t\tif ( keyCode === ENTER ) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t\tonSelect(\n\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\tisAppleOS() ? event.metaKey : event.ctrlKey\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tonHover( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonFocus={ () => {\n\t\t\t\t\t\t\tif ( isDragging.current ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover( item );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMouseEnter={ () => {\n\t\t\t\t\t\t\tif ( isDragging.current ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonHover( item );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonMouseLeave={ () => onHover( null ) }\n\t\t\t\t\t\tonBlur={ () => onHover( null ) }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tclassName=\"block-editor-block-types-list__item-icon\"\n\t\t\t\t\t\t\tstyle={ itemIconStyle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<BlockIcon icon={ item.icon } showColors />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span className=\"block-editor-block-types-list__item-title\">\n\t\t\t\t\t\t\t<Truncate numberOfLines={ 3 }>\n\t\t\t\t\t\t\t\t{ item.title }\n\t\t\t\t\t\t\t</Truncate>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</InserterListboxItem>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</InserterDraggableBlocks>\n\t);\n}\n\nexport default memo( InserterListItem );\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import { createElement } from "@wordpress/element";
|
|
2
3
|
|
|
3
4
|
/**
|
|
@@ -25,7 +26,8 @@ export default function LetterSpacingControl(_ref) {
|
|
|
25
26
|
let {
|
|
26
27
|
value,
|
|
27
28
|
onChange,
|
|
28
|
-
__unstableInputWidth = '60px'
|
|
29
|
+
__unstableInputWidth = '60px',
|
|
30
|
+
...otherProps
|
|
29
31
|
} = _ref;
|
|
30
32
|
const units = useCustomUnits({
|
|
31
33
|
availableUnits: useSetting('spacing.units') || ['px', 'em', 'rem'],
|
|
@@ -35,12 +37,12 @@ export default function LetterSpacingControl(_ref) {
|
|
|
35
37
|
rem: 0.2
|
|
36
38
|
}
|
|
37
39
|
});
|
|
38
|
-
return createElement(UnitControl, {
|
|
40
|
+
return createElement(UnitControl, _extends({}, otherProps, {
|
|
39
41
|
label: __('Letter spacing'),
|
|
40
42
|
value: value,
|
|
41
43
|
__unstableInputWidth: __unstableInputWidth,
|
|
42
44
|
units: units,
|
|
43
45
|
onChange: onChange
|
|
44
|
-
});
|
|
46
|
+
}));
|
|
45
47
|
}
|
|
46
48
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/letter-spacing-control/index.js"],"names":["__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__","useSetting","LetterSpacingControl","value","onChange","__unstableInputWidth","units","availableUnits","defaultValues","px","em","rem"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/letter-spacing-control/index.js"],"names":["__experimentalUnitControl","UnitControl","__experimentalUseCustomUnits","useCustomUnits","__","useSetting","LetterSpacingControl","value","onChange","__unstableInputWidth","otherProps","units","availableUnits","defaultValues","px","em","rem"],"mappings":";;;AAAA;AACA;AACA;AACA,SACCA,yBAAyB,IAAIC,WAD9B,EAECC,4BAA4B,IAAIC,cAFjC,QAGO,uBAHP;AAIA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,8BAAvB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,oBAAT,OAKX;AAAA,MAL0C;AAC7CC,IAAAA,KAD6C;AAE7CC,IAAAA,QAF6C;AAG7CC,IAAAA,oBAAoB,GAAG,MAHsB;AAI7C,OAAGC;AAJ0C,GAK1C;AACH,QAAMC,KAAK,GAAGR,cAAc,CAAE;AAC7BS,IAAAA,cAAc,EAAEP,UAAU,CAAE,eAAF,CAAV,IAAiC,CAAE,IAAF,EAAQ,IAAR,EAAc,KAAd,CADpB;AAE7BQ,IAAAA,aAAa,EAAE;AAAEC,MAAAA,EAAE,EAAE,CAAN;AAASC,MAAAA,EAAE,EAAE,GAAb;AAAkBC,MAAAA,GAAG,EAAE;AAAvB;AAFc,GAAF,CAA5B;AAIA,SACC,cAAC,WAAD,eACMN,UADN;AAEC,IAAA,KAAK,EAAGN,EAAE,CAAE,gBAAF,CAFX;AAGC,IAAA,KAAK,EAAGG,KAHT;AAIC,IAAA,oBAAoB,EAAGE,oBAJxB;AAKC,IAAA,KAAK,EAAGE,KALT;AAMC,IAAA,QAAQ,EAAGH;AANZ,KADD;AAUA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../../components/use-setting';\n\n/**\n * Control for letter-spacing.\n *\n * @param {Object} props Component props.\n * @param {string} props.value Currently selected letter-spacing.\n * @param {Function} props.onChange Handles change in letter-spacing selection.\n * @param {string|number|undefined} props.__unstableInputWidth Input width to pass through to inner UnitControl. Should be a valid CSS value.\n *\n * @return {WPElement} Letter-spacing control.\n */\nexport default function LetterSpacingControl( {\n\tvalue,\n\tonChange,\n\t__unstableInputWidth = '60px',\n\t...otherProps\n} ) {\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t\tdefaultValues: { px: 2, em: 0.2, rem: 0.2 },\n\t} );\n\treturn (\n\t\t<UnitControl\n\t\t\t{ ...otherProps }\n\t\t\tlabel={ __( 'Letter spacing' ) }\n\t\t\tvalue={ value }\n\t\t\t__unstableInputWidth={ __unstableInputWidth }\n\t\t\tunits={ units }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n"]}
|