@wordpress/block-editor 8.1.2 → 8.3.0-next.e230fbab09.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +6 -26
- 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 +17 -3
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +6 -6
- 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-list/use-block-props/use-focus-first-element.js +3 -0
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-multi-selection.js +25 -27
- package/build/components/block-list/use-block-props/use-multi-selection.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/container.native.js +1 -5
- package/build/components/block-settings/container.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.js +9 -0
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +38 -1
- package/build/components/index.native.js.map +1 -1
- package/build/components/inserter/block-patterns-tab.js +4 -4
- 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 +20 -8
- 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 +28 -11
- 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 +63 -45
- 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-contents.js +8 -4
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block-select-button.js +2 -2
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +20 -9
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +2 -1
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +49 -41
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +139 -0
- package/build/components/list-view/use-block-selection.js.map +1 -0
- package/build/components/list-view/use-list-view-expand-selected-item.js +60 -0
- package/build/components/list-view/use-list-view-expand-selected-item.js.map +1 -0
- package/build/components/list-view/utils.js +29 -1
- package/build/components/list-view/utils.js.map +1 -1
- package/build/components/media-placeholder/index.native.js +7 -5
- package/build/components/media-placeholder/index.native.js.map +1 -1
- package/build/components/media-replace-flow/index.js +20 -24
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/media-upload/index.native.js +4 -3
- package/build/components/media-upload/index.native.js.map +1 -1
- package/build/components/media-upload-progress/index.native.js +2 -2
- package/build/components/media-upload-progress/index.native.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +3 -3
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +3 -3
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.js +2 -2
- package/build/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build/components/rich-text/format-toolbar-container.native.js +1 -1
- package/build/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build/components/rich-text/index.js +7 -12
- package/build/components/rich-text/index.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 -12
- 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/index.js +1 -0
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js +22 -24
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-select-all.js +3 -2
- package/build/components/writing-flow/use-select-all.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/custom-class-name.js +40 -0
- package/build/hooks/custom-class-name.js.map +1 -1
- package/build/hooks/duotone.js +22 -4
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/generated-class-name.js +3 -3
- package/build/hooks/generated-class-name.js.map +1 -1
- package/build/hooks/line-height.js +2 -0
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js +1 -1
- package/build/hooks/lock.js.map +1 -1
- package/build/hooks/style.js +32 -13
- package/build/hooks/style.js.map +1 -1
- package/build/layouts/flow.js +7 -5
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +55 -48
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +2 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/index.js +1 -2
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +13 -13
- 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/index.js +0 -14
- package/build/utils/index.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 +18 -4
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +7 -7
- 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-list/use-block-props/use-focus-first-element.js +2 -0
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +23 -28
- package/build-module/components/block-list/use-block-props/use-multi-selection.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/container.native.js +2 -6
- package/build-module/components/block-settings/container.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.js +1 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +5 -4
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inserter/block-patterns-tab.js +4 -4
- 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 +20 -8
- 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 +28 -11
- 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 +61 -45
- 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-contents.js +8 -4
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +2 -2
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +20 -9
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +2 -1
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +46 -42
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +123 -0
- package/build-module/components/list-view/use-block-selection.js.map +1 -0
- package/build-module/components/list-view/use-list-view-expand-selected-item.js +50 -0
- package/build-module/components/list-view/use-list-view-expand-selected-item.js.map +1 -0
- package/build-module/components/list-view/utils.js +25 -0
- package/build-module/components/list-view/utils.js.map +1 -1
- package/build-module/components/media-placeholder/index.native.js +7 -5
- package/build-module/components/media-placeholder/index.native.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +22 -27
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/media-upload/index.native.js +4 -3
- package/build-module/components/media-upload/index.native.js.map +1 -1
- package/build-module/components/media-upload-progress/index.native.js +2 -2
- package/build-module/components/media-upload-progress/index.native.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +3 -3
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +3 -3
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.js +2 -2
- package/build-module/components/rich-text/format-toolbar-container.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar-container.native.js +1 -1
- package/build-module/components/rich-text/format-toolbar-container.native.js.map +1 -1
- package/build-module/components/rich-text/index.js +7 -12
- package/build-module/components/rich-text/index.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 -12
- 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/index.js +1 -0
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js +21 -21
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-select-all.js +3 -2
- package/build-module/components/writing-flow/use-select-all.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/custom-class-name.js +38 -0
- package/build-module/hooks/custom-class-name.js.map +1 -1
- package/build-module/hooks/duotone.js +23 -5
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/generated-class-name.js +3 -3
- package/build-module/hooks/generated-class-name.js.map +1 -1
- package/build-module/hooks/line-height.js +2 -0
- package/build-module/hooks/line-height.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 +31 -13
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/layouts/flow.js +7 -5
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +52 -45
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +2 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/index.js +1 -2
- package/build-module/store/index.js.map +1 -1
- package/build-module/store/reducer.js +13 -13
- 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/index.js +0 -1
- package/build-module/utils/index.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 +10 -12
- package/build-style/style.css +10 -12
- package/package.json +27 -26
- 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 +28 -4
- package/src/components/block-list/block.native.js +7 -6
- package/src/components/block-list/index.native.js +5 -5
- package/src/components/block-list/style.scss +3 -1
- package/src/components/block-list/use-block-props/use-block-class-names.js +1 -1
- package/src/components/block-list/use-block-props/use-focus-first-element.js +3 -0
- package/src/components/block-list/use-block-props/use-multi-selection.js +22 -30
- 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/container.native.js +5 -6
- 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.js +1 -0
- package/src/components/index.native.js +11 -4
- package/src/components/inserter/block-patterns-tab.js +13 -17
- 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 +32 -10
- package/src/components/inserter/search-items.js +1 -1
- package/src/components/inserter/search-results.js +55 -43
- 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/README.md +13 -2
- package/src/components/line-height-control/index.js +66 -43
- package/src/components/line-height-control/index.native.js +2 -0
- package/src/components/line-height-control/stories/index.js +33 -0
- package/src/components/line-height-control/test/index.js +61 -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/README.md +2 -2
- package/src/components/list-view/block-contents.js +10 -3
- package/src/components/list-view/block-select-button.js +1 -2
- package/src/components/list-view/block.js +30 -10
- package/src/components/list-view/branch.js +1 -0
- package/src/components/list-view/index.js +56 -30
- package/src/components/list-view/test/utils.js +50 -0
- package/src/components/list-view/use-block-selection.js +163 -0
- package/src/components/list-view/use-list-view-expand-selected-item.js +58 -0
- package/src/components/list-view/utils.js +31 -0
- package/src/components/media-placeholder/index.native.js +11 -9
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +20 -26
- package/src/components/media-replace-flow/test/index.js +100 -0
- package/src/components/media-upload/index.native.js +3 -2
- package/src/components/media-upload-progress/index.native.js +2 -2
- package/src/components/navigable-toolbar/index.js +3 -3
- package/src/components/plain-text/index.native.js +3 -3
- package/src/components/responsive-block-control/test/index.js +6 -6
- package/src/components/rich-text/format-toolbar-container.js +2 -2
- package/src/components/rich-text/format-toolbar-container.native.js +1 -1
- package/src/components/rich-text/index.js +7 -14
- package/src/components/rich-text/index.native.js +3 -3
- package/src/components/rich-text/use-paste-handler.js +7 -14
- 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/index.js +1 -0
- package/src/components/writing-flow/use-multi-selection.js +17 -20
- package/src/components/writing-flow/use-select-all.js +6 -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/custom-class-name.js +45 -0
- package/src/hooks/duotone.js +27 -3
- package/src/hooks/generated-class-name.js +3 -3
- package/src/hooks/line-height.js +2 -0
- package/src/hooks/lock.js +1 -1
- package/src/hooks/style.js +31 -13
- package/src/hooks/test/align.js +1 -1
- package/src/hooks/typography.scss +0 -4
- package/src/layouts/flow.js +10 -5
- package/src/store/actions.js +24 -14
- package/src/store/defaults.js +2 -2
- package/src/store/index.js +0 -1
- package/src/store/reducer.js +13 -12
- package/src/store/selectors.js +6 -6
- package/src/store/test/actions.js +2 -2
- package/src/store/test/reducer.js +10 -1
- package/src/store/test/selectors.js +1 -1
- package/src/style.scss +0 -1
- package/src/utils/index.js +0 -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/utils/theme.js +0 -63
- package/build/utils/theme.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/build-module/utils/theme.js +0 -53
- package/build-module/utils/theme.js.map +0 -1
- package/src/components/line-height-control/style.scss +0 -8
- package/src/components/writing-flow/test/use-multi-selection.js +0 -36
- package/src/utils/get-paste-event-data.js +0 -42
- package/src/utils/theme.js +0 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-focus-first-element.js"],"names":["useInitialPosition","clientId","select","getSelectedBlocksInitialCaretPosition","isMultiSelecting","isNavigationMode","isBlockSelected","blockEditorStore","useFocusFirstElement","ref","initialPosition","undefined","current","ownerDocument","contains","activeElement","textInputs","focus","tabbable","find","filter","node","isReverse","target","last","first"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-focus-first-element.js"],"names":["useInitialPosition","clientId","select","getSelectedBlocksInitialCaretPosition","isMultiSelecting","isNavigationMode","isBlockSelected","blockEditorStore","useFocusFirstElement","ref","initialPosition","undefined","current","ownerDocument","contains","activeElement","textInputs","focus","tabbable","find","filter","node","isReverse","target","last","first"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AAjBA;AACA;AACA;;AAGA;AACA;AACA;;AAKA;AACA;AACA;;AAKA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,kBAAT,CAA6BC,QAA7B,EAAwC;AACvC,SAAO,qBACJC,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,qCADK;AAELC,MAAAA,gBAFK;AAGLC,MAAAA,gBAHK;AAILC,MAAAA;AAJK,QAKFJ,MAAM,CAAEK,YAAF,CALV;;AAOA,QAAK,CAAED,eAAe,CAAEL,QAAF,CAAtB,EAAqC;AACpC;AACA;;AAED,QAAKG,gBAAgB,MAAMC,gBAAgB,EAA3C,EAAgD;AAC/C;AACA,KAdY,CAgBb;;;AACA,WAAOF,qCAAqC,EAA5C;AACA,GAnBK,EAoBN,CAAEF,QAAF,CApBM,CAAP;AAsBA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,oBAAT,CAA+BP,QAA/B,EAA0C;AAChD,QAAMQ,GAAG,GAAG,sBAAZ;AACA,QAAMC,eAAe,GAAGV,kBAAkB,CAAEC,QAAF,CAA1C;AAEA,0BAAW,MAAM;AAChB,QAAKS,eAAe,KAAKC,SAApB,IAAiCD,eAAe,KAAK,IAA1D,EAAiE;AAChE;AACA;;AAED,QAAK,CAAED,GAAG,CAACG,OAAX,EAAqB;AACpB;AACA;;AAED,UAAM;AAAEC,MAAAA;AAAF,QAAoBJ,GAAG,CAACG,OAA9B,CATgB,CAWhB;;AACA,QAAKH,GAAG,CAACG,OAAJ,CAAYE,QAAZ,CAAsBD,aAAa,CAACE,aAApC,CAAL,EAA2D;AAC1D;AACA,KAde,CAgBhB;;;AACA,UAAMC,UAAU,GAAGC,WAAMC,QAAN,CACjBC,IADiB,CACXV,GAAG,CAACG,OADO,EAEjBQ,MAFiB,CAEPC,IAAF,IAAY,sBAAaA,IAAb,CAFH,CAAnB,CAjBgB,CAqBhB;AACA;;;AACA,UAAMC,SAAS,GAAG,CAAC,CAAD,KAAOZ,eAAzB;AACA,UAAMa,MAAM,GACX,CAAED,SAAS,GAAGE,YAAH,GAAUC,aAArB,EAA8BT,UAA9B,KAA8CP,GAAG,CAACG,OADnD;;AAGA,QAAK,CAAE,6BAAmBH,GAAG,CAACG,OAAvB,EAAgCW,MAAhC,CAAP,EAAkD;AACjDd,MAAAA,GAAG,CAACG,OAAJ,CAAYK,KAAZ;AACA;AACA;;AAED,sDAA2BR,GAAG,CAACG,OAA/B,EAAwC,KAAxC;AAEA,yCAA4BW,MAA5B,EAAoCD,SAApC;AACA,GAnCD,EAmCG,CAAEZ,eAAF,CAnCH;AAqCA,SAAOD,GAAP;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { first, last } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { focus, isTextField, placeCaretAtHorizontalEdge } from '@wordpress/dom';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { isInsideRootBlock } from '../../../utils/dom';\nimport { store as blockEditorStore } from '../../../store';\nimport { setContentEditableWrapper } from './use-multi-selection';\n\n/** @typedef {import('@wordpress/element').RefObject} RefObject */\n\n/**\n * Returns the initial position if the block needs to be focussed, `undefined`\n * otherwise. The initial position is either 0 (start) or -1 (end).\n *\n * @param {string} clientId Block client ID.\n *\n * @return {number} The initial position, either 0 (start) or -1 (end).\n */\nfunction useInitialPosition( clientId ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetSelectedBlocksInitialCaretPosition,\n\t\t\t\tisMultiSelecting,\n\t\t\t\tisNavigationMode,\n\t\t\t\tisBlockSelected,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\tif ( ! isBlockSelected( clientId ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( isMultiSelecting() || isNavigationMode() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If there's no initial position, return 0 to focus the start.\n\t\t\treturn getSelectedBlocksInitialCaretPosition();\n\t\t},\n\t\t[ clientId ]\n\t);\n}\n\n/**\n * Transitions focus to the block or inner tabbable when the block becomes\n * selected and an initial position is set.\n *\n * @param {string} clientId Block client ID.\n *\n * @return {RefObject} React ref with the block element.\n */\nexport function useFocusFirstElement( clientId ) {\n\tconst ref = useRef();\n\tconst initialPosition = useInitialPosition( clientId );\n\n\tuseEffect( () => {\n\t\tif ( initialPosition === undefined || initialPosition === null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ! ref.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { ownerDocument } = ref.current;\n\n\t\t// Do not focus the block if it already contains the active element.\n\t\tif ( ref.current.contains( ownerDocument.activeElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Find all tabbables within node.\n\t\tconst textInputs = focus.tabbable\n\t\t\t.find( ref.current )\n\t\t\t.filter( ( node ) => isTextField( node ) );\n\n\t\t// If reversed (e.g. merge via backspace), use the last in the set of\n\t\t// tabbables.\n\t\tconst isReverse = -1 === initialPosition;\n\t\tconst target =\n\t\t\t( isReverse ? last : first )( textInputs ) || ref.current;\n\n\t\tif ( ! isInsideRootBlock( ref.current, target ) ) {\n\t\t\tref.current.focus();\n\t\t\treturn;\n\t\t}\n\n\t\tsetContentEditableWrapper( ref.current, false );\n\n\t\tplaceCaretAtHorizontalEdge( target, isReverse );\n\t}, [ initialPosition ] );\n\n\treturn ref;\n}\n"]}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.setContentEditableWrapper = setContentEditableWrapper;
|
|
6
7
|
exports.useMultiSelection = useMultiSelection;
|
|
7
8
|
|
|
8
9
|
var _data = require("@wordpress/data");
|
|
@@ -20,14 +21,16 @@ var _dom = require("../../../utils/dom");
|
|
|
20
21
|
/**
|
|
21
22
|
* Internal dependencies
|
|
22
23
|
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Sets the `contenteditable` wrapper element to `value`.
|
|
27
|
+
*
|
|
28
|
+
* @param {HTMLElement} node Block element.
|
|
29
|
+
* @param {boolean} value `contentEditable` value (true or false)
|
|
30
|
+
*/
|
|
31
|
+
function setContentEditableWrapper(node, value) {
|
|
32
|
+
// Since `closest` considers `node` as a candidate, use `parentElement`.
|
|
33
|
+
node.parentElement.closest('[contenteditable]').contentEditable = value;
|
|
31
34
|
}
|
|
32
35
|
/**
|
|
33
36
|
* Sets a multi-selection based on the native selection across blocks.
|
|
@@ -64,11 +67,11 @@ function useMultiSelection(clientId) {
|
|
|
64
67
|
let {
|
|
65
68
|
isSelectionEnd
|
|
66
69
|
} = _ref;
|
|
67
|
-
const selection = defaultView.getSelection(); // If no selection is found, end multi selection and
|
|
68
|
-
//
|
|
70
|
+
const selection = defaultView.getSelection(); // If no selection is found, end multi selection and disable the
|
|
71
|
+
// contentEditable wrapper.
|
|
69
72
|
|
|
70
73
|
if (!selection.rangeCount || selection.isCollapsed) {
|
|
71
|
-
|
|
74
|
+
setContentEditableWrapper(node, false);
|
|
72
75
|
return;
|
|
73
76
|
}
|
|
74
77
|
|
|
@@ -79,11 +82,11 @@ function useMultiSelection(clientId) {
|
|
|
79
82
|
selectBlock(clientId); // If the selection is complete (on mouse up), and no
|
|
80
83
|
// multiple blocks have been selected, set focus back to the
|
|
81
84
|
// anchor element. if the anchor element contains the
|
|
82
|
-
// selection. Additionally,
|
|
83
|
-
//
|
|
85
|
+
// selection. Additionally, the contentEditable wrapper can
|
|
86
|
+
// now be disabled again.
|
|
84
87
|
|
|
85
88
|
if (isSelectionEnd) {
|
|
86
|
-
|
|
89
|
+
setContentEditableWrapper(node, false);
|
|
87
90
|
|
|
88
91
|
if (selection.rangeCount) {
|
|
89
92
|
const {
|
|
@@ -139,17 +142,12 @@ function useMultiSelection(clientId) {
|
|
|
139
142
|
// `mouseup` happens anywhere in the window.
|
|
140
143
|
|
|
141
144
|
ownerDocument.addEventListener('selectionchange', onSelectionChange);
|
|
142
|
-
defaultView.addEventListener('mouseup', onSelectionEnd); //
|
|
143
|
-
//
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
// for the blocks that are asynchonously rendered. To ensure the
|
|
149
|
-
// browser instantly removes the selection boundaries, we remove
|
|
150
|
-
// the contenteditable attributes manually.
|
|
151
|
-
|
|
152
|
-
toggleRichText(node, false);
|
|
145
|
+
defaultView.addEventListener('mouseup', onSelectionEnd); // Allow cross contentEditable selection by temporarily making
|
|
146
|
+
// all content editable. We can't rely on using the store and
|
|
147
|
+
// React because re-rending happens too slowly. We need to be
|
|
148
|
+
// able to select across instances immediately.
|
|
149
|
+
|
|
150
|
+
setContentEditableWrapper(node, true);
|
|
153
151
|
}
|
|
154
152
|
|
|
155
153
|
function onMouseDown(event) {
|
|
@@ -174,10 +172,10 @@ function useMultiSelection(clientId) {
|
|
|
174
172
|
const depth = Math.min(startPath.length, endPath.length) - 1;
|
|
175
173
|
const start = startPath[depth];
|
|
176
174
|
const end = endPath[depth]; // Handle the case of having selected a parent block and
|
|
177
|
-
// then
|
|
175
|
+
// then shift+click on a child.
|
|
178
176
|
|
|
179
177
|
if (start !== end) {
|
|
180
|
-
|
|
178
|
+
setContentEditableWrapper(node, true);
|
|
181
179
|
multiSelect(start, end);
|
|
182
180
|
event.preventDefault();
|
|
183
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-multi-selection.js"],"names":["toggleRichText","container","toggle","Array","from","closest","querySelectorAll","forEach","node","setAttribute","removeAttribute","useMultiSelection","clientId","startMultiSelect","stopMultiSelect","multiSelect","selectBlock","blockEditorStore","isSelectionEnabled","isBlockSelected","getBlockParents","getBlockSelectionStart","hasMultiSelection","ownerDocument","defaultView","anchorElement","rafId","onSelectionChange","isSelectionEnd","selection","getSelection","rangeCount","isCollapsed","endClientId","focusNode","isSingularSelection","commonAncestorContainer","getRangeAt","contains","focus","startPath","endPath","depth","Math","min","length","onSelectionEnd","removeEventListener","requestAnimationFrame","onMouseLeave","buttons","activeElement","addEventListener","onMouseDown","event","button","shiftKey","blockSelectionStart","startParents","includes","start","end","preventDefault","cancelAnimationFrame"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { getBlockClientId } from '../../../utils/dom';\n\nfunction toggleRichText( container, toggle ) {\n\tArray.from(\n\t\tcontainer\n\t\t\t.closest( '.is-root-container' )\n\t\t\t.querySelectorAll( '.rich-text' )\n\t).forEach( ( node ) => {\n\t\tif ( toggle ) {\n\t\t\tnode.setAttribute( 'contenteditable', true );\n\t\t} else {\n\t\t\tnode.removeAttribute( 'contenteditable' );\n\t\t}\n\t} );\n}\n\n/**\n * Sets a multi-selection based on the native selection across blocks.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useMultiSelection( clientId ) {\n\tconst {\n\t\tstartMultiSelect,\n\t\tstopMultiSelect,\n\t\tmultiSelect,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tisSelectionEnabled,\n\t\tisBlockSelected,\n\t\tgetBlockParents,\n\t\tgetBlockSelectionStart,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tlet anchorElement;\n\t\t\tlet rafId;\n\n\t\t\tfunction onSelectionChange( { isSelectionEnd } ) {\n\t\t\t\tconst selection = defaultView.getSelection();\n\n\t\t\t\t// If no selection is found, end multi selection and enable all rich\n\t\t\t\t// text areas.\n\t\t\t\tif ( ! selection.rangeCount || selection.isCollapsed ) {\n\t\t\t\t\ttoggleRichText( node, true );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst endClientId = getBlockClientId( selection.focusNode );\n\t\t\t\tconst isSingularSelection = clientId === endClientId;\n\n\t\t\t\tif ( isSingularSelection ) {\n\t\t\t\t\tselectBlock( clientId );\n\n\t\t\t\t\t// If the selection is complete (on mouse up), and no\n\t\t\t\t\t// multiple blocks have been selected, set focus back to the\n\t\t\t\t\t// anchor element. if the anchor element contains the\n\t\t\t\t\t// selection. Additionally, rich text elements that were\n\t\t\t\t\t// previously disabled can now be enabled again.\n\t\t\t\t\tif ( isSelectionEnd ) {\n\t\t\t\t\t\ttoggleRichText( node, true );\n\n\t\t\t\t\t\tif ( selection.rangeCount ) {\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\tcommonAncestorContainer,\n\t\t\t\t\t\t\t} = selection.getRangeAt( 0 );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tanchorElement.contains(\n\t\t\t\t\t\t\t\t\tcommonAncestorContainer\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\tanchorElement.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst startPath = [\n\t\t\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t];\n\t\t\t\t\tconst endPath = [\n\t\t\t\t\t\t...getBlockParents( endClientId ),\n\t\t\t\t\t\tendClientId,\n\t\t\t\t\t];\n\t\t\t\t\tconst depth =\n\t\t\t\t\t\tMath.min( startPath.length, endPath.length ) - 1;\n\n\t\t\t\t\tmultiSelect( startPath[ depth ], endPath[ depth ] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onSelectionEnd() {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\t// Equivalent to attaching the listener once.\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onSelectionEnd );\n\t\t\t\t// The browser selection won't have updated yet at this point,\n\t\t\t\t// so wait until the next animation frame to get the browser\n\t\t\t\t// selection.\n\t\t\t\trafId = defaultView.requestAnimationFrame( () => {\n\t\t\t\t\tonSelectionChange( { isSelectionEnd: true } );\n\t\t\t\t\tstopMultiSelect();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tfunction onMouseLeave( { buttons } ) {\n\t\t\t\t// The primary button must be pressed to initiate selection.\n\t\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n\t\t\t\tif ( buttons !== 1 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelectionEnabled() || ! isBlockSelected( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tanchorElement = ownerDocument.activeElement;\n\t\t\t\tstartMultiSelect();\n\n\t\t\t\t// `onSelectionStart` is called after `mousedown` and\n\t\t\t\t// `mouseleave` (from a block). The selection ends when\n\t\t\t\t// `mouseup` happens anywhere in the window.\n\t\t\t\townerDocument.addEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\tdefaultView.addEventListener( 'mouseup', onSelectionEnd );\n\n\t\t\t\t// Removing the contenteditable attributes within the block\n\t\t\t\t// editor is essential for selection to work across editable\n\t\t\t\t// areas. The edible hosts are removed, allowing selection to be\n\t\t\t\t// extended outside the DOM element. `startMultiSelect` sets a\n\t\t\t\t// flag in the store so the rich text components are updated,\n\t\t\t\t// but the rerender may happen very slowly, especially in Safari\n\t\t\t\t// for the blocks that are asynchonously rendered. To ensure the\n\t\t\t\t// browser instantly removes the selection boundaries, we remove\n\t\t\t\t// the contenteditable attributes manually.\n\t\t\t\ttoggleRichText( node, false );\n\t\t\t}\n\n\t\t\tfunction onMouseDown( event ) {\n\t\t\t\t// The main button.\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n\t\t\t\tif ( ! isSelectionEnabled() || event.button !== 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( event.shiftKey ) {\n\t\t\t\t\tconst blockSelectionStart = getBlockSelectionStart();\n\t\t\t\t\t// By checking `blockSelectionStart` to be set, we handle the\n\t\t\t\t\t// case where we select a single block. We also have to check\n\t\t\t\t\t// the selectionEnd (clientId) not to be included in the\n\t\t\t\t\t// `blockSelectionStart`'s parents because the click event is\n\t\t\t\t\t// propagated.\n\t\t\t\t\tconst startParents = getBlockParents( blockSelectionStart );\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockSelectionStart &&\n\t\t\t\t\t\tblockSelectionStart !== clientId &&\n\t\t\t\t\t\t! startParents?.includes( clientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst startPath = [\n\t\t\t\t\t\t\t...startParents,\n\t\t\t\t\t\t\tblockSelectionStart,\n\t\t\t\t\t\t];\n\t\t\t\t\t\tconst endPath = [\n\t\t\t\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t];\n\t\t\t\t\t\tconst depth =\n\t\t\t\t\t\t\tMath.min( startPath.length, endPath.length ) - 1;\n\t\t\t\t\t\tconst start = startPath[ depth ];\n\t\t\t\t\t\tconst end = endPath[ depth ];\n\t\t\t\t\t\t// Handle the case of having selected a parent block and\n\t\t\t\t\t\t// then sfift+click on a child.\n\t\t\t\t\t\tif ( start !== end ) {\n\t\t\t\t\t\t\ttoggleRichText( node, false );\n\t\t\t\t\t\t\tmultiSelect( start, end );\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( hasMultiSelection() ) {\n\t\t\t\t\t// Allow user to escape out of a multi-selection to a\n\t\t\t\t\t// singular selection of a block via click. This is handled\n\t\t\t\t\t// here since focus handling excludes blocks when there is\n\t\t\t\t\t// multiselection, as focus can be incurred by starting a\n\t\t\t\t\t// multiselection (focus moved to first block's multi-\n\t\t\t\t\t// controls).\n\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\t\t\tnode.addEventListener( 'mouseleave', onMouseLeave );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\t\tnode.removeEventListener( 'mouseleave', onMouseLeave );\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onSelectionEnd );\n\t\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tstartMultiSelect,\n\t\t\tstopMultiSelect,\n\t\t\tmultiSelect,\n\t\t\tselectBlock,\n\t\t\tisSelectionEnabled,\n\t\t\tisBlockSelected,\n\t\t\tgetBlockParents,\n\t\t]\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/use-block-props/use-multi-selection.js"],"names":["setContentEditableWrapper","node","value","parentElement","closest","contentEditable","useMultiSelection","clientId","startMultiSelect","stopMultiSelect","multiSelect","selectBlock","blockEditorStore","isSelectionEnabled","isBlockSelected","getBlockParents","getBlockSelectionStart","hasMultiSelection","ownerDocument","defaultView","anchorElement","rafId","onSelectionChange","isSelectionEnd","selection","getSelection","rangeCount","isCollapsed","endClientId","focusNode","isSingularSelection","commonAncestorContainer","getRangeAt","contains","focus","startPath","endPath","depth","Math","min","length","onSelectionEnd","removeEventListener","requestAnimationFrame","onMouseLeave","buttons","activeElement","addEventListener","onMouseDown","event","button","shiftKey","blockSelectionStart","startParents","includes","start","end","preventDefault","cancelAnimationFrame"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useRefEffect } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../../store';\nimport { getBlockClientId } from '../../../utils/dom';\n\n/**\n * Sets the `contenteditable` wrapper element to `value`.\n *\n * @param {HTMLElement} node Block element.\n * @param {boolean} value `contentEditable` value (true or false)\n */\nexport function setContentEditableWrapper( node, value ) {\n\t// Since `closest` considers `node` as a candidate, use `parentElement`.\n\tnode.parentElement.closest( '[contenteditable]' ).contentEditable = value;\n}\n\n/**\n * Sets a multi-selection based on the native selection across blocks.\n *\n * @param {string} clientId Block client ID.\n */\nexport function useMultiSelection( clientId ) {\n\tconst {\n\t\tstartMultiSelect,\n\t\tstopMultiSelect,\n\t\tmultiSelect,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst {\n\t\tisSelectionEnabled,\n\t\tisBlockSelected,\n\t\tgetBlockParents,\n\t\tgetBlockSelectionStart,\n\t\thasMultiSelection,\n\t} = useSelect( blockEditorStore );\n\treturn useRefEffect(\n\t\t( node ) => {\n\t\t\tconst { ownerDocument } = node;\n\t\t\tconst { defaultView } = ownerDocument;\n\n\t\t\tlet anchorElement;\n\t\t\tlet rafId;\n\n\t\t\tfunction onSelectionChange( { isSelectionEnd } ) {\n\t\t\t\tconst selection = defaultView.getSelection();\n\n\t\t\t\t// If no selection is found, end multi selection and disable the\n\t\t\t\t// contentEditable wrapper.\n\t\t\t\tif ( ! selection.rangeCount || selection.isCollapsed ) {\n\t\t\t\t\tsetContentEditableWrapper( node, false );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst endClientId = getBlockClientId( selection.focusNode );\n\t\t\t\tconst isSingularSelection = clientId === endClientId;\n\n\t\t\t\tif ( isSingularSelection ) {\n\t\t\t\t\tselectBlock( clientId );\n\n\t\t\t\t\t// If the selection is complete (on mouse up), and no\n\t\t\t\t\t// multiple blocks have been selected, set focus back to the\n\t\t\t\t\t// anchor element. if the anchor element contains the\n\t\t\t\t\t// selection. Additionally, the contentEditable wrapper can\n\t\t\t\t\t// now be disabled again.\n\t\t\t\t\tif ( isSelectionEnd ) {\n\t\t\t\t\t\tsetContentEditableWrapper( node, false );\n\n\t\t\t\t\t\tif ( selection.rangeCount ) {\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\tcommonAncestorContainer,\n\t\t\t\t\t\t\t} = selection.getRangeAt( 0 );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tanchorElement.contains(\n\t\t\t\t\t\t\t\t\tcommonAncestorContainer\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\tanchorElement.focus();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst startPath = [\n\t\t\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t];\n\t\t\t\t\tconst endPath = [\n\t\t\t\t\t\t...getBlockParents( endClientId ),\n\t\t\t\t\t\tendClientId,\n\t\t\t\t\t];\n\t\t\t\t\tconst depth =\n\t\t\t\t\t\tMath.min( startPath.length, endPath.length ) - 1;\n\n\t\t\t\t\tmultiSelect( startPath[ depth ], endPath[ depth ] );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction onSelectionEnd() {\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\t// Equivalent to attaching the listener once.\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onSelectionEnd );\n\t\t\t\t// The browser selection won't have updated yet at this point,\n\t\t\t\t// so wait until the next animation frame to get the browser\n\t\t\t\t// selection.\n\t\t\t\trafId = defaultView.requestAnimationFrame( () => {\n\t\t\t\t\tonSelectionChange( { isSelectionEnd: true } );\n\t\t\t\t\tstopMultiSelect();\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\tfunction onMouseLeave( { buttons } ) {\n\t\t\t\t// The primary button must be pressed to initiate selection.\n\t\t\t\t// See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/buttons\n\t\t\t\tif ( buttons !== 1 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( ! isSelectionEnabled() || ! isBlockSelected( clientId ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tanchorElement = ownerDocument.activeElement;\n\t\t\t\tstartMultiSelect();\n\n\t\t\t\t// `onSelectionStart` is called after `mousedown` and\n\t\t\t\t// `mouseleave` (from a block). The selection ends when\n\t\t\t\t// `mouseup` happens anywhere in the window.\n\t\t\t\townerDocument.addEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\tdefaultView.addEventListener( 'mouseup', onSelectionEnd );\n\n\t\t\t\t// Allow cross contentEditable selection by temporarily making\n\t\t\t\t// all content editable. We can't rely on using the store and\n\t\t\t\t// React because re-rending happens too slowly. We need to be\n\t\t\t\t// able to select across instances immediately.\n\t\t\t\tsetContentEditableWrapper( node, true );\n\t\t\t}\n\n\t\t\tfunction onMouseDown( event ) {\n\t\t\t\t// The main button.\n\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n\t\t\t\tif ( ! isSelectionEnabled() || event.button !== 0 ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( event.shiftKey ) {\n\t\t\t\t\tconst blockSelectionStart = getBlockSelectionStart();\n\t\t\t\t\t// By checking `blockSelectionStart` to be set, we handle the\n\t\t\t\t\t// case where we select a single block. We also have to check\n\t\t\t\t\t// the selectionEnd (clientId) not to be included in the\n\t\t\t\t\t// `blockSelectionStart`'s parents because the click event is\n\t\t\t\t\t// propagated.\n\t\t\t\t\tconst startParents = getBlockParents( blockSelectionStart );\n\t\t\t\t\tif (\n\t\t\t\t\t\tblockSelectionStart &&\n\t\t\t\t\t\tblockSelectionStart !== clientId &&\n\t\t\t\t\t\t! startParents?.includes( clientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst startPath = [\n\t\t\t\t\t\t\t...startParents,\n\t\t\t\t\t\t\tblockSelectionStart,\n\t\t\t\t\t\t];\n\t\t\t\t\t\tconst endPath = [\n\t\t\t\t\t\t\t...getBlockParents( clientId ),\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t];\n\t\t\t\t\t\tconst depth =\n\t\t\t\t\t\t\tMath.min( startPath.length, endPath.length ) - 1;\n\t\t\t\t\t\tconst start = startPath[ depth ];\n\t\t\t\t\t\tconst end = endPath[ depth ];\n\t\t\t\t\t\t// Handle the case of having selected a parent block and\n\t\t\t\t\t\t// then shift+click on a child.\n\t\t\t\t\t\tif ( start !== end ) {\n\t\t\t\t\t\t\tsetContentEditableWrapper( node, true );\n\t\t\t\t\t\t\tmultiSelect( start, end );\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if ( hasMultiSelection() ) {\n\t\t\t\t\t// Allow user to escape out of a multi-selection to a\n\t\t\t\t\t// singular selection of a block via click. This is handled\n\t\t\t\t\t// here since focus handling excludes blocks when there is\n\t\t\t\t\t// multiselection, as focus can be incurred by starting a\n\t\t\t\t\t// multiselection (focus moved to first block's multi-\n\t\t\t\t\t// controls).\n\t\t\t\t\tselectBlock( clientId );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tnode.addEventListener( 'mousedown', onMouseDown );\n\t\t\tnode.addEventListener( 'mouseleave', onMouseLeave );\n\n\t\t\treturn () => {\n\t\t\t\tnode.removeEventListener( 'mousedown', onMouseDown );\n\t\t\t\tnode.removeEventListener( 'mouseleave', onMouseLeave );\n\t\t\t\townerDocument.removeEventListener(\n\t\t\t\t\t'selectionchange',\n\t\t\t\t\tonSelectionChange\n\t\t\t\t);\n\t\t\t\tdefaultView.removeEventListener( 'mouseup', onSelectionEnd );\n\t\t\t\tdefaultView.cancelAnimationFrame( rafId );\n\t\t\t};\n\t\t},\n\t\t[\n\t\t\tclientId,\n\t\t\tstartMultiSelect,\n\t\t\tstopMultiSelect,\n\t\t\tmultiSelect,\n\t\t\tselectBlock,\n\t\t\tisSelectionEnabled,\n\t\t\tisBlockSelected,\n\t\t\tgetBlockParents,\n\t\t]\n\t);\n}\n"]}
|
|
@@ -145,7 +145,7 @@ class BlockMediaUpdateProgress extends _element.Component {
|
|
|
145
145
|
this.mediaIdChanged(payload);
|
|
146
146
|
break;
|
|
147
147
|
}
|
|
148
|
-
} // ---- Block media save actions
|
|
148
|
+
} // ---- Block media save actions.
|
|
149
149
|
|
|
150
150
|
|
|
151
151
|
updateMediaSaveProgress(payload) {
|
|
@@ -219,7 +219,7 @@ class BlockMediaUpdateProgress extends _element.Component {
|
|
|
219
219
|
if (this.props.onMediaIdChanged) {
|
|
220
220
|
this.props.onMediaIdChanged(payload);
|
|
221
221
|
}
|
|
222
|
-
} // ---- Block media upload actions
|
|
222
|
+
} // ---- Block media upload actions.
|
|
223
223
|
|
|
224
224
|
|
|
225
225
|
updateMediaUploadProgress(payload) {
|
|
@@ -270,7 +270,7 @@ class BlockMediaUpdateProgress extends _element.Component {
|
|
|
270
270
|
}
|
|
271
271
|
|
|
272
272
|
addMediaUploadListener() {
|
|
273
|
-
//
|
|
273
|
+
// If we already have a subscription not worth doing it again.
|
|
274
274
|
if (this.subscriptionParentMediaUpload) {
|
|
275
275
|
return;
|
|
276
276
|
}
|
|
@@ -287,7 +287,7 @@ class BlockMediaUpdateProgress extends _element.Component {
|
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
addMediaSaveListener() {
|
|
290
|
-
//
|
|
290
|
+
// If we already have a subscription not worth doing it again.
|
|
291
291
|
if (this.subscriptionParentMediaSave) {
|
|
292
292
|
return;
|
|
293
293
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-media-update-progress/index.native.js"],"names":["MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","MEDIA_SAVE_STATE_SAVING","MEDIA_SAVE_STATE_SUCCEEDED","MEDIA_SAVE_STATE_FAILED","MEDIA_SAVE_STATE_RESET","MEDIA_SAVE_FINAL_STATE_RESULT","MEDIA_SAVE_MEDIAID_CHANGED","BlockMediaUpdateProgress","Component","constructor","props","state","progress","isSaveInProgress","isSaveFailed","isUploadInProgress","isUploadFailed","mediaUpload","bind","mediaSave","componentDidMount","addMediaUploadListener","addMediaSaveListener","componentWillUnmount","removeMediaUploadListener","removeMediaSaveListener","mediaIdContainedInMediaFiles","mediaId","mediaFiles","undefined","some","element","id","toString","payload","updateMediaUploadProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","mediaUploadStateReset","updateMediaSaveProgress","finishMediaSaveWithSuccess","finishMediaSaveWithFailure","mediaSaveStateReset","finalSaveResult","mediaIdChanged","setState","onUpdateMediaSaveProgress","onFinishMediaSaveWithSuccess","onFinishMediaSaveWithFailure","onMediaSaveStateReset","success","onFinalSaveResult","onMediaIdChanged","onUpdateMediaUploadProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","subscriptionParentMediaUpload","remove","subscriptionParentMediaSave","render","renderContent","showSpinner","retryMessageSave","retryMessageUpload","retryMessage","styles","mediaUploadProgress","progressBar"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tsubscribeMediaUpload,\n\tsubscribeMediaSave,\n} from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nexport const MEDIA_UPLOAD_STATE_UPLOADING = 1;\nexport const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;\nexport const MEDIA_UPLOAD_STATE_FAILED = 3;\nexport const MEDIA_UPLOAD_STATE_RESET = 4;\n\nexport const MEDIA_SAVE_STATE_SAVING = 5;\nexport const MEDIA_SAVE_STATE_SUCCEEDED = 6;\nexport const MEDIA_SAVE_STATE_FAILED = 7;\nexport const MEDIA_SAVE_STATE_RESET = 8;\nexport const MEDIA_SAVE_FINAL_STATE_RESULT = 9;\nexport const MEDIA_SAVE_MEDIAID_CHANGED = 10;\n\nexport class BlockMediaUpdateProgress extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tprogress: 0,\n\t\t\tisSaveInProgress: false,\n\t\t\tisSaveFailed: false,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t};\n\n\t\tthis.mediaUpload = this.mediaUpload.bind( this );\n\t\tthis.mediaSave = this.mediaSave.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.addMediaUploadListener();\n\t\tthis.addMediaSaveListener();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.removeMediaUploadListener();\n\t\tthis.removeMediaSaveListener();\n\t}\n\n\tmediaIdContainedInMediaFiles( mediaId, mediaFiles ) {\n\t\tif ( mediaId !== undefined && mediaFiles !== undefined ) {\n\t\t\treturn mediaFiles.some(\n\t\t\t\t( element ) => element.id === mediaId.toString()\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t}\n\n\tmediaUpload( payload ) {\n\t\tconst { mediaFiles } = this.props;\n\n\t\tif (\n\t\t\tthis.mediaIdContainedInMediaFiles( payload.mediaId, mediaFiles ) ===\n\t\t\tfalse\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_UPLOAD_STATE_UPLOADING:\n\t\t\t\tthis.updateMediaUploadProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaUploadWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_FAILED:\n\t\t\t\tthis.finishMediaUploadWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_RESET:\n\t\t\t\tthis.mediaUploadStateReset( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tmediaSave( payload ) {\n\t\tconst { mediaFiles } = this.props;\n\n\t\tif (\n\t\t\tthis.mediaIdContainedInMediaFiles( payload.mediaId, mediaFiles ) ===\n\t\t\tfalse\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_SAVE_STATE_SAVING:\n\t\t\t\tthis.updateMediaSaveProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaSaveWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_STATE_FAILED:\n\t\t\t\tthis.finishMediaSaveWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_STATE_RESET:\n\t\t\t\tthis.mediaSaveStateReset( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_FINAL_STATE_RESULT:\n\t\t\t\tthis.finalSaveResult( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_MEDIAID_CHANGED:\n\t\t\t\tthis.mediaIdChanged( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t// ---- Block media save actions\n\tupdateMediaSaveProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t\tisSaveInProgress: true,\n\t\t\tisSaveFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaSaveProgress ) {\n\t\t\tthis.props.onUpdateMediaSaveProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaSaveWithSuccess( payload ) {\n\t\tthis.setState( { isSaveInProgress: false } );\n\t\tif ( this.props.onFinishMediaSaveWithSuccess ) {\n\t\t\tthis.props.onFinishMediaSaveWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaSaveWithFailure( payload ) {\n\t\tthis.setState( { isSaveInProgress: false, isSaveFailed: true } );\n\t\tif ( this.props.onFinishMediaSaveWithFailure ) {\n\t\t\tthis.props.onFinishMediaSaveWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaSaveStateReset( payload ) {\n\t\tthis.setState( { isSaveInProgress: false, isSaveFailed: false } );\n\t\tif ( this.props.onMediaSaveStateReset ) {\n\t\t\tthis.props.onMediaSaveStateReset( payload );\n\t\t}\n\t}\n\n\tfinalSaveResult( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t\tisSaveInProgress: false,\n\t\t\tisSaveFailed: ! payload.success,\n\t\t} );\n\t\tif ( this.props.onFinalSaveResult ) {\n\t\t\tthis.props.onFinalSaveResult( payload );\n\t\t}\n\t}\n\n\tmediaIdChanged( payload ) {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t\tisSaveInProgress: false,\n\t\t\tisSaveFailed: false,\n\t\t} );\n\t\tif ( this.props.onMediaIdChanged ) {\n\t\t\tthis.props.onMediaIdChanged( payload );\n\t\t}\n\t}\n\n\t// ---- Block media upload actions\n\tupdateMediaUploadProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: true,\n\t\t\tisUploadFailed: false,\n\t\t\tisSaveInProgress: false,\n\t\t\tisSaveFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaUploadProgress ) {\n\t\t\tthis.props.onUpdateMediaUploadProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isSaveInProgress: false } );\n\t\tif ( this.props.onFinishMediaUploadWithSuccess ) {\n\t\t\tthis.props.onFinishMediaUploadWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: true } );\n\t\tif ( this.props.onFinishMediaUploadWithFailure ) {\n\t\t\tthis.props.onFinishMediaUploadWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaUploadStateReset( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: false } );\n\t\tif ( this.props.onMediaUploadStateReset ) {\n\t\t\tthis.props.onMediaUploadStateReset( payload );\n\t\t}\n\t}\n\n\taddMediaUploadListener() {\n\t\t//if we already have a subscription not worth doing it again\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaUpload = subscribeMediaUpload(\n\t\t\t( payload ) => {\n\t\t\t\tthis.mediaUpload( payload );\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveMediaUploadListener() {\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\tthis.subscriptionParentMediaUpload.remove();\n\t\t}\n\t}\n\n\taddMediaSaveListener() {\n\t\t//if we already have a subscription not worth doing it again\n\t\tif ( this.subscriptionParentMediaSave ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaSave = subscribeMediaSave( ( payload ) => {\n\t\t\tthis.mediaSave( payload );\n\t\t} );\n\t}\n\n\tremoveMediaSaveListener() {\n\t\tif ( this.subscriptionParentMediaSave ) {\n\t\t\tthis.subscriptionParentMediaSave.remove();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { renderContent = () => null } = this.props;\n\t\tconst {\n\t\t\tisUploadInProgress,\n\t\t\tisUploadFailed,\n\t\t\tisSaveInProgress,\n\t\t\tisSaveFailed,\n\t\t} = this.state;\n\t\tconst showSpinner =\n\t\t\tthis.state.isUploadInProgress || this.state.isSaveInProgress;\n\t\tconst progress = this.state.progress * 100;\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\tconst retryMessageSave = __(\n\t\t\t'Failed to save files.\\nPlease tap for options.'\n\t\t);\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\tconst retryMessageUpload = __(\n\t\t\t'Failed to upload files.\\nPlease tap for options.'\n\t\t);\n\t\tlet retryMessage = retryMessageSave;\n\t\tif ( isUploadFailed ) {\n\t\t\tretryMessage = retryMessageUpload;\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={ styles.mediaUploadProgress } pointerEvents=\"box-none\">\n\t\t\t\t{ showSpinner && (\n\t\t\t\t\t<View style={ styles.progressBar }>\n\t\t\t\t\t\t<Spinner progress={ progress } testID=\"spinner\" />\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t\t{ renderContent( {\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tisSaveInProgress,\n\t\t\t\t\tisSaveFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default BlockMediaUpdateProgress;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-media-update-progress/index.native.js"],"names":["MEDIA_UPLOAD_STATE_UPLOADING","MEDIA_UPLOAD_STATE_SUCCEEDED","MEDIA_UPLOAD_STATE_FAILED","MEDIA_UPLOAD_STATE_RESET","MEDIA_SAVE_STATE_SAVING","MEDIA_SAVE_STATE_SUCCEEDED","MEDIA_SAVE_STATE_FAILED","MEDIA_SAVE_STATE_RESET","MEDIA_SAVE_FINAL_STATE_RESULT","MEDIA_SAVE_MEDIAID_CHANGED","BlockMediaUpdateProgress","Component","constructor","props","state","progress","isSaveInProgress","isSaveFailed","isUploadInProgress","isUploadFailed","mediaUpload","bind","mediaSave","componentDidMount","addMediaUploadListener","addMediaSaveListener","componentWillUnmount","removeMediaUploadListener","removeMediaSaveListener","mediaIdContainedInMediaFiles","mediaId","mediaFiles","undefined","some","element","id","toString","payload","updateMediaUploadProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","mediaUploadStateReset","updateMediaSaveProgress","finishMediaSaveWithSuccess","finishMediaSaveWithFailure","mediaSaveStateReset","finalSaveResult","mediaIdChanged","setState","onUpdateMediaSaveProgress","onFinishMediaSaveWithSuccess","onFinishMediaSaveWithFailure","onMediaSaveStateReset","success","onFinalSaveResult","onMediaIdChanged","onUpdateMediaUploadProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","subscriptionParentMediaUpload","remove","subscriptionParentMediaSave","render","renderContent","showSpinner","retryMessageSave","retryMessageUpload","retryMessage","styles","mediaUploadProgress","progressBar"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tsubscribeMediaUpload,\n\tsubscribeMediaSave,\n} from '@wordpress/react-native-bridge';\n\n/**\n * Internal dependencies\n */\nimport styles from './styles.scss';\n\nexport const MEDIA_UPLOAD_STATE_UPLOADING = 1;\nexport const MEDIA_UPLOAD_STATE_SUCCEEDED = 2;\nexport const MEDIA_UPLOAD_STATE_FAILED = 3;\nexport const MEDIA_UPLOAD_STATE_RESET = 4;\n\nexport const MEDIA_SAVE_STATE_SAVING = 5;\nexport const MEDIA_SAVE_STATE_SUCCEEDED = 6;\nexport const MEDIA_SAVE_STATE_FAILED = 7;\nexport const MEDIA_SAVE_STATE_RESET = 8;\nexport const MEDIA_SAVE_FINAL_STATE_RESULT = 9;\nexport const MEDIA_SAVE_MEDIAID_CHANGED = 10;\n\nexport class BlockMediaUpdateProgress extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tprogress: 0,\n\t\t\tisSaveInProgress: false,\n\t\t\tisSaveFailed: false,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t};\n\n\t\tthis.mediaUpload = this.mediaUpload.bind( this );\n\t\tthis.mediaSave = this.mediaSave.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.addMediaUploadListener();\n\t\tthis.addMediaSaveListener();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.removeMediaUploadListener();\n\t\tthis.removeMediaSaveListener();\n\t}\n\n\tmediaIdContainedInMediaFiles( mediaId, mediaFiles ) {\n\t\tif ( mediaId !== undefined && mediaFiles !== undefined ) {\n\t\t\treturn mediaFiles.some(\n\t\t\t\t( element ) => element.id === mediaId.toString()\n\t\t\t);\n\t\t}\n\t\treturn false;\n\t}\n\n\tmediaUpload( payload ) {\n\t\tconst { mediaFiles } = this.props;\n\n\t\tif (\n\t\t\tthis.mediaIdContainedInMediaFiles( payload.mediaId, mediaFiles ) ===\n\t\t\tfalse\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_UPLOAD_STATE_UPLOADING:\n\t\t\t\tthis.updateMediaUploadProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaUploadWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_FAILED:\n\t\t\t\tthis.finishMediaUploadWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_UPLOAD_STATE_RESET:\n\t\t\t\tthis.mediaUploadStateReset( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tmediaSave( payload ) {\n\t\tconst { mediaFiles } = this.props;\n\n\t\tif (\n\t\t\tthis.mediaIdContainedInMediaFiles( payload.mediaId, mediaFiles ) ===\n\t\t\tfalse\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tswitch ( payload.state ) {\n\t\t\tcase MEDIA_SAVE_STATE_SAVING:\n\t\t\t\tthis.updateMediaSaveProgress( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_STATE_SUCCEEDED:\n\t\t\t\tthis.finishMediaSaveWithSuccess( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_STATE_FAILED:\n\t\t\t\tthis.finishMediaSaveWithFailure( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_STATE_RESET:\n\t\t\t\tthis.mediaSaveStateReset( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_FINAL_STATE_RESULT:\n\t\t\t\tthis.finalSaveResult( payload );\n\t\t\t\tbreak;\n\t\t\tcase MEDIA_SAVE_MEDIAID_CHANGED:\n\t\t\t\tthis.mediaIdChanged( payload );\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t// ---- Block media save actions.\n\tupdateMediaSaveProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t\tisSaveInProgress: true,\n\t\t\tisSaveFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaSaveProgress ) {\n\t\t\tthis.props.onUpdateMediaSaveProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaSaveWithSuccess( payload ) {\n\t\tthis.setState( { isSaveInProgress: false } );\n\t\tif ( this.props.onFinishMediaSaveWithSuccess ) {\n\t\t\tthis.props.onFinishMediaSaveWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaSaveWithFailure( payload ) {\n\t\tthis.setState( { isSaveInProgress: false, isSaveFailed: true } );\n\t\tif ( this.props.onFinishMediaSaveWithFailure ) {\n\t\t\tthis.props.onFinishMediaSaveWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaSaveStateReset( payload ) {\n\t\tthis.setState( { isSaveInProgress: false, isSaveFailed: false } );\n\t\tif ( this.props.onMediaSaveStateReset ) {\n\t\t\tthis.props.onMediaSaveStateReset( payload );\n\t\t}\n\t}\n\n\tfinalSaveResult( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t\tisSaveInProgress: false,\n\t\t\tisSaveFailed: ! payload.success,\n\t\t} );\n\t\tif ( this.props.onFinalSaveResult ) {\n\t\t\tthis.props.onFinalSaveResult( payload );\n\t\t}\n\t}\n\n\tmediaIdChanged( payload ) {\n\t\tthis.setState( {\n\t\t\tisUploadInProgress: false,\n\t\t\tisUploadFailed: false,\n\t\t\tisSaveInProgress: false,\n\t\t\tisSaveFailed: false,\n\t\t} );\n\t\tif ( this.props.onMediaIdChanged ) {\n\t\t\tthis.props.onMediaIdChanged( payload );\n\t\t}\n\t}\n\n\t// ---- Block media upload actions.\n\tupdateMediaUploadProgress( payload ) {\n\t\tthis.setState( {\n\t\t\tprogress: payload.progress,\n\t\t\tisUploadInProgress: true,\n\t\t\tisUploadFailed: false,\n\t\t\tisSaveInProgress: false,\n\t\t\tisSaveFailed: false,\n\t\t} );\n\t\tif ( this.props.onUpdateMediaUploadProgress ) {\n\t\t\tthis.props.onUpdateMediaUploadProgress( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isSaveInProgress: false } );\n\t\tif ( this.props.onFinishMediaUploadWithSuccess ) {\n\t\t\tthis.props.onFinishMediaUploadWithSuccess( payload );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: true } );\n\t\tif ( this.props.onFinishMediaUploadWithFailure ) {\n\t\t\tthis.props.onFinishMediaUploadWithFailure( payload );\n\t\t}\n\t}\n\n\tmediaUploadStateReset( payload ) {\n\t\tthis.setState( { isUploadInProgress: false, isUploadFailed: false } );\n\t\tif ( this.props.onMediaUploadStateReset ) {\n\t\t\tthis.props.onMediaUploadStateReset( payload );\n\t\t}\n\t}\n\n\taddMediaUploadListener() {\n\t\t// If we already have a subscription not worth doing it again.\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaUpload = subscribeMediaUpload(\n\t\t\t( payload ) => {\n\t\t\t\tthis.mediaUpload( payload );\n\t\t\t}\n\t\t);\n\t}\n\n\tremoveMediaUploadListener() {\n\t\tif ( this.subscriptionParentMediaUpload ) {\n\t\t\tthis.subscriptionParentMediaUpload.remove();\n\t\t}\n\t}\n\n\taddMediaSaveListener() {\n\t\t// If we already have a subscription not worth doing it again.\n\t\tif ( this.subscriptionParentMediaSave ) {\n\t\t\treturn;\n\t\t}\n\t\tthis.subscriptionParentMediaSave = subscribeMediaSave( ( payload ) => {\n\t\t\tthis.mediaSave( payload );\n\t\t} );\n\t}\n\n\tremoveMediaSaveListener() {\n\t\tif ( this.subscriptionParentMediaSave ) {\n\t\t\tthis.subscriptionParentMediaSave.remove();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { renderContent = () => null } = this.props;\n\t\tconst {\n\t\t\tisUploadInProgress,\n\t\t\tisUploadFailed,\n\t\t\tisSaveInProgress,\n\t\t\tisSaveFailed,\n\t\t} = this.state;\n\t\tconst showSpinner =\n\t\t\tthis.state.isUploadInProgress || this.state.isSaveInProgress;\n\t\tconst progress = this.state.progress * 100;\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\tconst retryMessageSave = __(\n\t\t\t'Failed to save files.\\nPlease tap for options.'\n\t\t);\n\t\t// eslint-disable-next-line @wordpress/i18n-no-collapsible-whitespace\n\t\tconst retryMessageUpload = __(\n\t\t\t'Failed to upload files.\\nPlease tap for options.'\n\t\t);\n\t\tlet retryMessage = retryMessageSave;\n\t\tif ( isUploadFailed ) {\n\t\t\tretryMessage = retryMessageUpload;\n\t\t}\n\n\t\treturn (\n\t\t\t<View style={ styles.mediaUploadProgress } pointerEvents=\"box-none\">\n\t\t\t\t{ showSpinner && (\n\t\t\t\t\t<View style={ styles.progressBar }>\n\t\t\t\t\t\t<Spinner progress={ progress } testID=\"spinner\" />\n\t\t\t\t\t</View>\n\t\t\t\t) }\n\t\t\t\t{ renderContent( {\n\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\tisUploadFailed,\n\t\t\t\t\tisSaveInProgress,\n\t\t\t\t\tisSaveFailed,\n\t\t\t\t\tretryMessage,\n\t\t\t\t} ) }\n\t\t\t</View>\n\t\t);\n\t}\n}\n\nexport default BlockMediaUpdateProgress;\n"]}
|
|
@@ -50,7 +50,7 @@ var _blockTransformationsMenu = _interopRequireDefault(require("../block-switche
|
|
|
50
50
|
*/
|
|
51
51
|
const BlockActionsMenu = _ref => {
|
|
52
52
|
let {
|
|
53
|
-
// Select
|
|
53
|
+
// Select.
|
|
54
54
|
blockTitle,
|
|
55
55
|
canInsertBlockType,
|
|
56
56
|
getBlocksByClientId,
|
|
@@ -64,7 +64,7 @@ const BlockActionsMenu = _ref => {
|
|
|
64
64
|
rootClientId,
|
|
65
65
|
selectedBlockClientId,
|
|
66
66
|
selectedBlockPossibleTransformations,
|
|
67
|
-
// Dispatch
|
|
67
|
+
// Dispatch.
|
|
68
68
|
createSuccessNotice,
|
|
69
69
|
convertToRegularBlocks,
|
|
70
70
|
duplicateBlock,
|
|
@@ -73,7 +73,7 @@ const BlockActionsMenu = _ref => {
|
|
|
73
73
|
openGeneralSidebar,
|
|
74
74
|
pasteBlock,
|
|
75
75
|
removeBlocks,
|
|
76
|
-
// Passed in
|
|
76
|
+
// Passed in.
|
|
77
77
|
anchorNodeRef,
|
|
78
78
|
isStackedHorizontally,
|
|
79
79
|
onDelete,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/block-actions-menu.native.js"],"names":["BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","blockActionsMenuPickerRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","HTML","isPasteEnabled","name","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","allOptions","settings","id","label","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","cutButton","pasteButton","onPasteBlock","duplicateButton","title","raw","options","length","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","filter","Boolean","accessibilityHint","Platform","OS","getAnchor","undefined","hint","select","clientIds","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","blockEditorStore","normalizedClientIds","block","blockName","blockType","firstClientId","blockOrder","firstIndex","lastIndex","innerBlocks","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","selectedBlock","coreStore","getEntityRecord","ref","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlocks","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","canReplaceBlock","insertedBlock","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\nimport { partial, first, castArray, last, compact, every } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\n\nconst BlockActionsMenu = ( {\n\t// Select\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy block' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel: __( 'Convert to regular blocks' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: name of the reusable block */\n\t\t\t\t\t\t__( '%s converted to regular blocks' ),\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = compact( [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tisReusableBlockType && allOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t] );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\tdisabled={ true }\n\t\t\t/>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = castArray( clientIds );\n\t\tconst block = getBlock( normalizedClientIds );\n\t\tconst blockName = getBlockName( normalizedClientIds );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst firstClientId = first( normalizedClientIds );\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex( last( normalizedClientIds ) );\n\n\t\tconst innerBlocks = getBlocksByClientId( clientIds );\n\n\t\tconst canDuplicate = every( innerBlocks, ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = first( getSelectedBlockClientIds() );\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? first( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( [ selectedBlock ], rootClientId )\n\t\t\t: [];\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: firstIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientIds, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlocks,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst {\n\t\t\t\t__experimentalConvertBlockToStatic: convertBlockToStatic,\n\t\t\t} = dispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( clientIds );\n\t\t\t\t},\n\t\t\t\tonMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),\n\t\t\t\tonMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlocks( clientIds, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/block-actions-menu.native.js"],"names":["BlockActionsMenu","blockTitle","canInsertBlockType","getBlocksByClientId","isEmptyDefaultBlock","isLocked","canDuplicate","isFirst","isLast","isReusableBlockType","reusableBlock","rootClientId","selectedBlockClientId","selectedBlockPossibleTransformations","createSuccessNotice","convertToRegularBlocks","duplicateBlock","onMoveDown","onMoveUp","openGeneralSidebar","pasteBlock","removeBlocks","anchorNodeRef","isStackedHorizontally","onDelete","wrapBlockMover","wrapBlockSettings","clipboard","setCurrentClipboard","blockActionsMenuPickerRef","blockTransformationMenuPickerRef","moversOptions","keys","clipboardBlock","HTML","isPasteEnabled","name","actionTitle","backward","backwardButtonTitle","forward","forwardButtonTitle","allOptions","settings","id","label","value","onSelect","backwardButton","disabled","forwardButton","delete","separated","transformButton","current","presentPicker","copyButton","serializedBlock","cutButton","pasteButton","onPasteBlock","duplicateButton","title","raw","options","length","moreHorizontalMobile","onPickerSelect","selectedItem","find","item","onPickerPresent","disabledButtonIndices","map","option","index","filter","Boolean","accessibilityHint","Platform","OS","getAnchor","undefined","hint","select","clientIds","getBlockIndex","getBlockRootClientId","getBlockOrder","getBlockName","getBlockTransformItems","getBlock","getSelectedBlockClientIds","getTemplateLock","blockEditorStore","normalizedClientIds","block","blockName","blockType","firstClientId","blockOrder","firstIndex","lastIndex","innerBlocks","innerBlock","isDefaultBlock","isEmptyContent","attributes","content","isExactlyOneBlock","selectedBlock","coreStore","getEntityRecord","ref","currentIndex","dispatch","moveBlocksDown","moveBlocksUp","duplicateBlocks","insertBlock","replaceBlocks","clearSelectedBlock","getBlockSelectionEnd","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","reusableBlocksStore","setImmediate","canReplaceBlock","insertedBlock","withInstanceId"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, findNodeHandle } from 'react-native';\nimport { partial, first, castArray, last, compact, every } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport {\n\tgetClipboard,\n\tsetClipboard,\n\tToolbarButton,\n\tPicker,\n} from '@wordpress/components';\nimport {\n\tgetBlockType,\n\tgetDefaultBlockName,\n\thasBlockSupport,\n\tserialize,\n\trawHandler,\n\tcreateBlock,\n\tisUnmodifiedDefaultBlock,\n\tisReusableBlock,\n} from '@wordpress/blocks';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { withInstanceId, compose } from '@wordpress/compose';\nimport { moreHorizontalMobile } from '@wordpress/icons';\nimport { useRef, useState } from '@wordpress/element';\nimport { store as noticesStore } from '@wordpress/notices';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { getMoversSetup } from '../block-mover/mover-description';\nimport { store as blockEditorStore } from '../../store';\nimport BlockTransformationsMenu from '../block-switcher/block-transformations-menu';\n\nconst BlockActionsMenu = ( {\n\t// Select.\n\tblockTitle,\n\tcanInsertBlockType,\n\tgetBlocksByClientId,\n\tisEmptyDefaultBlock,\n\tisLocked,\n\tcanDuplicate,\n\tisFirst,\n\tisLast,\n\tisReusableBlockType,\n\treusableBlock,\n\trootClientId,\n\tselectedBlockClientId,\n\tselectedBlockPossibleTransformations,\n\t// Dispatch.\n\tcreateSuccessNotice,\n\tconvertToRegularBlocks,\n\tduplicateBlock,\n\tonMoveDown,\n\tonMoveUp,\n\topenGeneralSidebar,\n\tpasteBlock,\n\tremoveBlocks,\n\t// Passed in.\n\tanchorNodeRef,\n\tisStackedHorizontally,\n\tonDelete,\n\twrapBlockMover,\n\twrapBlockSettings,\n} ) => {\n\tconst [ clipboard, setCurrentClipboard ] = useState( getClipboard() );\n\tconst blockActionsMenuPickerRef = useRef();\n\tconst blockTransformationMenuPickerRef = useRef();\n\tconst moversOptions = { keys: [ 'icon', 'actionTitle' ] };\n\tconst clipboardBlock = clipboard && rawHandler( { HTML: clipboard } )[ 0 ];\n\tconst isPasteEnabled =\n\t\tclipboardBlock &&\n\t\tcanInsertBlockType( clipboardBlock.name, rootClientId );\n\n\tconst {\n\t\tactionTitle: {\n\t\t\tbackward: backwardButtonTitle,\n\t\t\tforward: forwardButtonTitle,\n\t\t},\n\t} = getMoversSetup( isStackedHorizontally, moversOptions );\n\n\tconst allOptions = {\n\t\tsettings: {\n\t\t\tid: 'settingsOption',\n\t\t\tlabel: __( 'Block settings' ),\n\t\t\tvalue: 'settingsOption',\n\t\t\tonSelect: openGeneralSidebar,\n\t\t},\n\t\tbackwardButton: {\n\t\t\tid: 'backwardButtonOption',\n\t\t\tlabel: backwardButtonTitle,\n\t\t\tvalue: 'backwardButtonOption',\n\t\t\tdisabled: isFirst,\n\t\t\tonSelect: onMoveUp,\n\t\t},\n\t\tforwardButton: {\n\t\t\tid: 'forwardButtonOption',\n\t\t\tlabel: forwardButtonTitle,\n\t\t\tvalue: 'forwardButtonOption',\n\t\t\tdisabled: isLast,\n\t\t\tonSelect: onMoveDown,\n\t\t},\n\t\tdelete: {\n\t\t\tid: 'deleteOption',\n\t\t\tlabel: __( 'Remove block' ),\n\t\t\tvalue: 'deleteOption',\n\t\t\tseparated: true,\n\t\t\tdisabled: isEmptyDefaultBlock,\n\t\t\tonSelect: () => {\n\t\t\t\tonDelete();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is removed.\n\t\t\t\t\t__( 'Block removed' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\ttransformButton: {\n\t\t\tid: 'transformButtonOption',\n\t\t\tlabel: __( 'Transform block…' ),\n\t\t\tvalue: 'transformButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tif ( blockTransformationMenuPickerRef.current ) {\n\t\t\t\t\tblockTransformationMenuPickerRef.current.presentPicker();\n\t\t\t\t}\n\t\t\t},\n\t\t},\n\t\tcopyButton: {\n\t\t\tid: 'copyButtonOption',\n\t\t\tlabel: __( 'Copy block' ),\n\t\t\tvalue: 'copyButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tconst serializedBlock = serialize(\n\t\t\t\t\tgetBlocksByClientId( selectedBlockClientId )\n\t\t\t\t);\n\t\t\t\tsetCurrentClipboard( serializedBlock );\n\t\t\t\tsetClipboard( serializedBlock );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is copied.\n\t\t\t\t\t__( 'Block copied' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tcutButton: {\n\t\t\tid: 'cutButtonOption',\n\t\t\tlabel: __( 'Cut block' ),\n\t\t\tvalue: 'cutButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tsetClipboard(\n\t\t\t\t\tserialize( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t\t);\n\t\t\t\tremoveBlocks( selectedBlockClientId );\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is cut.\n\t\t\t\t\t__( 'Block cut' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tpasteButton: {\n\t\t\tid: 'pasteButtonOption',\n\t\t\tlabel: __( 'Paste block after' ),\n\t\t\tvalue: 'pasteButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tonPasteBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is pasted.\n\t\t\t\t\t__( 'Block pasted' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tduplicateButton: {\n\t\t\tid: 'duplicateButtonOption',\n\t\t\tlabel: __( 'Duplicate block' ),\n\t\t\tvalue: 'duplicateButtonOption',\n\t\t\tonSelect: () => {\n\t\t\t\tduplicateBlock();\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\t// translators: displayed right after the block is duplicated.\n\t\t\t\t\t__( 'Block duplicated' )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tconvertToRegularBlocks: {\n\t\t\tid: 'convertToRegularBlocksOption',\n\t\t\tlabel: __( 'Convert to regular blocks' ),\n\t\t\tvalue: 'convertToRegularBlocksOption',\n\t\t\tonSelect: () => {\n\t\t\t\tcreateSuccessNotice(\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t/* translators: %s: name of the reusable block */\n\t\t\t\t\t\t__( '%s converted to regular blocks' ),\n\t\t\t\t\t\treusableBlock?.title?.raw || blockTitle\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tconvertToRegularBlocks();\n\t\t\t},\n\t\t},\n\t};\n\n\tconst options = compact( [\n\t\twrapBlockMover && allOptions.backwardButton,\n\t\twrapBlockMover && allOptions.forwardButton,\n\t\twrapBlockSettings && allOptions.settings,\n\t\t! isLocked &&\n\t\t\tselectedBlockPossibleTransformations.length &&\n\t\t\tallOptions.transformButton,\n\t\tcanDuplicate && allOptions.copyButton,\n\t\tcanDuplicate && allOptions.cutButton,\n\t\tcanDuplicate && isPasteEnabled && allOptions.pasteButton,\n\t\tcanDuplicate && allOptions.duplicateButton,\n\t\tisReusableBlockType && allOptions.convertToRegularBlocks,\n\t\t! isLocked && allOptions.delete,\n\t] );\n\n\t// End early if there are no options to show.\n\tif ( ! options.length ) {\n\t\treturn (\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\tdisabled={ true }\n\t\t\t/>\n\t\t);\n\t}\n\n\tfunction onPasteBlock() {\n\t\tif ( ! clipboard ) {\n\t\t\treturn;\n\t\t}\n\n\t\tpasteBlock( rawHandler( { HTML: clipboard } )[ 0 ] );\n\t}\n\n\tfunction onPickerSelect( value ) {\n\t\tconst selectedItem = options.find( ( item ) => item.value === value );\n\t\tselectedItem.onSelect();\n\t}\n\n\tfunction onPickerPresent() {\n\t\tif ( blockActionsMenuPickerRef.current ) {\n\t\t\tblockActionsMenuPickerRef.current.presentPicker();\n\t\t}\n\t}\n\n\tconst disabledButtonIndices = options\n\t\t.map( ( option, index ) => option.disabled && index + 1 )\n\t\t.filter( Boolean );\n\n\tconst accessibilityHint =\n\t\tPlatform.OS === 'ios'\n\t\t\t? __( 'Double tap to open Action Sheet with available options' )\n\t\t\t: __( 'Double tap to open Bottom Sheet with available options' );\n\n\tconst getAnchor = () =>\n\t\tanchorNodeRef ? findNodeHandle( anchorNodeRef ) : undefined;\n\n\treturn (\n\t\t<>\n\t\t\t<ToolbarButton\n\t\t\t\ttitle={ __( 'Open Block Actions Menu' ) }\n\t\t\t\tonClick={ onPickerPresent }\n\t\t\t\ticon={ moreHorizontalMobile }\n\t\t\t\textraProps={ {\n\t\t\t\t\thint: accessibilityHint,\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<Picker\n\t\t\t\tref={ blockActionsMenuPickerRef }\n\t\t\t\toptions={ options }\n\t\t\t\tonChange={ onPickerSelect }\n\t\t\t\tdestructiveButtonIndex={ options.length }\n\t\t\t\tdisabledButtonIndices={ disabledButtonIndices }\n\t\t\t\thideCancelButton={ Platform.OS !== 'ios' }\n\t\t\t\tleftAlign={ true }\n\t\t\t\tgetAnchor={ getAnchor }\n\t\t\t\t// translators: %s: block title e.g: \"Paragraph\".\n\t\t\t\ttitle={ sprintf( __( '%s block options' ), blockTitle ) }\n\t\t\t/>\n\t\t\t<BlockTransformationsMenu\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t\tblockTitle={ blockTitle }\n\t\t\t\tpickerRef={ blockTransformationMenuPickerRef }\n\t\t\t\tpossibleTransformations={ selectedBlockPossibleTransformations }\n\t\t\t\tselectedBlock={ getBlocksByClientId( selectedBlockClientId ) }\n\t\t\t\tselectedBlockClientId={ selectedBlockClientId }\n\t\t\t/>\n\t\t</>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientIds } ) => {\n\t\tconst {\n\t\t\tgetBlockIndex,\n\t\t\tgetBlockRootClientId,\n\t\t\tgetBlockOrder,\n\t\t\tgetBlockName,\n\t\t\tgetBlockTransformItems,\n\t\t\tgetBlock,\n\t\t\tgetBlocksByClientId,\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tcanInsertBlockType,\n\t\t\tgetTemplateLock,\n\t\t} = select( blockEditorStore );\n\t\tconst normalizedClientIds = castArray( clientIds );\n\t\tconst block = getBlock( normalizedClientIds );\n\t\tconst blockName = getBlockName( normalizedClientIds );\n\t\tconst blockType = getBlockType( blockName );\n\t\tconst blockTitle = blockType?.title;\n\t\tconst firstClientId = first( normalizedClientIds );\n\t\tconst rootClientId = getBlockRootClientId( firstClientId );\n\t\tconst blockOrder = getBlockOrder( rootClientId );\n\n\t\tconst firstIndex = getBlockIndex( firstClientId );\n\t\tconst lastIndex = getBlockIndex( last( normalizedClientIds ) );\n\n\t\tconst innerBlocks = getBlocksByClientId( clientIds );\n\n\t\tconst canDuplicate = every( innerBlocks, ( innerBlock ) => {\n\t\t\treturn (\n\t\t\t\t!! innerBlock &&\n\t\t\t\thasBlockSupport( innerBlock.name, 'multiple', true ) &&\n\t\t\t\tcanInsertBlockType( innerBlock.name, rootClientId )\n\t\t\t);\n\t\t} );\n\n\t\tconst isDefaultBlock = blockName === getDefaultBlockName();\n\t\tconst isEmptyContent = block?.attributes.content === '';\n\t\tconst isExactlyOneBlock = blockOrder.length === 1;\n\t\tconst isEmptyDefaultBlock =\n\t\t\tisExactlyOneBlock && isDefaultBlock && isEmptyContent;\n\t\tconst isLocked = !! getTemplateLock( rootClientId );\n\n\t\tconst selectedBlockClientId = first( getSelectedBlockClientIds() );\n\t\tconst selectedBlock = selectedBlockClientId\n\t\t\t? first( getBlocksByClientId( selectedBlockClientId ) )\n\t\t\t: undefined;\n\t\tconst selectedBlockPossibleTransformations = selectedBlock\n\t\t\t? getBlockTransformItems( [ selectedBlock ], rootClientId )\n\t\t\t: [];\n\n\t\tconst isReusableBlockType = block ? isReusableBlock( block ) : false;\n\t\tconst reusableBlock = isReusableBlockType\n\t\t\t? select( coreStore ).getEntityRecord(\n\t\t\t\t\t'postType',\n\t\t\t\t\t'wp_block',\n\t\t\t\t\tblock?.attributes.ref\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn {\n\t\t\tblockTitle,\n\t\t\tcanInsertBlockType,\n\t\t\tcurrentIndex: firstIndex,\n\t\t\tgetBlocksByClientId,\n\t\t\tisEmptyDefaultBlock,\n\t\t\tisLocked,\n\t\t\tcanDuplicate,\n\t\t\tisFirst: firstIndex === 0,\n\t\t\tisLast: lastIndex === blockOrder.length - 1,\n\t\t\tisReusableBlockType,\n\t\t\treusableBlock,\n\t\t\trootClientId,\n\t\t\tselectedBlockClientId,\n\t\t\tselectedBlockPossibleTransformations,\n\t\t};\n\t} ),\n\twithDispatch(\n\t\t(\n\t\t\tdispatch,\n\t\t\t{ clientIds, rootClientId, currentIndex, selectedBlockClientId },\n\t\t\t{ select }\n\t\t) => {\n\t\t\tconst {\n\t\t\t\tmoveBlocksDown,\n\t\t\t\tmoveBlocksUp,\n\t\t\t\tduplicateBlocks,\n\t\t\t\tremoveBlocks,\n\t\t\t\tinsertBlock,\n\t\t\t\treplaceBlocks,\n\t\t\t\tclearSelectedBlock,\n\t\t\t} = dispatch( blockEditorStore );\n\t\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\t\tconst { getBlockSelectionEnd, getBlock } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst { createSuccessNotice } = dispatch( noticesStore );\n\n\t\t\tconst {\n\t\t\t\t__experimentalConvertBlockToStatic: convertBlockToStatic,\n\t\t\t} = dispatch( reusableBlocksStore );\n\n\t\t\treturn {\n\t\t\t\tcreateSuccessNotice,\n\t\t\t\tconvertToRegularBlocks() {\n\t\t\t\t\tclearSelectedBlock();\n\t\t\t\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t\t\t\t// to prevent issues related to undo/redo actions.\n\t\t\t\t\tsetImmediate( () =>\n\t\t\t\t\t\tconvertBlockToStatic( selectedBlockClientId )\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t\tduplicateBlock() {\n\t\t\t\t\treturn duplicateBlocks( clientIds );\n\t\t\t\t},\n\t\t\t\tonMoveDown: partial( moveBlocksDown, clientIds, rootClientId ),\n\t\t\t\tonMoveUp: partial( moveBlocksUp, clientIds, rootClientId ),\n\t\t\t\topenGeneralSidebar: () =>\n\t\t\t\t\topenGeneralSidebar( 'edit-post/block' ),\n\t\t\t\tpasteBlock: ( clipboardBlock ) => {\n\t\t\t\t\tconst canReplaceBlock = isUnmodifiedDefaultBlock(\n\t\t\t\t\t\tgetBlock( getBlockSelectionEnd() )\n\t\t\t\t\t);\n\n\t\t\t\t\tif ( ! canReplaceBlock ) {\n\t\t\t\t\t\tconst insertedBlock = createBlock(\n\t\t\t\t\t\t\tclipboardBlock.name,\n\t\t\t\t\t\t\tclipboardBlock.attributes,\n\t\t\t\t\t\t\tclipboardBlock.innerBlocks\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tinsertBlock(\n\t\t\t\t\t\t\tinsertedBlock,\n\t\t\t\t\t\t\tcurrentIndex + 1,\n\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treplaceBlocks( clientIds, clipboardBlock );\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tremoveBlocks,\n\t\t\t};\n\t\t}\n\t),\n\twithInstanceId\n)( BlockActionsMenu );\n"]}
|
|
@@ -92,7 +92,7 @@ const BlockMobileToolbar = _ref => {
|
|
|
92
92
|
}), (0, _element.createElement)(_blockSettings.BlockSettingsButton.Slot, null, function () {
|
|
93
93
|
let fills = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [null];
|
|
94
94
|
return (// The purpose of BlockSettingsButtonFill component is only to provide a way
|
|
95
|
-
// to pass data upstream from the slot rendering
|
|
95
|
+
// to pass data upstream from the slot rendering.
|
|
96
96
|
(0, _element.createElement)(BlockSettingsButtonFill, {
|
|
97
97
|
fillsLength: fills.length,
|
|
98
98
|
onChangeFillsLength: setFillsLength
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/index.native.js"],"names":["BREAKPOINTS","wrapSettings","wrapMover","BlockMobileToolbar","clientId","onDelete","isStackedHorizontally","blockWidth","anchorNodeRef","isFullWidth","fillsLength","setFillsLength","appenderWidth","setAppenderWidth","spacingValue","styles","toolbar","marginLeft","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","wrapBlockSettings","wrapBlockMover","BlockSettingsButtonFill","fillProps","onChangeFillsLength","children","toolbarFullWidth","spacer","fills","length","select","getBlockIndex","blockEditorStore","order","dispatch","rootClientId","removeBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockMover from '../block-mover';\nimport BlockActionsMenu from './block-actions-menu';\nimport { BlockSettingsButton } from '../block-settings';\nimport { store as blockEditorStore } from '../../store';\n\n// Defined breakpoints are used to get a point when\n// `settings` and `mover` controls should be wrapped into `BlockActionsMenu`\n// and accessed through `BottomSheet`(Android)/`ActionSheet`(iOS).\nconst BREAKPOINTS = {\n\twrapSettings: 65,\n\twrapMover: 150,\n};\nconst BlockMobileToolbar = ( {\n\tclientId,\n\tonDelete,\n\tisStackedHorizontally,\n\tblockWidth,\n\tanchorNodeRef,\n\tisFullWidth,\n} ) => {\n\tconst [ fillsLength, setFillsLength ] = useState( null );\n\tconst [ appenderWidth, setAppenderWidth ] = useState( 0 );\n\tconst spacingValue = styles.toolbar.marginLeft * 2;\n\n\tfunction onLayout( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( layoutWidth !== appenderWidth ) {\n\t\t\tsetAppenderWidth( nativeEvent.layout.width );\n\t\t}\n\t}\n\n\tconst wrapBlockSettings =\n\t\tblockWidth < BREAKPOINTS.wrapSettings ||\n\t\tappenderWidth - spacingValue < BREAKPOINTS.wrapSettings;\n\tconst wrapBlockMover =\n\t\tblockWidth <= BREAKPOINTS.wrapMover ||\n\t\tappenderWidth - spacingValue <= BREAKPOINTS.wrapMover;\n\n\tconst BlockSettingsButtonFill = ( fillProps ) => {\n\t\tuseEffect(\n\t\t\t() => fillProps.onChangeFillsLength( fillProps.fillsLength ),\n\t\t\t[ fillProps.fillsLength ]\n\t\t);\n\t\treturn fillProps.children ?? null;\n\t};\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [ styles.toolbar, isFullWidth && styles.toolbarFullWidth ] }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t{ ! wrapBlockMover && (\n\t\t\t\t<BlockMover\n\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<View style={ styles.spacer } />\n\n\t\t\t<BlockSettingsButton.Slot>\n\t\t\t\t{ /* Render only one settings icon even if we have more than one fill - need for hooks with controls */ }\n\t\t\t\t{ ( fills = [ null ] ) => (\n\t\t\t\t\t// The purpose of BlockSettingsButtonFill component is only to provide a way\n\t\t\t\t\t// to pass data upstream from the slot rendering
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-mobile-toolbar/index.native.js"],"names":["BREAKPOINTS","wrapSettings","wrapMover","BlockMobileToolbar","clientId","onDelete","isStackedHorizontally","blockWidth","anchorNodeRef","isFullWidth","fillsLength","setFillsLength","appenderWidth","setAppenderWidth","spacingValue","styles","toolbar","marginLeft","onLayout","nativeEvent","layout","layoutWidth","Math","floor","width","wrapBlockSettings","wrapBlockMover","BlockSettingsButtonFill","fillProps","onChangeFillsLength","children","toolbarFullWidth","spacer","fills","length","select","getBlockIndex","blockEditorStore","order","dispatch","rootClientId","removeBlock"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { compose } from '@wordpress/compose';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\nimport BlockMover from '../block-mover';\nimport BlockActionsMenu from './block-actions-menu';\nimport { BlockSettingsButton } from '../block-settings';\nimport { store as blockEditorStore } from '../../store';\n\n// Defined breakpoints are used to get a point when\n// `settings` and `mover` controls should be wrapped into `BlockActionsMenu`\n// and accessed through `BottomSheet`(Android)/`ActionSheet`(iOS).\nconst BREAKPOINTS = {\n\twrapSettings: 65,\n\twrapMover: 150,\n};\nconst BlockMobileToolbar = ( {\n\tclientId,\n\tonDelete,\n\tisStackedHorizontally,\n\tblockWidth,\n\tanchorNodeRef,\n\tisFullWidth,\n} ) => {\n\tconst [ fillsLength, setFillsLength ] = useState( null );\n\tconst [ appenderWidth, setAppenderWidth ] = useState( 0 );\n\tconst spacingValue = styles.toolbar.marginLeft * 2;\n\n\tfunction onLayout( { nativeEvent } ) {\n\t\tconst { layout } = nativeEvent;\n\t\tconst layoutWidth = Math.floor( layout.width );\n\t\tif ( layoutWidth !== appenderWidth ) {\n\t\t\tsetAppenderWidth( nativeEvent.layout.width );\n\t\t}\n\t}\n\n\tconst wrapBlockSettings =\n\t\tblockWidth < BREAKPOINTS.wrapSettings ||\n\t\tappenderWidth - spacingValue < BREAKPOINTS.wrapSettings;\n\tconst wrapBlockMover =\n\t\tblockWidth <= BREAKPOINTS.wrapMover ||\n\t\tappenderWidth - spacingValue <= BREAKPOINTS.wrapMover;\n\n\tconst BlockSettingsButtonFill = ( fillProps ) => {\n\t\tuseEffect(\n\t\t\t() => fillProps.onChangeFillsLength( fillProps.fillsLength ),\n\t\t\t[ fillProps.fillsLength ]\n\t\t);\n\t\treturn fillProps.children ?? null;\n\t};\n\n\treturn (\n\t\t<View\n\t\t\tstyle={ [ styles.toolbar, isFullWidth && styles.toolbarFullWidth ] }\n\t\t\tonLayout={ onLayout }\n\t\t>\n\t\t\t{ ! wrapBlockMover && (\n\t\t\t\t<BlockMover\n\t\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<View style={ styles.spacer } />\n\n\t\t\t<BlockSettingsButton.Slot>\n\t\t\t\t{ /* Render only one settings icon even if we have more than one fill - need for hooks with controls. */ }\n\t\t\t\t{ ( fills = [ null ] ) => (\n\t\t\t\t\t// The purpose of BlockSettingsButtonFill component is only to provide a way\n\t\t\t\t\t// to pass data upstream from the slot rendering.\n\t\t\t\t\t<BlockSettingsButtonFill\n\t\t\t\t\t\tfillsLength={ fills.length }\n\t\t\t\t\t\tonChangeFillsLength={ setFillsLength }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ wrapBlockSettings ? null : fills[ 0 ] }\n\t\t\t\t\t</BlockSettingsButtonFill>\n\t\t\t\t) }\n\t\t\t</BlockSettingsButton.Slot>\n\n\t\t\t<BlockActionsMenu\n\t\t\t\tclientIds={ [ clientId ] }\n\t\t\t\twrapBlockMover={ wrapBlockMover }\n\t\t\t\twrapBlockSettings={ wrapBlockSettings && fillsLength }\n\t\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\t\tonDelete={ onDelete }\n\t\t\t\tanchorNodeRef={ anchorNodeRef }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default compose(\n\twithSelect( ( select, { clientId } ) => {\n\t\tconst { getBlockIndex } = select( blockEditorStore );\n\n\t\treturn {\n\t\t\torder: getBlockIndex( clientId ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, { clientId, rootClientId, onDelete } ) => {\n\t\tconst { removeBlock } = dispatch( blockEditorStore );\n\t\treturn {\n\t\t\tonDelete:\n\t\t\t\tonDelete || ( () => removeBlock( clientId, rootClientId ) ),\n\t\t};\n\t} )\n)( BlockMobileToolbar );\n"]}
|
|
@@ -59,7 +59,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
if (dir > 0 && !isLast) {
|
|
62
|
-
//
|
|
62
|
+
// Moving down.
|
|
63
63
|
const movementDirection = getMovementDirection('down');
|
|
64
64
|
|
|
65
65
|
if (movementDirection === 'down') {
|
|
@@ -79,7 +79,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
if (dir > 0 && isLast) {
|
|
82
|
-
//
|
|
82
|
+
// Moving down, and is the last item.
|
|
83
83
|
const movementDirection = getMovementDirection('down');
|
|
84
84
|
|
|
85
85
|
if (movementDirection === 'down') {
|
|
@@ -99,7 +99,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
if (dir < 0 && !isFirst) {
|
|
102
|
-
//
|
|
102
|
+
// Moving up.
|
|
103
103
|
const movementDirection = getMovementDirection('up');
|
|
104
104
|
|
|
105
105
|
if (movementDirection === 'up') {
|
|
@@ -119,7 +119,7 @@ function getBlockMoverDescription(selectedCount, type, firstIndex, isFirst, isLa
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
if (dir < 0 && isFirst) {
|
|
122
|
-
//
|
|
122
|
+
// Moving up, and is the first item.
|
|
123
123
|
const movementDirection = getMovementDirection('up');
|
|
124
124
|
|
|
125
125
|
if (movementDirection === 'up') {
|