@wordpress/block-editor 8.3.1 → 8.5.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 +4 -0
- package/README.md +56 -18
- package/build/components/alignment-control/index.js +13 -6
- package/build/components/alignment-control/index.js.map +1 -1
- package/build/components/block-alignment-control/index.js +13 -6
- package/build/components/block-alignment-control/index.js.map +1 -1
- package/build/components/block-content-overlay/index.js +13 -4
- package/build/components/block-content-overlay/index.js.map +1 -1
- package/build/components/block-draggable/index.js +2 -3
- package/build/components/block-draggable/index.js.map +1 -1
- package/build/components/block-icon/index.js +4 -0
- package/build/components/block-icon/index.js.map +1 -1
- package/build/components/block-inspector/index.js +6 -1
- package/build/components/block-inspector/index.js.map +1 -1
- package/build/components/block-list/block-html.js +4 -1
- package/build/components/block-list/block-html.js.map +1 -1
- package/build/components/block-list/block.js +4 -1
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +1 -6
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-first-element.js +22 -6
- package/build/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js +7 -1
- package/build/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build/components/block-list-appender/index.js +6 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-lock/index.js +40 -0
- package/build/components/block-lock/index.js.map +1 -0
- package/build/components/block-lock/menu-item.js +52 -0
- package/build/components/block-lock/menu-item.js.map +1 -0
- package/build/components/block-lock/modal.js +155 -0
- package/build/components/block-lock/modal.js.map +1 -0
- package/build/components/block-lock/toolbar.js +65 -0
- package/build/components/block-lock/toolbar.js.map +1 -0
- package/build/components/block-lock/use-block-lock.js +53 -0
- package/build/components/block-lock/use-block-lock.js.map +1 -0
- package/build/components/block-mover/index.js +4 -0
- package/build/components/block-mover/index.js.map +1 -1
- package/build/components/block-pattern-setup/index.js +37 -22
- package/build/components/block-pattern-setup/index.js.map +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js +1 -1
- package/build/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build/components/block-preview/auto.js +6 -3
- package/build/components/block-preview/auto.js.map +1 -1
- package/build/components/block-preview/index.js +4 -2
- package/build/components/block-preview/index.js.map +1 -1
- package/build/components/block-settings-menu/block-settings-dropdown.js +75 -10
- package/build/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build/components/block-settings-menu-controls/index.js +19 -9
- package/build/components/block-settings-menu-controls/index.js.map +1 -1
- package/build/components/block-switcher/index.js +8 -3
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-title/index.js +2 -2
- package/build/components/block-title/index.js.map +1 -1
- package/build/components/block-title/use-block-display-title.js +8 -6
- package/build/components/block-title/use-block-display-title.js.map +1 -1
- package/build/components/block-toolbar/block-name-context.js +17 -0
- package/build/components/block-toolbar/block-name-context.js.map +1 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js +20 -0
- package/build/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build/components/block-toolbar/index.js +24 -5
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/index.js +0 -16
- package/build/components/block-tools/index.js.map +1 -1
- package/build/components/block-variation-transforms/index.js +92 -47
- package/build/components/block-variation-transforms/index.js.map +1 -1
- package/build/components/block-vertical-alignment-control/index.js +13 -6
- package/build/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build/components/border-radius-control/index.js +0 -1
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/border-radius-control/utils.js +1 -1
- package/build/components/border-radius-control/utils.js.map +1 -1
- package/build/components/colors-gradients/control.js +3 -1
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/contrast-checker/index.js +4 -0
- package/build/components/contrast-checker/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +8 -0
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/toolbar.js +105 -0
- package/build/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build/components/copy-handler/index.js +4 -0
- package/build/components/copy-handler/index.js.map +1 -1
- package/build/components/date-format-picker/index.js +132 -0
- package/build/components/date-format-picker/index.js.map +1 -0
- package/build/components/font-sizes/font-size-picker.js +4 -0
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/iframe/index.js +6 -9
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/index.js +27 -0
- package/build/components/index.js.map +1 -1
- package/build/components/justify-content-control/index.js +13 -6
- package/build/components/justify-content-control/index.js.map +1 -1
- package/build/components/keyboard-shortcuts/index.js +1 -1
- package/build/components/keyboard-shortcuts/index.js.map +1 -1
- package/build/components/line-height-control/index.js +15 -6
- package/build/components/line-height-control/index.js.map +1 -1
- package/build/components/list-view/block-select-button.js +18 -23
- package/build/components/list-view/block-select-button.js.map +1 -1
- package/build/components/list-view/block.js +38 -13
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +16 -13
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +7 -1
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-block-selection.js +9 -2
- package/build/components/list-view/use-block-selection.js.map +1 -1
- package/build/components/media-replace-flow/index.js +4 -0
- package/build/components/media-replace-flow/index.js.map +1 -1
- package/build/components/multi-selection-inspector/index.js +1 -1
- package/build/components/multi-selection-inspector/index.js.map +1 -1
- package/build/components/rich-text/index.js +27 -5
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/rich-text/index.native.js +13 -9
- package/build/components/rich-text/index.native.js.map +1 -1
- package/build/components/rich-text/split-value.js +12 -2
- package/build/components/rich-text/split-value.js.map +1 -1
- package/build/components/rich-text/use-firefox-compat.js +49 -0
- package/build/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build/components/rich-text/use-input-rules.js +34 -2
- package/build/components/rich-text/use-input-rules.js.map +1 -1
- package/build/components/skip-to-selected-block/index.js +4 -0
- package/build/components/skip-to-selected-block/index.js.map +1 -1
- package/build/components/url-popover/image-url-input-ui.js +11 -27
- package/build/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build/components/writing-flow/index.js +9 -1
- package/build/components/writing-flow/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +3 -44
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/components/writing-flow/use-click-selection.js +68 -0
- package/build/components/writing-flow/use-click-selection.js.map +1 -0
- package/build/components/writing-flow/use-drag-selection.js +134 -0
- package/build/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build/components/writing-flow/use-input.js +116 -0
- package/build/components/writing-flow/use-input.js.map +1 -0
- package/build/components/writing-flow/use-multi-selection.js +18 -38
- package/build/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build/components/writing-flow/use-selection-observer.js +161 -0
- package/build/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build/components/writing-flow/use-tab-nav.js +1 -8
- package/build/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build/hooks/anchor.js +7 -6
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/border-color.js +3 -3
- package/build/hooks/border-color.js.map +1 -1
- package/build/hooks/border.js +0 -14
- package/build/hooks/border.js.map +1 -1
- package/build/hooks/color.js +20 -17
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/font-family.js +5 -1
- package/build/hooks/font-family.js.map +1 -1
- package/build/hooks/font-size.js +4 -2
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/gap.js +77 -5
- package/build/hooks/gap.js.map +1 -1
- package/build/hooks/layout.js +7 -2
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/style.js +34 -3
- package/build/hooks/style.js.map +1 -1
- package/build/hooks/utils.js +29 -0
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/flex.js +82 -15
- package/build/layouts/flex.js.map +1 -1
- package/build/layouts/flow.js +22 -13
- package/build/layouts/flow.js.map +1 -1
- package/build/store/actions.js +297 -51
- package/build/store/actions.js.map +1 -1
- package/build/store/defaults.js +5 -1
- package/build/store/defaults.js.map +1 -1
- package/build/store/reducer.js +25 -13
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +197 -23
- package/build/store/selectors.js.map +1 -1
- package/build/utils/dom.js +2 -1
- package/build/utils/dom.js.map +1 -1
- package/build-module/components/alignment-control/index.js +12 -4
- package/build-module/components/alignment-control/index.js.map +1 -1
- package/build-module/components/block-alignment-control/index.js +12 -4
- package/build-module/components/block-alignment-control/index.js.map +1 -1
- package/build-module/components/block-content-overlay/index.js +13 -4
- package/build-module/components/block-content-overlay/index.js.map +1 -1
- package/build-module/components/block-draggable/index.js +2 -3
- package/build-module/components/block-draggable/index.js.map +1 -1
- package/build-module/components/block-icon/index.js +4 -0
- package/build-module/components/block-icon/index.js.map +1 -1
- package/build-module/components/block-inspector/index.js +6 -1
- package/build-module/components/block-inspector/index.js.map +1 -1
- package/build-module/components/block-list/block-html.js +5 -2
- package/build-module/components/block-list/block-html.js.map +1 -1
- package/build-module/components/block-list/block.js +5 -2
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -4
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js +22 -6
- package/build-module/components/block-list/use-block-props/use-focus-first-element.js.map +1 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js +7 -1
- package/build-module/components/block-list/use-block-props/use-focus-handler.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +6 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-lock/index.js +5 -0
- package/build-module/components/block-lock/index.js.map +1 -0
- package/build-module/components/block-lock/menu-item.js +39 -0
- package/build-module/components/block-lock/menu-item.js.map +1 -0
- package/build-module/components/block-lock/modal.js +138 -0
- package/build-module/components/block-lock/modal.js.map +1 -0
- package/build-module/components/block-lock/toolbar.js +51 -0
- package/build-module/components/block-lock/toolbar.js.map +1 -0
- package/build-module/components/block-lock/use-block-lock.js +44 -0
- package/build-module/components/block-lock/use-block-lock.js.map +1 -0
- package/build-module/components/block-mover/index.js +4 -0
- package/build-module/components/block-mover/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/index.js +39 -24
- package/build-module/components/block-pattern-setup/index.js.map +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js +1 -1
- package/build-module/components/block-pattern-setup/setup-toolbar.js.map +1 -1
- package/build-module/components/block-preview/auto.js +6 -3
- package/build-module/components/block-preview/auto.js.map +1 -1
- package/build-module/components/block-preview/index.js +4 -2
- package/build-module/components/block-preview/index.js.map +1 -1
- package/build-module/components/block-settings-menu/block-settings-dropdown.js +75 -12
- package/build-module/components/block-settings-menu/block-settings-dropdown.js.map +1 -1
- package/build-module/components/block-settings-menu-controls/index.js +18 -9
- package/build-module/components/block-settings-menu-controls/index.js.map +1 -1
- package/build-module/components/block-switcher/index.js +9 -4
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-title/index.js +2 -2
- package/build-module/components/block-title/index.js.map +1 -1
- package/build-module/components/block-title/use-block-display-title.js +8 -6
- package/build-module/components/block-title/use-block-display-title.js.map +1 -1
- package/build-module/components/block-toolbar/block-name-context.js +9 -0
- package/build-module/components/block-toolbar/block-name-context.js.map +1 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js +11 -0
- package/build-module/components/block-toolbar/block-toolbar-last-item.js.map +1 -0
- package/build-module/components/block-toolbar/index.js +19 -4
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/index.js +0 -16
- package/build-module/components/block-tools/index.js.map +1 -1
- package/build-module/components/block-variation-transforms/index.js +95 -49
- package/build-module/components/block-variation-transforms/index.js.map +1 -1
- package/build-module/components/block-vertical-alignment-control/index.js +12 -4
- package/build-module/components/block-vertical-alignment-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +0 -1
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/border-radius-control/utils.js +1 -1
- package/build-module/components/border-radius-control/utils.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +3 -1
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/contrast-checker/index.js +4 -0
- package/build-module/components/contrast-checker/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +2 -1
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/toolbar.js +90 -0
- package/build-module/components/convert-to-group-buttons/toolbar.js.map +1 -0
- package/build-module/components/copy-handler/index.js +4 -0
- package/build-module/components/copy-handler/index.js.map +1 -1
- package/build-module/components/date-format-picker/index.js +122 -0
- package/build-module/components/date-format-picker/index.js.map +1 -0
- package/build-module/components/font-sizes/font-size-picker.js +4 -0
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/iframe/index.js +6 -9
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/index.js +3 -0
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/justify-content-control/index.js +12 -4
- package/build-module/components/justify-content-control/index.js.map +1 -1
- package/build-module/components/keyboard-shortcuts/index.js +1 -1
- package/build-module/components/keyboard-shortcuts/index.js.map +1 -1
- package/build-module/components/line-height-control/index.js +14 -5
- package/build-module/components/line-height-control/index.js.map +1 -1
- package/build-module/components/list-view/block-select-button.js +19 -23
- package/build-module/components/list-view/block-select-button.js.map +1 -1
- package/build-module/components/list-view/block.js +36 -13
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +16 -13
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +7 -1
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-block-selection.js +10 -3
- package/build-module/components/list-view/use-block-selection.js.map +1 -1
- package/build-module/components/media-replace-flow/index.js +4 -0
- package/build-module/components/media-replace-flow/index.js.map +1 -1
- package/build-module/components/multi-selection-inspector/index.js +2 -2
- package/build-module/components/multi-selection-inspector/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +26 -5
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/rich-text/index.native.js +13 -9
- package/build-module/components/rich-text/index.native.js.map +1 -1
- package/build-module/components/rich-text/split-value.js +12 -2
- package/build-module/components/rich-text/split-value.js.map +1 -1
- package/build-module/components/rich-text/use-firefox-compat.js +39 -0
- package/build-module/components/rich-text/use-firefox-compat.js.map +1 -0
- package/build-module/components/rich-text/use-input-rules.js +35 -4
- package/build-module/components/rich-text/use-input-rules.js.map +1 -1
- package/build-module/components/skip-to-selected-block/index.js +4 -0
- package/build-module/components/skip-to-selected-block/index.js.map +1 -1
- package/build-module/components/url-popover/image-url-input-ui.js +12 -28
- package/build-module/components/url-popover/image-url-input-ui.js.map +1 -1
- package/build-module/components/writing-flow/index.js +5 -1
- package/build-module/components/writing-flow/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +4 -45
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/components/writing-flow/use-click-selection.js +57 -0
- package/build-module/components/writing-flow/use-click-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-drag-selection.js +124 -0
- package/build-module/components/writing-flow/use-drag-selection.js.map +1 -0
- package/build-module/components/writing-flow/use-input.js +104 -0
- package/build-module/components/writing-flow/use-input.js.map +1 -0
- package/build-module/components/writing-flow/use-multi-selection.js +18 -37
- package/build-module/components/writing-flow/use-multi-selection.js.map +1 -1
- package/build-module/components/writing-flow/use-selection-observer.js +150 -0
- package/build-module/components/writing-flow/use-selection-observer.js.map +1 -0
- package/build-module/components/writing-flow/use-tab-nav.js +1 -9
- package/build-module/components/writing-flow/use-tab-nav.js.map +1 -1
- package/build-module/hooks/anchor.js +7 -6
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/border-color.js +5 -5
- package/build-module/hooks/border-color.js.map +1 -1
- package/build-module/hooks/border.js +0 -12
- package/build-module/hooks/border.js.map +1 -1
- package/build-module/hooks/color.js +19 -18
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/font-family.js +3 -1
- package/build-module/hooks/font-family.js.map +1 -1
- package/build-module/hooks/font-size.js +4 -3
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/gap.js +75 -7
- package/build-module/hooks/gap.js.map +1 -1
- package/build-module/hooks/layout.js +7 -2
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/style.js +33 -3
- package/build-module/hooks/style.js.map +1 -1
- package/build-module/hooks/utils.js +26 -0
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/flex.js +81 -16
- package/build-module/layouts/flex.js.map +1 -1
- package/build-module/layouts/flow.js +20 -13
- package/build-module/layouts/flow.js.map +1 -1
- package/build-module/store/actions.js +286 -49
- package/build-module/store/actions.js.map +1 -1
- package/build-module/store/defaults.js +5 -1
- package/build-module/store/defaults.js.map +1 -1
- package/build-module/store/reducer.js +25 -13
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +186 -22
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/dom.js +2 -1
- package/build-module/utils/dom.js.map +1 -1
- package/build-style/style-rtl.css +248 -49
- package/build-style/style.css +248 -49
- package/build-types/utils/dom.d.ts.map +1 -1
- package/package.json +28 -27
- package/src/components/alignment-control/index.js +9 -4
- package/src/components/block-alignment-control/index.js +9 -4
- package/src/components/block-content-overlay/index.js +19 -2
- package/src/components/block-draggable/index.js +2 -5
- package/src/components/block-icon/index.js +3 -0
- package/src/components/block-inspector/index.js +4 -0
- package/src/components/block-list/block-html.js +8 -4
- package/src/components/block-list/block.js +5 -1
- package/src/components/block-list/style.scss +4 -5
- package/src/components/block-list/use-block-props/index.js +0 -5
- package/src/components/block-list/use-block-props/use-focus-first-element.js +27 -6
- package/src/components/block-list/use-block-props/use-focus-handler.js +8 -0
- package/src/components/block-list-appender/index.js +5 -0
- package/src/components/block-lock/index.js +4 -0
- package/src/components/block-lock/menu-item.js +39 -0
- package/src/components/block-lock/modal.js +194 -0
- package/src/components/block-lock/style.scss +70 -0
- package/src/components/block-lock/toolbar.js +51 -0
- package/src/components/block-lock/use-block-lock.js +49 -0
- package/src/components/block-mover/index.js +3 -0
- package/src/components/block-mover/style.scss +4 -0
- package/src/components/block-pattern-setup/index.js +84 -59
- package/src/components/block-pattern-setup/setup-toolbar.js +3 -1
- package/src/components/block-pattern-setup/style.scss +32 -26
- package/src/components/block-preview/auto.js +10 -1
- package/src/components/block-preview/index.js +2 -0
- package/src/components/block-settings-menu/block-settings-dropdown.js +109 -9
- package/src/components/block-settings-menu-controls/index.js +33 -12
- package/src/components/block-switcher/index.js +15 -3
- package/src/components/block-switcher/style.scss +15 -4
- package/src/components/block-switcher/test/__snapshots__/index.js.snap +15 -13
- package/src/components/block-switcher/test/index.js +2 -2
- package/src/components/block-title/README.md +6 -1
- package/src/components/block-title/index.js +2 -2
- package/src/components/block-title/test/index.js +43 -1
- package/src/components/block-title/use-block-display-title.js +10 -7
- package/src/components/block-toolbar/block-name-context.js +8 -0
- package/src/components/block-toolbar/block-toolbar-last-item.js +12 -0
- package/src/components/block-toolbar/index.js +24 -2
- package/src/components/block-toolbar/style.scss +10 -0
- package/src/components/block-tools/index.js +0 -19
- package/src/components/block-tools/style.scss +27 -0
- package/src/components/block-variation-transforms/index.js +105 -36
- package/src/components/block-variation-transforms/style.scss +1 -1
- package/src/components/block-vertical-alignment-control/index.js +9 -4
- package/src/components/border-radius-control/index.js +0 -1
- package/src/components/border-radius-control/test/utils.js +4 -0
- package/src/components/border-radius-control/utils.js +2 -1
- package/src/components/button-block-appender/style.scss +5 -1
- package/src/components/color-palette/test/__snapshots__/control.js.snap +70 -4
- package/src/components/colors-gradients/control.js +1 -1
- package/src/components/colors-gradients/style.scss +6 -0
- package/src/components/contrast-checker/index.js +3 -0
- package/src/components/convert-to-group-buttons/index.js +6 -1
- package/src/components/convert-to-group-buttons/toolbar.js +87 -0
- package/src/components/copy-handler/index.js +3 -0
- package/src/components/date-format-picker/README.md +58 -0
- package/src/components/date-format-picker/index.js +161 -0
- package/src/components/date-format-picker/style.scss +31 -0
- package/src/components/font-sizes/font-size-picker.js +3 -0
- package/src/components/iframe/index.js +5 -7
- package/src/components/index.js +3 -0
- package/src/components/justify-content-control/index.js +9 -4
- package/src/components/keyboard-shortcuts/index.js +1 -1
- package/src/components/line-height-control/index.js +11 -6
- package/src/components/link-control/README.md +1 -1
- package/src/components/list-view/block-select-button.js +14 -31
- package/src/components/list-view/block.js +55 -13
- package/src/components/list-view/branch.js +37 -15
- package/src/components/list-view/index.js +6 -0
- package/src/components/list-view/style.scss +56 -14
- package/src/components/list-view/use-block-selection.js +15 -2
- package/src/components/media-placeholder/README.md +8 -0
- package/src/components/media-replace-flow/index.js +3 -0
- package/src/components/multi-selection-inspector/index.js +2 -2
- package/src/components/rich-text/index.js +25 -2
- package/src/components/rich-text/index.native.js +24 -8
- package/src/components/rich-text/split-value.js +5 -1
- package/src/components/rich-text/use-firefox-compat.js +39 -0
- package/src/components/rich-text/use-input-rules.js +40 -3
- package/src/components/skip-to-selected-block/index.js +3 -0
- package/src/components/url-input/style.scss +3 -2
- package/src/components/url-popover/image-url-input-ui.js +16 -29
- package/src/components/writing-flow/index.js +8 -0
- package/src/components/writing-flow/readme.md +28 -0
- package/src/components/writing-flow/use-arrow-nav.js +4 -53
- package/src/components/writing-flow/use-click-selection.js +65 -0
- package/src/components/writing-flow/use-drag-selection.js +126 -0
- package/src/components/writing-flow/use-input.js +112 -0
- package/src/components/writing-flow/use-multi-selection.js +13 -36
- package/src/components/writing-flow/use-selection-observer.js +153 -0
- package/src/components/writing-flow/use-tab-nav.js +1 -11
- package/src/hooks/anchor.js +8 -6
- package/src/hooks/border-color.js +5 -5
- package/src/hooks/border.js +0 -13
- package/src/hooks/color.js +51 -24
- package/src/hooks/font-family.js +5 -2
- package/src/hooks/font-size.js +10 -7
- package/src/hooks/gap.js +91 -12
- package/src/hooks/layout.js +11 -1
- package/src/hooks/style.js +40 -4
- package/src/hooks/test/gap.js +66 -0
- package/src/hooks/test/style.js +94 -0
- package/src/hooks/test/utils.js +1 -1
- package/src/hooks/utils.js +26 -0
- package/src/layouts/flex.js +93 -6
- package/src/layouts/flow.js +28 -12
- package/src/store/actions.js +349 -32
- package/src/store/defaults.js +7 -1
- package/src/store/reducer.js +25 -10
- package/src/store/selectors.js +229 -27
- package/src/store/test/selectors.js +305 -5
- package/src/style.scss +2 -0
- package/src/utils/dom.js +2 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/build/components/block-list/use-block-props/use-multi-selection.js +0 -205
- package/build/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build/components/block-list/use-block-props/use-scroll-into-view.js +0 -77
- package/build/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-multi-selection.js +0 -192
- package/build-module/components/block-list/use-block-props/use-multi-selection.js.map +0 -1
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js +0 -63
- package/build-module/components/block-list/use-block-props/use-scroll-into-view.js.map +0 -1
- package/src/components/block-list/use-block-props/use-multi-selection.js +0 -227
- package/src/components/block-list/use-block-props/use-scroll-into-view.js +0 -73
package/build/utils/dom.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.isInSameBlock = isInSameBlock;
|
|
|
8
8
|
exports.isInsideRootBlock = isInsideRootBlock;
|
|
9
9
|
const BLOCK_SELECTOR = '.block-editor-block-list__block';
|
|
10
10
|
const APPENDER_SELECTOR = '.block-list-appender';
|
|
11
|
+
const BLOCK_APPENDER_CLASS = '.block-editor-button-block-appender';
|
|
11
12
|
/**
|
|
12
13
|
* Returns true if two elements are contained within the same block.
|
|
13
14
|
*
|
|
@@ -33,7 +34,7 @@ function isInSameBlock(a, b) {
|
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
function isInsideRootBlock(blockElement, element) {
|
|
36
|
-
const parentBlock = element.closest([BLOCK_SELECTOR, APPENDER_SELECTOR].join(','));
|
|
37
|
+
const parentBlock = element.closest([BLOCK_SELECTOR, APPENDER_SELECTOR, BLOCK_APPENDER_CLASS].join(','));
|
|
37
38
|
return parentBlock === blockElement;
|
|
38
39
|
}
|
|
39
40
|
/**
|
package/build/utils/dom.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/utils/dom.js"],"names":["BLOCK_SELECTOR","APPENDER_SELECTOR","isInSameBlock","a","b","closest","isInsideRootBlock","blockElement","element","parentBlock","join","getBlockClientId","node","nodeType","ELEMENT_NODE","parentNode","elementNode","blockNode","id","slice","length"],"mappings":";;;;;;;;AAAA,MAAMA,cAAc,GAAG,iCAAvB;AACA,MAAMC,iBAAiB,GAAG,sBAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,aAAT,CAAwBC,CAAxB,EAA2BC,CAA3B,EAA+B;AACrC,SAAOD,CAAC,CAACE,OAAF,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/utils/dom.js"],"names":["BLOCK_SELECTOR","APPENDER_SELECTOR","BLOCK_APPENDER_CLASS","isInSameBlock","a","b","closest","isInsideRootBlock","blockElement","element","parentBlock","join","getBlockClientId","node","nodeType","ELEMENT_NODE","parentNode","elementNode","blockNode","id","slice","length"],"mappings":";;;;;;;;AAAA,MAAMA,cAAc,GAAG,iCAAvB;AACA,MAAMC,iBAAiB,GAAG,sBAA1B;AACA,MAAMC,oBAAoB,GAAG,qCAA7B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,aAAT,CAAwBC,CAAxB,EAA2BC,CAA3B,EAA+B;AACrC,SAAOD,CAAC,CAACE,OAAF,CAAWN,cAAX,MAAgCK,CAAC,CAACC,OAAF,CAAWN,cAAX,CAAvC;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,iBAAT,CAA4BC,YAA5B,EAA0CC,OAA1C,EAAoD;AAC1D,QAAMC,WAAW,GAAGD,OAAO,CAACH,OAAR,CACnB,CAAEN,cAAF,EAAkBC,iBAAlB,EAAqCC,oBAArC,EAA4DS,IAA5D,CAAkE,GAAlE,CADmB,CAApB;AAGA,SAAOD,WAAW,KAAKF,YAAvB;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASI,gBAAT,CAA2BC,IAA3B,EAAkC;AACxC,SAAQA,IAAI,IAAIA,IAAI,CAACC,QAAL,KAAkBD,IAAI,CAACE,YAAvC,EAAsD;AACrDF,IAAAA,IAAI,GAAGA,IAAI,CAACG,UAAZ;AACA;;AAED,MAAK,CAAEH,IAAP,EAAc;AACb;AACA;;AAED,QAAMI,WAAW;AAAG;AAAyBJ,EAAAA,IAA7C;AACA,QAAMK,SAAS,GAAGD,WAAW,CAACX,OAAZ,CAAqBN,cAArB,CAAlB;;AAEA,MAAK,CAAEkB,SAAP,EAAmB;AAClB;AACA;;AAED,SAAOA,SAAS,CAACC,EAAV,CAAaC,KAAb,CAAoB,SAASC,MAA7B,CAAP;AACA","sourcesContent":["const BLOCK_SELECTOR = '.block-editor-block-list__block';\nconst APPENDER_SELECTOR = '.block-list-appender';\nconst BLOCK_APPENDER_CLASS = '.block-editor-button-block-appender';\n\n/**\n * Returns true if two elements are contained within the same block.\n *\n * @param {Element} a First element.\n * @param {Element} b Second element.\n *\n * @return {boolean} Whether elements are in the same block.\n */\nexport function isInSameBlock( a, b ) {\n\treturn a.closest( BLOCK_SELECTOR ) === b.closest( BLOCK_SELECTOR );\n}\n\n/**\n * Returns true if an element is considered part of the block and not its inner\n * blocks or appender.\n *\n * @param {Element} blockElement Block container element.\n * @param {Element} element Element.\n *\n * @return {boolean} Whether an element is considered part of the block and not\n * its inner blocks or appender.\n */\nexport function isInsideRootBlock( blockElement, element ) {\n\tconst parentBlock = element.closest(\n\t\t[ BLOCK_SELECTOR, APPENDER_SELECTOR, BLOCK_APPENDER_CLASS ].join( ',' )\n\t);\n\treturn parentBlock === blockElement;\n}\n\n/**\n * Finds the block client ID given any DOM node inside the block.\n *\n * @param {Node?} node DOM node.\n *\n * @return {string|undefined} Client ID or undefined if the node is not part of\n * a block.\n */\nexport function getBlockClientId( node ) {\n\twhile ( node && node.nodeType !== node.ELEMENT_NODE ) {\n\t\tnode = node.parentNode;\n\t}\n\n\tif ( ! node ) {\n\t\treturn;\n\t}\n\n\tconst elementNode = /** @type {Element} */ ( node );\n\tconst blockNode = elementNode.closest( BLOCK_SELECTOR );\n\n\tif ( ! blockNode ) {\n\t\treturn;\n\t}\n\n\treturn blockNode.id.slice( 'block-'.length );\n}\n"]}
|
|
@@ -5,14 +5,22 @@ import { createElement } from "@wordpress/element";
|
|
|
5
5
|
* Internal dependencies
|
|
6
6
|
*/
|
|
7
7
|
import AlignmentUI from './ui';
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
const AlignmentControl = props => {
|
|
9
10
|
return createElement(AlignmentUI, _extends({}, props, {
|
|
10
11
|
isToolbar: false
|
|
11
12
|
}));
|
|
12
|
-
}
|
|
13
|
-
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const AlignmentToolbar = props => {
|
|
14
16
|
return createElement(AlignmentUI, _extends({}, props, {
|
|
15
17
|
isToolbar: true
|
|
16
18
|
}));
|
|
17
|
-
}
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/alignment-control/README.md
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
export { AlignmentControl, AlignmentToolbar };
|
|
18
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/alignment-control/index.js"],"names":["AlignmentUI","AlignmentControl","props","AlignmentToolbar"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,WAAP,MAAwB,MAAxB
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/alignment-control/index.js"],"names":["AlignmentUI","AlignmentControl","props","AlignmentToolbar"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,WAAP,MAAwB,MAAxB;;AAEA,MAAMC,gBAAgB,GAAKC,KAAF,IAAa;AACrC,SAAO,cAAC,WAAD,eAAkBA,KAAlB;AAA0B,IAAA,SAAS,EAAG;AAAtC,KAAP;AACA,CAFD;;AAIA,MAAMC,gBAAgB,GAAKD,KAAF,IAAa;AACrC,SAAO,cAAC,WAAD,eAAkBA,KAAlB;AAA0B,IAAA,SAAS;AAAnC,KAAP;AACA,CAFD;AAIA;AACA;AACA;;;AACA,SAASD,gBAAT,EAA2BE,gBAA3B","sourcesContent":["/**\n * Internal dependencies\n */\nimport AlignmentUI from './ui';\n\nconst AlignmentControl = ( props ) => {\n\treturn <AlignmentUI { ...props } isToolbar={ false } />;\n};\n\nconst AlignmentToolbar = ( props ) => {\n\treturn <AlignmentUI { ...props } isToolbar />;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/alignment-control/README.md\n */\nexport { AlignmentControl, AlignmentToolbar };\n"]}
|
|
@@ -5,14 +5,22 @@ import { createElement } from "@wordpress/element";
|
|
|
5
5
|
* Internal dependencies
|
|
6
6
|
*/
|
|
7
7
|
import BlockAlignmentUI from './ui';
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
const BlockAlignmentControl = props => {
|
|
9
10
|
return createElement(BlockAlignmentUI, _extends({}, props, {
|
|
10
11
|
isToolbar: false
|
|
11
12
|
}));
|
|
12
|
-
}
|
|
13
|
-
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
const BlockAlignmentToolbar = props => {
|
|
14
16
|
return createElement(BlockAlignmentUI, _extends({}, props, {
|
|
15
17
|
isToolbar: true
|
|
16
18
|
}));
|
|
17
|
-
}
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-alignment-control/README.md
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
export { BlockAlignmentControl, BlockAlignmentToolbar };
|
|
18
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/index.js"],"names":["BlockAlignmentUI","BlockAlignmentControl","props","BlockAlignmentToolbar"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,gBAAP,MAA6B,MAA7B
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-alignment-control/index.js"],"names":["BlockAlignmentUI","BlockAlignmentControl","props","BlockAlignmentToolbar"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,gBAAP,MAA6B,MAA7B;;AAEA,MAAMC,qBAAqB,GAAKC,KAAF,IAAa;AAC1C,SAAO,cAAC,gBAAD,eAAuBA,KAAvB;AAA+B,IAAA,SAAS,EAAG;AAA3C,KAAP;AACA,CAFD;;AAIA,MAAMC,qBAAqB,GAAKD,KAAF,IAAa;AAC1C,SAAO,cAAC,gBAAD,eAAuBA,KAAvB;AAA+B,IAAA,SAAS;AAAxC,KAAP;AACA,CAFD;AAIA;AACA;AACA;;;AACA,SAASD,qBAAT,EAAgCE,qBAAhC","sourcesContent":["/**\n * Internal dependencies\n */\nimport BlockAlignmentUI from './ui';\n\nconst BlockAlignmentControl = ( props ) => {\n\treturn <BlockAlignmentUI { ...props } isToolbar={ false } />;\n};\n\nconst BlockAlignmentToolbar = ( props ) => {\n\treturn <BlockAlignmentUI { ...props } isToolbar />;\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-alignment-control/README.md\n */\nexport { BlockAlignmentControl, BlockAlignmentToolbar };\n"]}
|
|
@@ -27,6 +27,7 @@ export default function BlockContentOverlay(_ref) {
|
|
|
27
27
|
const [isOverlayActive, setIsOverlayActive] = useState(true);
|
|
28
28
|
const [isHovered, setIsHovered] = useState(false);
|
|
29
29
|
const {
|
|
30
|
+
canEdit,
|
|
30
31
|
isParentSelected,
|
|
31
32
|
hasChildSelected,
|
|
32
33
|
isDraggingBlocks,
|
|
@@ -36,9 +37,11 @@ export default function BlockContentOverlay(_ref) {
|
|
|
36
37
|
isBlockSelected,
|
|
37
38
|
hasSelectedInnerBlock,
|
|
38
39
|
isDraggingBlocks: _isDraggingBlocks,
|
|
39
|
-
isBlockHighlighted
|
|
40
|
+
isBlockHighlighted,
|
|
41
|
+
canEditBlock
|
|
40
42
|
} = select(blockEditorStore);
|
|
41
43
|
return {
|
|
44
|
+
canEdit: canEditBlock(clientId),
|
|
42
45
|
isParentSelected: isBlockSelected(clientId),
|
|
43
46
|
hasChildSelected: hasSelectedInnerBlock(clientId, true),
|
|
44
47
|
isDraggingBlocks: _isDraggingBlocks(),
|
|
@@ -51,7 +54,13 @@ export default function BlockContentOverlay(_ref) {
|
|
|
51
54
|
'is-dragging-blocks': isDraggingBlocks
|
|
52
55
|
});
|
|
53
56
|
useEffect(() => {
|
|
54
|
-
//
|
|
57
|
+
// The overlay is always active when editing is locked.
|
|
58
|
+
if (!canEdit) {
|
|
59
|
+
setIsOverlayActive(true);
|
|
60
|
+
return;
|
|
61
|
+
} // Reenable when blocks are not in use.
|
|
62
|
+
|
|
63
|
+
|
|
55
64
|
if (!isParentSelected && !hasChildSelected && !isOverlayActive) {
|
|
56
65
|
setIsOverlayActive(true);
|
|
57
66
|
} // Disable if parent selected by another means (such as list view).
|
|
@@ -69,7 +78,7 @@ export default function BlockContentOverlay(_ref) {
|
|
|
69
78
|
if (hasChildSelected && isOverlayActive) {
|
|
70
79
|
setIsOverlayActive(false);
|
|
71
80
|
}
|
|
72
|
-
}, [isParentSelected, hasChildSelected, isOverlayActive, isHovered]); // Disabled because the overlay div doesn't actually have a role or functionality
|
|
81
|
+
}, [isParentSelected, hasChildSelected, isOverlayActive, isHovered, canEdit]); // Disabled because the overlay div doesn't actually have a role or functionality
|
|
73
82
|
// as far as the a11y is concerned. We're just catching the first click so that
|
|
74
83
|
// the block can be selected without interacting with its contents.
|
|
75
84
|
|
|
@@ -79,7 +88,7 @@ export default function BlockContentOverlay(_ref) {
|
|
|
79
88
|
className: classes,
|
|
80
89
|
onMouseEnter: () => setIsHovered(true),
|
|
81
90
|
onMouseLeave: () => setIsHovered(false),
|
|
82
|
-
onMouseUp: isOverlayActive ? () => setIsOverlayActive(false) : undefined
|
|
91
|
+
onMouseUp: isOverlayActive && canEdit ? () => setIsOverlayActive(false) : undefined
|
|
83
92
|
}), wrapperProps === null || wrapperProps === void 0 ? void 0 : wrapperProps.children);
|
|
84
93
|
}
|
|
85
94
|
/* eslint-enable jsx-a11y/no-static-element-interactions */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-content-overlay/index.js"],"names":["useSelect","useState","useEffect","store","blockEditorStore","classnames","BlockContentOverlay","clientId","tagName","TagName","wrapperProps","className","baseClassName","isOverlayActive","setIsOverlayActive","isHovered","setIsHovered","isParentSelected","hasChildSelected","isDraggingBlocks","isParentHighlighted","select","isBlockSelected","hasSelectedInnerBlock","_isDraggingBlocks","isBlockHighlighted","classes","undefined","children"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,oBAApC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,eAAe,SAASC,mBAAT,OAKX;AAAA,MALyC;AAC5CC,IAAAA,QAD4C;AAE5CC,IAAAA,OAAO,EAAEC,OAAO,GAAG,KAFyB;AAG5CC,IAAAA,YAH4C;AAI5CC,IAAAA;AAJ4C,GAKzC;AACH,QAAMC,aAAa,GAAG,oCAAtB;AACA,QAAM,CAAEC,eAAF,EAAmBC,kBAAnB,IAA0Cb,QAAQ,CAAE,IAAF,CAAxD;AACA,QAAM,CAAEc,SAAF,EAAaC,YAAb,IAA8Bf,QAAQ,CAAE,KAAF,CAA5C;AAEA,QAAM;AACLgB,IAAAA,
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-content-overlay/index.js"],"names":["useSelect","useState","useEffect","store","blockEditorStore","classnames","BlockContentOverlay","clientId","tagName","TagName","wrapperProps","className","baseClassName","isOverlayActive","setIsOverlayActive","isHovered","setIsHovered","canEdit","isParentSelected","hasChildSelected","isDraggingBlocks","isParentHighlighted","select","isBlockSelected","hasSelectedInnerBlock","_isDraggingBlocks","isBlockHighlighted","canEditBlock","classes","undefined","children"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,SAAT,QAA0B,iBAA1B;AACA,SAASC,QAAT,EAAmBC,SAAnB,QAAoC,oBAApC;AAEA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;AAEA;AACA;AACA;;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,eAAe,SAASC,mBAAT,OAKX;AAAA,MALyC;AAC5CC,IAAAA,QAD4C;AAE5CC,IAAAA,OAAO,EAAEC,OAAO,GAAG,KAFyB;AAG5CC,IAAAA,YAH4C;AAI5CC,IAAAA;AAJ4C,GAKzC;AACH,QAAMC,aAAa,GAAG,oCAAtB;AACA,QAAM,CAAEC,eAAF,EAAmBC,kBAAnB,IAA0Cb,QAAQ,CAAE,IAAF,CAAxD;AACA,QAAM,CAAEc,SAAF,EAAaC,YAAb,IAA8Bf,QAAQ,CAAE,KAAF,CAA5C;AAEA,QAAM;AACLgB,IAAAA,OADK;AAELC,IAAAA,gBAFK;AAGLC,IAAAA,gBAHK;AAILC,IAAAA,gBAJK;AAKLC,IAAAA;AALK,MAMFrB,SAAS,CACVsB,MAAF,IAAc;AACb,UAAM;AACLC,MAAAA,eADK;AAELC,MAAAA,qBAFK;AAGLJ,MAAAA,gBAAgB,EAAEK,iBAHb;AAILC,MAAAA,kBAJK;AAKLC,MAAAA;AALK,QAMFL,MAAM,CAAElB,gBAAF,CANV;AAOA,WAAO;AACNa,MAAAA,OAAO,EAAEU,YAAY,CAAEpB,QAAF,CADf;AAENW,MAAAA,gBAAgB,EAAEK,eAAe,CAAEhB,QAAF,CAF3B;AAGNY,MAAAA,gBAAgB,EAAEK,qBAAqB,CAAEjB,QAAF,EAAY,IAAZ,CAHjC;AAINa,MAAAA,gBAAgB,EAAEK,iBAAiB,EAJ7B;AAKNJ,MAAAA,mBAAmB,EAAEK,kBAAkB,CAAEnB,QAAF;AALjC,KAAP;AAOA,GAhBW,EAiBZ,CAAEA,QAAF,CAjBY,CANb;AA0BA,QAAMqB,OAAO,GAAGvB,UAAU,CACzBO,aADyB,EAEzBF,YAFyB,aAEzBA,YAFyB,uBAEzBA,YAAY,CAAEC,SAFW,EAGzBA,SAHyB,EAIzB;AACC,sBAAkBE,eADnB;AAEC,0BAAsBQ,mBAFvB;AAGC,0BAAsBD;AAHvB,GAJyB,CAA1B;AAWAlB,EAAAA,SAAS,CAAE,MAAM;AAChB;AACA,QAAK,CAAEe,OAAP,EAAiB;AAChBH,MAAAA,kBAAkB,CAAE,IAAF,CAAlB;AACA;AACA,KALe,CAOhB;;;AACA,QAAK,CAAEI,gBAAF,IAAsB,CAAEC,gBAAxB,IAA4C,CAAEN,eAAnD,EAAqE;AACpEC,MAAAA,kBAAkB,CAAE,IAAF,CAAlB;AACA,KAVe,CAWhB;AACA;AACA;AACA;AACA;;;AACA,QAAKI,gBAAgB,IAAI,CAAEH,SAAtB,IAAmCF,eAAxC,EAA0D;AACzDC,MAAAA,kBAAkB,CAAE,KAAF,CAAlB;AACA,KAlBe,CAmBhB;;;AACA,QAAKK,gBAAgB,IAAIN,eAAzB,EAA2C;AAC1CC,MAAAA,kBAAkB,CAAE,KAAF,CAAlB;AACA;AACD,GAvBQ,EAuBN,CACFI,gBADE,EAEFC,gBAFE,EAGFN,eAHE,EAIFE,SAJE,EAKFE,OALE,CAvBM,CAAT,CA1CG,CAyEH;AACA;AACA;;AACA;;AACA,SACC,cAAC,OAAD,eACMP,YADN;AAEC,IAAA,SAAS,EAAGkB,OAFb;AAGC,IAAA,YAAY,EAAG,MAAMZ,YAAY,CAAE,IAAF,CAHlC;AAIC,IAAA,YAAY,EAAG,MAAMA,YAAY,CAAE,KAAF,CAJlC;AAKC,IAAA,SAAS,EACRH,eAAe,IAAII,OAAnB,GACG,MAAMH,kBAAkB,CAAE,KAAF,CAD3B,GAEGe;AARL,MAWGnB,YAXH,aAWGA,YAXH,uBAWGA,YAAY,CAAEoB,QAXjB,CADD;AAeA;AACD","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\nexport default function BlockContentOverlay( {\n\tclientId,\n\ttagName: TagName = 'div',\n\twrapperProps,\n\tclassName,\n} ) {\n\tconst baseClassName = 'block-editor-block-content-overlay';\n\tconst [ isOverlayActive, setIsOverlayActive ] = useState( true );\n\tconst [ isHovered, setIsHovered ] = useState( false );\n\n\tconst {\n\t\tcanEdit,\n\t\tisParentSelected,\n\t\thasChildSelected,\n\t\tisDraggingBlocks,\n\t\tisParentHighlighted,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tisBlockSelected,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t\tisDraggingBlocks: _isDraggingBlocks,\n\t\t\t\tisBlockHighlighted,\n\t\t\t\tcanEditBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\treturn {\n\t\t\t\tcanEdit: canEditBlock( clientId ),\n\t\t\t\tisParentSelected: isBlockSelected( clientId ),\n\t\t\t\thasChildSelected: hasSelectedInnerBlock( clientId, true ),\n\t\t\t\tisDraggingBlocks: _isDraggingBlocks(),\n\t\t\t\tisParentHighlighted: isBlockHighlighted( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst classes = classnames(\n\t\tbaseClassName,\n\t\twrapperProps?.className,\n\t\tclassName,\n\t\t{\n\t\t\t'overlay-active': isOverlayActive,\n\t\t\t'parent-highlighted': isParentHighlighted,\n\t\t\t'is-dragging-blocks': isDraggingBlocks,\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\t// The overlay is always active when editing is locked.\n\t\tif ( ! canEdit ) {\n\t\t\tsetIsOverlayActive( true );\n\t\t\treturn;\n\t\t}\n\n\t\t// Reenable when blocks are not in use.\n\t\tif ( ! isParentSelected && ! hasChildSelected && ! isOverlayActive ) {\n\t\t\tsetIsOverlayActive( true );\n\t\t}\n\t\t// Disable if parent selected by another means (such as list view).\n\t\t// We check hover to ensure the overlay click interaction is not taking place.\n\t\t// Trying to click the overlay will select the parent block via its 'focusin'\n\t\t// listener on the wrapper, so if the block is selected while hovered we will\n\t\t// let the mouseup disable the overlay instead.\n\t\tif ( isParentSelected && ! isHovered && isOverlayActive ) {\n\t\t\tsetIsOverlayActive( false );\n\t\t}\n\t\t// Ensure overlay is disabled if a child block is selected.\n\t\tif ( hasChildSelected && isOverlayActive ) {\n\t\t\tsetIsOverlayActive( false );\n\t\t}\n\t}, [\n\t\tisParentSelected,\n\t\thasChildSelected,\n\t\tisOverlayActive,\n\t\tisHovered,\n\t\tcanEdit,\n\t] );\n\n\t// Disabled because the overlay div doesn't actually have a role or functionality\n\t// as far as the a11y is concerned. We're just catching the first click so that\n\t// the block can be selected without interacting with its contents.\n\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\treturn (\n\t\t<TagName\n\t\t\t{ ...wrapperProps }\n\t\t\tclassName={ classes }\n\t\t\tonMouseEnter={ () => setIsHovered( true ) }\n\t\t\tonMouseLeave={ () => setIsHovered( false ) }\n\t\t\tonMouseUp={\n\t\t\t\tisOverlayActive && canEdit\n\t\t\t\t\t? () => setIsOverlayActive( false )\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t>\n\t\t\t{ wrapperProps?.children }\n\t\t</TagName>\n\t);\n}\n/* eslint-enable jsx-a11y/no-static-element-interactions */\n"]}
|
|
@@ -31,16 +31,15 @@ const BlockDraggable = _ref => {
|
|
|
31
31
|
var _getBlockType;
|
|
32
32
|
|
|
33
33
|
const {
|
|
34
|
+
canMoveBlocks,
|
|
34
35
|
getBlockRootClientId,
|
|
35
|
-
getTemplateLock,
|
|
36
36
|
getBlockName
|
|
37
37
|
} = select(blockEditorStore);
|
|
38
38
|
const rootClientId = getBlockRootClientId(clientIds[0]);
|
|
39
|
-
const templateLock = rootClientId ? getTemplateLock(rootClientId) : null;
|
|
40
39
|
const blockName = getBlockName(clientIds[0]);
|
|
41
40
|
return {
|
|
42
41
|
srcRootClientId: rootClientId,
|
|
43
|
-
isDraggable:
|
|
42
|
+
isDraggable: canMoveBlocks(clientIds, rootClientId),
|
|
44
43
|
icon: (_getBlockType = getBlockType(blockName)) === null || _getBlockType === void 0 ? void 0 : _getBlockType.icon
|
|
45
44
|
};
|
|
46
45
|
}, [clientIds]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"names":["getBlockType","Draggable","useSelect","useDispatch","useEffect","useRef","BlockDraggableChip","useScrollWhenDragging","store","blockEditorStore","BlockDraggable","children","clientIds","cloneClassname","onDragStart","onDragEnd","srcRootClientId","isDraggable","icon","select","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-draggable/index.js"],"names":["getBlockType","Draggable","useSelect","useDispatch","useEffect","useRef","BlockDraggableChip","useScrollWhenDragging","store","blockEditorStore","BlockDraggable","children","clientIds","cloneClassname","onDragStart","onDragEnd","srcRootClientId","isDraggable","icon","select","canMoveBlocks","getBlockRootClientId","getBlockName","rootClientId","blockName","isDragging","startScrolling","scrollOnDragOver","stopScrolling","startDraggingBlocks","stopDraggingBlocks","current","transferData","type","srcClientIds","event","length","onDraggableStart","onDraggableEnd","draggable"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlockType } from '@wordpress/blocks';\nimport { Draggable } from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport BlockDraggableChip from './draggable-chip';\nimport useScrollWhenDragging from './use-scroll-when-dragging';\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockDraggable = ( {\n\tchildren,\n\tclientIds,\n\tcloneClassname,\n\tonDragStart,\n\tonDragEnd,\n} ) => {\n\tconst { srcRootClientId, isDraggable, icon } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tcanMoveBlocks,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockName,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\t\t\tconst blockName = getBlockName( clientIds[ 0 ] );\n\n\t\t\treturn {\n\t\t\t\tsrcRootClientId: rootClientId,\n\t\t\t\tisDraggable: canMoveBlocks( clientIds, rootClientId ),\n\t\t\t\ticon: getBlockType( blockName )?.icon,\n\t\t\t};\n\t\t},\n\t\t[ clientIds ]\n\t);\n\tconst isDragging = useRef( false );\n\tconst [\n\t\tstartScrolling,\n\t\tscrollOnDragOver,\n\t\tstopScrolling,\n\t] = useScrollWhenDragging();\n\n\tconst { startDraggingBlocks, stopDraggingBlocks } = useDispatch(\n\t\tblockEditorStore\n\t);\n\n\t// Stop dragging blocks if the block draggable is unmounted.\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( isDragging.current ) {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tif ( ! isDraggable ) {\n\t\treturn children( { isDraggable: false } );\n\t}\n\n\tconst transferData = {\n\t\ttype: 'block',\n\t\tsrcClientIds: clientIds,\n\t\tsrcRootClientId,\n\t};\n\n\treturn (\n\t\t<Draggable\n\t\t\tcloneClassname={ cloneClassname }\n\t\t\t__experimentalTransferDataType=\"wp-blocks\"\n\t\t\ttransferData={ transferData }\n\t\t\tonDragStart={ ( event ) => {\n\t\t\t\tstartDraggingBlocks( clientIds );\n\t\t\t\tisDragging.current = true;\n\n\t\t\t\tstartScrolling( event );\n\n\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\tonDragStart();\n\t\t\t\t}\n\t\t\t} }\n\t\t\tonDragOver={ scrollOnDragOver }\n\t\t\tonDragEnd={ () => {\n\t\t\t\tstopDraggingBlocks();\n\t\t\t\tisDragging.current = false;\n\n\t\t\t\tstopScrolling();\n\n\t\t\t\tif ( onDragEnd ) {\n\t\t\t\t\tonDragEnd();\n\t\t\t\t}\n\t\t\t} }\n\t\t\t__experimentalDragComponent={\n\t\t\t\t<BlockDraggableChip count={ clientIds.length } icon={ icon } />\n\t\t\t}\n\t\t>\n\t\t\t{ ( { onDraggableStart, onDraggableEnd } ) => {\n\t\t\t\treturn children( {\n\t\t\t\t\tdraggable: true,\n\t\t\t\t\tonDragStart: onDraggableStart,\n\t\t\t\t\tonDragEnd: onDraggableEnd,\n\t\t\t\t} );\n\t\t\t} }\n\t\t</Draggable>\n\t);\n};\n\nexport default BlockDraggable;\n"]}
|
|
@@ -41,6 +41,10 @@ function BlockIcon(_ref) {
|
|
|
41
41
|
})
|
|
42
42
|
}, renderedIcon);
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-icon/README.md
|
|
46
|
+
*/
|
|
47
|
+
|
|
44
48
|
|
|
45
49
|
export default memo(BlockIcon);
|
|
46
50
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-icon/index.js"],"names":["classnames","Icon","blockDefault","memo","BlockIcon","icon","showColors","className","src","renderedIcon","style","backgroundColor","background","color","foreground"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,IAAT,QAAqB,uBAArB;AACA,SAASC,YAAT,QAA6B,kBAA7B;AACA,SAASC,IAAT,QAAqB,oBAArB;;AAEA,SAASC,SAAT,OAA8D;AAAA;;AAAA,MAA1C;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,UAAU,GAAG,KAArB;AAA4BC,IAAAA;AAA5B,GAA0C;;AAC7D,MAAK,UAAAF,IAAI,UAAJ,sCAAMG,GAAN,MAAc,eAAnB,EAAqC;AACpCH,IAAAA,IAAI,GAAG;AACNG,MAAAA,GAAG,EAAEN;AADC,KAAP;AAGA;;AAED,QAAMO,YAAY,GAAG,cAAC,IAAD;AAAM,IAAA,IAAI,EAAGJ,IAAI,IAAIA,IAAI,CAACG,GAAb,GAAmBH,IAAI,CAACG,GAAxB,GAA8BH;AAA3C,IAArB;AACA,QAAMK,KAAK,GAAGJ,UAAU,GACrB;AACAK,IAAAA,eAAe,EAAEN,IAAI,IAAIA,IAAI,CAACO,UAD9B;AAEAC,IAAAA,KAAK,EAAER,IAAI,IAAIA,IAAI,CAACS;AAFpB,GADqB,GAKrB,EALH;AAOA,SACC;AACC,IAAA,KAAK,EAAGJ,KADT;AAEC,IAAA,SAAS,EAAGV,UAAU,CAAE,yBAAF,EAA6BO,SAA7B,EAAwC;AAC7D,oBAAcD;AAD+C,KAAxC;AAFvB,KAMGG,YANH,CADD;AAUA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-icon/index.js"],"names":["classnames","Icon","blockDefault","memo","BlockIcon","icon","showColors","className","src","renderedIcon","style","backgroundColor","background","color","foreground"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,IAAT,QAAqB,uBAArB;AACA,SAASC,YAAT,QAA6B,kBAA7B;AACA,SAASC,IAAT,QAAqB,oBAArB;;AAEA,SAASC,SAAT,OAA8D;AAAA;;AAAA,MAA1C;AAAEC,IAAAA,IAAF;AAAQC,IAAAA,UAAU,GAAG,KAArB;AAA4BC,IAAAA;AAA5B,GAA0C;;AAC7D,MAAK,UAAAF,IAAI,UAAJ,sCAAMG,GAAN,MAAc,eAAnB,EAAqC;AACpCH,IAAAA,IAAI,GAAG;AACNG,MAAAA,GAAG,EAAEN;AADC,KAAP;AAGA;;AAED,QAAMO,YAAY,GAAG,cAAC,IAAD;AAAM,IAAA,IAAI,EAAGJ,IAAI,IAAIA,IAAI,CAACG,GAAb,GAAmBH,IAAI,CAACG,GAAxB,GAA8BH;AAA3C,IAArB;AACA,QAAMK,KAAK,GAAGJ,UAAU,GACrB;AACAK,IAAAA,eAAe,EAAEN,IAAI,IAAIA,IAAI,CAACO,UAD9B;AAEAC,IAAAA,KAAK,EAAER,IAAI,IAAIA,IAAI,CAACS;AAFpB,GADqB,GAKrB,EALH;AAOA,SACC;AACC,IAAA,KAAK,EAAGJ,KADT;AAEC,IAAA,SAAS,EAAGV,UAAU,CAAE,yBAAF,EAA6BO,SAA7B,EAAwC;AAC7D,oBAAcD;AAD+C,KAAxC;AAFvB,KAMGG,YANH,CADD;AAUA;AAED;AACA;AACA;;;AACA,eAAeN,IAAI,CAAEC,SAAF,CAAnB","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Icon } from '@wordpress/components';\nimport { blockDefault } from '@wordpress/icons';\nimport { memo } from '@wordpress/element';\n\nfunction BlockIcon( { icon, showColors = false, className } ) {\n\tif ( icon?.src === 'block-default' ) {\n\t\ticon = {\n\t\t\tsrc: blockDefault,\n\t\t};\n\t}\n\n\tconst renderedIcon = <Icon icon={ icon && icon.src ? icon.src : icon } />;\n\tconst style = showColors\n\t\t? {\n\t\t\t\tbackgroundColor: icon && icon.background,\n\t\t\t\tcolor: icon && icon.foreground,\n\t\t }\n\t\t: {};\n\n\treturn (\n\t\t<span\n\t\t\tstyle={ style }\n\t\t\tclassName={ classnames( 'block-editor-block-icon', className, {\n\t\t\t\t'has-colors': showColors,\n\t\t\t} ) }\n\t\t>\n\t\t\t{ renderedIcon }\n\t\t</span>\n\t);\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-icon/README.md\n */\nexport default memo( BlockIcon );\n"]}
|
|
@@ -63,7 +63,8 @@ const BlockInspector = _ref => {
|
|
|
63
63
|
className: "block-editor-block-inspector"
|
|
64
64
|
}, createElement(MultiSelectionInspector, null), createElement(InspectorControls.Slot, null), createElement(InspectorControls.Slot, {
|
|
65
65
|
__experimentalGroup: "color",
|
|
66
|
-
label: __('Color')
|
|
66
|
+
label: __('Color'),
|
|
67
|
+
className: "color-block-support-panel__inner-wrapper"
|
|
67
68
|
}), createElement(InspectorControls.Slot, {
|
|
68
69
|
__experimentalGroup: "typography",
|
|
69
70
|
label: __('Typography')
|
|
@@ -151,6 +152,10 @@ const AdvancedControls = () => {
|
|
|
151
152
|
__experimentalGroup: "advanced"
|
|
152
153
|
}));
|
|
153
154
|
};
|
|
155
|
+
/**
|
|
156
|
+
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md
|
|
157
|
+
*/
|
|
158
|
+
|
|
154
159
|
|
|
155
160
|
export default BlockInspector;
|
|
156
161
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__experimentalUseSlot","useSlot","useSelect","SkipToSelectedBlock","BlockCard","default","InspectorControls","InspectorAdvancedControls","BlockStyles","MultiSelectionInspector","DefaultStylePicker","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockInspector","showNoBlockSelectedMessage","count","hasBlockStyles","selectedBlockName","selectedBlockClientId","blockType","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getBlockStyles","_selectedBlockClientId","_selectedBlockName","_blockType","blockStyles","length","isSelectedBlockUnregistered","name","BlockInspectorSingleBlock","clientId","blockName","blockInformation","AdvancedControls","slot","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\thasBlockStyles,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockStyles } = select( blocksStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\t\tconst blockStyles =\n\t\t\t_selectedBlockName && getBlockStyles( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\thasBlockStyles: blockStyles && blockStyles.length > 0,\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\thasBlockStyles,\n} ) => {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles\n\t\t\t\t\t\t\tscope=\"core/block-inspector\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = () => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot __experimentalGroup=\"advanced\" />\n\t\t</PanelBody>\n\t);\n};\n\nexport default BlockInspector;\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-inspector/index.js"],"names":["__","getBlockType","getUnregisteredTypeHandlerName","hasBlockSupport","store","blocksStore","PanelBody","__experimentalUseSlot","useSlot","useSelect","SkipToSelectedBlock","BlockCard","default","InspectorControls","InspectorAdvancedControls","BlockStyles","MultiSelectionInspector","DefaultStylePicker","BlockVariationTransforms","useBlockDisplayInformation","blockEditorStore","BlockInspector","showNoBlockSelectedMessage","count","hasBlockStyles","selectedBlockName","selectedBlockClientId","blockType","select","getSelectedBlockClientId","getSelectedBlockCount","getBlockName","getBlockStyles","_selectedBlockClientId","_selectedBlockName","_blockType","blockStyles","length","isSelectedBlockUnregistered","name","BlockInspectorSingleBlock","clientId","blockName","blockInformation","AdvancedControls","slot","slotName","hasFills","Boolean","fills"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetBlockType,\n\tgetUnregisteredTypeHandlerName,\n\thasBlockSupport,\n\tstore as blocksStore,\n} from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\t__experimentalUseSlot as useSlot,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport SkipToSelectedBlock from '../skip-to-selected-block';\nimport BlockCard from '../block-card';\nimport {\n\tdefault as InspectorControls,\n\tInspectorAdvancedControls,\n} from '../inspector-controls';\nimport BlockStyles from '../block-styles';\nimport MultiSelectionInspector from '../multi-selection-inspector';\nimport DefaultStylePicker from '../default-style-picker';\nimport BlockVariationTransforms from '../block-variation-transforms';\nimport useBlockDisplayInformation from '../use-block-display-information';\nimport { store as blockEditorStore } from '../../store';\n\nconst BlockInspector = ( { showNoBlockSelectedMessage = true } ) => {\n\tconst {\n\t\tcount,\n\t\thasBlockStyles,\n\t\tselectedBlockName,\n\t\tselectedBlockClientId,\n\t\tblockType,\n\t} = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientId,\n\t\t\tgetSelectedBlockCount,\n\t\t\tgetBlockName,\n\t\t} = select( blockEditorStore );\n\t\tconst { getBlockStyles } = select( blocksStore );\n\n\t\tconst _selectedBlockClientId = getSelectedBlockClientId();\n\t\tconst _selectedBlockName =\n\t\t\t_selectedBlockClientId && getBlockName( _selectedBlockClientId );\n\t\tconst _blockType =\n\t\t\t_selectedBlockName && getBlockType( _selectedBlockName );\n\t\tconst blockStyles =\n\t\t\t_selectedBlockName && getBlockStyles( _selectedBlockName );\n\n\t\treturn {\n\t\t\tcount: getSelectedBlockCount(),\n\t\t\tselectedBlockClientId: _selectedBlockClientId,\n\t\t\tselectedBlockName: _selectedBlockName,\n\t\t\tblockType: _blockType,\n\t\t\thasBlockStyles: blockStyles && blockStyles.length > 0,\n\t\t};\n\t}, [] );\n\n\tif ( count > 1 ) {\n\t\treturn (\n\t\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t\t<MultiSelectionInspector />\n\t\t\t\t<InspectorControls.Slot />\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t\t/>\n\t\t\t\t<InspectorControls.Slot\n\t\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst isSelectedBlockUnregistered =\n\t\tselectedBlockName === getUnregisteredTypeHandlerName();\n\n\t/*\n\t * If the selected block is of an unregistered type, avoid showing it as an actual selection\n\t * because we want the user to focus on the unregistered block warning, not block settings.\n\t */\n\tif (\n\t\t! blockType ||\n\t\t! selectedBlockClientId ||\n\t\tisSelectedBlockUnregistered\n\t) {\n\t\tif ( showNoBlockSelectedMessage ) {\n\t\t\treturn (\n\t\t\t\t<span className=\"block-editor-block-inspector__no-blocks\">\n\t\t\t\t\t{ __( 'No block selected.' ) }\n\t\t\t\t</span>\n\t\t\t);\n\t\t}\n\t\treturn null;\n\t}\n\treturn (\n\t\t<BlockInspectorSingleBlock\n\t\t\tclientId={ selectedBlockClientId }\n\t\t\tblockName={ blockType.name }\n\t\t\thasBlockStyles={ hasBlockStyles }\n\t\t/>\n\t);\n};\n\nconst BlockInspectorSingleBlock = ( {\n\tclientId,\n\tblockName,\n\thasBlockStyles,\n} ) => {\n\tconst blockInformation = useBlockDisplayInformation( clientId );\n\treturn (\n\t\t<div className=\"block-editor-block-inspector\">\n\t\t\t<BlockCard { ...blockInformation } />\n\t\t\t<BlockVariationTransforms blockClientId={ clientId } />\n\t\t\t{ hasBlockStyles && (\n\t\t\t\t<div>\n\t\t\t\t\t<PanelBody title={ __( 'Styles' ) }>\n\t\t\t\t\t\t<BlockStyles\n\t\t\t\t\t\t\tscope=\"core/block-inspector\"\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ hasBlockSupport(\n\t\t\t\t\t\t\tblockName,\n\t\t\t\t\t\t\t'defaultStylePicker',\n\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t) && <DefaultStylePicker blockName={ blockName } /> }\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</div>\n\t\t\t) }\n\t\t\t<InspectorControls.Slot />\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"color\"\n\t\t\t\tlabel={ __( 'Color' ) }\n\t\t\t\tclassName=\"color-block-support-panel__inner-wrapper\"\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"typography\"\n\t\t\t\tlabel={ __( 'Typography' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"dimensions\"\n\t\t\t\tlabel={ __( 'Dimensions' ) }\n\t\t\t/>\n\t\t\t<InspectorControls.Slot\n\t\t\t\t__experimentalGroup=\"border\"\n\t\t\t\tlabel={ __( 'Border' ) }\n\t\t\t/>\n\t\t\t<div>\n\t\t\t\t<AdvancedControls />\n\t\t\t</div>\n\t\t\t<SkipToSelectedBlock key=\"back\" />\n\t\t</div>\n\t);\n};\n\nconst AdvancedControls = () => {\n\tconst slot = useSlot( InspectorAdvancedControls.slotName );\n\tconst hasFills = Boolean( slot.fills && slot.fills.length );\n\n\tif ( ! hasFills ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<PanelBody\n\t\t\tclassName=\"block-editor-block-inspector__advanced\"\n\t\t\ttitle={ __( 'Advanced' ) }\n\t\t\tinitialOpen={ false }\n\t\t>\n\t\t\t<InspectorControls.Slot __experimentalGroup=\"advanced\" />\n\t\t</PanelBody>\n\t);\n};\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/block-inspector/README.md\n */\nexport default BlockInspector;\n"]}
|
|
@@ -10,7 +10,7 @@ import TextareaAutosize from 'react-autosize-textarea';
|
|
|
10
10
|
|
|
11
11
|
import { useEffect, useState } from '@wordpress/element';
|
|
12
12
|
import { useSelect, useDispatch } from '@wordpress/data';
|
|
13
|
-
import { getBlockAttributes, getBlockContent, getBlockType,
|
|
13
|
+
import { getBlockAttributes, getBlockContent, getBlockType, getSaveContent, validateBlock } from '@wordpress/blocks';
|
|
14
14
|
/**
|
|
15
15
|
* Internal dependencies
|
|
16
16
|
*/
|
|
@@ -37,7 +37,10 @@ function BlockHTML(_ref) {
|
|
|
37
37
|
const attributes = getBlockAttributes(blockType, html, block.attributes); // If html is empty we reset the block to the default HTML and mark it as valid to avoid triggering an error
|
|
38
38
|
|
|
39
39
|
const content = html ? html : getSaveContent(blockType, attributes);
|
|
40
|
-
const isValid = html ?
|
|
40
|
+
const [isValid] = html ? validateBlock({ ...block,
|
|
41
|
+
attributes,
|
|
42
|
+
originalContent: content
|
|
43
|
+
}) : [true];
|
|
41
44
|
updateBlock(clientId, {
|
|
42
45
|
attributes,
|
|
43
46
|
originalContent: content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-html.js"],"names":["TextareaAutosize","useEffect","useState","useSelect","useDispatch","getBlockAttributes","getBlockContent","getBlockType","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block-html.js"],"names":["TextareaAutosize","useEffect","useState","useSelect","useDispatch","getBlockAttributes","getBlockContent","getBlockType","getSaveContent","validateBlock","store","blockEditorStore","BlockHTML","clientId","html","setHtml","block","select","getBlock","updateBlock","onChange","blockType","name","attributes","content","isValid","originalContent","event","target","value"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,gBAAP,MAA6B,yBAA7B;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,oBAApC;AACA,SAASC,SAAT,EAAoBC,WAApB,QAAuC,iBAAvC;AACA,SACCC,kBADD,EAECC,eAFD,EAGCC,YAHD,EAICC,cAJD,EAKCC,aALD,QAMO,mBANP;AAQA;AACA;AACA;;AACA,SAASC,KAAK,IAAIC,gBAAlB,QAA0C,aAA1C;;AAEA,SAASC,SAAT,OAAmC;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AAClC,QAAM,CAAEC,IAAF,EAAQC,OAAR,IAAoBb,QAAQ,CAAE,EAAF,CAAlC;AACA,QAAMc,KAAK,GAAGb,SAAS,CACpBc,MAAF,IAAcA,MAAM,CAAEN,gBAAF,CAAN,CAA2BO,QAA3B,CAAqCL,QAArC,CADQ,EAEtB,CAAEA,QAAF,CAFsB,CAAvB;AAIA,QAAM;AAAEM,IAAAA;AAAF,MAAkBf,WAAW,CAAEO,gBAAF,CAAnC;;AACA,QAAMS,QAAQ,GAAG,MAAM;AACtB,UAAMC,SAAS,GAAGd,YAAY,CAAES,KAAK,CAACM,IAAR,CAA9B;;AAEA,QAAK,CAAED,SAAP,EAAmB;AAClB;AACA;;AAED,UAAME,UAAU,GAAGlB,kBAAkB,CACpCgB,SADoC,EAEpCP,IAFoC,EAGpCE,KAAK,CAACO,UAH8B,CAArC,CAPsB,CAatB;;AACA,UAAMC,OAAO,GAAGV,IAAI,GAAGA,IAAH,GAAUN,cAAc,CAAEa,SAAF,EAAaE,UAAb,CAA5C;AACA,UAAM,CAAEE,OAAF,IAAcX,IAAI,GACrBL,aAAa,CAAE,EACf,GAAGO,KADY;AAEfO,MAAAA,UAFe;AAGfG,MAAAA,eAAe,EAAEF;AAHF,KAAF,CADQ,GAMrB,CAAE,IAAF,CANH;AAQAL,IAAAA,WAAW,CAAEN,QAAF,EAAY;AACtBU,MAAAA,UADsB;AAEtBG,MAAAA,eAAe,EAAEF,OAFK;AAGtBC,MAAAA;AAHsB,KAAZ,CAAX,CAvBsB,CA6BtB;;AACA,QAAK,CAAEX,IAAP,EAAc;AACbC,MAAAA,OAAO,CAAE;AAAES,QAAAA;AAAF,OAAF,CAAP;AACA;AACD,GAjCD;;AAmCAvB,EAAAA,SAAS,CAAE,MAAM;AAChBc,IAAAA,OAAO,CAAET,eAAe,CAAEU,KAAF,CAAjB,CAAP;AACA,GAFQ,EAEN,CAAEA,KAAF,CAFM,CAAT;AAIA,SACC,cAAC,gBAAD;AACC,IAAA,SAAS,EAAC,8CADX;AAEC,IAAA,KAAK,EAAGF,IAFT;AAGC,IAAA,MAAM,EAAGM,QAHV;AAIC,IAAA,QAAQ,EAAKO,KAAF,IAAaZ,OAAO,CAAEY,KAAK,CAACC,MAAN,CAAaC,KAAf;AAJhC,IADD;AAQA;;AAED,eAAejB,SAAf","sourcesContent":["/**\n * External dependencies\n */\nimport TextareaAutosize from 'react-autosize-textarea';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useState } from '@wordpress/element';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport {\n\tgetBlockAttributes,\n\tgetBlockContent,\n\tgetBlockType,\n\tgetSaveContent,\n\tvalidateBlock,\n} from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nfunction BlockHTML( { clientId } ) {\n\tconst [ html, setHtml ] = useState( '' );\n\tconst block = useSelect(\n\t\t( select ) => select( blockEditorStore ).getBlock( clientId ),\n\t\t[ clientId ]\n\t);\n\tconst { updateBlock } = useDispatch( blockEditorStore );\n\tconst onChange = () => {\n\t\tconst blockType = getBlockType( block.name );\n\n\t\tif ( ! blockType ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attributes = getBlockAttributes(\n\t\t\tblockType,\n\t\t\thtml,\n\t\t\tblock.attributes\n\t\t);\n\n\t\t// If html is empty we reset the block to the default HTML and mark it as valid to avoid triggering an error\n\t\tconst content = html ? html : getSaveContent( blockType, attributes );\n\t\tconst [ isValid ] = html\n\t\t\t? validateBlock( {\n\t\t\t\t\t...block,\n\t\t\t\t\tattributes,\n\t\t\t\t\toriginalContent: content,\n\t\t\t } )\n\t\t\t: [ true ];\n\n\t\tupdateBlock( clientId, {\n\t\t\tattributes,\n\t\t\toriginalContent: content,\n\t\t\tisValid,\n\t\t} );\n\n\t\t// Ensure the state is updated if we reset so it displays the default content.\n\t\tif ( ! html ) {\n\t\t\tsetHtml( { content } );\n\t\t}\n\t};\n\n\tuseEffect( () => {\n\t\tsetHtml( getBlockContent( block ) );\n\t}, [ block ] );\n\n\treturn (\n\t\t<TextareaAutosize\n\t\t\tclassName=\"block-editor-block-list__block-html-textarea\"\n\t\t\tvalue={ html }\n\t\t\tonBlur={ onChange }\n\t\t\tonChange={ ( event ) => setHtml( event.target.value ) }\n\t\t/>\n\t);\n}\n\nexport default BlockHTML;\n"]}
|
|
@@ -10,7 +10,7 @@ import { omit } from 'lodash';
|
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { createContext, useMemo, useCallback, RawHTML } from '@wordpress/element';
|
|
13
|
-
import { getBlockType, getSaveContent, isUnmodifiedDefaultBlock } from '@wordpress/blocks';
|
|
13
|
+
import { getBlockType, getSaveContent, isUnmodifiedDefaultBlock, serializeRawBlock } from '@wordpress/blocks';
|
|
14
14
|
import { withFilters } from '@wordpress/components';
|
|
15
15
|
import { withDispatch, withSelect, useDispatch, useSelect } from '@wordpress/data';
|
|
16
16
|
import { compose, pure, ifCondition } from '@wordpress/compose';
|
|
@@ -69,6 +69,9 @@ function BlockListBlock(_ref2) {
|
|
|
69
69
|
var _wrapperProps;
|
|
70
70
|
|
|
71
71
|
let {
|
|
72
|
+
block: {
|
|
73
|
+
__unstableBlockSource
|
|
74
|
+
},
|
|
72
75
|
mode,
|
|
73
76
|
isLocked,
|
|
74
77
|
canRemove,
|
|
@@ -138,7 +141,7 @@ function BlockListBlock(_ref2) {
|
|
|
138
141
|
let block;
|
|
139
142
|
|
|
140
143
|
if (!isValid) {
|
|
141
|
-
const saveContent = getSaveContent(blockType, attributes);
|
|
144
|
+
const saveContent = __unstableBlockSource ? serializeRawBlock(__unstableBlockSource) : getSaveContent(blockType, attributes);
|
|
142
145
|
block = createElement(Block, {
|
|
143
146
|
className: "has-warning"
|
|
144
147
|
}, createElement(BlockInvalidWarning, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["classnames","omit","createContext","useMemo","useCallback","RawHTML","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","withFilters","withDispatch","withSelect","useDispatch","useSelect","compose","pure","ifCondition","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","store","blockEditorStore","BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","themeSupportsLayout","select","getSettings","supportsLayout","removeBlock","onRemove","blockEdit","undefined","blockType","getEditWrapperProps","isAligned","block","saveContent","display","apiVersion","value","memoizedValue","Object","values","applyWithSelect","rootClientId","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","templateLock","canMove","applyWithDispatch","dispatch","ownProps","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","length","onInsertBlocks","blocks","index","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","indexToSelect","initialPosition","selectionEnabled"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tRawHTML,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseDispatch,\n\tuseSelect,\n} from '@wordpress/data';\nimport { compose, pure, ifCondition } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BlockListBlockContext = createContext();\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA && propsB && propsA.className && propsB.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA && propsB && propsA.style && propsB.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().supportsLayout;\n\t}, [] );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName=\"wp-block\"\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName:\n\t\t\twrapperProps?.[ 'data-align' ] && themeSupportsLayout\n\t\t\t\t? classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t`align${ wrapperProps[ 'data-align' ] }`\n\t\t\t\t )\n\t\t\t\t: className,\n\t\twrapperProps: omit( wrapperProps, [ 'data-align' ] ),\n\t\tisAligned,\n\t};\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst multiSelectedBlockClientIds = getMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { getPreviousBlockClientId, getNextBlockClientId } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\tif ( forward ) {\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\tclientId\n\t\t\t\t);\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-editor/src/components/block-list/block.js"],"names":["classnames","omit","createContext","useMemo","useCallback","RawHTML","getBlockType","getSaveContent","isUnmodifiedDefaultBlock","serializeRawBlock","withFilters","withDispatch","withSelect","useDispatch","useSelect","compose","pure","ifCondition","safeHTML","BlockEdit","BlockInvalidWarning","BlockCrashWarning","BlockCrashBoundary","BlockHtml","useBlockProps","store","blockEditorStore","BlockListBlockContext","mergeWrapperProps","propsA","propsB","newProps","className","style","Block","children","isHtml","props","__unstableIsHtml","BlockListBlock","block","__unstableBlockSource","mode","isLocked","canRemove","clientId","isSelected","isSelectionEnabled","name","isValid","attributes","wrapperProps","setAttributes","onReplace","onInsertBlocksAfter","onMerge","toggleSelection","themeSupportsLayout","select","getSettings","supportsLayout","removeBlock","onRemove","blockEdit","undefined","blockType","getEditWrapperProps","isAligned","saveContent","display","apiVersion","value","memoizedValue","Object","values","applyWithSelect","rootClientId","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","templateLock","canMove","applyWithDispatch","dispatch","ownProps","updateBlockAttributes","insertBlocks","mergeBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","length","onInsertBlocks","blocks","index","getBlockIndex","forward","getPreviousBlockClientId","getNextBlockClientId","nextBlockClientId","previousBlockClientId","indexToSelect","initialPosition","selectionEnabled"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreateContext,\n\tuseMemo,\n\tuseCallback,\n\tRawHTML,\n} from '@wordpress/element';\nimport {\n\tgetBlockType,\n\tgetSaveContent,\n\tisUnmodifiedDefaultBlock,\n\tserializeRawBlock,\n} from '@wordpress/blocks';\nimport { withFilters } from '@wordpress/components';\nimport {\n\twithDispatch,\n\twithSelect,\n\tuseDispatch,\n\tuseSelect,\n} from '@wordpress/data';\nimport { compose, pure, ifCondition } from '@wordpress/compose';\nimport { safeHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockCrashWarning from './block-crash-warning';\nimport BlockCrashBoundary from './block-crash-boundary';\nimport BlockHtml from './block-html';\nimport { useBlockProps } from './use-block-props';\nimport { store as blockEditorStore } from '../../store';\n\nexport const BlockListBlockContext = createContext();\n\n/**\n * Merges wrapper props with special handling for classNames and styles.\n *\n * @param {Object} propsA\n * @param {Object} propsB\n *\n * @return {Object} Merged props.\n */\nfunction mergeWrapperProps( propsA, propsB ) {\n\tconst newProps = {\n\t\t...propsA,\n\t\t...propsB,\n\t};\n\n\tif ( propsA && propsB && propsA.className && propsB.className ) {\n\t\tnewProps.className = classnames( propsA.className, propsB.className );\n\t}\n\tif ( propsA && propsB && propsA.style && propsB.style ) {\n\t\tnewProps.style = { ...propsA.style, ...propsB.style };\n\t}\n\n\treturn newProps;\n}\n\nfunction Block( { children, isHtml, ...props } ) {\n\treturn (\n\t\t<div { ...useBlockProps( props, { __unstableIsHtml: isHtml } ) }>\n\t\t\t{ children }\n\t\t</div>\n\t);\n}\n\nfunction BlockListBlock( {\n\tblock: { __unstableBlockSource },\n\tmode,\n\tisLocked,\n\tcanRemove,\n\tclientId,\n\tisSelected,\n\tisSelectionEnabled,\n\tclassName,\n\tname,\n\tisValid,\n\tattributes,\n\twrapperProps,\n\tsetAttributes,\n\tonReplace,\n\tonInsertBlocksAfter,\n\tonMerge,\n\ttoggleSelection,\n} ) {\n\tconst themeSupportsLayout = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().supportsLayout;\n\t}, [] );\n\tconst { removeBlock } = useDispatch( blockEditorStore );\n\tconst onRemove = useCallback( () => removeBlock( clientId ), [ clientId ] );\n\n\t// We wrap the BlockEdit component in a div that hides it when editing in\n\t// HTML mode. This allows us to render all of the ancillary pieces\n\t// (InspectorControls, etc.) which are inside `BlockEdit` but not\n\t// `BlockHTML`, even in HTML mode.\n\tlet blockEdit = (\n\t\t<BlockEdit\n\t\t\tname={ name }\n\t\t\tisSelected={ isSelected }\n\t\t\tattributes={ attributes }\n\t\t\tsetAttributes={ setAttributes }\n\t\t\tinsertBlocksAfter={ isLocked ? undefined : onInsertBlocksAfter }\n\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\tclientId={ clientId }\n\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\ttoggleSelection={ toggleSelection }\n\t\t/>\n\t);\n\n\tconst blockType = getBlockType( name );\n\n\t// Determine whether the block has props to apply to the wrapper.\n\tif ( blockType?.getEditWrapperProps ) {\n\t\twrapperProps = mergeWrapperProps(\n\t\t\twrapperProps,\n\t\t\tblockType.getEditWrapperProps( attributes )\n\t\t);\n\t}\n\n\tconst isAligned =\n\t\twrapperProps &&\n\t\t!! wrapperProps[ 'data-align' ] &&\n\t\t! themeSupportsLayout;\n\n\t// For aligned blocks, provide a wrapper element so the block can be\n\t// positioned relative to the block column.\n\t// This is only kept for classic themes that don't support layout\n\t// Historically we used to rely on extra divs and data-align to\n\t// provide the alignments styles in the editor.\n\t// Due to the differences between frontend and backend, we migrated\n\t// to the layout feature, and we're now aligning the markup of frontend\n\t// and backend.\n\tif ( isAligned ) {\n\t\tblockEdit = (\n\t\t\t<div\n\t\t\t\tclassName=\"wp-block\"\n\t\t\t\tdata-align={ wrapperProps[ 'data-align' ] }\n\t\t\t>\n\t\t\t\t{ blockEdit }\n\t\t\t</div>\n\t\t);\n\t}\n\n\tlet block;\n\n\tif ( ! isValid ) {\n\t\tconst saveContent = __unstableBlockSource\n\t\t\t? serializeRawBlock( __unstableBlockSource )\n\t\t\t: getSaveContent( blockType, attributes );\n\n\t\tblock = (\n\t\t\t<Block className=\"has-warning\">\n\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t<RawHTML>{ safeHTML( saveContent ) }</RawHTML>\n\t\t\t</Block>\n\t\t);\n\t} else if ( mode === 'html' ) {\n\t\t// Render blockEdit so the inspector controls don't disappear.\n\t\t// See #8969.\n\t\tblock = (\n\t\t\t<>\n\t\t\t\t<div style={ { display: 'none' } }>{ blockEdit }</div>\n\t\t\t\t<Block isHtml>\n\t\t\t\t\t<BlockHtml clientId={ clientId } />\n\t\t\t\t</Block>\n\t\t\t</>\n\t\t);\n\t} else if ( blockType?.apiVersion > 1 ) {\n\t\tblock = blockEdit;\n\t} else {\n\t\tblock = <Block { ...wrapperProps }>{ blockEdit }</Block>;\n\t}\n\n\tconst value = {\n\t\tclientId,\n\t\tclassName:\n\t\t\twrapperProps?.[ 'data-align' ] && themeSupportsLayout\n\t\t\t\t? classnames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t`align${ wrapperProps[ 'data-align' ] }`\n\t\t\t\t )\n\t\t\t\t: className,\n\t\twrapperProps: omit( wrapperProps, [ 'data-align' ] ),\n\t\tisAligned,\n\t};\n\tconst memoizedValue = useMemo( () => value, Object.values( value ) );\n\n\treturn (\n\t\t<BlockListBlockContext.Provider value={ memoizedValue }>\n\t\t\t<BlockCrashBoundary\n\t\t\t\tfallback={\n\t\t\t\t\t<Block className=\"has-warning\">\n\t\t\t\t\t\t<BlockCrashWarning />\n\t\t\t\t\t</Block>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ block }\n\t\t\t</BlockCrashBoundary>\n\t\t</BlockListBlockContext.Provider>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, { select } ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst multiSelectedBlockClientIds = getMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst { getPreviousBlockClientId, getNextBlockClientId } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\n\t\t\tif ( forward ) {\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\t\t\t\tif ( nextBlockClientId ) {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId = getPreviousBlockClientId(\n\t\t\t\t\tclientId\n\t\t\t\t);\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block ),\n\twithFilters( 'editor.BlockListBlock' )\n)( BlockListBlock );\n"]}
|
|
@@ -28,9 +28,7 @@ import { useBlockMovingModeClassNames } from './use-block-moving-mode-class-name
|
|
|
28
28
|
import { useFocusHandler } from './use-focus-handler';
|
|
29
29
|
import { useEventHandlers } from './use-selected-block-event-handlers';
|
|
30
30
|
import { useNavModeExit } from './use-nav-mode-exit';
|
|
31
|
-
import { useScrollIntoView } from './use-scroll-into-view';
|
|
32
31
|
import { useBlockRefProvider } from './use-block-refs';
|
|
33
|
-
import { useMultiSelection } from './use-multi-selection';
|
|
34
32
|
import { useIntersectionObserver } from './use-intersection-observer';
|
|
35
33
|
import { store as blockEditorStore } from '../../../store';
|
|
36
34
|
/**
|
|
@@ -106,8 +104,7 @@ export function useBlockProps() {
|
|
|
106
104
|
|
|
107
105
|
const blockLabel = sprintf(__('Block: %s'), blockTitle);
|
|
108
106
|
const htmlSuffix = mode === 'html' && !__unstableIsHtml ? '-visual' : '';
|
|
109
|
-
const mergedRefs = useMergeRefs([props.ref, useFocusFirstElement(clientId),
|
|
110
|
-
useScrollIntoView(clientId), useBlockRefProvider(clientId), useFocusHandler(clientId), useMultiSelection(clientId), useEventHandlers(clientId), useNavModeExit(clientId), useIsHovered(), useIntersectionObserver(), useMovingAnimation({
|
|
107
|
+
const mergedRefs = useMergeRefs([props.ref, useFocusFirstElement(clientId), useBlockRefProvider(clientId), useFocusHandler(clientId), useEventHandlers(clientId), useNavModeExit(clientId), useIsHovered(), useIntersectionObserver(), useMovingAnimation({
|
|
111
108
|
isSelected: isPartOfSelection,
|
|
112
109
|
adjustScrolling,
|
|
113
110
|
enableAnimation,
|