@wordpress/block-editor 8.2.0 → 8.2.1-next.a55ed9455a.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/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 +1 -1
- 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/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 +1 -1
- 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/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 +1 -1
- 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/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/link-control/search-results.js"],"names":["__","sprintf","VisuallyHidden","classnames","createElement","Fragment","LinkControlSearchCreate","LinkControlSearchItem","CREATE_TYPE","LinkControlSearchResults","instanceId","withCreateSuggestion","currentInputValue","handleSuggestionClick","suggestionsListProps","buildSuggestionItemProps","suggestions","selectedSuggestion","isLoading","isInitialSuggestions","createSuggestionButtonText","suggestionsQuery","resultsListClasses","directLinkEntryTypes","isSingleDirectEntryResult","length","includes","type","toLowerCase","shouldShowCreateSuggestion","shouldShowSuggestionsTypes","searchResultsLabelId","labelText","searchResultsLabel","map","suggestion","index","id","isFrontPage"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { VisuallyHidden } from '@wordpress/components';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { createElement, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSearchCreate from './search-create-button';\nimport LinkControlSearchItem from './search-item';\nimport { CREATE_TYPE } from './constants';\n\nexport default function LinkControlSearchResults( {\n\tinstanceId,\n\twithCreateSuggestion,\n\tcurrentInputValue,\n\thandleSuggestionClick,\n\tsuggestionsListProps,\n\tbuildSuggestionItemProps,\n\tsuggestions,\n\tselectedSuggestion,\n\tisLoading,\n\tisInitialSuggestions,\n\tcreateSuggestionButtonText,\n\tsuggestionsQuery,\n} ) {\n\tconst resultsListClasses = classnames(\n\t\t'block-editor-link-control__search-results',\n\t\t{\n\t\t\t'is-loading': isLoading,\n\t\t}\n\t);\n\n\tconst directLinkEntryTypes = [ 'url', 'mailto', 'tel', 'internal' ];\n\tconst isSingleDirectEntryResult =\n\t\tsuggestions.length === 1 &&\n\t\tdirectLinkEntryTypes.includes( suggestions[ 0 ].type.toLowerCase() );\n\tconst shouldShowCreateSuggestion =\n\t\twithCreateSuggestion &&\n\t\t! isSingleDirectEntryResult &&\n\t\t! isInitialSuggestions;\n\t// If the query has a specified type, then we can skip showing them in the result. See #24839.\n\tconst shouldShowSuggestionsTypes = ! suggestionsQuery?.type;\n\n\t// According to guidelines aria-label should be added if the label\n\t// itself is not visible.\n\t// See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\tconst searchResultsLabelId = `block-editor-link-control-search-results-label-${ instanceId }`;\n\tconst labelText = isInitialSuggestions\n\t\t? __( 'Recently updated' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Search results for \"%s\"' ),\n\t\t\t\tcurrentInputValue\n\t\t );\n\n\t// VisuallyHidden rightly doesn't accept custom classNames\n\t// so we conditionally render it as a wrapper to visually hide the label\n\t// when that is required.\n\tconst searchResultsLabel = createElement(\n\t\tisInitialSuggestions ? Fragment : VisuallyHidden,\n\t\t{}, //
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/link-control/search-results.js"],"names":["__","sprintf","VisuallyHidden","classnames","createElement","Fragment","LinkControlSearchCreate","LinkControlSearchItem","CREATE_TYPE","LinkControlSearchResults","instanceId","withCreateSuggestion","currentInputValue","handleSuggestionClick","suggestionsListProps","buildSuggestionItemProps","suggestions","selectedSuggestion","isLoading","isInitialSuggestions","createSuggestionButtonText","suggestionsQuery","resultsListClasses","directLinkEntryTypes","isSingleDirectEntryResult","length","includes","type","toLowerCase","shouldShowCreateSuggestion","shouldShowSuggestionsTypes","searchResultsLabelId","labelText","searchResultsLabel","map","suggestion","index","id","isFrontPage"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { VisuallyHidden } from '@wordpress/components';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { createElement, Fragment } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport LinkControlSearchCreate from './search-create-button';\nimport LinkControlSearchItem from './search-item';\nimport { CREATE_TYPE } from './constants';\n\nexport default function LinkControlSearchResults( {\n\tinstanceId,\n\twithCreateSuggestion,\n\tcurrentInputValue,\n\thandleSuggestionClick,\n\tsuggestionsListProps,\n\tbuildSuggestionItemProps,\n\tsuggestions,\n\tselectedSuggestion,\n\tisLoading,\n\tisInitialSuggestions,\n\tcreateSuggestionButtonText,\n\tsuggestionsQuery,\n} ) {\n\tconst resultsListClasses = classnames(\n\t\t'block-editor-link-control__search-results',\n\t\t{\n\t\t\t'is-loading': isLoading,\n\t\t}\n\t);\n\n\tconst directLinkEntryTypes = [ 'url', 'mailto', 'tel', 'internal' ];\n\tconst isSingleDirectEntryResult =\n\t\tsuggestions.length === 1 &&\n\t\tdirectLinkEntryTypes.includes( suggestions[ 0 ].type.toLowerCase() );\n\tconst shouldShowCreateSuggestion =\n\t\twithCreateSuggestion &&\n\t\t! isSingleDirectEntryResult &&\n\t\t! isInitialSuggestions;\n\t// If the query has a specified type, then we can skip showing them in the result. See #24839.\n\tconst shouldShowSuggestionsTypes = ! suggestionsQuery?.type;\n\n\t// According to guidelines aria-label should be added if the label\n\t// itself is not visible.\n\t// See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/listbox_role\n\tconst searchResultsLabelId = `block-editor-link-control-search-results-label-${ instanceId }`;\n\tconst labelText = isInitialSuggestions\n\t\t? __( 'Recently updated' )\n\t\t: sprintf(\n\t\t\t\t/* translators: %s: search term. */\n\t\t\t\t__( 'Search results for \"%s\"' ),\n\t\t\t\tcurrentInputValue\n\t\t );\n\n\t// VisuallyHidden rightly doesn't accept custom classNames\n\t// so we conditionally render it as a wrapper to visually hide the label\n\t// when that is required.\n\tconst searchResultsLabel = createElement(\n\t\tisInitialSuggestions ? Fragment : VisuallyHidden,\n\t\t{}, // Empty props.\n\t\t<span\n\t\t\tclassName=\"block-editor-link-control__search-results-label\"\n\t\t\tid={ searchResultsLabelId }\n\t\t>\n\t\t\t{ labelText }\n\t\t</span>\n\t);\n\n\treturn (\n\t\t<div className=\"block-editor-link-control__search-results-wrapper\">\n\t\t\t{ searchResultsLabel }\n\t\t\t<div\n\t\t\t\t{ ...suggestionsListProps }\n\t\t\t\tclassName={ resultsListClasses }\n\t\t\t\taria-labelledby={ searchResultsLabelId }\n\t\t\t>\n\t\t\t\t{ suggestions.map( ( suggestion, index ) => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tshouldShowCreateSuggestion &&\n\t\t\t\t\t\tCREATE_TYPE === suggestion.type\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<LinkControlSearchCreate\n\t\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\t\tbuttonText={ createSuggestionButtonText }\n\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Intentionally only using `type` here as\n\t\t\t\t\t\t\t\t// the constant is enough to uniquely\n\t\t\t\t\t\t\t\t// identify the single \"CREATE\" suggestion.\n\t\t\t\t\t\t\t\tkey={ suggestion.type }\n\t\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\t// If we're not handling \"Create\" suggestions above then\n\t\t\t\t\t// we don't want them in the main results so exit early.\n\t\t\t\t\tif ( CREATE_TYPE === suggestion.type ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<LinkControlSearchItem\n\t\t\t\t\t\t\tkey={ `${ suggestion.id }-${ suggestion.type }` }\n\t\t\t\t\t\t\titemProps={ buildSuggestionItemProps(\n\t\t\t\t\t\t\t\tsuggestion,\n\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsuggestion={ suggestion }\n\t\t\t\t\t\t\tindex={ index }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\thandleSuggestionClick( suggestion );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisSelected={ index === selectedSuggestion }\n\t\t\t\t\t\t\tisURL={ directLinkEntryTypes.includes(\n\t\t\t\t\t\t\t\tsuggestion.type.toLowerCase()\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tsearchTerm={ currentInputValue }\n\t\t\t\t\t\t\tshouldShowType={ shouldShowSuggestionsTypes }\n\t\t\t\t\t\t\tisFrontPage={ suggestion?.isFrontPage }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-rich-url-data.js"],"names":["store","blockEditorStore","useSelect","useEffect","useReducer","reducer","state","action","type","isFetching","richData","Error","useRemoteUrlData","url","dispatch","fetchRichUrlData","select","getSettings","__experimentalFetchRichUrlData","length","AbortController","controller","window","signal","then","urlData","catch","aborted","abort"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,SAAT,EAAoBC,UAApB,QAAsC,oBAAtC;;AAEA,SAASC,OAAT,CAAkBC,KAAlB,EAAyBC,MAAzB,EAAkC;AACjC,UAASA,MAAM,CAACC,IAAhB;AACC,SAAK,UAAL;AACC,aAAO,EACN,GAAGF,KADG;AAENG,QAAAA,UAAU,EAAE,KAFN;AAGNC,QAAAA,QAAQ,EAAEH,MAAM,CAACG;AAHX,OAAP;;AAKD,SAAK,OAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAENG,QAAAA,UAAU,EAAE,KAFN;AAGNC,QAAAA,QAAQ,EAAE;AAHJ,OAAP;;AAKD,SAAK,SAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAENG,QAAAA,UAAU,EAAE;AAFN,OAAP;;AAID;AACC,YAAM,IAAIE,KAAJ,CAAY,0BAA0BJ,MAAM,CAACC,IAAM,EAAnD,CAAN;AAnBF;AAqBA;;AAED,SAASI,gBAAT,CAA2BC,GAA3B,EAAiC;AAChC,QAAM,CAAEP,KAAF,EAASQ,QAAT,IAAsBV,UAAU,CAAEC,OAAF,EAAW;AAChDK,IAAAA,QAAQ,EAAE,IADsC;AAEhDD,IAAAA,UAAU,EAAE;AAFoC,GAAX,CAAtC;AAKA,QAAM;AAAEM,IAAAA;AAAF,MAAuBb,SAAS,CAAIc,MAAF,IAAc;AACrD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEf,gBAAF,CAA9B;AACA,WAAO;AACNc,MAAAA,gBAAgB,EAAEE,WAAW,GAAGC;AAD1B,KAAP;AAGA,GALqC,EAKnC,EALmC,CAAtC;AAOAf,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA;AACA;AACA,QACCU,GAAG,SAAH,IAAAA,GAAG,WAAH,IAAAA,GAAG,CAAEM,MAAL,IACAJ,gBADA,IAEA,OAAOK,eAAP,KAA2B,WAH5B,EAIE;AACDN,MAAAA,QAAQ,CAAE;AACTN,QAAAA,IAAI,EAAE;AADG,OAAF,CAAR;AAIA,YAAMa,UAAU,GAAG,IAAIC,MAAM,CAACF,eAAX,EAAnB;AAEA,YAAMG,MAAM,GAAGF,UAAU,CAACE,MAA1B;AAEAR,MAAAA,gBAAgB,CAAEF,GAAF,EAAO;AACtBU,QAAAA;AADsB,OAAP,CAAhB,CAGEC,IAHF,CAGUC,OAAF,IAAe;AACrBX,QAAAA,QAAQ,CAAE;AACTN,UAAAA,IAAI,EAAE,UADG;AAETE,UAAAA,QAAQ,EAAEe;AAFD,SAAF,CAAR;AAIA,OARF,EASEC,KATF,CASS,MAAM;AACb;AACA,YAAK,CAAEH,MAAM,CAACI,OAAd,EAAwB;AACvBb,UAAAA,QAAQ,CAAE;AACTN,YAAAA,IAAI,EAAE;AADG,WAAF,CAAR;AAGA;AACD,OAhBF,EATC,CA0BD;;AACA,aAAO,MAAM;AACZa,QAAAA,UAAU,CAACO,KAAX;AACA,OAFD;AAGA;AACD,GAvCQ,EAuCN,CAAEf,GAAF,CAvCM,CAAT;AAyCA,SAAOP,KAAP;AACA;;AAED,eAAeM,gBAAf","sourcesContent":["/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useReducer } from '@wordpress/element';\n\nfunction reducer( state, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RESOLVED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: false,\n\t\t\t\trichData: action.richData,\n\t\t\t};\n\t\tcase 'ERROR':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: false,\n\t\t\t\trichData: null,\n\t\t\t};\n\t\tcase 'LOADING':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: true,\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error( `Unexpected action type ${ action.type }` );\n\t}\n}\n\nfunction useRemoteUrlData( url ) {\n\tconst [ state, dispatch ] = useReducer( reducer, {\n\t\trichData: null,\n\t\tisFetching: false,\n\t} );\n\n\tconst { fetchRichUrlData } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tfetchRichUrlData: getSettings().__experimentalFetchRichUrlData,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Only make the request if we have an actual URL\n\t\t// and the fetching util is available. In some editors\n\t\t// there may not be such a util.\n\t\tif (\n\t\t\turl?.length &&\n\t\t\tfetchRichUrlData &&\n\t\t\ttypeof AbortController !== 'undefined'\n\t\t) {\n\t\t\tdispatch( {\n\t\t\t\ttype: 'LOADING',\n\t\t\t} );\n\n\t\t\tconst controller = new window.AbortController();\n\n\t\t\tconst signal = controller.signal;\n\n\t\t\tfetchRichUrlData( url, {\n\t\t\t\tsignal,\n\t\t\t} )\n\t\t\t\t.then( ( urlData ) => {\n\t\t\t\t\tdispatch( {\n\t\t\t\t\t\ttype: 'RESOLVED',\n\t\t\t\t\t\trichData: urlData,\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\t// Avoid setting state on unmounted component\n\t\t\t\t\tif ( ! signal.aborted ) {\n\t\t\t\t\t\tdispatch( {\n\t\t\t\t\t\t\ttype: 'ERROR',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t// Cleanup: when the URL changes the abort the current request
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-rich-url-data.js"],"names":["store","blockEditorStore","useSelect","useEffect","useReducer","reducer","state","action","type","isFetching","richData","Error","useRemoteUrlData","url","dispatch","fetchRichUrlData","select","getSettings","__experimentalFetchRichUrlData","length","AbortController","controller","window","signal","then","urlData","catch","aborted","abort"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;;AACA,SAASC,SAAT,QAA0B,iBAA1B;AACA,SAASC,SAAT,EAAoBC,UAApB,QAAsC,oBAAtC;;AAEA,SAASC,OAAT,CAAkBC,KAAlB,EAAyBC,MAAzB,EAAkC;AACjC,UAASA,MAAM,CAACC,IAAhB;AACC,SAAK,UAAL;AACC,aAAO,EACN,GAAGF,KADG;AAENG,QAAAA,UAAU,EAAE,KAFN;AAGNC,QAAAA,QAAQ,EAAEH,MAAM,CAACG;AAHX,OAAP;;AAKD,SAAK,OAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAENG,QAAAA,UAAU,EAAE,KAFN;AAGNC,QAAAA,QAAQ,EAAE;AAHJ,OAAP;;AAKD,SAAK,SAAL;AACC,aAAO,EACN,GAAGJ,KADG;AAENG,QAAAA,UAAU,EAAE;AAFN,OAAP;;AAID;AACC,YAAM,IAAIE,KAAJ,CAAY,0BAA0BJ,MAAM,CAACC,IAAM,EAAnD,CAAN;AAnBF;AAqBA;;AAED,SAASI,gBAAT,CAA2BC,GAA3B,EAAiC;AAChC,QAAM,CAAEP,KAAF,EAASQ,QAAT,IAAsBV,UAAU,CAAEC,OAAF,EAAW;AAChDK,IAAAA,QAAQ,EAAE,IADsC;AAEhDD,IAAAA,UAAU,EAAE;AAFoC,GAAX,CAAtC;AAKA,QAAM;AAAEM,IAAAA;AAAF,MAAuBb,SAAS,CAAIc,MAAF,IAAc;AACrD,UAAM;AAAEC,MAAAA;AAAF,QAAkBD,MAAM,CAAEf,gBAAF,CAA9B;AACA,WAAO;AACNc,MAAAA,gBAAgB,EAAEE,WAAW,GAAGC;AAD1B,KAAP;AAGA,GALqC,EAKnC,EALmC,CAAtC;AAOAf,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA;AACA;AACA,QACCU,GAAG,SAAH,IAAAA,GAAG,WAAH,IAAAA,GAAG,CAAEM,MAAL,IACAJ,gBADA,IAEA,OAAOK,eAAP,KAA2B,WAH5B,EAIE;AACDN,MAAAA,QAAQ,CAAE;AACTN,QAAAA,IAAI,EAAE;AADG,OAAF,CAAR;AAIA,YAAMa,UAAU,GAAG,IAAIC,MAAM,CAACF,eAAX,EAAnB;AAEA,YAAMG,MAAM,GAAGF,UAAU,CAACE,MAA1B;AAEAR,MAAAA,gBAAgB,CAAEF,GAAF,EAAO;AACtBU,QAAAA;AADsB,OAAP,CAAhB,CAGEC,IAHF,CAGUC,OAAF,IAAe;AACrBX,QAAAA,QAAQ,CAAE;AACTN,UAAAA,IAAI,EAAE,UADG;AAETE,UAAAA,QAAQ,EAAEe;AAFD,SAAF,CAAR;AAIA,OARF,EASEC,KATF,CASS,MAAM;AACb;AACA,YAAK,CAAEH,MAAM,CAACI,OAAd,EAAwB;AACvBb,UAAAA,QAAQ,CAAE;AACTN,YAAAA,IAAI,EAAE;AADG,WAAF,CAAR;AAGA;AACD,OAhBF,EATC,CA0BD;;AACA,aAAO,MAAM;AACZa,QAAAA,UAAU,CAACO,KAAX;AACA,OAFD;AAGA;AACD,GAvCQ,EAuCN,CAAEf,GAAF,CAvCM,CAAT;AAyCA,SAAOP,KAAP;AACA;;AAED,eAAeM,gBAAf","sourcesContent":["/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useEffect, useReducer } from '@wordpress/element';\n\nfunction reducer( state, action ) {\n\tswitch ( action.type ) {\n\t\tcase 'RESOLVED':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: false,\n\t\t\t\trichData: action.richData,\n\t\t\t};\n\t\tcase 'ERROR':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: false,\n\t\t\t\trichData: null,\n\t\t\t};\n\t\tcase 'LOADING':\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisFetching: true,\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error( `Unexpected action type ${ action.type }` );\n\t}\n}\n\nfunction useRemoteUrlData( url ) {\n\tconst [ state, dispatch ] = useReducer( reducer, {\n\t\trichData: null,\n\t\tisFetching: false,\n\t} );\n\n\tconst { fetchRichUrlData } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn {\n\t\t\tfetchRichUrlData: getSettings().__experimentalFetchRichUrlData,\n\t\t};\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Only make the request if we have an actual URL\n\t\t// and the fetching util is available. In some editors\n\t\t// there may not be such a util.\n\t\tif (\n\t\t\turl?.length &&\n\t\t\tfetchRichUrlData &&\n\t\t\ttypeof AbortController !== 'undefined'\n\t\t) {\n\t\t\tdispatch( {\n\t\t\t\ttype: 'LOADING',\n\t\t\t} );\n\n\t\t\tconst controller = new window.AbortController();\n\n\t\t\tconst signal = controller.signal;\n\n\t\t\tfetchRichUrlData( url, {\n\t\t\t\tsignal,\n\t\t\t} )\n\t\t\t\t.then( ( urlData ) => {\n\t\t\t\t\tdispatch( {\n\t\t\t\t\t\ttype: 'RESOLVED',\n\t\t\t\t\t\trichData: urlData,\n\t\t\t\t\t} );\n\t\t\t\t} )\n\t\t\t\t.catch( () => {\n\t\t\t\t\t// Avoid setting state on unmounted component\n\t\t\t\t\tif ( ! signal.aborted ) {\n\t\t\t\t\t\tdispatch( {\n\t\t\t\t\t\t\ttype: 'ERROR',\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t// Cleanup: when the URL changes the abort the current request.\n\t\t\treturn () => {\n\t\t\t\tcontroller.abort();\n\t\t\t};\n\t\t}\n\t}, [ url ] );\n\n\treturn state;\n}\n\nexport default useRemoteUrlData;\n"]}
|
|
@@ -91,9 +91,9 @@ const handleEntitySearch = async (val, suggestionsQuery, fetchSearchSuggestions,
|
|
|
91
91
|
// is never exposed as part of the component's public API.
|
|
92
92
|
// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.
|
|
93
93
|
title: val,
|
|
94
|
-
//
|
|
94
|
+
// Must match the existing `<input>`s text value.
|
|
95
95
|
url: val,
|
|
96
|
-
//
|
|
96
|
+
// Must match the existing `<input>`s text value.
|
|
97
97
|
type: CREATE_TYPE
|
|
98
98
|
});
|
|
99
99
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-search-handler.js"],"names":["getProtocol","prependHTTP","useCallback","useSelect","startsWith","isURLLike","CREATE_TYPE","store","blockEditorStore","handleNoop","Promise","resolve","handleDirectEntry","val","type","protocol","includes","id","title","url","handleEntitySearch","suggestionsQuery","fetchSearchSuggestions","directEntryHandler","withCreateSuggestion","withURLSuggestion","pageOnFront","isInitialSuggestions","resultsIncludeFrontPage","results","all","map","result","Number","isFrontPage","couldBeURL","concat","useSearchHandler","allowDirectEntry","select","getSettings","__experimentalFetchLinkSuggestions"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getProtocol, prependHTTP } from '@wordpress/url';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport { startsWith } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport isURLLike from './is-url-like';\nimport { CREATE_TYPE } from './constants';\nimport { store as blockEditorStore } from '../../store';\n\nexport const handleNoop = () => Promise.resolve( [] );\n\nexport const handleDirectEntry = ( val ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( val ) || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( startsWith( val, '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn Promise.resolve( [\n\t\t{\n\t\t\tid: val,\n\t\t\ttitle: val,\n\t\t\turl: type === 'URL' ? prependHTTP( val ) : val,\n\t\t\ttype,\n\t\t},\n\t] );\n};\n\nconst handleEntitySearch = async (\n\tval,\n\tsuggestionsQuery,\n\tfetchSearchSuggestions,\n\tdirectEntryHandler,\n\twithCreateSuggestion,\n\twithURLSuggestion,\n\tpageOnFront\n) => {\n\tconst { isInitialSuggestions } = suggestionsQuery;\n\tlet resultsIncludeFrontPage = false;\n\n\tlet results = await Promise.all( [\n\t\tfetchSearchSuggestions( val, suggestionsQuery ),\n\t\tdirectEntryHandler( val ),\n\t] );\n\n\t// Identify front page and update type to match.\n\tresults[ 0 ] = results[ 0 ].map( ( result ) => {\n\t\tif ( Number( result.id ) === pageOnFront ) {\n\t\t\tresultsIncludeFrontPage = true;\n\t\t\tresult.isFrontPage = true;\n\t\t\treturn result;\n\t\t}\n\n\t\treturn result;\n\t} );\n\n\tconst couldBeURL = ! val.includes( ' ' );\n\n\t// If it's potentially a URL search then concat on a URL search suggestion\n\t// just for good measure. That way once the actual results run out we always\n\t// have a URL option to fallback on.\n\tif (\n\t\t! resultsIncludeFrontPage &&\n\t\tcouldBeURL &&\n\t\twithURLSuggestion &&\n\t\t! isInitialSuggestions\n\t) {\n\t\tresults = results[ 0 ].concat( results[ 1 ] );\n\t} else {\n\t\tresults = results[ 0 ];\n\t}\n\n\t// If displaying initial suggestions just return plain results.\n\tif ( isInitialSuggestions ) {\n\t\treturn results;\n\t}\n\n\t// Here we append a faux suggestion to represent a \"CREATE\" option. This\n\t// is detected in the rendering of the search results and handled as a\n\t// special case. This is currently necessary because the suggestions\n\t// dropdown will only appear if there are valid suggestions and\n\t// therefore unless the create option is a suggestion it will not\n\t// display in scenarios where there are no results returned from the\n\t// API. In addition promoting CREATE to a first class suggestion affords\n\t// the a11y benefits afforded by `URLInput` to all suggestions (eg:\n\t// keyboard handling, ARIA roles...etc).\n\t//\n\t// Note also that the value of the `title` and `url` properties must correspond\n\t// to the text value of the `<input>`. This is because `title` is used\n\t// when creating the suggestion. Similarly `url` is used when using keyboard to select\n\t// the suggestion (the <form> `onSubmit` handler falls-back to `url`).\n\treturn isURLLike( val ) || ! withCreateSuggestion\n\t\t? results\n\t\t: results.concat( {\n\t\t\t\t// the `id` prop is intentionally ommitted here because it\n\t\t\t\t// is never exposed as part of the component's public API.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n\t\t\t\ttitle: val, //
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/link-control/use-search-handler.js"],"names":["getProtocol","prependHTTP","useCallback","useSelect","startsWith","isURLLike","CREATE_TYPE","store","blockEditorStore","handleNoop","Promise","resolve","handleDirectEntry","val","type","protocol","includes","id","title","url","handleEntitySearch","suggestionsQuery","fetchSearchSuggestions","directEntryHandler","withCreateSuggestion","withURLSuggestion","pageOnFront","isInitialSuggestions","resultsIncludeFrontPage","results","all","map","result","Number","isFrontPage","couldBeURL","concat","useSearchHandler","allowDirectEntry","select","getSettings","__experimentalFetchLinkSuggestions"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getProtocol, prependHTTP } from '@wordpress/url';\nimport { useCallback } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * External dependencies\n */\nimport { startsWith } from 'lodash';\n\n/**\n * Internal dependencies\n */\nimport isURLLike from './is-url-like';\nimport { CREATE_TYPE } from './constants';\nimport { store as blockEditorStore } from '../../store';\n\nexport const handleNoop = () => Promise.resolve( [] );\n\nexport const handleDirectEntry = ( val ) => {\n\tlet type = 'URL';\n\n\tconst protocol = getProtocol( val ) || '';\n\n\tif ( protocol.includes( 'mailto' ) ) {\n\t\ttype = 'mailto';\n\t}\n\n\tif ( protocol.includes( 'tel' ) ) {\n\t\ttype = 'tel';\n\t}\n\n\tif ( startsWith( val, '#' ) ) {\n\t\ttype = 'internal';\n\t}\n\n\treturn Promise.resolve( [\n\t\t{\n\t\t\tid: val,\n\t\t\ttitle: val,\n\t\t\turl: type === 'URL' ? prependHTTP( val ) : val,\n\t\t\ttype,\n\t\t},\n\t] );\n};\n\nconst handleEntitySearch = async (\n\tval,\n\tsuggestionsQuery,\n\tfetchSearchSuggestions,\n\tdirectEntryHandler,\n\twithCreateSuggestion,\n\twithURLSuggestion,\n\tpageOnFront\n) => {\n\tconst { isInitialSuggestions } = suggestionsQuery;\n\tlet resultsIncludeFrontPage = false;\n\n\tlet results = await Promise.all( [\n\t\tfetchSearchSuggestions( val, suggestionsQuery ),\n\t\tdirectEntryHandler( val ),\n\t] );\n\n\t// Identify front page and update type to match.\n\tresults[ 0 ] = results[ 0 ].map( ( result ) => {\n\t\tif ( Number( result.id ) === pageOnFront ) {\n\t\t\tresultsIncludeFrontPage = true;\n\t\t\tresult.isFrontPage = true;\n\t\t\treturn result;\n\t\t}\n\n\t\treturn result;\n\t} );\n\n\tconst couldBeURL = ! val.includes( ' ' );\n\n\t// If it's potentially a URL search then concat on a URL search suggestion\n\t// just for good measure. That way once the actual results run out we always\n\t// have a URL option to fallback on.\n\tif (\n\t\t! resultsIncludeFrontPage &&\n\t\tcouldBeURL &&\n\t\twithURLSuggestion &&\n\t\t! isInitialSuggestions\n\t) {\n\t\tresults = results[ 0 ].concat( results[ 1 ] );\n\t} else {\n\t\tresults = results[ 0 ];\n\t}\n\n\t// If displaying initial suggestions just return plain results.\n\tif ( isInitialSuggestions ) {\n\t\treturn results;\n\t}\n\n\t// Here we append a faux suggestion to represent a \"CREATE\" option. This\n\t// is detected in the rendering of the search results and handled as a\n\t// special case. This is currently necessary because the suggestions\n\t// dropdown will only appear if there are valid suggestions and\n\t// therefore unless the create option is a suggestion it will not\n\t// display in scenarios where there are no results returned from the\n\t// API. In addition promoting CREATE to a first class suggestion affords\n\t// the a11y benefits afforded by `URLInput` to all suggestions (eg:\n\t// keyboard handling, ARIA roles...etc).\n\t//\n\t// Note also that the value of the `title` and `url` properties must correspond\n\t// to the text value of the `<input>`. This is because `title` is used\n\t// when creating the suggestion. Similarly `url` is used when using keyboard to select\n\t// the suggestion (the <form> `onSubmit` handler falls-back to `url`).\n\treturn isURLLike( val ) || ! withCreateSuggestion\n\t\t? results\n\t\t: results.concat( {\n\t\t\t\t// the `id` prop is intentionally ommitted here because it\n\t\t\t\t// is never exposed as part of the component's public API.\n\t\t\t\t// see: https://github.com/WordPress/gutenberg/pull/19775#discussion_r378931316.\n\t\t\t\ttitle: val, // Must match the existing `<input>`s text value.\n\t\t\t\turl: val, // Must match the existing `<input>`s text value.\n\t\t\t\ttype: CREATE_TYPE,\n\t\t } );\n};\n\nexport default function useSearchHandler(\n\tsuggestionsQuery,\n\tallowDirectEntry,\n\twithCreateSuggestion,\n\twithURLSuggestion\n) {\n\tconst { fetchSearchSuggestions, pageOnFront } = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\tpageOnFront: getSettings().pageOnFront,\n\t\t\tfetchSearchSuggestions: getSettings()\n\t\t\t\t.__experimentalFetchLinkSuggestions,\n\t\t};\n\t}, [] );\n\n\tconst directEntryHandler = allowDirectEntry\n\t\t? handleDirectEntry\n\t\t: handleNoop;\n\n\treturn useCallback(\n\t\t( val, { isInitialSuggestions } ) => {\n\t\t\treturn isURLLike( val )\n\t\t\t\t? directEntryHandler( val, { isInitialSuggestions } )\n\t\t\t\t: handleEntitySearch(\n\t\t\t\t\t\tval,\n\t\t\t\t\t\t{ ...suggestionsQuery, isInitialSuggestions },\n\t\t\t\t\t\tfetchSearchSuggestions,\n\t\t\t\t\t\tdirectEntryHandler,\n\t\t\t\t\t\twithCreateSuggestion,\n\t\t\t\t\t\twithURLSuggestion,\n\t\t\t\t\t\tpageOnFront\n\t\t\t\t );\n\t\t},\n\t\t[ directEntryHandler, fetchSearchSuggestions, withCreateSuggestion ]\n\t);\n}\n"]}
|
|
@@ -80,7 +80,8 @@ function ListViewBlockSelectButton(_ref, ref) {
|
|
|
80
80
|
icon: blockInformation === null || blockInformation === void 0 ? void 0 : blockInformation.icon,
|
|
81
81
|
showColors: true
|
|
82
82
|
}), createElement(BlockTitle, {
|
|
83
|
-
clientId: clientId
|
|
83
|
+
clientId: clientId,
|
|
84
|
+
maximumLength: 35
|
|
84
85
|
}), (blockInformation === null || blockInformation === void 0 ? void 0 : blockInformation.anchor) && createElement("span", {
|
|
85
86
|
className: "block-editor-list-view-block-select-button__anchor"
|
|
86
87
|
}, blockInformation.anchor), isSelected && createElement(VisuallyHidden, null, __('(selected block)'))), createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"names":["classnames","Button","VisuallyHidden","useInstanceId","forwardRef","__","BlockIcon","useBlockDisplayInformation","getBlockPositionDescription","BlockTitle","ListViewExpander","SPACE","ENTER","ListViewBlockSelectButton","ref","className","block","clientId","isSelected","onClick","onToggleExpanded","position","siblingBlockCount","level","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","blockInformation","instanceId","descriptionId","blockPositionDescription","onDragStartHandler","event","dataTransfer","clearData","onKeyDownHandler","keyCode","icon","anchor"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,MAAT,EAAiBC,cAAjB,QAAuC,uBAAvC;AACA,SAASC,aAAT,QAA8B,oBAA9B;AACA,SAASC,UAAT,QAA2B,oBAA3B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,eAAtB;AACA,OAAOC,0BAAP,MAAuC,kCAAvC;AACA,SAASC,2BAAT,QAA4C,SAA5C;AACA,OAAOC,UAAP,MAAuB,gBAAvB;AACA,OAAOC,gBAAP,MAA6B,YAA7B;AACA,SAASC,KAAT,EAAgBC,KAAhB,QAA6B,qBAA7B;;AAEA,SAASC,yBAAT,OAiBCC,GAjBD,EAkBE;AAAA,MAjBD;AACCC,IAAAA,SADD;AAECC,IAAAA,KAAK,EAAE;AAAEC,MAAAA;AAAF,KAFR;AAGCC,IAAAA,UAHD;AAICC,IAAAA,OAJD;AAKCC,IAAAA,gBALD;AAMCC,IAAAA,QAND;AAOCC,IAAAA,iBAPD;AAQCC,IAAAA,KARD;AASCC,IAAAA,QATD;AAUCC,IAAAA,OAVD;AAWCC,IAAAA,WAXD;AAYCC,IAAAA,SAZD;AAaCC,IAAAA,SAbD;AAcCC,IAAAA;AAdD,GAiBC;AACD,QAAMC,gBAAgB,GAAGvB,0BAA0B,CAAEU,QAAF,CAAnD;AACA,QAAMc,UAAU,GAAG5B,aAAa,CAAEU,yBAAF,CAAhC;AACA,QAAMmB,aAAa,GAAI,kCAAkCD,UAAY,EAArE;AACA,QAAME,wBAAwB,GAAGzB,2BAA2B,CAC3Da,QAD2D,EAE3DC,iBAF2D,EAG3DC,KAH2D,CAA5D,CAJC,CAUD;AACA;AACA;AACA;;AACA,QAAMW,kBAAkB,GAAKC,KAAF,IAAa;AACvCA,IAAAA,KAAK,CAACC,YAAN,CAAmBC,SAAnB;AACAX,IAAAA,WAAW,CAAES,KAAF,CAAX;AACA,GAHD;;AAKA,WAASG,gBAAT,CAA2BH,KAA3B,EAAmC;AAClC,QAAKA,KAAK,CAACI,OAAN,KAAkB3B,KAAlB,IAA2BuB,KAAK,CAACI,OAAN,KAAkB5B,KAAlD,EAA0D;AACzDQ,MAAAA,OAAO,CAAEgB,KAAF,CAAP;AACA;AACD;;AAED,SACC,8BACC,cAAC,MAAD;AACC,IAAA,SAAS,EAAGnC,UAAU,CACrB,4CADqB,EAErBe,SAFqB,CADvB;AAKC,IAAA,OAAO,EAAGI,OALX;AAMC,IAAA,SAAS,EAAGmB,gBANb;AAOC,wBAAmBN,aAPpB;AAQC,IAAA,GAAG,EAAGlB,GARP;AASC,IAAA,QAAQ,EAAGU,QATZ;AAUC,IAAA,OAAO,EAAGC,OAVX;AAWC,IAAA,WAAW,EAAGS,kBAXf;AAYC,IAAA,SAAS,EAAGP,SAZb;AAaC,IAAA,SAAS,EAAGC,SAbb;AAcC,IAAA,IAAI,EAAI,UAAUX,QAAU,EAd7B;AAeC,qBAAgBY;AAfjB,KAiBC,cAAC,gBAAD;AAAkB,IAAA,OAAO,EAAGT;AAA5B,IAjBD,EAkBC,cAAC,SAAD;AAAW,IAAA,IAAI,EAAGU,gBAAH,aAAGA,gBAAH,uBAAGA,gBAAgB,CAAEU,IAApC;AAA2C,IAAA,UAAU;AAArD,IAlBD,EAmBC,cAAC,UAAD;AAAY,IAAA,QAAQ,EAAGvB;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block-select-button.js"],"names":["classnames","Button","VisuallyHidden","useInstanceId","forwardRef","__","BlockIcon","useBlockDisplayInformation","getBlockPositionDescription","BlockTitle","ListViewExpander","SPACE","ENTER","ListViewBlockSelectButton","ref","className","block","clientId","isSelected","onClick","onToggleExpanded","position","siblingBlockCount","level","tabIndex","onFocus","onDragStart","onDragEnd","draggable","isExpanded","blockInformation","instanceId","descriptionId","blockPositionDescription","onDragStartHandler","event","dataTransfer","clearData","onKeyDownHandler","keyCode","icon","anchor"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { forwardRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { getBlockPositionDescription } from './utils';\nimport BlockTitle from '../block-title';\nimport ListViewExpander from './expander';\nimport { SPACE, ENTER } from '@wordpress/keycodes';\n\nfunction ListViewBlockSelectButton(\n\t{\n\t\tclassName,\n\t\tblock: { clientId },\n\t\tisSelected,\n\t\tonClick,\n\t\tonToggleExpanded,\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel,\n\t\ttabIndex,\n\t\tonFocus,\n\t\tonDragStart,\n\t\tonDragEnd,\n\t\tdraggable,\n\t\tisExpanded,\n\t},\n\tref\n) {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst instanceId = useInstanceId( ListViewBlockSelectButton );\n\tconst descriptionId = `list-view-block-select-button__${ instanceId }`;\n\tconst blockPositionDescription = getBlockPositionDescription(\n\t\tposition,\n\t\tsiblingBlockCount,\n\t\tlevel\n\t);\n\n\t// The `href` attribute triggers the browser's native HTML drag operations.\n\t// When the link is dragged, the element's outerHTML is set in DataTransfer object as text/html.\n\t// We need to clear any HTML drag data to prevent `pasteHandler` from firing\n\t// inside the `useOnBlockDrop` hook.\n\tconst onDragStartHandler = ( event ) => {\n\t\tevent.dataTransfer.clearData();\n\t\tonDragStart( event );\n\t};\n\n\tfunction onKeyDownHandler( event ) {\n\t\tif ( event.keyCode === ENTER || event.keyCode === SPACE ) {\n\t\t\tonClick( event );\n\t\t}\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view-block-select-button',\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonKeyDown={ onKeyDownHandler }\n\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\tref={ ref }\n\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\tonFocus={ onFocus }\n\t\t\t\tonDragStart={ onDragStartHandler }\n\t\t\t\tonDragEnd={ onDragEnd }\n\t\t\t\tdraggable={ draggable }\n\t\t\t\thref={ `#block-${ clientId }` }\n\t\t\t\taria-expanded={ isExpanded }\n\t\t\t>\n\t\t\t\t<ListViewExpander onClick={ onToggleExpanded } />\n\t\t\t\t<BlockIcon icon={ blockInformation?.icon } showColors />\n\t\t\t\t<BlockTitle clientId={ clientId } maximumLength={ 35 } />\n\t\t\t\t{ blockInformation?.anchor && (\n\t\t\t\t\t<span className=\"block-editor-list-view-block-select-button__anchor\">\n\t\t\t\t\t\t{ blockInformation.anchor }\n\t\t\t\t\t</span>\n\t\t\t\t) }\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<VisuallyHidden>\n\t\t\t\t\t\t{ __( '(selected block)' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t</Button>\n\t\t\t<div\n\t\t\t\tclassName=\"block-editor-list-view-block-select-button__description\"\n\t\t\t\tid={ descriptionId }\n\t\t\t>\n\t\t\t\t{ blockPositionDescription }\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default forwardRef( ListViewBlockSelectButton );\n"]}
|
|
@@ -99,7 +99,7 @@ function ListViewBlock(_ref) {
|
|
|
99
99
|
expand(clientId);
|
|
100
100
|
}
|
|
101
101
|
}, [clientId, expand, collapse, isExpanded]);
|
|
102
|
-
const showBlockActions = withExperimentalFeatures && ( //hide actions for blocks like core/widget-areas
|
|
102
|
+
const showBlockActions = withExperimentalFeatures && ( // hide actions for blocks like core/widget-areas
|
|
103
103
|
!hideContainerBlockActions || hideContainerBlockActions && level > 1);
|
|
104
104
|
const hideBlockActions = withExperimentalFeatures && !showBlockActions;
|
|
105
105
|
let colSpan;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"names":["classnames","__experimentalTreeGridCell","TreeGridCell","__experimentalTreeGridItem","TreeGridItem","moreVertical","useState","useRef","useEffect","useCallback","memo","useDispatch","sprintf","__","ListViewLeaf","BlockMoverUpButton","BlockMoverDownButton","ListViewBlockContents","BlockSettingsDropdown","useListViewContext","store","blockEditorStore","useBlockDisplayInformation","ListViewBlock","block","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","cellRef","isHovered","setIsHovered","clientId","toggleBlockHighlight","__experimentalFeatures","withExperimentalFeatures","__experimentalPersistentListViewFeatures","withExperimentalPersistentListViewFeatures","__experimentalHideContainerBlockActions","hideContainerBlockActions","isTreeGridMounted","expand","collapse","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","current","focus","highlightBlock","onMouseEnter","onMouseLeave","selectEditorBlock","event","selectDuplicatedBlock","newClientId","undefined","toggleExpanded","preventDefault","stopPropagation","showBlockActions","hideBlockActions","colSpan","classes","blockInformation","settingsAriaLabel","title","dropdownClientIds","includes","ref","tabIndex","onFocus","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport { useListViewContext } from './context';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\nfunction ListViewBlock( {\n\tblock,\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { clientId } = block;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst {\n\t\t__experimentalFeatures: withExperimentalFeatures,\n\t\t__experimentalPersistentListViewFeatures: withExperimentalPersistentListViewFeatures,\n\t\t__experimentalHideContainerBlockActions: hideContainerBlockActions,\n\t\tisTreeGridMounted,\n\t\texpand,\n\t\tcollapse,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif (\n\t\t\twithExperimentalPersistentListViewFeatures &&\n\t\t\t! isTreeGridMounted &&\n\t\t\tisSelected\n\t\t) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst highlightBlock = withExperimentalPersistentListViewFeatures\n\t\t? toggleBlockHighlight\n\t\t: () => {};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\thighlightBlock( clientId, true );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\thighlightBlock( clientId, false );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst selectDuplicatedBlock = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tconst showBlockActions =\n\t\twithExperimentalFeatures &&\n\t\t//hide actions for blocks like core/widget-areas\n\t\t( ! hideContainerBlockActions ||\n\t\t\t( hideContainerBlockActions && level > 1 ) );\n\n\tconst hideBlockActions = withExperimentalFeatures && ! showBlockActions;\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( hideBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-branch-selected':\n\t\t\twithExperimentalPersistentListViewFeatures && isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': hideBlockActions,\n\t} );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isExpanded }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<TreeGridCell className={ listViewBlockSettingsClassName }>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t__experimentalSelectBlock={ selectDuplicatedBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/block.js"],"names":["classnames","__experimentalTreeGridCell","TreeGridCell","__experimentalTreeGridItem","TreeGridItem","moreVertical","useState","useRef","useEffect","useCallback","memo","useDispatch","sprintf","__","ListViewLeaf","BlockMoverUpButton","BlockMoverDownButton","ListViewBlockContents","BlockSettingsDropdown","useListViewContext","store","blockEditorStore","useBlockDisplayInformation","ListViewBlock","block","isDragged","isSelected","isBranchSelected","selectBlock","position","level","rowCount","siblingBlockCount","showBlockMovers","path","isExpanded","selectedClientIds","cellRef","isHovered","setIsHovered","clientId","toggleBlockHighlight","__experimentalFeatures","withExperimentalFeatures","__experimentalPersistentListViewFeatures","withExperimentalPersistentListViewFeatures","__experimentalHideContainerBlockActions","hideContainerBlockActions","isTreeGridMounted","expand","collapse","hasSiblings","hasRenderedMovers","moverCellClassName","listViewBlockSettingsClassName","current","focus","highlightBlock","onMouseEnter","onMouseLeave","selectEditorBlock","event","selectDuplicatedBlock","newClientId","undefined","toggleExpanded","preventDefault","stopPropagation","showBlockActions","hideBlockActions","colSpan","classes","blockInformation","settingsAriaLabel","title","dropdownClientIds","includes","ref","tabIndex","onFocus","className"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridCell as TreeGridCell,\n\t__experimentalTreeGridItem as TreeGridItem,\n} from '@wordpress/components';\nimport { moreVertical } from '@wordpress/icons';\nimport {\n\tuseState,\n\tuseRef,\n\tuseEffect,\n\tuseCallback,\n\tmemo,\n} from '@wordpress/element';\nimport { useDispatch } from '@wordpress/data';\nimport { sprintf, __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewLeaf from './leaf';\nimport {\n\tBlockMoverUpButton,\n\tBlockMoverDownButton,\n} from '../block-mover/button';\nimport ListViewBlockContents from './block-contents';\nimport BlockSettingsDropdown from '../block-settings-menu/block-settings-dropdown';\nimport { useListViewContext } from './context';\nimport { store as blockEditorStore } from '../../store';\nimport useBlockDisplayInformation from '../use-block-display-information';\n\nfunction ListViewBlock( {\n\tblock,\n\tisDragged,\n\tisSelected,\n\tisBranchSelected,\n\tselectBlock,\n\tposition,\n\tlevel,\n\trowCount,\n\tsiblingBlockCount,\n\tshowBlockMovers,\n\tpath,\n\tisExpanded,\n\tselectedClientIds,\n} ) {\n\tconst cellRef = useRef( null );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\tconst { clientId } = block;\n\n\tconst { toggleBlockHighlight } = useDispatch( blockEditorStore );\n\n\tconst {\n\t\t__experimentalFeatures: withExperimentalFeatures,\n\t\t__experimentalPersistentListViewFeatures: withExperimentalPersistentListViewFeatures,\n\t\t__experimentalHideContainerBlockActions: hideContainerBlockActions,\n\t\tisTreeGridMounted,\n\t\texpand,\n\t\tcollapse,\n\t} = useListViewContext();\n\n\tconst hasSiblings = siblingBlockCount > 0;\n\tconst hasRenderedMovers = showBlockMovers && hasSiblings;\n\tconst moverCellClassName = classnames(\n\t\t'block-editor-list-view-block__mover-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\tconst listViewBlockSettingsClassName = classnames(\n\t\t'block-editor-list-view-block__menu-cell',\n\t\t{ 'is-visible': isHovered || isSelected }\n\t);\n\n\t// If ListView has experimental features related to the Persistent List View,\n\t// only focus the selected list item on mount; otherwise the list would always\n\t// try to steal the focus from the editor canvas.\n\tuseEffect( () => {\n\t\tif (\n\t\t\twithExperimentalPersistentListViewFeatures &&\n\t\t\t! isTreeGridMounted &&\n\t\t\tisSelected\n\t\t) {\n\t\t\tcellRef.current.focus();\n\t\t}\n\t}, [] );\n\n\tconst highlightBlock = withExperimentalPersistentListViewFeatures\n\t\t? toggleBlockHighlight\n\t\t: () => {};\n\n\tconst onMouseEnter = useCallback( () => {\n\t\tsetIsHovered( true );\n\t\thighlightBlock( clientId, true );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\tconst onMouseLeave = useCallback( () => {\n\t\tsetIsHovered( false );\n\t\thighlightBlock( clientId, false );\n\t}, [ clientId, setIsHovered, highlightBlock ] );\n\n\tconst selectEditorBlock = useCallback(\n\t\t( event ) => {\n\t\t\tselectBlock( event, clientId );\n\t\t},\n\t\t[ clientId, selectBlock ]\n\t);\n\n\tconst selectDuplicatedBlock = useCallback(\n\t\t( newClientId ) => {\n\t\t\tselectBlock( undefined, newClientId );\n\t\t},\n\t\t[ selectBlock ]\n\t);\n\n\tconst toggleExpanded = useCallback(\n\t\t( event ) => {\n\t\t\t// Prevent shift+click from opening link in a new window when toggling.\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\tif ( isExpanded === true ) {\n\t\t\t\tcollapse( clientId );\n\t\t\t} else if ( isExpanded === false ) {\n\t\t\t\texpand( clientId );\n\t\t\t}\n\t\t},\n\t\t[ clientId, expand, collapse, isExpanded ]\n\t);\n\n\tconst showBlockActions =\n\t\twithExperimentalFeatures &&\n\t\t// hide actions for blocks like core/widget-areas\n\t\t( ! hideContainerBlockActions ||\n\t\t\t( hideContainerBlockActions && level > 1 ) );\n\n\tconst hideBlockActions = withExperimentalFeatures && ! showBlockActions;\n\n\tlet colSpan;\n\tif ( hasRenderedMovers ) {\n\t\tcolSpan = 2;\n\t} else if ( hideBlockActions ) {\n\t\tcolSpan = 3;\n\t}\n\n\tconst classes = classnames( {\n\t\t'is-selected': isSelected,\n\t\t'is-branch-selected':\n\t\t\twithExperimentalPersistentListViewFeatures && isBranchSelected,\n\t\t'is-dragging': isDragged,\n\t\t'has-single-cell': hideBlockActions,\n\t} );\n\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\tconst settingsAriaLabel = blockInformation\n\t\t? sprintf(\n\t\t\t\t// translators: %s: The title of the block.\n\t\t\t\t__( 'Options for %s block' ),\n\t\t\t\tblockInformation.title\n\t\t )\n\t\t: __( 'Options' );\n\n\t// Only include all selected blocks if the currently clicked on block\n\t// is one of the selected blocks. This ensures that if a user attempts\n\t// to alter a block that isn't part of the selection, they're still able\n\t// to do so.\n\tconst dropdownClientIds = selectedClientIds.includes( clientId )\n\t\t? selectedClientIds\n\t\t: [ clientId ];\n\n\treturn (\n\t\t<ListViewLeaf\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ onMouseEnter }\n\t\t\tonMouseLeave={ onMouseLeave }\n\t\t\tonFocus={ onMouseEnter }\n\t\t\tonBlur={ onMouseLeave }\n\t\t\tlevel={ level }\n\t\t\tposition={ position }\n\t\t\trowCount={ rowCount }\n\t\t\tpath={ path }\n\t\t\tid={ `list-view-block-${ clientId }` }\n\t\t\tdata-block={ clientId }\n\t\t\tisExpanded={ isExpanded }\n\t\t>\n\t\t\t<TreeGridCell\n\t\t\t\tclassName=\"block-editor-list-view-block__contents-cell\"\n\t\t\t\tcolSpan={ colSpan }\n\t\t\t\tref={ cellRef }\n\t\t\t>\n\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t<div className=\"block-editor-list-view-block__contents-container\">\n\t\t\t\t\t\t<ListViewBlockContents\n\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\tonClick={ selectEditorBlock }\n\t\t\t\t\t\t\tonToggleExpanded={ toggleExpanded }\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\tsiblingBlockCount={ siblingBlockCount }\n\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</TreeGridCell>\n\t\t\t{ hasRenderedMovers && (\n\t\t\t\t<>\n\t\t\t\t\t<TreeGridCell\n\t\t\t\t\t\tclassName={ moverCellClassName }\n\t\t\t\t\t\twithoutGridItem\n\t\t\t\t\t>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverUpButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t\t<TreeGridItem>\n\t\t\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t\t\t<BlockMoverDownButton\n\t\t\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\t\t\ttabIndex={ tabIndex }\n\t\t\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</TreeGridItem>\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</>\n\t\t\t) }\n\n\t\t\t{ showBlockActions && (\n\t\t\t\t<TreeGridCell className={ listViewBlockSettingsClassName }>\n\t\t\t\t\t{ ( { ref, tabIndex, onFocus } ) => (\n\t\t\t\t\t\t<BlockSettingsDropdown\n\t\t\t\t\t\t\tclientIds={ dropdownClientIds }\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={ settingsAriaLabel }\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\tclassName: 'block-editor-list-view-block__menu',\n\t\t\t\t\t\t\t\ttabIndex,\n\t\t\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tdisableOpenOnArrowDown\n\t\t\t\t\t\t\t__experimentalSelectBlock={ selectDuplicatedBlock }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</TreeGridCell>\n\t\t\t) }\n\t\t</ListViewLeaf>\n\t);\n}\n\nexport default memo( ListViewBlock );\n"]}
|
|
@@ -18,7 +18,7 @@ import { Icon, plusCircleFilled } from '@wordpress/icons';
|
|
|
18
18
|
* Internal dependencies
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
-
import styles from './styles.scss'; //
|
|
21
|
+
import styles from './styles.scss'; // Remove duplicates after gallery append.
|
|
22
22
|
|
|
23
23
|
const dedupMedia = media => uniqWith(media, (media1, media2) => media1.id === media2.id || media1.url === media2.url);
|
|
24
24
|
|
|
@@ -42,10 +42,10 @@ function MediaPlaceholder(props) {
|
|
|
42
42
|
hideContent,
|
|
43
43
|
autoOpenMediaUpload,
|
|
44
44
|
onSelectURL
|
|
45
|
-
} = props; //
|
|
45
|
+
} = props; // Use ref to keep media array current for callbacks during rerenders.
|
|
46
46
|
|
|
47
47
|
const mediaRef = useRef(value);
|
|
48
|
-
mediaRef.current = value; //
|
|
48
|
+
mediaRef.current = value; // Append and deduplicate media array for gallery use case.
|
|
49
49
|
|
|
50
50
|
const setMedia = multiple && addToGallery ? selected => onSelect(dedupMedia([...mediaRef.current, ...selected])) : onSelect;
|
|
51
51
|
const isOneType = allowedTypes.length === 1;
|
|
@@ -103,12 +103,14 @@ function MediaPlaceholder(props) {
|
|
|
103
103
|
style: styles.emptyStateDescription
|
|
104
104
|
}, instructions));
|
|
105
105
|
} else if (isAppender && !disableMediaButtons) {
|
|
106
|
-
return createElement(
|
|
106
|
+
return createElement(View, {
|
|
107
|
+
testID: "media-placeholder-appender-icon"
|
|
108
|
+
}, createElement(Icon, {
|
|
107
109
|
icon: plusCircleFilled,
|
|
108
110
|
style: addMediaButtonStyle,
|
|
109
111
|
color: addMediaButtonStyle.color,
|
|
110
112
|
size: addMediaButtonStyle.size
|
|
111
|
-
});
|
|
113
|
+
}));
|
|
112
114
|
}
|
|
113
115
|
};
|
|
114
116
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/media-placeholder/index.native.js"],"names":["View","Text","TouchableWithoutFeedback","uniqWith","__","sprintf","MediaUpload","MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","withPreferredColorScheme","useRef","Icon","plusCircleFilled","styles","dedupMedia","media","media1","media2","id","url","MediaPlaceholder","props","addToGallery","allowedTypes","labels","icon","onSelect","onFocus","__experimentalOnlyMediaLibrary","isAppender","disableMediaButtons","getStylesFromColorScheme","multiple","value","children","height","backgroundColor","hideContent","autoOpenMediaUpload","onSelectURL","mediaRef","current","setMedia","selected","isOneType","length","isImage","includes","isVideo","isAudio","placeholderTitle","title","undefined","instructions","accessibilityHint","emptyStateTitleStyle","emptyStateTitle","emptyStateTitleDark","addMediaButtonStyle","addMediaButton","addMediaButtonDark","renderContent","modalIcon","emptyStateDescription","color","size","appenderStyle","appender","appenderDark","emptyStateContainerStyle","emptyStateContainer","emptyStateContainerDark","flex","open","getMediaOptions","event"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback } from 'react-native';\nimport { uniqWith } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tMediaUpload,\n\tMEDIA_TYPE_IMAGE,\n\tMEDIA_TYPE_VIDEO,\n\tMEDIA_TYPE_AUDIO,\n} from '@wordpress/block-editor';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\nimport { Icon, plusCircleFilled } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\n// remove duplicates after gallery append\nconst dedupMedia = ( media ) =>\n\tuniqWith(\n\t\tmedia,\n\t\t( media1, media2 ) =>\n\t\t\tmedia1.id === media2.id || media1.url === media2.url\n\t);\n\nfunction MediaPlaceholder( props ) {\n\tconst {\n\t\taddToGallery,\n\t\tallowedTypes = [],\n\t\tlabels = {},\n\t\ticon,\n\t\tonSelect,\n\t\tonFocus,\n\t\t__experimentalOnlyMediaLibrary,\n\t\tisAppender,\n\t\tdisableMediaButtons,\n\t\tgetStylesFromColorScheme,\n\t\tmultiple,\n\t\tvalue = [],\n\t\tchildren,\n\t\theight,\n\t\tbackgroundColor,\n\t\thideContent,\n\t\tautoOpenMediaUpload,\n\t\tonSelectURL,\n\t} = props;\n\n\t// use ref to keep media array current for callbacks during rerenders\n\tconst mediaRef = useRef( value );\n\tmediaRef.current = value;\n\n\t// append and deduplicate media array for gallery use case\n\tconst setMedia =\n\t\tmultiple && addToGallery\n\t\t\t? ( selected ) =>\n\t\t\t\t\tonSelect(\n\t\t\t\t\t\tdedupMedia( [ ...mediaRef.current, ...selected ] )\n\t\t\t\t\t)\n\t\t\t: onSelect;\n\n\tconst isOneType = allowedTypes.length === 1;\n\tconst isImage = isOneType && allowedTypes.includes( MEDIA_TYPE_IMAGE );\n\tconst isVideo = isOneType && allowedTypes.includes( MEDIA_TYPE_VIDEO );\n\tconst isAudio = isOneType && allowedTypes.includes( MEDIA_TYPE_AUDIO );\n\n\tlet placeholderTitle = labels.title;\n\tif ( placeholderTitle === undefined ) {\n\t\tplaceholderTitle = __( 'Media' );\n\t\tif ( isImage ) {\n\t\t\tplaceholderTitle = __( 'Image' );\n\t\t} else if ( isVideo ) {\n\t\t\tplaceholderTitle = __( 'Video' );\n\t\t} else if ( isAudio ) {\n\t\t\tplaceholderTitle = __( 'Audio' );\n\t\t}\n\t}\n\n\tlet instructions = labels.instructions;\n\tif ( instructions === undefined ) {\n\t\tif ( isImage ) {\n\t\t\tinstructions = __( 'ADD IMAGE' );\n\t\t} else if ( isVideo ) {\n\t\t\tinstructions = __( 'ADD VIDEO' );\n\t\t} else if ( isAudio ) {\n\t\t\tinstructions = __( 'ADD AUDIO' );\n\t\t} else {\n\t\t\tinstructions = __( 'ADD IMAGE OR VIDEO' );\n\t\t}\n\t}\n\n\tlet accessibilityHint = __( 'Double tap to select' );\n\tif ( isImage ) {\n\t\taccessibilityHint = __( 'Double tap to select an image' );\n\t} else if ( isVideo ) {\n\t\taccessibilityHint = __( 'Double tap to select a video' );\n\t} else if ( isAudio ) {\n\t\taccessibilityHint = __( 'Double tap to select an audio file' );\n\t}\n\n\tconst emptyStateTitleStyle = getStylesFromColorScheme(\n\t\tstyles.emptyStateTitle,\n\t\tstyles.emptyStateTitleDark\n\t);\n\tconst addMediaButtonStyle = getStylesFromColorScheme(\n\t\tstyles.addMediaButton,\n\t\tstyles.addMediaButtonDark\n\t);\n\n\tconst renderContent = () => {\n\t\tif ( isAppender === undefined || ! isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<View style={ styles.modalIcon }>{ icon }</View>\n\t\t\t\t\t<Text style={ emptyStateTitleStyle }>\n\t\t\t\t\t\t{ placeholderTitle }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t\t<Text style={ styles.emptyStateDescription }>\n\t\t\t\t\t\t{ instructions }\n\t\t\t\t\t</Text>\n\t\t\t\t</>\n\t\t\t);\n\t\t} else if ( isAppender && ! disableMediaButtons ) {\n\t\t\treturn (\n\t\t\t\t<Icon\n\t\t\t\t\ticon={ plusCircleFilled }\n\t\t\t\t\tstyle={ addMediaButtonStyle }\n\t\t\t\t\tcolor={ addMediaButtonStyle.color }\n\t\t\t\t\tsize={ addMediaButtonStyle.size }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t};\n\n\tif ( isAppender && disableMediaButtons ) {\n\t\treturn null;\n\t}\n\n\tconst appenderStyle = getStylesFromColorScheme(\n\t\tstyles.appender,\n\t\tstyles.appenderDark\n\t);\n\tconst emptyStateContainerStyle = getStylesFromColorScheme(\n\t\tstyles.emptyStateContainer,\n\t\tstyles.emptyStateContainerDark\n\t);\n\n\treturn (\n\t\t<View style={ { flex: 1 } }>\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tonSelect={ setMedia }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t__experimentalOnlyMediaLibrary={\n\t\t\t\t\t__experimentalOnlyMediaLibrary\n\t\t\t\t}\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tisReplacingMedia={ false }\n\t\t\t\tautoOpen={ autoOpenMediaUpload }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t\t\t\t/* translators: accessibility text for the media block empty state. %s: media type */\n\t\t\t\t\t\t\t\t__( '%s block. Empty' ),\n\t\t\t\t\t\t\t\tplaceholderTitle\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\taccessibilityHint={ accessibilityHint }\n\t\t\t\t\t\t\tonPress={ ( event ) => {\n\t\t\t\t\t\t\t\tonFocus?.( event );\n\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\temptyStateContainerStyle,\n\t\t\t\t\t\t\t\t\t\theight && { height },\n\t\t\t\t\t\t\t\t\t\tbackgroundColor && { backgroundColor },\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tisAppender && appenderStyle,\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t\t{ ! hideContent && renderContent() }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t</View>\n\t);\n}\n\nexport default withPreferredColorScheme( MediaPlaceholder );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/media-placeholder/index.native.js"],"names":["View","Text","TouchableWithoutFeedback","uniqWith","__","sprintf","MediaUpload","MEDIA_TYPE_IMAGE","MEDIA_TYPE_VIDEO","MEDIA_TYPE_AUDIO","withPreferredColorScheme","useRef","Icon","plusCircleFilled","styles","dedupMedia","media","media1","media2","id","url","MediaPlaceholder","props","addToGallery","allowedTypes","labels","icon","onSelect","onFocus","__experimentalOnlyMediaLibrary","isAppender","disableMediaButtons","getStylesFromColorScheme","multiple","value","children","height","backgroundColor","hideContent","autoOpenMediaUpload","onSelectURL","mediaRef","current","setMedia","selected","isOneType","length","isImage","includes","isVideo","isAudio","placeholderTitle","title","undefined","instructions","accessibilityHint","emptyStateTitleStyle","emptyStateTitle","emptyStateTitleDark","addMediaButtonStyle","addMediaButton","addMediaButtonDark","renderContent","modalIcon","emptyStateDescription","color","size","appenderStyle","appender","appenderDark","emptyStateContainerStyle","emptyStateContainer","emptyStateContainerDark","flex","open","getMediaOptions","event"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback } from 'react-native';\nimport { uniqWith } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tMediaUpload,\n\tMEDIA_TYPE_IMAGE,\n\tMEDIA_TYPE_VIDEO,\n\tMEDIA_TYPE_AUDIO,\n} from '@wordpress/block-editor';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { useRef } from '@wordpress/element';\nimport { Icon, plusCircleFilled } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\n// Remove duplicates after gallery append.\nconst dedupMedia = ( media ) =>\n\tuniqWith(\n\t\tmedia,\n\t\t( media1, media2 ) =>\n\t\t\tmedia1.id === media2.id || media1.url === media2.url\n\t);\n\nfunction MediaPlaceholder( props ) {\n\tconst {\n\t\taddToGallery,\n\t\tallowedTypes = [],\n\t\tlabels = {},\n\t\ticon,\n\t\tonSelect,\n\t\tonFocus,\n\t\t__experimentalOnlyMediaLibrary,\n\t\tisAppender,\n\t\tdisableMediaButtons,\n\t\tgetStylesFromColorScheme,\n\t\tmultiple,\n\t\tvalue = [],\n\t\tchildren,\n\t\theight,\n\t\tbackgroundColor,\n\t\thideContent,\n\t\tautoOpenMediaUpload,\n\t\tonSelectURL,\n\t} = props;\n\n\t// Use ref to keep media array current for callbacks during rerenders.\n\tconst mediaRef = useRef( value );\n\tmediaRef.current = value;\n\n\t// Append and deduplicate media array for gallery use case.\n\tconst setMedia =\n\t\tmultiple && addToGallery\n\t\t\t? ( selected ) =>\n\t\t\t\t\tonSelect(\n\t\t\t\t\t\tdedupMedia( [ ...mediaRef.current, ...selected ] )\n\t\t\t\t\t)\n\t\t\t: onSelect;\n\n\tconst isOneType = allowedTypes.length === 1;\n\tconst isImage = isOneType && allowedTypes.includes( MEDIA_TYPE_IMAGE );\n\tconst isVideo = isOneType && allowedTypes.includes( MEDIA_TYPE_VIDEO );\n\tconst isAudio = isOneType && allowedTypes.includes( MEDIA_TYPE_AUDIO );\n\n\tlet placeholderTitle = labels.title;\n\tif ( placeholderTitle === undefined ) {\n\t\tplaceholderTitle = __( 'Media' );\n\t\tif ( isImage ) {\n\t\t\tplaceholderTitle = __( 'Image' );\n\t\t} else if ( isVideo ) {\n\t\t\tplaceholderTitle = __( 'Video' );\n\t\t} else if ( isAudio ) {\n\t\t\tplaceholderTitle = __( 'Audio' );\n\t\t}\n\t}\n\n\tlet instructions = labels.instructions;\n\tif ( instructions === undefined ) {\n\t\tif ( isImage ) {\n\t\t\tinstructions = __( 'ADD IMAGE' );\n\t\t} else if ( isVideo ) {\n\t\t\tinstructions = __( 'ADD VIDEO' );\n\t\t} else if ( isAudio ) {\n\t\t\tinstructions = __( 'ADD AUDIO' );\n\t\t} else {\n\t\t\tinstructions = __( 'ADD IMAGE OR VIDEO' );\n\t\t}\n\t}\n\n\tlet accessibilityHint = __( 'Double tap to select' );\n\tif ( isImage ) {\n\t\taccessibilityHint = __( 'Double tap to select an image' );\n\t} else if ( isVideo ) {\n\t\taccessibilityHint = __( 'Double tap to select a video' );\n\t} else if ( isAudio ) {\n\t\taccessibilityHint = __( 'Double tap to select an audio file' );\n\t}\n\n\tconst emptyStateTitleStyle = getStylesFromColorScheme(\n\t\tstyles.emptyStateTitle,\n\t\tstyles.emptyStateTitleDark\n\t);\n\tconst addMediaButtonStyle = getStylesFromColorScheme(\n\t\tstyles.addMediaButton,\n\t\tstyles.addMediaButtonDark\n\t);\n\n\tconst renderContent = () => {\n\t\tif ( isAppender === undefined || ! isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<View style={ styles.modalIcon }>{ icon }</View>\n\t\t\t\t\t<Text style={ emptyStateTitleStyle }>\n\t\t\t\t\t\t{ placeholderTitle }\n\t\t\t\t\t</Text>\n\t\t\t\t\t{ children }\n\t\t\t\t\t<Text style={ styles.emptyStateDescription }>\n\t\t\t\t\t\t{ instructions }\n\t\t\t\t\t</Text>\n\t\t\t\t</>\n\t\t\t);\n\t\t} else if ( isAppender && ! disableMediaButtons ) {\n\t\t\treturn (\n\t\t\t\t<View testID=\"media-placeholder-appender-icon\">\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ plusCircleFilled }\n\t\t\t\t\t\tstyle={ addMediaButtonStyle }\n\t\t\t\t\t\tcolor={ addMediaButtonStyle.color }\n\t\t\t\t\t\tsize={ addMediaButtonStyle.size }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t);\n\t\t}\n\t};\n\n\tif ( isAppender && disableMediaButtons ) {\n\t\treturn null;\n\t}\n\n\tconst appenderStyle = getStylesFromColorScheme(\n\t\tstyles.appender,\n\t\tstyles.appenderDark\n\t);\n\tconst emptyStateContainerStyle = getStylesFromColorScheme(\n\t\tstyles.emptyStateContainer,\n\t\tstyles.emptyStateContainerDark\n\t);\n\n\treturn (\n\t\t<View style={ { flex: 1 } }>\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tonSelect={ setMedia }\n\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t__experimentalOnlyMediaLibrary={\n\t\t\t\t\t__experimentalOnlyMediaLibrary\n\t\t\t\t}\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tisReplacingMedia={ false }\n\t\t\t\tautoOpen={ autoOpenMediaUpload }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\t\taccessibilityLabel={ sprintf(\n\t\t\t\t\t\t\t\t/* translators: accessibility text for the media block empty state. %s: media type */\n\t\t\t\t\t\t\t\t__( '%s block. Empty' ),\n\t\t\t\t\t\t\t\tplaceholderTitle\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\t\t\t\taccessibilityHint={ accessibilityHint }\n\t\t\t\t\t\t\tonPress={ ( event ) => {\n\t\t\t\t\t\t\t\tonFocus?.( event );\n\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\temptyStateContainerStyle,\n\t\t\t\t\t\t\t\t\t\theight && { height },\n\t\t\t\t\t\t\t\t\t\tbackgroundColor && { backgroundColor },\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tisAppender && appenderStyle,\n\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t\t{ ! hideContent && renderContent() }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t</View>\n\t);\n}\n\nexport default withPreferredColorScheme( MediaPlaceholder );\n"]}
|
|
@@ -3,19 +3,20 @@ import { createElement, Fragment } from "@wordpress/element";
|
|
|
3
3
|
/**
|
|
4
4
|
* External dependencies
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { noop, uniqueId } from 'lodash';
|
|
7
7
|
/**
|
|
8
8
|
* WordPress dependencies
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { useState,
|
|
11
|
+
import { useState, useRef } from '@wordpress/element';
|
|
12
12
|
import { __ } from '@wordpress/i18n';
|
|
13
13
|
import { speak } from '@wordpress/a11y';
|
|
14
14
|
import { FormFileUpload, NavigableMenu, MenuItem, ToolbarButton, Dropdown, withFilters } from '@wordpress/components';
|
|
15
|
-
import {
|
|
15
|
+
import { useSelect, withDispatch } from '@wordpress/data';
|
|
16
16
|
import { DOWN } from '@wordpress/keycodes';
|
|
17
|
-
import { compose } from '@wordpress/compose';
|
|
18
17
|
import { upload, media as mediaIcon } from '@wordpress/icons';
|
|
18
|
+
import { compose } from '@wordpress/compose';
|
|
19
|
+
import { __unstableStripHTML as stripHTML } from '@wordpress/dom';
|
|
19
20
|
import { store as noticesStore } from '@wordpress/notices';
|
|
20
21
|
/**
|
|
21
22
|
* Internal dependencies
|
|
@@ -33,6 +34,7 @@ const MediaReplaceFlow = _ref => {
|
|
|
33
34
|
mediaIds,
|
|
34
35
|
allowedTypes,
|
|
35
36
|
accept,
|
|
37
|
+
onError,
|
|
36
38
|
onSelect,
|
|
37
39
|
onSelectURL,
|
|
38
40
|
onFilesUpload = noop,
|
|
@@ -49,25 +51,25 @@ const MediaReplaceFlow = _ref => {
|
|
|
49
51
|
const mediaUpload = useSelect(select => {
|
|
50
52
|
return select(blockEditorStore).getSettings().mediaUpload;
|
|
51
53
|
}, []);
|
|
52
|
-
const editMediaButtonRef =
|
|
54
|
+
const editMediaButtonRef = useRef();
|
|
53
55
|
const errorNoticeID = uniqueId('block-editor/media-replace-flow/error-notice/');
|
|
54
56
|
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
errorElement.innerHTML = renderToString(message); // The default error contains some HTML that,
|
|
58
|
-
// for example, makes the filename bold.
|
|
59
|
-
// The notice, by default, accepts strings only and so
|
|
60
|
-
// we need to remove the html from the error.
|
|
57
|
+
const onUploadError = message => {
|
|
58
|
+
const safeMessage = stripHTML(message);
|
|
61
59
|
|
|
62
|
-
|
|
60
|
+
if (onError) {
|
|
61
|
+
onError(safeMessage);
|
|
62
|
+
return;
|
|
63
|
+
} // We need to set a timeout for showing the notice
|
|
63
64
|
// so that VoiceOver and possibly other screen readers
|
|
64
65
|
// can announce the error afer the toolbar button
|
|
65
66
|
// regains focus once the upload dialog closes.
|
|
66
67
|
// Otherwise VO simply skips over the notice and announces
|
|
67
68
|
// the focused element and the open menu.
|
|
68
69
|
|
|
70
|
+
|
|
69
71
|
setTimeout(() => {
|
|
70
|
-
createNotice('error',
|
|
72
|
+
createNotice('error', safeMessage, {
|
|
71
73
|
speak: true,
|
|
72
74
|
id: errorNoticeID,
|
|
73
75
|
isDismissible: true
|
|
@@ -77,17 +79,13 @@ const MediaReplaceFlow = _ref => {
|
|
|
77
79
|
|
|
78
80
|
const selectMedia = (media, closeMenu) => {
|
|
79
81
|
closeMenu();
|
|
80
|
-
setMediaURLValue(media.url); // Calling `onSelect` after the state update since it might unmount the component.
|
|
82
|
+
setMediaURLValue(media === null || media === void 0 ? void 0 : media.url); // Calling `onSelect` after the state update since it might unmount the component.
|
|
81
83
|
|
|
82
84
|
onSelect(media);
|
|
83
85
|
speak(__('The media file has been replaced'));
|
|
84
86
|
removeNotice(errorNoticeID);
|
|
85
87
|
};
|
|
86
88
|
|
|
87
|
-
const selectURL = newURL => {
|
|
88
|
-
onSelectURL(newURL);
|
|
89
|
-
};
|
|
90
|
-
|
|
91
89
|
const uploadFiles = (event, closeMenu) => {
|
|
92
90
|
const files = event.target.files;
|
|
93
91
|
|
|
@@ -97,17 +95,14 @@ const MediaReplaceFlow = _ref => {
|
|
|
97
95
|
}
|
|
98
96
|
|
|
99
97
|
onFilesUpload(files);
|
|
100
|
-
|
|
101
|
-
const setMedia = _ref2 => {
|
|
102
|
-
let [media] = _ref2;
|
|
103
|
-
selectMedia(media, closeMenu);
|
|
104
|
-
};
|
|
105
|
-
|
|
106
98
|
mediaUpload({
|
|
107
99
|
allowedTypes,
|
|
108
100
|
filesList: files,
|
|
109
|
-
onFileChange:
|
|
110
|
-
|
|
101
|
+
onFileChange: _ref2 => {
|
|
102
|
+
let [media] = _ref2;
|
|
103
|
+
selectMedia(media, closeMenu);
|
|
104
|
+
},
|
|
105
|
+
onError: onUploadError
|
|
111
106
|
});
|
|
112
107
|
};
|
|
113
108
|
|
|
@@ -202,7 +197,7 @@ const MediaReplaceFlow = _ref => {
|
|
|
202
197
|
url
|
|
203
198
|
} = _ref7;
|
|
204
199
|
setMediaURLValue(url);
|
|
205
|
-
|
|
200
|
+
onSelectURL(url);
|
|
206
201
|
editMediaButtonRef.current.focus();
|
|
207
202
|
}
|
|
208
203
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/media-replace-flow/index.js"],"names":["uniqueId","noop","useState","createRef","renderToString","__","speak","FormFileUpload","NavigableMenu","MenuItem","ToolbarButton","Dropdown","withFilters","withDispatch","useSelect","DOWN","compose","upload","media","mediaIcon","store","noticesStore","MediaUpload","MediaUploadCheck","LinkControl","blockEditorStore","MediaReplaceFlow","mediaURL","mediaId","mediaIds","allowedTypes","accept","onSelect","onSelectURL","onFilesUpload","onCloseModal","name","createNotice","removeNotice","children","multiple","addToGallery","handleUpload","mediaURLValue","setMediaURLValue","mediaUpload","select","getSettings","editMediaButtonRef","errorNoticeID","onError","message","errorElement","document","createElement","innerHTML","renderMsg","textContent","innerText","setTimeout","id","isDismissible","selectMedia","closeMenu","url","selectURL","newURL","uploadFiles","event","files","target","setMedia","filesList","onFileChange","openOnArrowDown","keyCode","preventDefault","click","onlyAllowsImages","length","every","allowedType","startsWith","gallery","POPOVER_PROPS","isAlternate","isOpen","onToggle","onClose","open","openFileDialog","current","focus","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { uniqueId, noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, createRef, renderToString } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport {\n\tFormFileUpload,\n\tNavigableMenu,\n\tMenuItem,\n\tToolbarButton,\n\tDropdown,\n\twithFilters,\n} from '@wordpress/components';\nimport { withDispatch, useSelect } from '@wordpress/data';\nimport { DOWN } from '@wordpress/keycodes';\nimport { compose } from '@wordpress/compose';\nimport { upload, media as mediaIcon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport LinkControl from '../link-control';\nimport { store as blockEditorStore } from '../../store';\n\nconst MediaReplaceFlow = ( {\n\tmediaURL,\n\tmediaId,\n\tmediaIds,\n\tallowedTypes,\n\taccept,\n\tonSelect,\n\tonSelectURL,\n\tonFilesUpload = noop,\n\tonCloseModal = noop,\n\tname = __( 'Replace' ),\n\tcreateNotice,\n\tremoveNotice,\n\tchildren,\n\tmultiple = false,\n\taddToGallery,\n\thandleUpload = true,\n} ) => {\n\tconst [ mediaURLValue, setMediaURLValue ] = useState( mediaURL );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst editMediaButtonRef = createRef();\n\tconst errorNoticeID = uniqueId(\n\t\t'block-editor/media-replace-flow/error-notice/'\n\t);\n\n\tconst onError = ( message ) => {\n\t\tconst errorElement = document.createElement( 'div' );\n\t\terrorElement.innerHTML = renderToString( message );\n\t\t// The default error contains some HTML that,\n\t\t// for example, makes the filename bold.\n\t\t// The notice, by default, accepts strings only and so\n\t\t// we need to remove the html from the error.\n\t\tconst renderMsg =\n\t\t\terrorElement.textContent || errorElement.innerText || '';\n\t\t// We need to set a timeout for showing the notice\n\t\t// so that VoiceOver and possibly other screen readers\n\t\t// can announce the error afer the toolbar button\n\t\t// regains focus once the upload dialog closes.\n\t\t// Otherwise VO simply skips over the notice and announces\n\t\t// the focused element and the open menu.\n\t\tsetTimeout( () => {\n\t\t\tcreateNotice( 'error', renderMsg, {\n\t\t\t\tspeak: true,\n\t\t\t\tid: errorNoticeID,\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t}, 1000 );\n\t};\n\n\tconst selectMedia = ( media, closeMenu ) => {\n\t\tcloseMenu();\n\t\tsetMediaURLValue( media.url );\n\t\t// Calling `onSelect` after the state update since it might unmount the component.\n\t\tonSelect( media );\n\t\tspeak( __( 'The media file has been replaced' ) );\n\t\tremoveNotice( errorNoticeID );\n\t};\n\n\tconst selectURL = ( newURL ) => {\n\t\tonSelectURL( newURL );\n\t};\n\n\tconst uploadFiles = ( event, closeMenu ) => {\n\t\tconst files = event.target.files;\n\t\tif ( ! handleUpload ) {\n\t\t\tcloseMenu();\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesUpload( files );\n\t\tconst setMedia = ( [ media ] ) => {\n\t\t\tselectMedia( media, closeMenu );\n\t\t};\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.target.click();\n\t\t}\n\t};\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst gallery = multiple && onlyAllowsImages();\n\n\tconst POPOVER_PROPS = {\n\t\tisAlternate: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tcontentClassName=\"block-editor-media-replace-flow__options\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tref={ editMediaButtonRef }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t>\n\t\t\t\t\t{ name }\n\t\t\t\t</ToolbarButton>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu className=\"block-editor-media-replace-flow__media-upload-menu\">\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tgallery={ gallery }\n\t\t\t\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\tvalue={ multiple ? mediaIds : mediaId }\n\t\t\t\t\t\t\tonSelect={ ( media ) =>\n\t\t\t\t\t\t\t\tselectMedia( media, onClose )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\t\t\t\tonClose={ onCloseModal }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<MenuItem icon={ mediaIcon } onClick={ open }>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\tuploadFiles( event, onClose );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t{ onSelectURL && (\n\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t\t\t\t\t<form className=\"block-editor-media-flow__url-input\">\n\t\t\t\t\t\t\t<span className=\"block-editor-media-replace-flow__image-url-label\">\n\t\t\t\t\t\t\t\t{ __( 'Current media URL:' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tvalue={ { url: mediaURLValue } }\n\t\t\t\t\t\t\t\tsettings={ [] }\n\t\t\t\t\t\t\t\tshowSuggestions={ false }\n\t\t\t\t\t\t\t\tonChange={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\tsetMediaURLValue( url );\n\t\t\t\t\t\t\t\t\tselectURL( url );\n\t\t\t\t\t\t\t\t\teditMediaButtonRef.current.focus();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createNotice, removeNotice } = dispatch( noticesStore );\n\t\treturn {\n\t\t\tcreateNotice,\n\t\t\tremoveNotice,\n\t\t};\n\t} ),\n\twithFilters( 'editor.MediaReplaceFlow' ),\n] )( MediaReplaceFlow );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/media-replace-flow/index.js"],"names":["noop","uniqueId","useState","useRef","__","speak","FormFileUpload","NavigableMenu","MenuItem","ToolbarButton","Dropdown","withFilters","useSelect","withDispatch","DOWN","upload","media","mediaIcon","compose","__unstableStripHTML","stripHTML","store","noticesStore","MediaUpload","MediaUploadCheck","LinkControl","blockEditorStore","MediaReplaceFlow","mediaURL","mediaId","mediaIds","allowedTypes","accept","onError","onSelect","onSelectURL","onFilesUpload","onCloseModal","name","createNotice","removeNotice","children","multiple","addToGallery","handleUpload","mediaURLValue","setMediaURLValue","mediaUpload","select","getSettings","editMediaButtonRef","errorNoticeID","onUploadError","message","safeMessage","setTimeout","id","isDismissible","selectMedia","closeMenu","url","uploadFiles","event","files","target","filesList","onFileChange","openOnArrowDown","keyCode","preventDefault","click","onlyAllowsImages","length","every","allowedType","startsWith","gallery","POPOVER_PROPS","isAlternate","isOpen","onToggle","onClose","open","openFileDialog","current","focus","dispatch"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop, uniqueId } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { speak } from '@wordpress/a11y';\nimport {\n\tFormFileUpload,\n\tNavigableMenu,\n\tMenuItem,\n\tToolbarButton,\n\tDropdown,\n\twithFilters,\n} from '@wordpress/components';\nimport { useSelect, withDispatch } from '@wordpress/data';\nimport { DOWN } from '@wordpress/keycodes';\nimport { upload, media as mediaIcon } from '@wordpress/icons';\nimport { compose } from '@wordpress/compose';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport LinkControl from '../link-control';\nimport { store as blockEditorStore } from '../../store';\n\nconst MediaReplaceFlow = ( {\n\tmediaURL,\n\tmediaId,\n\tmediaIds,\n\tallowedTypes,\n\taccept,\n\tonError,\n\tonSelect,\n\tonSelectURL,\n\tonFilesUpload = noop,\n\tonCloseModal = noop,\n\tname = __( 'Replace' ),\n\tcreateNotice,\n\tremoveNotice,\n\tchildren,\n\tmultiple = false,\n\taddToGallery,\n\thandleUpload = true,\n} ) => {\n\tconst [ mediaURLValue, setMediaURLValue ] = useState( mediaURL );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\treturn select( blockEditorStore ).getSettings().mediaUpload;\n\t}, [] );\n\tconst editMediaButtonRef = useRef();\n\tconst errorNoticeID = uniqueId(\n\t\t'block-editor/media-replace-flow/error-notice/'\n\t);\n\n\tconst onUploadError = ( message ) => {\n\t\tconst safeMessage = stripHTML( message );\n\t\tif ( onError ) {\n\t\t\tonError( safeMessage );\n\t\t\treturn;\n\t\t}\n\t\t// We need to set a timeout for showing the notice\n\t\t// so that VoiceOver and possibly other screen readers\n\t\t// can announce the error afer the toolbar button\n\t\t// regains focus once the upload dialog closes.\n\t\t// Otherwise VO simply skips over the notice and announces\n\t\t// the focused element and the open menu.\n\t\tsetTimeout( () => {\n\t\t\tcreateNotice( 'error', safeMessage, {\n\t\t\t\tspeak: true,\n\t\t\t\tid: errorNoticeID,\n\t\t\t\tisDismissible: true,\n\t\t\t} );\n\t\t}, 1000 );\n\t};\n\n\tconst selectMedia = ( media, closeMenu ) => {\n\t\tcloseMenu();\n\t\tsetMediaURLValue( media?.url );\n\t\t// Calling `onSelect` after the state update since it might unmount the component.\n\t\tonSelect( media );\n\t\tspeak( __( 'The media file has been replaced' ) );\n\t\tremoveNotice( errorNoticeID );\n\t};\n\n\tconst uploadFiles = ( event, closeMenu ) => {\n\t\tconst files = event.target.files;\n\t\tif ( ! handleUpload ) {\n\t\t\tcloseMenu();\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesUpload( files );\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( [ media ] ) => {\n\t\t\t\tselectMedia( media, closeMenu );\n\t\t\t},\n\t\t\tonError: onUploadError,\n\t\t} );\n\t};\n\n\tconst openOnArrowDown = ( event ) => {\n\t\tif ( event.keyCode === DOWN ) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.target.click();\n\t\t}\n\t};\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst gallery = multiple && onlyAllowsImages();\n\n\tconst POPOVER_PROPS = {\n\t\tisAlternate: true,\n\t};\n\n\treturn (\n\t\t<Dropdown\n\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\tcontentClassName=\"block-editor-media-replace-flow__options\"\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => (\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tref={ editMediaButtonRef }\n\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\tonClick={ onToggle }\n\t\t\t\t\tonKeyDown={ openOnArrowDown }\n\t\t\t\t>\n\t\t\t\t\t{ name }\n\t\t\t\t</ToolbarButton>\n\t\t\t) }\n\t\t\trenderContent={ ( { onClose } ) => (\n\t\t\t\t<>\n\t\t\t\t\t<NavigableMenu className=\"block-editor-media-replace-flow__media-upload-menu\">\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tgallery={ gallery }\n\t\t\t\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\tvalue={ multiple ? mediaIds : mediaId }\n\t\t\t\t\t\t\tonSelect={ ( media ) =>\n\t\t\t\t\t\t\t\tselectMedia( media, onClose )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\t\t\t\tonClose={ onCloseModal }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<MenuItem icon={ mediaIcon } onClick={ open }>\n\t\t\t\t\t\t\t\t\t{ __( 'Open Media Library' ) }\n\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\tuploadFiles( event, onClose );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\t\ticon={ upload }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\topenFileDialog();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t{ onSelectURL && (\n\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t\t\t\t\t<form className=\"block-editor-media-flow__url-input\">\n\t\t\t\t\t\t\t<span className=\"block-editor-media-replace-flow__image-url-label\">\n\t\t\t\t\t\t\t\t{ __( 'Current media URL:' ) }\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<LinkControl\n\t\t\t\t\t\t\t\tvalue={ { url: mediaURLValue } }\n\t\t\t\t\t\t\t\tsettings={ [] }\n\t\t\t\t\t\t\t\tshowSuggestions={ false }\n\t\t\t\t\t\t\t\tonChange={ ( { url } ) => {\n\t\t\t\t\t\t\t\t\tsetMediaURLValue( url );\n\t\t\t\t\t\t\t\t\tonSelectURL( url );\n\t\t\t\t\t\t\t\t\teditMediaButtonRef.current.focus();\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t/>\n\t);\n};\n\nexport default compose( [\n\twithDispatch( ( dispatch ) => {\n\t\tconst { createNotice, removeNotice } = dispatch( noticesStore );\n\t\treturn {\n\t\t\tcreateNotice,\n\t\t\tremoveNotice,\n\t\t};\n\t} ),\n\twithFilters( 'editor.MediaReplaceFlow' ),\n] )( MediaReplaceFlow );\n"]}
|
|
@@ -65,7 +65,7 @@ export class MediaUpload extends Component {
|
|
|
65
65
|
getAllSources() {
|
|
66
66
|
const cameraImageSource = {
|
|
67
67
|
id: mediaSources.deviceCamera,
|
|
68
|
-
// ID is the value sent to native
|
|
68
|
+
// ID is the value sent to native.
|
|
69
69
|
value: mediaSources.deviceCamera + '-IMAGE',
|
|
70
70
|
// This is needed to diferenciate image-camera from video-camera sources.
|
|
71
71
|
label: __('Take a Photo'),
|
|
@@ -168,7 +168,7 @@ export class MediaUpload extends Component {
|
|
|
168
168
|
}, {
|
|
169
169
|
text: __('Apply'),
|
|
170
170
|
onPress: onSelectURL
|
|
171
|
-
}], //
|
|
171
|
+
}], // Buttons.
|
|
172
172
|
'plain-text', // type
|
|
173
173
|
undefined, // defaultValue
|
|
174
174
|
'url' // keyboardType
|
|
@@ -238,7 +238,8 @@ export class MediaUpload extends Component {
|
|
|
238
238
|
hideCancelButton: true,
|
|
239
239
|
ref: instance => this.picker = instance,
|
|
240
240
|
options: this.getMediaOptionsItems(),
|
|
241
|
-
onChange: this.onPickerSelect
|
|
241
|
+
onChange: this.onPickerSelect,
|
|
242
|
+
testID: "media-options-picker"
|
|
242
243
|
});
|
|
243
244
|
|
|
244
245
|
return this.props.render({
|