@wordpress/block-editor 7.0.2 → 8.0.1
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 +11 -0
- package/README.md +45 -1
- package/build/components/autocomplete/index.js +1 -1
- package/build/components/autocomplete/index.js.map +1 -1
- package/build/components/block-actions/index.js +8 -4
- package/build/components/block-actions/index.js.map +1 -1
- package/build/components/block-alignment-control/ui.js +61 -14
- package/build/components/block-alignment-control/ui.js.map +1 -1
- package/build/components/block-alignment-control/use-available-alignments.js +25 -3
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-controls/fill.js +2 -2
- package/build/components/block-controls/fill.js.map +1 -1
- package/build/components/block-controls/hook.js +3 -3
- package/build/components/block-controls/hook.js.map +1 -1
- package/build/components/block-icon/index.js +5 -1
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-icon/index.native.js +9 -11
- package/build/components/block-icon/index.native.js.map +1 -1
- package/build/components/block-inspector/index.js +8 -0
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-html.js +5 -0
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block.js +12 -5
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +4 -3
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +1 -1
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/use-multi-selection.js +21 -8
- package/build/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
- package/build/components/block-list-appender/index.js +9 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-mover/index.js +4 -4
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-mover/index.native.js +4 -4
- package/build/components/block-mover/index.native.js.map +1 -1
- package/build/components/block-navigation/dropdown.js +0 -1
- package/build/components/block-navigation/dropdown.js.map +1 -1
- package/build/components/block-patterns-list/index.js +1 -8
- package/build/components/block-patterns-list/index.js.map +1 -1
- package/build/components/block-preview/auto.js +1 -1
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-settings/container.native.js +5 -2
- package/build/components/block-settings/container.native.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +26 -5
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +10 -3
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-styles/preview.native.js +2 -2
- package/build/components/block-styles/preview.native.js.map +1 -1
- package/build/components/block-switcher/block-styles-menu.js +1 -1
- package/build/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build/components/block-switcher/index.js +10 -3
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +3 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-tools/block-popover.js +2 -4
- package/build/components/block-tools/block-popover.js.map +1 -1
- package/build/components/block-tools/index.js +4 -1
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +96 -7
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js +17 -8
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors/utils.js +11 -3
- package/build/components/colors/utils.js.map +1 -1
- package/build/components/colors-gradients/control.js +22 -57
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/panel-color-gradient-settings.js +83 -7
- package/build/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build/components/contrast-checker/index.js +18 -12
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/copy-handler/index.js +9 -3
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/default-block-appender/index.js +2 -2
- package/build/components/default-block-appender/index.js.map +1 -1
- package/build/components/duotone-control/index.js +41 -39
- package/build/components/duotone-control/index.js.map +1 -1
- package/build/components/editor-styles/index.js +9 -3
- package/build/components/editor-styles/index.js.map +1 -1
- package/build/components/font-appearance-control/index.js +32 -21
- package/build/components/font-appearance-control/index.js.map +1 -1
- package/build/components/iframe/index.js +6 -4
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/image-editor/aspect-ratio-dropdown.js +126 -0
- package/build/components/image-editor/aspect-ratio-dropdown.js.map +1 -0
- package/build/components/image-editor/constants.js +16 -0
- package/build/components/image-editor/constants.js.map +1 -0
- package/build/components/image-editor/context.js +59 -0
- package/build/components/image-editor/context.js.map +1 -0
- package/build/components/image-editor/cropper.js +83 -0
- package/build/components/image-editor/cropper.js.map +1 -0
- package/build/components/image-editor/form-controls.js +36 -0
- package/build/components/image-editor/form-controls.js.map +1 -0
- package/build/components/image-editor/index.js +60 -0
- package/build/components/image-editor/index.js.map +1 -0
- package/build/components/image-editor/rotation-button.js +37 -0
- package/build/components/image-editor/rotation-button.js.map +1 -0
- package/build/components/image-editor/use-save-image.js +84 -0
- package/build/components/image-editor/use-save-image.js.map +1 -0
- package/build/components/image-editor/use-transform-image.js +135 -0
- package/build/components/image-editor/use-transform-image.js.map +1 -0
- package/build/components/image-editor/zoom-dropdown.js +55 -0
- package/build/components/image-editor/zoom-dropdown.js.map +1 -0
- package/build/components/image-size-control/use-dimension-handler.js +14 -3
- package/build/components/image-size-control/use-dimension-handler.js.map +1 -1
- package/build/components/index.js +36 -20
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +2 -2
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/button-block-appender.js +11 -1
- package/build/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build/components/inner-blocks/index.js +8 -5
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +4 -3
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +24 -13
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/block-patterns-explorer/explorer.js +62 -0
- package/build/components/inserter/block-patterns-explorer/explorer.js.map +1 -0
- package/build/components/inserter/block-patterns-explorer/patterns-list.js +111 -0
- package/build/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -0
- package/build/components/inserter/block-patterns-explorer/sidebar.js +78 -0
- package/build/components/inserter/block-patterns-explorer/sidebar.js.map +1 -0
- package/build/components/inserter/block-patterns-tab.js +74 -35
- package/build/components/inserter/block-patterns-tab.js.map +1 -1
- package/build/components/inserter/block-types-tab.native.js +3 -11
- package/build/components/inserter/block-types-tab.native.js.map +1 -1
- package/build/components/inserter/hooks/use-block-type-impressions.native.js +4 -7
- package/build/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build/components/inserter/hooks/use-clipboard-block.native.js +5 -4
- package/build/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build/components/inserter/index.js +12 -4
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/index.native.js +1 -7
- package/build/components/inserter/index.native.js.map +1 -1
- package/build/components/inserter/library.js +2 -0
- package/build/components/inserter/library.js.map +1 -1
- package/build/components/inserter/menu.js +2 -1
- package/build/components/inserter/menu.js.map +1 -1
- package/build/components/inserter/menu.native.js +11 -15
- package/build/components/inserter/menu.native.js.map +1 -1
- package/build/components/inserter/pattern-panel.js +19 -10
- package/build/components/inserter/pattern-panel.js.map +1 -1
- package/build/components/inserter/preview-panel.js +1 -1
- package/build/components/inserter/preview-panel.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -1
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/reusable-blocks-tab.native.js +5 -6
- package/build/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build/components/inserter/search-results.native.js +6 -11
- package/build/components/inserter/search-results.native.js.map +1 -1
- package/build/components/inserter/utils.native.js +44 -0
- package/build/components/inserter/utils.native.js.map +1 -0
- package/build/components/inspector-controls/block-support-slot-container.js +28 -0
- package/build/components/inspector-controls/block-support-slot-container.js.map +1 -0
- package/build/components/inspector-controls/block-support-tools-panel.js +78 -0
- package/build/components/inspector-controls/block-support-tools-panel.js.map +1 -0
- package/build/components/inspector-controls/fill.js +16 -1
- package/build/components/inspector-controls/fill.js.map +1 -1
- package/build/components/inspector-controls/groups.js +5 -1
- package/build/components/inspector-controls/groups.js.map +1 -1
- package/build/components/inspector-controls/slot.js +15 -0
- package/build/components/inspector-controls/slot.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +9 -6
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/link-control/index.js +93 -34
- package/build/components/link-control/index.js.map +1 -1
- package/build/components/link-control/link-preview.js +45 -15
- package/build/components/link-control/link-preview.js.map +1 -1
- package/build/components/link-control/search-input.js +25 -7
- package/build/components/link-control/search-input.js.map +1 -1
- package/build/components/list-view/block-contents.js +1 -20
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block.js +54 -69
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +102 -76
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +45 -20
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/leaf.js +2 -2
- package/build/components/list-view/leaf.js.map +1 -1
- package/build/components/list-view/list-item.js +3 -2
- package/build/components/list-view/list-item.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +13 -54
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/media-placeholder/index.js +29 -20
- package/build/components/media-placeholder/index.js.map +1 -1
- package/build/components/media-replace-flow/index.js +5 -3
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/navigable-toolbar/index.js +1 -4
- package/build/components/navigable-toolbar/index.js.map +1 -1
- package/build/components/observe-typing/index.js +1 -1
- package/build/components/observe-typing/index.js.map +1 -1
- package/build/components/plain-text/index.native.js +30 -1
- package/build/components/plain-text/index.native.js.map +1 -1
- package/build/components/rich-text/embed-handler-picker.native.js +66 -0
- package/build/components/rich-text/embed-handler-picker.native.js.map +1 -0
- package/build/components/rich-text/format-edit.js +28 -2
- package/build/components/rich-text/format-edit.js.map +1 -1
- package/build/components/rich-text/format-toolbar/index.js +32 -11
- package/build/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build/components/rich-text/index.js +5 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +41 -2
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/use-paste-handler.js +28 -9
- package/build/components/rich-text/use-paste-handler.js.map +1 -1
- package/build/components/rich-text/utils.js +22 -0
- package/build/components/rich-text/utils.js.map +1 -1
- package/build/components/typewriter/index.js +1 -1
- package/build/components/typewriter/index.js.map +1 -1
- package/build/components/url-input/index.js +25 -11
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-moving-animation/index.js +13 -10
- package/build/components/use-moving-animation/index.js.map +1 -1
- package/build/components/use-on-block-drop/index.js +2 -1
- package/build/components/use-on-block-drop/index.js.map +1 -1
- package/build/components/use-setting/index.js +48 -9
- package/build/components/use-setting/index.js.map +1 -1
- package/build/components/writing-flow/use-multi-selection.js +6 -0
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-tab-nav.js +10 -1
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/align.js +13 -10
- 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 +5 -5
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color-panel.js +5 -2
- package/build/hooks/color-panel.js.map +1 -1
- package/build/hooks/color.js +1 -1
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/dimensions.js +23 -27
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +60 -16
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-appearance.js +49 -6
- package/build/hooks/font-appearance.js.map +1 -1
- package/build/hooks/font-family.js +123 -32
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +51 -9
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +2 -1
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/index.js +10 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/index.native.js +8 -0
- package/build/hooks/index.native.js.map +1 -1
- package/build/hooks/letter-spacing.js +44 -7
- package/build/hooks/letter-spacing.js.map +1 -1
- package/build/hooks/line-height.js +45 -8
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/lock.js +43 -0
- package/build/hooks/lock.js.map +1 -0
- package/build/hooks/margin.js +1 -1
- package/build/hooks/margin.js.map +1 -1
- package/build/hooks/padding.js +1 -1
- package/build/hooks/padding.js.map +1 -1
- package/build/hooks/style.js +7 -4
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/text-decoration.js +42 -6
- package/build/hooks/text-decoration.js.map +1 -1
- package/build/hooks/text-transform.js +42 -6
- package/build/hooks/text-transform.js.map +1 -1
- package/build/hooks/typography.js +108 -8
- package/build/hooks/typography.js.map +1 -1
- package/build/hooks/use-cached-truthy.js +29 -0
- package/build/hooks/use-cached-truthy.js.map +1 -0
- package/build/index.js +7 -0
- package/build/index.js.map +1 -1
- package/build/layouts/flex.js +160 -34
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +75 -8
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +323 -265
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.native.js +13 -1
- package/build/store/defaults.native.js.map +1 -1
- package/build/store/index.js +1 -3
- package/build/store/index.js.map +1 -1
- package/build/store/reducer.js +33 -22
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +172 -38
- package/build/store/selectors.js.map +1 -1
- package/build/utils/index.js +10 -1
- package/build/utils/index.js.map +1 -1
- package/build/utils/parse-css-unit-to-px.js +51 -1
- package/build/utils/parse-css-unit-to-px.js.map +1 -1
- package/build/utils/transform-styles/transforms/wrap.js +16 -0
- package/build/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-module/components/autocomplete/index.js +2 -2
- package/build-module/components/autocomplete/index.js.map +1 -1
- package/build-module/components/block-actions/index.js +8 -4
- package/build-module/components/block-actions/index.js.map +1 -1
- package/build-module/components/block-alignment-control/ui.js +64 -17
- package/build-module/components/block-alignment-control/ui.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +25 -3
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-controls/fill.js +2 -2
- package/build-module/components/block-controls/fill.js.map +1 -1
- package/build-module/components/block-controls/hook.js +3 -3
- package/build-module/components/block-controls/hook.js.map +1 -1
- package/build-module/components/block-icon/index.js +5 -1
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-icon/index.native.js +10 -11
- package/build-module/components/block-icon/index.native.js.map +1 -1
- package/build-module/components/block-inspector/index.js +8 -0
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-html.js +5 -0
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block.js +12 -5
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +4 -3
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +1 -1
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +21 -8
- package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +9 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-mover/index.js +4 -4
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-mover/index.native.js +4 -4
- package/build-module/components/block-mover/index.native.js.map +1 -1
- package/build-module/components/block-navigation/dropdown.js +0 -1
- package/build-module/components/block-navigation/dropdown.js.map +1 -1
- package/build-module/components/block-patterns-list/index.js +1 -6
- package/build-module/components/block-patterns-list/index.js.map +1 -1
- package/build-module/components/block-preview/auto.js +1 -1
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-settings/container.native.js +6 -3
- package/build-module/components/block-settings/container.native.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +28 -7
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +10 -3
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-styles/preview.native.js +2 -2
- package/build-module/components/block-styles/preview.native.js.map +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js +1 -1
- package/build-module/components/block-switcher/block-styles-menu.js.map +1 -1
- package/build-module/components/block-switcher/index.js +10 -3
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +3 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-tools/block-popover.js +3 -5
- package/build-module/components/block-tools/block-popover.js.map +1 -1
- package/build-module/components/block-tools/index.js +4 -1
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +96 -8
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +16 -9
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors/utils.js +9 -3
- package/build-module/components/colors/utils.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +26 -63
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js +84 -7
- package/build-module/components/colors-gradients/panel-color-gradient-settings.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +13 -10
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/copy-handler/index.js +9 -3
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/default-block-appender/index.js +2 -2
- package/build-module/components/default-block-appender/index.js.map +1 -1
- package/build-module/components/duotone-control/index.js +43 -39
- package/build-module/components/duotone-control/index.js.map +1 -1
- package/build-module/components/editor-styles/index.js +7 -3
- package/build-module/components/editor-styles/index.js.map +1 -1
- package/build-module/components/font-appearance-control/index.js +28 -21
- package/build-module/components/font-appearance-control/index.js.map +1 -1
- package/build-module/components/iframe/index.js +6 -4
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/image-editor/aspect-ratio-dropdown.js +115 -0
- package/build-module/components/image-editor/aspect-ratio-dropdown.js.map +1 -0
- package/build-module/components/image-editor/constants.js +7 -0
- package/build-module/components/image-editor/constants.js.map +1 -0
- package/build-module/components/image-editor/context.js +44 -0
- package/build-module/components/image-editor/context.js.map +1 -0
- package/build-module/components/image-editor/cropper.js +69 -0
- package/build-module/components/image-editor/cropper.js.map +1 -0
- package/build-module/components/image-editor/form-controls.js +26 -0
- package/build-module/components/image-editor/form-controls.js.map +1 -0
- package/build-module/components/image-editor/index.js +37 -0
- package/build-module/components/image-editor/index.js.map +1 -0
- package/build-module/components/image-editor/rotation-button.js +26 -0
- package/build-module/components/image-editor/rotation-button.js.map +1 -0
- package/build-module/components/image-editor/use-save-image.js +70 -0
- package/build-module/components/image-editor/use-save-image.js.map +1 -0
- package/build-module/components/image-editor/use-transform-image.js +127 -0
- package/build-module/components/image-editor/use-transform-image.js.map +1 -0
- package/build-module/components/image-editor/zoom-dropdown.js +43 -0
- package/build-module/components/image-editor/zoom-dropdown.js.map +1 -0
- package/build-module/components/image-size-control/use-dimension-handler.js +13 -2
- package/build-module/components/image-size-control/use-dimension-handler.js.map +1 -1
- package/build-module/components/index.js +4 -3
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/button-block-appender.js +10 -1
- package/build-module/components/inner-blocks/button-block-appender.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +9 -6
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +5 -4
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +24 -13
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/block-patterns-explorer/explorer.js +50 -0
- package/build-module/components/inserter/block-patterns-explorer/explorer.js.map +1 -0
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js +92 -0
- package/build-module/components/inserter/block-patterns-explorer/patterns-list.js.map +1 -0
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js +69 -0
- package/build-module/components/inserter/block-patterns-explorer/sidebar.js.map +1 -0
- package/build-module/components/inserter/block-patterns-tab.js +75 -36
- package/build-module/components/inserter/block-patterns-tab.js.map +1 -1
- package/build-module/components/inserter/block-types-tab.native.js +2 -10
- package/build-module/components/inserter/block-types-tab.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js +4 -7
- package/build-module/components/inserter/hooks/use-block-type-impressions.native.js.map +1 -1
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js +5 -4
- package/build-module/components/inserter/hooks/use-clipboard-block.native.js.map +1 -1
- package/build-module/components/inserter/index.js +12 -4
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/index.native.js +1 -7
- package/build-module/components/inserter/index.native.js.map +1 -1
- package/build-module/components/inserter/library.js +2 -0
- package/build-module/components/inserter/library.js.map +1 -1
- package/build-module/components/inserter/menu.js +2 -1
- package/build-module/components/inserter/menu.js.map +1 -1
- package/build-module/components/inserter/menu.native.js +10 -15
- package/build-module/components/inserter/menu.native.js.map +1 -1
- package/build-module/components/inserter/pattern-panel.js +21 -13
- package/build-module/components/inserter/pattern-panel.js.map +1 -1
- package/build-module/components/inserter/preview-panel.js +1 -1
- package/build-module/components/inserter/preview-panel.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -1
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/reusable-blocks-tab.native.js +4 -5
- package/build-module/components/inserter/reusable-blocks-tab.native.js.map +1 -1
- package/build-module/components/inserter/search-results.native.js +5 -10
- package/build-module/components/inserter/search-results.native.js.map +1 -1
- package/build-module/components/inserter/utils.native.js +35 -0
- package/build-module/components/inserter/utils.native.js.map +1 -0
- package/build-module/components/inspector-controls/block-support-slot-container.js +18 -0
- package/build-module/components/inspector-controls/block-support-slot-container.js.map +1 -0
- package/build-module/components/inspector-controls/block-support-tools-panel.js +67 -0
- package/build-module/components/inspector-controls/block-support-tools-panel.js.map +1 -0
- package/build-module/components/inspector-controls/fill.js +16 -2
- package/build-module/components/inspector-controls/fill.js.map +1 -1
- package/build-module/components/inspector-controls/groups.js +5 -1
- package/build-module/components/inspector-controls/groups.js.map +1 -1
- package/build-module/components/inspector-controls/slot.js +13 -0
- package/build-module/components/inspector-controls/slot.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +9 -6
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/link-control/index.js +93 -35
- package/build-module/components/link-control/index.js.map +1 -1
- package/build-module/components/link-control/link-preview.js +46 -17
- package/build-module/components/link-control/link-preview.js.map +1 -1
- package/build-module/components/link-control/search-input.js +24 -7
- package/build-module/components/link-control/search-input.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +1 -18
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block.js +56 -71
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +102 -78
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +48 -23
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/leaf.js +2 -2
- package/build-module/components/list-view/leaf.js.map +1 -1
- package/build-module/components/list-view/list-item.js +3 -2
- package/build-module/components/list-view/list-item.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +13 -54
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/media-placeholder/index.js +29 -20
- package/build-module/components/media-placeholder/index.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +5 -3
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/navigable-toolbar/index.js +1 -4
- package/build-module/components/navigable-toolbar/index.js.map +1 -1
- package/build-module/components/observe-typing/index.js +1 -1
- package/build-module/components/observe-typing/index.js.map +1 -1
- package/build-module/components/plain-text/index.native.js +29 -2
- package/build-module/components/plain-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/embed-handler-picker.native.js +54 -0
- package/build-module/components/rich-text/embed-handler-picker.native.js.map +1 -0
- package/build-module/components/rich-text/format-edit.js +28 -3
- package/build-module/components/rich-text/format-edit.js.map +1 -1
- package/build-module/components/rich-text/format-toolbar/index.js +29 -11
- package/build-module/components/rich-text/format-toolbar/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +4 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +41 -3
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/use-paste-handler.js +28 -9
- package/build-module/components/rich-text/use-paste-handler.js.map +1 -1
- package/build-module/components/rich-text/utils.js +20 -0
- package/build-module/components/rich-text/utils.js.map +1 -1
- package/build-module/components/typewriter/index.js +1 -1
- package/build-module/components/typewriter/index.js.map +1 -1
- package/build-module/components/url-input/index.js +25 -11
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-moving-animation/index.js +13 -10
- package/build-module/components/use-moving-animation/index.js.map +1 -1
- package/build-module/components/use-on-block-drop/index.js +3 -2
- package/build-module/components/use-on-block-drop/index.js.map +1 -1
- package/build-module/components/use-setting/index.js +48 -9
- package/build-module/components/use-setting/index.js.map +1 -1
- package/build-module/components/writing-flow/use-multi-selection.js +6 -0
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-tab-nav.js +10 -1
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/align.js +13 -10
- 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 +5 -5
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color-panel.js +6 -3
- package/build-module/hooks/color-panel.js.map +1 -1
- package/build-module/hooks/color.js +1 -1
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/dimensions.js +24 -27
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +59 -16
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-appearance.js +45 -6
- package/build-module/hooks/font-appearance.js.map +1 -1
- package/build-module/hooks/font-family.js +117 -33
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +47 -9
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +2 -1
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/index.js +2 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/index.native.js +1 -0
- package/build-module/hooks/index.native.js.map +1 -1
- package/build-module/hooks/letter-spacing.js +40 -7
- package/build-module/hooks/letter-spacing.js.map +1 -1
- package/build-module/hooks/line-height.js +41 -8
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/lock.js +33 -0
- package/build-module/hooks/lock.js.map +1 -0
- package/build-module/hooks/margin.js +1 -1
- package/build-module/hooks/margin.js.map +1 -1
- package/build-module/hooks/padding.js +1 -1
- package/build-module/hooks/padding.js.map +1 -1
- package/build-module/hooks/style.js +7 -4
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/text-decoration.js +38 -6
- package/build-module/hooks/text-decoration.js.map +1 -1
- package/build-module/hooks/text-transform.js +38 -6
- package/build-module/hooks/text-transform.js.map +1 -1
- package/build-module/hooks/typography.js +117 -17
- package/build-module/hooks/typography.js.map +1 -1
- package/build-module/hooks/use-cached-truthy.js +21 -0
- package/build-module/hooks/use-cached-truthy.js.map +1 -0
- package/build-module/index.js +1 -1
- package/build-module/index.js.map +1 -1
- package/build-module/layouts/flex.js +163 -38
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +74 -8
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +286 -241
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.native.js +12 -1
- package/build-module/store/defaults.native.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 +33 -22
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +160 -34
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/index.js +1 -0
- package/build-module/utils/index.js.map +1 -1
- package/build-module/utils/parse-css-unit-to-px.js +48 -1
- package/build-module/utils/parse-css-unit-to-px.js.map +1 -1
- package/build-module/utils/transform-styles/transforms/wrap.js +16 -0
- package/build-module/utils/transform-styles/transforms/wrap.js.map +1 -1
- package/build-style/style-rtl.css +267 -144
- package/build-style/style.css +267 -144
- package/package.json +28 -27
- package/src/components/autocomplete/index.js +5 -2
- package/src/components/block-actions/index.js +9 -5
- package/src/components/block-alignment-control/style.scss +5 -0
- package/src/components/block-alignment-control/test/__snapshots__/index.js.snap +15 -1
- package/src/components/block-alignment-control/test/index.native.js +37 -0
- package/src/components/block-alignment-control/ui.js +98 -27
- package/src/components/block-alignment-control/use-available-alignments.js +31 -10
- package/src/components/block-controls/fill.js +5 -2
- package/src/components/block-controls/hook.js +3 -3
- package/src/components/block-draggable/style.scss +19 -4
- package/src/components/block-icon/index.js +4 -1
- package/src/components/block-icon/index.native.js +10 -16
- package/src/components/block-inspector/index.js +10 -0
- package/src/components/block-list/block-html.js +5 -0
- package/src/components/block-list/block.js +11 -3
- package/src/components/block-list/block.native.js +5 -3
- package/src/components/block-list/index.native.js +1 -1
- package/src/components/block-list/style.scss +15 -0
- package/src/components/block-list/use-block-props/use-multi-selection.js +27 -7
- package/src/components/block-list-appender/index.js +8 -0
- package/src/components/block-mover/index.js +4 -4
- package/src/components/block-mover/index.native.js +4 -4
- package/src/components/block-mover/test/__snapshots__/index.native.js.snap +10 -6
- package/src/components/block-mover/test/index.native.js +26 -28
- package/src/components/block-navigation/dropdown.js +0 -1
- package/src/components/block-patterns-list/index.js +1 -8
- package/src/components/block-patterns-list/style.scss +22 -12
- package/src/components/block-preview/README.md +1 -1
- package/src/components/block-preview/auto.js +1 -1
- package/src/components/block-preview/style.scss +0 -17
- package/src/components/block-settings/container.native.js +7 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +26 -13
- package/src/components/block-settings-menu-controls/index.js +9 -6
- package/src/components/block-styles/preview.native.js +2 -2
- package/src/components/block-switcher/block-styles-menu.js +1 -1
- package/src/components/block-switcher/index.js +7 -3
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +1 -1
- package/src/components/block-switcher/test/index.js +3 -0
- package/src/components/block-title/index.js +5 -2
- package/src/components/block-tools/block-popover.js +3 -5
- package/src/components/block-tools/index.js +5 -2
- package/src/components/block-tools/insertion-point.js +97 -9
- package/src/components/block-tools/style.scss +4 -35
- package/src/components/block-types-list/style.scss +0 -3
- package/src/components/border-radius-control/index.js +1 -0
- package/src/components/border-radius-control/test/utils.js +216 -0
- package/src/components/border-radius-control/utils.js +18 -10
- package/src/components/color-palette/test/__snapshots__/control.js.snap +128 -71
- package/src/components/colors/test/utils.js +41 -0
- package/src/components/colors/utils.js +9 -5
- package/src/components/colors-gradients/control.js +70 -110
- package/src/components/colors-gradients/panel-color-gradient-settings.js +79 -7
- package/src/components/colors-gradients/style.scss +10 -18
- package/src/components/colors-gradients/test/control.js +41 -66
- package/src/components/contrast-checker/index.js +14 -10
- package/src/components/copy-handler/index.js +6 -1
- package/src/components/default-block-appender/index.js +2 -2
- package/src/components/default-block-appender/test/__snapshots__/index.js.snap +3 -3
- package/src/components/duotone-control/index.js +49 -41
- package/src/components/duotone-control/style.scss +27 -12
- package/src/components/editor-styles/index.js +7 -4
- package/src/components/font-appearance-control/index.js +41 -33
- package/src/components/font-appearance-control/style.scss +1 -1
- package/src/components/iframe/index.js +4 -4
- package/src/components/image-editor/aspect-ratio-dropdown.js +129 -0
- package/src/components/image-editor/constants.js +6 -0
- package/src/components/image-editor/context.js +56 -0
- package/src/components/image-editor/cropper.js +74 -0
- package/src/components/image-editor/form-controls.js +22 -0
- package/src/components/image-editor/index.js +52 -0
- package/src/components/image-editor/rotation-button.js +24 -0
- package/src/components/image-editor/use-save-image.js +97 -0
- package/src/components/image-editor/use-transform-image.js +162 -0
- package/src/components/image-editor/zoom-dropdown.js +40 -0
- package/src/components/image-size-control/use-dimension-handler.js +18 -1
- package/src/components/index.js +7 -6
- package/src/components/index.native.js +1 -4
- package/src/components/inner-blocks/button-block-appender.js +9 -0
- package/src/components/inner-blocks/index.js +8 -4
- package/src/components/inner-blocks/index.native.js +7 -4
- package/src/components/inner-blocks/use-nested-settings-update.js +26 -11
- package/src/components/inserter/block-patterns-explorer/explorer.js +50 -0
- package/src/components/inserter/block-patterns-explorer/patterns-list.js +122 -0
- package/src/components/inserter/block-patterns-explorer/sidebar.js +73 -0
- package/src/components/inserter/block-patterns-tab.js +107 -73
- package/src/components/inserter/block-types-tab.native.js +3 -15
- package/src/components/inserter/hooks/use-block-type-impressions.native.js +14 -21
- package/src/components/inserter/hooks/use-clipboard-block.native.js +3 -2
- package/src/components/inserter/index.js +15 -3
- package/src/components/inserter/index.native.js +2 -19
- package/src/components/inserter/library.js +2 -0
- package/src/components/inserter/menu.js +4 -1
- package/src/components/inserter/menu.native.js +9 -14
- package/src/components/inserter/pattern-panel.js +33 -16
- package/src/components/inserter/preview-panel.js +1 -1
- package/src/components/inserter/quick-inserter.js +1 -1
- package/src/components/inserter/reusable-blocks-tab.native.js +4 -6
- package/src/components/inserter/search-results.native.js +5 -15
- package/src/components/inserter/style.scss +80 -16
- package/src/components/inserter/test/block-types-tab.native.js +1 -1
- package/src/components/inserter/test/fixtures/index.native.js +12 -0
- package/src/components/inserter/utils.native.js +35 -0
- package/src/components/inserter-list-item/style.scss +4 -2
- package/src/components/inspector-controls/block-support-slot-container.js +10 -0
- package/src/components/inspector-controls/block-support-tools-panel.js +60 -0
- package/src/components/inspector-controls/fill.js +23 -2
- package/src/components/inspector-controls/groups.js +8 -0
- package/src/components/inspector-controls/slot.js +15 -0
- package/src/components/letter-spacing-control/index.js +12 -6
- package/src/components/link-control/README.md +47 -14
- package/src/components/link-control/index.js +102 -31
- package/src/components/link-control/link-preview.js +53 -20
- package/src/components/link-control/search-input.js +21 -7
- package/src/components/link-control/style.scss +66 -19
- package/src/components/link-control/test/index.js +311 -4
- package/src/components/list-view/block-contents.js +17 -38
- package/src/components/list-view/block.js +73 -84
- package/src/components/list-view/branch.js +123 -94
- package/src/components/list-view/index.js +82 -30
- package/src/components/list-view/leaf.js +2 -2
- package/src/components/list-view/list-item.js +5 -4
- package/src/components/list-view/style.scss +70 -33
- package/src/components/list-view/use-list-view-client-ids.js +9 -68
- package/src/components/media-placeholder/index.js +26 -19
- package/src/components/media-replace-flow/README.md +7 -0
- package/src/components/media-replace-flow/index.js +4 -1
- package/src/components/media-upload/README.md +1 -1
- package/src/components/navigable-toolbar/index.js +1 -4
- package/src/components/observe-typing/index.js +3 -2
- package/src/components/plain-text/index.native.js +26 -4
- package/src/components/rich-text/embed-handler-picker.native.js +68 -0
- package/src/components/rich-text/format-edit.js +36 -2
- package/src/components/rich-text/format-toolbar/index.js +25 -6
- package/src/components/rich-text/index.js +12 -8
- package/src/components/rich-text/index.native.js +35 -1
- package/src/components/rich-text/use-paste-handler.js +30 -12
- package/src/components/rich-text/utils.js +16 -0
- package/src/components/skip-to-selected-block/README.md +39 -0
- package/src/components/typewriter/index.js +3 -2
- package/src/components/url-input/index.js +26 -10
- package/src/components/use-moving-animation/index.js +9 -8
- package/src/components/use-on-block-drop/index.js +5 -1
- package/src/components/use-setting/index.js +49 -11
- package/src/components/writing-flow/use-multi-selection.js +6 -0
- package/src/components/writing-flow/use-tab-nav.js +17 -3
- package/src/hooks/align.js +19 -10
- package/src/hooks/anchor.js +2 -2
- package/src/hooks/border.js +8 -11
- package/src/hooks/color-panel.js +4 -1
- package/src/hooks/color.js +7 -4
- package/src/hooks/dimensions.js +48 -59
- package/src/hooks/duotone.js +68 -19
- package/src/hooks/font-appearance.js +38 -7
- package/src/hooks/font-family.js +129 -33
- package/src/hooks/font-size.js +42 -6
- package/src/hooks/gap.js +2 -1
- package/src/hooks/index.js +2 -0
- package/src/hooks/index.native.js +1 -0
- package/src/hooks/layout.scss +8 -0
- package/src/hooks/letter-spacing.js +35 -7
- package/src/hooks/line-height.js +37 -9
- package/src/hooks/lock.js +34 -0
- package/src/hooks/margin.js +1 -1
- package/src/hooks/padding.js +1 -1
- package/src/hooks/style.js +15 -11
- package/src/hooks/text-decoration.js +34 -6
- package/src/hooks/text-transform.js +34 -6
- package/src/hooks/typography.js +165 -15
- package/src/hooks/typography.scss +16 -0
- package/src/hooks/use-cached-truthy.js +20 -0
- package/src/index.js +1 -0
- package/src/layouts/flex.js +179 -50
- package/src/layouts/flow.js +54 -8
- package/src/store/actions.js +239 -377
- package/src/store/defaults.native.js +12 -0
- package/src/store/index.js +1 -2
- package/src/store/reducer.js +54 -18
- package/src/store/selectors.js +173 -47
- package/src/store/test/actions.js +407 -705
- package/src/store/test/reducer.js +22 -54
- package/src/store/test/selectors.js +79 -21
- package/src/style.scss +2 -1
- package/src/utils/index.js +1 -0
- package/src/utils/parse-css-unit-to-px.js +43 -1
- package/src/utils/test/parse-css-unit-to-px.js +148 -165
- package/src/utils/transform-styles/transforms/test/wrap.js +1 -1
- package/src/utils/transform-styles/transforms/wrap.js +16 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/duotone-control/duotone-picker-popover.js +0 -44
- package/build/components/duotone-control/duotone-picker-popover.js.map +0 -1
- package/build/components/list-view/block-slot.js +0 -121
- package/build/components/list-view/block-slot.js.map +0 -1
- package/build/components/list-view/editor.js +0 -35
- package/build/components/list-view/editor.js.map +0 -1
- package/build/components/text-decoration-and-transform/index.js +0 -39
- package/build/components/text-decoration-and-transform/index.js.map +0 -1
- package/build/store/controls.js +0 -44
- package/build/store/controls.js.map +0 -1
- package/build-module/components/duotone-control/duotone-picker-popover.js +0 -35
- package/build-module/components/duotone-control/duotone-picker-popover.js.map +0 -1
- package/build-module/components/list-view/block-slot.js +0 -96
- package/build-module/components/list-view/block-slot.js.map +0 -1
- package/build-module/components/list-view/editor.js +0 -25
- package/build-module/components/list-view/editor.js.map +0 -1
- package/build-module/components/text-decoration-and-transform/index.js +0 -30
- package/build-module/components/text-decoration-and-transform/index.js.map +0 -1
- package/build-module/store/controls.js +0 -32
- package/build-module/store/controls.js.map +0 -1
- package/src/components/duotone-control/duotone-picker-popover.js +0 -36
- package/src/components/list-view/block-slot.js +0 -120
- package/src/components/list-view/editor.js +0 -29
- package/src/components/text-decoration-and-transform/index.js +0 -36
- package/src/components/text-decoration-and-transform/style.scss +0 -3
- package/src/store/controls.js +0 -39
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { createElement
|
|
2
|
+
import { createElement } from "@wordpress/element";
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* WordPress dependencies
|
|
6
6
|
*/
|
|
7
|
-
import { useMergeRefs } from '@wordpress/compose';
|
|
7
|
+
import { useMergeRefs, __experimentalUseFixedWindowList as useFixedWindowList } from '@wordpress/compose';
|
|
8
8
|
import { __experimentalTreeGrid as TreeGrid } from '@wordpress/components';
|
|
9
|
-
import { useDispatch } from '@wordpress/data';
|
|
9
|
+
import { AsyncModeProvider, useDispatch, useSelect } from '@wordpress/data';
|
|
10
10
|
import { useCallback, useEffect, useMemo, useRef, useReducer, forwardRef } from '@wordpress/element';
|
|
11
11
|
import { __ } from '@wordpress/i18n';
|
|
12
12
|
/**
|
|
@@ -51,28 +51,44 @@ const expanded = (state, action) => {
|
|
|
51
51
|
* @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
|
|
52
52
|
* @param {Function} props.onSelect Block selection callback.
|
|
53
53
|
* @param {boolean} props.showNestedBlocks Flag to enable displaying nested blocks.
|
|
54
|
-
* @param {boolean} props.
|
|
54
|
+
* @param {boolean} props.showBlockMovers Flag to enable block movers
|
|
55
55
|
* @param {boolean} props.__experimentalFeatures Flag to enable experimental features.
|
|
56
56
|
* @param {boolean} props.__experimentalPersistentListViewFeatures Flag to enable features for the Persistent List View experiment.
|
|
57
|
+
* @param {boolean} props.__experimentalHideContainerBlockActions Flag to hide actions of top level blocks (like core/widget-area)
|
|
57
58
|
* @param {Object} ref Forwarded ref
|
|
58
59
|
*/
|
|
59
60
|
|
|
60
61
|
|
|
61
62
|
function ListView({
|
|
62
63
|
blocks,
|
|
63
|
-
showOnlyCurrentHierarchy,
|
|
64
64
|
onSelect = noop,
|
|
65
65
|
__experimentalFeatures,
|
|
66
66
|
__experimentalPersistentListViewFeatures,
|
|
67
|
+
__experimentalHideContainerBlockActions,
|
|
68
|
+
showNestedBlocks,
|
|
69
|
+
showBlockMovers,
|
|
67
70
|
...props
|
|
68
71
|
}, ref) {
|
|
69
72
|
const {
|
|
70
73
|
clientIdsTree,
|
|
74
|
+
draggedClientIds,
|
|
71
75
|
selectedClientIds
|
|
72
|
-
} = useListViewClientIds(blocks
|
|
76
|
+
} = useListViewClientIds(blocks);
|
|
73
77
|
const {
|
|
74
78
|
selectBlock
|
|
75
79
|
} = useDispatch(blockEditorStore);
|
|
80
|
+
const {
|
|
81
|
+
visibleBlockCount
|
|
82
|
+
} = useSelect(select => {
|
|
83
|
+
const {
|
|
84
|
+
getGlobalBlockCount,
|
|
85
|
+
getClientIdsOfDescendants
|
|
86
|
+
} = select(blockEditorStore);
|
|
87
|
+
const draggedBlockCount = (draggedClientIds === null || draggedClientIds === void 0 ? void 0 : draggedClientIds.length) > 0 ? getClientIdsOfDescendants(draggedClientIds).length + 1 : 0;
|
|
88
|
+
return {
|
|
89
|
+
visibleBlockCount: getGlobalBlockCount() - draggedBlockCount
|
|
90
|
+
};
|
|
91
|
+
}, [draggedClientIds]);
|
|
76
92
|
const selectEditorBlock = useCallback(clientId => {
|
|
77
93
|
selectBlock(clientId);
|
|
78
94
|
onSelect(clientId);
|
|
@@ -87,9 +103,15 @@ function ListView({
|
|
|
87
103
|
const isMounted = useRef(false);
|
|
88
104
|
useEffect(() => {
|
|
89
105
|
isMounted.current = true;
|
|
90
|
-
}, []);
|
|
91
|
-
|
|
92
|
-
|
|
106
|
+
}, []); // List View renders a fixed number of items and relies on each having a fixed item height of 36px.
|
|
107
|
+
// If this value changes, we should also change the itemHeight value set in useFixedWindowList.
|
|
108
|
+
// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.
|
|
109
|
+
|
|
110
|
+
const [fixedListWindow] = useFixedWindowList(elementRef, 36, visibleBlockCount, {
|
|
111
|
+
useWindowing: __experimentalPersistentListViewFeatures,
|
|
112
|
+
windowOverscan: 40
|
|
113
|
+
});
|
|
114
|
+
const expand = useCallback(clientId => {
|
|
93
115
|
if (!clientId) {
|
|
94
116
|
return;
|
|
95
117
|
}
|
|
@@ -98,9 +120,8 @@ function ListView({
|
|
|
98
120
|
type: 'expand',
|
|
99
121
|
clientId
|
|
100
122
|
});
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
const collapse = clientId => {
|
|
123
|
+
}, [setExpandedState]);
|
|
124
|
+
const collapse = useCallback(clientId => {
|
|
104
125
|
if (!clientId) {
|
|
105
126
|
return;
|
|
106
127
|
}
|
|
@@ -109,29 +130,30 @@ function ListView({
|
|
|
109
130
|
type: 'collapse',
|
|
110
131
|
clientId
|
|
111
132
|
});
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
const expandRow = row => {
|
|
133
|
+
}, [setExpandedState]);
|
|
134
|
+
const expandRow = useCallback(row => {
|
|
115
135
|
var _row$dataset;
|
|
116
136
|
|
|
117
137
|
expand(row === null || row === void 0 ? void 0 : (_row$dataset = row.dataset) === null || _row$dataset === void 0 ? void 0 : _row$dataset.block);
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
const collapseRow = row => {
|
|
138
|
+
}, [expand]);
|
|
139
|
+
const collapseRow = useCallback(row => {
|
|
121
140
|
var _row$dataset2;
|
|
122
141
|
|
|
123
142
|
collapse(row === null || row === void 0 ? void 0 : (_row$dataset2 = row.dataset) === null || _row$dataset2 === void 0 ? void 0 : _row$dataset2.block);
|
|
124
|
-
};
|
|
125
|
-
|
|
143
|
+
}, [collapse]);
|
|
126
144
|
const contextValue = useMemo(() => ({
|
|
127
145
|
__experimentalFeatures,
|
|
128
146
|
__experimentalPersistentListViewFeatures,
|
|
147
|
+
__experimentalHideContainerBlockActions,
|
|
129
148
|
isTreeGridMounted: isMounted.current,
|
|
149
|
+
draggedClientIds,
|
|
130
150
|
expandedState,
|
|
131
151
|
expand,
|
|
132
152
|
collapse
|
|
133
|
-
}), [__experimentalFeatures, __experimentalPersistentListViewFeatures, isMounted.current, expandedState, expand, collapse]);
|
|
134
|
-
return createElement(
|
|
153
|
+
}), [__experimentalFeatures, __experimentalPersistentListViewFeatures, __experimentalHideContainerBlockActions, isMounted.current, draggedClientIds, expandedState, expand, collapse]);
|
|
154
|
+
return createElement(AsyncModeProvider, {
|
|
155
|
+
value: true
|
|
156
|
+
}, createElement(ListViewDropIndicator, {
|
|
135
157
|
listViewRef: elementRef,
|
|
136
158
|
blockDropTarget: blockDropTarget
|
|
137
159
|
}), createElement(TreeGrid, {
|
|
@@ -145,7 +167,10 @@ function ListView({
|
|
|
145
167
|
}, createElement(ListViewBranch, _extends({
|
|
146
168
|
blocks: clientIdsTree,
|
|
147
169
|
selectBlock: selectEditorBlock,
|
|
148
|
-
|
|
170
|
+
showNestedBlocks: showNestedBlocks,
|
|
171
|
+
showBlockMovers: showBlockMovers,
|
|
172
|
+
fixedListWindow: fixedListWindow,
|
|
173
|
+
selectedClientIds: selectedClientIds
|
|
149
174
|
}, props)))));
|
|
150
175
|
}
|
|
151
176
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/index.js"],"names":["useMergeRefs","__experimentalTreeGrid","TreeGrid","useDispatch","useCallback","useEffect","useMemo","useRef","useReducer","forwardRef","__","ListViewBranch","ListViewContext","ListViewDropIndicator","useListViewClientIds","useListViewDropZone","store","blockEditorStore","noop","expanded","state","action","type","clientId","ListView","blocks","showOnlyCurrentHierarchy","onSelect","__experimentalFeatures","__experimentalPersistentListViewFeatures","props","ref","clientIdsTree","selectedClientIds","selectBlock","selectEditorBlock","expandedState","setExpandedState","dropZoneRef","target","blockDropTarget","elementRef","treeGridRef","isMounted","current","expand","collapse","expandRow","row","dataset","block","collapseRow","contextValue","isTreeGridMounted"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { useMergeRefs } from '@wordpress/compose';\nimport { __experimentalTreeGrid as TreeGrid } from '@wordpress/components';\nimport { useDispatch } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicator from './drop-indicator';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\nconst expanded = ( state, action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'expand':\n\t\t\treturn { ...state, ...{ [ action.clientId ]: true } };\n\t\tcase 'collapse':\n\t\t\treturn { ...state, ...{ [ action.clientId ]: false } };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\n/**\n * Wrap `ListViewRows` with `TreeGrid`. ListViewRows is a\n * recursive component (it renders itself), so this ensures TreeGrid is only\n * present at the very top of the navigation grid.\n *\n * @param {Object} props Components props.\n * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {Function} props.onSelect Block selection callback.\n * @param {boolean} props.showNestedBlocks Flag to enable displaying nested blocks.\n * @param {boolean} props.showOnlyCurrentHierarchy Flag to limit the list to the current hierarchy of blocks.\n * @param {boolean} props.__experimentalFeatures Flag to enable experimental features.\n * @param {boolean} props.__experimentalPersistentListViewFeatures Flag to enable features for the Persistent List View experiment.\n * @param {Object} ref Forwarded ref\n */\nfunction ListView(\n\t{\n\t\tblocks,\n\t\tshowOnlyCurrentHierarchy,\n\t\tonSelect = noop,\n\t\t__experimentalFeatures,\n\t\t__experimentalPersistentListViewFeatures,\n\t\t...props\n\t},\n\tref\n) {\n\tconst { clientIdsTree, selectedClientIds } = useListViewClientIds(\n\t\tblocks,\n\t\tshowOnlyCurrentHierarchy,\n\t\t__experimentalPersistentListViewFeatures\n\t);\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst selectEditorBlock = useCallback(\n\t\t( clientId ) => {\n\t\t\tselectBlock( clientId );\n\t\t\tonSelect( clientId );\n\t\t},\n\t\t[ selectBlock, onSelect ]\n\t);\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();\n\tconst elementRef = useRef();\n\tconst treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );\n\n\tconst isMounted = useRef( false );\n\tuseEffect( () => {\n\t\tisMounted.current = true;\n\t}, [] );\n\n\tconst expand = ( clientId ) => {\n\t\tif ( ! clientId ) {\n\t\t\treturn;\n\t\t}\n\t\tsetExpandedState( { type: 'expand', clientId } );\n\t};\n\tconst collapse = ( clientId ) => {\n\t\tif ( ! clientId ) {\n\t\t\treturn;\n\t\t}\n\t\tsetExpandedState( { type: 'collapse', clientId } );\n\t};\n\tconst expandRow = ( row ) => {\n\t\texpand( row?.dataset?.block );\n\t};\n\tconst collapseRow = ( row ) => {\n\t\tcollapse( row?.dataset?.block );\n\t};\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\t__experimentalFeatures,\n\t\t\t__experimentalPersistentListViewFeatures,\n\t\t\tisTreeGridMounted: isMounted.current,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t} ),\n\t\t[\n\t\t\t__experimentalFeatures,\n\t\t\t__experimentalPersistentListViewFeatures,\n\t\t\tisMounted.current,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<ListViewDropIndicator\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t<TreeGrid\n\t\t\t\tclassName=\"block-editor-list-view-tree\"\n\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\tref={ treeGridRef }\n\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\tonExpandRow={ expandRow }\n\t\t\t>\n\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\tselectedBlockClientIds={ selectedClientIds }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t</ListViewContext.Provider>\n\t\t\t</TreeGrid>\n\t\t</>\n\t);\n}\nexport default forwardRef( ListView );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/index.js"],"names":["useMergeRefs","__experimentalUseFixedWindowList","useFixedWindowList","__experimentalTreeGrid","TreeGrid","AsyncModeProvider","useDispatch","useSelect","useCallback","useEffect","useMemo","useRef","useReducer","forwardRef","__","ListViewBranch","ListViewContext","ListViewDropIndicator","useListViewClientIds","useListViewDropZone","store","blockEditorStore","noop","expanded","state","action","type","clientId","ListView","blocks","onSelect","__experimentalFeatures","__experimentalPersistentListViewFeatures","__experimentalHideContainerBlockActions","showNestedBlocks","showBlockMovers","props","ref","clientIdsTree","draggedClientIds","selectedClientIds","selectBlock","visibleBlockCount","select","getGlobalBlockCount","getClientIdsOfDescendants","draggedBlockCount","length","selectEditorBlock","expandedState","setExpandedState","dropZoneRef","target","blockDropTarget","elementRef","treeGridRef","isMounted","current","fixedListWindow","useWindowing","windowOverscan","expand","collapse","expandRow","row","dataset","block","collapseRow","contextValue","isTreeGridMounted"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tuseMergeRefs,\n\t__experimentalUseFixedWindowList as useFixedWindowList,\n} from '@wordpress/compose';\nimport { __experimentalTreeGrid as TreeGrid } from '@wordpress/components';\nimport { AsyncModeProvider, useDispatch, useSelect } from '@wordpress/data';\nimport {\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseReducer,\n\tforwardRef,\n} from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ListViewBranch from './branch';\nimport { ListViewContext } from './context';\nimport ListViewDropIndicator from './drop-indicator';\nimport useListViewClientIds from './use-list-view-client-ids';\nimport useListViewDropZone from './use-list-view-drop-zone';\nimport { store as blockEditorStore } from '../../store';\n\nconst noop = () => {};\nconst expanded = ( state, action ) => {\n\tswitch ( action.type ) {\n\t\tcase 'expand':\n\t\t\treturn { ...state, ...{ [ action.clientId ]: true } };\n\t\tcase 'collapse':\n\t\t\treturn { ...state, ...{ [ action.clientId ]: false } };\n\t\tdefault:\n\t\t\treturn state;\n\t}\n};\n\n/**\n * Wrap `ListViewRows` with `TreeGrid`. ListViewRows is a\n * recursive component (it renders itself), so this ensures TreeGrid is only\n * present at the very top of the navigation grid.\n *\n * @param {Object} props Components props.\n * @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.\n * @param {Function} props.onSelect Block selection callback.\n * @param {boolean} props.showNestedBlocks Flag to enable displaying nested blocks.\n * @param {boolean} props.showBlockMovers Flag to enable block movers\n * @param {boolean} props.__experimentalFeatures Flag to enable experimental features.\n * @param {boolean} props.__experimentalPersistentListViewFeatures Flag to enable features for the Persistent List View experiment.\n * @param {boolean} props.__experimentalHideContainerBlockActions Flag to hide actions of top level blocks (like core/widget-area)\n * @param {Object} ref Forwarded ref\n */\nfunction ListView(\n\t{\n\t\tblocks,\n\t\tonSelect = noop,\n\t\t__experimentalFeatures,\n\t\t__experimentalPersistentListViewFeatures,\n\t\t__experimentalHideContainerBlockActions,\n\t\tshowNestedBlocks,\n\t\tshowBlockMovers,\n\t\t...props\n\t},\n\tref\n) {\n\tconst {\n\t\tclientIdsTree,\n\t\tdraggedClientIds,\n\t\tselectedClientIds,\n\t} = useListViewClientIds( blocks );\n\tconst { selectBlock } = useDispatch( blockEditorStore );\n\tconst { visibleBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getGlobalBlockCount, getClientIdsOfDescendants } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst draggedBlockCount =\n\t\t\t\tdraggedClientIds?.length > 0\n\t\t\t\t\t? getClientIdsOfDescendants( draggedClientIds ).length + 1\n\t\t\t\t\t: 0;\n\t\t\treturn {\n\t\t\t\tvisibleBlockCount: getGlobalBlockCount() - draggedBlockCount,\n\t\t\t};\n\t\t},\n\t\t[ draggedClientIds ]\n\t);\n\tconst selectEditorBlock = useCallback(\n\t\t( clientId ) => {\n\t\t\tselectBlock( clientId );\n\t\t\tonSelect( clientId );\n\t\t},\n\t\t[ selectBlock, onSelect ]\n\t);\n\tconst [ expandedState, setExpandedState ] = useReducer( expanded, {} );\n\n\tconst { ref: dropZoneRef, target: blockDropTarget } = useListViewDropZone();\n\tconst elementRef = useRef();\n\tconst treeGridRef = useMergeRefs( [ elementRef, dropZoneRef, ref ] );\n\n\tconst isMounted = useRef( false );\n\tuseEffect( () => {\n\t\tisMounted.current = true;\n\t}, [] );\n\n\t// List View renders a fixed number of items and relies on each having a fixed item height of 36px.\n\t// If this value changes, we should also change the itemHeight value set in useFixedWindowList.\n\t// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.\n\tconst [ fixedListWindow ] = useFixedWindowList(\n\t\telementRef,\n\t\t36,\n\t\tvisibleBlockCount,\n\t\t{\n\t\t\tuseWindowing: __experimentalPersistentListViewFeatures,\n\t\t\twindowOverscan: 40,\n\t\t}\n\t);\n\n\tconst expand = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( { type: 'expand', clientId } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst collapse = useCallback(\n\t\t( clientId ) => {\n\t\t\tif ( ! clientId ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetExpandedState( { type: 'collapse', clientId } );\n\t\t},\n\t\t[ setExpandedState ]\n\t);\n\tconst expandRow = useCallback(\n\t\t( row ) => {\n\t\t\texpand( row?.dataset?.block );\n\t\t},\n\t\t[ expand ]\n\t);\n\tconst collapseRow = useCallback(\n\t\t( row ) => {\n\t\t\tcollapse( row?.dataset?.block );\n\t\t},\n\t\t[ collapse ]\n\t);\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\t__experimentalFeatures,\n\t\t\t__experimentalPersistentListViewFeatures,\n\t\t\t__experimentalHideContainerBlockActions,\n\t\t\tisTreeGridMounted: isMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t} ),\n\t\t[\n\t\t\t__experimentalFeatures,\n\t\t\t__experimentalPersistentListViewFeatures,\n\t\t\t__experimentalHideContainerBlockActions,\n\t\t\tisMounted.current,\n\t\t\tdraggedClientIds,\n\t\t\texpandedState,\n\t\t\texpand,\n\t\t\tcollapse,\n\t\t]\n\t);\n\n\treturn (\n\t\t<AsyncModeProvider value={ true }>\n\t\t\t<ListViewDropIndicator\n\t\t\t\tlistViewRef={ elementRef }\n\t\t\t\tblockDropTarget={ blockDropTarget }\n\t\t\t/>\n\t\t\t<TreeGrid\n\t\t\t\tclassName=\"block-editor-list-view-tree\"\n\t\t\t\taria-label={ __( 'Block navigation structure' ) }\n\t\t\t\tref={ treeGridRef }\n\t\t\t\tonCollapseRow={ collapseRow }\n\t\t\t\tonExpandRow={ expandRow }\n\t\t\t>\n\t\t\t\t<ListViewContext.Provider value={ contextValue }>\n\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\tblocks={ clientIdsTree }\n\t\t\t\t\t\tselectBlock={ selectEditorBlock }\n\t\t\t\t\t\tshowNestedBlocks={ showNestedBlocks }\n\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t</ListViewContext.Provider>\n\t\t\t</TreeGrid>\n\t\t</AsyncModeProvider>\n\t);\n}\nexport default forwardRef( ListView );\n"]}
|
|
@@ -4,7 +4,7 @@ import { createElement } from "@wordpress/element";
|
|
|
4
4
|
/**
|
|
5
5
|
* External dependencies
|
|
6
6
|
*/
|
|
7
|
-
import { animated } from 'react-spring/web
|
|
7
|
+
import { animated } from '@react-spring/web';
|
|
8
8
|
import classnames from 'classnames';
|
|
9
9
|
/**
|
|
10
10
|
* WordPress dependencies
|
|
@@ -31,7 +31,7 @@ export default function ListViewLeaf({
|
|
|
31
31
|
isSelected,
|
|
32
32
|
adjustScrolling: false,
|
|
33
33
|
enableAnimation: true,
|
|
34
|
-
triggerAnimationOnChange: path
|
|
34
|
+
triggerAnimationOnChange: path
|
|
35
35
|
});
|
|
36
36
|
return createElement(AnimatedTreeGridRow, _extends({
|
|
37
37
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/leaf.js"],"names":["animated","classnames","__experimentalTreeGridRow","TreeGridRow","useMovingAnimation","AnimatedTreeGridRow","ListViewLeaf","isSelected","position","level","rowCount","children","className","path","props","ref","adjustScrolling","enableAnimation","triggerAnimationOnChange"
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/leaf.js"],"names":["animated","classnames","__experimentalTreeGridRow","TreeGridRow","useMovingAnimation","AnimatedTreeGridRow","ListViewLeaf","isSelected","position","level","rowCount","children","className","path","props","ref","adjustScrolling","enableAnimation","triggerAnimationOnChange"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,QAAT,QAAyB,mBAAzB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,yBAAyB,IAAIC,WAAtC,QAAyD,uBAAzD;AAEA;AACA;AACA;;AACA,OAAOC,kBAAP,MAA+B,yBAA/B;AAEA,MAAMC,mBAAmB,GAAGL,QAAQ,CAAEG,WAAF,CAApC;AAEA,eAAe,SAASG,YAAT,CAAuB;AACrCC,EAAAA,UADqC;AAErCC,EAAAA,QAFqC;AAGrCC,EAAAA,KAHqC;AAIrCC,EAAAA,QAJqC;AAKrCC,EAAAA,QALqC;AAMrCC,EAAAA,SANqC;AAOrCC,EAAAA,IAPqC;AAQrC,KAAGC;AARkC,CAAvB,EASX;AACH,QAAMC,GAAG,GAAGX,kBAAkB,CAAE;AAC/BG,IAAAA,UAD+B;AAE/BS,IAAAA,eAAe,EAAE,KAFc;AAG/BC,IAAAA,eAAe,EAAE,IAHc;AAI/BC,IAAAA,wBAAwB,EAAEL;AAJK,GAAF,CAA9B;AAOA,SACC,cAAC,mBAAD;AACC,IAAA,GAAG,EAAGE,GADP;AAEC,IAAA,SAAS,EAAGd,UAAU,CAAE,6BAAF,EAAiCW,SAAjC,CAFvB;AAGC,IAAA,KAAK,EAAGH,KAHT;AAIC,IAAA,aAAa,EAAGD,QAJjB;AAKC,IAAA,OAAO,EAAGE;AALX,KAMMI,KANN,GAQGH,QARH,CADD;AAYA","sourcesContent":["/**\n * External dependencies\n */\nimport { animated } from '@react-spring/web';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __experimentalTreeGridRow as TreeGridRow } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport useMovingAnimation from '../use-moving-animation';\n\nconst AnimatedTreeGridRow = animated( TreeGridRow );\n\nexport default function ListViewLeaf( {\n\tisSelected,\n\tposition,\n\tlevel,\n\trowCount,\n\tchildren,\n\tclassName,\n\tpath,\n\t...props\n} ) {\n\tconst ref = useMovingAnimation( {\n\t\tisSelected,\n\t\tadjustScrolling: false,\n\t\tenableAnimation: true,\n\t\ttriggerAnimationOnChange: path,\n\t} );\n\n\treturn (\n\t\t<AnimatedTreeGridRow\n\t\t\tref={ ref }\n\t\t\tclassName={ classnames( 'block-editor-list-view-leaf', className ) }\n\t\t\tlevel={ level }\n\t\t\tpositionInSet={ position }\n\t\t\tsetSize={ rowCount }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children }\n\t\t</AnimatedTreeGridRow>\n\t);\n}\n"]}
|
|
@@ -24,6 +24,7 @@ export default function ListViewListItem({
|
|
|
24
24
|
children
|
|
25
25
|
}) {
|
|
26
26
|
const blockType = getBlockType(block.name);
|
|
27
|
+
const blockLabel = blockType ? getBlockLabel(blockType, block.attributes) : null;
|
|
27
28
|
return createElement("div", {
|
|
28
29
|
className: "block-editor-list-view__list-item"
|
|
29
30
|
}, createElement(WrapperComponent, {
|
|
@@ -32,9 +33,9 @@ export default function ListViewListItem({
|
|
|
32
33
|
}),
|
|
33
34
|
onClick: onClick
|
|
34
35
|
}, createElement(BlockIcon, {
|
|
35
|
-
icon: blockType.icon,
|
|
36
|
+
icon: blockType === null || blockType === void 0 ? void 0 : blockType.icon,
|
|
36
37
|
showColors: true
|
|
37
|
-
}), children ? children :
|
|
38
|
+
}), children ? children : blockLabel, isSelected && createElement(VisuallyHidden, {
|
|
38
39
|
as: "span"
|
|
39
40
|
}, __('(selected block)'))));
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/list-item.js"],"names":["classnames","Button","VisuallyHidden","__experimentalGetBlockLabel","getBlockLabel","getBlockType","__","BlockIcon","ListViewListItem","block","onClick","isSelected","wrapperComponent","WrapperComponent","children","blockType","name","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/list-item.js"],"names":["classnames","Button","VisuallyHidden","__experimentalGetBlockLabel","getBlockLabel","getBlockType","__","BlockIcon","ListViewListItem","block","onClick","isSelected","wrapperComponent","WrapperComponent","children","blockType","name","blockLabel","attributes","icon","defaultProps","props"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,MAAT,EAAiBC,cAAjB,QAAuC,uBAAvC;AACA,SACCC,2BAA2B,IAAIC,aADhC,EAECC,YAFD,QAGO,mBAHP;AAIA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,SAAP,MAAsB,eAAtB;AAEA,eAAe,SAASC,gBAAT,CAA2B;AACzCC,EAAAA,KADyC;AAEzCC,EAAAA,OAFyC;AAGzCC,EAAAA,UAHyC;AAIzCC,EAAAA,gBAAgB,EAAEC,gBAJuB;AAKzCC,EAAAA;AALyC,CAA3B,EAMX;AACH,QAAMC,SAAS,GAAGV,YAAY,CAAEI,KAAK,CAACO,IAAR,CAA9B;AACA,QAAMC,UAAU,GAAGF,SAAS,GACzBX,aAAa,CAAEW,SAAF,EAAaN,KAAK,CAACS,UAAnB,CADY,GAEzB,IAFH;AAIA,SACC;AAAK,IAAA,SAAS,EAAC;AAAf,KACC,cAAC,gBAAD;AACC,IAAA,SAAS,EAAGlB,UAAU,CACrB,0CADqB,EAErB;AACC,qBAAeW;AADhB,KAFqB,CADvB;AAOC,IAAA,OAAO,EAAGD;AAPX,KASC,cAAC,SAAD;AAAW,IAAA,IAAI,EAAGK,SAAH,aAAGA,SAAH,uBAAGA,SAAS,CAAEI,IAA7B;AAAoC,IAAA,UAAU;AAA9C,IATD,EAUGL,QAAQ,GAAGA,QAAH,GAAcG,UAVzB,EAWGN,UAAU,IACX,cAAC,cAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KACGL,EAAE,CAAE,kBAAF,CADL,CAZF,CADD,CADD;AAqBA;AAEDE,gBAAgB,CAACY,YAAjB,GAAgC;AAC/BV,EAAAA,OAAO,EAAE,MAAM,CAAE,CADc;AAE/BE,EAAAA,gBAAgB,EAAIS,KAAF,IAAa,cAAC,MAAD,EAAaA,KAAb;AAFA,CAAhC","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Button, VisuallyHidden } from '@wordpress/components';\nimport {\n\t__experimentalGetBlockLabel as getBlockLabel,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\n\nexport default function ListViewListItem( {\n\tblock,\n\tonClick,\n\tisSelected,\n\twrapperComponent: WrapperComponent,\n\tchildren,\n} ) {\n\tconst blockType = getBlockType( block.name );\n\tconst blockLabel = blockType\n\t\t? getBlockLabel( blockType, block.attributes )\n\t\t: null;\n\n\treturn (\n\t\t<div className=\"block-editor-list-view__list-item\">\n\t\t\t<WrapperComponent\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'block-editor-list-view__list-item-button',\n\t\t\t\t\t{\n\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t}\n\t\t\t\t) }\n\t\t\t\tonClick={ onClick }\n\t\t\t>\n\t\t\t\t<BlockIcon icon={ blockType?.icon } showColors />\n\t\t\t\t{ children ? children : blockLabel }\n\t\t\t\t{ isSelected && (\n\t\t\t\t\t<VisuallyHidden as=\"span\">\n\t\t\t\t\t\t{ __( '(selected block)' ) }\n\t\t\t\t\t</VisuallyHidden>\n\t\t\t\t) }\n\t\t\t</WrapperComponent>\n\t\t</div>\n\t);\n}\n\nListViewListItem.defaultProps = {\n\tonClick: () => {},\n\twrapperComponent: ( props ) => <Button { ...props } />,\n};\n"]}
|
|
@@ -6,60 +6,19 @@ import { useSelect } from '@wordpress/data';
|
|
|
6
6
|
* Internal dependencies
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { isClientIdSelected } from './utils';
|
|
10
9
|
import { store as blockEditorStore } from '../../store';
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}, [
|
|
24
|
-
|
|
25
|
-
const useListViewClientIdsTree = (blocks, selectedClientIds, showOnlyCurrentHierarchy) => useSelect(select => {
|
|
26
|
-
const {
|
|
27
|
-
getBlockHierarchyRootClientId,
|
|
28
|
-
__unstableGetClientIdsTree,
|
|
29
|
-
__unstableGetClientIdWithClientIdsTree
|
|
30
|
-
} = select(blockEditorStore);
|
|
31
|
-
|
|
32
|
-
if (blocks) {
|
|
33
|
-
return blocks;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const isSingleBlockSelected = selectedClientIds && !Array.isArray(selectedClientIds);
|
|
37
|
-
|
|
38
|
-
if (!showOnlyCurrentHierarchy || !isSingleBlockSelected) {
|
|
39
|
-
return __unstableGetClientIdsTree();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
const rootBlock = __unstableGetClientIdWithClientIdsTree(getBlockHierarchyRootClientId(selectedClientIds));
|
|
43
|
-
|
|
44
|
-
if (!rootBlock) {
|
|
45
|
-
return __unstableGetClientIdsTree();
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const hasHierarchy = !isClientIdSelected(rootBlock.clientId, selectedClientIds) || rootBlock.innerBlocks && rootBlock.innerBlocks.length !== 0;
|
|
49
|
-
|
|
50
|
-
if (hasHierarchy) {
|
|
51
|
-
return [rootBlock];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
return __unstableGetClientIdsTree();
|
|
55
|
-
}, [blocks, selectedClientIds, showOnlyCurrentHierarchy]);
|
|
56
|
-
|
|
57
|
-
export default function useListViewClientIds(blocks, showOnlyCurrentHierarchy, __experimentalPersistentListViewFeatures) {
|
|
58
|
-
const selectedClientIds = useListViewSelectedClientIds(__experimentalPersistentListViewFeatures);
|
|
59
|
-
const clientIdsTree = useListViewClientIdsTree(blocks, selectedClientIds, showOnlyCurrentHierarchy);
|
|
60
|
-
return {
|
|
61
|
-
clientIdsTree,
|
|
62
|
-
selectedClientIds
|
|
63
|
-
};
|
|
10
|
+
export default function useListViewClientIds(blocks) {
|
|
11
|
+
return useSelect(select => {
|
|
12
|
+
const {
|
|
13
|
+
getDraggedBlockClientIds,
|
|
14
|
+
getSelectedBlockClientIds,
|
|
15
|
+
__unstableGetClientIdsTree
|
|
16
|
+
} = select(blockEditorStore);
|
|
17
|
+
return {
|
|
18
|
+
selectedClientIds: getSelectedBlockClientIds(),
|
|
19
|
+
draggedClientIds: getDraggedBlockClientIds(),
|
|
20
|
+
clientIdsTree: blocks ? blocks : __unstableGetClientIdsTree()
|
|
21
|
+
};
|
|
22
|
+
}, [blocks]);
|
|
64
23
|
}
|
|
65
24
|
//# sourceMappingURL=use-list-view-client-ids.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-client-ids.js"],"names":["useSelect","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/list-view/use-list-view-client-ids.js"],"names":["useSelect","store","blockEditorStore","useListViewClientIds","blocks","select","getDraggedBlockClientIds","getSelectedBlockClientIds","__unstableGetClientIdsTree","selectedClientIds","draggedClientIds","clientIdsTree"],"mappings":"AAAA;AACA;AACA;AAEA,SAASA,SAAT,QAA0B,iBAA1B;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA,eAAe,SAASC,oBAAT,CAA+BC,MAA/B,EAAwC;AACtD,SAAOJ,SAAS,CACbK,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,wBADK;AAELC,MAAAA,yBAFK;AAGLC,MAAAA;AAHK,QAIFH,MAAM,CAAEH,gBAAF,CAJV;AAMA,WAAO;AACNO,MAAAA,iBAAiB,EAAEF,yBAAyB,EADtC;AAENG,MAAAA,gBAAgB,EAAEJ,wBAAwB,EAFpC;AAGNK,MAAAA,aAAa,EAAEP,MAAM,GAAGA,MAAH,GAAYI,0BAA0B;AAHrD,KAAP;AAKA,GAbc,EAcf,CAAEJ,MAAF,CAde,CAAhB;AAgBA","sourcesContent":["/**\n * WordPress dependencies\n */\n\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport default function useListViewClientIds( blocks ) {\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetDraggedBlockClientIds,\n\t\t\t\tgetSelectedBlockClientIds,\n\t\t\t\t__unstableGetClientIdsTree,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\tselectedClientIds: getSelectedBlockClientIds(),\n\t\t\t\tdraggedClientIds: getDraggedBlockClientIds(),\n\t\t\t\tclientIdsTree: blocks ? blocks : __unstableGetClientIdsTree(),\n\t\t\t};\n\t\t},\n\t\t[ blocks ]\n\t);\n}\n"]}
|
|
@@ -71,7 +71,10 @@ export function MediaPlaceholder({
|
|
|
71
71
|
onDoubleClick,
|
|
72
72
|
onFilesPreUpload = noop,
|
|
73
73
|
onHTMLDrop = noop,
|
|
74
|
-
children
|
|
74
|
+
children,
|
|
75
|
+
mediaLibraryButton,
|
|
76
|
+
placeholder,
|
|
77
|
+
style
|
|
75
78
|
}) {
|
|
76
79
|
const mediaUpload = useSelect(select => {
|
|
77
80
|
const {
|
|
@@ -183,7 +186,7 @@ export function MediaPlaceholder({
|
|
|
183
186
|
onFilesUpload(event.target.files);
|
|
184
187
|
};
|
|
185
188
|
|
|
186
|
-
const
|
|
189
|
+
const defaultRenderPlaceholder = content => {
|
|
187
190
|
let {
|
|
188
191
|
instructions,
|
|
189
192
|
title
|
|
@@ -235,12 +238,14 @@ export function MediaPlaceholder({
|
|
|
235
238
|
instructions: instructions,
|
|
236
239
|
className: placeholderClassName,
|
|
237
240
|
notices: notices,
|
|
238
|
-
onClick: onClick,
|
|
239
241
|
onDoubleClick: onDoubleClick,
|
|
240
|
-
preview: mediaPreview
|
|
242
|
+
preview: mediaPreview,
|
|
243
|
+
style: style
|
|
241
244
|
}, content, children);
|
|
242
245
|
};
|
|
243
246
|
|
|
247
|
+
const renderPlaceholder = placeholder !== null && placeholder !== void 0 ? placeholder : defaultRenderPlaceholder;
|
|
248
|
+
|
|
244
249
|
const renderDropZone = () => {
|
|
245
250
|
if (disableDropZone) {
|
|
246
251
|
return null;
|
|
@@ -278,7 +283,19 @@ export function MediaPlaceholder({
|
|
|
278
283
|
};
|
|
279
284
|
|
|
280
285
|
const renderMediaUploadChecked = () => {
|
|
281
|
-
const
|
|
286
|
+
const defaultButton = ({
|
|
287
|
+
open
|
|
288
|
+
}) => {
|
|
289
|
+
return createElement(Button, {
|
|
290
|
+
variant: "tertiary",
|
|
291
|
+
onClick: () => {
|
|
292
|
+
open();
|
|
293
|
+
}
|
|
294
|
+
}, __('Media Library'));
|
|
295
|
+
};
|
|
296
|
+
|
|
297
|
+
const libraryButton = mediaLibraryButton !== null && mediaLibraryButton !== void 0 ? mediaLibraryButton : defaultButton;
|
|
298
|
+
const uploadMediaLibraryButton = createElement(MediaUpload, {
|
|
282
299
|
addToGallery: addToGallery,
|
|
283
300
|
gallery: multiple && onlyAllowsImages(),
|
|
284
301
|
multiple: multiple,
|
|
@@ -287,16 +304,7 @@ export function MediaPlaceholder({
|
|
|
287
304
|
value: Array.isArray(value) ? value.map(({
|
|
288
305
|
id
|
|
289
306
|
}) => id) : value.id,
|
|
290
|
-
render:
|
|
291
|
-
open
|
|
292
|
-
}) => {
|
|
293
|
-
return createElement(Button, {
|
|
294
|
-
variant: "tertiary",
|
|
295
|
-
onClick: () => {
|
|
296
|
-
open();
|
|
297
|
-
}
|
|
298
|
-
}, __('Media Library'));
|
|
299
|
-
}
|
|
307
|
+
render: libraryButton
|
|
300
308
|
});
|
|
301
309
|
|
|
302
310
|
if (mediaUpload && isAppender) {
|
|
@@ -309,9 +317,10 @@ export function MediaPlaceholder({
|
|
|
309
317
|
}) => {
|
|
310
318
|
const content = createElement(Fragment, null, createElement(Button, {
|
|
311
319
|
variant: "primary",
|
|
312
|
-
className: classnames('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button')
|
|
313
|
-
|
|
314
|
-
|
|
320
|
+
className: classnames('block-editor-media-placeholder__button', 'block-editor-media-placeholder__upload-button'),
|
|
321
|
+
onClick: openFileDialog
|
|
322
|
+
}, __('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderCancelLink());
|
|
323
|
+
return renderPlaceholder(content);
|
|
315
324
|
}
|
|
316
325
|
}));
|
|
317
326
|
}
|
|
@@ -323,11 +332,11 @@ export function MediaPlaceholder({
|
|
|
323
332
|
onChange: onUpload,
|
|
324
333
|
accept: accept,
|
|
325
334
|
multiple: multiple
|
|
326
|
-
}, __('Upload')),
|
|
335
|
+
}, __('Upload')), uploadMediaLibraryButton, renderUrlSelectionUI(), renderCancelLink());
|
|
327
336
|
return renderPlaceholder(content);
|
|
328
337
|
}
|
|
329
338
|
|
|
330
|
-
return renderPlaceholder(
|
|
339
|
+
return renderPlaceholder(uploadMediaLibraryButton);
|
|
331
340
|
};
|
|
332
341
|
|
|
333
342
|
if (dropZoneUIOnly || disableMediaButtons) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"names":["noop","classnames","Button","FormFileUpload","Placeholder","DropZone","withFilters","__","useState","useEffect","useSelect","deprecated","keyboardReturn","MediaUpload","MediaUploadCheck","URLPopover","store","blockEditorStore","InsertFromURLPopover","src","onChange","onSubmit","onClose","MediaPlaceholder","value","allowedTypes","className","icon","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","dropZoneUIOnly","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onSelectURL","onDoubleClick","onFilesPreUpload","onHTMLDrop","children","mediaUpload","select","getSettings","setSrc","isURLInputVisible","setIsURLInputVisible","onlyAllowsImages","length","every","allowedType","startsWith","onChangeSrc","event","target","openURLInput","closeURLInput","onSubmitSrc","preventDefault","onFilesUpload","files","setMedia","lastMediaPassed","newMedia","filteredMedia","filter","item","id","some","Number","urlSlug","url","includes","concat","map","media","cutOffIndex","lastIndexOf","slice","filesList","onFileChange","onUpload","renderPlaceholder","content","onClick","instructions","title","undefined","typesAllowed","firstAllowedType","isOneType","isAudio","isImage","isVideo","placeholderClassName","renderDropZone","renderCancelLink","renderUrlSelectionUI","renderMediaUploadChecked","mediaLibraryButton","Array","isArray","open","openFileDialog","since","alternative"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFormFileUpload,\n\tPlaceholder,\n\tDropZone,\n\twithFilters,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport URLPopover from '../url-popover';\nimport { store as blockEditorStore } from '../../store';\n\nconst InsertFromURLPopover = ( { src, onChange, onSubmit, onClose } ) => (\n\t<URLPopover onClose={ onClose }>\n\t\t<form\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-form\"\n\t\t\tonSubmit={ onSubmit }\n\t\t>\n\t\t\t<input\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-field\"\n\t\t\t\ttype=\"text\"\n\t\t\t\taria-label={ __( 'URL' ) }\n\t\t\t\tplaceholder={ __( 'Paste or type URL' ) }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalue={ src }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-submit-button\"\n\t\t\t\ticon={ keyboardReturn }\n\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\ttype=\"submit\"\n\t\t\t/>\n\t\t</form>\n\t</URLPopover>\n);\n\nexport function MediaPlaceholder( {\n\tvalue = {},\n\tallowedTypes,\n\tclassName,\n\ticon,\n\tlabels = {},\n\tmediaPreview,\n\tnotices,\n\tisAppender,\n\taccept,\n\taddToGallery,\n\tmultiple = false,\n\thandleUpload = true,\n\tdropZoneUIOnly,\n\tdisableDropZone,\n\tdisableMediaButtons,\n\tonError,\n\tonSelect,\n\tonCancel,\n\tonSelectURL,\n\tonDoubleClick,\n\tonFilesPreUpload = noop,\n\tonHTMLDrop = noop,\n\tchildren,\n} ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\tconst [ src, setSrc ] = useState( '' );\n\tconst [ isURLInputVisible, setIsURLInputVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tsetSrc( value?.src ?? '' );\n\t}, [ value?.src ] );\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst onChangeSrc = ( event ) => {\n\t\tsetSrc( event.target.value );\n\t};\n\n\tconst openURLInput = () => {\n\t\tsetIsURLInputVisible( true );\n\t};\n\tconst closeURLInput = () => {\n\t\tsetIsURLInputVisible( false );\n\t};\n\n\tconst onSubmitSrc = ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( src && onSelectURL ) {\n\t\t\tonSelectURL( src );\n\t\t\tcloseURLInput();\n\t\t}\n\t};\n\n\tconst onFilesUpload = ( files ) => {\n\t\tif ( ! handleUpload ) {\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesPreUpload( files );\n\t\tlet setMedia;\n\t\tif ( multiple ) {\n\t\t\tif ( addToGallery ) {\n\t\t\t\t// Since the setMedia function runs multiple times per upload group\n\t\t\t\t// and is passed newMedia containing every item in its group each time, we must\n\t\t\t\t// filter out whatever this upload group had previously returned to the\n\t\t\t\t// gallery before adding and returning the image array with replacement newMedia\n\t\t\t\t// values.\n\n\t\t\t\t// Define an array to store urls from newMedia between subsequent function calls.\n\t\t\t\tlet lastMediaPassed = [];\n\t\t\t\tsetMedia = ( newMedia ) => {\n\t\t\t\t\t// Remove any images this upload group is responsible for (lastMediaPassed).\n\t\t\t\t\t// Their replacements are contained in newMedia.\n\t\t\t\t\tconst filteredMedia = ( value ?? [] ).filter( ( item ) => {\n\t\t\t\t\t\t// If Item has id, only remove it if lastMediaPassed has an item with that id.\n\t\t\t\t\t\tif ( item.id ) {\n\t\t\t\t\t\t\treturn ! lastMediaPassed.some(\n\t\t\t\t\t\t\t\t// Be sure to convert to number for comparison.\n\t\t\t\t\t\t\t\t( { id } ) => Number( id ) === Number( item.id )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compare transient images via .includes since gallery may append extra info onto the url.\n\t\t\t\t\t\treturn ! lastMediaPassed.some( ( { urlSlug } ) =>\n\t\t\t\t\t\t\titem.url.includes( urlSlug )\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t\t// Return the filtered media array along with newMedia.\n\t\t\t\t\tonSelect( filteredMedia.concat( newMedia ) );\n\t\t\t\t\t// Reset lastMediaPassed and set it with ids and urls from newMedia.\n\t\t\t\t\tlastMediaPassed = newMedia.map( ( media ) => {\n\t\t\t\t\t\t// Add everything up to '.fileType' to compare via .includes.\n\t\t\t\t\t\tconst cutOffIndex = media.url.lastIndexOf( '.' );\n\t\t\t\t\t\tconst urlSlug = media.url.slice( 0, cutOffIndex );\n\t\t\t\t\t\treturn { id: media.id, urlSlug };\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsetMedia = onSelect;\n\t\t\t}\n\t\t} else {\n\t\t\tsetMedia = ( [ media ] ) => onSelect( media );\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tconst onUpload = ( event ) => {\n\t\tonFilesUpload( event.target.files );\n\t};\n\n\tconst renderPlaceholder = ( content, onClick ) => {\n\t\tlet { instructions, title } = labels;\n\n\t\tif ( ! mediaUpload && ! onSelectURL ) {\n\t\t\tinstructions = __(\n\t\t\t\t'To edit this block, you need permission to upload media.'\n\t\t\t);\n\t\t}\n\n\t\tif ( instructions === undefined || title === undefined ) {\n\t\t\tconst typesAllowed = allowedTypes ?? [];\n\n\t\t\tconst [ firstAllowedType ] = typesAllowed;\n\t\t\tconst isOneType = 1 === typesAllowed.length;\n\t\t\tconst isAudio = isOneType && 'audio' === firstAllowedType;\n\t\t\tconst isImage = isOneType && 'image' === firstAllowedType;\n\t\t\tconst isVideo = isOneType && 'video' === firstAllowedType;\n\n\t\t\tif ( instructions === undefined && mediaUpload ) {\n\t\t\t\tinstructions = __(\n\t\t\t\t\t'Upload a media file or pick one from your media library.'\n\t\t\t\t);\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an audio file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( title === undefined ) {\n\t\t\t\ttitle = __( 'Media' );\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\ttitle = __( 'Audio' );\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\ttitle = __( 'Image' );\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\ttitle = __( 'Video' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'is-appender': isAppender,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tinstructions={ instructions }\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tnotices={ notices }\n\t\t\t\tonClick={ onClick }\n\t\t\t\tonDoubleClick={ onDoubleClick }\n\t\t\t\tpreview={ mediaPreview }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t\t{ children }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\n\tconst renderDropZone = () => {\n\t\tif ( disableDropZone ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<DropZone onFilesDrop={ onFilesUpload } onHTMLDrop={ onHTMLDrop } />\n\t\t);\n\t};\n\n\tconst renderCancelLink = () => {\n\t\treturn (\n\t\t\tonCancel && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-media-placeholder__cancel-button\"\n\t\t\t\t\ttitle={ __( 'Cancel' ) }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderUrlSelectionUI = () => {\n\t\treturn (\n\t\t\tonSelectURL && (\n\t\t\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\t\t\tonClick={ openURLInput }\n\t\t\t\t\t\tisPressed={ isURLInputVisible }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert from URL' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t{ isURLInputVisible && (\n\t\t\t\t\t\t<InsertFromURLPopover\n\t\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\t\tonChange={ onChangeSrc }\n\t\t\t\t\t\t\tonSubmit={ onSubmitSrc }\n\t\t\t\t\t\t\tonClose={ closeURLInput }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderMediaUploadChecked = () => {\n\t\tconst mediaLibraryButton = (\n\t\t\t<MediaUpload\n\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\tgallery={ multiple && onlyAllowsImages() }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tvalue={\n\t\t\t\t\tArray.isArray( value )\n\t\t\t\t\t\t? value.map( ( { id } ) => id )\n\t\t\t\t\t\t: value.id\n\t\t\t\t}\n\t\t\t\trender={ ( { open } ) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\topen();\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Media Library' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\n\t\tif ( mediaUpload && isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{ mediaLibraryButton }\n\t\t\t\t\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn renderPlaceholder( content, openFileDialog );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tif ( mediaUpload ) {\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</FormFileUpload>\n\t\t\t\t\t{ mediaLibraryButton }\n\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t</>\n\t\t\t);\n\t\t\treturn renderPlaceholder( content );\n\t\t}\n\n\t\treturn renderPlaceholder( mediaLibraryButton );\n\t};\n\n\tif ( dropZoneUIOnly || disableMediaButtons ) {\n\t\tif ( dropZoneUIOnly ) {\n\t\t\tdeprecated( 'wp.blockEditor.MediaPlaceholder dropZoneUIOnly prop', {\n\t\t\t\tsince: '5.4',\n\t\t\t\talternative: 'disableMediaButtons',\n\t\t\t} );\n\t\t}\n\n\t\treturn <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck\n\t\t\tfallback={ renderPlaceholder( renderUrlSelectionUI() ) }\n\t\t>\n\t\t\t{ renderMediaUploadChecked() }\n\t\t</MediaUploadCheck>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters( 'editor.MediaPlaceholder' )( MediaPlaceholder );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/media-placeholder/index.js"],"names":["noop","classnames","Button","FormFileUpload","Placeholder","DropZone","withFilters","__","useState","useEffect","useSelect","deprecated","keyboardReturn","MediaUpload","MediaUploadCheck","URLPopover","store","blockEditorStore","InsertFromURLPopover","src","onChange","onSubmit","onClose","MediaPlaceholder","value","allowedTypes","className","icon","labels","mediaPreview","notices","isAppender","accept","addToGallery","multiple","handleUpload","dropZoneUIOnly","disableDropZone","disableMediaButtons","onError","onSelect","onCancel","onSelectURL","onDoubleClick","onFilesPreUpload","onHTMLDrop","children","mediaLibraryButton","placeholder","style","mediaUpload","select","getSettings","setSrc","isURLInputVisible","setIsURLInputVisible","onlyAllowsImages","length","every","allowedType","startsWith","onChangeSrc","event","target","openURLInput","closeURLInput","onSubmitSrc","preventDefault","onFilesUpload","files","setMedia","lastMediaPassed","newMedia","filteredMedia","filter","item","id","some","Number","urlSlug","url","includes","concat","map","media","cutOffIndex","lastIndexOf","slice","filesList","onFileChange","onUpload","defaultRenderPlaceholder","content","instructions","title","undefined","typesAllowed","firstAllowedType","isOneType","isAudio","isImage","isVideo","placeholderClassName","renderPlaceholder","renderDropZone","renderCancelLink","renderUrlSelectionUI","renderMediaUploadChecked","defaultButton","open","libraryButton","uploadMediaLibraryButton","Array","isArray","openFileDialog","since","alternative"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tFormFileUpload,\n\tPlaceholder,\n\tDropZone,\n\twithFilters,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState, useEffect } from '@wordpress/element';\nimport { useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { keyboardReturn } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport MediaUpload from '../media-upload';\nimport MediaUploadCheck from '../media-upload/check';\nimport URLPopover from '../url-popover';\nimport { store as blockEditorStore } from '../../store';\n\nconst InsertFromURLPopover = ( { src, onChange, onSubmit, onClose } ) => (\n\t<URLPopover onClose={ onClose }>\n\t\t<form\n\t\t\tclassName=\"block-editor-media-placeholder__url-input-form\"\n\t\t\tonSubmit={ onSubmit }\n\t\t>\n\t\t\t<input\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-field\"\n\t\t\t\ttype=\"text\"\n\t\t\t\taria-label={ __( 'URL' ) }\n\t\t\t\tplaceholder={ __( 'Paste or type URL' ) }\n\t\t\t\tonChange={ onChange }\n\t\t\t\tvalue={ src }\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\tclassName=\"block-editor-media-placeholder__url-input-submit-button\"\n\t\t\t\ticon={ keyboardReturn }\n\t\t\t\tlabel={ __( 'Apply' ) }\n\t\t\t\ttype=\"submit\"\n\t\t\t/>\n\t\t</form>\n\t</URLPopover>\n);\n\nexport function MediaPlaceholder( {\n\tvalue = {},\n\tallowedTypes,\n\tclassName,\n\ticon,\n\tlabels = {},\n\tmediaPreview,\n\tnotices,\n\tisAppender,\n\taccept,\n\taddToGallery,\n\tmultiple = false,\n\thandleUpload = true,\n\tdropZoneUIOnly,\n\tdisableDropZone,\n\tdisableMediaButtons,\n\tonError,\n\tonSelect,\n\tonCancel,\n\tonSelectURL,\n\tonDoubleClick,\n\tonFilesPreUpload = noop,\n\tonHTMLDrop = noop,\n\tchildren,\n\tmediaLibraryButton,\n\tplaceholder,\n\tstyle,\n} ) {\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\tconst [ src, setSrc ] = useState( '' );\n\tconst [ isURLInputVisible, setIsURLInputVisible ] = useState( false );\n\n\tuseEffect( () => {\n\t\tsetSrc( value?.src ?? '' );\n\t}, [ value?.src ] );\n\n\tconst onlyAllowsImages = () => {\n\t\tif ( ! allowedTypes || allowedTypes.length === 0 ) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn allowedTypes.every(\n\t\t\t( allowedType ) =>\n\t\t\t\tallowedType === 'image' || allowedType.startsWith( 'image/' )\n\t\t);\n\t};\n\n\tconst onChangeSrc = ( event ) => {\n\t\tsetSrc( event.target.value );\n\t};\n\n\tconst openURLInput = () => {\n\t\tsetIsURLInputVisible( true );\n\t};\n\tconst closeURLInput = () => {\n\t\tsetIsURLInputVisible( false );\n\t};\n\n\tconst onSubmitSrc = ( event ) => {\n\t\tevent.preventDefault();\n\t\tif ( src && onSelectURL ) {\n\t\t\tonSelectURL( src );\n\t\t\tcloseURLInput();\n\t\t}\n\t};\n\n\tconst onFilesUpload = ( files ) => {\n\t\tif ( ! handleUpload ) {\n\t\t\treturn onSelect( files );\n\t\t}\n\t\tonFilesPreUpload( files );\n\t\tlet setMedia;\n\t\tif ( multiple ) {\n\t\t\tif ( addToGallery ) {\n\t\t\t\t// Since the setMedia function runs multiple times per upload group\n\t\t\t\t// and is passed newMedia containing every item in its group each time, we must\n\t\t\t\t// filter out whatever this upload group had previously returned to the\n\t\t\t\t// gallery before adding and returning the image array with replacement newMedia\n\t\t\t\t// values.\n\n\t\t\t\t// Define an array to store urls from newMedia between subsequent function calls.\n\t\t\t\tlet lastMediaPassed = [];\n\t\t\t\tsetMedia = ( newMedia ) => {\n\t\t\t\t\t// Remove any images this upload group is responsible for (lastMediaPassed).\n\t\t\t\t\t// Their replacements are contained in newMedia.\n\t\t\t\t\tconst filteredMedia = ( value ?? [] ).filter( ( item ) => {\n\t\t\t\t\t\t// If Item has id, only remove it if lastMediaPassed has an item with that id.\n\t\t\t\t\t\tif ( item.id ) {\n\t\t\t\t\t\t\treturn ! lastMediaPassed.some(\n\t\t\t\t\t\t\t\t// Be sure to convert to number for comparison.\n\t\t\t\t\t\t\t\t( { id } ) => Number( id ) === Number( item.id )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Compare transient images via .includes since gallery may append extra info onto the url.\n\t\t\t\t\t\treturn ! lastMediaPassed.some( ( { urlSlug } ) =>\n\t\t\t\t\t\t\titem.url.includes( urlSlug )\n\t\t\t\t\t\t);\n\t\t\t\t\t} );\n\t\t\t\t\t// Return the filtered media array along with newMedia.\n\t\t\t\t\tonSelect( filteredMedia.concat( newMedia ) );\n\t\t\t\t\t// Reset lastMediaPassed and set it with ids and urls from newMedia.\n\t\t\t\t\tlastMediaPassed = newMedia.map( ( media ) => {\n\t\t\t\t\t\t// Add everything up to '.fileType' to compare via .includes.\n\t\t\t\t\t\tconst cutOffIndex = media.url.lastIndexOf( '.' );\n\t\t\t\t\t\tconst urlSlug = media.url.slice( 0, cutOffIndex );\n\t\t\t\t\t\treturn { id: media.id, urlSlug };\n\t\t\t\t\t} );\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tsetMedia = onSelect;\n\t\t\t}\n\t\t} else {\n\t\t\tsetMedia = ( [ media ] ) => onSelect( media );\n\t\t}\n\t\tmediaUpload( {\n\t\t\tallowedTypes,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: setMedia,\n\t\t\tonError,\n\t\t} );\n\t};\n\n\tconst onUpload = ( event ) => {\n\t\tonFilesUpload( event.target.files );\n\t};\n\n\tconst defaultRenderPlaceholder = ( content ) => {\n\t\tlet { instructions, title } = labels;\n\n\t\tif ( ! mediaUpload && ! onSelectURL ) {\n\t\t\tinstructions = __(\n\t\t\t\t'To edit this block, you need permission to upload media.'\n\t\t\t);\n\t\t}\n\n\t\tif ( instructions === undefined || title === undefined ) {\n\t\t\tconst typesAllowed = allowedTypes ?? [];\n\n\t\t\tconst [ firstAllowedType ] = typesAllowed;\n\t\t\tconst isOneType = 1 === typesAllowed.length;\n\t\t\tconst isAudio = isOneType && 'audio' === firstAllowedType;\n\t\t\tconst isImage = isOneType && 'image' === firstAllowedType;\n\t\t\tconst isVideo = isOneType && 'video' === firstAllowedType;\n\n\t\t\tif ( instructions === undefined && mediaUpload ) {\n\t\t\t\tinstructions = __(\n\t\t\t\t\t'Upload a media file or pick one from your media library.'\n\t\t\t\t);\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an audio file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload an image file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\tinstructions = __(\n\t\t\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( title === undefined ) {\n\t\t\t\ttitle = __( 'Media' );\n\n\t\t\t\tif ( isAudio ) {\n\t\t\t\t\ttitle = __( 'Audio' );\n\t\t\t\t} else if ( isImage ) {\n\t\t\t\t\ttitle = __( 'Image' );\n\t\t\t\t} else if ( isVideo ) {\n\t\t\t\t\ttitle = __( 'Video' );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst placeholderClassName = classnames(\n\t\t\t'block-editor-media-placeholder',\n\t\t\tclassName,\n\t\t\t{\n\t\t\t\t'is-appender': isAppender,\n\t\t\t}\n\t\t);\n\n\t\treturn (\n\t\t\t<Placeholder\n\t\t\t\ticon={ icon }\n\t\t\t\tlabel={ title }\n\t\t\t\tinstructions={ instructions }\n\t\t\t\tclassName={ placeholderClassName }\n\t\t\t\tnotices={ notices }\n\t\t\t\tonDoubleClick={ onDoubleClick }\n\t\t\t\tpreview={ mediaPreview }\n\t\t\t\tstyle={ style }\n\t\t\t>\n\t\t\t\t{ content }\n\t\t\t\t{ children }\n\t\t\t</Placeholder>\n\t\t);\n\t};\n\tconst renderPlaceholder = placeholder ?? defaultRenderPlaceholder;\n\n\tconst renderDropZone = () => {\n\t\tif ( disableDropZone ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<DropZone onFilesDrop={ onFilesUpload } onHTMLDrop={ onHTMLDrop } />\n\t\t);\n\t};\n\n\tconst renderCancelLink = () => {\n\t\treturn (\n\t\t\tonCancel && (\n\t\t\t\t<Button\n\t\t\t\t\tclassName=\"block-editor-media-placeholder__cancel-button\"\n\t\t\t\t\ttitle={ __( 'Cancel' ) }\n\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\tonClick={ onCancel }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t</Button>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderUrlSelectionUI = () => {\n\t\treturn (\n\t\t\tonSelectURL && (\n\t\t\t\t<div className=\"block-editor-media-placeholder__url-input-container\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"block-editor-media-placeholder__button\"\n\t\t\t\t\t\tonClick={ openURLInput }\n\t\t\t\t\t\tisPressed={ isURLInputVisible }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Insert from URL' ) }\n\t\t\t\t\t</Button>\n\t\t\t\t\t{ isURLInputVisible && (\n\t\t\t\t\t\t<InsertFromURLPopover\n\t\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\t\tonChange={ onChangeSrc }\n\t\t\t\t\t\t\tonSubmit={ onSubmitSrc }\n\t\t\t\t\t\t\tonClose={ closeURLInput }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</div>\n\t\t\t)\n\t\t);\n\t};\n\n\tconst renderMediaUploadChecked = () => {\n\t\tconst defaultButton = ( { open } ) => {\n\t\t\treturn (\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\topen();\n\t\t\t\t\t} }\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Media Library' ) }\n\t\t\t\t</Button>\n\t\t\t);\n\t\t};\n\t\tconst libraryButton = mediaLibraryButton ?? defaultButton;\n\t\tconst uploadMediaLibraryButton = (\n\t\t\t<MediaUpload\n\t\t\t\taddToGallery={ addToGallery }\n\t\t\t\tgallery={ multiple && onlyAllowsImages() }\n\t\t\t\tmultiple={ multiple }\n\t\t\t\tonSelect={ onSelect }\n\t\t\t\tallowedTypes={ allowedTypes }\n\t\t\t\tvalue={\n\t\t\t\t\tArray.isArray( value )\n\t\t\t\t\t\t? value.map( ( { id } ) => id )\n\t\t\t\t\t\t: value.id\n\t\t\t\t}\n\t\t\t\trender={ libraryButton }\n\t\t\t/>\n\t\t);\n\n\t\tif ( mediaUpload && isAppender ) {\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t\trender={ ( { openFileDialog } ) => {\n\t\t\t\t\t\t\tconst content = (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\tonClick={ openFileDialog }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn renderPlaceholder( content );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\n\t\tif ( mediaUpload ) {\n\t\t\tconst content = (\n\t\t\t\t<>\n\t\t\t\t\t{ renderDropZone() }\n\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-editor-media-placeholder__button',\n\t\t\t\t\t\t\t'block-editor-media-placeholder__upload-button'\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tonChange={ onUpload }\n\t\t\t\t\t\taccept={ accept }\n\t\t\t\t\t\tmultiple={ multiple }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Upload' ) }\n\t\t\t\t\t</FormFileUpload>\n\t\t\t\t\t{ uploadMediaLibraryButton }\n\t\t\t\t\t{ renderUrlSelectionUI() }\n\t\t\t\t\t{ renderCancelLink() }\n\t\t\t\t</>\n\t\t\t);\n\t\t\treturn renderPlaceholder( content );\n\t\t}\n\n\t\treturn renderPlaceholder( uploadMediaLibraryButton );\n\t};\n\n\tif ( dropZoneUIOnly || disableMediaButtons ) {\n\t\tif ( dropZoneUIOnly ) {\n\t\t\tdeprecated( 'wp.blockEditor.MediaPlaceholder dropZoneUIOnly prop', {\n\t\t\t\tsince: '5.4',\n\t\t\t\talternative: 'disableMediaButtons',\n\t\t\t} );\n\t\t}\n\n\t\treturn <MediaUploadCheck>{ renderDropZone() }</MediaUploadCheck>;\n\t}\n\n\treturn (\n\t\t<MediaUploadCheck\n\t\t\tfallback={ renderPlaceholder( renderUrlSelectionUI() ) }\n\t\t>\n\t\t\t{ renderMediaUploadChecked() }\n\t\t</MediaUploadCheck>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters( 'editor.MediaPlaceholder' )( MediaPlaceholder );\n"]}
|
|
@@ -36,7 +36,8 @@ const MediaReplaceFlow = ({
|
|
|
36
36
|
onFilesUpload = noop,
|
|
37
37
|
name = __('Replace'),
|
|
38
38
|
createNotice,
|
|
39
|
-
removeNotice
|
|
39
|
+
removeNotice,
|
|
40
|
+
children
|
|
40
41
|
}) => {
|
|
41
42
|
const [mediaURLValue, setMediaURLValue] = useState(mediaURL);
|
|
42
43
|
const mediaUpload = useSelect(select => {
|
|
@@ -69,8 +70,9 @@ const MediaReplaceFlow = ({
|
|
|
69
70
|
};
|
|
70
71
|
|
|
71
72
|
const selectMedia = media => {
|
|
73
|
+
setMediaURLValue(media.url); // Calling `onSelect` after the state update since it might unmount the component.
|
|
74
|
+
|
|
72
75
|
onSelect(media);
|
|
73
|
-
setMediaURLValue(media.url);
|
|
74
76
|
speak(__('The media file has been replaced'));
|
|
75
77
|
removeNotice(errorNoticeID);
|
|
76
78
|
};
|
|
@@ -147,7 +149,7 @@ const MediaReplaceFlow = ({
|
|
|
147
149
|
}
|
|
148
150
|
}, __('Upload'));
|
|
149
151
|
}
|
|
150
|
-
}))), onSelectURL && // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
|
152
|
+
})), children), onSelectURL && // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
|
|
151
153
|
createElement("form", {
|
|
152
154
|
className: "block-editor-media-flow__url-input"
|
|
153
155
|
}, createElement("span", {
|