@wordpress/block-editor 8.2.0 → 8.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/README.md +6 -2
- package/build/autocompleters/link.js +78 -0
- package/build/autocompleters/link.js.map +1 -0
- package/build/components/autocomplete/index.js +3 -1
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-actions/index.js +1 -1
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +4 -2
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-compare/index.js +2 -2
- package/build/components/block-compare/index.js.map +1 -1
- package/build/components/block-controls/index.js +1 -1
- package/build/components/block-controls/index.js.map +1 -1
- package/build/components/block-draggable/index.js +1 -1
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-edit/edit.js +1 -1
- package/build/components/block-edit/edit.js.map +1 -1
- package/build/components/block-list/block-html.js +1 -1
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block-invalid-warning.js +1 -1
- package/build/components/block-list/block-invalid-warning.js.map +1 -1
- package/build/components/block-list/block-list-item.native.js +4 -4
- package/build/components/block-list/block-list-item.native.js.map +1 -1
- package/build/components/block-list/block-selection-button.native.js +4 -3
- package/build/components/block-list/block-selection-button.native.js.map +1 -1
- package/build/components/block-list/block.js +1 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +5 -5
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +5 -5
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js +1 -1
- package/build/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build/components/block-media-update-progress/index.native.js +4 -4
- package/build/components/block-media-update-progress/index.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-mobile-toolbar/index.native.js +1 -1
- package/build/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build/components/block-mover/mover-description.js +4 -4
- package/build/components/block-mover/mover-description.js.map +1 -1
- package/build/components/block-mover/mover-description.native.js +5 -5
- package/build/components/block-mover/mover-description.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +7 -12
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-styles/preview.native.js +1 -1
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/index.js +2 -1
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/use-transformed-patterns.js +0 -1
- package/build/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build/components/block-title/index.js +7 -62
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +94 -0
- package/build/components/block-title/use-block-display-title.js.map +1 -0
- package/build/components/block-toolbar/utils.js +9 -1
- package/build/components/block-toolbar/utils.js.map +1 -1
- package/build/components/block-tools/block-popover.js +1 -1
- package/build/components/block-tools/block-popover.js.map +1 -1
- package/build/components/block-tools/block-selection-button.js +2 -1
- package/build/components/block-tools/block-selection-button.js.map +1 -1
- package/build/components/block-types-list/index.native.js +1 -1
- package/build/components/block-types-list/index.native.js.map +1 -1
- package/build/components/border-radius-control/index.js +2 -2
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js +10 -6
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/contrast-checker/index.js +3 -3
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +1 -1
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/copy-handler/index.js +3 -3
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +3 -3
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/index.native.js +29 -1
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +1 -1
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.js +1 -1
- package/build/components/inserter/block-types-tab.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/index.js +3 -3
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +7 -7
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js +3 -3
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +1 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-items.js +1 -1
- package/build/components/inserter/search-items.js.map +1 -1
- package/build/components/inserter/search-results.js +1 -1
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +3 -3
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/line-height-control/index.js +4 -4
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/line-height-control/index.native.js +3 -1
- package/build/components/line-height-control/index.native.js.map +1 -1
- package/build/components/link-control/index.js +2 -2
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/search-input.js +1 -1
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -2
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/use-rich-url-data.js +1 -1
- package/build/components/link-control/use-rich-url-data.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +2 -2
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -1
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +1 -1
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +7 -5
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +20 -24
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/media-upload-progress/index.native.js +2 -2
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -3
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +3 -3
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +2 -2
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.native.js +1 -1
- package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build/components/rich-text/index.native.js +3 -3
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +7 -11
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/url-input/index.js +11 -11
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +1 -1
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +2 -2
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +4 -3
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +1 -1
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +1 -1
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/border.js +2 -14
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +2 -2
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/duotone.js +22 -4
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/generated-class-name.js +3 -3
- package/build/hooks/generated-class-name.js.map +1 -1
- package/build/hooks/lock.js +1 -1
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/style.js +5 -2
- package/build/hooks/style.js.map +1 -1
- package/build/store/actions.js +4 -4
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +1 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +11 -11
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +6 -6
- package/build/store/selectors.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +3 -3
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build/utils/pasting.js +91 -0
- package/build/utils/pasting.js.map +1 -0
- package/build/utils/transform-styles/ast/parse.js +5 -5
- package/build/utils/transform-styles/ast/parse.js.map +1 -1
- package/build/utils/transform-styles/transforms/url-rewrite.js +2 -2
- package/build/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
- package/build-module/autocompleters/link.js +64 -0
- package/build-module/autocompleters/link.js.map +1 -0
- package/build-module/components/autocomplete/index.js +2 -1
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +1 -1
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +4 -2
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-compare/index.js +2 -2
- package/build-module/components/block-compare/index.js.map +1 -1
- package/build-module/components/block-controls/index.js +1 -1
- package/build-module/components/block-controls/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +1 -1
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-edit/edit.js +1 -1
- package/build-module/components/block-edit/edit.js.map +1 -1
- package/build-module/components/block-list/block-html.js +1 -1
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block-invalid-warning.js +1 -1
- package/build-module/components/block-list/block-invalid-warning.js.map +1 -1
- package/build-module/components/block-list/block-list-item.native.js +4 -4
- package/build-module/components/block-list/block-list-item.native.js.map +1 -1
- package/build-module/components/block-list/block-selection-button.native.js +4 -3
- package/build-module/components/block-list/block-selection-button.native.js.map +1 -1
- package/build-module/components/block-list/block.js +1 -1
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +5 -5
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +5 -5
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js +1 -1
- package/build-module/components/block-list/use-block-props/use-block-class-names.js.map +1 -1
- package/build-module/components/block-media-update-progress/index.native.js +4 -4
- package/build-module/components/block-media-update-progress/index.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js +1 -1
- package/build-module/components/block-mobile-toolbar/index.native.js.map +1 -1
- package/build-module/components/block-mover/mover-description.js +4 -4
- package/build-module/components/block-mover/mover-description.js.map +1 -1
- package/build-module/components/block-mover/mover-description.native.js +5 -5
- package/build-module/components/block-mover/mover-description.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +7 -13
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +1 -1
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/index.js +2 -1
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js +0 -1
- package/build-module/components/block-switcher/use-transformed-patterns.js.map +1 -1
- package/build-module/components/block-title/index.js +7 -58
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +80 -0
- package/build-module/components/block-title/use-block-display-title.js.map +1 -0
- package/build-module/components/block-toolbar/utils.js +9 -1
- package/build-module/components/block-toolbar/utils.js.map +1 -1
- package/build-module/components/block-tools/block-popover.js +1 -1
- package/build-module/components/block-tools/block-popover.js.map +1 -1
- package/build-module/components/block-tools/block-selection-button.js +2 -1
- package/build-module/components/block-tools/block-selection-button.js.map +1 -1
- package/build-module/components/block-types-list/index.native.js +1 -1
- package/build-module/components/block-types-list/index.native.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +3 -3
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +11 -7
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +3 -3
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +1 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -3
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/copy-handler/index.js +2 -2
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +3 -3
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/index.native.js +4 -4
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +1 -1
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.js +1 -1
- package/build-module/components/inserter/block-types-tab.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -3
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +7 -7
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js +3 -3
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +1 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-items.js +1 -1
- package/build-module/components/inserter/search-items.js.map +1 -1
- package/build-module/components/inserter/search-results.js +1 -1
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +3 -3
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +4 -4
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/line-height-control/index.native.js +3 -1
- package/build-module/components/line-height-control/index.native.js.map +1 -1
- package/build-module/components/link-control/index.js +2 -2
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/search-input.js +1 -1
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/link-control/search-results.js +2 -2
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/use-rich-url-data.js +1 -1
- package/build-module/components/link-control/use-rich-url-data.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +2 -2
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -1
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +1 -1
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +7 -5
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +22 -27
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -3
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/media-upload-progress/index.native.js +2 -2
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -3
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +3 -3
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +2 -2
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.native.js +1 -1
- package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +3 -3
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +6 -11
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/url-input/index.js +11 -11
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +1 -1
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +2 -2
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +4 -3
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +1 -1
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +1 -1
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/border.js +2 -14
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +2 -2
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/duotone.js +23 -5
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/generated-class-name.js +3 -3
- package/build-module/hooks/generated-class-name.js.map +1 -1
- package/build-module/hooks/lock.js +1 -1
- package/build-module/hooks/lock.js.map +1 -1
- package/build-module/hooks/style.js +5 -2
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/store/actions.js +4 -4
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +1 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +11 -11
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +6 -6
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +3 -3
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/utils/pasting.js +80 -0
- package/build-module/utils/pasting.js.map +1 -0
- package/build-module/utils/transform-styles/ast/parse.js +5 -5
- package/build-module/utils/transform-styles/ast/parse.js.map +1 -1
- package/build-module/utils/transform-styles/transforms/url-rewrite.js +2 -2
- package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +1 -1
- package/build-style/style-rtl.css +7 -0
- package/build-style/style.css +7 -0
- package/package.json +27 -27
- package/src/autocompleters/link.js +62 -0
- package/src/autocompleters/style.scss +8 -0
- package/src/components/alignment-control/test/index.js +2 -2
- package/src/components/autocomplete/index.js +2 -0
- package/src/components/block-actions/index.js +1 -1
- package/src/components/block-alignment-control/test/index.js +1 -1
- package/src/components/block-breadcrumb/index.js +5 -2
- package/src/components/block-compare/index.js +2 -2
- package/src/components/block-controls/index.js +1 -1
- package/src/components/block-draggable/index.js +1 -1
- package/src/components/block-draggable/stories/index.js +1 -1
- package/src/components/block-edit/edit.js +1 -1
- package/src/components/block-list/block-html.js +1 -1
- package/src/components/block-list/block-invalid-warning.js +1 -1
- package/src/components/block-list/block-list-item.native.js +4 -4
- package/src/components/block-list/block-selection-button.native.js +3 -3
- package/src/components/block-list/block.js +1 -1
- package/src/components/block-list/block.native.js +5 -5
- package/src/components/block-list/index.native.js +5 -5
- package/src/components/block-list/use-block-props/use-block-class-names.js +1 -1
- package/src/components/block-media-update-progress/index.native.js +4 -4
- package/src/components/block-media-update-progress/test/index.native.js +2 -2
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +3 -3
- package/src/components/block-mobile-toolbar/index.native.js +2 -2
- package/src/components/block-mover/mover-description.js +4 -4
- package/src/components/block-mover/mover-description.native.js +5 -5
- package/src/components/block-settings-menu/block-settings-dropdown.js +7 -8
- package/src/components/block-styles/preview.native.js +1 -1
- package/src/components/block-switcher/index.js +4 -1
- package/src/components/block-switcher/use-transformed-patterns.js +0 -1
- package/src/components/block-title/README.md +17 -1
- package/src/components/block-title/index.js +7 -62
- package/src/components/block-title/test/index.js +21 -3
- package/src/components/block-title/use-block-display-title.js +83 -0
- package/src/components/block-toolbar/utils.js +12 -2
- package/src/components/block-tools/block-popover.js +1 -1
- package/src/components/block-tools/block-selection-button.js +4 -1
- package/src/components/block-types-list/index.native.js +1 -1
- package/src/components/border-radius-control/index.js +5 -3
- package/src/components/border-radius-control/test/utils.js +10 -10
- package/src/components/border-radius-control/utils.js +10 -8
- package/src/components/contrast-checker/index.js +3 -3
- package/src/components/convert-to-group-buttons/index.js +1 -1
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +1 -6
- package/src/components/copy-handler/index.js +2 -2
- package/src/components/font-sizes/with-font-sizes.js +3 -3
- package/src/components/image-size-control/test/index.js +1 -1
- package/src/components/index.native.js +10 -4
- package/src/components/inserter/block-patterns-tab.js +1 -1
- package/src/components/inserter/block-types-tab.js +1 -1
- package/src/components/inserter/hooks/use-block-type-impressions.native.js +2 -2
- package/src/components/inserter/index.js +3 -3
- package/src/components/inserter/index.native.js +7 -7
- package/src/components/inserter/menu.js +1 -1
- package/src/components/inserter/menu.native.js +3 -3
- package/src/components/inserter/quick-inserter.js +1 -1
- package/src/components/inserter/search-items.js +1 -1
- package/src/components/inserter/search-results.js +1 -1
- package/src/components/inserter/test/fixtures/index.native.js +1 -1
- package/src/components/inserter/test/reusable-blocks-tab.js +2 -2
- package/src/components/justify-content-control/README.md +1 -1
- package/src/components/keyboard-shortcuts/index.js +1 -1
- package/src/components/letter-spacing-control/index.js +1 -1
- package/src/components/line-height-control/index.js +4 -4
- package/src/components/line-height-control/index.native.js +2 -0
- package/src/components/link-control/index.js +2 -2
- package/src/components/link-control/search-input.js +1 -1
- package/src/components/link-control/search-results.js +2 -2
- package/src/components/link-control/test/index.js +142 -144
- package/src/components/link-control/use-rich-url-data.js +1 -1
- package/src/components/link-control/use-search-handler.js +2 -2
- package/src/components/list-view/block-select-button.js +1 -1
- package/src/components/list-view/block.js +1 -1
- package/src/components/media-placeholder/index.native.js +11 -9
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +20 -26
- package/src/components/media-replace-flow/test/index.js +100 -0
- package/src/components/media-upload/index.native.js +3 -2
- package/src/components/media-upload-progress/index.native.js +2 -2
- package/src/components/navigable-toolbar/index.js +3 -3
- package/src/components/plain-text/index.native.js +3 -3
- package/src/components/responsive-block-control/test/index.js +6 -6
- package/src/components/rich-text/format-toolbar-container.js +2 -2
- package/src/components/rich-text/format-toolbar-container.native.js +1 -1
- package/src/components/rich-text/index.native.js +3 -3
- package/src/components/rich-text/use-paste-handler.js +7 -13
- package/src/components/url-input/index.js +11 -11
- package/src/components/use-block-drop-zone/test/index.js +1 -1
- package/src/components/use-moving-animation/index.js +1 -1
- package/src/components/use-on-block-drop/index.js +2 -2
- package/src/components/writing-flow/use-tab-nav.js +6 -3
- package/src/hooks/align.js +1 -1
- package/src/hooks/anchor.js +1 -1
- package/src/hooks/border.js +8 -19
- package/src/hooks/color.js +2 -2
- package/src/hooks/duotone.js +27 -3
- package/src/hooks/generated-class-name.js +3 -3
- package/src/hooks/lock.js +1 -1
- package/src/hooks/style.js +5 -2
- package/src/hooks/test/align.js +1 -1
- package/src/store/actions.js +4 -4
- package/src/store/defaults.js +1 -2
- package/src/store/reducer.js +11 -11
- package/src/store/selectors.js +6 -6
- package/src/store/test/actions.js +1 -1
- package/src/store/test/reducer.js +1 -1
- package/src/store/test/selectors.js +1 -1
- package/src/utils/parse-css-unit-to-px.js +3 -3
- package/src/utils/pasting.js +77 -0
- package/src/utils/test/parse-css-unit-to-px.js +5 -5
- package/src/utils/test/pasting.js +84 -0
- package/src/utils/transform-styles/ast/parse.js +5 -5
- package/src/utils/transform-styles/transforms/url-rewrite.js +2 -2
- package/build/utils/get-paste-event-data.js +0 -56
- package/build/utils/get-paste-event-data.js.map +0 -1
- package/build-module/utils/get-paste-event-data.js +0 -47
- package/build-module/utils/get-paste-event-data.js.map +0 -1
- package/src/utils/get-paste-event-data.js +0 -42
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/media-upload/index.native.js"],"names":["MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","MEDIA_TYPE_ANY","OPTION_TAKE_VIDEO","OPTION_TAKE_PHOTO","OPTION_TAKE_PHOTO_OR_VIDEO","OPTION_INSERT_FROM_URL","URL_MEDIA_SOURCE","PICKER_OPENING_DELAY","MediaUpload","Component","constructor","props","onPickerPresent","bind","onPickerSelect","getAllSources","state","otherMediaOptions","componentDidMount","allowedTypes","autoOpen","otherMediaOptionsWithIcons","map","option","requiresModal","types","id","value","setState","cameraImageSource","mediaSources","deviceCamera","label","icon","capturePhoto","cameraVideoSource","captureVideo","deviceLibrarySource","deviceLibrary","image","siteLibrarySource","siteMediaLibrary","wordpress","mediaLibrary","urlSource","globe","internalSources","concat","getMediaOptionsItems","__experimentalOnlyMediaLibrary","isAudioBlockMediaUploadEnabled","filter","source","every","allowedType","includes","some","getChooseFromDeviceIcon","mobile","isIOS","Platform","OS","picker","presentPicker","onSelect","onSelectURL","multiple","undefined","text","style","onPress","mediaSource","shift","type","media","render","isReplacingMedia","isOneType","length","isImage","isVideo","isAudio","isAnyType","isImageOrVideo","pickerTitle","getMediaOptions","instance","open","select","blockEditorStore","getSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\nimport { delay } from 'lodash';\n\nimport prompt from 'react-native-prompt-android';\n\n/**\n * WordPress dependencies\n */\nimport { Component, React } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Picker } from '@wordpress/components';\nimport {\n\tgetOtherMediaOptions,\n\trequestMediaPicker,\n\tmediaSources,\n} from '@wordpress/react-native-bridge';\nimport {\n\tcapturePhoto,\n\tcaptureVideo,\n\timage,\n\twordpress,\n\tmobile,\n\tglobe,\n} from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\nexport const MEDIA_TYPE_IMAGE = 'image';\nexport const MEDIA_TYPE_VIDEO = 'video';\nexport const MEDIA_TYPE_AUDIO = 'audio';\nexport const MEDIA_TYPE_ANY = 'any';\n\nexport const OPTION_TAKE_VIDEO = __( 'Take a Video' );\nexport const OPTION_TAKE_PHOTO = __( 'Take a Photo' );\nexport const OPTION_TAKE_PHOTO_OR_VIDEO = __( 'Take a Photo or Video' );\nexport const OPTION_INSERT_FROM_URL = __( 'Insert from URL' );\n\nconst URL_MEDIA_SOURCE = 'URL';\n\nconst PICKER_OPENING_DELAY = 200;\n\nexport class MediaUpload extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.onPickerPresent = this.onPickerPresent.bind( this );\n\t\tthis.onPickerSelect = this.onPickerSelect.bind( this );\n\t\tthis.getAllSources = this.getAllSources.bind( this );\n\t\tthis.state = {\n\t\t\totherMediaOptions: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { allowedTypes = [], autoOpen } = this.props;\n\t\tgetOtherMediaOptions( allowedTypes, ( otherMediaOptions ) => {\n\t\t\tconst otherMediaOptionsWithIcons = otherMediaOptions.map(\n\t\t\t\t( option ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...option,\n\t\t\t\t\t\trequiresModal: true,\n\t\t\t\t\t\ttypes: allowedTypes,\n\t\t\t\t\t\tid: option.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.setState( { otherMediaOptions: otherMediaOptionsWithIcons } );\n\t\t} );\n\n\t\tif ( autoOpen ) {\n\t\t\tthis.onPickerPresent();\n\t\t}\n\t}\n\n\tgetAllSources() {\n\t\tconst cameraImageSource = {\n\t\t\tid: mediaSources.deviceCamera, // ID is the value sent to native\n\t\t\tvalue: mediaSources.deviceCamera + '-IMAGE', // This is needed to diferenciate image-camera from video-camera sources.\n\t\t\tlabel: __( 'Take a Photo' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE ],\n\t\t\ticon: capturePhoto,\n\t\t};\n\n\t\tconst cameraVideoSource = {\n\t\t\tid: mediaSources.deviceCamera,\n\t\t\tvalue: mediaSources.deviceCamera,\n\t\t\tlabel: __( 'Take a Video' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_VIDEO ],\n\t\t\ticon: captureVideo,\n\t\t};\n\n\t\tconst deviceLibrarySource = {\n\t\t\tid: mediaSources.deviceLibrary,\n\t\t\tvalue: mediaSources.deviceLibrary,\n\t\t\tlabel: __( 'Choose from device' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],\n\t\t\ticon: image,\n\t\t};\n\n\t\tconst siteLibrarySource = {\n\t\t\tid: mediaSources.siteMediaLibrary,\n\t\t\tvalue: mediaSources.siteMediaLibrary,\n\t\t\tlabel: __( 'WordPress Media Library' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [\n\t\t\t\tMEDIA_TYPE_IMAGE,\n\t\t\t\tMEDIA_TYPE_VIDEO,\n\t\t\t\tMEDIA_TYPE_AUDIO,\n\t\t\t\tMEDIA_TYPE_ANY,\n\t\t\t],\n\t\t\ticon: wordpress,\n\t\t\tmediaLibrary: true,\n\t\t};\n\n\t\tconst urlSource = {\n\t\t\tid: URL_MEDIA_SOURCE,\n\t\t\tvalue: URL_MEDIA_SOURCE,\n\t\t\tlabel: __( 'Insert from URL' ),\n\t\t\ttypes: [ MEDIA_TYPE_AUDIO ],\n\t\t\ticon: globe,\n\t\t};\n\n\t\tconst internalSources = [\n\t\t\tdeviceLibrarySource,\n\t\t\tcameraImageSource,\n\t\t\tcameraVideoSource,\n\t\t\tsiteLibrarySource,\n\t\t\turlSource,\n\t\t];\n\n\t\treturn internalSources.concat( this.state.otherMediaOptions );\n\t}\n\n\tgetMediaOptionsItems() {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\t__experimentalOnlyMediaLibrary,\n\t\t\tisAudioBlockMediaUploadEnabled,\n\t\t} = this.props;\n\n\t\treturn this.getAllSources()\n\t\t\t.filter( ( source ) => {\n\t\t\t\tif ( __experimentalOnlyMediaLibrary ) {\n\t\t\t\t\treturn source.mediaLibrary;\n\t\t\t\t} else if (\n\t\t\t\t\tallowedTypes.every(\n\t\t\t\t\t\t( allowedType ) =>\n\t\t\t\t\t\t\tallowedType === MEDIA_TYPE_AUDIO &&\n\t\t\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t\t) &&\n\t\t\t\t\tsource.id !== URL_MEDIA_SOURCE\n\t\t\t\t) {\n\t\t\t\t\treturn isAudioBlockMediaUploadEnabled === true;\n\t\t\t\t}\n\n\t\t\t\treturn allowedTypes.some( ( allowedType ) =>\n\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.map( ( source ) => {\n\t\t\t\treturn {\n\t\t\t\t\t...source,\n\t\t\t\t\ticon: source.icon || this.getChooseFromDeviceIcon(),\n\t\t\t\t};\n\t\t\t} );\n\t}\n\n\tgetChooseFromDeviceIcon() {\n\t\treturn mobile;\n\t}\n\n\tonPickerPresent() {\n\t\tconst { autoOpen } = this.props;\n\t\tconst isIOS = Platform.OS === 'ios';\n\n\t\tif ( this.picker ) {\n\t\t\t// the delay below is required because on iOS this action sheet gets dismissed by the close event of the Inserter\n\t\t\t// so this delay allows the Inserter to be closed fully before presenting action sheet.\n\t\t\tif ( autoOpen && isIOS ) {\n\t\t\t\tdelay(\n\t\t\t\t\t() => this.picker.presentPicker(),\n\t\t\t\t\tPICKER_OPENING_DELAY\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t}\n\t}\n\n\tonPickerSelect( value ) {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\tonSelect,\n\t\t\tonSelectURL,\n\t\t\tmultiple = false,\n\t\t} = this.props;\n\n\t\tif ( value === URL_MEDIA_SOURCE ) {\n\t\t\tprompt(\n\t\t\t\t__( 'Type a URL' ), // title\n\t\t\t\tundefined, // message\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Cancel' ),\n\t\t\t\t\t\tstyle: 'cancel',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Apply' ),\n\t\t\t\t\t\tonPress: onSelectURL,\n\t\t\t\t\t},\n\t\t\t\t], // buttons\n\t\t\t\t'plain-text', // type\n\t\t\t\tundefined, // defaultValue\n\t\t\t\t'url' // keyboardType\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaSource = this.getAllSources()\n\t\t\t.filter( ( source ) => source.value === value )\n\t\t\t.shift();\n\t\tconst types = allowedTypes.filter( ( type ) =>\n\t\t\tmediaSource.types.includes( type )\n\t\t);\n\n\t\trequestMediaPicker( mediaSource.id, types, multiple, ( media ) => {\n\t\t\tif ( ( multiple && media ) || ( media && media.id ) ) {\n\t\t\t\tonSelect( media );\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { allowedTypes = [], isReplacingMedia, multiple } = this.props;\n\t\tconst isOneType = allowedTypes.length === 1;\n\t\tconst isImage = isOneType && allowedTypes.includes( MEDIA_TYPE_IMAGE );\n\t\tconst isVideo = isOneType && allowedTypes.includes( MEDIA_TYPE_VIDEO );\n\t\tconst isAudio = isOneType && allowedTypes.includes( MEDIA_TYPE_AUDIO );\n\t\tconst isAnyType = isOneType && allowedTypes.includes( MEDIA_TYPE_ANY );\n\n\t\tconst isImageOrVideo =\n\t\t\tallowedTypes.length === 2 &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_IMAGE ) &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_VIDEO );\n\n\t\tlet pickerTitle;\n\t\tif ( isImage ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = multiple\n\t\t\t\t\t? __( 'Choose images' )\n\t\t\t\t\t: __( 'Choose image' );\n\t\t\t}\n\t\t} else if ( isVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose video' );\n\t\t\t}\n\t\t} else if ( isImageOrVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image or video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose image or video' );\n\t\t\t}\n\t\t} else if ( isAudio ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace audio' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose audio' );\n\t\t\t}\n\t\t} else if ( isAnyType ) {\n\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace file' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\t}\n\t\t}\n\n\t\tconst getMediaOptions = () => (\n\t\t\t<Picker\n\t\t\t\ttitle={ pickerTitle }\n\t\t\t\thideCancelButton\n\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\toptions={ this.getMediaOptionsItems() }\n\t\t\t\tonChange={ this.onPickerSelect }\n\t\t\t/>\n\t\t);\n\n\t\treturn this.props.render( {\n\t\t\topen: this.onPickerPresent,\n\t\t\tgetMediaOptions,\n\t\t} );\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tisAudioBlockMediaUploadEnabled:\n\t\t\t\tselect( blockEditorStore ).getSettings( 'capabilities' )\n\t\t\t\t\t.isAudioBlockMediaUploadEnabled === true,\n\t\t};\n\t} ),\n] )( MediaUpload );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/media-upload/index.native.js"],"names":["MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","MEDIA_TYPE_ANY","OPTION_TAKE_VIDEO","OPTION_TAKE_PHOTO","OPTION_TAKE_PHOTO_OR_VIDEO","OPTION_INSERT_FROM_URL","URL_MEDIA_SOURCE","PICKER_OPENING_DELAY","MediaUpload","Component","constructor","props","onPickerPresent","bind","onPickerSelect","getAllSources","state","otherMediaOptions","componentDidMount","allowedTypes","autoOpen","otherMediaOptionsWithIcons","map","option","requiresModal","types","id","value","setState","cameraImageSource","mediaSources","deviceCamera","label","icon","capturePhoto","cameraVideoSource","captureVideo","deviceLibrarySource","deviceLibrary","image","siteLibrarySource","siteMediaLibrary","wordpress","mediaLibrary","urlSource","globe","internalSources","concat","getMediaOptionsItems","__experimentalOnlyMediaLibrary","isAudioBlockMediaUploadEnabled","filter","source","every","allowedType","includes","some","getChooseFromDeviceIcon","mobile","isIOS","Platform","OS","picker","presentPicker","onSelect","onSelectURL","multiple","undefined","text","style","onPress","mediaSource","shift","type","media","render","isReplacingMedia","isOneType","length","isImage","isVideo","isAudio","isAnyType","isImageOrVideo","pickerTitle","getMediaOptions","instance","open","select","blockEditorStore","getSettings"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform } from 'react-native';\n\nimport { delay } from 'lodash';\n\nimport prompt from 'react-native-prompt-android';\n\n/**\n * WordPress dependencies\n */\nimport { Component, React } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Picker } from '@wordpress/components';\nimport {\n\tgetOtherMediaOptions,\n\trequestMediaPicker,\n\tmediaSources,\n} from '@wordpress/react-native-bridge';\nimport {\n\tcapturePhoto,\n\tcaptureVideo,\n\timage,\n\twordpress,\n\tmobile,\n\tglobe,\n} from '@wordpress/icons';\nimport { store as blockEditorStore } from '@wordpress/block-editor';\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\n\nexport const MEDIA_TYPE_IMAGE = 'image';\nexport const MEDIA_TYPE_VIDEO = 'video';\nexport const MEDIA_TYPE_AUDIO = 'audio';\nexport const MEDIA_TYPE_ANY = 'any';\n\nexport const OPTION_TAKE_VIDEO = __( 'Take a Video' );\nexport const OPTION_TAKE_PHOTO = __( 'Take a Photo' );\nexport const OPTION_TAKE_PHOTO_OR_VIDEO = __( 'Take a Photo or Video' );\nexport const OPTION_INSERT_FROM_URL = __( 'Insert from URL' );\n\nconst URL_MEDIA_SOURCE = 'URL';\n\nconst PICKER_OPENING_DELAY = 200;\n\nexport class MediaUpload extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.onPickerPresent = this.onPickerPresent.bind( this );\n\t\tthis.onPickerSelect = this.onPickerSelect.bind( this );\n\t\tthis.getAllSources = this.getAllSources.bind( this );\n\t\tthis.state = {\n\t\t\totherMediaOptions: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { allowedTypes = [], autoOpen } = this.props;\n\t\tgetOtherMediaOptions( allowedTypes, ( otherMediaOptions ) => {\n\t\t\tconst otherMediaOptionsWithIcons = otherMediaOptions.map(\n\t\t\t\t( option ) => {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...option,\n\t\t\t\t\t\trequiresModal: true,\n\t\t\t\t\t\ttypes: allowedTypes,\n\t\t\t\t\t\tid: option.value,\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tthis.setState( { otherMediaOptions: otherMediaOptionsWithIcons } );\n\t\t} );\n\n\t\tif ( autoOpen ) {\n\t\t\tthis.onPickerPresent();\n\t\t}\n\t}\n\n\tgetAllSources() {\n\t\tconst cameraImageSource = {\n\t\t\tid: mediaSources.deviceCamera, // ID is the value sent to native.\n\t\t\tvalue: mediaSources.deviceCamera + '-IMAGE', // This is needed to diferenciate image-camera from video-camera sources.\n\t\t\tlabel: __( 'Take a Photo' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE ],\n\t\t\ticon: capturePhoto,\n\t\t};\n\n\t\tconst cameraVideoSource = {\n\t\t\tid: mediaSources.deviceCamera,\n\t\t\tvalue: mediaSources.deviceCamera,\n\t\t\tlabel: __( 'Take a Video' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_VIDEO ],\n\t\t\ticon: captureVideo,\n\t\t};\n\n\t\tconst deviceLibrarySource = {\n\t\t\tid: mediaSources.deviceLibrary,\n\t\t\tvalue: mediaSources.deviceLibrary,\n\t\t\tlabel: __( 'Choose from device' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [ MEDIA_TYPE_IMAGE, MEDIA_TYPE_VIDEO ],\n\t\t\ticon: image,\n\t\t};\n\n\t\tconst siteLibrarySource = {\n\t\t\tid: mediaSources.siteMediaLibrary,\n\t\t\tvalue: mediaSources.siteMediaLibrary,\n\t\t\tlabel: __( 'WordPress Media Library' ),\n\t\t\trequiresModal: true,\n\t\t\ttypes: [\n\t\t\t\tMEDIA_TYPE_IMAGE,\n\t\t\t\tMEDIA_TYPE_VIDEO,\n\t\t\t\tMEDIA_TYPE_AUDIO,\n\t\t\t\tMEDIA_TYPE_ANY,\n\t\t\t],\n\t\t\ticon: wordpress,\n\t\t\tmediaLibrary: true,\n\t\t};\n\n\t\tconst urlSource = {\n\t\t\tid: URL_MEDIA_SOURCE,\n\t\t\tvalue: URL_MEDIA_SOURCE,\n\t\t\tlabel: __( 'Insert from URL' ),\n\t\t\ttypes: [ MEDIA_TYPE_AUDIO ],\n\t\t\ticon: globe,\n\t\t};\n\n\t\tconst internalSources = [\n\t\t\tdeviceLibrarySource,\n\t\t\tcameraImageSource,\n\t\t\tcameraVideoSource,\n\t\t\tsiteLibrarySource,\n\t\t\turlSource,\n\t\t];\n\n\t\treturn internalSources.concat( this.state.otherMediaOptions );\n\t}\n\n\tgetMediaOptionsItems() {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\t__experimentalOnlyMediaLibrary,\n\t\t\tisAudioBlockMediaUploadEnabled,\n\t\t} = this.props;\n\n\t\treturn this.getAllSources()\n\t\t\t.filter( ( source ) => {\n\t\t\t\tif ( __experimentalOnlyMediaLibrary ) {\n\t\t\t\t\treturn source.mediaLibrary;\n\t\t\t\t} else if (\n\t\t\t\t\tallowedTypes.every(\n\t\t\t\t\t\t( allowedType ) =>\n\t\t\t\t\t\t\tallowedType === MEDIA_TYPE_AUDIO &&\n\t\t\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t\t) &&\n\t\t\t\t\tsource.id !== URL_MEDIA_SOURCE\n\t\t\t\t) {\n\t\t\t\t\treturn isAudioBlockMediaUploadEnabled === true;\n\t\t\t\t}\n\n\t\t\t\treturn allowedTypes.some( ( allowedType ) =>\n\t\t\t\t\tsource.types.includes( allowedType )\n\t\t\t\t);\n\t\t\t} )\n\t\t\t.map( ( source ) => {\n\t\t\t\treturn {\n\t\t\t\t\t...source,\n\t\t\t\t\ticon: source.icon || this.getChooseFromDeviceIcon(),\n\t\t\t\t};\n\t\t\t} );\n\t}\n\n\tgetChooseFromDeviceIcon() {\n\t\treturn mobile;\n\t}\n\n\tonPickerPresent() {\n\t\tconst { autoOpen } = this.props;\n\t\tconst isIOS = Platform.OS === 'ios';\n\n\t\tif ( this.picker ) {\n\t\t\t// the delay below is required because on iOS this action sheet gets dismissed by the close event of the Inserter\n\t\t\t// so this delay allows the Inserter to be closed fully before presenting action sheet.\n\t\t\tif ( autoOpen && isIOS ) {\n\t\t\t\tdelay(\n\t\t\t\t\t() => this.picker.presentPicker(),\n\t\t\t\t\tPICKER_OPENING_DELAY\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.picker.presentPicker();\n\t\t\t}\n\t\t}\n\t}\n\n\tonPickerSelect( value ) {\n\t\tconst {\n\t\t\tallowedTypes = [],\n\t\t\tonSelect,\n\t\t\tonSelectURL,\n\t\t\tmultiple = false,\n\t\t} = this.props;\n\n\t\tif ( value === URL_MEDIA_SOURCE ) {\n\t\t\tprompt(\n\t\t\t\t__( 'Type a URL' ), // title\n\t\t\t\tundefined, // message\n\t\t\t\t[\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Cancel' ),\n\t\t\t\t\t\tstyle: 'cancel',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: __( 'Apply' ),\n\t\t\t\t\t\tonPress: onSelectURL,\n\t\t\t\t\t},\n\t\t\t\t], // Buttons.\n\t\t\t\t'plain-text', // type\n\t\t\t\tundefined, // defaultValue\n\t\t\t\t'url' // keyboardType\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tconst mediaSource = this.getAllSources()\n\t\t\t.filter( ( source ) => source.value === value )\n\t\t\t.shift();\n\t\tconst types = allowedTypes.filter( ( type ) =>\n\t\t\tmediaSource.types.includes( type )\n\t\t);\n\n\t\trequestMediaPicker( mediaSource.id, types, multiple, ( media ) => {\n\t\t\tif ( ( multiple && media ) || ( media && media.id ) ) {\n\t\t\t\tonSelect( media );\n\t\t\t}\n\t\t} );\n\t}\n\n\trender() {\n\t\tconst { allowedTypes = [], isReplacingMedia, multiple } = this.props;\n\t\tconst isOneType = allowedTypes.length === 1;\n\t\tconst isImage = isOneType && allowedTypes.includes( MEDIA_TYPE_IMAGE );\n\t\tconst isVideo = isOneType && allowedTypes.includes( MEDIA_TYPE_VIDEO );\n\t\tconst isAudio = isOneType && allowedTypes.includes( MEDIA_TYPE_AUDIO );\n\t\tconst isAnyType = isOneType && allowedTypes.includes( MEDIA_TYPE_ANY );\n\n\t\tconst isImageOrVideo =\n\t\t\tallowedTypes.length === 2 &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_IMAGE ) &&\n\t\t\tallowedTypes.includes( MEDIA_TYPE_VIDEO );\n\n\t\tlet pickerTitle;\n\t\tif ( isImage ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = multiple\n\t\t\t\t\t? __( 'Choose images' )\n\t\t\t\t\t: __( 'Choose image' );\n\t\t\t}\n\t\t} else if ( isVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose video' );\n\t\t\t}\n\t\t} else if ( isImageOrVideo ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace image or video' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose image or video' );\n\t\t\t}\n\t\t} else if ( isAudio ) {\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace audio' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose audio' );\n\t\t\t}\n\t\t} else if ( isAnyType ) {\n\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\tif ( isReplacingMedia ) {\n\t\t\t\tpickerTitle = __( 'Replace file' );\n\t\t\t} else {\n\t\t\t\tpickerTitle = __( 'Choose file' );\n\t\t\t}\n\t\t}\n\n\t\tconst getMediaOptions = () => (\n\t\t\t<Picker\n\t\t\t\ttitle={ pickerTitle }\n\t\t\t\thideCancelButton\n\t\t\t\tref={ ( instance ) => ( this.picker = instance ) }\n\t\t\t\toptions={ this.getMediaOptionsItems() }\n\t\t\t\tonChange={ this.onPickerSelect }\n\t\t\t\ttestID=\"media-options-picker\"\n\t\t\t/>\n\t\t);\n\n\t\treturn this.props.render( {\n\t\t\topen: this.onPickerPresent,\n\t\t\tgetMediaOptions,\n\t\t} );\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\treturn {\n\t\t\tisAudioBlockMediaUploadEnabled:\n\t\t\t\tselect( blockEditorStore ).getSettings( 'capabilities' )\n\t\t\t\t\t.isAudioBlockMediaUploadEnabled === true,\n\t\t};\n\t} ),\n] )( MediaUpload );\n"]}
|
|
@@ -131,7 +131,7 @@ class MediaUploadProgress extends _element.Component {
|
|
|
131
131
|
}
|
|
132
132
|
|
|
133
133
|
addMediaUploadListener() {
|
|
134
|
-
//
|
|
134
|
+
// If we already have a subscription not worth doing it again.
|
|
135
135
|
if (this.subscriptionParentMediaUpload) {
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
@@ -158,7 +158,7 @@ class MediaUploadProgress extends _element.Component {
|
|
|
158
158
|
const showSpinner = this.state.isUploadInProgress;
|
|
159
159
|
const progress = this.state.progress * 100; // eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace
|
|
160
160
|
|
|
161
|
-
const retryMessage = (0, _i18n.__)('Failed to insert media.\
|
|
161
|
+
const retryMessage = (0, _i18n.__)('Failed to insert media.\nTap for more info.');
|
|
162
162
|
const progressBarStyle = [_styles.default.progressBar, showSpinner || _styles.default.progressBarHidden, this.props.progressBarStyle];
|
|
163
163
|
return (0, _element.createElement)(_reactNative.View, {
|
|
164
164
|
style: [_styles.default.mediaUploadProgress, this.props.containerStyle],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/media-upload-progress/index.native.js"],"names":["MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","MediaUploadProgress","Component","constructor","props","state","progress","isUploadInProgress","isUploadFailed","mediaUpload","bind","componentDidMount","addMediaUploadListener","componentWillUnmount","removeMediaUploadListener","payload","mediaId","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","mediaUploadStateReset","setState","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","subscriptionParentMediaUpload","remove","render","renderContent","showSpinner","retryMessage","progressBarStyle","styles","progressBar","progressBarHidden","mediaUploadProgress","containerStyle","spinnerStyle"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/media-upload-progress/index.native.js"],"names":["MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","MediaUploadProgress","Component","constructor","props","state","progress","isUploadInProgress","isUploadFailed","mediaUpload","bind","componentDidMount","addMediaUploadListener","componentWillUnmount","removeMediaUploadListener","payload","mediaId","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","mediaUploadStateReset","setState","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","subscriptionParentMediaUpload","remove","render","renderContent","showSpinner","retryMessage","progressBarStyle","styles","progressBar","progressBarHidden","mediaUploadProgress","containerStyle","spinnerStyle"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AACA;;AACA;;AAKA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AAGO,MAAMA,4BAA4B,GAAG,CAArC;;AACA,MAAMC,4BAA4B,GAAG,CAArC;;AACA,MAAMC,yBAAyB,GAAG,CAAlC;;AACA,MAAMC,wBAAwB,GAAG,CAAjC;;;AAEA,MAAMC,mBAAN,SAAkCC,kBAAlC,CAA4C;AAClDC,EAAAA,WAAW,CAAEC,KAAF,EAAU;AACpB,UAAOA,KAAP;AAEA,SAAKC,KAAL,GAAa;AACZC,MAAAA,QAAQ,EAAE,CADE;AAEZC,MAAAA,kBAAkB,EAAE,KAFR;AAGZC,MAAAA,cAAc,EAAE;AAHJ,KAAb;AAMA,SAAKC,WAAL,GAAmB,KAAKA,WAAL,CAAiBC,IAAjB,CAAuB,IAAvB,CAAnB;AACA;;AAEDC,EAAAA,iBAAiB,GAAG;AACnB,SAAKC,sBAAL;AACA;;AAEDC,EAAAA,oBAAoB,GAAG;AACtB,SAAKC,yBAAL;AACA;;AAEDL,EAAAA,WAAW,CAAEM,OAAF,EAAY;AACtB,UAAM;AAAEC,MAAAA;AAAF,QAAc,KAAKZ,KAAzB;;AAEA,QAAKW,OAAO,CAACC,OAAR,KAAoBA,OAAzB,EAAmC;AAClC;AACA;;AAED,YAASD,OAAO,CAACV,KAAjB;AACC,WAAKR,4BAAL;AACC,aAAKoB,mBAAL,CAA0BF,OAA1B;AACA;;AACD,WAAKjB,4BAAL;AACC,aAAKoB,4BAAL,CAAmCH,OAAnC;AACA;;AACD,WAAKhB,yBAAL;AACC,aAAKoB,4BAAL,CAAmCJ,OAAnC;AACA;;AACD,WAAKf,wBAAL;AACC,aAAKoB,qBAAL,CAA4BL,OAA5B;AACA;AAZF;AAcA;;AAEDE,EAAAA,mBAAmB,CAAEF,OAAF,EAAY;AAC9B,SAAKM,QAAL,CAAe;AACdf,MAAAA,QAAQ,EAAES,OAAO,CAACT,QADJ;AAEdC,MAAAA,kBAAkB,EAAE,IAFN;AAGdC,MAAAA,cAAc,EAAE;AAHF,KAAf;;AAKA,QAAK,KAAKJ,KAAL,CAAWkB,qBAAhB,EAAwC;AACvC,WAAKlB,KAAL,CAAWkB,qBAAX,CAAkCP,OAAlC;AACA;AACD;;AAEDG,EAAAA,4BAA4B,CAAEH,OAAF,EAAY;AACvC,SAAKM,QAAL,CAAe;AAAEd,MAAAA,kBAAkB,EAAE;AAAtB,KAAf;;AACA,QAAK,KAAKH,KAAL,CAAWmB,8BAAhB,EAAiD;AAChD,WAAKnB,KAAL,CAAWmB,8BAAX,CAA2CR,OAA3C;AACA;AACD;;AAEDI,EAAAA,4BAA4B,CAAEJ,OAAF,EAAY;AACvC,SAAKM,QAAL,CAAe;AAAEd,MAAAA,kBAAkB,EAAE,KAAtB;AAA6BC,MAAAA,cAAc,EAAE;AAA7C,KAAf;;AACA,QAAK,KAAKJ,KAAL,CAAWoB,8BAAhB,EAAiD;AAChD,WAAKpB,KAAL,CAAWoB,8BAAX,CAA2CT,OAA3C;AACA;AACD;;AAEDK,EAAAA,qBAAqB,CAAEL,OAAF,EAAY;AAChC,SAAKM,QAAL,CAAe;AAAEd,MAAAA,kBAAkB,EAAE,KAAtB;AAA6BC,MAAAA,cAAc,EAAE;AAA7C,KAAf;;AACA,QAAK,KAAKJ,KAAL,CAAWqB,uBAAhB,EAA0C;AACzC,WAAKrB,KAAL,CAAWqB,uBAAX,CAAoCV,OAApC;AACA;AACD;;AAEDH,EAAAA,sBAAsB,GAAG;AACxB;AACA,QAAK,KAAKc,6BAAV,EAA0C;AACzC;AACA;;AACD,SAAKA,6BAAL,GAAqC,6CAClCX,OAAF,IAAe;AACd,WAAKN,WAAL,CAAkBM,OAAlB;AACA,KAHmC,CAArC;AAKA;;AAEDD,EAAAA,yBAAyB,GAAG;AAC3B,QAAK,KAAKY,6BAAV,EAA0C;AACzC,WAAKA,6BAAL,CAAmCC,MAAnC;AACA;AACD;;AAEDC,EAAAA,MAAM,GAAG;AACR,UAAM;AAAEC,MAAAA,aAAa,GAAG,MAAM;AAAxB,QAAiC,KAAKzB,KAA5C;AACA,UAAM;AAAEG,MAAAA,kBAAF;AAAsBC,MAAAA;AAAtB,QAAyC,KAAKH,KAApD;AACA,UAAMyB,WAAW,GAAG,KAAKzB,KAAL,CAAWE,kBAA/B;AACA,UAAMD,QAAQ,GAAG,KAAKD,KAAL,CAAWC,QAAX,GAAsB,GAAvC,CAJQ,CAKR;;AACA,UAAMyB,YAAY,GAAG,cACpB,6CADoB,CAArB;AAIA,UAAMC,gBAAgB,GAAG,CACxBC,gBAAOC,WADiB,EAExBJ,WAAW,IAAIG,gBAAOE,iBAFE,EAGxB,KAAK/B,KAAL,CAAW4B,gBAHa,CAAzB;AAMA,WACC,4BAAC,iBAAD;AACC,MAAA,KAAK,EAAG,CACPC,gBAAOG,mBADA,EAEP,KAAKhC,KAAL,CAAWiC,cAFJ,CADT;AAKC,MAAA,aAAa,EAAC;AALf,OAOC,4BAAC,iBAAD;AAAM,MAAA,KAAK,EAAGL;AAAd,OACGF,WAAW,IACZ,4BAAC,mBAAD;AACC,MAAA,QAAQ,EAAGxB,QADZ;AAEC,MAAA,KAAK,EAAG,KAAKF,KAAL,CAAWkC,YAFpB;AAGC,MAAA,MAAM,EAAC;AAHR,MAFF,CAPD,EAgBGT,aAAa,CAAE;AAChBtB,MAAAA,kBADgB;AAEhBC,MAAAA,cAFgB;AAGhBuB,MAAAA;AAHgB,KAAF,CAhBhB,CADD;AAwBA;;AAtIiD;;;eAyIpC9B,mB","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { subscribeMediaUpload } from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nexport const MEDIA_UPLOAD_STATE_UPLOADING = 1;\nexport const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;\nexport const MEDIA_UPLOAD_STATE_FAILED = 3;\nexport const MEDIA_UPLOAD_STATE_RESET = 4;\n\nexport class MediaUploadProgress extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tprogress: 0,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t};\n\n\t\tthis.mediaUpload = this.mediaUpload.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.addMediaUploadListener();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.removeMediaUploadListener();\n\t}\n\n\tmediaUpload( payload ) {\n\t\tconst { mediaId } = this.props;\n\n\t\tif ( payload.mediaId !== mediaId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_UPLOAD_STATE_UPLOADING:\n\t\t\t\tthis.updateMediaProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaUploadWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_FAILED:\n\t\t\t\tthis.finishMediaUploadWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_RESET:\n\t\t\t\tthis.mediaUploadStateReset( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: true,\n\t\t\tisUploadFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaProgress ) {\n\t\t\tthis.props.onUpdateMediaProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( { isUploadInProgress: false } );\n\t\tif ( this.props.onFinishMediaUploadWithSuccess ) {\n\t\t\tthis.props.onFinishMediaUploadWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: true } );\n\t\tif ( this.props.onFinishMediaUploadWithFailure ) {\n\t\t\tthis.props.onFinishMediaUploadWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaUploadStateReset( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: false } );\n\t\tif ( this.props.onMediaUploadStateReset ) {\n\t\t\tthis.props.onMediaUploadStateReset( payload );\n\t\t}\n\t}\n\n\taddMediaUploadListener() {\n\t\t// If we already have a subscription not worth doing it again.\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaUpload = subscribeMediaUpload(\n\t\t\t( payload ) => {\n\t\t\t\tthis.mediaUpload( payload );\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveMediaUploadListener() {\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\tthis.subscriptionParentMediaUpload.remove();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { renderContent = () => null } = this.props;\n\t\tconst { isUploadInProgress, isUploadFailed } = this.state;\n\t\tconst showSpinner = this.state.isUploadInProgress;\n\t\tconst progress = this.state.progress * 100;\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\tconst retryMessage = __(\n\t\t\t'Failed to insert media.\\nTap for more info.'\n\t\t);\n\n\t\tconst progressBarStyle = [\n\t\t\tstyles.progressBar,\n\t\t\tshowSpinner || styles.progressBarHidden,\n\t\t\tthis.props.progressBarStyle,\n\t\t];\n\n\t\treturn (\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tstyles.mediaUploadProgress,\n\t\t\t\t\tthis.props.containerStyle,\n\t\t\t\t] }\n\t\t\t\tpointerEvents=\"box-none\"\n\t\t\t>\n\t\t\t\t<View style={ progressBarStyle }>\n\t\t\t\t\t{ showSpinner && (\n\t\t\t\t\t\t<Spinner\n\t\t\t\t\t\t\tprogress={ progress }\n\t\t\t\t\t\t\tstyle={ this.props.spinnerStyle }\n\t\t\t\t\t\t\ttestID=\"spinner\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ renderContent( {\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default MediaUploadProgress;\n"]}
|
|
@@ -79,7 +79,7 @@ function useIsAccessibleToolbar(ref) {
|
|
|
79
79
|
}, []);
|
|
80
80
|
(0, _element.useLayoutEffect)(() => {
|
|
81
81
|
// Toolbar buttons may be rendered asynchronously, so we use
|
|
82
|
-
// MutationObserver to check if the toolbar subtree has been modified
|
|
82
|
+
// MutationObserver to check if the toolbar subtree has been modified.
|
|
83
83
|
const observer = new window.MutationObserver(determineIsAccessibleToolbar);
|
|
84
84
|
observer.observe(ref.current, {
|
|
85
85
|
childList: true,
|
|
@@ -91,12 +91,12 @@ function useIsAccessibleToolbar(ref) {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
function useToolbarFocus(ref, focusOnMount, isAccessibleToolbar, defaultIndex, onIndexChange) {
|
|
94
|
-
// Make sure we don't use modified versions of this prop
|
|
94
|
+
// Make sure we don't use modified versions of this prop.
|
|
95
95
|
const [initialFocusOnMount] = (0, _element.useState)(focusOnMount);
|
|
96
96
|
const [initialIndex] = (0, _element.useState)(defaultIndex);
|
|
97
97
|
const focusToolbar = (0, _element.useCallback)(() => {
|
|
98
98
|
focusFirstTabbableIn(ref.current);
|
|
99
|
-
}, []); // Focus on toolbar when pressing alt+F10 when the toolbar is visible
|
|
99
|
+
}, []); // Focus on toolbar when pressing alt+F10 when the toolbar is visible.
|
|
100
100
|
|
|
101
101
|
(0, _keyboardShortcuts.useShortcut)('core/block-editor/focus-toolbar', focusToolbar);
|
|
102
102
|
(0, _element.useEffect)(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/navigable-toolbar/index.js"],"names":["hasOnlyToolbarItem","elements","dataProp","some","element","dataset","getAllToolbarItemsIn","container","Array","from","querySelectorAll","hasFocusWithin","contains","ownerDocument","activeElement","focusFirstTabbableIn","firstTabbable","focus","tabbable","find","useIsAccessibleToolbar","ref","initialAccessibleToolbarState","isAccessibleToolbar","setIsAccessibleToolbar","determineIsAccessibleToolbar","tabbables","current","onlyToolbarItem","since","alternative","link","observer","window","MutationObserver","observe","childList","subtree","disconnect","useToolbarFocus","focusOnMount","defaultIndex","onIndexChange","initialFocusOnMount","initialIndex","focusToolbar","raf","requestAnimationFrame","items","index","cancelAnimationFrame","findIndex","item","tabIndex","NavigableToolbar","children","__experimentalInitialIndex","__experimentalOnIndexChange","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { NavigableMenu, Toolbar } from '@wordpress/components';\nimport {\n\tuseState,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\nfunction hasOnlyToolbarItem( elements ) {\n\tconst dataProp = 'toolbarItem';\n\treturn ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );\n}\n\nfunction getAllToolbarItemsIn( container ) {\n\treturn Array.from( container.querySelectorAll( '[data-toolbar-item]' ) );\n}\n\nfunction hasFocusWithin( container ) {\n\treturn container.contains( container.ownerDocument.activeElement );\n}\n\nfunction focusFirstTabbableIn( container ) {\n\tconst [ firstTabbable ] = focus.tabbable.find( container );\n\tif ( firstTabbable ) {\n\t\tfirstTabbable.focus();\n\t}\n}\n\nfunction useIsAccessibleToolbar( ref ) {\n\t/*\n\t * By default, we'll assume the starting accessible state of the Toolbar\n\t * is true, as it seems to be the most common case.\n\t *\n\t * Transitioning from an (initial) false to true state causes the\n\t * <Toolbar /> component to mount twice, which is causing undesired\n\t * side-effects. These side-effects appear to only affect certain\n\t * E2E tests.\n\t *\n\t * This was initial discovered in this pull-request:\n\t * https://github.com/WordPress/gutenberg/pull/23425\n\t */\n\tconst initialAccessibleToolbarState = true;\n\n\t// By default, it's gonna render NavigableMenu. If all the tabbable elements\n\t// inside the toolbar are ToolbarItem components (or derived components like\n\t// ToolbarButton), then we can wrap them with the accessible Toolbar\n\t// component.\n\tconst [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState(\n\t\tinitialAccessibleToolbarState\n\t);\n\n\tconst determineIsAccessibleToolbar = useCallback( () => {\n\t\tconst tabbables = focus.tabbable.find( ref.current );\n\t\tconst onlyToolbarItem = hasOnlyToolbarItem( tabbables );\n\t\tif ( ! onlyToolbarItem ) {\n\t\t\tdeprecated( 'Using custom components as toolbar controls', {\n\t\t\t\tsince: '5.6',\n\t\t\t\talternative:\n\t\t\t\t\t'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',\n\t\t\t\tlink:\n\t\t\t\t\t'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',\n\t\t\t} );\n\t\t}\n\t\tsetIsAccessibleToolbar( onlyToolbarItem );\n\t}, [] );\n\n\tuseLayoutEffect( () => {\n\t\t// Toolbar buttons may be rendered asynchronously, so we use\n\t\t// MutationObserver to check if the toolbar subtree has been modified
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/navigable-toolbar/index.js"],"names":["hasOnlyToolbarItem","elements","dataProp","some","element","dataset","getAllToolbarItemsIn","container","Array","from","querySelectorAll","hasFocusWithin","contains","ownerDocument","activeElement","focusFirstTabbableIn","firstTabbable","focus","tabbable","find","useIsAccessibleToolbar","ref","initialAccessibleToolbarState","isAccessibleToolbar","setIsAccessibleToolbar","determineIsAccessibleToolbar","tabbables","current","onlyToolbarItem","since","alternative","link","observer","window","MutationObserver","observe","childList","subtree","disconnect","useToolbarFocus","focusOnMount","defaultIndex","onIndexChange","initialFocusOnMount","initialIndex","focusToolbar","raf","requestAnimationFrame","items","index","cancelAnimationFrame","findIndex","item","tabIndex","NavigableToolbar","children","__experimentalInitialIndex","__experimentalOnIndexChange","props"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { NavigableMenu, Toolbar } from '@wordpress/components';\nimport {\n\tuseState,\n\tuseRef,\n\tuseLayoutEffect,\n\tuseEffect,\n\tuseCallback,\n} from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\nimport { focus } from '@wordpress/dom';\nimport { useShortcut } from '@wordpress/keyboard-shortcuts';\n\nfunction hasOnlyToolbarItem( elements ) {\n\tconst dataProp = 'toolbarItem';\n\treturn ! elements.some( ( element ) => ! ( dataProp in element.dataset ) );\n}\n\nfunction getAllToolbarItemsIn( container ) {\n\treturn Array.from( container.querySelectorAll( '[data-toolbar-item]' ) );\n}\n\nfunction hasFocusWithin( container ) {\n\treturn container.contains( container.ownerDocument.activeElement );\n}\n\nfunction focusFirstTabbableIn( container ) {\n\tconst [ firstTabbable ] = focus.tabbable.find( container );\n\tif ( firstTabbable ) {\n\t\tfirstTabbable.focus();\n\t}\n}\n\nfunction useIsAccessibleToolbar( ref ) {\n\t/*\n\t * By default, we'll assume the starting accessible state of the Toolbar\n\t * is true, as it seems to be the most common case.\n\t *\n\t * Transitioning from an (initial) false to true state causes the\n\t * <Toolbar /> component to mount twice, which is causing undesired\n\t * side-effects. These side-effects appear to only affect certain\n\t * E2E tests.\n\t *\n\t * This was initial discovered in this pull-request:\n\t * https://github.com/WordPress/gutenberg/pull/23425\n\t */\n\tconst initialAccessibleToolbarState = true;\n\n\t// By default, it's gonna render NavigableMenu. If all the tabbable elements\n\t// inside the toolbar are ToolbarItem components (or derived components like\n\t// ToolbarButton), then we can wrap them with the accessible Toolbar\n\t// component.\n\tconst [ isAccessibleToolbar, setIsAccessibleToolbar ] = useState(\n\t\tinitialAccessibleToolbarState\n\t);\n\n\tconst determineIsAccessibleToolbar = useCallback( () => {\n\t\tconst tabbables = focus.tabbable.find( ref.current );\n\t\tconst onlyToolbarItem = hasOnlyToolbarItem( tabbables );\n\t\tif ( ! onlyToolbarItem ) {\n\t\t\tdeprecated( 'Using custom components as toolbar controls', {\n\t\t\t\tsince: '5.6',\n\t\t\t\talternative:\n\t\t\t\t\t'ToolbarItem, ToolbarButton or ToolbarDropdownMenu components',\n\t\t\t\tlink:\n\t\t\t\t\t'https://developer.wordpress.org/block-editor/components/toolbar-button/#inside-blockcontrols',\n\t\t\t} );\n\t\t}\n\t\tsetIsAccessibleToolbar( onlyToolbarItem );\n\t}, [] );\n\n\tuseLayoutEffect( () => {\n\t\t// Toolbar buttons may be rendered asynchronously, so we use\n\t\t// MutationObserver to check if the toolbar subtree has been modified.\n\t\tconst observer = new window.MutationObserver(\n\t\t\tdetermineIsAccessibleToolbar\n\t\t);\n\t\tobserver.observe( ref.current, { childList: true, subtree: true } );\n\t\treturn () => observer.disconnect();\n\t}, [ isAccessibleToolbar ] );\n\n\treturn isAccessibleToolbar;\n}\n\nfunction useToolbarFocus(\n\tref,\n\tfocusOnMount,\n\tisAccessibleToolbar,\n\tdefaultIndex,\n\tonIndexChange\n) {\n\t// Make sure we don't use modified versions of this prop.\n\tconst [ initialFocusOnMount ] = useState( focusOnMount );\n\tconst [ initialIndex ] = useState( defaultIndex );\n\n\tconst focusToolbar = useCallback( () => {\n\t\tfocusFirstTabbableIn( ref.current );\n\t}, [] );\n\n\t// Focus on toolbar when pressing alt+F10 when the toolbar is visible.\n\tuseShortcut( 'core/block-editor/focus-toolbar', focusToolbar );\n\n\tuseEffect( () => {\n\t\tif ( initialFocusOnMount ) {\n\t\t\tfocusToolbar();\n\t\t}\n\t}, [ isAccessibleToolbar, initialFocusOnMount, focusToolbar ] );\n\n\tuseEffect( () => {\n\t\t// If initialIndex is passed, we focus on that toolbar item when the\n\t\t// toolbar gets mounted and initial focus is not forced.\n\t\t// We have to wait for the next browser paint because block controls aren't\n\t\t// rendered right away when the toolbar gets mounted.\n\t\tlet raf = 0;\n\t\tif ( initialIndex && ! initialFocusOnMount ) {\n\t\t\traf = window.requestAnimationFrame( () => {\n\t\t\t\tconst items = getAllToolbarItemsIn( ref.current );\n\t\t\t\tconst index = initialIndex || 0;\n\t\t\t\tif ( items[ index ] && hasFocusWithin( ref.current ) ) {\n\t\t\t\t\titems[ index ].focus();\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame( raf );\n\t\t\tif ( ! onIndexChange || ! ref.current ) return;\n\t\t\t// When the toolbar element is unmounted and onIndexChange is passed, we\n\t\t\t// pass the focused toolbar item index so it can be hydrated later.\n\t\t\tconst items = getAllToolbarItemsIn( ref.current );\n\t\t\tconst index = items.findIndex( ( item ) => item.tabIndex === 0 );\n\t\t\tonIndexChange( index );\n\t\t};\n\t}, [ initialIndex, initialFocusOnMount ] );\n}\n\nfunction NavigableToolbar( {\n\tchildren,\n\tfocusOnMount,\n\t__experimentalInitialIndex: initialIndex,\n\t__experimentalOnIndexChange: onIndexChange,\n\t...props\n} ) {\n\tconst ref = useRef();\n\tconst isAccessibleToolbar = useIsAccessibleToolbar( ref );\n\n\tuseToolbarFocus(\n\t\tref,\n\t\tfocusOnMount,\n\t\tisAccessibleToolbar,\n\t\tinitialIndex,\n\t\tonIndexChange\n\t);\n\n\tif ( isAccessibleToolbar ) {\n\t\treturn (\n\t\t\t<Toolbar label={ props[ 'aria-label' ] } ref={ ref } { ...props }>\n\t\t\t\t{ children }\n\t\t\t</Toolbar>\n\t\t);\n\t}\n\n\treturn (\n\t\t<NavigableMenu\n\t\t\torientation=\"horizontal\"\n\t\t\trole=\"toolbar\"\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</NavigableMenu>\n\t);\n}\n\nexport default NavigableToolbar;\n"]}
|
|
@@ -35,7 +35,7 @@ class PlainText extends _element.Component {
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
componentDidMount() {
|
|
38
|
-
//
|
|
38
|
+
// If isSelected is true, we should request the focus on this TextInput.
|
|
39
39
|
if (this._input && this._input.isFocused() === false && this.props.isSelected) {
|
|
40
40
|
if (this.isAndroid) {
|
|
41
41
|
/*
|
|
@@ -105,9 +105,9 @@ class PlainText extends _element.Component {
|
|
|
105
105
|
onChange: event => {
|
|
106
106
|
this.props.onChange(event.nativeEvent.text);
|
|
107
107
|
},
|
|
108
|
-
onFocus: this.props.onFocus //
|
|
108
|
+
onFocus: this.props.onFocus // Always assign onFocus as a props.
|
|
109
109
|
,
|
|
110
|
-
onBlur: this.props.onBlur //
|
|
110
|
+
onBlur: this.props.onBlur // Always assign onBlur as a props.
|
|
111
111
|
,
|
|
112
112
|
fontFamily: this.props.style && this.props.style.fontFamily || _style.default['block-editor-plain-text'].fontFamily,
|
|
113
113
|
style: textStyles,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/plain-text/index.native.js"],"names":["PlainText","Component","constructor","arguments","isAndroid","Platform","OS","componentDidMount","_input","isFocused","props","isSelected","timeoutID","setTimeout","focus","componentDidUpdate","prevProps","blur","componentWillUnmount","clearTimeout","getFontSize","style","fontSize","width","height","Dimensions","get","cssUnitOptions","parseFloat","render","textStyles","styles","x","event","onChange","nativeEvent","text","onFocus","onBlur","fontFamily"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAMA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGe,MAAMA,SAAN,SAAwBC,kBAAxB,CAAkC;AAChDC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AACA,SAAKC,SAAL,GAAiBC,sBAASC,EAAT,KAAgB,SAAjC;AACA;;AAEDC,EAAAA,iBAAiB,GAAG;AACnB;AACA,QACC,KAAKC,MAAL,IACA,KAAKA,MAAL,CAAYC,SAAZ,OAA4B,KAD5B,IAEA,KAAKC,KAAL,CAAWC,UAHZ,EAIE;AACD,UAAK,KAAKP,SAAV,EAAsB;AACrB;AACJ;AACA;AACA;AACA;AACI,aAAKQ,SAAL,GAAiBC,UAAU,CAAE,MAAM;AAClC,eAAKL,MAAL,CAAYM,KAAZ;AACA,SAF0B,EAExB,GAFwB,CAA3B;AAGA,OATD,MASO;AACN,aAAKN,MAAL,CAAYM,KAAZ;AACA;AACD;AACD;;AAEDC,EAAAA,kBAAkB,CAAEC,SAAF,EAAc;AAC/B,QAAK,CAAE,KAAKN,KAAL,CAAWC,UAAb,IAA2BK,SAAS,CAACL,UAA1C,EAAuD;AACtD,WAAKH,MAAL,CAAYS,IAAZ;AACA;AACD;;AAEDC,EAAAA,oBAAoB,GAAG;AACtB,QAAK,KAAKd,SAAV,EAAsB;AACrBe,MAAAA,YAAY,CAAE,KAAKP,SAAP,CAAZ;AACA;AACD;;AAEDE,EAAAA,KAAK,GAAG;AACP,SAAKN,MAAL,CAAYM,KAAZ;AACA;;AAEDG,EAAAA,IAAI,GAAG;AACN,SAAKT,MAAL,CAAYS,IAAZ;AACA;;AAEDG,EAAAA,WAAW,GAAG;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAY,KAAKX,KAAvB;;AAEA,QAAK,EAAEW,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEC,QAAT,CAAL,EAAyB;AACxB;AACA;;AAED,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAoBC,wBAAWC,GAAX,CAAgB,QAAhB,CAA1B;;AACA,UAAMC,cAAc,GAAG;AAAEH,MAAAA,MAAF;AAAUD,MAAAA;AAAV,KAAvB;AAEA,WAAO;AACND,MAAAA,QAAQ,EAAEM,UAAU,CACnB,mCAAkBP,KAAK,CAACC,QAAxB,EAAkCK,cAAlC,CADmB;AADd,KAAP;AAKA;;AAEDE,EAAAA,MAAM,GAAG;AACR,UAAM;AAAER,MAAAA;AAAF,QAAY,KAAKX,KAAvB;AACA,UAAMoB,UAAU,GAAG,CAClBT,KAAK,IAAIU,eAAQ,yBAAR,CADS,EAElB,KAAKX,WAAL,EAFkB,CAAnB;AAKA,WACC,4BAAC,sBAAD,6BACM,KAAKV,KADX;AAEC,MAAA,GAAG,EAAKsB,CAAF,IAAW,KAAKxB,MAAL,GAAcwB,CAFhC;AAGC,MAAA,QAAQ,EAAKC,KAAF,IAAa;AACvB,aAAKvB,KAAL,CAAWwB,QAAX,CAAqBD,KAAK,CAACE,WAAN,CAAkBC,IAAvC;AACA,OALF;AAMC,MAAA,OAAO,EAAG,KAAK1B,KAAL,CAAW2B,OANtB,CAMgC;AANhC;AAOC,MAAA,MAAM,EAAG,KAAK3B,KAAL,CAAW4B,MAPrB,CAO8B;AAP9B;AAQC,MAAA,UAAU,EACP,KAAK5B,KAAL,CAAWW,KAAX,IAAoB,KAAKX,KAAL,CAAWW,KAAX,CAAiBkB,UAAvC,IACAR,eAAQ,yBAAR,EAAoCQ,UAVtC;AAYC,MAAA,KAAK,EAAGT,UAZT;AAaC,MAAA,aAAa,EAAG;AAbjB,OADD;AAiBA;;AAzF+C","sourcesContent":["/**\n * External dependencies\n */\nimport { TextInput, Platform, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { getPxFromCssUnit } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nexport default class PlainText extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.isAndroid = Platform.OS === 'android';\n\t}\n\n\tcomponentDidMount() {\n\t\t//
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/plain-text/index.native.js"],"names":["PlainText","Component","constructor","arguments","isAndroid","Platform","OS","componentDidMount","_input","isFocused","props","isSelected","timeoutID","setTimeout","focus","componentDidUpdate","prevProps","blur","componentWillUnmount","clearTimeout","getFontSize","style","fontSize","width","height","Dimensions","get","cssUnitOptions","parseFloat","render","textStyles","styles","x","event","onChange","nativeEvent","text","onFocus","onBlur","fontFamily"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAMA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGe,MAAMA,SAAN,SAAwBC,kBAAxB,CAAkC;AAChDC,EAAAA,WAAW,GAAG;AACb,UAAO,GAAGC,SAAV;AACA,SAAKC,SAAL,GAAiBC,sBAASC,EAAT,KAAgB,SAAjC;AACA;;AAEDC,EAAAA,iBAAiB,GAAG;AACnB;AACA,QACC,KAAKC,MAAL,IACA,KAAKA,MAAL,CAAYC,SAAZ,OAA4B,KAD5B,IAEA,KAAKC,KAAL,CAAWC,UAHZ,EAIE;AACD,UAAK,KAAKP,SAAV,EAAsB;AACrB;AACJ;AACA;AACA;AACA;AACI,aAAKQ,SAAL,GAAiBC,UAAU,CAAE,MAAM;AAClC,eAAKL,MAAL,CAAYM,KAAZ;AACA,SAF0B,EAExB,GAFwB,CAA3B;AAGA,OATD,MASO;AACN,aAAKN,MAAL,CAAYM,KAAZ;AACA;AACD;AACD;;AAEDC,EAAAA,kBAAkB,CAAEC,SAAF,EAAc;AAC/B,QAAK,CAAE,KAAKN,KAAL,CAAWC,UAAb,IAA2BK,SAAS,CAACL,UAA1C,EAAuD;AACtD,WAAKH,MAAL,CAAYS,IAAZ;AACA;AACD;;AAEDC,EAAAA,oBAAoB,GAAG;AACtB,QAAK,KAAKd,SAAV,EAAsB;AACrBe,MAAAA,YAAY,CAAE,KAAKP,SAAP,CAAZ;AACA;AACD;;AAEDE,EAAAA,KAAK,GAAG;AACP,SAAKN,MAAL,CAAYM,KAAZ;AACA;;AAEDG,EAAAA,IAAI,GAAG;AACN,SAAKT,MAAL,CAAYS,IAAZ;AACA;;AAEDG,EAAAA,WAAW,GAAG;AACb,UAAM;AAAEC,MAAAA;AAAF,QAAY,KAAKX,KAAvB;;AAEA,QAAK,EAAEW,KAAF,aAAEA,KAAF,eAAEA,KAAK,CAAEC,QAAT,CAAL,EAAyB;AACxB;AACA;;AAED,UAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA;AAAT,QAAoBC,wBAAWC,GAAX,CAAgB,QAAhB,CAA1B;;AACA,UAAMC,cAAc,GAAG;AAAEH,MAAAA,MAAF;AAAUD,MAAAA;AAAV,KAAvB;AAEA,WAAO;AACND,MAAAA,QAAQ,EAAEM,UAAU,CACnB,mCAAkBP,KAAK,CAACC,QAAxB,EAAkCK,cAAlC,CADmB;AADd,KAAP;AAKA;;AAEDE,EAAAA,MAAM,GAAG;AACR,UAAM;AAAER,MAAAA;AAAF,QAAY,KAAKX,KAAvB;AACA,UAAMoB,UAAU,GAAG,CAClBT,KAAK,IAAIU,eAAQ,yBAAR,CADS,EAElB,KAAKX,WAAL,EAFkB,CAAnB;AAKA,WACC,4BAAC,sBAAD,6BACM,KAAKV,KADX;AAEC,MAAA,GAAG,EAAKsB,CAAF,IAAW,KAAKxB,MAAL,GAAcwB,CAFhC;AAGC,MAAA,QAAQ,EAAKC,KAAF,IAAa;AACvB,aAAKvB,KAAL,CAAWwB,QAAX,CAAqBD,KAAK,CAACE,WAAN,CAAkBC,IAAvC;AACA,OALF;AAMC,MAAA,OAAO,EAAG,KAAK1B,KAAL,CAAW2B,OANtB,CAMgC;AANhC;AAOC,MAAA,MAAM,EAAG,KAAK3B,KAAL,CAAW4B,MAPrB,CAO8B;AAP9B;AAQC,MAAA,UAAU,EACP,KAAK5B,KAAL,CAAWW,KAAX,IAAoB,KAAKX,KAAL,CAAWW,KAAX,CAAiBkB,UAAvC,IACAR,eAAQ,yBAAR,EAAoCQ,UAVtC;AAYC,MAAA,KAAK,EAAGT,UAZT;AAaC,MAAA,aAAa,EAAG;AAbjB,OADD;AAiBA;;AAzF+C","sourcesContent":["/**\n * External dependencies\n */\nimport { TextInput, Platform, Dimensions } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { getPxFromCssUnit } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nexport default class PlainText extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.isAndroid = Platform.OS === 'android';\n\t}\n\n\tcomponentDidMount() {\n\t\t// If isSelected is true, we should request the focus on this TextInput.\n\t\tif (\n\t\t\tthis._input &&\n\t\t\tthis._input.isFocused() === false &&\n\t\t\tthis.props.isSelected\n\t\t) {\n\t\t\tif ( this.isAndroid ) {\n\t\t\t\t/*\n\t\t\t\t * There seems to be an issue in React Native where the keyboard doesn't show if called shortly after rendering.\n\t\t\t\t * As a common work around this delay is used.\n\t\t\t\t * https://github.com/facebook/react-native/issues/19366#issuecomment-400603928\n\t\t\t\t */\n\t\t\t\tthis.timeoutID = setTimeout( () => {\n\t\t\t\t\tthis._input.focus();\n\t\t\t\t}, 100 );\n\t\t\t} else {\n\t\t\t\tthis._input.focus();\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( ! this.props.isSelected && prevProps.isSelected ) {\n\t\t\tthis._input.blur();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.isAndroid ) {\n\t\t\tclearTimeout( this.timeoutID );\n\t\t}\n\t}\n\n\tfocus() {\n\t\tthis._input.focus();\n\t}\n\n\tblur() {\n\t\tthis._input.blur();\n\t}\n\n\tgetFontSize() {\n\t\tconst { style } = this.props;\n\n\t\tif ( ! style?.fontSize ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { width, height } = Dimensions.get( 'window' );\n\t\tconst cssUnitOptions = { height, width };\n\n\t\treturn {\n\t\t\tfontSize: parseFloat(\n\t\t\t\tgetPxFromCssUnit( style.fontSize, cssUnitOptions )\n\t\t\t),\n\t\t};\n\t}\n\n\trender() {\n\t\tconst { style } = this.props;\n\t\tconst textStyles = [\n\t\t\tstyle || styles[ 'block-editor-plain-text' ],\n\t\t\tthis.getFontSize(),\n\t\t];\n\n\t\treturn (\n\t\t\t<TextInput\n\t\t\t\t{ ...this.props }\n\t\t\t\tref={ ( x ) => ( this._input = x ) }\n\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\tthis.props.onChange( event.nativeEvent.text );\n\t\t\t\t} }\n\t\t\t\tonFocus={ this.props.onFocus } // Always assign onFocus as a props.\n\t\t\t\tonBlur={ this.props.onBlur } // Always assign onBlur as a props.\n\t\t\t\tfontFamily={\n\t\t\t\t\t( this.props.style && this.props.style.fontFamily ) ||\n\t\t\t\t\tstyles[ 'block-editor-plain-text' ].fontFamily\n\t\t\t\t}\n\t\t\t\tstyle={ textStyles }\n\t\t\t\tscrollEnabled={ false }\n\t\t\t/>\n\t\t);\n\t}\n}\n"]}
|
|
@@ -29,7 +29,7 @@ const FormatToolbarContainer = _ref => {
|
|
|
29
29
|
} = _ref;
|
|
30
30
|
|
|
31
31
|
if (inline) {
|
|
32
|
-
// Render in popover
|
|
32
|
+
// Render in popover.
|
|
33
33
|
return (0, _element.createElement)(_components.Popover, {
|
|
34
34
|
noArrow: true,
|
|
35
35
|
position: "top center",
|
|
@@ -40,7 +40,7 @@ const FormatToolbarContainer = _ref => {
|
|
|
40
40
|
}, (0, _element.createElement)("div", {
|
|
41
41
|
className: "block-editor-rich-text__inline-format-toolbar-group"
|
|
42
42
|
}, (0, _element.createElement)(_components.ToolbarGroup, null, (0, _element.createElement)(_formatToolbar.default, null))));
|
|
43
|
-
} // Render regular toolbar
|
|
43
|
+
} // Render regular toolbar.
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
return (0, _element.createElement)(_blockControls.default, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.js"],"names":["FormatToolbarContainer","inline","anchorRef"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIA,MAAMA,sBAAsB,GAAG,QAA6B;AAAA,MAA3B;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAA2B;;AAC3D,MAAKD,MAAL,EAAc;AACb;AACA,WACC,4BAAC,mBAAD;AACC,MAAA,OAAO,MADR;AAEC,MAAA,QAAQ,EAAC,YAFV;AAGC,MAAA,YAAY,EAAG,KAHhB;AAIC,MAAA,SAAS,EAAGC,SAJb;AAKC,MAAA,SAAS,EAAC,+CALX;AAMC,MAAA,kBAAkB,EAAC;AANpB,OAQC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,4BAAC,wBAAD,QACC,4BAAC,sBAAD,OADD,CADD,CARD,CADD;AAgBA,GAnB0D,CAoB3D;;;AACA,SACC,4BAAC,sBAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sBAAD,OADD,CADD;AAKA,CA1BD;;eA4BeF,sB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Popover, ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\n\nconst FormatToolbarContainer = ( { inline, anchorRef } ) => {\n\tif ( inline ) {\n\t\t// Render in popover
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.js"],"names":["FormatToolbarContainer","inline","anchorRef"],"mappings":";;;;;;;;;;;AAGA;;AAKA;;AACA;;AATA;AACA;AACA;;AAGA;AACA;AACA;AAIA,MAAMA,sBAAsB,GAAG,QAA6B;AAAA,MAA3B;AAAEC,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAA2B;;AAC3D,MAAKD,MAAL,EAAc;AACb;AACA,WACC,4BAAC,mBAAD;AACC,MAAA,OAAO,MADR;AAEC,MAAA,QAAQ,EAAC,YAFV;AAGC,MAAA,YAAY,EAAG,KAHhB;AAIC,MAAA,SAAS,EAAGC,SAJb;AAKC,MAAA,SAAS,EAAC,+CALX;AAMC,MAAA,kBAAkB,EAAC;AANpB,OAQC;AAAK,MAAA,SAAS,EAAC;AAAf,OACC,4BAAC,wBAAD,QACC,4BAAC,sBAAD,OADD,CADD,CARD,CADD;AAgBA,GAnB0D,CAoB3D;;;AACA,SACC,4BAAC,sBAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sBAAD,OADD,CADD;AAKA,CA1BD;;eA4BeF,sB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Popover, ToolbarGroup } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\n\nconst FormatToolbarContainer = ( { inline, anchorRef } ) => {\n\tif ( inline ) {\n\t\t// Render in popover.\n\t\treturn (\n\t\t\t<Popover\n\t\t\t\tnoArrow\n\t\t\t\tposition=\"top center\"\n\t\t\t\tfocusOnMount={ false }\n\t\t\t\tanchorRef={ anchorRef }\n\t\t\t\tclassName=\"block-editor-rich-text__inline-format-toolbar\"\n\t\t\t\t__unstableSlotName=\"block-toolbar\"\n\t\t\t>\n\t\t\t\t<div className=\"block-editor-rich-text__inline-format-toolbar-group\">\n\t\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t\t<FormatToolbar />\n\t\t\t\t\t</ToolbarGroup>\n\t\t\t\t</div>\n\t\t\t</Popover>\n\t\t);\n\t}\n\t// Render regular toolbar.\n\treturn (\n\t\t<BlockControls group=\"inline\">\n\t\t\t<FormatToolbar />\n\t\t</BlockControls>\n\t);\n};\n\nexport default FormatToolbarContainer;\n"]}
|
|
@@ -17,7 +17,7 @@ var _formatToolbar = _interopRequireDefault(require("./format-toolbar"));
|
|
|
17
17
|
* Internal dependencies
|
|
18
18
|
*/
|
|
19
19
|
const FormatToolbarContainer = () => {
|
|
20
|
-
// Render regular toolbar
|
|
20
|
+
// Render regular toolbar.
|
|
21
21
|
return (0, _element.createElement)(_blockControls.default, {
|
|
22
22
|
group: "inline"
|
|
23
23
|
}, (0, _element.createElement)(_formatToolbar.default, null));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.native.js"],"names":["FormatToolbarContainer"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIA,MAAMA,sBAAsB,GAAG,MAAM;AACpC;AACA,SACC,4BAAC,sBAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sBAAD,OADD,CADD;AAKA,CAPD;;eASeA,sB","sourcesContent":["/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\n\nconst FormatToolbarContainer = () => {\n\t// Render regular toolbar
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/format-toolbar-container.native.js"],"names":["FormatToolbarContainer"],"mappings":";;;;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIA,MAAMA,sBAAsB,GAAG,MAAM;AACpC;AACA,SACC,4BAAC,sBAAD;AAAe,IAAA,KAAK,EAAC;AAArB,KACC,4BAAC,sBAAD,OADD,CADD;AAKA,CAPD;;eASeA,sB","sourcesContent":["/**\n * Internal dependencies\n */\nimport BlockControls from '../block-controls';\nimport FormatToolbar from './format-toolbar';\n\nconst FormatToolbarContainer = () => {\n\t// Render regular toolbar.\n\treturn (\n\t\t<BlockControls group=\"inline\">\n\t\t\t<FormatToolbar />\n\t\t</BlockControls>\n\t);\n};\n\nexport default FormatToolbarContainer;\n"]}
|
|
@@ -171,7 +171,7 @@ function RichTextWrapper(_ref, forwardedRef) {
|
|
|
171
171
|
if (_element.Platform.OS === 'native') {
|
|
172
172
|
// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.
|
|
173
173
|
// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.
|
|
174
|
-
// This apparently assumes functionality the BlockHlder actually
|
|
174
|
+
// This apparently assumes functionality the BlockHlder actually.
|
|
175
175
|
const block = clientId && getBlock(clientId);
|
|
176
176
|
const shouldBlurOnUnmount = block && isSelected && (0, _blocks.isUnmodifiedDefaultBlock)(block);
|
|
177
177
|
extraProps = {
|
|
@@ -190,7 +190,7 @@ function RichTextWrapper(_ref, forwardedRef) {
|
|
|
190
190
|
...extraProps
|
|
191
191
|
};
|
|
192
192
|
}; // This selector must run on every render so the right selection state is
|
|
193
|
-
//
|
|
193
|
+
// retrieved from the store on merge.
|
|
194
194
|
// To do: fix this somehow.
|
|
195
195
|
|
|
196
196
|
|
|
@@ -290,7 +290,7 @@ function RichTextWrapper(_ref, forwardedRef) {
|
|
|
290
290
|
} else if (onSplitMiddle) {
|
|
291
291
|
blocks.push(onSplitMiddle());
|
|
292
292
|
} // If there's pasted blocks, append a block with non empty content
|
|
293
|
-
|
|
293
|
+
// after the caret. Otherwise, do append an empty block if there
|
|
294
294
|
// is no `onSplitMiddle` prop, but if there is and the content is
|
|
295
295
|
// empty, the middle block is enough to set focus in.
|
|
296
296
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/index.native.js"],"names":["wrapperClasses","classes","RichTextWrapper","forwardedRef","children","tagName","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","formattingControls","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","__unstableMultilineRootTag","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","rootTagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","onBlur","setRef","props","instanceId","fallbackRef","clientId","blockIsSelected","nativeProps","embedHandlerPickerRef","selector","select","isCaretWithinFormattedText","getSelectionStart","getSelectionEnd","getSettings","didAutomaticChange","getBlock","isMultiSelecting","hasMultiSelection","blockEditorStore","selectionStart","selectionEnd","__experimentalUndo","undo","undefined","attributeKey","extraProps","Platform","OS","block","shouldBlurOnUnmount","offset","disabled","__unstableMarkLastChangeAsPersistent","enterFormattedText","exitFormattedText","selectionChange","__unstableMarkAutomaticChange","multilineTag","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","childrenSource","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","start","end","onDelete","isReverse","splitValue","record","pastedBlocks","blocks","before","after","hasPastedBlocks","lastPastedBlockIndex","isAfterOriginal","push","indexToSelect","initialPosition","onEnter","shiftKey","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","canSplitAtEnd","onPaste","html","plainText","isInternal","files","activeFormats","pastedValue","multilineWrapperTags","HTML","mode","window","console","log","isPastedURL","trim","presentEmbedHandlerPicker","current","presentPicker","createEmbed","createLink","valueToInsert","LINE_SEPARATOR","canPasteEmbed","name","inputRule","valueToFormat","characterBefore","slice","trimmedTextBefore","prefixTransforms","prefix","mergedRef","id","style","nestedIsSelected","onFocus","editableProps","editableTagName","TagName","listBoxId","activeId","onKeyDown","className","event","since","alternative","version","ForwardedRichTextContainer","Content","Tag","MultilineTag","isEmpty","defaultProps","format"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRawHTML,\n\tPlatform,\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tpasteHandler,\n\tchildren as childrenSource,\n\tgetBlockTransforms,\n\tfindTransform,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__experimentalRichText as RichText,\n\t__unstableCreateElement,\n\tisEmpty,\n\t__unstableIsEmptyLine as isEmptyLine,\n\tinsert,\n\t__unstableInsertLineSeparator as insertLineSeparator,\n\tcreate,\n\treplace,\n\tsplit,\n\t__UNSTABLE_LINE_SEPARATOR as LINE_SEPARATOR,\n\ttoHTMLString,\n\tslice,\n} from '@wordpress/rich-text';\nimport deprecated from '@wordpress/deprecated';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport Autocomplete from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { RemoveBrowserShortcuts } from './remove-browser-shortcuts';\nimport { filePasteHandler } from './file-paste-handler';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { useNativeProps } from './use-native-props';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\taddActiveFormats,\n\tgetMultilineTag,\n\tgetAllowedFormats,\n\tisShortcode,\n\tcreateLinkInParagraph,\n} from './utils';\nimport EmbedHandlerPicker from './embed-handler-picker';\n\nconst wrapperClasses = 'block-editor-rich-text';\nconst classes = 'block-editor-rich-text__editable';\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName,\n\t\tvalue: originalValue,\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\tformattingControls,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t__unstableMultilineRootTag,\n\t\t// Native props.\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\trootTagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tonBlur,\n\t\tsetRef,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\n\tconst fallbackRef = useRef();\n\tconst { clientId, isSelected: blockIsSelected } = useBlockEditContext();\n\tconst nativeProps = useNativeProps();\n\tconst embedHandlerPickerRef = useRef();\n\tconst selector = ( select ) => {\n\t\tconst {\n\t\t\tisCaretWithinFormattedText,\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSettings,\n\t\t\tdidAutomaticChange,\n\t\t\tgetBlock,\n\t\t\tisMultiSelecting,\n\t\t\thasMultiSelection,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst { __experimentalUndo: undo } = getSettings();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\tlet extraProps = {};\n\t\tif ( Platform.OS === 'native' ) {\n\t\t\t// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n\t\t\t// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n\t\t\t// This apparently assumes functionality the BlockHlder actually\n\t\t\tconst block = clientId && getBlock( clientId );\n\t\t\tconst shouldBlurOnUnmount =\n\t\t\t\tblock && isSelected && isUnmodifiedDefaultBlock( block );\n\t\t\textraProps = {\n\t\t\t\tshouldBlurOnUnmount,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tisCaretWithinFormattedText: isCaretWithinFormattedText(),\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tdidAutomaticChange: didAutomaticChange(),\n\t\t\tdisabled: isMultiSelecting() || hasMultiSelection(),\n\t\t\tundo,\n\t\t\t...extraProps,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retreived from the store on merge.\n\t// To do: fix this somehow.\n\tconst {\n\t\tisCaretWithinFormattedText,\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tisSelected,\n\t\tdidAutomaticChange,\n\t\tdisabled,\n\t\tundo,\n\t\tshouldBlurOnUnmount,\n\t} = useSelect( selector );\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tenterFormattedText,\n\t\texitFormattedText,\n\t\tselectionChange,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\tconst multilineTag = getMultilineTag( multiline );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tformattingControls,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tselectionChange( clientId, identifier, start, end );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst onDelete = useCallback(\n\t\t( { value, isReverse } ) => {\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\tif ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\t\t},\n\t\t[ onMerge, onRemove ]\n\t);\n\n\t/**\n\t * Signals to the RichText owner that the block can be replaced with two\n\t * blocks as a result of splitting the block by pressing enter, or with\n\t * blocks as a result of splitting the block by pasting block content in the\n\t * instance.\n\t *\n\t * @param {Object} record The rich text value to split.\n\t * @param {Array} pastedBlocks The pasted blocks to insert, if any.\n\t */\n\tconst splitValue = useCallback(\n\t\t( record, pastedBlocks = [] ) => {\n\t\t\tif ( ! onReplace || ! onSplit ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blocks = [];\n\t\t\tconst [ before, after ] = split( record );\n\t\t\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\t\t\tlet lastPastedBlockIndex = -1;\n\n\t\t\t// Consider the after value to be the original it is not empty and\n\t\t\t// the before value *is* empty.\n\t\t\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t\t\t// Create a block with the content before the caret if there's no pasted\n\t\t\t// blocks, or if there are pasted blocks and the value is not empty.\n\t\t\t// We do not want a leading empty block on paste, but we do if split\n\t\t\t// with e.g. the enter key.\n\t\t\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: before,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\t! isAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tlastPastedBlockIndex += 1;\n\t\t\t}\n\n\t\t\tif ( hasPastedBlocks ) {\n\t\t\t\tblocks.push( ...pastedBlocks );\n\t\t\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t\t\t} else if ( onSplitMiddle ) {\n\t\t\t\tblocks.push( onSplitMiddle() );\n\t\t\t}\n\n\t\t\t// If there's pasted blocks, append a block with non empty content\n\t\t\t/// after the caret. Otherwise, do append an empty block if there\n\t\t\t// is no `onSplitMiddle` prop, but if there is and the content is\n\t\t\t// empty, the middle block is enough to set focus in.\n\t\t\tif (\n\t\t\t\thasPastedBlocks\n\t\t\t\t\t? ! isEmpty( after )\n\t\t\t\t\t: ! onSplitMiddle || ! isEmpty( after )\n\t\t\t) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: after,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tisAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If there are pasted blocks, set the selection to the last one.\n\t\t\t// Otherwise, set the selection to the second block.\n\t\t\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t\t\t// If there are pasted blocks, move the caret to the end of the selected block\n\t\t\t// Otherwise, retain the default value.\n\t\t\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\t\t\tonReplace( blocks, indexToSelect, initialPosition );\n\t\t},\n\t\t[ onReplace, onSplit, multilineTag, onSplitMiddle ]\n\t);\n\n\tconst onEnter = useCallback(\n\t\t( { value, onChange, shiftKey } ) => {\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( { content: value.text } ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( multiline ) {\n\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t\t}\n\t\t\t\t} else if ( canSplit && isEmptyLine( value ) ) {\n\t\t\t\t\tsplitValue( value );\n\t\t\t\t} else {\n\t\t\t\t\tonChange( insertLineSeparator( value ) );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst { text, start, end } = value;\n\t\t\t\tconst canSplitAtEnd =\n\t\t\t\t\tonSplitAtEnd && start === end && end === text.length;\n\n\t\t\t\tif ( shiftKey || ( ! canSplit && ! canSplitAtEnd ) ) {\n\t\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t\t}\n\t\t\t\t} else if ( ! canSplit && canSplitAtEnd ) {\n\t\t\t\t\tonSplitAtEnd();\n\t\t\t\t} else if ( canSplit ) {\n\t\t\t\t\tsplitValue( value );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\t__unstableMarkAutomaticChange,\n\t\t\tmultiline,\n\t\t\tsplitValue,\n\t\t\tonSplitAtEnd,\n\t\t]\n\t);\n\n\tconst onPaste = useCallback(\n\t\t( {\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\thtml,\n\t\t\tplainText,\n\t\t\tisInternal,\n\t\t\tfiles,\n\t\t\tactiveFormats,\n\t\t} ) => {\n\t\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t\t// without filtering the data. The filters are only meant for externally\n\t\t\t// pasted content and remove inline styles.\n\t\t\tif ( isInternal ) {\n\t\t\t\tconst pastedValue = create( {\n\t\t\t\t\thtml,\n\t\t\t\t\tmultilineTag,\n\t\t\t\t\tmultilineWrapperTags:\n\t\t\t\t\t\tmultilineTag === 'li' ? [ 'ul', 'ol' ] : undefined,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\t\t\t\taddActiveFormats( pastedValue, activeFormats );\n\t\t\t\tonChange( insert( value, pastedValue ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( pastePlainText ) {\n\t\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process file if no HTML is present.\n\t\t\t// Note: a pasted file may have the URL as plain text.\n\t\t\tif ( files && files.length && ! html ) {\n\t\t\t\tconst content = pasteHandler( {\n\t\t\t\t\tHTML: filePasteHandler( files ),\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\ttagName,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\twindow.console.log( 'Received items:\\n\\n', files );\n\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tonReplace( content );\n\t\t\t\t} else {\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mode = onReplace && onSplit ? 'AUTO' : 'INLINE';\n\n\t\t\t// Force the blocks mode when the user is pasting\n\t\t\t// on a new line & the content resembles a shortcode.\n\t\t\t// Otherwise it's going to be detected as inline\n\t\t\t// and the shortcode won't be replaced.\n\t\t\tif (\n\t\t\t\tmode === 'AUTO' &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisShortcode( plainText )\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst isPastedURL = isURL( plainText.trim() );\n\t\t\tconst presentEmbedHandlerPicker = () =>\n\t\t\t\tembedHandlerPickerRef.current?.presentPicker( {\n\t\t\t\t\tcreateEmbed: () =>\n\t\t\t\t\t\tonReplace( content, content.length - 1, -1 ),\n\t\t\t\t\tcreateLink: () =>\n\t\t\t\t\t\tcreateLinkInParagraph( plainText.trim(), onReplace ),\n\t\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisPastedURL\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst content = pasteHandler( {\n\t\t\t\tHTML: html,\n\t\t\t\tplainText,\n\t\t\t\tmode,\n\t\t\t\ttagName,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tlet valueToInsert = create( { html: content } );\n\n\t\t\t\taddActiveFormats( valueToInsert, activeFormats );\n\n\t\t\t\t// If the content should be multiline, we should process text\n\t\t\t\t// separated by a line break as separate lines.\n\t\t\t\tif ( multilineTag ) {\n\t\t\t\t\tvalueToInsert = replace(\n\t\t\t\t\t\tvalueToInsert,\n\t\t\t\t\t\t/\\n+/g,\n\t\t\t\t\t\tLINE_SEPARATOR\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else if ( content.length > 0 ) {\n\t\t\t\t// When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL\n\t\t\t\t// into either an Embed block or a link within the target paragraph. If the paragraph is non-empty, the URL is pasted as text.\n\t\t\t\tconst canPasteEmbed =\n\t\t\t\t\tisPastedURL &&\n\t\t\t\t\tcontent.length === 1 &&\n\t\t\t\t\tcontent[ 0 ].name === 'core/embed';\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( __unstableEmbedURLOnPaste ) {\n\t\t\t\t\t\t\tpresentEmbedHandlerPicker();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t\t} else {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\tsplitValue,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tmultilineTag,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t]\n\t);\n\n\tconst inputRule = useCallback(\n\t\t( value, valueToFormat ) => {\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { start, text } = value;\n\t\t\tconst characterBefore = text.slice( start - 1, start );\n\n\t\t\t// The character right before the caret must be a plain space.\n\t\t\tif ( characterBefore !== ' ' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst trimmedTextBefore = text.slice( 0, start ).trim();\n\t\t\tconst prefixTransforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t( { type } ) => type === 'prefix'\n\t\t\t);\n\t\t\tconst transformation = findTransform(\n\t\t\t\tprefixTransforms,\n\t\t\t\t( { prefix } ) => {\n\t\t\t\t\treturn trimmedTextBefore === prefix;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! transformation ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = valueToFormat( slice( value, start, text.length ) );\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\t\t},\n\t\t[ onReplace, __unstableMarkAutomaticChange ]\n\t);\n\n\tconst mergedRef = useMergeRefs( [ forwardedRef, fallbackRef ] );\n\n\tconst content = (\n\t\t<RichText\n\t\t\tclientId={ clientId }\n\t\t\tidentifier={ identifier }\n\t\t\tref={ mergedRef }\n\t\t\tvalue={ adjustedValue }\n\t\t\tonChange={ adjustedOnChange }\n\t\t\tselectionStart={ selectionStart }\n\t\t\tselectionEnd={ selectionEnd }\n\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\ttagName={ tagName }\n\t\t\tplaceholder={ placeholder }\n\t\t\tallowedFormats={ adjustedAllowedFormats }\n\t\t\twithoutInteractiveFormatting={ withoutInteractiveFormatting }\n\t\t\tonEnter={ onEnter }\n\t\t\tonDelete={ onDelete }\n\t\t\tonPaste={ onPaste }\n\t\t\t__unstableIsSelected={ isSelected }\n\t\t\t__unstableInputRule={ inputRule }\n\t\t\t__unstableMultilineTag={ multilineTag }\n\t\t\t__unstableIsCaretWithinFormattedText={ isCaretWithinFormattedText }\n\t\t\t__unstableOnEnterFormattedText={ enterFormattedText }\n\t\t\t__unstableOnExitFormattedText={ exitFormattedText }\n\t\t\t__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }\n\t\t\t__unstableMarkAutomaticChange={ __unstableMarkAutomaticChange }\n\t\t\t__unstableDidAutomaticChange={ didAutomaticChange }\n\t\t\t__unstableUndo={ undo }\n\t\t\t__unstableDisableFormats={ disableFormats }\n\t\t\tpreserveWhiteSpace={ preserveWhiteSpace }\n\t\t\tdisabled={ disabled }\n\t\t\tunstableOnFocus={ unstableOnFocus }\n\t\t\t__unstableAllowPrefixTransformations={\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t}\n\t\t\t__unstableMultilineRootTag={ __unstableMultilineRootTag }\n\t\t\t// Native props.\n\t\t\t{ ...nativeProps }\n\t\t\tblockIsSelected={\n\t\t\t\toriginalIsSelected !== undefined\n\t\t\t\t\t? originalIsSelected\n\t\t\t\t\t: blockIsSelected\n\t\t\t}\n\t\t\tshouldBlurOnUnmount={ shouldBlurOnUnmount }\n\t\t\t__unstableMobileNoFocusOnMount={ __unstableMobileNoFocusOnMount }\n\t\t\tdeleteEnter={ deleteEnter }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\ttextAlign={ textAlign }\n\t\t\tselectionColor={ selectionColor }\n\t\t\ttagsToEliminate={ tagsToEliminate }\n\t\t\trootTagsToEliminate={ rootTagsToEliminate }\n\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\tfontSize={ fontSize }\n\t\t\tfontFamily={ fontFamily }\n\t\t\tfontWeight={ fontWeight }\n\t\t\tfontStyle={ fontStyle }\n\t\t\tminWidth={ minWidth }\n\t\t\tmaxWidth={ maxWidth }\n\t\t\tonBlur={ onBlur }\n\t\t\tsetRef={ setRef }\n\t\t\t// Props to be set on the editable container are destructured on the\n\t\t\t// element itself for web (see below), but passed through rich text\n\t\t\t// for native.\n\t\t\tid={ props.id }\n\t\t\tstyle={ props.style }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tisSelected: nestedIsSelected,\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tonFocus,\n\t\t\t\teditableProps,\n\t\t\t\teditableTagName: TagName,\n\t\t\t} ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ children && children( { value, onChange, onFocus } ) }\n\t\t\t\t\t{ nestedIsSelected && hasFormats && (\n\t\t\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\t\t\tanchorRef={ fallbackRef.current }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ nestedIsSelected && <RemoveBrowserShortcuts /> }\n\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\tcompleters={ autocompleters }\n\t\t\t\t\t\trecord={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisSelected={ nestedIsSelected }\n\t\t\t\t\t\tcontentRef={ fallbackRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { listBoxId, activeId, onKeyDown } ) => (\n\t\t\t\t\t\t\t<TagName\n\t\t\t\t\t\t\t\t{ ...editableProps }\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tprops.style\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...props.style,\n\t\t\t\t\t\t\t\t\t\t\t\t...editableProps.style,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: editableProps.style\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\t\t\t\teditableProps.className\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taria-autocomplete={\n\t\t\t\t\t\t\t\t\tlistBoxId ? 'list' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-owns={ listBoxId }\n\t\t\t\t\t\t\t\taria-activedescendant={ activeId }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tonKeyDown( event );\n\t\t\t\t\t\t\t\t\teditableProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Autocomplete>\n\t\t\t\t\t<EmbedHandlerPicker ref={ embedHandlerPickerRef } />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</RichText>\n\t);\n\n\tif ( ! wrapperClassName ) {\n\t\treturn content;\n\t}\n\n\tdeprecated( 'wp.blockEditor.RichText wrapperClassName prop', {\n\t\tsince: '5.4',\n\t\talternative: 'className prop or create your own wrapper div',\n\t\tversion: '6.2',\n\t} );\n\n\treturn (\n\t\t<div className={ classnames( wrapperClasses, wrapperClassName ) }>\n\t\t\t{ content }\n\t\t</div>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = ( {\n\tvalue,\n\ttagName: Tag,\n\tmultiline,\n\t...props\n} ) => {\n\t// Handle deprecated `children` and `node` sources.\n\tif ( Array.isArray( value ) ) {\n\t\tvalue = childrenSource.toHTML( value );\n\t}\n\n\tconst MultilineTag = getMultilineTag( multiline );\n\n\tif ( ! value && MultilineTag ) {\n\t\tvalue = `<${ MultilineTag }></${ MultilineTag }>`;\n\t}\n\n\tconst content = <RawHTML>{ value }</RawHTML>;\n\n\tif ( Tag ) {\n\t\treturn <Tag { ...omit( props, [ 'format' ] ) }>{ content }</Tag>;\n\t}\n\n\treturn content;\n};\n\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nForwardedRichTextContainer.Content.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/rich-text/index.native.js"],"names":["wrapperClasses","classes","RichTextWrapper","forwardedRef","children","tagName","value","originalValue","onChange","originalOnChange","isSelected","originalIsSelected","multiline","inlineToolbar","wrapperClassName","autocompleters","onReplace","placeholder","allowedFormats","formattingControls","withoutInteractiveFormatting","onRemove","onMerge","onSplit","__unstableOnSplitAtEnd","onSplitAtEnd","__unstableOnSplitMiddle","onSplitMiddle","identifier","preserveWhiteSpace","__unstablePastePlainText","pastePlainText","__unstableEmbedURLOnPaste","__unstableDisableFormats","disableFormats","disableLineBreaks","unstableOnFocus","__unstableAllowPrefixTransformations","__unstableMultilineRootTag","__unstableMobileNoFocusOnMount","deleteEnter","placeholderTextColor","textAlign","selectionColor","tagsToEliminate","rootTagsToEliminate","disableEditingMenu","fontSize","fontFamily","fontWeight","fontStyle","minWidth","maxWidth","onBlur","setRef","props","instanceId","fallbackRef","clientId","blockIsSelected","nativeProps","embedHandlerPickerRef","selector","select","isCaretWithinFormattedText","getSelectionStart","getSelectionEnd","getSettings","didAutomaticChange","getBlock","isMultiSelecting","hasMultiSelection","blockEditorStore","selectionStart","selectionEnd","__experimentalUndo","undo","undefined","attributeKey","extraProps","Platform","OS","block","shouldBlurOnUnmount","offset","disabled","__unstableMarkLastChangeAsPersistent","enterFormattedText","exitFormattedText","selectionChange","__unstableMarkAutomaticChange","multilineTag","adjustedAllowedFormats","hasFormats","length","adjustedValue","adjustedOnChange","Array","isArray","childrenSource","toHTML","newValue","fromDOM","document","childNodes","onSelectionChange","start","end","onDelete","isReverse","splitValue","record","pastedBlocks","blocks","before","after","hasPastedBlocks","lastPastedBlockIndex","isAfterOriginal","push","indexToSelect","initialPosition","onEnter","shiftKey","canSplit","transforms","filter","type","transformation","item","regExp","test","text","transform","content","canSplitAtEnd","onPaste","html","plainText","isInternal","files","activeFormats","pastedValue","multilineWrapperTags","HTML","mode","window","console","log","isPastedURL","trim","presentEmbedHandlerPicker","current","presentPicker","createEmbed","createLink","valueToInsert","LINE_SEPARATOR","canPasteEmbed","name","inputRule","valueToFormat","characterBefore","slice","trimmedTextBefore","prefixTransforms","prefix","mergedRef","id","style","nestedIsSelected","onFocus","editableProps","editableTagName","TagName","listBoxId","activeId","onKeyDown","className","event","since","alternative","version","ForwardedRichTextContainer","Content","Tag","MultilineTag","isEmpty","defaultProps","format"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRawHTML,\n\tPlatform,\n\tuseRef,\n\tuseCallback,\n\tforwardRef,\n} from '@wordpress/element';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tpasteHandler,\n\tchildren as childrenSource,\n\tgetBlockTransforms,\n\tfindTransform,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { useInstanceId, useMergeRefs } from '@wordpress/compose';\nimport {\n\t__experimentalRichText as RichText,\n\t__unstableCreateElement,\n\tisEmpty,\n\t__unstableIsEmptyLine as isEmptyLine,\n\tinsert,\n\t__unstableInsertLineSeparator as insertLineSeparator,\n\tcreate,\n\treplace,\n\tsplit,\n\t__UNSTABLE_LINE_SEPARATOR as LINE_SEPARATOR,\n\ttoHTMLString,\n\tslice,\n} from '@wordpress/rich-text';\nimport deprecated from '@wordpress/deprecated';\nimport { isURL } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport Autocomplete from '../autocomplete';\nimport { useBlockEditContext } from '../block-edit';\nimport { RemoveBrowserShortcuts } from './remove-browser-shortcuts';\nimport { filePasteHandler } from './file-paste-handler';\nimport FormatToolbarContainer from './format-toolbar-container';\nimport { useNativeProps } from './use-native-props';\nimport { store as blockEditorStore } from '../../store';\nimport {\n\taddActiveFormats,\n\tgetMultilineTag,\n\tgetAllowedFormats,\n\tisShortcode,\n\tcreateLinkInParagraph,\n} from './utils';\nimport EmbedHandlerPicker from './embed-handler-picker';\n\nconst wrapperClasses = 'block-editor-rich-text';\nconst classes = 'block-editor-rich-text__editable';\n\nfunction RichTextWrapper(\n\t{\n\t\tchildren,\n\t\ttagName,\n\t\tvalue: originalValue,\n\t\tonChange: originalOnChange,\n\t\tisSelected: originalIsSelected,\n\t\tmultiline,\n\t\tinlineToolbar,\n\t\twrapperClassName,\n\t\tautocompleters,\n\t\tonReplace,\n\t\tplaceholder,\n\t\tallowedFormats,\n\t\tformattingControls,\n\t\twithoutInteractiveFormatting,\n\t\tonRemove,\n\t\tonMerge,\n\t\tonSplit,\n\t\t__unstableOnSplitAtEnd: onSplitAtEnd,\n\t\t__unstableOnSplitMiddle: onSplitMiddle,\n\t\tidentifier,\n\t\tpreserveWhiteSpace,\n\t\t__unstablePastePlainText: pastePlainText,\n\t\t__unstableEmbedURLOnPaste,\n\t\t__unstableDisableFormats: disableFormats,\n\t\tdisableLineBreaks,\n\t\tunstableOnFocus,\n\t\t__unstableAllowPrefixTransformations,\n\t\t__unstableMultilineRootTag,\n\t\t// Native props.\n\t\t__unstableMobileNoFocusOnMount,\n\t\tdeleteEnter,\n\t\tplaceholderTextColor,\n\t\ttextAlign,\n\t\tselectionColor,\n\t\ttagsToEliminate,\n\t\trootTagsToEliminate,\n\t\tdisableEditingMenu,\n\t\tfontSize,\n\t\tfontFamily,\n\t\tfontWeight,\n\t\tfontStyle,\n\t\tminWidth,\n\t\tmaxWidth,\n\t\tonBlur,\n\t\tsetRef,\n\t\t...props\n\t},\n\tforwardedRef\n) {\n\tconst instanceId = useInstanceId( RichTextWrapper );\n\n\tidentifier = identifier || instanceId;\n\n\tconst fallbackRef = useRef();\n\tconst { clientId, isSelected: blockIsSelected } = useBlockEditContext();\n\tconst nativeProps = useNativeProps();\n\tconst embedHandlerPickerRef = useRef();\n\tconst selector = ( select ) => {\n\t\tconst {\n\t\t\tisCaretWithinFormattedText,\n\t\t\tgetSelectionStart,\n\t\t\tgetSelectionEnd,\n\t\t\tgetSettings,\n\t\t\tdidAutomaticChange,\n\t\t\tgetBlock,\n\t\t\tisMultiSelecting,\n\t\t\thasMultiSelection,\n\t\t} = select( blockEditorStore );\n\n\t\tconst selectionStart = getSelectionStart();\n\t\tconst selectionEnd = getSelectionEnd();\n\t\tconst { __experimentalUndo: undo } = getSettings();\n\n\t\tlet isSelected;\n\n\t\tif ( originalIsSelected === undefined ) {\n\t\t\tisSelected =\n\t\t\t\tselectionStart.clientId === clientId &&\n\t\t\t\tselectionStart.attributeKey === identifier;\n\t\t} else if ( originalIsSelected ) {\n\t\t\tisSelected = selectionStart.clientId === clientId;\n\t\t}\n\n\t\tlet extraProps = {};\n\t\tif ( Platform.OS === 'native' ) {\n\t\t\t// If the block of this RichText is unmodified then it's a candidate for replacing when adding a new block.\n\t\t\t// In order to fix https://github.com/wordpress-mobile/gutenberg-mobile/issues/1126, let's blur on unmount in that case.\n\t\t\t// This apparently assumes functionality the BlockHlder actually.\n\t\t\tconst block = clientId && getBlock( clientId );\n\t\t\tconst shouldBlurOnUnmount =\n\t\t\t\tblock && isSelected && isUnmodifiedDefaultBlock( block );\n\t\t\textraProps = {\n\t\t\t\tshouldBlurOnUnmount,\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tisCaretWithinFormattedText: isCaretWithinFormattedText(),\n\t\t\tselectionStart: isSelected ? selectionStart.offset : undefined,\n\t\t\tselectionEnd: isSelected ? selectionEnd.offset : undefined,\n\t\t\tisSelected,\n\t\t\tdidAutomaticChange: didAutomaticChange(),\n\t\t\tdisabled: isMultiSelecting() || hasMultiSelection(),\n\t\t\tundo,\n\t\t\t...extraProps,\n\t\t};\n\t};\n\t// This selector must run on every render so the right selection state is\n\t// retrieved from the store on merge.\n\t// To do: fix this somehow.\n\tconst {\n\t\tisCaretWithinFormattedText,\n\t\tselectionStart,\n\t\tselectionEnd,\n\t\tisSelected,\n\t\tdidAutomaticChange,\n\t\tdisabled,\n\t\tundo,\n\t\tshouldBlurOnUnmount,\n\t} = useSelect( selector );\n\tconst {\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tenterFormattedText,\n\t\texitFormattedText,\n\t\tselectionChange,\n\t\t__unstableMarkAutomaticChange,\n\t} = useDispatch( blockEditorStore );\n\tconst multilineTag = getMultilineTag( multiline );\n\tconst adjustedAllowedFormats = getAllowedFormats( {\n\t\tallowedFormats,\n\t\tformattingControls,\n\t\tdisableFormats,\n\t} );\n\tconst hasFormats =\n\t\t! adjustedAllowedFormats || adjustedAllowedFormats.length > 0;\n\tlet adjustedValue = originalValue;\n\tlet adjustedOnChange = originalOnChange;\n\n\t// Handle deprecated format.\n\tif ( Array.isArray( originalValue ) ) {\n\t\tadjustedValue = childrenSource.toHTML( originalValue );\n\t\tadjustedOnChange = ( newValue ) =>\n\t\t\toriginalOnChange(\n\t\t\t\tchildrenSource.fromDOM(\n\t\t\t\t\t__unstableCreateElement( document, newValue ).childNodes\n\t\t\t\t)\n\t\t\t);\n\t}\n\n\tconst onSelectionChange = useCallback(\n\t\t( start, end ) => {\n\t\t\tselectionChange( clientId, identifier, start, end );\n\t\t},\n\t\t[ clientId, identifier ]\n\t);\n\n\tconst onDelete = useCallback(\n\t\t( { value, isReverse } ) => {\n\t\t\tif ( onMerge ) {\n\t\t\t\tonMerge( ! isReverse );\n\t\t\t}\n\n\t\t\t// Only handle remove on Backspace. This serves dual-purpose of being\n\t\t\t// an intentional user interaction distinguishing between Backspace and\n\t\t\t// Delete to remove the empty field, but also to avoid merge & remove\n\t\t\t// causing destruction of two fields (merge, then removed merged).\n\t\t\tif ( onRemove && isEmpty( value ) && isReverse ) {\n\t\t\t\tonRemove( ! isReverse );\n\t\t\t}\n\t\t},\n\t\t[ onMerge, onRemove ]\n\t);\n\n\t/**\n\t * Signals to the RichText owner that the block can be replaced with two\n\t * blocks as a result of splitting the block by pressing enter, or with\n\t * blocks as a result of splitting the block by pasting block content in the\n\t * instance.\n\t *\n\t * @param {Object} record The rich text value to split.\n\t * @param {Array} pastedBlocks The pasted blocks to insert, if any.\n\t */\n\tconst splitValue = useCallback(\n\t\t( record, pastedBlocks = [] ) => {\n\t\t\tif ( ! onReplace || ! onSplit ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst blocks = [];\n\t\t\tconst [ before, after ] = split( record );\n\t\t\tconst hasPastedBlocks = pastedBlocks.length > 0;\n\t\t\tlet lastPastedBlockIndex = -1;\n\n\t\t\t// Consider the after value to be the original it is not empty and\n\t\t\t// the before value *is* empty.\n\t\t\tconst isAfterOriginal = isEmpty( before ) && ! isEmpty( after );\n\n\t\t\t// Create a block with the content before the caret if there's no pasted\n\t\t\t// blocks, or if there are pasted blocks and the value is not empty.\n\t\t\t// We do not want a leading empty block on paste, but we do if split\n\t\t\t// with e.g. the enter key.\n\t\t\tif ( ! hasPastedBlocks || ! isEmpty( before ) ) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: before,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\t! isAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tlastPastedBlockIndex += 1;\n\t\t\t}\n\n\t\t\tif ( hasPastedBlocks ) {\n\t\t\t\tblocks.push( ...pastedBlocks );\n\t\t\t\tlastPastedBlockIndex += pastedBlocks.length;\n\t\t\t} else if ( onSplitMiddle ) {\n\t\t\t\tblocks.push( onSplitMiddle() );\n\t\t\t}\n\n\t\t\t// If there's pasted blocks, append a block with non empty content\n\t\t\t// after the caret. Otherwise, do append an empty block if there\n\t\t\t// is no `onSplitMiddle` prop, but if there is and the content is\n\t\t\t// empty, the middle block is enough to set focus in.\n\t\t\tif (\n\t\t\t\thasPastedBlocks\n\t\t\t\t\t? ! isEmpty( after )\n\t\t\t\t\t: ! onSplitMiddle || ! isEmpty( after )\n\t\t\t) {\n\t\t\t\tblocks.push(\n\t\t\t\t\tonSplit(\n\t\t\t\t\t\ttoHTMLString( {\n\t\t\t\t\t\t\tvalue: after,\n\t\t\t\t\t\t\tmultilineTag,\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tisAfterOriginal\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// If there are pasted blocks, set the selection to the last one.\n\t\t\t// Otherwise, set the selection to the second block.\n\t\t\tconst indexToSelect = hasPastedBlocks ? lastPastedBlockIndex : 1;\n\n\t\t\t// If there are pasted blocks, move the caret to the end of the selected block\n\t\t\t// Otherwise, retain the default value.\n\t\t\tconst initialPosition = hasPastedBlocks ? -1 : 0;\n\n\t\t\tonReplace( blocks, indexToSelect, initialPosition );\n\t\t},\n\t\t[ onReplace, onSplit, multilineTag, onSplitMiddle ]\n\t);\n\n\tconst onEnter = useCallback(\n\t\t( { value, onChange, shiftKey } ) => {\n\t\t\tconst canSplit = onReplace && onSplit;\n\n\t\t\tif ( onReplace ) {\n\t\t\t\tconst transforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t\t( { type } ) => type === 'enter'\n\t\t\t\t);\n\t\t\t\tconst transformation = findTransform( transforms, ( item ) => {\n\t\t\t\t\treturn item.regExp.test( value.text );\n\t\t\t\t} );\n\n\t\t\t\tif ( transformation ) {\n\t\t\t\t\tonReplace( [\n\t\t\t\t\t\ttransformation.transform( { content: value.text } ),\n\t\t\t\t\t] );\n\t\t\t\t\t__unstableMarkAutomaticChange();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( multiline ) {\n\t\t\t\tif ( shiftKey ) {\n\t\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t\t}\n\t\t\t\t} else if ( canSplit && isEmptyLine( value ) ) {\n\t\t\t\t\tsplitValue( value );\n\t\t\t\t} else {\n\t\t\t\t\tonChange( insertLineSeparator( value ) );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst { text, start, end } = value;\n\t\t\t\tconst canSplitAtEnd =\n\t\t\t\t\tonSplitAtEnd && start === end && end === text.length;\n\n\t\t\t\tif ( shiftKey || ( ! canSplit && ! canSplitAtEnd ) ) {\n\t\t\t\t\tif ( ! disableLineBreaks ) {\n\t\t\t\t\t\tonChange( insert( value, '\\n' ) );\n\t\t\t\t\t}\n\t\t\t\t} else if ( ! canSplit && canSplitAtEnd ) {\n\t\t\t\t\tonSplitAtEnd();\n\t\t\t\t} else if ( canSplit ) {\n\t\t\t\t\tsplitValue( value );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\t__unstableMarkAutomaticChange,\n\t\t\tmultiline,\n\t\t\tsplitValue,\n\t\t\tonSplitAtEnd,\n\t\t]\n\t);\n\n\tconst onPaste = useCallback(\n\t\t( {\n\t\t\tvalue,\n\t\t\tonChange,\n\t\t\thtml,\n\t\t\tplainText,\n\t\t\tisInternal,\n\t\t\tfiles,\n\t\t\tactiveFormats,\n\t\t} ) => {\n\t\t\t// If the data comes from a rich text instance, we can directly use it\n\t\t\t// without filtering the data. The filters are only meant for externally\n\t\t\t// pasted content and remove inline styles.\n\t\t\tif ( isInternal ) {\n\t\t\t\tconst pastedValue = create( {\n\t\t\t\t\thtml,\n\t\t\t\t\tmultilineTag,\n\t\t\t\t\tmultilineWrapperTags:\n\t\t\t\t\t\tmultilineTag === 'li' ? [ 'ul', 'ol' ] : undefined,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\t\t\t\taddActiveFormats( pastedValue, activeFormats );\n\t\t\t\tonChange( insert( value, pastedValue ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( pastePlainText ) {\n\t\t\t\tonChange( insert( value, create( { text: plainText } ) ) );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Only process file if no HTML is present.\n\t\t\t// Note: a pasted file may have the URL as plain text.\n\t\t\tif ( files && files.length && ! html ) {\n\t\t\t\tconst content = pasteHandler( {\n\t\t\t\t\tHTML: filePasteHandler( files ),\n\t\t\t\t\tmode: 'BLOCKS',\n\t\t\t\t\ttagName,\n\t\t\t\t\tpreserveWhiteSpace,\n\t\t\t\t} );\n\n\t\t\t\t// Allows us to ask for this information when we get a report.\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\twindow.console.log( 'Received items:\\n\\n', files );\n\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tonReplace( content );\n\t\t\t\t} else {\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet mode = onReplace && onSplit ? 'AUTO' : 'INLINE';\n\n\t\t\t// Force the blocks mode when the user is pasting\n\t\t\t// on a new line & the content resembles a shortcode.\n\t\t\t// Otherwise it's going to be detected as inline\n\t\t\t// and the shortcode won't be replaced.\n\t\t\tif (\n\t\t\t\tmode === 'AUTO' &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisShortcode( plainText )\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst isPastedURL = isURL( plainText.trim() );\n\t\t\tconst presentEmbedHandlerPicker = () =>\n\t\t\t\tembedHandlerPickerRef.current?.presentPicker( {\n\t\t\t\t\tcreateEmbed: () =>\n\t\t\t\t\t\tonReplace( content, content.length - 1, -1 ),\n\t\t\t\t\tcreateLink: () =>\n\t\t\t\t\t\tcreateLinkInParagraph( plainText.trim(), onReplace ),\n\t\t\t\t} );\n\n\t\t\tif (\n\t\t\t\t__unstableEmbedURLOnPaste &&\n\t\t\t\tisEmpty( value ) &&\n\t\t\t\tisPastedURL\n\t\t\t) {\n\t\t\t\tmode = 'BLOCKS';\n\t\t\t}\n\n\t\t\tconst content = pasteHandler( {\n\t\t\t\tHTML: html,\n\t\t\t\tplainText,\n\t\t\t\tmode,\n\t\t\t\ttagName,\n\t\t\t\tpreserveWhiteSpace,\n\t\t\t} );\n\n\t\t\tif ( typeof content === 'string' ) {\n\t\t\t\tlet valueToInsert = create( { html: content } );\n\n\t\t\t\taddActiveFormats( valueToInsert, activeFormats );\n\n\t\t\t\t// If the content should be multiline, we should process text\n\t\t\t\t// separated by a line break as separate lines.\n\t\t\t\tif ( multilineTag ) {\n\t\t\t\t\tvalueToInsert = replace(\n\t\t\t\t\t\tvalueToInsert,\n\t\t\t\t\t\t/\\n+/g,\n\t\t\t\t\t\tLINE_SEPARATOR\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tonChange( insert( value, valueToInsert ) );\n\t\t\t} else if ( content.length > 0 ) {\n\t\t\t\t// When an URL is pasted in an empty paragraph then the EmbedHandlerPicker should showcase options allowing the transformation of that URL\n\t\t\t\t// into either an Embed block or a link within the target paragraph. If the paragraph is non-empty, the URL is pasted as text.\n\t\t\t\tconst canPasteEmbed =\n\t\t\t\t\tisPastedURL &&\n\t\t\t\t\tcontent.length === 1 &&\n\t\t\t\t\tcontent[ 0 ].name === 'core/embed';\n\t\t\t\tif ( onReplace && isEmpty( value ) ) {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif ( __unstableEmbedURLOnPaste ) {\n\t\t\t\t\t\t\tpresentEmbedHandlerPicker();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tonReplace( content, content.length - 1, -1 );\n\t\t\t\t} else {\n\t\t\t\t\tif ( canPasteEmbed ) {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tinsert( value, create( { text: plainText } ) )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tsplitValue( value, content );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\ttagName,\n\t\t\tonReplace,\n\t\t\tonSplit,\n\t\t\tsplitValue,\n\t\t\t__unstableEmbedURLOnPaste,\n\t\t\tmultilineTag,\n\t\t\tpreserveWhiteSpace,\n\t\t\tpastePlainText,\n\t\t]\n\t);\n\n\tconst inputRule = useCallback(\n\t\t( value, valueToFormat ) => {\n\t\t\tif ( ! onReplace ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst { start, text } = value;\n\t\t\tconst characterBefore = text.slice( start - 1, start );\n\n\t\t\t// The character right before the caret must be a plain space.\n\t\t\tif ( characterBefore !== ' ' ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst trimmedTextBefore = text.slice( 0, start ).trim();\n\t\t\tconst prefixTransforms = getBlockTransforms( 'from' ).filter(\n\t\t\t\t( { type } ) => type === 'prefix'\n\t\t\t);\n\t\t\tconst transformation = findTransform(\n\t\t\t\tprefixTransforms,\n\t\t\t\t( { prefix } ) => {\n\t\t\t\t\treturn trimmedTextBefore === prefix;\n\t\t\t\t}\n\t\t\t);\n\n\t\t\tif ( ! transformation ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst content = valueToFormat( slice( value, start, text.length ) );\n\t\t\tconst block = transformation.transform( content );\n\n\t\t\tonReplace( [ block ] );\n\t\t\t__unstableMarkAutomaticChange();\n\t\t},\n\t\t[ onReplace, __unstableMarkAutomaticChange ]\n\t);\n\n\tconst mergedRef = useMergeRefs( [ forwardedRef, fallbackRef ] );\n\n\tconst content = (\n\t\t<RichText\n\t\t\tclientId={ clientId }\n\t\t\tidentifier={ identifier }\n\t\t\tref={ mergedRef }\n\t\t\tvalue={ adjustedValue }\n\t\t\tonChange={ adjustedOnChange }\n\t\t\tselectionStart={ selectionStart }\n\t\t\tselectionEnd={ selectionEnd }\n\t\t\tonSelectionChange={ onSelectionChange }\n\t\t\ttagName={ tagName }\n\t\t\tplaceholder={ placeholder }\n\t\t\tallowedFormats={ adjustedAllowedFormats }\n\t\t\twithoutInteractiveFormatting={ withoutInteractiveFormatting }\n\t\t\tonEnter={ onEnter }\n\t\t\tonDelete={ onDelete }\n\t\t\tonPaste={ onPaste }\n\t\t\t__unstableIsSelected={ isSelected }\n\t\t\t__unstableInputRule={ inputRule }\n\t\t\t__unstableMultilineTag={ multilineTag }\n\t\t\t__unstableIsCaretWithinFormattedText={ isCaretWithinFormattedText }\n\t\t\t__unstableOnEnterFormattedText={ enterFormattedText }\n\t\t\t__unstableOnExitFormattedText={ exitFormattedText }\n\t\t\t__unstableOnCreateUndoLevel={ __unstableMarkLastChangeAsPersistent }\n\t\t\t__unstableMarkAutomaticChange={ __unstableMarkAutomaticChange }\n\t\t\t__unstableDidAutomaticChange={ didAutomaticChange }\n\t\t\t__unstableUndo={ undo }\n\t\t\t__unstableDisableFormats={ disableFormats }\n\t\t\tpreserveWhiteSpace={ preserveWhiteSpace }\n\t\t\tdisabled={ disabled }\n\t\t\tunstableOnFocus={ unstableOnFocus }\n\t\t\t__unstableAllowPrefixTransformations={\n\t\t\t\t__unstableAllowPrefixTransformations\n\t\t\t}\n\t\t\t__unstableMultilineRootTag={ __unstableMultilineRootTag }\n\t\t\t// Native props.\n\t\t\t{ ...nativeProps }\n\t\t\tblockIsSelected={\n\t\t\t\toriginalIsSelected !== undefined\n\t\t\t\t\t? originalIsSelected\n\t\t\t\t\t: blockIsSelected\n\t\t\t}\n\t\t\tshouldBlurOnUnmount={ shouldBlurOnUnmount }\n\t\t\t__unstableMobileNoFocusOnMount={ __unstableMobileNoFocusOnMount }\n\t\t\tdeleteEnter={ deleteEnter }\n\t\t\tplaceholderTextColor={ placeholderTextColor }\n\t\t\ttextAlign={ textAlign }\n\t\t\tselectionColor={ selectionColor }\n\t\t\ttagsToEliminate={ tagsToEliminate }\n\t\t\trootTagsToEliminate={ rootTagsToEliminate }\n\t\t\tdisableEditingMenu={ disableEditingMenu }\n\t\t\tfontSize={ fontSize }\n\t\t\tfontFamily={ fontFamily }\n\t\t\tfontWeight={ fontWeight }\n\t\t\tfontStyle={ fontStyle }\n\t\t\tminWidth={ minWidth }\n\t\t\tmaxWidth={ maxWidth }\n\t\t\tonBlur={ onBlur }\n\t\t\tsetRef={ setRef }\n\t\t\t// Props to be set on the editable container are destructured on the\n\t\t\t// element itself for web (see below), but passed through rich text\n\t\t\t// for native.\n\t\t\tid={ props.id }\n\t\t\tstyle={ props.style }\n\t\t>\n\t\t\t{ ( {\n\t\t\t\tisSelected: nestedIsSelected,\n\t\t\t\tvalue,\n\t\t\t\tonChange,\n\t\t\t\tonFocus,\n\t\t\t\teditableProps,\n\t\t\t\teditableTagName: TagName,\n\t\t\t} ) => (\n\t\t\t\t<>\n\t\t\t\t\t{ children && children( { value, onChange, onFocus } ) }\n\t\t\t\t\t{ nestedIsSelected && hasFormats && (\n\t\t\t\t\t\t<FormatToolbarContainer\n\t\t\t\t\t\t\tinline={ inlineToolbar }\n\t\t\t\t\t\t\tanchorRef={ fallbackRef.current }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ nestedIsSelected && <RemoveBrowserShortcuts /> }\n\t\t\t\t\t<Autocomplete\n\t\t\t\t\t\tonReplace={ onReplace }\n\t\t\t\t\t\tcompleters={ autocompleters }\n\t\t\t\t\t\trecord={ value }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisSelected={ nestedIsSelected }\n\t\t\t\t\t\tcontentRef={ fallbackRef }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ( { listBoxId, activeId, onKeyDown } ) => (\n\t\t\t\t\t\t\t<TagName\n\t\t\t\t\t\t\t\t{ ...editableProps }\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\tprops.style\n\t\t\t\t\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t\t\t\t\t...props.style,\n\t\t\t\t\t\t\t\t\t\t\t\t...editableProps.style,\n\t\t\t\t\t\t\t\t\t\t }\n\t\t\t\t\t\t\t\t\t\t: editableProps.style\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\tclasses,\n\t\t\t\t\t\t\t\t\tprops.className,\n\t\t\t\t\t\t\t\t\teditableProps.className\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\taria-autocomplete={\n\t\t\t\t\t\t\t\t\tlistBoxId ? 'list' : undefined\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\taria-owns={ listBoxId }\n\t\t\t\t\t\t\t\taria-activedescendant={ activeId }\n\t\t\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\t\t\tonKeyDown( event );\n\t\t\t\t\t\t\t\t\teditableProps.onKeyDown( event );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</Autocomplete>\n\t\t\t\t\t<EmbedHandlerPicker ref={ embedHandlerPickerRef } />\n\t\t\t\t</>\n\t\t\t) }\n\t\t</RichText>\n\t);\n\n\tif ( ! wrapperClassName ) {\n\t\treturn content;\n\t}\n\n\tdeprecated( 'wp.blockEditor.RichText wrapperClassName prop', {\n\t\tsince: '5.4',\n\t\talternative: 'className prop or create your own wrapper div',\n\t\tversion: '6.2',\n\t} );\n\n\treturn (\n\t\t<div className={ classnames( wrapperClasses, wrapperClassName ) }>\n\t\t\t{ content }\n\t\t</div>\n\t);\n}\n\nconst ForwardedRichTextContainer = forwardRef( RichTextWrapper );\n\nForwardedRichTextContainer.Content = ( {\n\tvalue,\n\ttagName: Tag,\n\tmultiline,\n\t...props\n} ) => {\n\t// Handle deprecated `children` and `node` sources.\n\tif ( Array.isArray( value ) ) {\n\t\tvalue = childrenSource.toHTML( value );\n\t}\n\n\tconst MultilineTag = getMultilineTag( multiline );\n\n\tif ( ! value && MultilineTag ) {\n\t\tvalue = `<${ MultilineTag }></${ MultilineTag }>`;\n\t}\n\n\tconst content = <RawHTML>{ value }</RawHTML>;\n\n\tif ( Tag ) {\n\t\treturn <Tag { ...omit( props, [ 'format' ] ) }>{ content }</Tag>;\n\t}\n\n\treturn content;\n};\n\nForwardedRichTextContainer.isEmpty = ( value ) => {\n\treturn ! value || value.length === 0;\n};\n\nForwardedRichTextContainer.Content.defaultProps = {\n\tformat: 'string',\n\tvalue: '',\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/rich-text/README.md\n */\nexport default ForwardedRichTextContainer;\nexport { RichTextShortcut } from './shortcut';\nexport { RichTextToolbarButton } from './toolbar-button';\nexport { __unstableRichTextInputEvent } from './input-event';\n"]}
|