@wordpress/block-editor 12.1.0 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/autocompleters/block.js +13 -5
- package/build/autocompleters/block.js.map +1 -1
- package/build/components/block-breadcrumb/index.js +6 -3
- package/build/components/block-breadcrumb/index.js.map +1 -1
- package/build/components/block-editing-mode/index.js +84 -0
- package/build/components/block-editing-mode/index.js.map +1 -0
- package/build/components/block-list/block-list-block-context.js +15 -0
- package/build/components/block-list/block-list-block-context.js.map +1 -0
- package/build/components/block-list/block.js +29 -37
- package/build/components/block-list/block.js.map +1 -1
- package/build/components/block-list/block.native.js +14 -22
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/index.native.js +107 -108
- package/build/components/block-list/index.native.js.map +1 -1
- package/build/components/block-list/use-block-props/index.js +2 -2
- package/build/components/block-list/use-block-props/index.js.map +1 -1
- package/build/components/block-list/use-in-between-inserter.js +7 -5
- package/build/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build/components/block-list-appender/index.js +15 -1
- package/build/components/block-list-appender/index.js.map +1 -1
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js +19 -4
- package/build/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build/components/block-styles/preview-panel.js +1 -2
- package/build/components/block-styles/preview-panel.js.map +1 -1
- package/build/components/block-switcher/block-transformations-menu.js +8 -0
- package/build/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build/components/block-switcher/block-variation-transformations.js +125 -0
- package/build/components/block-switcher/block-variation-transformations.js.map +1 -0
- package/build/components/block-switcher/index.js +34 -12
- package/build/components/block-switcher/index.js.map +1 -1
- package/build/components/block-switcher/pattern-transformations-menu.js +3 -3
- package/build/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build/components/block-toolbar/index.js +9 -7
- package/build/components/block-toolbar/index.js.map +1 -1
- package/build/components/block-tools/block-contextual-toolbar.js +5 -3
- package/build/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build/components/block-tools/insertion-point.js +11 -5
- package/build/components/block-tools/insertion-point.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.js +7 -2
- package/build/components/convert-to-group-buttons/index.js.map +1 -1
- package/build/components/convert-to-group-buttons/index.native.js +87 -3
- package/build/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js +23 -37
- package/build/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build/components/global-styles/dimensions-panel.js +3 -2
- package/build/components/global-styles/dimensions-panel.js.map +1 -1
- package/build/components/iframe/index.js +14 -7
- package/build/components/iframe/index.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -1
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/inner-blocks/index.native.js +7 -7
- package/build/components/inner-blocks/index.native.js.map +1 -1
- package/build/components/inner-blocks/use-nested-settings-update.js +13 -5
- package/build/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build/components/inserter/index.js +3 -7
- package/build/components/inserter/index.js.map +1 -1
- package/build/components/inserter/quick-inserter.js +2 -4
- package/build/components/inserter/quick-inserter.js.map +1 -1
- package/build/components/inserter/search-results.js +19 -6
- package/build/components/inserter/search-results.js.map +1 -1
- package/build/components/list-view/appender.js +6 -1
- package/build/components/list-view/appender.js.map +1 -1
- package/build/components/list-view/block-contents.js +4 -2
- package/build/components/list-view/block-contents.js.map +1 -1
- package/build/components/list-view/block.js +21 -25
- package/build/components/list-view/block.js.map +1 -1
- package/build/components/list-view/branch.js +1 -3
- package/build/components/list-view/branch.js.map +1 -1
- package/build/components/list-view/index.js +14 -7
- package/build/components/list-view/index.js.map +1 -1
- package/build/components/list-view/use-list-view-client-ids.js +27 -3
- package/build/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build/components/publish-date-time-picker/index.js +0 -2
- package/build/components/publish-date-time-picker/index.js.map +1 -1
- package/build/components/url-input/index.js +3 -0
- package/build/components/url-input/index.js.map +1 -1
- package/build/components/use-block-drop-zone/index.js +25 -15
- package/build/components/use-block-drop-zone/index.js.map +1 -1
- package/build/components/use-resize-canvas/index.js +8 -1
- package/build/components/use-resize-canvas/index.js.map +1 -1
- package/build/components/writing-flow/use-arrow-nav.js +13 -7
- package/build/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build/hooks/align.js +3 -7
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/behaviors.js +115 -0
- package/build/hooks/behaviors.js.map +1 -0
- package/build/hooks/dimensions.js +0 -30
- package/build/hooks/dimensions.js.map +1 -1
- package/build/hooks/duotone.js +4 -8
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/index.js +2 -0
- package/build/hooks/index.js.map +1 -1
- package/build/hooks/layout.js +8 -9
- package/build/hooks/layout.js.map +1 -1
- package/build/private-apis.js +4 -7
- package/build/private-apis.js.map +1 -1
- package/build/store/private-actions.js +46 -0
- package/build/store/private-actions.js.map +1 -1
- package/build/store/private-selectors.js +88 -0
- package/build/store/private-selectors.js.map +1 -1
- package/build/store/reducer.js +36 -1
- package/build/store/reducer.js.map +1 -1
- package/build/store/selectors.js +28 -18
- package/build/store/selectors.js.map +1 -1
- package/build/utils/order-inserter-block-items.js +41 -0
- package/build/utils/order-inserter-block-items.js.map +1 -0
- package/build-module/autocompleters/block.js +12 -5
- package/build-module/autocompleters/block.js.map +1 -1
- package/build-module/components/block-breadcrumb/index.js +5 -3
- package/build-module/components/block-breadcrumb/index.js.map +1 -1
- package/build-module/components/block-editing-mode/index.js +72 -0
- package/build-module/components/block-editing-mode/index.js.map +1 -0
- package/build-module/components/block-list/block-list-block-context.js +6 -0
- package/build-module/components/block-list/block-list-block-context.js.map +1 -0
- package/build-module/components/block-list/block.js +26 -34
- package/build-module/components/block-list/block.js.map +1 -1
- package/build-module/components/block-list/block.native.js +14 -22
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/index.native.js +108 -110
- package/build-module/components/block-list/index.native.js.map +1 -1
- package/build-module/components/block-list/use-block-props/index.js +1 -1
- package/build-module/components/block-list/use-block-props/index.js.map +1 -1
- package/build-module/components/block-list/use-in-between-inserter.js +6 -5
- package/build-module/components/block-list/use-in-between-inserter.js.map +1 -1
- package/build-module/components/block-list-appender/index.js +15 -1
- package/build-module/components/block-list-appender/index.js.map +1 -1
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js +18 -4
- package/build-module/components/block-mobile-toolbar/block-actions-menu.native.js.map +1 -1
- package/build-module/components/block-styles/preview-panel.js +1 -2
- package/build-module/components/block-styles/preview-panel.js.map +1 -1
- package/build-module/components/block-switcher/block-transformations-menu.js +7 -0
- package/build-module/components/block-switcher/block-transformations-menu.js.map +1 -1
- package/build-module/components/block-switcher/block-variation-transformations.js +108 -0
- package/build-module/components/block-switcher/block-variation-transformations.js.map +1 -0
- package/build-module/components/block-switcher/index.js +33 -12
- package/build-module/components/block-switcher/index.js.map +1 -1
- package/build-module/components/block-switcher/pattern-transformations-menu.js +3 -3
- package/build-module/components/block-switcher/pattern-transformations-menu.js.map +1 -1
- package/build-module/components/block-toolbar/index.js +8 -7
- package/build-module/components/block-toolbar/index.js.map +1 -1
- package/build-module/components/block-tools/block-contextual-toolbar.js +4 -3
- package/build-module/components/block-tools/block-contextual-toolbar.js.map +1 -1
- package/build-module/components/block-tools/insertion-point.js +11 -5
- package/build-module/components/block-tools/insertion-point.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.js +7 -2
- package/build-module/components/convert-to-group-buttons/index.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/index.native.js +76 -1
- package/build-module/components/convert-to-group-buttons/index.native.js.map +1 -1
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js +22 -36
- package/build-module/components/convert-to-group-buttons/use-convert-to-group-button-props.js.map +1 -1
- package/build-module/components/global-styles/dimensions-panel.js +3 -2
- package/build-module/components/global-styles/dimensions-panel.js.map +1 -1
- package/build-module/components/iframe/index.js +15 -8
- package/build-module/components/iframe/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -1
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/inner-blocks/index.native.js +7 -6
- package/build-module/components/inner-blocks/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/use-nested-settings-update.js +13 -5
- package/build-module/components/inner-blocks/use-nested-settings-update.js.map +1 -1
- package/build-module/components/inserter/index.js +3 -7
- package/build-module/components/inserter/index.js.map +1 -1
- package/build-module/components/inserter/quick-inserter.js +2 -4
- package/build-module/components/inserter/quick-inserter.js.map +1 -1
- package/build-module/components/inserter/search-results.js +16 -6
- package/build-module/components/inserter/search-results.js.map +1 -1
- package/build-module/components/list-view/appender.js +6 -2
- package/build-module/components/list-view/appender.js.map +1 -1
- package/build-module/components/list-view/block-contents.js +4 -2
- package/build-module/components/list-view/block-contents.js.map +1 -1
- package/build-module/components/list-view/block.js +20 -25
- package/build-module/components/list-view/block.js.map +1 -1
- package/build-module/components/list-view/branch.js +1 -3
- package/build-module/components/list-view/branch.js.map +1 -1
- package/build-module/components/list-view/index.js +15 -8
- package/build-module/components/list-view/index.js.map +1 -1
- package/build-module/components/list-view/use-list-view-client-ids.js +26 -3
- package/build-module/components/list-view/use-list-view-client-ids.js.map +1 -1
- package/build-module/components/publish-date-time-picker/index.js +0 -2
- package/build-module/components/publish-date-time-picker/index.js.map +1 -1
- package/build-module/components/url-input/index.js +3 -0
- package/build-module/components/url-input/index.js.map +1 -1
- package/build-module/components/use-block-drop-zone/index.js +25 -16
- package/build-module/components/use-block-drop-zone/index.js.map +1 -1
- package/build-module/components/use-resize-canvas/index.js +8 -1
- package/build-module/components/use-resize-canvas/index.js.map +1 -1
- package/build-module/components/writing-flow/use-arrow-nav.js +13 -7
- package/build-module/components/writing-flow/use-arrow-nav.js.map +1 -1
- package/build-module/hooks/align.js +3 -6
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/behaviors.js +97 -0
- package/build-module/hooks/behaviors.js.map +1 -0
- package/build-module/hooks/dimensions.js +0 -28
- package/build-module/hooks/dimensions.js.map +1 -1
- package/build-module/hooks/duotone.js +3 -6
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/index.js +1 -0
- package/build-module/hooks/index.js.map +1 -1
- package/build-module/hooks/layout.js +7 -9
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/private-apis.js +3 -5
- package/build-module/private-apis.js.map +1 -1
- package/build-module/store/private-actions.js +42 -0
- package/build-module/store/private-actions.js.map +1 -1
- package/build-module/store/private-selectors.js +79 -0
- package/build-module/store/private-selectors.js.map +1 -1
- package/build-module/store/reducer.js +34 -1
- package/build-module/store/reducer.js.map +1 -1
- package/build-module/store/selectors.js +26 -17
- package/build-module/store/selectors.js.map +1 -1
- package/build-module/utils/order-inserter-block-items.js +32 -0
- package/build-module/utils/order-inserter-block-items.js.map +1 -0
- package/build-style/content-rtl.css +32 -13
- package/build-style/content.css +32 -13
- package/build-style/default-editor-styles-rtl.css +1 -1
- package/build-style/default-editor-styles.css +1 -1
- package/build-style/style-rtl.css +19 -64
- package/build-style/style.css +20 -64
- package/package.json +32 -31
- package/src/autocompleters/block.js +15 -7
- package/src/components/block-breadcrumb/index.js +11 -3
- package/src/components/block-editing-mode/index.js +71 -0
- package/src/components/block-list/block-list-block-context.js +6 -0
- package/src/components/block-list/block.js +38 -56
- package/src/components/block-list/block.native.js +30 -41
- package/src/components/block-list/content.scss +5 -5
- package/src/components/block-list/index.native.js +164 -153
- package/src/components/block-list/test/index.native.js +2 -2
- package/src/components/block-list/use-block-props/index.js +1 -1
- package/src/components/block-list/use-in-between-inserter.js +7 -3
- package/src/components/block-list-appender/index.js +22 -4
- package/src/components/block-mobile-toolbar/block-actions-menu.native.js +23 -0
- package/src/components/block-mover/style.scss +1 -0
- package/src/components/block-styles/preview-panel.js +1 -3
- package/src/components/block-switcher/block-transformations-menu.js +12 -0
- package/src/components/block-switcher/block-variation-transformations.js +115 -0
- package/src/components/block-switcher/index.js +38 -5
- package/src/components/block-switcher/pattern-transformations-menu.js +5 -5
- package/src/components/block-switcher/style.scss +6 -5
- package/src/components/block-toolbar/index.js +10 -11
- package/src/components/block-tools/block-contextual-toolbar.js +4 -5
- package/src/components/block-tools/insertion-point.js +23 -9
- package/src/components/button-block-appender/content.scss +22 -0
- package/src/components/convert-to-group-buttons/index.js +9 -2
- package/src/components/convert-to-group-buttons/index.native.js +79 -1
- package/src/components/convert-to-group-buttons/use-convert-to-group-button-props.js +32 -38
- package/src/components/global-styles/dimensions-panel.js +3 -2
- package/src/components/global-styles/style.scss +3 -0
- package/src/components/iframe/index.js +22 -12
- package/src/components/inner-blocks/README.md +5 -0
- package/src/components/inner-blocks/index.js +2 -0
- package/src/components/inner-blocks/index.native.js +16 -6
- package/src/components/inner-blocks/use-nested-settings-update.js +20 -3
- package/src/components/inserter/index.js +1 -9
- package/src/components/inserter/quick-inserter.js +0 -2
- package/src/components/inserter/search-results.js +32 -6
- package/src/components/list-view/appender.js +3 -2
- package/src/components/list-view/block-contents.js +8 -2
- package/src/components/list-view/block.js +29 -35
- package/src/components/list-view/branch.js +1 -7
- package/src/components/list-view/index.js +17 -4
- package/src/components/list-view/style.scss +2 -5
- package/src/components/list-view/use-list-view-client-ids.js +21 -4
- package/src/components/publish-date-time-picker/index.js +0 -2
- package/src/components/url-input/README.md +6 -0
- package/src/components/url-input/index.js +1 -0
- package/src/components/use-block-drop-zone/index.js +31 -17
- package/src/components/use-resize-canvas/index.js +9 -1
- package/src/components/writing-flow/test/index.js +15 -0
- package/src/components/writing-flow/use-arrow-nav.js +17 -4
- package/src/hooks/align.js +3 -11
- package/src/hooks/behaviors.js +104 -0
- package/src/hooks/dimensions.js +0 -40
- package/src/hooks/duotone.js +3 -11
- package/src/hooks/index.js +1 -0
- package/src/hooks/layout.js +10 -18
- package/src/private-apis.js +2 -4
- package/src/store/private-actions.js +39 -0
- package/src/store/private-selectors.js +95 -0
- package/src/store/reducer.js +27 -0
- package/src/store/selectors.js +25 -15
- package/src/store/test/private-actions.js +32 -1
- package/src/store/test/private-selectors.js +158 -0
- package/src/store/test/reducer.js +48 -0
- package/src/style.scss +0 -3
- package/src/utils/order-inserter-block-items.js +26 -0
- package/build/components/block-list/block-list-compact.native.js +0 -75
- package/build/components/block-list/block-list-compact.native.js.map +0 -1
- package/build/components/off-canvas-editor/appender.js +0 -125
- package/build/components/off-canvas-editor/appender.js.map +0 -1
- package/build/components/off-canvas-editor/block-contents.js +0 -141
- package/build/components/off-canvas-editor/block-contents.js.map +0 -1
- package/build/components/off-canvas-editor/block-select-button.js +0 -126
- package/build/components/off-canvas-editor/block-select-button.js.map +0 -1
- package/build/components/off-canvas-editor/block.js +0 -297
- package/build/components/off-canvas-editor/block.js.map +0 -1
- package/build/components/off-canvas-editor/branch.js +0 -197
- package/build/components/off-canvas-editor/branch.js.map +0 -1
- package/build/components/off-canvas-editor/context.js +0 -19
- package/build/components/off-canvas-editor/context.js.map +0 -1
- package/build/components/off-canvas-editor/drop-indicator.js +0 -118
- package/build/components/off-canvas-editor/drop-indicator.js.map +0 -1
- package/build/components/off-canvas-editor/expander.js +0 -41
- package/build/components/off-canvas-editor/expander.js.map +0 -1
- package/build/components/off-canvas-editor/index.js +0 -236
- package/build/components/off-canvas-editor/index.js.map +0 -1
- package/build/components/off-canvas-editor/leaf-more-menu.js +0 -148
- package/build/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
- package/build/components/off-canvas-editor/leaf.js +0 -60
- package/build/components/off-canvas-editor/leaf.js.map +0 -1
- package/build/components/off-canvas-editor/link-ui.js +0 -186
- package/build/components/off-canvas-editor/link-ui.js.map +0 -1
- package/build/components/off-canvas-editor/update-attributes.js +0 -108
- package/build/components/off-canvas-editor/update-attributes.js.map +0 -1
- package/build/components/off-canvas-editor/use-block-selection.js +0 -139
- package/build/components/off-canvas-editor/use-block-selection.js.map +0 -1
- package/build/components/off-canvas-editor/use-inserted-block.js +0 -58
- package/build/components/off-canvas-editor/use-inserted-block.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-client-ids.js +0 -33
- package/build/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js +0 -235
- package/build/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
- package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -60
- package/build/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
- package/build/components/off-canvas-editor/utils.js +0 -60
- package/build/components/off-canvas-editor/utils.js.map +0 -1
- package/build-module/components/block-list/block-list-compact.native.js +0 -60
- package/build-module/components/block-list/block-list-compact.native.js.map +0 -1
- package/build-module/components/off-canvas-editor/appender.js +0 -108
- package/build-module/components/off-canvas-editor/appender.js.map +0 -1
- package/build-module/components/off-canvas-editor/block-contents.js +0 -121
- package/build-module/components/off-canvas-editor/block-contents.js.map +0 -1
- package/build-module/components/off-canvas-editor/block-select-button.js +0 -107
- package/build-module/components/off-canvas-editor/block-select-button.js.map +0 -1
- package/build-module/components/off-canvas-editor/block.js +0 -273
- package/build-module/components/off-canvas-editor/block.js.map +0 -1
- package/build-module/components/off-canvas-editor/branch.js +0 -179
- package/build-module/components/off-canvas-editor/branch.js.map +0 -1
- package/build-module/components/off-canvas-editor/context.js +0 -7
- package/build-module/components/off-canvas-editor/context.js.map +0 -1
- package/build-module/components/off-canvas-editor/drop-indicator.js +0 -111
- package/build-module/components/off-canvas-editor/drop-indicator.js.map +0 -1
- package/build-module/components/off-canvas-editor/expander.js +0 -32
- package/build-module/components/off-canvas-editor/expander.js.map +0 -1
- package/build-module/components/off-canvas-editor/index.js +0 -213
- package/build-module/components/off-canvas-editor/index.js.map +0 -1
- package/build-module/components/off-canvas-editor/leaf-more-menu.js +0 -130
- package/build-module/components/off-canvas-editor/leaf-more-menu.js.map +0 -1
- package/build-module/components/off-canvas-editor/leaf.js +0 -45
- package/build-module/components/off-canvas-editor/leaf.js.map +0 -1
- package/build-module/components/off-canvas-editor/link-ui.js +0 -166
- package/build-module/components/off-canvas-editor/link-ui.js.map +0 -1
- package/build-module/components/off-canvas-editor/update-attributes.js +0 -97
- package/build-module/components/off-canvas-editor/update-attributes.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-block-selection.js +0 -124
- package/build-module/components/off-canvas-editor/use-block-selection.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-inserted-block.js +0 -47
- package/build-module/components/off-canvas-editor/use-inserted-block.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-client-ids.js +0 -24
- package/build-module/components/off-canvas-editor/use-list-view-client-ids.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js +0 -220
- package/build-module/components/off-canvas-editor/use-list-view-drop-zone.js.map +0 -1
- package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -50
- package/build-module/components/off-canvas-editor/use-list-view-expand-selected-item.js.map +0 -1
- package/build-module/components/off-canvas-editor/utils.js +0 -44
- package/build-module/components/off-canvas-editor/utils.js.map +0 -1
- package/src/components/block-list/block-list-compact.native.js +0 -63
- package/src/components/off-canvas-editor/README.md +0 -5
- package/src/components/off-canvas-editor/appender.js +0 -124
- package/src/components/off-canvas-editor/block-contents.js +0 -156
- package/src/components/off-canvas-editor/block-select-button.js +0 -128
- package/src/components/off-canvas-editor/block.js +0 -347
- package/src/components/off-canvas-editor/branch.js +0 -238
- package/src/components/off-canvas-editor/context.js +0 -8
- package/src/components/off-canvas-editor/drop-indicator.js +0 -126
- package/src/components/off-canvas-editor/expander.js +0 -26
- package/src/components/off-canvas-editor/index.js +0 -271
- package/src/components/off-canvas-editor/leaf-more-menu.js +0 -158
- package/src/components/off-canvas-editor/leaf.js +0 -52
- package/src/components/off-canvas-editor/link-ui.js +0 -167
- package/src/components/off-canvas-editor/style.scss +0 -34
- package/src/components/off-canvas-editor/test/use-inserted-block.js +0 -108
- package/src/components/off-canvas-editor/test/utils.js +0 -50
- package/src/components/off-canvas-editor/update-attributes.js +0 -99
- package/src/components/off-canvas-editor/use-block-selection.js +0 -169
- package/src/components/off-canvas-editor/use-inserted-block.js +0 -47
- package/src/components/off-canvas-editor/use-list-view-client-ids.js +0 -29
- package/src/components/off-canvas-editor/use-list-view-drop-zone.js +0 -260
- package/src/components/off-canvas-editor/use-list-view-expand-selected-item.js +0 -58
- package/src/components/off-canvas-editor/utils.js +0 -58
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _element = require("@wordpress/element");
|
|
11
|
-
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
|
-
var _components = require("@wordpress/components");
|
|
15
|
-
|
|
16
|
-
var _data = require("@wordpress/data");
|
|
17
|
-
|
|
18
|
-
var _appender = require("./appender");
|
|
19
|
-
|
|
20
|
-
var _block = _interopRequireDefault(require("./block"));
|
|
21
|
-
|
|
22
|
-
var _context = require("./context");
|
|
23
|
-
|
|
24
|
-
var _utils = require("./utils");
|
|
25
|
-
|
|
26
|
-
var _store = require("../../store");
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* WordPress dependencies
|
|
30
|
-
*/
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Internal dependencies
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Given a block, returns the total number of blocks in that subtree. This is used to help determine
|
|
38
|
-
* the list position of a block.
|
|
39
|
-
*
|
|
40
|
-
* When a block is collapsed, we do not count their children as part of that total. In the current drag
|
|
41
|
-
* implementation dragged blocks and their children are not counted.
|
|
42
|
-
*
|
|
43
|
-
* @param {Object} block block tree
|
|
44
|
-
* @param {Object} expandedState state that notes which branches are collapsed
|
|
45
|
-
* @param {Array} draggedClientIds a list of dragged client ids
|
|
46
|
-
* @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.
|
|
47
|
-
* @return {number} block count
|
|
48
|
-
*/
|
|
49
|
-
function countBlocks(block, expandedState, draggedClientIds, isExpandedByDefault) {
|
|
50
|
-
var _expandedState$block$;
|
|
51
|
-
|
|
52
|
-
const isDragged = draggedClientIds === null || draggedClientIds === void 0 ? void 0 : draggedClientIds.includes(block.clientId);
|
|
53
|
-
|
|
54
|
-
if (isDragged) {
|
|
55
|
-
return 0;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
const isExpanded = (_expandedState$block$ = expandedState[block.clientId]) !== null && _expandedState$block$ !== void 0 ? _expandedState$block$ : isExpandedByDefault;
|
|
59
|
-
|
|
60
|
-
if (isExpanded) {
|
|
61
|
-
return 1 + block.innerBlocks.reduce(countReducer(expandedState, draggedClientIds, isExpandedByDefault), 0);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return 1;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const countReducer = (expandedState, draggedClientIds, isExpandedByDefault) => (count, block) => {
|
|
68
|
-
var _expandedState$block$2;
|
|
69
|
-
|
|
70
|
-
const isDragged = draggedClientIds === null || draggedClientIds === void 0 ? void 0 : draggedClientIds.includes(block.clientId);
|
|
71
|
-
|
|
72
|
-
if (isDragged) {
|
|
73
|
-
return count;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const isExpanded = (_expandedState$block$2 = expandedState[block.clientId]) !== null && _expandedState$block$2 !== void 0 ? _expandedState$block$2 : isExpandedByDefault;
|
|
77
|
-
|
|
78
|
-
if (isExpanded && block.innerBlocks.length > 0) {
|
|
79
|
-
return count + countBlocks(block, expandedState, draggedClientIds, isExpandedByDefault);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return count + 1;
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const noop = () => {};
|
|
86
|
-
|
|
87
|
-
function ListViewBranch(props) {
|
|
88
|
-
const {
|
|
89
|
-
blocks,
|
|
90
|
-
selectBlock = noop,
|
|
91
|
-
showBlockMovers,
|
|
92
|
-
selectedClientIds,
|
|
93
|
-
level = 1,
|
|
94
|
-
path = '',
|
|
95
|
-
isBranchSelected = false,
|
|
96
|
-
listPosition = 0,
|
|
97
|
-
fixedListWindow,
|
|
98
|
-
isExpanded,
|
|
99
|
-
parentId,
|
|
100
|
-
shouldShowInnerBlocks = true,
|
|
101
|
-
showAppender: showAppenderProp = true
|
|
102
|
-
} = props;
|
|
103
|
-
const isContentLocked = (0, _data.useSelect)(select => {
|
|
104
|
-
return !!(parentId && select(_store.store).getTemplateLock(parentId) === 'contentOnly');
|
|
105
|
-
}, [parentId]);
|
|
106
|
-
const {
|
|
107
|
-
expandedState,
|
|
108
|
-
draggedClientIds
|
|
109
|
-
} = (0, _context.useListViewContext)();
|
|
110
|
-
|
|
111
|
-
if (isContentLocked) {
|
|
112
|
-
return null;
|
|
113
|
-
} // Only show the appender at the first level.
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const showAppender = showAppenderProp && level === 1;
|
|
117
|
-
const filteredBlocks = blocks.filter(Boolean);
|
|
118
|
-
const blockCount = filteredBlocks.length; // The appender means an extra row in List View, so add 1 to the row count.
|
|
119
|
-
|
|
120
|
-
const rowCount = showAppender ? blockCount + 1 : blockCount;
|
|
121
|
-
let nextPosition = listPosition;
|
|
122
|
-
return (0, _element.createElement)(_element.Fragment, null, filteredBlocks.map((block, index) => {
|
|
123
|
-
var _expandedState$client;
|
|
124
|
-
|
|
125
|
-
const {
|
|
126
|
-
clientId,
|
|
127
|
-
innerBlocks
|
|
128
|
-
} = block;
|
|
129
|
-
|
|
130
|
-
if (index > 0) {
|
|
131
|
-
nextPosition += countBlocks(filteredBlocks[index - 1], expandedState, draggedClientIds, isExpanded);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
const {
|
|
135
|
-
itemInView
|
|
136
|
-
} = fixedListWindow;
|
|
137
|
-
const blockInView = itemInView(nextPosition);
|
|
138
|
-
const position = index + 1;
|
|
139
|
-
const updatedPath = path.length > 0 ? `${path}_${position}` : `${position}`;
|
|
140
|
-
const hasNestedBlocks = !!(innerBlocks !== null && innerBlocks !== void 0 && innerBlocks.length);
|
|
141
|
-
const shouldExpand = hasNestedBlocks && shouldShowInnerBlocks ? (_expandedState$client = expandedState[clientId]) !== null && _expandedState$client !== void 0 ? _expandedState$client : isExpanded : undefined;
|
|
142
|
-
const isDragged = !!(draggedClientIds !== null && draggedClientIds !== void 0 && draggedClientIds.includes(clientId));
|
|
143
|
-
const showBlock = isDragged || blockInView; // Make updates to the selected or dragged blocks synchronous,
|
|
144
|
-
// but asynchronous for any other block.
|
|
145
|
-
|
|
146
|
-
const isSelected = (0, _utils.isClientIdSelected)(clientId, selectedClientIds);
|
|
147
|
-
const isSelectedBranch = isBranchSelected || isSelected && hasNestedBlocks;
|
|
148
|
-
return (0, _element.createElement)(_data.AsyncModeProvider, {
|
|
149
|
-
key: clientId,
|
|
150
|
-
value: !isSelected
|
|
151
|
-
}, showBlock && (0, _element.createElement)(_block.default, {
|
|
152
|
-
block: block,
|
|
153
|
-
selectBlock: selectBlock,
|
|
154
|
-
isSelected: isSelected,
|
|
155
|
-
isBranchSelected: isSelectedBranch,
|
|
156
|
-
isDragged: isDragged,
|
|
157
|
-
level: level,
|
|
158
|
-
position: position,
|
|
159
|
-
rowCount: rowCount,
|
|
160
|
-
siblingBlockCount: blockCount,
|
|
161
|
-
showBlockMovers: showBlockMovers,
|
|
162
|
-
path: updatedPath,
|
|
163
|
-
isExpanded: shouldExpand,
|
|
164
|
-
listPosition: nextPosition,
|
|
165
|
-
selectedClientIds: selectedClientIds
|
|
166
|
-
}), !showBlock && (0, _element.createElement)("tr", null, (0, _element.createElement)("td", {
|
|
167
|
-
className: "block-editor-list-view-placeholder"
|
|
168
|
-
})), hasNestedBlocks && shouldExpand && !isDragged && (0, _element.createElement)(ListViewBranch, {
|
|
169
|
-
parentId: clientId,
|
|
170
|
-
blocks: innerBlocks,
|
|
171
|
-
selectBlock: selectBlock,
|
|
172
|
-
showBlockMovers: showBlockMovers,
|
|
173
|
-
level: level + 1,
|
|
174
|
-
path: updatedPath,
|
|
175
|
-
listPosition: nextPosition + 1,
|
|
176
|
-
fixedListWindow: fixedListWindow,
|
|
177
|
-
isBranchSelected: isSelectedBranch,
|
|
178
|
-
selectedClientIds: selectedClientIds,
|
|
179
|
-
isExpanded: isExpanded,
|
|
180
|
-
showAppender: showAppenderProp
|
|
181
|
-
}));
|
|
182
|
-
}), showAppender && (0, _element.createElement)(_components.__experimentalTreeGridRow, {
|
|
183
|
-
level: level,
|
|
184
|
-
setSize: rowCount,
|
|
185
|
-
positionInSet: rowCount,
|
|
186
|
-
isExpanded: true
|
|
187
|
-
}, (0, _element.createElement)(_components.__experimentalTreeGridCell, null, treeGridCellProps => (0, _element.createElement)(_appender.Appender, (0, _extends2.default)({
|
|
188
|
-
clientId: parentId,
|
|
189
|
-
nestingLevel: level,
|
|
190
|
-
blockCount: blockCount
|
|
191
|
-
}, treeGridCellProps)))));
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
var _default = (0, _element.memo)(ListViewBranch);
|
|
195
|
-
|
|
196
|
-
exports.default = _default;
|
|
197
|
-
//# sourceMappingURL=branch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/branch.js"],"names":["countBlocks","block","expandedState","draggedClientIds","isExpandedByDefault","isDragged","includes","clientId","isExpanded","innerBlocks","reduce","countReducer","count","length","noop","ListViewBranch","props","blocks","selectBlock","showBlockMovers","selectedClientIds","level","path","isBranchSelected","listPosition","fixedListWindow","parentId","shouldShowInnerBlocks","showAppender","showAppenderProp","isContentLocked","select","blockEditorStore","getTemplateLock","filteredBlocks","filter","Boolean","blockCount","rowCount","nextPosition","map","index","itemInView","blockInView","position","updatedPath","hasNestedBlocks","shouldExpand","undefined","showBlock","isSelected","isSelectedBranch","treeGridCellProps"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalTreeGridRow as TreeGridRow,\n\t__experimentalTreeGridCell as TreeGridCell,\n} from '@wordpress/components';\nimport { AsyncModeProvider, useSelect } from '@wordpress/data';\nimport { memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { Appender } from './appender';\nimport ListViewBlock from './block';\nimport { useListViewContext } from './context';\nimport { isClientIdSelected } from './utils';\nimport { store as blockEditorStore } from '../../store';\n\n/**\n * Given a block, returns the total number of blocks in that subtree. This is used to help determine\n * the list position of a block.\n *\n * When a block is collapsed, we do not count their children as part of that total. In the current drag\n * implementation dragged blocks and their children are not counted.\n *\n * @param {Object} block block tree\n * @param {Object} expandedState state that notes which branches are collapsed\n * @param {Array} draggedClientIds a list of dragged client ids\n * @param {boolean} isExpandedByDefault flag to determine the default fallback expanded state.\n * @return {number} block count\n */\nfunction countBlocks(\n\tblock,\n\texpandedState,\n\tdraggedClientIds,\n\tisExpandedByDefault\n) {\n\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\tif ( isDragged ) {\n\t\treturn 0;\n\t}\n\tconst isExpanded = expandedState[ block.clientId ] ?? isExpandedByDefault;\n\n\tif ( isExpanded ) {\n\t\treturn (\n\t\t\t1 +\n\t\t\tblock.innerBlocks.reduce(\n\t\t\t\tcountReducer(\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t),\n\t\t\t\t0\n\t\t\t)\n\t\t);\n\t}\n\treturn 1;\n}\nconst countReducer =\n\t( expandedState, draggedClientIds, isExpandedByDefault ) =>\n\t( count, block ) => {\n\t\tconst isDragged = draggedClientIds?.includes( block.clientId );\n\t\tif ( isDragged ) {\n\t\t\treturn count;\n\t\t}\n\t\tconst isExpanded =\n\t\t\texpandedState[ block.clientId ] ?? isExpandedByDefault;\n\t\tif ( isExpanded && block.innerBlocks.length > 0 ) {\n\t\t\treturn (\n\t\t\t\tcount +\n\t\t\t\tcountBlocks(\n\t\t\t\t\tblock,\n\t\t\t\t\texpandedState,\n\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\tisExpandedByDefault\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\treturn count + 1;\n\t};\n\nconst noop = () => {};\n\nfunction ListViewBranch( props ) {\n\tconst {\n\t\tblocks,\n\t\tselectBlock = noop,\n\t\tshowBlockMovers,\n\t\tselectedClientIds,\n\t\tlevel = 1,\n\t\tpath = '',\n\t\tisBranchSelected = false,\n\t\tlistPosition = 0,\n\t\tfixedListWindow,\n\t\tisExpanded,\n\t\tparentId,\n\t\tshouldShowInnerBlocks = true,\n\t\tshowAppender: showAppenderProp = true,\n\t} = props;\n\n\tconst isContentLocked = useSelect(\n\t\t( select ) => {\n\t\t\treturn !! (\n\t\t\t\tparentId &&\n\t\t\t\tselect( blockEditorStore ).getTemplateLock( parentId ) ===\n\t\t\t\t\t'contentOnly'\n\t\t\t);\n\t\t},\n\t\t[ parentId ]\n\t);\n\n\tconst { expandedState, draggedClientIds } = useListViewContext();\n\n\tif ( isContentLocked ) {\n\t\treturn null;\n\t}\n\n\t// Only show the appender at the first level.\n\tconst showAppender = showAppenderProp && level === 1;\n\n\tconst filteredBlocks = blocks.filter( Boolean );\n\tconst blockCount = filteredBlocks.length;\n\n\t// The appender means an extra row in List View, so add 1 to the row count.\n\tconst rowCount = showAppender ? blockCount + 1 : blockCount;\n\tlet nextPosition = listPosition;\n\n\treturn (\n\t\t<>\n\t\t\t{ filteredBlocks.map( ( block, index ) => {\n\t\t\t\tconst { clientId, innerBlocks } = block;\n\n\t\t\t\tif ( index > 0 ) {\n\t\t\t\t\tnextPosition += countBlocks(\n\t\t\t\t\t\tfilteredBlocks[ index - 1 ],\n\t\t\t\t\t\texpandedState,\n\t\t\t\t\t\tdraggedClientIds,\n\t\t\t\t\t\tisExpanded\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst { itemInView } = fixedListWindow;\n\t\t\t\tconst blockInView = itemInView( nextPosition );\n\n\t\t\t\tconst position = index + 1;\n\t\t\t\tconst updatedPath =\n\t\t\t\t\tpath.length > 0\n\t\t\t\t\t\t? `${ path }_${ position }`\n\t\t\t\t\t\t: `${ position }`;\n\t\t\t\tconst hasNestedBlocks = !! innerBlocks?.length;\n\n\t\t\t\tconst shouldExpand =\n\t\t\t\t\thasNestedBlocks && shouldShowInnerBlocks\n\t\t\t\t\t\t? expandedState[ clientId ] ?? isExpanded\n\t\t\t\t\t\t: undefined;\n\n\t\t\t\tconst isDragged = !! draggedClientIds?.includes( clientId );\n\n\t\t\t\tconst showBlock = isDragged || blockInView;\n\n\t\t\t\t// Make updates to the selected or dragged blocks synchronous,\n\t\t\t\t// but asynchronous for any other block.\n\t\t\t\tconst isSelected = isClientIdSelected(\n\t\t\t\t\tclientId,\n\t\t\t\t\tselectedClientIds\n\t\t\t\t);\n\t\t\t\tconst isSelectedBranch =\n\t\t\t\t\tisBranchSelected || ( isSelected && hasNestedBlocks );\n\t\t\t\treturn (\n\t\t\t\t\t<AsyncModeProvider key={ clientId } value={ ! isSelected }>\n\t\t\t\t\t\t{ showBlock && (\n\t\t\t\t\t\t\t<ListViewBlock\n\t\t\t\t\t\t\t\tblock={ block }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tisDragged={ isDragged }\n\t\t\t\t\t\t\t\tlevel={ level }\n\t\t\t\t\t\t\t\tposition={ position }\n\t\t\t\t\t\t\t\trowCount={ rowCount }\n\t\t\t\t\t\t\t\tsiblingBlockCount={ blockCount }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tisExpanded={ shouldExpand }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ ! showBlock && (\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td className=\"block-editor-list-view-placeholder\" />\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ hasNestedBlocks && shouldExpand && ! isDragged && (\n\t\t\t\t\t\t\t<ListViewBranch\n\t\t\t\t\t\t\t\tparentId={ clientId }\n\t\t\t\t\t\t\t\tblocks={ innerBlocks }\n\t\t\t\t\t\t\t\tselectBlock={ selectBlock }\n\t\t\t\t\t\t\t\tshowBlockMovers={ showBlockMovers }\n\t\t\t\t\t\t\t\tlevel={ level + 1 }\n\t\t\t\t\t\t\t\tpath={ updatedPath }\n\t\t\t\t\t\t\t\tlistPosition={ nextPosition + 1 }\n\t\t\t\t\t\t\t\tfixedListWindow={ fixedListWindow }\n\t\t\t\t\t\t\t\tisBranchSelected={ isSelectedBranch }\n\t\t\t\t\t\t\t\tselectedClientIds={ selectedClientIds }\n\t\t\t\t\t\t\t\tisExpanded={ isExpanded }\n\t\t\t\t\t\t\t\tshowAppender={ showAppenderProp }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</AsyncModeProvider>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t\t{ showAppender && (\n\t\t\t\t<TreeGridRow\n\t\t\t\t\tlevel={ level }\n\t\t\t\t\tsetSize={ rowCount }\n\t\t\t\t\tpositionInSet={ rowCount }\n\t\t\t\t\tisExpanded={ true }\n\t\t\t\t>\n\t\t\t\t\t<TreeGridCell>\n\t\t\t\t\t\t{ ( treeGridCellProps ) => (\n\t\t\t\t\t\t\t<Appender\n\t\t\t\t\t\t\t\tclientId={ parentId }\n\t\t\t\t\t\t\t\tnestingLevel={ level }\n\t\t\t\t\t\t\t\tblockCount={ blockCount }\n\t\t\t\t\t\t\t\t{ ...treeGridCellProps }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</TreeGridCell>\n\t\t\t\t</TreeGridRow>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default memo( ListViewBranch );\n"]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useListViewContext = exports.ListViewContext = void 0;
|
|
7
|
-
|
|
8
|
-
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* WordPress dependencies
|
|
12
|
-
*/
|
|
13
|
-
const ListViewContext = (0, _element.createContext)({});
|
|
14
|
-
exports.ListViewContext = ListViewContext;
|
|
15
|
-
|
|
16
|
-
const useListViewContext = () => (0, _element.useContext)(ListViewContext);
|
|
17
|
-
|
|
18
|
-
exports.useListViewContext = useListViewContext;
|
|
19
|
-
//# sourceMappingURL=context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/context.js"],"names":["ListViewContext","useListViewContext"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,MAAMA,eAAe,GAAG,4BAAe,EAAf,CAAxB;;;AAEA,MAAMC,kBAAkB,GAAG,MAAM,yBAAYD,eAAZ,CAAjC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\n\nexport const ListViewContext = createContext( {} );\n\nexport const useListViewContext = () => useContext( ListViewContext );\n"]}
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = ListViewDropIndicator;
|
|
7
|
-
|
|
8
|
-
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
|
-
var _components = require("@wordpress/components");
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* WordPress dependencies
|
|
14
|
-
*/
|
|
15
|
-
function ListViewDropIndicator(_ref) {
|
|
16
|
-
let {
|
|
17
|
-
listViewRef,
|
|
18
|
-
blockDropTarget
|
|
19
|
-
} = _ref;
|
|
20
|
-
const {
|
|
21
|
-
rootClientId,
|
|
22
|
-
clientId,
|
|
23
|
-
dropPosition
|
|
24
|
-
} = blockDropTarget || {};
|
|
25
|
-
const [rootBlockElement, blockElement] = (0, _element.useMemo)(() => {
|
|
26
|
-
if (!listViewRef.current) {
|
|
27
|
-
return [];
|
|
28
|
-
} // The rootClientId will be defined whenever dropping into inner
|
|
29
|
-
// block lists, but is undefined when dropping at the root level.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const _rootBlockElement = rootClientId ? listViewRef.current.querySelector(`[data-block="${rootClientId}"]`) : undefined; // The clientId represents the sibling block, the dragged block will
|
|
33
|
-
// usually be inserted adjacent to it. It will be undefined when
|
|
34
|
-
// dropping a block into an empty block list.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const _blockElement = clientId ? listViewRef.current.querySelector(`[data-block="${clientId}"]`) : undefined;
|
|
38
|
-
|
|
39
|
-
return [_rootBlockElement, _blockElement];
|
|
40
|
-
}, [rootClientId, clientId]); // The targetElement is the element that the drop indicator will appear
|
|
41
|
-
// before or after. When dropping into an empty block list, blockElement
|
|
42
|
-
// is undefined, so the indicator will appear after the rootBlockElement.
|
|
43
|
-
|
|
44
|
-
const targetElement = blockElement || rootBlockElement;
|
|
45
|
-
const getDropIndicatorIndent = (0, _element.useCallback)(() => {
|
|
46
|
-
if (!rootBlockElement) {
|
|
47
|
-
return 0;
|
|
48
|
-
} // Calculate the indent using the block icon of the root block.
|
|
49
|
-
// Using a classname selector here might be flaky and could be
|
|
50
|
-
// improved.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const targetElementRect = targetElement.getBoundingClientRect();
|
|
54
|
-
const rootBlockIconElement = rootBlockElement.querySelector('.block-editor-block-icon');
|
|
55
|
-
const rootBlockIconRect = rootBlockIconElement.getBoundingClientRect();
|
|
56
|
-
return rootBlockIconRect.right - targetElementRect.left;
|
|
57
|
-
}, [rootBlockElement, targetElement]);
|
|
58
|
-
const style = (0, _element.useMemo)(() => {
|
|
59
|
-
if (!targetElement) {
|
|
60
|
-
return {};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
const indent = getDropIndicatorIndent();
|
|
64
|
-
return {
|
|
65
|
-
width: targetElement.offsetWidth - indent
|
|
66
|
-
};
|
|
67
|
-
}, [getDropIndicatorIndent, targetElement]);
|
|
68
|
-
const popoverAnchor = (0, _element.useMemo)(() => {
|
|
69
|
-
const isValidDropPosition = dropPosition === 'top' || dropPosition === 'bottom' || dropPosition === 'inside';
|
|
70
|
-
|
|
71
|
-
if (!targetElement || !isValidDropPosition) {
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
ownerDocument: targetElement.ownerDocument,
|
|
77
|
-
|
|
78
|
-
getBoundingClientRect() {
|
|
79
|
-
const rect = targetElement.getBoundingClientRect();
|
|
80
|
-
const indent = getDropIndicatorIndent();
|
|
81
|
-
const left = rect.left + indent;
|
|
82
|
-
const right = rect.right;
|
|
83
|
-
let top = 0;
|
|
84
|
-
let bottom = 0;
|
|
85
|
-
|
|
86
|
-
if (dropPosition === 'top') {
|
|
87
|
-
top = rect.top;
|
|
88
|
-
bottom = rect.top;
|
|
89
|
-
} else {
|
|
90
|
-
// `dropPosition` is either `bottom` or `inside`
|
|
91
|
-
top = rect.bottom;
|
|
92
|
-
bottom = rect.bottom;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const width = right - left;
|
|
96
|
-
const height = bottom - top;
|
|
97
|
-
return new window.DOMRect(left, top, width, height);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
};
|
|
101
|
-
}, [targetElement, dropPosition, getDropIndicatorIndent]);
|
|
102
|
-
|
|
103
|
-
if (!targetElement) {
|
|
104
|
-
return null;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
return (0, _element.createElement)(_components.Popover, {
|
|
108
|
-
animate: false,
|
|
109
|
-
anchor: popoverAnchor,
|
|
110
|
-
focusOnMount: false,
|
|
111
|
-
className: "block-editor-list-view-drop-indicator",
|
|
112
|
-
variant: "unstyled"
|
|
113
|
-
}, (0, _element.createElement)("div", {
|
|
114
|
-
style: style,
|
|
115
|
-
className: "block-editor-list-view-drop-indicator__line"
|
|
116
|
-
}));
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=drop-indicator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/drop-indicator.js"],"names":["ListViewDropIndicator","listViewRef","blockDropTarget","rootClientId","clientId","dropPosition","rootBlockElement","blockElement","current","_rootBlockElement","querySelector","undefined","_blockElement","targetElement","getDropIndicatorIndent","targetElementRect","getBoundingClientRect","rootBlockIconElement","rootBlockIconRect","right","left","style","indent","width","offsetWidth","popoverAnchor","isValidDropPosition","ownerDocument","rect","top","bottom","height","window","DOMRect"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Popover } from '@wordpress/components';\nimport { useCallback, useMemo } from '@wordpress/element';\n\nexport default function ListViewDropIndicator( {\n\tlistViewRef,\n\tblockDropTarget,\n} ) {\n\tconst { rootClientId, clientId, dropPosition } = blockDropTarget || {};\n\n\tconst [ rootBlockElement, blockElement ] = useMemo( () => {\n\t\tif ( ! listViewRef.current ) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// The rootClientId will be defined whenever dropping into inner\n\t\t// block lists, but is undefined when dropping at the root level.\n\t\tconst _rootBlockElement = rootClientId\n\t\t\t? listViewRef.current.querySelector(\n\t\t\t\t\t`[data-block=\"${ rootClientId }\"]`\n\t\t\t )\n\t\t\t: undefined;\n\n\t\t// The clientId represents the sibling block, the dragged block will\n\t\t// usually be inserted adjacent to it. It will be undefined when\n\t\t// dropping a block into an empty block list.\n\t\tconst _blockElement = clientId\n\t\t\t? listViewRef.current.querySelector(\n\t\t\t\t\t`[data-block=\"${ clientId }\"]`\n\t\t\t )\n\t\t\t: undefined;\n\n\t\treturn [ _rootBlockElement, _blockElement ];\n\t}, [ rootClientId, clientId ] );\n\n\t// The targetElement is the element that the drop indicator will appear\n\t// before or after. When dropping into an empty block list, blockElement\n\t// is undefined, so the indicator will appear after the rootBlockElement.\n\tconst targetElement = blockElement || rootBlockElement;\n\n\tconst getDropIndicatorIndent = useCallback( () => {\n\t\tif ( ! rootBlockElement ) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Calculate the indent using the block icon of the root block.\n\t\t// Using a classname selector here might be flaky and could be\n\t\t// improved.\n\t\tconst targetElementRect = targetElement.getBoundingClientRect();\n\t\tconst rootBlockIconElement = rootBlockElement.querySelector(\n\t\t\t'.block-editor-block-icon'\n\t\t);\n\t\tconst rootBlockIconRect = rootBlockIconElement.getBoundingClientRect();\n\t\treturn rootBlockIconRect.right - targetElementRect.left;\n\t}, [ rootBlockElement, targetElement ] );\n\n\tconst style = useMemo( () => {\n\t\tif ( ! targetElement ) {\n\t\t\treturn {};\n\t\t}\n\n\t\tconst indent = getDropIndicatorIndent();\n\n\t\treturn {\n\t\t\twidth: targetElement.offsetWidth - indent,\n\t\t};\n\t}, [ getDropIndicatorIndent, targetElement ] );\n\n\tconst popoverAnchor = useMemo( () => {\n\t\tconst isValidDropPosition =\n\t\t\tdropPosition === 'top' ||\n\t\t\tdropPosition === 'bottom' ||\n\t\t\tdropPosition === 'inside';\n\t\tif ( ! targetElement || ! isValidDropPosition ) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn {\n\t\t\townerDocument: targetElement.ownerDocument,\n\t\t\tgetBoundingClientRect() {\n\t\t\t\tconst rect = targetElement.getBoundingClientRect();\n\t\t\t\tconst indent = getDropIndicatorIndent();\n\n\t\t\t\tconst left = rect.left + indent;\n\t\t\t\tconst right = rect.right;\n\t\t\t\tlet top = 0;\n\t\t\t\tlet bottom = 0;\n\n\t\t\t\tif ( dropPosition === 'top' ) {\n\t\t\t\t\ttop = rect.top;\n\t\t\t\t\tbottom = rect.top;\n\t\t\t\t} else {\n\t\t\t\t\t// `dropPosition` is either `bottom` or `inside`\n\t\t\t\t\ttop = rect.bottom;\n\t\t\t\t\tbottom = rect.bottom;\n\t\t\t\t}\n\n\t\t\t\tconst width = right - left;\n\t\t\t\tconst height = bottom - top;\n\n\t\t\t\treturn new window.DOMRect( left, top, width, height );\n\t\t\t},\n\t\t};\n\t}, [ targetElement, dropPosition, getDropIndicatorIndent ] );\n\n\tif ( ! targetElement ) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<Popover\n\t\t\tanimate={ false }\n\t\t\tanchor={ popoverAnchor }\n\t\t\tfocusOnMount={ false }\n\t\t\tclassName=\"block-editor-list-view-drop-indicator\"\n\t\t\tvariant=\"unstyled\"\n\t\t>\n\t\t\t<div\n\t\t\t\tstyle={ style }\n\t\t\t\tclassName=\"block-editor-list-view-drop-indicator__line\"\n\t\t\t/>\n\t\t</Popover>\n\t);\n}\n"]}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = ListViewExpander;
|
|
7
|
-
|
|
8
|
-
var _element = require("@wordpress/element");
|
|
9
|
-
|
|
10
|
-
var _icons = require("@wordpress/icons");
|
|
11
|
-
|
|
12
|
-
var _i18n = require("@wordpress/i18n");
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* WordPress dependencies
|
|
16
|
-
*/
|
|
17
|
-
function ListViewExpander(_ref) {
|
|
18
|
-
let {
|
|
19
|
-
onClick
|
|
20
|
-
} = _ref;
|
|
21
|
-
return (// Keyboard events are handled by TreeGrid see: components/src/tree-grid/index.js
|
|
22
|
-
//
|
|
23
|
-
// The expander component is implemented as a pseudo element in the w3 example
|
|
24
|
-
// https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html
|
|
25
|
-
//
|
|
26
|
-
// We've mimicked this by adding an icon with aria-hidden set to true to hide this from the accessibility tree.
|
|
27
|
-
// For the current tree grid implementation, please do not try to make this a button.
|
|
28
|
-
//
|
|
29
|
-
// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions
|
|
30
|
-
(0, _element.createElement)("span", {
|
|
31
|
-
className: "block-editor-list-view__expander",
|
|
32
|
-
onClick: event => onClick(event, {
|
|
33
|
-
forceToggle: true
|
|
34
|
-
}),
|
|
35
|
-
"aria-hidden": "true"
|
|
36
|
-
}, (0, _element.createElement)(_icons.Icon, {
|
|
37
|
-
icon: (0, _i18n.isRTL)() ? _icons.chevronLeftSmall : _icons.chevronRightSmall
|
|
38
|
-
}))
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=expander.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-editor/src/components/off-canvas-editor/expander.js"],"names":["ListViewExpander","onClick","event","forceToggle","chevronLeftSmall","chevronRightSmall"],"mappings":";;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;AAIe,SAASA,gBAAT,OAAyC;AAAA,MAAd;AAAEC,IAAAA;AAAF,GAAc;AACvD,SACC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACC,MAAA,SAAS,EAAC,kCADX;AAEC,MAAA,OAAO,EAAKC,KAAF,IAAaD,OAAO,CAAEC,KAAF,EAAS;AAAEC,QAAAA,WAAW,EAAE;AAAf,OAAT,CAF/B;AAGC,qBAAY;AAHb,OAKC,4BAAC,WAAD;AAAM,MAAA,IAAI,EAAG,qBAAUC,uBAAV,GAA6BC;AAA1C,MALD;AAVD;AAkBA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { chevronRightSmall, chevronLeftSmall, Icon } from '@wordpress/icons';\nimport { isRTL } from '@wordpress/i18n';\n\nexport default function ListViewExpander( { onClick } ) {\n\treturn (\n\t\t// Keyboard events are handled by TreeGrid see: components/src/tree-grid/index.js\n\t\t//\n\t\t// The expander component is implemented as a pseudo element in the w3 example\n\t\t// https://www.w3.org/TR/wai-aria-practices/examples/treegrid/treegrid-1.html\n\t\t//\n\t\t// We've mimicked this by adding an icon with aria-hidden set to true to hide this from the accessibility tree.\n\t\t// For the current tree grid implementation, please do not try to make this a button.\n\t\t//\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n\t\t<span\n\t\t\tclassName=\"block-editor-list-view__expander\"\n\t\t\tonClick={ ( event ) => onClick( event, { forceToggle: true } ) }\n\t\t\taria-hidden=\"true\"\n\t\t>\n\t\t\t<Icon icon={ isRTL() ? chevronLeftSmall : chevronRightSmall } />\n\t\t</span>\n\t);\n}\n"]}
|
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.default = exports.BLOCK_LIST_ITEM_HEIGHT = void 0;
|
|
9
|
-
|
|
10
|
-
var _element = require("@wordpress/element");
|
|
11
|
-
|
|
12
|
-
var _compose = require("@wordpress/compose");
|
|
13
|
-
|
|
14
|
-
var _components = require("@wordpress/components");
|
|
15
|
-
|
|
16
|
-
var _data = require("@wordpress/data");
|
|
17
|
-
|
|
18
|
-
var _i18n = require("@wordpress/i18n");
|
|
19
|
-
|
|
20
|
-
var _branch = _interopRequireDefault(require("./branch"));
|
|
21
|
-
|
|
22
|
-
var _context = require("./context");
|
|
23
|
-
|
|
24
|
-
var _dropIndicator = _interopRequireDefault(require("./drop-indicator"));
|
|
25
|
-
|
|
26
|
-
var _useBlockSelection = _interopRequireDefault(require("./use-block-selection"));
|
|
27
|
-
|
|
28
|
-
var _useListViewClientIds = _interopRequireDefault(require("./use-list-view-client-ids"));
|
|
29
|
-
|
|
30
|
-
var _useListViewDropZone = _interopRequireDefault(require("./use-list-view-drop-zone"));
|
|
31
|
-
|
|
32
|
-
var _useListViewExpandSelectedItem = _interopRequireDefault(require("./use-list-view-expand-selected-item"));
|
|
33
|
-
|
|
34
|
-
var _store = require("../../store");
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* WordPress dependencies
|
|
38
|
-
*/
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Internal dependencies
|
|
42
|
-
*/
|
|
43
|
-
const expanded = (state, action) => {
|
|
44
|
-
if (Array.isArray(action.clientIds)) {
|
|
45
|
-
return { ...state,
|
|
46
|
-
...action.clientIds.reduce((newState, id) => ({ ...newState,
|
|
47
|
-
[id]: action.type === 'expand'
|
|
48
|
-
}), {})
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return state;
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
const BLOCK_LIST_ITEM_HEIGHT = 36;
|
|
56
|
-
/**
|
|
57
|
-
* Show a hierarchical list of blocks.
|
|
58
|
-
*
|
|
59
|
-
* @param {Object} props Components props.
|
|
60
|
-
* @param {string} props.id An HTML element id for the root element of ListView.
|
|
61
|
-
* @param {string} props.parentClientId The client id of the parent block.
|
|
62
|
-
* @param {Array} props.blocks Custom subset of block client IDs to be used instead of the default hierarchy.
|
|
63
|
-
* @param {boolean} props.showBlockMovers Flag to enable block movers
|
|
64
|
-
* @param {boolean} props.isExpanded Flag to determine whether nested levels are expanded by default.
|
|
65
|
-
* @param {Object} props.LeafMoreMenu Optional more menu substitution.
|
|
66
|
-
* @param {string} props.description Optional accessible description for the tree grid component.
|
|
67
|
-
* @param {string} props.onSelect Optional callback to be invoked when a block is selected.
|
|
68
|
-
* @param {string} props.showAppender Flag to show or hide the block appender.
|
|
69
|
-
* @param {Function} props.renderAdditionalBlockUI Function that renders additional block content UI.
|
|
70
|
-
* @param {Object} ref Forwarded ref.
|
|
71
|
-
*/
|
|
72
|
-
|
|
73
|
-
exports.BLOCK_LIST_ITEM_HEIGHT = BLOCK_LIST_ITEM_HEIGHT;
|
|
74
|
-
|
|
75
|
-
function OffCanvasEditor(_ref, ref) {
|
|
76
|
-
let {
|
|
77
|
-
id,
|
|
78
|
-
parentClientId,
|
|
79
|
-
blocks,
|
|
80
|
-
showBlockMovers = false,
|
|
81
|
-
isExpanded = false,
|
|
82
|
-
showAppender = true,
|
|
83
|
-
LeafMoreMenu,
|
|
84
|
-
description = (0, _i18n.__)('Block navigation structure'),
|
|
85
|
-
onSelect,
|
|
86
|
-
renderAdditionalBlockUI
|
|
87
|
-
} = _ref;
|
|
88
|
-
const {
|
|
89
|
-
getBlock
|
|
90
|
-
} = (0, _data.useSelect)(_store.store);
|
|
91
|
-
const {
|
|
92
|
-
clientIdsTree,
|
|
93
|
-
draggedClientIds,
|
|
94
|
-
selectedClientIds
|
|
95
|
-
} = (0, _useListViewClientIds.default)(blocks);
|
|
96
|
-
const {
|
|
97
|
-
visibleBlockCount,
|
|
98
|
-
shouldShowInnerBlocks
|
|
99
|
-
} = (0, _data.useSelect)(select => {
|
|
100
|
-
const {
|
|
101
|
-
getGlobalBlockCount,
|
|
102
|
-
getClientIdsOfDescendants,
|
|
103
|
-
__unstableGetEditorMode
|
|
104
|
-
} = select(_store.store);
|
|
105
|
-
const draggedBlockCount = (draggedClientIds === null || draggedClientIds === void 0 ? void 0 : draggedClientIds.length) > 0 ? getClientIdsOfDescendants(draggedClientIds).length + 1 : 0;
|
|
106
|
-
return {
|
|
107
|
-
visibleBlockCount: getGlobalBlockCount() - draggedBlockCount,
|
|
108
|
-
shouldShowInnerBlocks: __unstableGetEditorMode() !== 'zoom-out'
|
|
109
|
-
};
|
|
110
|
-
}, [draggedClientIds, blocks]);
|
|
111
|
-
const {
|
|
112
|
-
updateBlockSelection
|
|
113
|
-
} = (0, _useBlockSelection.default)();
|
|
114
|
-
const [expandedState, setExpandedState] = (0, _element.useReducer)(expanded, {});
|
|
115
|
-
const {
|
|
116
|
-
ref: dropZoneRef,
|
|
117
|
-
target: blockDropTarget
|
|
118
|
-
} = (0, _useListViewDropZone.default)();
|
|
119
|
-
const elementRef = (0, _element.useRef)();
|
|
120
|
-
const treeGridRef = (0, _compose.useMergeRefs)([elementRef, dropZoneRef, ref]);
|
|
121
|
-
const isMounted = (0, _element.useRef)(false);
|
|
122
|
-
const {
|
|
123
|
-
setSelectedTreeId
|
|
124
|
-
} = (0, _useListViewExpandSelectedItem.default)({
|
|
125
|
-
firstSelectedBlockClientId: selectedClientIds[0],
|
|
126
|
-
setExpandedState
|
|
127
|
-
});
|
|
128
|
-
const selectEditorBlock = (0, _element.useCallback)((event, blockClientId) => {
|
|
129
|
-
updateBlockSelection(event, blockClientId);
|
|
130
|
-
setSelectedTreeId(blockClientId);
|
|
131
|
-
|
|
132
|
-
if (onSelect) {
|
|
133
|
-
onSelect(getBlock(blockClientId));
|
|
134
|
-
}
|
|
135
|
-
}, [setSelectedTreeId, updateBlockSelection, onSelect, getBlock]);
|
|
136
|
-
(0, _element.useEffect)(() => {
|
|
137
|
-
isMounted.current = true;
|
|
138
|
-
}, []); // List View renders a fixed number of items and relies on each having a fixed item height of 36px.
|
|
139
|
-
// If this value changes, we should also change the itemHeight value set in useFixedWindowList.
|
|
140
|
-
// See: https://github.com/WordPress/gutenberg/pull/35230 for additional context.
|
|
141
|
-
|
|
142
|
-
const [fixedListWindow] = (0, _compose.__experimentalUseFixedWindowList)(elementRef, BLOCK_LIST_ITEM_HEIGHT, visibleBlockCount, {
|
|
143
|
-
useWindowing: true,
|
|
144
|
-
windowOverscan: 40
|
|
145
|
-
});
|
|
146
|
-
const expand = (0, _element.useCallback)(blockClientId => {
|
|
147
|
-
if (!blockClientId) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
setExpandedState({
|
|
152
|
-
type: 'expand',
|
|
153
|
-
clientIds: [blockClientId]
|
|
154
|
-
});
|
|
155
|
-
}, [setExpandedState]);
|
|
156
|
-
const collapse = (0, _element.useCallback)(blockClientId => {
|
|
157
|
-
if (!blockClientId) {
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
setExpandedState({
|
|
162
|
-
type: 'collapse',
|
|
163
|
-
clientIds: [blockClientId]
|
|
164
|
-
});
|
|
165
|
-
}, [setExpandedState]);
|
|
166
|
-
const expandRow = (0, _element.useCallback)(row => {
|
|
167
|
-
var _row$dataset;
|
|
168
|
-
|
|
169
|
-
expand(row === null || row === void 0 ? void 0 : (_row$dataset = row.dataset) === null || _row$dataset === void 0 ? void 0 : _row$dataset.block);
|
|
170
|
-
}, [expand]);
|
|
171
|
-
const collapseRow = (0, _element.useCallback)(row => {
|
|
172
|
-
var _row$dataset2;
|
|
173
|
-
|
|
174
|
-
collapse(row === null || row === void 0 ? void 0 : (_row$dataset2 = row.dataset) === null || _row$dataset2 === void 0 ? void 0 : _row$dataset2.block);
|
|
175
|
-
}, [collapse]);
|
|
176
|
-
const focusRow = (0, _element.useCallback)((event, startRow, endRow) => {
|
|
177
|
-
if (event.shiftKey) {
|
|
178
|
-
var _startRow$dataset, _endRow$dataset;
|
|
179
|
-
|
|
180
|
-
updateBlockSelection(event, startRow === null || startRow === void 0 ? void 0 : (_startRow$dataset = startRow.dataset) === null || _startRow$dataset === void 0 ? void 0 : _startRow$dataset.block, endRow === null || endRow === void 0 ? void 0 : (_endRow$dataset = endRow.dataset) === null || _endRow$dataset === void 0 ? void 0 : _endRow$dataset.block);
|
|
181
|
-
}
|
|
182
|
-
}, [updateBlockSelection]);
|
|
183
|
-
const contextValue = (0, _element.useMemo)(() => ({
|
|
184
|
-
isTreeGridMounted: isMounted.current,
|
|
185
|
-
draggedClientIds,
|
|
186
|
-
expandedState,
|
|
187
|
-
expand,
|
|
188
|
-
collapse,
|
|
189
|
-
LeafMoreMenu,
|
|
190
|
-
renderAdditionalBlockUI
|
|
191
|
-
}), [isMounted.current, draggedClientIds, expandedState, expand, collapse, LeafMoreMenu, renderAdditionalBlockUI]);
|
|
192
|
-
return (0, _element.createElement)(_data.AsyncModeProvider, {
|
|
193
|
-
value: true
|
|
194
|
-
}, (0, _element.createElement)(_dropIndicator.default, {
|
|
195
|
-
listViewRef: elementRef,
|
|
196
|
-
blockDropTarget: blockDropTarget
|
|
197
|
-
}), (0, _element.createElement)("div", {
|
|
198
|
-
className: "offcanvas-editor-list-view-tree-wrapper"
|
|
199
|
-
}, (0, _element.createElement)(_components.__experimentalTreeGrid, {
|
|
200
|
-
id: id,
|
|
201
|
-
className: "block-editor-list-view-tree",
|
|
202
|
-
"aria-label": (0, _i18n.__)('Block navigation structure'),
|
|
203
|
-
ref: treeGridRef,
|
|
204
|
-
onCollapseRow: collapseRow,
|
|
205
|
-
onExpandRow: expandRow,
|
|
206
|
-
onFocusRow: focusRow // eslint-disable-next-line jsx-a11y/aria-props
|
|
207
|
-
,
|
|
208
|
-
"aria-description": description
|
|
209
|
-
}, (0, _element.createElement)(_context.ListViewContext.Provider, {
|
|
210
|
-
value: contextValue
|
|
211
|
-
}, (0, _element.createElement)(_branch.default, {
|
|
212
|
-
parentId: parentClientId,
|
|
213
|
-
blocks: clientIdsTree,
|
|
214
|
-
selectBlock: selectEditorBlock,
|
|
215
|
-
showBlockMovers: showBlockMovers,
|
|
216
|
-
fixedListWindow: fixedListWindow,
|
|
217
|
-
selectedClientIds: selectedClientIds,
|
|
218
|
-
isExpanded: isExpanded,
|
|
219
|
-
shouldShowInnerBlocks: shouldShowInnerBlocks,
|
|
220
|
-
showAppender: showAppender
|
|
221
|
-
}), (0, _element.createElement)(_components.__experimentalTreeGridRow, {
|
|
222
|
-
level: 1,
|
|
223
|
-
setSize: 1,
|
|
224
|
-
positionInSet: 1,
|
|
225
|
-
isExpanded: true
|
|
226
|
-
}, !clientIdsTree.length && (0, _element.createElement)(_components.__experimentalTreeGridCell, {
|
|
227
|
-
withoutGridItem: true
|
|
228
|
-
}, (0, _element.createElement)("div", {
|
|
229
|
-
className: "offcanvas-editor-list-view-is-empty"
|
|
230
|
-
}, (0, _i18n.__)('Your menu is currently empty. Add your first menu item to get started.'))))))));
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
var _default = (0, _element.forwardRef)(OffCanvasEditor);
|
|
234
|
-
|
|
235
|
-
exports.default = _default;
|
|
236
|
-
//# sourceMappingURL=index.js.map
|